{"version":3,"sources":["api/urls.js","api/index.js","helpers/notification.js","containers/App/App.jsx","containers/App/ScrollToTop.jsx","containers/Layout/topbar/TopbarSidebarButton.jsx","containers/Layout/topbar/TopbarMenuLink.jsx","containers/Layout/topbar/TopbarMenuButton.jsx","containers/Layout/topbar/TopbarProfile.jsx","helpers/storage.js","containers/Layout/topbar/Topbar.jsx","containers/Layout/sidebar/SidebarLink.jsx","containers/Layout/sidebar/SidebarCategory.jsx","containers/Layout/sidebar/SidebarContent.jsx","shared/prop-types/ReducerProps.js","containers/Layout/sidebar/Sidebar.jsx","containers/Layout/index.jsx","containers/Layout/bottombar/Bottombar.jsx","containers/App/MainWrapper.jsx","shared/components/form/CheckBox.jsx","helpers/setPropsAsInitialValues.jsx","shared/components/form/TextBox.jsx","shared/components/Confirm.jsx","containers/LogIn/components/validate.js","containers/LogIn/components/LogInForm.jsx","containers/LogIn/index.jsx","containers/FirstLogIn/components/validate.js","containers/FirstLogIn/components/FirstLogInForm.jsx","containers/FirstLogIn/index.jsx","shared/components/pagination/Pagination.jsx","shared/components/form/DatePicker.jsx","shared/components/form/Select.jsx","shared/components/DataTable.jsx","shared/components/TooltipItem.jsx","shared/components/LoadingSpinner.jsx","helpers/dateFormat.js","containers/Users/index.jsx","shared/components/form/RadioButton.jsx","containers/Users/Edit/validate.js","constants/enums.js","containers/Users/Edit/UserForm.jsx","containers/Users/Edit/index.jsx","redux/actions/studentsActions.js","containers/Students/Index.jsx","redux/actions/studentSubjectsActions.js","redux/actions/materiaPeriodoActions.js","containers/Students/Tasks/index.jsx","containers/Profesor/PlaneamientoForm/components/HorariosTable.jsx","redux/actions/assistanceActions.js","containers/Students/Assistance/index.jsx","containers/Students/StudentData.jsx","containers/Students/Dashboard.jsx","containers/Students/Edit/validate.js","containers/Students/Edit/StudentForm.jsx","containers/Students/Edit/index.jsx","containers/StudentSubjects/InscriptionForm/validate.js","containers/StudentSubjects/InscriptionForm/InscriptionForm.jsx","containers/StudentSubjects/InscriptionForm/index.jsx","redux/actions/periodoActions.js","containers/StudentSubjects/index.jsx","containers/StudentSubjects/Inscription/validate.js","containers/StudentSubjects/Inscription/InscriptionForm.jsx","containers/StudentSubjects/Inscription/index.jsx","redux/actions/examActions.js","containers/Exams/index.jsx","redux/actions/inscripcionExamenActions.js","containers/Exams/StudentExams.jsx","containers/Exams/StudentExamInscription.jsx","containers/Exams/ExamForm/InscripcionExamen/validate.js","containers/Exams/ExamForm/InscripcionExamen/InscriptionForm.jsx","containers/Exams/ExamForm/InscripcionExamen/index.jsx","containers/Exams/ExamForm/InscripcionExamen/AddInscriptionForm.jsx","helpers/debounce.js","containers/Exams/ExamForm/InscripcionExamen/AddIndex.jsx","containers/Exams/ExamForm/validate.js","containers/Exams/ExamForm/ExamForm.jsx","containers/Exams/ExamForm/index.jsx","containers/Exams/ExamForm/ShowFinalReport.jsx","containers/Exams/ExamForm/ShowRecuperatorioReport.jsx","containers/Exams/ExamForm/ShowAllReport.jsx","containers/Example/components/ExampleCard.jsx","containers/Example/index.jsx","containers/ExampleTwo/components/ExampleCard.jsx","containers/ExampleTwo/index.jsx","containers/MateriasPeriodo/index.jsx","containers/Profesor/PlaneamientoForm/components/ObjetivosMateriaTable.jsx","containers/Profesor/PlaneamientoForm/components/CronogramaClasesTable.jsx","containers/Profesor/PlaneamientoForm/components/PracticaLaboratorioTable.jsx","containers/Profesor/PlaneamientoForm/components/ProyectoTrabajoPracticoTable.jsx","containers/Profesor/PlaneamientoForm/components/ActividadComplementariaTable.jsx","containers/Profesor/PlaneamientoForm/validate.js","containers/Profesor/PlaneamientoForm/components/form.jsx","redux/actions/planningActions.js","containers/Profesor/PlaneamientoForm/index.jsx","containers/MateriasPeriodo/EditForm/validate.js","containers/MateriasPeriodo/EditForm/MateriaPeriodoForm.jsx","containers/MateriasPeriodo/EditForm/index.jsx","containers/Profesor/Dashboard.jsx","redux/actions/professorActions.js","containers/Profesor/index.jsx","shared/components/form/ToggleButton.jsx","containers/MateriasPeriodo/Homework/HomeworkForm/validate.js","containers/MateriasPeriodo/Homework/HomeworkForm/StudentsScoresTable.jsx","containers/MateriasPeriodo/Homework/HomeworkForm/form.jsx","containers/MateriasPeriodo/Homework/HomeworkForm/index.jsx","containers/MateriasPeriodo/Homework/index.jsx","containers/Assistance/Form/validate.js","containers/Assistance/Form/studentAssistancesTable.jsx","containers/Assistance/Form/form.jsx","containers/Assistance/Form/index.jsx","containers/Assistance/Form/formModal.jsx","containers/Assistance/index.jsx","containers/Profesor/EditarNotasDialog.jsx","containers/Profesor/ProfessorData.jsx","containers/ReporteInscripcion/index.jsx","containers/ReporteAlumnosPorMateria/validate.js","containers/ReporteAlumnosPorMateria/FilterForm.jsx","containers/ReporteAlumnosPorMateria/index.jsx","containers/ReporteAlumnos/FilterForm.jsx","containers/ReporteAlumnos/index.jsx","containers/ReporteAlumnos/AcademicStatus/AcademicStatusForm.jsx","containers/ReporteAlumnos/AcademicStatus/index.jsx","containers/Periodos/index.jsx","containers/Periodos/PeriodoForm/validate.js","containers/Periodos/PeriodoForm/PeriodoForm.jsx","containers/Periodos/PeriodoForm/index.jsx","containers/Periodos/PeriodoForm/EditarMaterias/validate.js","containers/Periodos/PeriodoForm/EditarMaterias/EditarMateriasForm.jsx","containers/Periodos/PeriodoForm/EditarMaterias/index.jsx","containers/Periodos/PeriodoForm/MateriaPeriodo/validate.js","containers/Periodos/PeriodoForm/MateriaPeriodo/MateriaPeriodoForm.jsx","containers/Periodos/PeriodoForm/MateriaPeriodo/index.jsx","containers/Periodos/PeriodoForm/MateriaPeriodo/validateMoveSection.js","containers/Periodos/PeriodoForm/MateriaPeriodo/MoveSectionForm.jsx","containers/Periodos/PeriodoForm/MateriaPeriodo/MoveSectionIndex.jsx","containers/Mallas/index.jsx","redux/actions/mallaActions.js","shared/components/form/Modal.jsx","containers/Mallas/MallaForm/validate.js","containers/Mallas/MallaForm/MallaForm.jsx","containers/Mallas/MallaForm/index.jsx","redux/actions/materiaMallaActions.js","containers/AuditLog/index.jsx","containers/App/Router.jsx","index.jsx","redux/actions/userActions.js","redux/actions/loginActions.js","redux/actions/sidebarActions.js","redux/actions/usersActions.js","redux/reducers/themeReducer.js","redux/reducers/sidebarReducer.js","redux/actions/rtlActions.js","redux/reducers/rtlReducer.js","redux/reducers/loginReducer.js","redux/reducers/userReducer.js","redux/reducers/usersReducer.js","containers/App/store.js","redux/actions/themeActions.js"],"names":["__webpack_require__","d","__webpack_exports__","urlUsers","urlStudents","urlAssistances","urlStudentSubjects","urlExams","urlPeriodos","urlMateriasPeriodo","urlPlanning","urlInscripcionExamen","urlMallas","urlProfessors","concat","authParams","_ref","method","contentType","_ref$data","data","currentUser","JSON","parse","localStorage","getItem","params","headers","Authorization","token","body","redirect","Object","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","Content-Type","stringify","checkResults","result","ok","status","Promise","resolve","json","then","error","removeItem","checkDownloadResults","blob","apiGet","url","fetch","apiDownload","apiDownloadPost","apiUploadPost","files","FormData","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","forEach","file","append","name","apiPost","apiPut","id","apiDelete","createSuccessMessage","createWarningMessage","createErrorMessage","react_notifications__WEBPACK_IMPORTED_MODULE_0__","createNotification","type","text","NotificationManager","info","success","warning","App","_this","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","this","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","call","state","loading","loaded","_this2","caches","keys","names","delete","console","log","e","window","addEventListener","setState","setTimeout","path","location","pathname","store","dispatch","verifyUserToken","onError","href","_this$state","react__WEBPACK_IMPORTED_MODULE_5___default","a","createElement","react_redux__WEBPACK_IMPORTED_MODULE_7__","react_router_dom__WEBPACK_IMPORTED_MODULE_8__","_ScrollToTop__WEBPACK_IMPORTED_MODULE_19__","react__WEBPACK_IMPORTED_MODULE_5__","className","fill","_Router__WEBPACK_IMPORTED_MODULE_17__","props","react_notifications__WEBPACK_IMPORTED_MODULE_9__","Component","hot","module","ScrollToTop","prevProps","scrollTo","children","PureComponent","withRouter","icon","process","TopbarSidebarButton","_this$props","changeMobileSidebarVisibility","changeSidebarVisibility","react_default","onClick","src","alt","TopbarMenuLinks","title","Link","to","TopbarMenuButton","Ava","TopbarProfile","classCallCheck","possibleConstructorReturn","getPrototypeOf","toggle","prevState","collapse","onLogoutClick","history","changeUserViewAs","logout","push","LoggedUser","fullName","AnonimousUser","isAuthenticated","ChevronDownIcon_default","Collapse","isOpen","TopbarMenuLink_TopbarMenuLinks","TopbarMenuButton_TopbarMenuButton","tableFilters","tableKey","get","sessionStorage","set","value","setItem","getCurrentUser","publicSettings","Topbar","changeUserView","viewPageAs","appEnvironment","topbar_TopbarSidebarButton","roles","length","onChange","Number","currentTarget","map","role","key","Alert","color","style","backgroundColor","label","topbar_TopbarProfile","SidebarLink","newLink","route","NavLink","activeClassName","Badge","defaultProps","SidebarCategory","isNew","categoryClass","classNames","sidebar__category-wrap","sidebar__category-wrap--open","SidebarContent","hideSidebar","showAdminMenu","show","Fragment","SidebarCategory_SidebarCategory","sidebar_SidebarLink","showStudentMenu","showProfessorMenu","showReportMenu","changeToDark","changeToLight","user","isAdminMenu","isProfessorMenu","esProfesor","esFuncionario","esAlumno","esAdmin","isStudentMenu","isReportMenu","string","PropTypes","shape","Sidebar","bool","direction","email","password","sidebar","sidebarClass","sidebar--show","sidebar--collapse","react_smooth_scrollbar_default","sidebar_SidebarContent","Layout","changeThemeToDark","changeThemeToLight","userType","_this$props2","layoutClass","layout","layout--collapse","topbar_Topbar","sidebar_Sidebar","connect","Bottombar","appName","appVersion","MainWrapper","theme","rtl","dir","CheckBoxField","disabled","defaultChecked","labelStyle","CheckboxClass","checkbox-btn","checked","checkedClass","labelClass","htmlFor","background","borderColor","CheckIcon_default","CloseIcon_default","renderCheckBoxField","input","_props$meta","meta","touched","CheckBox_CheckBoxField","assign","setPropsAsInitialValues","WrappedComponent","_PureComponent","_class","apply","arguments","inherits","createClass","initialValues","TextBox","placeholder","maxLength","min","max","step","_ref$meta","readOnly","onKeyPress","objectSpread","autoComplete","model","forceValidation","pattern","Confirm","question","yesLabel","otherLabel","noLabel","onConfirm","onCancel","onOther","confirmAlert","customUI","_ref2","onClose","Modal","size","modalClassName","ButtonToolbar","Button","validate","values","attrs","errors","test","isValid","LogIn","showPassword","preventDefault","handleChange","event","defineProperty","target","resetUserPassword","valid","onSuccess","resetPassword","handleSubmit","showSpinner","Spinner","width","height","showLoging","submitting","pristine","AccountOutlineIcon_default","Field","component","KeyVariantIcon_default","EyeIcon_default","aria-hidden","showResetPassword","loggingIn","onSubmit","reduxForm","form","validateForm","LogInContainer","loginAction","login","changeFormValue","onFirstLogin","components_LogInForm","FacebookIcon_default","GooglePlusIcon_default","bindActionCreators","change","newPassword","newPasswordConfirmation","FirstLogIn","showNewPassword","showNewPasswordConfirmation","tabIndex","FirstLogInContainer","submit","firstLogin","resetForm","components_FirstLogInForm","reset","CustomPagination","setPage","page","itemsCount","itemsToShow","onChangePage","totalPages","Math","ceil","render4Pages","pageOfItems","pages","i","dinamicPages","pagesToShow","from","floor","Pagination","PaginationItem","PaginationLink","ChevronDoubleLeftIcon_default","ChevronLeftIcon_default","active","ChevronRightIcon_default","ChevronDoubleRightIcon_default","render9Pages","_this$props3","React","DatePickerField","bind","assertThisInitialized","date","dateFormat","showTimeInput","react_datepicker_min_default","minDate","Date","getFullYear","selected","placeholderText","timeInputLabel","dropDownMode","showYearDropdown","showTimeSelect","CalendarBlankIcon_default","renderDatePickerField","DatePicker_DatePickerField","SelectField","selectedOption","defaultValue","options","isMulti","isClearable","isSearchable","menuIsOpen","isDisabled","styles","option","base","padding","alignTtems","display","boxSizing","multiValue","isFixed","multiValueLabel","fontWeight","paddingRight","multiValueRemove","menu","css","objectWithoutProperties","react_select_browser_esm","menuPlacement","clearable","classNamePrefix","undefined","renderSelectField","opts","slice","find","o","unshift","Select_SelectField","RenderDataTableInput","column","row","onAutoSave","editable","attributes","isNaN","inputStyle","searchProps","item","changed","onKeyDown","which","onBlur","onFocus","select","RenderSearchField","_props$searchProps","DatePicker","fontSize","DataTable","toggleSearch","showSearch","toggleAutoHide","autoHideSearch","visible","col","columns","items","getGridActions","onClearFilters","pageSize","totalItemsCount","searchable","filter","s","search","showForm","Col","md","lg","Card","CardBody","Row","xs","Form","h","Table","responsive","u","uIndex","hIndex","callback","format","actions","RenderDataTableAction","Pagination_CustomPagination","DataTableForm","TooltipItem","_useState","useState","_useState2","slicedToArray","tooltipOpen","setTooltipOpen","Tooltip","placement","LoadingSpinner","justifyContent","locales","Intl","DateTimeFormat","dateStyle","dateDDMMYYFormat","day","month","year","dateDDMMYYHHMMFormat","hour","minute","dateMMYYFormat","dateMMFormat","substring","dateDDFormat","dateTimeFormat","timeStyle","timeFormat","second","dateTimeString","toLocaleDateString","split","reverse","join","toLocaleTimeString","UsersContainer","fetchDatasList","fetchFormDatas","updateUserTable","filters","fetchUsers","pageInfo","r","deleteUser","userName","nombre","apellido","editUser","_this$state2","onDataTableSubmit","onDataTableClearFilters","getRoles","getColor","c","categoriasProfesores","rol","components_TooltipItem","some","arancelCero","fechaFinArancelCero","_this$state3","_this$state4","Container","components_LoadingSpinner","components_DataTable","enableReinitialize","RadioButtonField","radioValue","RadioButtonClass","radio-btn","renderRadioButtonField","RadioButton_RadioButtonField","showProfile","numeroDocumento","nacionalidad","photoName","domicilioTelefono","trabajoTelefono","emergenciaNumero","emergenciaContacto","materias","removed","materia","_ref$materia","duplicate","mat","index","m","indexOf","_error","escalafon","notas","GruposSanguineos","Roles","Alumno","Profesor","Funcionario","Admin","EstadosCiviles","Generos","Calificaciones","desciption","InstanciaExamen","Final","Recuperatorio","Invalido","EstadoExamen","Activo","Sellado","Borrado","Inconsistente","EstadoMateriaPeriodo","Preliminar","Publicado","MaxSizeFile","AcceptTypeFile","TrueFalseValues","EditUser","showHideOtherData","showOtherData","showHideCategoriaProfesor","showCategoriaProfesor","categoriaProfesorTable","_ref2$fields","fields","_ref2$meta","submitFailed","onAddItemArray","onDeleteItemArray","onChangeText","onChangeSelect","colSpan","marginBottom","scope","categoriaProfesor","v","outline","onFileChange","maxSizeFileMb","includes","onSubmitFoto","provenienteDePuebloOriginario","saludPoseeOtraDiscapacidad","resetPasswordHandler","onBack","genero","grupoSanguineo","estadoCivil","saludPoseeDiscapacidadVisual","saludPoseeDiscapacidadAuditiva","saludPoseeDiscapacidadMotora","saludPoseeDiscapacidadCognitiva","onFilterChanges","age","paises","onRadioChanges","gruposSanguineos","estadosCiviles","generos","fechaNacimiento","_this$props$categoria","lugarNacimiento","urlPhoto","otherDataBtnClass","otherDataClass","categoriaProfesorDataClass","editMainInfo","birdDate","moment","requiredNameClass","requiredPhoneClass","g","renderRadioField","Input","accept","pill","FieldArray","EditUserContainer","escalafonDocente","mapPaises","p","nacionalidadPaisId","domicilioPaisId","trabajoPaisId","saveUser","editProfile","message","fetchUserPhoto","fetchPhoto","photo","URL","createObjectURL","handleSubmitFoto","savePhoto","handleOnBack","goBack","handleOnFilterChange","objectKey","idKey","_this$setState","handleAddCategoriasProfesores","toConsumableArray","parentId","handleRemoveCategoriasProfesores","_this$state$categoria","newArray","handleChangeText","newCategoriasProfesores","trim","handleChangeSelect","_data","handleRadioChanges","getRolName","fetchUser","dto","nacionalidadPais","domicilioPais","trabajoPais","_this$state2$categori","UserForm","reporteAlumnosFormData","res","catch","fetchStudent","StudentsContainer","updateStudentsTable","handleDeleteStudent","student","handleViewAcademicStatusStudent","editStudent","actualizarNotas","inscripcion","obtenerMisDerechos","_ref7","_ref7$pageInfo","_ref5","save","obj","remove","_ref14","fetchSubjectsScheduleBySubjectPeriodId","_ref16","subjectId","getSubjectStudents","downloadSubjectStudentsScore","_ref19","link","document","download","appendChild","click","HomeworkContainer","updateTable","_ref3","_ref3$pageInfo","filterMyHomework","materiaPeriodoId","utilizaPorcentajePesoMateria","tareaMateriaId","tipoTarea","puntajeObtenido","puntajeTotal","HorariosTable","_ref$items","_ref$profesores","profesores","_ref$codigoClassroom","codigoClassroom","_ref$materiaPeriodo","materiaPeriodo","_ref$esAlumno","_materiaPeriodo$preRe","preRequisitos","horasSemanales","horasTeoriaSemanal","horasPracticaSemanal","horasLaboratorioSemanal","totalHorasSemanal","overflowX","lx","profesor","_ref4","dia","tipoActividadAcademicaHorario","horaInicio","horaFin","canEditarPlaneamiento","gap","semestreNro","updatePresenceStundent","_ref6","assistanceId","payload","AssistanceContainer","refreshTable","criteria","_criteria$page","_criteria$pageSize","_criteria$totalItemsC","_criteria$filters","logContent","fetchTable","subjectPeriodId","_ref2$pageInfo","fetchMy","assists","studentAssists","handleHideForm","nextPage","_this$state3$students","students","currentStudentId","findIndex","studentId","previousPage","_this$state4$students","assistanceButtons","assistanceValue","onPreviousPage","onNextPage","onPresent","onAbsent","pointerStudent","loadingAssists","columnGap","justifyItems","textAlign","description","dataTable","_this$state5","_ref4$canEditAttendan","canEditAttendances","groupByAssistance","reference","assistanceByStudents","present","assistanceLength","attendancePerc","reduce","_ref8","assistanceHeaders","flexDirection","_ref9","assistanceByStudent","as","aria-label","_ref10","_ref10$assistPerc","assistPerc","_ref11","_ref12","round","loadAssistance","StudentDataContainer","getMateriaPeriodo","fetchMySubject","tab","activeTab","isInteger","paddingLeft","seccion","marginTop","sm","carrera","semestre","anho","components_HorariosTable","horarios","porcentajePP","porcentajeAsistencia","Nav","tabs","NavItem","marginRight","TabContent","TabPane","tabId","Tasks","Assistance","StudentsDashboardContainer","loadFormData","verMateria","handleSubmitCard","colors","showEstadoMateriaPeriodoData","estado","rendimientoAlumno","flexWrap","paddingTop","fechaPublicado","fechaSellado","fechaExpiracion","es_Form","xl","alignItems","codigoMateria","semestreNroOrden","usuario","malla","numeroLegajo","fechaIngreso","StudentForm","users","mallas","EditStudentContainer","fetchCurrentStudent","mallaId","usuarioId","fetchUserList","fetchAllUsers","fetchMallaList","Edit_StudentForm","perfilAlumnoId","InscriptionForm","subjects","onChangeStudent","onInscriptionChanges","inscripto","InscriptionContainer","fetchStudentData","fetchSubjectList","fetchStudentList","evt","materiasModificadas","subject","handleSave","conforme","_ref$message","_this$state$students","_this$state$subjects","StudentSubjects_InscriptionForm_InscriptionForm","StudentSubjectsContainer","periodos","updateSubjectsTable","getViewPageAs","showStarIcon","viewAsAlumno","showNombre","viewAsAllowedUser","periodo","numeroSemestre","_filters$periodo","_filters$numeroSemest","periodoId","showAll","endpoint","fetchStudentSubjects","enableInscription","handleDeleteSubject","inscription","nombreMateria","editStudentSubject","adminInscripcion","disabledCss","infoCss","onAddToFavoritesSubmit","newState","mostrarEnTablero","getPeriodos","_this$state$periodos","getButtonInscription","nombreMalla","nombreCarrera","_ref3$cantidadTareas","cantidadTareas","alumno","_this$props$mallas","_this$props$semesters","semesters","_this$props$subjects","nombreAlumno","apellidoAlumno","_this$props$alumnos","alumnos","SubjectsInscriptionContainer","fetchCurrentStudentSubject","fetchStudentSubject","fetchAllSubjects","studentSubject","mallaNombre","semestreId","semestreNombre","materiaId","materiaCodigo","materiaNombre","fetchFormData","new","viewModel","getInscriptionAllSubjects","_ref$subjects","filterSubjects","_this$state$mallaId","_this$state$semestreI","_this$state2$mallas","_this$state2$semester","_this$state2$students","Inscription_InscriptionForm","fetchExamPrintPreview","deleteExam","stampExam","exam","anhoLectivoId","downloadAcademicStatusStudent","materiaName","ExamsContainer","periodosExamen","estadoExamen","updateExamsTable","_ref2$page","_ref2$pageSize","_ref2$filters","handleDeleteExam","examen","fecha","dateFormated","handleStampExam","handleShowPreviewExam","nroActa","_materia$replace$repl","replace","it","_materia$replace$repl2","carreraName","confirmData","editExam","addButton","getSubjectColor","getLabelEstados","getStates","getPeriodosExamen","tblFilters","cantidadInscriptos","padStart","modificado","showEdit","titleEdit","tbl","_this$state6","_this$state7","getFormData","idExamen","loadStudents","fetchMyExams","loadMisDerechos","derechos","codigo","showScore","calificacion","getLabelEstado","_ref5$estadoExamen","codMateria","fechaExamen","fechaInscripcion","instancia","_this$state4$derechos","StudentExamInscriptionContainer","inscribirme","examenId","getDate","getInstanciaColor","getParametroColor","_ref2$item","pp","asis","parametro","minHeight","fechaLimiteInscripcionExamen","fechaInscripcionMateria","motivo","validatePercentage","parseFloat","alumnoObj","porcentajePF","porcentajePC","calificacionObj","ca","InscriptionFormContainer","fetchInscriptionExamen","getInscripcionExamen","anioInscripcion","toLocaleString","_values$alumnoObj","handleOnStudentChange","InscripcionExamen_InscriptionForm","onAlumnoChanges","AddInscriptionForm","getShowQuantities","onStudentEnrollmentChanges","handleFilterChangeText","filterValue","Label","paddingBottom","for","doc","debounce","mainFunction","delay","timer","_len","args","Array","_key","clearTimeout","AddInscriptionFormContainer","_ref$loadStudents","_ref$filterValue","_ref2$alumnos","_values$alumnos","inscripcionExamenSaves","alumnosToShow","editedStudentEnrollments","newAlumnos","elementsIndex","studentEnrollment","_this$state$alumnos","transformText","normalize","toLowerCase","getAlumnos","_this$state2$filterVa","sortColumn","sortType","_this$state2$alumnos","tma","sort","b","localeCompare","onShowOnlyEnrolledChanges","debouncedHandleFilterChangeText","_this$state3$examen","_examen$materia","InscripcionExamen_AddInscriptionForm","interventor","interventorAuxiliar","fechaLimiteInscripcion","ExamForm","autoguardarNota","trow","inscriptos","_row$key","inscripcionId","handleActualizarNotasProfesor","editExamInscription","addExamInscription","deleteExamInscription","handleDeleteInscription","_this$props$estado","handleShowPreviewRecuperatorioExam","handleDownloadRespaldoDocente","_materia$label$replac","_materia$label$replac3","_materia$label$replac4","handleOpenExam","printFinalButton","_this$props3$instanci","instanciasExamen","stumpButton","_this$props4","openButton","esAdminRoot","_this$props5","printAllButton","_this$props6","printRecuperatorioButton","_this$props7","_this$props7$instanci","_this$props7$inscript","descargarRespaldoDocenteButton","_this$props8","_this$props8$materia","esInconsistente","asistenciaMateria","ppMateria","scoreInputStyle","canEdit","usuarioInscripcion","asistencia","score","_this$props9","_this$props9$profesor","carreras","onSubjectChanges","periodosLectivos","notasObservaciones","_this$props9$carrera","_this$props9$periodo","_this$props9$periodoL","periodoLectivo","_this$props9$materia","_this$props9$interven","_this$props9$interven2","_ref13","ExamFormContainer","fetchCurrentExam","toISOString","fetchExam","interventorId","profesorId","interventorAuxiliarId","carreraId","periodoLectivoId","aula","newInscriptos","_objectSpread4","_objectSpread3","_objectSpread2","filtrarMaterias","handleOnSubjectChange","_objectSpread5","profesorName","prev","_this$state$carreras","_this$state$instancia","Exams_ExamForm_ExamForm","PreviewFormContainer","instanciaExamen","getCalificacionText","getObservacion","print","fontFamily","toUpperCase","align","lineHeight","pageBreakAfter","face","fontSze","marginLeft","textIndent","fontVariant","trimEnd","lang","cellPadding","cellSpacing","valign","rowSpan","reportTitle","_exam$inscriptos","getValue","number","handleOnPrint","_this$state$print","ciLabel","ExampleCard","MateriasPage","components_ExampleCard","MallaPage","ExampleTwo_components_ExampleCard","MateriaPeriodoContainer","_ref$pageInfo","handleDeleteAction","record","edit","tieneHorario","UncontrolledPopover","trigger","PopoverHeader","PopoverBody","ObjetivosMateriaTable","_ref$fields","deleted","maxHeight","objetivo","autofocus","CronogramaClasesTable","_","newValue","PracticaLaboratorioTable","multiple","sx","ProyectoTrabajoPracticoTable","duracionActividad","ActividadComplementariaTable","val","contribucionMateria","fundamentacionMateria","valoresContemplados","metodologiaEnsenhanza","estrategiasEvauacion","objetivosMaterias","bibliografiaBasica","cronogramaClases","practicasLaboratorios","proyectosTrabajosPracticos","contenidos","profesorMateria","unidad","actividad","descripcion","duracion","evaluacion","actividadesComplementarias","descripcionActividad","beneficiarios","fechas","cantidadHoras","PlaneamientoForm","dropdownOpen","buttonToolbar","createPlanning","loadingPage","finEditarPlaneamiento","onCopyLastPlanning","oldPlannings","Dropdown","DropdownToggle","block","DropdownMenu","right","DropdownItem","oldMateriaPeriodo","old","oldMateriaPeriodoId","showPlanning","listProfesores","page1","page2","page3","page4","page5","page6","page7","page8","page9","_this$props3$horarios","_this$props3$profesor","_this$props3$preRequi","_this$props7$cronogra","_this$props8$practica","_this$props8$duracion","_this$props9$proyecto","_this$props9$duracion","_this$props10","_this$props10$activid","_this$props11","_this$props12","_this$props12$horario","_this$props12$profeso","onDownload","savePlanning","paylaod","IndexContainer","handleDownload","planningId","fetchCurrentRecord","getPlanning","planning","fetchOldPlannings","materiaMallaId","setPlanning","listOldPlannings","DuracionActividad","handleAddItemArray","newIndex","handleDeleteItemArray","_ref5$index","handleCopyLastPlanning","_values$isNew","oldPlanning","_values$cronogramaCla2","_values$practicasLabo2","pl","entries","flatMap","_values$cronogramaCla","_values$practicasLabo","_planning$objetivosMa","_planning$cronogramaC","_planning$practicasLa","_planning$proyectosTr","_planning$actividades","_planning$profesores","components_form","profesorAuxiliar1","profesorAuxiliar2","profesorAuxiliar3","MateriaPeriodoForm","getOptionsTipoActividadAcademica","tipoActividadAcademica","tipoActividadAcademicaHorarios","taa","onGetAlumnosMateria","getProfesoresMateria","renderHorarios","_ref$tipoActividadAca","_ref$diasSemana","diasSemana","_ref$horarios","onAddSubjectsSchedule","onDeleteSubjectSchedule","profesoresMateria","horario","onInputChange","handleInputChange","planeamientoForm","Profesor_PlaneamientoForm","calculatePPFromTasks","canEditTask","cols","editarNotas","onDownloadAlumnosMateriaNotas","editarAsistencias","loadingAlumnosMateria","inline","showAssistPercentageInScores","downloadAlumnosMateriaNotas","materiaMalla","updateAlumnosMateria","handleAddSubjectsSchedule","_this$state$horarios","handleDeleteSubjectSchedule","_this$state$horarios2","fetchSubjects","meshId","_ref15","fetchSubjectsByMeshId","profesorAuxiliar1Id","profesorAuxiliar2Id","profesorAuxiliar3Id","handleOnFilterChanges","updateSubjectsScheduleTable","newHorarios","horarioChanged","getTime","EditForm_MateriaPeriodoForm","ProfesorDashboardContainer","ProfesorSubjectsContainer","viewAsProfesor","viewAsAdmin","getSubjects","editRow","_onError","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","next","stop","_x","t0","t1","sent","ToggleButtonField","renderToggleButtonField","ToggleButton_ToggleButtonField","_ref$descripcion","_ref$puntajeTotal","_ref$fechaEntrega","fechaEntrega","_ref$tipoTarea","StudentsScoresTable","onSort","editScore","tarea","HomeworkForm","handleSort","_this$props2$tiposTar","tiposTareas","_this$props2$descripc","tareaMateriaAlumnos","finCalificarTareas","FormGroup","_ref$TipoTarea","TipoTarea","_this$state$tarea","getHomework","_this$state$tarea2","porcentajePesoMateria","tareaId","onHideForm","debouncedAutoSaveScore","getTareaMateriaAlumnos","_this$state$filterVal","_this$state$tarea$tar","autoSaveScore","scoreStudent","inscripcionMateriaId","_this$state2$tiposTar","HomeworkForm_form","filterHomework","recordId","handleChangeChecked","checkBoxLabelStyle","Homework_HomeworkForm","textWrap","margin","_ref$date","AssistValues","StudentAssistancesTable","onChangeChecked","thStyle","_AssistValues$filter","_AssistValues$filter3","surname","AssistanceForm","logContents","room","AssistanceFormContainer","getAssistance","endHomework","_ref2$students","assistance","_values$logContent","_values$present","logContentId","_ref3$payload","_ref4$target","debouncedAutoSavePresent","_ref7$target","getStudents","_this$state$assistanc","autoSavePresent","assistanceForm","Form_form","FormModal","_props$onCancel","getState","maxWidth","es","react","OwnerPopover","onGetAssistance","onGetCurrentStudent","_React$useState","_React$useState2","open","setOpen","_React$useState3","_React$useState4","setAssistance","Popover","flip","handlePresent","handleAbsent","_ref7$students","refreshFormDatas","editAssistance","fetchAll","showFormModal","_ref11$id","_this$state5$students","getCurrentStudent","_this$state6$students","studentIndex","rowGap","_students$studentInde","_students$studentInde2","studentAssistanceForm","_this$state8","Assistance_Form","studentAssistanceFormModal","_this$state9","_this$state10","_ref17","_ref18","_ref20","_ref21","_ref21$assistPerc","_ref22","_ref23","_this$state11","EditarNotasDialog","inscripcionMateria","onValueChanges","_inscripcionMateria$p","_inscripcionMateria$p2","persist","getElementById","textContent","noValidate","required","ProfessorDataContainer","refreshTables","updateMateriaPeriodo","handleChangeUtilizaPorcentajePesoMateria","allow","tareas","currentInscription","downloadAlumnosMateria","downloadSubjectStudents","getStutus","changeStatus","_ref2$materiaPeriodo","button","handlePublishSubject","handleStampSubject","showTabStudentAssistance","containers_Assistance","columnsStudents","scores","t","whiteSpace","_ref5$calificaciones","calificaciones","puntaje","Homework","periods","getPeriods","downloadAlumnos","downloadStudentsInscriptos","StudentSubjectFilterForm","semestres","onFilter","formData","distinctMaterias","self","x","todasLasMaterias","_this$setState2","handleOnFilter","descargarReporteAlumnosPorMaterias","FilterForm","StudentFilterForm","downloadStudents","ReporteAlumnos_FilterForm","AcademicStatusForm","getScoreName","pop","getScoreSubject","semester","calificacionesMaterias","verticalAlign","getScoreDetails","direccion","calificacionesSemestres","xm","borderless","parseInt","NumberFormat","se","bordered","AcademicStatusContainer","_this$props$id","reporteAcademicStatusStudent","AcademicStatus_AcademicStatusForm","PeriodosContainer","updatePeriodosTable","handleDeletePeriodo","editPeriodo","columnStyle","activo","inicioClases","finClases","inicioPeriodoInscripcion","finPeriodoInscripcion","esSemestrePar","anhoLectivo","PeriodoForm","agregarOquitarMaterias","editMateriaPeriodo","deleteMateriaPeriodo","handleDeleteMateriaPeriodo","onCarreraChanges","filterMaterias","getCarreras","aniosLectivos","PeriodoFormContainer","removeMateriaPeriodo","Periodos_PeriodoForm_PeriodoForm","onMateriaPeriodoChanges","fetchEditSubjectsFormData","EditarMateriasForm","_this$props2$filters","moveSection","idPeriodo","_this$state$filters","MateriaPeriodo_MateriaPeriodoForm","section","checkAll","MoveSectionForm","groupBy","rv","getYears","datas","count","onCheckAllChanges","_this$props$students","_this$props$sections","sections","inscriptionId","MoveSectionFormContainer","fetchStudentsBySubject","_ref2$sections","_values$students","inscripcionToMove","_fullName$0$split","firstName","_fullName$1$split","lastName","stundent","newData","_this$state3$filterVa","_this$state4$editedSt","_this$state4$sections","MateriaPeriodo_MoveSectionForm","MallasContainer","updateMallasTable","handleDeleteMalla","editMalla","fechaVigencia","usarPorDefecto","ModalComponent","getIcon","modal","btn","colored","header","modalClass","modal-dialog--colored","modal-dialog--header","MallaForm","editMateriaMalla","deleteMateriaMalla","handleDeleteMateriaMalla","handleOkModal","handleCancelModal","MallaFormContainer","Mallas_MallaForm_MallaForm","AuditLogContainer","fetchAllUAuditLog","auditTypes","getAuditTypes","showData","tipo","getUrlId","match","getUrlIdDetail","idDetail","Pages","Switch","Route","exact","render","Edit","Students_Edit","StudentSubjects","StudentData","StudentSubjects_InscriptionForm","Inscription","StudentsDashboard","StudentExamInscription","MyExamsContainer","AddIndex","InscripcionExamen","Exams_ExamForm","ShowFinalReport","ShowRecuperatorioReport","ShowAllReport","ExamplePageOne","ExamplePageTwo","MateriasPeriodo","EditForm","PeriodoContainer","Periodos_PeriodoForm","MateriaPeriodo","MoveSectionIndex","EditarMaterias","MallaContainer","Mallas_MallaForm","ProfesorDashboard","ProfesorSubjects","ProfessorData","ReporteInscripcion","ReporteAlumnos","AcademicStatus","ReporteAlumnosPorMaterias","wrappedRoutes","containers_Layout","bottombar_Bottombar","Router","App_MainWrapper","innerProps","containers_LogIn","containers_FirstLogIn","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","react_dom__WEBPACK_IMPORTED_MODULE_1__","_containers_App_App__WEBPACK_IMPORTED_MODULE_2__","CREATE_NEW_USER","SET_USER_VALUE","FETCH_USER_LOADING","FETCH_USER_SUCCESS","FETCH_USER_FAILED","POST_USER_LOADING","POST_USER_SUCCESS","POST_USER_FAILED","_api_index__WEBPACK_IMPORTED_MODULE_0__","_api_urls__WEBPACK_IMPORTED_MODULE_1__","currentUserSubject","BehaviorSubject","SET_LOGIN_VALUE","LOGIN_LOADING","LOGIN_SUCCESS","LOGIN_FAILED","LOGOUT","loginLoading","loginSuccess","loginFailed","getLoginData","storeUserLogin","loginData","C_DATA_Development_Fiuni_IntegralFull_code_IntegralSolution_Integral_ClientApp_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","response","CHANGE_SIDEBAR_VISIBILITY","CHANGE_MOBILE_SIDEBAR_VISIBILITY","CHANGE_USER_VIEW_AS","FETCH_USERS_LOADING","FETCH_USERS_SUCCESS","FETCH_USERS_FAILED","initialState","themeReducer","CHANGE_THEME_TO_DARK","CHANGE_THEME_TO_LIGHT","defaultView","sidebarReducer","action","CHANGE_DIRECTION_TO_LTR","CHANGE_DIRECTION_TO_RTL","rtlReducer","loginReducer","initialValue","userReducer","usersReducer","createStore","combineReducers","reducers","composeWithDevTools","applyMiddleware","thunk"],"mappings":"yFAAAA,EAAAC,EAAAC,EAAA,sBAAAC,IAAAH,EAAAC,EAAAC,EAAA,sBAAAE,IAAAJ,EAAAC,EAAAC,EAAA,sBAAAG,IAAAL,EAAAC,EAAAC,EAAA,sBAAAI,IAAAN,EAAAC,EAAAC,EAAA,sBAAAK,IAAAP,EAAAC,EAAAC,EAAA,sBAAAM,IAAAR,EAAAC,EAAAC,EAAA,sBAAAO,IAAAT,EAAAC,EAAAC,EAAA,sBAAAQ,IAAAV,EAAAC,EAAAC,EAAA,sBAAAS,IAAAX,EAAAC,EAAAC,EAAA,sBAAAU,IAAAZ,EAAAC,EAAAC,EAAA,sBAAAW,IAAO,IACMV,EAAQ,GAAAW,OADE,OACF,aACRV,EAAW,GAAAU,OAFD,OAEC,aACXT,EAAc,GAAAS,OAHJ,OAGI,gBACdR,EAAkB,GAAAQ,OAJR,OAIQ,oBAClBP,EAAQ,GAAAO,OALE,OAKF,UACRN,EAAW,GAAAM,OAND,OAMC,aACXL,EAAkB,GAAAK,OAPR,OAOQ,oBAClBJ,EAAW,GAAAI,OARD,OAQC,aACXH,EAAoB,GAAAG,OATV,OASU,sBAIpBF,GAHa,GAAAE,OAVH,OAUG,eACF,GAAAA,OAXD,OAWC,aACA,GAAAA,OAZD,OAYC,aACF,GAAAA,OAbC,OAaD,YACTD,EAAa,GAAAC,OAdH,OAcG,mSCdpBC,EAAa,SAAAC,GAIb,IAHJC,EAGID,EAHJC,OACAC,EAEIF,EAFJE,YAEIC,EAAAH,EADJI,YACI,IAAAD,EADG,KACHA,EACEE,EAAcC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GACjEC,EAAS,CACbT,UAuBF,OApBII,IACFK,EAAOC,QAAU,CACfC,cAAa,UAAAd,OAAYO,EAAYQ,UAIpCX,GAAeE,IAClBM,EAAOI,KAAOV,EACdM,EAAOC,QAAQI,SAAW,UAGR,qBAAhBb,GAAsCE,IACxCM,EAAOC,QAAPK,OAAAC,EAAA,EAAAD,CAAA,GACKN,EAAOC,QADZ,CAEEO,eAAgBhB,IAGlBQ,EAAOI,KAAOR,KAAKa,UAAUf,IAGxBM,GAGHU,EAAe,SAACC,GACpB,GAAIA,EAAOC,GACT,OAAyB,MAAlBD,EAAOE,OAAiBC,QAAQC,QAAQJ,GAAUA,EAAOK,OAGlE,GAAsB,MAAlBL,EAAOE,OACT,OAAOF,EAAOK,OAAOC,KAAK,SAACC,GAMzB,MALQZ,OAAAC,EAAA,EAAAD,CAAA,GACHY,EADG,CAENL,OAAQF,EAAOE,WAOrB,GAAsB,MAAlBF,EAAOE,OAET,OADAf,aAAaqB,WAAW,eACjBL,QAAQC,QAAQJ,GAGzB,MAAMA,GAGFS,EAAuB,SAACT,GAC5B,GAAIA,EAAOC,GACT,OAAOD,EAAOU,OAGhB,GAAsB,MAAlBV,EAAOE,OACT,OAAOF,EAAOK,OAAOC,KAAK,SAACC,GACzB,MAAMA,IAIV,MAAMP,GAGKW,EAAS,SAAAC,GAAG,OAAIC,MAAMD,EAAKlC,EAAW,CACjDE,OAAQ,MACRC,YAAa,sBACXyB,KAAKP,IAEIe,EAAc,SAAAF,GAAG,OAAIC,MAAMD,EAAKlC,EAAW,CACtDE,OAAQ,MACRC,YAAa,sBACXyB,KAAKG,IAEIM,EAAkB,SAACH,EAAK7B,GAAN,OAAe8B,MAAMD,EAAKlC,EAAW,CAClEE,OAAQ,OACRC,YAAa,mBACbE,UACEuB,KAAKG,IAEIO,EAAgB,SAACJ,EAAKK,GACjC,IAAMlC,EAAO,IAAImC,SAGjB,OAFAvB,OAAAwB,EAAA,EAAAxB,CAAIsB,GAAOG,QAAQ,SAAAC,GAAI,OAAItC,EAAKuC,OAAOD,EAAKE,KAAMF,KAE3CR,MAAMD,EAAKlC,EAAW,CAC3BE,OAAQ,OACRG,UAECuB,KAAKG,IAGGe,EAAU,SAACZ,EAAK7B,GAAN,OAAe8B,MAAMD,EAAKlC,EAAW,CAC1DE,OAAQ,OACRC,YAAa,mBACbE,UACEuB,KAAKP,IAEI0B,EAAS,SAACb,EAAKc,EAAI3C,GAAV,OAAmB8B,MAAK,GAAApC,OAAImC,EAAJ,KAAAnC,OAAWiD,GAAMhD,EAAW,CACxEE,OAAQ,MACRC,YAAa,mBACbE,UACEuB,KAAKP,IAEI4B,EAAY,SAAAf,GAAG,OAAIC,MAAMD,EAAKlC,EAAW,CACpDE,OAAQ,SACRC,YAAa,sBACXyB,KAAKP,0DCjHTpC,EAAAC,EAAAC,EAAA,sBAAA+D,IAAAjE,EAAAC,EAAAC,EAAA,sBAAAgE,IAAAlE,EAAAC,EAAAC,EAAA,sBAAAiE,IAAA,IAAAC,EAAApE,EAAA,IASaqE,EAAqB,SAACC,EAAMC,GACvC,OAAQD,GACN,IATuB,OAUrBE,sBAAoBC,KAAK,OAAQF,GAAQ,IACzC,MACF,IAX0B,UAYxBC,sBAAoBE,QAAQ,GAAIH,GAAQ,IACxC,MACF,IAb0B,UAcxBC,sBAAoBG,QAAQ,cAAeJ,GAAQ,IACnD,MACF,IAfwB,QAgBtBC,sBAAoB5B,MAAM,QAAS2B,GAAQ,uDAQpCN,EAAuB,SAAAM,GAAI,OAAIF,EA1Bd,UA0BiDE,IAClEL,EAAuB,SAAAK,GAAI,OAAIF,EA1Bd,UA0BiDE,IAClEJ,EAAqB,SAAAI,GAAI,OAAIF,EA1Bd,QA0B+CE,wOCZrEK,cACJ,SAAAA,IAAc,IAAAC,EAAA,OAAA7C,OAAA8C,EAAA,EAAA9C,CAAA+C,KAAAH,IACZC,EAAA7C,OAAAgD,EAAA,EAAAhD,CAAA+C,KAAA/C,OAAAiD,EAAA,EAAAjD,CAAA4C,GAAAM,KAAAH,QACKI,MAAQ,CACXC,SAAS,EACTC,QAAQ,GAJER,mFAQM,IAAAS,EAAAP,KAClB,IACEQ,OAAOC,OAAO7C,KAAK,SAAC8C,GAClBA,EAAMhC,QAAQ,SAACG,GACb2B,OAAOG,OAAO9B,OAIlB+B,QAAQC,IAAI,0BACZ,MAAOC,GACPF,QAAQ/C,MAAMiD,GAGhBC,OAAOC,iBAAiB,OAAQ,WAC9BT,EAAKU,SAAS,CAAEZ,SAAS,IACzBa,WAAW,kBAAMX,EAAKU,SAAS,CAAEX,QAAQ,KAAS,OAflC,IAiBYa,EAAWJ,OAAjCK,SAAYC,SACL,KAATF,GAAwB,MAATA,GAAyB,YAATA,GACnCG,IAAMC,SAASC,YAAgB,CAC7BC,QAAS,WACPvC,YAAqB,SACrB6B,OAAOK,SAASM,KAAQ,yCAMvB,IAAAC,EACqB3B,KAAKI,MAAzBE,EADDqB,EACCrB,OAAQD,EADTsB,EACStB,QAChB,OACEuB,EAAAC,EAAAC,cAACC,EAAA,EAAD,CAAUT,MAAOA,KACfM,EAAAC,EAAAC,cAACE,EAAA,EAAD,KACEJ,EAAAC,EAAAC,cAACG,EAAA,EAAD,KACEL,EAAAC,EAAAC,cAACI,EAAA,SAAD,MACI5B,GAEEsB,EAAAC,EAAAC,cAAA,OAAKK,UAAS,OAAApG,OAASsE,EAAU,GAAK,YACpCuB,EAAAC,EAAAC,cAAA,OAAKK,UAAU,mBACbP,EAAAC,EAAAC,cAAA,OAAKK,UAAU,cACbP,EAAAC,EAAAC,cAAA,QAAMM,KAAK,UAAUlH,EAAE,kDAMjC0G,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAACO,EAAA,EAAD,CAAQC,MAAOtC,KAAKsC,QACpBV,EAAAC,EAAAC,cAACS,EAAA,sBAAD,kBAzDEC,aAmEHC,kBAAIC,EAAJD,CAAY5C,mHClFrB8C,6LAQeC,GACI5C,KAAKsC,MAAlBlB,SACKC,WAAauB,EAAUxB,SAASC,UAC3CN,OAAO8B,SAAS,EAAG,oCAMrB,OADqB7C,KAAKsC,MAAlBQ,gBAhBcC,iBAqBXC,gBAAWL,kKCtBpBM,EAAI,GAAAlH,OAAMmH,GAAN,mBAwBKC,mLAhBJ,IAAAC,EAC4DpD,KAAKsC,MAAhEe,EADDD,EACCC,8BAA+BC,EADhCF,EACgCE,wBAEvC,OACEC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,yCAAyCqB,QAASF,GAChFC,EAAA1B,EAAAC,cAAA,OAAK2B,IAAKR,EAAMS,IAAI,GAAGvB,UAAU,yBAEnCoB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,wCAAwCqB,QAASH,GAC/EE,EAAA1B,EAAAC,cAAA,OAAK2B,IAAKR,EAAMS,IAAI,GAAGvB,UAAU,iCAfTY,qDCDbY,mLAOV,IAAAP,EACuBpD,KAAKsC,MAA3BsB,EADDR,EACCQ,MAAOX,EADRG,EACQH,KAAM9B,EADdiC,EACcjC,KAErB,OACEoC,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,eAAe2B,GAAI3C,GACjCoC,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,6BAAApG,OAA+BkH,KAC9CM,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,sBAAsByB,WAbEb,iBCDxBgB,mLAOV,IAAAX,EAC0BpD,KAAKsC,MAA9BsB,EADDR,EACCQ,MAAOX,EADRG,EACQH,KAAMO,EADdJ,EACcI,QAErB,OACED,EAAA1B,EAAAC,cAAA,UAAQK,UAAU,eAAe5C,KAAK,SAASiE,QAASA,GACtDD,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,6BAAApG,OAA+BkH,KAC9CM,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,sBAAsByB,WAbGb,yCCQxCiB,EAAG,GAAAjI,OAAMmH,GAAN,mBAEHe,cAKJ,SAAAA,IAAc,IAAAnE,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAiE,IACZnE,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAgH,GAAA9D,KAAAH,QAMFqE,OAAS,WACPvE,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEC,UAAWD,EAAUC,aARvCzE,EAWd0E,cAAgB,WAAM,IACZC,EAAY3E,EAAKwC,MAAjBmC,QACRnD,IAAMC,SAASmD,YAAiB,IAChCpD,IAAMC,SAASoD,eACfF,EAAQG,KAAK,MAbb9E,EAAKM,MAAQ,CACXmE,UAAU,GAHAzE,wEAkBL,IACCyE,EAAavE,KAAKI,MAAlBmE,SAEFjI,EAAcC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GACjEmI,EACJtB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAuB7F,EAAYwI,UAE5CC,EACJxB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAb,sBAGF,OACEoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBACboB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,iBAAiBqB,QAASxD,KAAKqE,QAC7Dd,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqBsB,IAAKO,EAAKN,IAAI,WACjDpH,EAAY0I,gBAAkBH,EAAaE,EAC5CxB,EAAA1B,EAAAC,cAACmD,EAAApD,EAAD,CAAUM,UAAU,kBAErBoC,GAAYhB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,eAAeqB,QAASxD,KAAKqE,SAC1Ed,EAAA1B,EAAAC,cAACoD,EAAA,EAAD,CAAUC,OAAQZ,EAAUpC,UAAU,qBACpCoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gBACboB,EAAA1B,EAAAC,cAACsD,EAAD,CAAgBxB,MAAM,YAAYX,KAAK,OAAO9B,KAAK,8BACnDoC,EAAA1B,EAAAC,cAACsD,EAAD,CAAgBxB,MAAM,eAAeX,KAAK,OAAO9B,KAAK,4BACtDoC,EAAA1B,EAAAC,cAACsD,EAAD,CAAgBxB,MAAM,WAAWX,KAAK,QAAQ9B,KAAK,eACnDoC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACfoB,EAAA1B,EAAAC,cAACuD,EAAD,CAAkBzB,MAAM,QAAQX,KAAK,OAAOO,QAASxD,KAAKwE,cAAerD,KAAK,gBAhD9D4B,iBAwDbC,cAAWiB,GCrEbqB,EAAe,SAAAC,GAAQ,MAAK,CACvCC,IAAK,kBAAMjJ,KAAKC,MAAMiJ,eAAe/I,QAAQ6I,KAAc,IAC3DG,IAAK,SAAAC,GAAK,OAAIF,eAAeG,QAAQL,EAAUhJ,KAAKa,UAAUuI,OAKnDE,GAFctJ,KAAKC,MAAMC,aAAaC,QAAQ,gBAE7B,kBAAMH,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,CAAEsC,GAAI,EAAG8G,eAAgB,MC+DjGC,mLApDJ,IAAA3C,EAOHpD,KAAKsC,MALPe,EAFKD,EAELC,8BACAC,EAHKF,EAGLE,wBACA0C,EAJK5C,EAIL4C,eACAC,EALK7C,EAKL6C,WACAC,EANK9C,EAML8C,eAGI5J,EAAcuJ,IAEpB,OACEtC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,UACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gBACboB,EAAA1B,EAAAC,cAACqE,EAAD,CACE9C,8BAA+BA,EAC/BC,wBAAyBA,IAE3BC,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,eAAe2B,GAAG,uBAClCP,EAAA1B,EAAAC,cAAA,QAAMK,UAAW7F,EAAY8J,MAAMC,OAAS,EAAI,eAAiB,UAC/D9C,EAAA1B,EAAAC,cAAA,uBACAyB,EAAA1B,EAAAC,cAAA,UACEK,UAAU,6BACVwD,MAAK,GAAA5J,OAAKkK,GACVK,SAAU,SAAAxF,GAAC,OAAIkF,EAAeO,OAAOzF,EAAE0F,cAAcb,UAEpDrJ,EAAY8J,MAAMK,IAAI,SAAAC,GAAI,OACzBnD,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,QAAA5K,OAAU2K,EAAKA,MAAQf,MAAOe,EAAKA,MAAOA,EAAK9C,YAKhEsC,GAA2C,SAAzBA,EAAeP,OAC/BpC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,gBACdoB,EAAA1B,EAAAC,cAAC8E,EAAA,EAAD,CAAOC,MAAM,SAASC,MAAO,CAAEC,gBAAiB,cAC9CxD,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc+D,EAAec,UAMrDzD,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAACmF,EAAD,gBArDSlE,qDCJfmE,EAAc,SAAAjL,GAAA,IAClB2H,EADkB3H,EAClB2H,MAAOX,EADWhH,EACXgH,KAAMkE,EADKlL,EACLkL,QAASC,EADJnL,EACImL,MAAO5D,EADXvH,EACWuH,QADX,OAGlBD,EAAA1B,EAAAC,cAACuF,EAAA,EAAD,CACEvD,GAAIsD,EACJ5D,QAASA,EACT8D,gBAAgB,wBAEhB/D,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACXc,EAAOM,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,8BAAApG,OAAgCkH,KAAa,GACpEM,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBACVyB,EACAuD,EAAU5D,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOpF,UAAU,uBAAsBoB,EAAA1B,EAAAC,cAAA,oBAA2B,OAcrFoF,EAAYM,aAAe,CACzBvE,KAAM,GACNkE,SAAS,EACTC,MAAO,IACP5D,QAAS,cAGI0D,QCjCMO,cAiBnB,SAAAA,IAAc,IAAA3H,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAyH,IACZ3H,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAwK,GAAAtH,KAAAH,QAMFqE,OAAS,WACPvE,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEC,UAAWD,EAAUC,aANnDzE,EAAKM,MAAQ,CACXmE,UAAU,GAHAzE,wEAWL,IAAAsD,EAGHpD,KAAKsC,MADPsB,EAFKR,EAELQ,MAAOX,EAFFG,EAEEH,KAAMyE,EAFRtE,EAEQsE,MAAO5E,EAFfM,EAEeN,SAEdyB,EAAavE,KAAKI,MAAlBmE,SACFoD,EAAgBC,IAAW,CAC/BC,0BAA0B,EAC1BC,+BAAgCvD,IAGlC,OACEhB,EAAA1B,EAAAC,cAAA,OAAKK,UAAWwF,GACdpE,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,kCAAkCqB,QAASxD,KAAKqE,QAC7EpB,EAAOM,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,8BAAApG,OAAgCkH,KAAa,GACpEM,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAuByB,EACjC8D,GAASnE,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAE5BoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,kDAElBoB,EAAA1B,EAAAC,cAACoD,EAAA,EAAD,CAAUC,OAAQZ,EAAUpC,UAAU,yBACpCoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,oBACZoB,EAAA1B,EAAAC,cAAA,WACGgB,aAlD8BN,aAAxBiF,EAYZD,aAAe,CACpBvE,KAAM,GACNyE,OAAO,OC4IIK,6MAlJbC,YAAc,YAEZxE,EADoB1D,EAAKwC,MAAjBkB,cAIVyE,cAAgB,SAAAC,GAAI,OAClBA,EACE3E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACsG,EAAD,CAAiBxE,MAAM,oBAAwBX,KAAK,WAClDM,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,WAAWwD,MAAM,eAAe5D,QAAS1D,EAAKkI,cACjEzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,WAAWwD,MAAM,aAAa5D,QAAS1D,EAAKkI,cAC/DzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,WAAWwD,MAAM,aAAa5D,QAAS1D,EAAKkI,cAC/DzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,uBAAuBwD,MAAM,0BAA0B5D,QAAS1D,EAAKkI,cACxFzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,WAAWwD,MAAM,kBAAkB5D,QAAS1D,EAAKkI,cACpEzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,SAASwD,MAAM,gBAAgB5D,QAAS1D,EAAKkI,cAChEzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,eAAmBwD,MAAM,mBAAmB5D,QAAS1D,EAAKkI,eAE/EzE,EAAA1B,EAAAC,cAACsG,EAAD,CAAiBxE,MAAM,UAAUX,KAAK,WACpCM,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,cAAcwD,MAAM,kBAAkB5D,QAAS1D,EAAKkI,cACvEzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,yBACNwD,MAAM,0BACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,gCACNwD,MAAM,6BACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,qBACNwD,MAAM,yBACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,6BACNwD,MAAM,sCACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,WAAWwD,MAAM,eAAe5D,QAAS1D,EAAKkI,eAEnEzE,EAAA1B,EAAAC,cAACsG,EAAD,CAAiBxE,MAAM,aAAaX,KAAK,WACvCM,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,aAAawD,MAAM,aAAa5D,QAAS1D,EAAKkI,cACjEzE,EAAA1B,EAAAC,cAACuG,EAAD,CAAazE,MAAM,qBAAqBwD,MAAM,aAAa5D,QAAS1D,EAAKkI,gBAG3E,QAGNM,gBAAkB,SAAAJ,GAAI,OACpBA,EACE3E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,UACNwD,MAAM,2BACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,eACNwD,MAAM,0BACN5D,QAAS1D,EAAKkI,cAEhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,kBACNwD,MAAM,uBACN5D,QAAS1D,EAAKkI,eAGhB,QAGNO,kBAAoB,SAAAL,GAAI,OACtBA,EACE3E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,UACNwD,MAAM,4BACN5D,QAAS1D,EAAKkI,cAGhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,eACNwD,MAAM,2BACN5D,QAAS1D,EAAKkI,cAGhBzE,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,kBACNwD,MAAM,eACN5D,QAAS1D,EAAKkI,eAGhB,QAGNQ,eAAiB,SAAAN,GAAI,OACnBA,EACE3E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACsG,EAAD,CAAiBxE,MAAM,UAAUX,KAAK,WACpCM,EAAA1B,EAAAC,cAACuG,EAAD,CACEzE,MAAM,sBACNwD,MAAM,yCACN5D,QAAS1D,EAAKkI,gBAIlB,8EAGG,IAAA5E,EAC6CpD,KAAKsC,MAAjDmG,EADDrF,EACCqF,aAAcC,EADftF,EACesF,cAAezC,EAD9B7C,EAC8B6C,WAC/B0C,EAAOpM,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GAE1DkM,EAA6B,IAAf3C,GAAmC,IAAfA,EAElC4C,EAAkBF,EAAKG,aACR,IAAf7C,GAAqB0C,EAAKG,aAAeH,EAAKI,gBAAkBJ,EAAKK,WAAaL,EAAKM,SAEvFC,EAAgBP,EAAKK,WACN,IAAf/C,GAAqB0C,EAAKK,WAAaL,EAAKI,gBAAkBJ,EAAKG,aAAeH,EAAKM,SAEvFE,EAAeD,GAAiBN,EAEtC,OACErF,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,kBACZoB,EAAA1B,EAAAC,cAACsG,EAAD,CAAiBxE,MAAM,OAAOX,KAAK,UACjCM,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBqB,QAASkF,GACvDnF,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAb,eAEFoB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBqB,QAASiF,GACvDlF,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAb,kBAINoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,kBACXnC,KAAKiI,cAAcW,GACnB5I,KAAKsI,gBAAgBY,GACrBlJ,KAAKuI,kBAAkBM,GACvB7I,KAAKwI,eAAeW,YAnJF3G,6BCF3B4G,EACEC,IADFD,OAAQE,EACND,IADMC,MC8CKC,GD3CaD,EAAM,CAChCpB,KAAMmB,IAAUG,KAChBjF,SAAU8E,IAAUG,OAGIF,EAAM,CAC9BnH,UAAWiH,IAGWE,EAAM,CAC5BG,UAAWL,IAGaE,EAAM,CAC9BI,MAAON,EACPO,SAAUP,ICdI,SAAAnN,GAEV,IADJwM,EACIxM,EADJwM,aAAcC,EACVzM,EADUyM,cAAerF,EACzBpH,EADyBoH,8BAA+BuG,EACxD3N,EADwD2N,QAAS3D,EACjEhK,EADiEgK,WAE/D4D,EAAejC,IAAW,CAC9BgC,SAAS,EACTE,gBAAiBF,EAAQ1B,KACzB6B,oBAAqBH,EAAQrF,WAG/B,OACEhB,EAAA1B,EAAAC,cAAA,OAAKK,UAAW0H,GACdtG,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBqB,QAASH,IACzDE,EAAA1B,EAAAC,cAACkI,EAAAnI,EAAD,CAAWM,UAAU,0BACnBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,8CACboB,EAAA1B,EAAAC,cAACmI,EAAD,CACEzG,QAAS,aACTiF,aAAcA,EACdC,cAAeA,EACfzC,WAAYA,KAGhB1C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6CACboB,EAAA1B,EAAAC,cAACmI,EAAD,CACEzG,QAASH,EACToF,aAAcA,EACdC,cAAeA,EACfzC,WAAYA,iBChBlBiE,6MAQJ5G,wBAA0B,YAExB/B,EADqBzB,EAAKwC,MAAlBf,UACC+B,kBAGXD,8BAAgC,YAE9B9B,EADqBzB,EAAKwC,MAAlBf,UACC8B,kBAGXoF,aAAe,YAEblH,EADqBzB,EAAKwC,MAAlBf,UACC4I,kBAGXzB,cAAgB,YAEdnH,EADqBzB,EAAKwC,MAAlBf,UACC6I,kBAGXpE,eAAiB,SAACqE,GAAa,IAAAjH,EACCtD,EAAKwC,MAA3Bf,EADqB6B,EACrB7B,SAAUkD,EADWrB,EACXqB,QAClBlD,EAASmD,YAAiB2F,IAE1B,IAAM1B,EAAOpM,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GAE3DiM,EAAK3J,GAKO,IAAbqL,GAAkB1B,EAAKK,SACzBvE,EAAQG,KAAK,4BAIE,IAAbyF,GAAkB1B,EAAKG,WACzBrE,EAAQG,KAAK,6BAIfH,EAAQG,KAAK,UAdXH,EAAQG,KAAK,8EAiBR,IAAA0F,EACsCtK,KAAKsC,MAA1CsH,EADDU,EACCV,QAAS1D,EADVoE,EACUpE,eAAgBzB,EAD1B6F,EAC0B7F,QACzBwB,EAAe2D,EAAf3D,WACFsE,EAAc3C,IAAW,CAC7B4C,QAAQ,EACRC,mBAAoBb,EAAQrF,WAK9B,OAFoBsB,IAEH7G,GAMfuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAWoI,GACdhH,EAAA1B,EAAAC,cAAC4I,EAAD,CACErH,8BAA+BrD,KAAKqD,8BACpCC,wBAAyBtD,KAAKsD,wBAC9B0C,eAAgBhG,KAAKgG,eACrBC,WAAYA,EACZC,eAAgBA,IAElB3C,EAAA1B,EAAAC,cAAC6I,EAAD,CACEf,QAASA,EACTnB,aAAczI,KAAKyI,aACnBC,cAAe1I,KAAK0I,cACpBrF,8BAA+BrD,KAAKqD,8BACpC4C,WAAYA,MAlBhBxB,EAAQG,KAAK,KACN,aAhEQpC,aAwFNQ,cAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtBV,IChFWW,EAvBG,SAAA5O,GAAwB,IAArB6J,EAAqB7J,EAArB6J,eACXgF,EAAwBhF,EAAxBgF,QAASC,EAAejF,EAAfiF,WAEjB,OACExH,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,aACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,uBACrCP,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mBACdoB,EAAA1B,EAAAC,cAAA,UACGgJ,EADH,wBACiCC,QCRvCC,mLAQK,IAAA5H,EAGHpD,KAAKsC,MADP2I,EAFK7H,EAEL6H,MAAOnI,EAFFM,EAEEN,SAAUoI,EAFZ9H,EAEY8H,IAGbzB,EAAkC,MALjCrG,EAEiBhC,SAGGC,SAAmB,MAAQ6J,EAAIzB,UAE1D,OACElG,EAAA1B,EAAAC,cAAA,OAAKK,UAAS,GAAApG,OAAKkP,EAAM9I,UAAX,KAAApG,OAAwB0N,EAAxB,YAA6C0B,IAAK1B,GAC9DlG,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,WACZW,WAlBeC,iBAyBXC,cAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1C6K,MAAO7K,EAAM6K,MACbC,IAAK9K,EAAM8K,MAFaN,CAGtBI,iOC3BEI,iOAgCK,IAAAhI,EAYHpD,KAAKsC,MAVP+I,EAFKjI,EAELiI,SACAlJ,EAHKiB,EAGLjB,UACAtD,EAJKuE,EAILvE,KACA8G,EALKvC,EAKLuC,MACAW,EANKlD,EAMLkD,SACAU,EAPK5D,EAOL4D,MACAH,EARKzD,EAQLyD,MACAyE,EATKlI,EASLkI,eACAxE,EAVK1D,EAUL0D,MACAyE,EAXKnI,EAWLmI,WAGIC,EAAgB5D,IAAW,CAC/B6D,gBAAgB,EAChBJ,aAGIK,EAAoB,KAAV/F,EAAeA,EAAQ2F,EACjCK,EAAeD,EAAU,wBAA0B,GACnDE,EAAU,GAAA7P,OAAMyP,EAAN,KAAAzP,OAAuB4P,EAAvB,KAAA5P,OAAuCoG,EAAS,iBAAApG,OAAoBoG,GAAc,IAElG,OACEoB,EAAA1B,EAAAC,cAAA,SACEgF,MAAOyE,EACPpJ,UAAWyJ,EACXC,QAAShN,GAET0E,EAAA1B,EAAAC,cAAA,SACEgF,MAAOA,EACP3E,UAAU,yBACV5C,KAAK,WACLP,GAAIH,EACJA,KAAMA,EACNyH,SAAUA,EACVoF,QAASA,EACTL,SAAUA,IAEZ9H,EAAA1B,EAAAC,cAAA,QACEK,UAAU,gCACV2E,MAAOD,EAAQ,CAAEiF,WAAYjF,EAAOkF,YAAalF,GAAU,IAE3DtD,EAAA1B,EAAAC,cAACkK,GAAAnK,EAAD,OAEa,WAAdM,EAEGoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BACdoB,EAAA1B,EAAAC,cAACkK,GAAAnK,EAAD,CAAWM,UAAU,8BACrBoB,EAAA1B,EAAAC,cAACmK,GAAApK,EAAD,CAAWM,UAAU,iCAErB,GACNoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,uBACb6E,WArFiBjE,iBAAtBqI,GAiBG5D,aAAe,CACpBR,MAAO,GACPsE,gBAAgB,EAChBD,UAAU,EACVlJ,UAAW,GACX2E,MAAO,GACPyE,WAAY,GACZ1E,MAAO,IAoEX,IAAMqF,GAAsB,SAAC5J,GAAU,IAEnC6J,EAWE7J,EAXF6J,MACAnF,EAUE1E,EAVF0E,MACAsE,EASEhJ,EATFgJ,eACAD,EAQE/I,EARF+I,SACAlJ,EAOEG,EAPFH,UACA0E,EAMEvE,EANFuE,MACAC,EAKExE,EALFwE,MACAyE,EAIEjJ,EAJFiJ,WATmCa,EAajC9J,EAHF+J,KACEC,EAXiCF,EAWjCE,QAASzO,EAXwBuO,EAWxBvO,MAIb,OACE0F,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kEACboB,EAAA1B,EAAAC,cAACyK,GAADtP,OAAAuP,OAAA,GACML,EADN,CAEEnF,MAAOA,EACPsE,eAAgBA,EAChBD,SAAUA,EACVlJ,UAAWA,EACX2E,MAAOA,EACPyE,WAAYA,EACZ1E,MAAOA,KAERyF,GAAWzO,GAAS0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BtE,KA2BrEqO,GAAoB1E,aAAe,CACjCR,MAAO,GACPsE,gBAAgB,EAChBD,UAAU,EACVvE,MAAO,GACPyE,WAAY,GACZpJ,UAAW,GACX0E,MAAO,GACPwF,KAAM,IAGOH,UC1JAO,GARiB,SAAAC,GAAgB,gBAAAC,GAAA,SAAAC,IAAA,OAAA3P,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA4M,GAAA3P,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA2P,GAAAC,MAAA7M,KAAA8M,YAAA,OAAA7P,OAAA8P,EAAA,EAAA9P,CAAA2P,EAAAD,GAAA1P,OAAA+P,EAAA,EAAA/P,CAAA2P,EAAA,EAAAjG,IAAA,SAAAhB,MAAA,WAG1C,OAAOpC,EAAA1B,EAAAC,cAAC4K,EAADzP,OAAAuP,OAAA,GAAsBxM,KAAKsC,MAA3B,CAAkC2K,cAAejN,KAAKsC,aAHnBsK,EAAA,CAChC7J,kCCAVmK,GAAU,SAAAjR,GAcV,IAbJkQ,EAaIlQ,EAbJkQ,MACAgB,EAYIlR,EAZJkR,YACA5N,EAWItD,EAXJsD,KACA6N,EAUInR,EAVJmR,UACAC,EASIpR,EATJoR,IACAC,EAQIrR,EARJqR,IACAC,EAOItR,EAPJsR,KAOIC,EAAAvR,EANJoQ,KAAQC,EAMJkB,EANIlB,QAASzO,EAMb2P,EANa3P,MACjB4P,EAKIxR,EALJwR,SACApC,EAIIpP,EAJJoP,SACAlJ,EAGIlG,EAHJkG,UACA2E,EAEI7K,EAFJ6K,MACA4G,EACIzR,EADJyR,WAEMpL,EAAKrF,OAAA0Q,GAAA,EAAA1Q,CAAA,GACNkP,GAcL,MAXa,WAAT5M,IACF+C,EAAMiL,KAAOA,EAETF,IACF/K,EAAM+K,IAAMA,GAEVC,IACFhL,EAAMgL,IAAMA,GAAO,aAAeA,EAAM,eAI/B,aAAT/N,EAEAgE,EAAA1B,EAAAC,cAAA,OAAKK,UAAS,kEAAApG,OAAoEoG,IAChFoB,EAAA1B,EAAAC,cAAA,WAAA7E,OAAAuP,OAAA,GACMlK,EADN,CAEE6K,YAAaA,EACb5N,KAAMA,EACN6N,UAAWA,EACXQ,aAAa,MACbH,SAAUA,EACVpC,SAAUA,EACVvE,MAAOA,EACP4G,WAAYA,KAEbpB,GAAWzO,GAAS0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BtE,IAMnE0F,EAAA1B,EAAAC,cAAA,OAAKK,UAAS,kEAAApG,OAAoEoG,IAChFoB,EAAA1B,EAAAC,cAAA,QAAA7E,OAAAuP,OAAA,GACMlK,EADN,CAEE6K,YAAaA,EACb5N,KAAMA,EACN6N,UAAWA,EACXQ,aAAa,MACbH,SAAUA,EACVpC,SAAUA,EACVvE,MAAOA,EACP4G,WAAYA,KAEbpB,GAAWzO,GAAS0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BtE,KA2BrEqP,GAAQ1F,aAAe,CACrBV,MAAO,GACPqG,YAAa,GACbd,KAAM,GACN9M,KAAM,OACN8N,IAAK,GACLC,IAAK,GACLC,KAAM,GACNH,UAAW,GACXS,MAAO,GACPC,iBAAiB,EACjBL,UAAU,EACVpC,UAAU,EACVlJ,UAAW,GACX4L,QAAS,GACTL,WAAY,kBAAM,IAGLR,uCCTAc,GAhGC,SAAVA,EAAU/R,GAUV,IATJ2H,EASI3H,EATJ2H,MACAqK,EAQIhS,EARJgS,SACAC,EAOIjS,EAPJiS,SACAC,EAMIlS,EANJkS,WACAC,EAKInS,EALJmS,QACAC,EAIIpS,EAJJoS,UACAC,EAGIrS,EAHJqS,SACAC,EAEItS,EAFJsS,QACA1H,EACI5K,EADJ4K,MAgBAmH,EAAQxG,aAAe,CACrB0G,SAAU,KACVE,QAAS,aACTvH,MAAO,UACPyH,SAAU,cA8DZE,wBAAa,CACXC,SA5De,SAAAC,GAAA,IAAGC,EAAHD,EAAGC,QAAH,OACfpL,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAC8M,GAAA,EAAD,CACEC,KAAK,KACL1J,QAAM,EACN2J,eAAe,oBACf3M,UAAS,iBAAApG,OAAmB8K,GAAS,UAA5B,KAAA9K,OA3BI,yBA6BbwH,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,4BAA4ByB,IAE5CL,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACZ8L,GAEH1K,EAAA1B,EAAAC,cAACiN,GAAA,EAAD,CAAe5M,UAAU,iBACvBoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACE7M,UAAU,eACVqB,QAAS,WACH8K,GACFA,IAEFK,MAGDP,GAGDD,GACE5K,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACE7M,UAAU,WACV0E,MAAOA,GAAS,UAChBrD,QAAS,WACP+K,IACAI,MAGDR,GAIP5K,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACE7M,UAAU,WACV0E,MAAOA,GAAS,UAChBrD,QAAS,WACP6K,IACAM,MAGDT,UCrEEe,GAhBE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAWf,OAVKD,EAAMzF,MAEC,4CAA4C2F,KAAKF,EAAMzF,SACjE0F,EAAO1F,MAAQ,uCAFf0F,EAAO1F,MAAQ,0CAIZyF,EAAMxF,WACTyF,EAAOzF,SAAW,kCAEpByF,EAAOE,QAAyC,IAA/BrS,OAAOwD,KAAK2O,GAAQ/I,OAE9B+I,GCEHG,eAQJ,SAAAA,IAAc,IAAAzP,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAuP,IACZzP,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAsS,GAAApP,KAAAH,QAQFwP,aAAe,SAAC1O,GACdA,EAAE2O,iBACF3P,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEkL,cAAelL,EAAUkL,iBAX3C1P,EAcd4P,aAAe,SAACC,GACd7P,EAAKmB,SAALhE,OAAA2S,GAAA,EAAA3S,CAAA,GAAiB0S,EAAME,OAAOhR,KAAO8Q,EAAME,OAAOlK,SAftC7F,EAkBdgQ,kBAAoB,SAACxN,GAEnB,GADkBA,EAAVyN,MACR,CAF6B,IAMrBrG,EAAU5J,EAAKM,MAAfsJ,MAERsE,GAAQ,CACNpK,MAAO,4BACPqK,SAAQ,8DAAAlS,OAAgE2N,EAAhE,KACRwE,SAAU,kBACVE,QAAS,aACTC,UAAW,WACTyB,aAAkBpG,EAAO,CACvBsG,UAAW,WAET9Q,aAAoB,GAAAnD,OADR,2CACQ,4DACpB+D,EAAKmB,SAAS,CAAEgP,eAAe,KAEjCxO,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,uDA1CjBU,EAkDdoQ,aAAe,SAAChB,GAEd,OAAOgB,EADkBpQ,EAAKwC,MAAtB4N,cACYhB,IApDRpP,EAuDdqQ,YAAc,kBACZ5M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gCACboB,EAAA1B,EAAAC,cAACsO,GAAA,EAAD,CAASvJ,MAAM,UAAUC,MAAO,CAAEuJ,MAAO,OAAQC,OAAQ,YAzD/CxQ,EA6DdyQ,WAAa,SAACf,EAAcgB,EAAYC,GAA3B,OACXlN,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC4O,GAAA7O,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,QACZ7G,SAAUxG,EAAK4P,iBAIrBnM,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC+O,GAAAhP,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW1D,GACX3N,KAAMiQ,EAAe,OAAS,WAC9BrC,YAAY,eAEd5J,EAAA1B,EAAAC,cAAA,UACEK,UAAS,0BAAApG,OAA4ByT,EAAe,UAAY,IAChEhM,QAAS,SAAA1C,GAAC,OAAIhB,EAAK0P,aAAa1O,IAChCvB,KAAK,UACNgE,EAAA1B,EAAAC,cAACgP,GAAAjP,EAAD,SAIL0B,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,2BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1E,GACXlF,MAAM,iBAIZzD,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,mDACVkJ,SAAUoF,GAAYD,GAHxB,YAMAjN,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEnI,MAAM,OACNgI,KAAK,KACLrL,QAAS,kBAAM1D,EAAKmB,SAAS,CAAEgP,eAAe,MAE9C1M,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,mBAAmB4O,cAAY,SAL9C,sCAjHUjR,EA2HdkR,kBAAoB,kBAClBzN,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC4O,GAAA7O,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,QACZ7G,SAAUxG,EAAK4P,iBAIrBnM,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,2BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1E,GACXlF,MAAM,iBAIZzD,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVqB,QAAS,kBAAM1D,EAAKgQ,kBAAkBhQ,EAAKwC,SAH7C,eAMAiB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEnI,MAAM,YACNgI,KAAK,KACLrL,QAAS,kBAAM1D,EAAKmB,SAAS,CAAEgP,eAAe,MAHhD,cAzJFnQ,EAAKM,MAAQ,CACXoP,cAAc,EACd9F,OAAO,EACPuG,eAAe,GALLnQ,wEAoKL,IAAAS,EAAAP,KAAA2B,EACiC3B,KAAKI,MAArCoP,EADD7N,EACC6N,aAAcS,EADftO,EACesO,cADf7M,EAEqCpD,KAAKsC,MAAzCkO,EAFDpN,EAECoN,WAAYC,EAFbrN,EAEaqN,SAAUQ,EAFvB7N,EAEuB6N,UAE9B,OAAIhB,EAEA1M,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,OAAO+O,SAAU,SAAAhC,GAAM,OAAI3O,EAAK2P,aAAahB,KAEzDlP,KAAKgR,qBAOXzN,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,OAAO+O,SAAU,SAAAhC,GAAM,OAAI3O,EAAK2P,aAAahB,KAExD+B,EAA4CjR,KAAKmQ,YAAYK,EAAYC,GAA7DzQ,KAAKuQ,WAAWf,WA7LnBzM,iBAyML0J,MALG0E,aAAU,CAC1BC,KAAM,YACNnC,SAAUoC,IAFMF,CAGf5B,KCzMG+B,eACJ,SAAAA,IAAc,IAAAxR,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsR,IACZxR,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqU,GAAAnR,KAAAH,QAWFkQ,aAAe,SAAChB,GACdpP,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAE2M,WAAY3M,EAAU2M,aAD3B,IAAA7N,EAGgCtD,EAAKwC,MAA/CiP,EAHUnO,EAGjBoO,MAAoB/M,EAHHrB,EAGGqB,QAE5B,OADAgN,EAJyBrO,EAGYqO,iBACrB,YAAa,WAAY,mBAClCF,EAAYrC,EAAQ,CACzBc,UAAW,WACT,IAAM1T,EAAcC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GACvE,OAAIJ,EAAY0M,UACdlJ,EAAKkG,eAAe,QACpBvB,EAAQG,KAAK,6BAIXtI,EAAYwM,YACdhJ,EAAKkG,eAAe,QACpBvB,EAAQG,KAAK,mCAIfH,EAAQG,KAAK,eAEf8M,aAAc,WACZjN,EAAQG,KAAK,kBAEfnD,QAAS,WACPtC,aAAqB,wCACrBW,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAE2M,WAAY3M,EAAU2M,iBAvC5CnR,EA4CdkG,eAAiB,SAACqE,IAEhB9I,EADqBzB,EAAKwC,MAAlBf,UACCmD,YAAiB2F,KA5C1BvK,EAAKM,MAAQ,CACX6Q,WAAW,GAHDnR,qHAiDL,IACCmR,EAAcjR,KAAKI,MAAnB6Q,UAER,OACE1N,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,WACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,kBAAd,eACEoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,iBAAhB,YACEoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,WAGJoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,4BAAd,8BAEFoB,EAAA1B,EAAAC,cAAC6P,GAAD,CACET,SAAUlR,KAAKkQ,aACfe,UAAWA,IAEb1N,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,6BAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CACE1B,UAAU,oDACV2B,GAAG,cACJP,EAAA1B,EAAAC,cAAC8P,GAAA/P,EAAD,OAED0B,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CACE1B,UAAU,kDACV2B,GAAG,cACJP,EAAA1B,EAAAC,cAAC+P,GAAAhQ,EAAD,kBAjFckB,iBA2GdC,eAAW4H,YATF,iBAAO,IAEJ,SAAArJ,GAAQ,OAAIuQ,8BAAmB,CACxDN,UACA7M,WACA8M,gBAAiBM,KACjBxQ,YACCA,IAEuBqJ,CAGxB0G,KC/FarC,GA5BE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAuBf,OAtBKD,EAAMzF,MAEC,4CAA4C2F,KAAKF,EAAMzF,SACjE0F,EAAO1F,MAAQ,uCAFf0F,EAAO1F,MAAQ,0CAIZyF,EAAMxF,WACTyF,EAAOzF,SAAW,yCAEfwF,EAAM6C,cACT5C,EAAO4C,YAAc,wCAEnB7C,EAAM6C,aAAe7C,EAAM8C,0BAA4B9C,EAAMxF,WAC/DyF,EAAO4C,YAAc,uEAElB7C,EAAM8C,0BACT7C,EAAO6C,wBAA0B,yCAE/B9C,EAAM8C,yBAA2B9C,EAAM8C,0BAA4B9C,EAAM6C,cAC3E5C,EAAO6C,wBAA0B,qFAEnC7C,EAAOE,QAAyC,IAA/BrS,OAAOwD,KAAK2O,GAAQ/I,OAE9B+I,GCfH8C,eAOJ,SAAAA,IAAc,IAAApS,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAkS,IACZpS,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAiV,GAAA/R,KAAAH,QAIFwP,aAAe,SAAC1O,GACdA,EAAE2O,iBADkB,IAEKzQ,EAAS8B,EAA1B0F,cAAiBxH,GACzBc,EAAKmB,SAAS,SAAAqD,GAAS,OAAArH,OAAA2S,GAAA,EAAA3S,CAAA,GAAQ+B,GAAMsF,EAAUtF,OAN/Cc,EAAKM,MAAQ,CAAEoP,cAAc,GAFjB1P,wEAWL,IAAAS,EAAAP,KAAA2B,EACgE3B,KAAKI,MAApEoP,EADD7N,EACC6N,aAAc2C,EADfxQ,EACewQ,gBAAiBC,EADhCzQ,EACgCyQ,4BADhChP,EAEwCpD,KAAKsC,MAA5C4N,EAFD9M,EAEC8M,aAAcM,EAFfpN,EAEeoN,WAAYC,EAF3BrN,EAE2BqN,SAC5BnU,EAAcC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GACvE,OACE6G,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC4O,GAAA7O,EAAD,OAEF0B,EAAA1B,EAAAC,cAAA,SACEjD,KAAK,QACLU,KAAK,OACL4N,YAAY,QACZxH,MAAOrJ,EAAYoN,MACnB2B,UAAQ,MAId9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC+O,GAAAhP,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW1D,GACX3N,KAAMiQ,EAAe,OAAS,WAC9BrC,YAAY,yBAEd5J,EAAA1B,EAAAC,cAAA,UACE9C,GAAG,eACHmD,UAAS,0BAAApG,OAA4ByT,EAAe,UAAY,IAChEhM,QAAS,SAAA1C,GAAC,OAAIP,EAAKiP,aAAa1O,IAChCvB,KAAK,SACL8S,SAAU,GACX9O,EAAA1B,EAAAC,cAACgP,GAAAjP,EAAD,SAIL0B,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,uBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC+O,GAAAhP,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACX3N,KAAM4S,EAAkB,OAAS,WACjChF,YAAY,wBAEd5J,EAAA1B,EAAAC,cAAA,UACE9C,GAAG,kBACHmD,UAAS,0BAAApG,OAA4BoW,EAAkB,UAAY,IACnE3O,QAAS,SAAA1C,GAAC,OAAIP,EAAKiP,aAAa1O,IAChCvB,KAAK,SACL8S,SAAU,GACX9O,EAAA1B,EAAAC,cAACgP,GAAAjP,EAAD,SAIL0B,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,yCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC+O,GAAAhP,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,0BACL+R,UAAW1D,GACX3N,KAAM6S,EAA8B,OAAS,WAC7CjF,YAAY,0CAEd5J,EAAA1B,EAAAC,cAAA,UACE9C,GAAG,8BACHmD,UAAS,0BAAApG,OAA4BqW,EAA8B,UAAY,IAC/E5O,QAAS,SAAA1C,GAAC,OAAIP,EAAKiP,aAAa1O,IAChCvB,KAAK,UACNgE,EAAA1B,EAAAC,cAACgP,GAAAjP,EAAD,SAIL0B,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,mDACVkJ,SAAUoF,GAAYD,GAHxB,0CAxGiBzN,iBAwHV0J,MALQ0E,aAAU,CAC/BC,KAAM,YACNnC,aAFqBkC,CAGpBe,KCpHGI,8MACJpC,aAAe,SAAChB,GAAW,IAAA9L,EAC0BtD,EAAKwC,MAApCiQ,EADKnP,EACjBoP,WAAoB/N,EADHrB,EACGqB,QAE5B,OADAgO,EAFyBrP,EACYqP,WAC3B,aACHF,EAAOrD,EACZ,CACEc,UAAW,WACT9Q,aAAqB,iDACrBuF,EAAQG,KAAK,iBAEfnD,QAAS,WACPtC,aAAqB,oHAM3B,OACEoE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,WACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,kBAAd,mCAEFoB,EAAA1B,EAAAC,cAAC4Q,GAAD,CACExB,SAAUlR,KAAKkQ,eAEjB3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,6BAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CACE1B,UAAU,oDACV2B,GAAG,cACJP,EAAA1B,EAAAC,cAAC8P,GAAA/P,EAAD,OAED0B,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CACE1B,UAAU,kDACV2B,GAAG,cACJP,EAAA1B,EAAAC,cAAC+P,GAAAhQ,EAAD,kBAvCmBkB,iBA8DnB6H,eAPS,iBAAO,IAEJ,SAAArJ,GAAQ,OAAIuQ,8BAAmB,CACxDU,eACAC,UAAWE,MACVpR,IAEYqJ,CAGb0H,iNCnEmBM,8MAQnBC,QAAU,SAACC,GAAS,IAAA1P,EACgCtD,EAAKwC,MAA/CyQ,EADU3P,EACV2P,WAAYC,EADF5P,EACE4P,YAAaC,EADf7P,EACe6P,aAG3BC,EAAaC,KAAKC,KAAKL,EAAaC,GAEtCF,EAAO,GAAKA,EAAOI,GAKvBD,EAAaH,MAGfO,aAAe,WAAM,IAAA/I,EAC8BxK,EAAKwC,MAA9CyQ,EADWzI,EACXyI,WAAYC,EADD1I,EACC0I,YAAaM,EADdhJ,EACcgJ,YAG3BC,EAAQ,GACRL,EAAaC,KAAKC,KAAKL,EAAaC,GAE1C,GAAIE,GAJgB,EAKlB,IAAK,IAAIM,EAAI,EAAGA,GAAKN,EAAYM,GAAK,EACpCD,EAAM3O,KAAK4O,OAER,CAELD,EAAM3O,KAAK,GACX,IACM6O,EAAeC,GAZH,IAW4CR,EAAa,EAAI,GAE/E,GAAIA,EAAa,EAAII,EAAa,CAChC,IAAMxP,EAAKqP,KAAK9F,IAAIiG,EAAcH,KAAKC,KAAKK,EAAe,GAAIP,EAAa,GACtES,EAAOR,KAAK7F,IAAIgG,GAAeG,GAAgB3P,EAAKwP,IAAe,GACrEK,EAAO,GAAGJ,EAAM3O,KAAK,GACzB,IAAK,IAAI4O,EAAIG,EAAMH,GAAK1P,EAAI0P,GAAK,EAC/BD,EAAM3O,KAAK4O,GAET1P,EAAMoP,EAAa,GAAIK,EAAM3O,KAAK,OACjC,CACL,IAAM+O,EAAOR,KAAK7F,IAAIgG,EAAcH,KAAKS,MAAMH,EAAe,GAAI,GAC5D3P,EAAKqP,KAAK9F,IAAIiG,GAAeG,GAAgBH,EAAcK,IAAQT,EAAa,GAClFS,EAAO,GAAGJ,EAAM3O,KAAK,GACzB,IAAK,IAAI4O,EAAIG,EAAMH,GAAK1P,EAAI0P,GAAK,EAC/BD,EAAM3O,KAAK4O,GAET1P,EAAMoP,EAAa,GAAIK,EAAM3O,KAAK,GAExC2O,EAAM3O,KAAKsO,GAGb,OAAOH,EACLxP,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,4BACX4Q,GAAc,EAAK,GAEjBxP,EAAA1B,EAAAC,cAAC+R,GAAA,EAAD,CAAY1R,UAAU,aAAagJ,IAAI,OACrC5H,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAA0B,IAAhBiI,GACrD/P,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQ,KAE5BtP,EAAA1B,EAAAC,cAACkS,GAAAnS,EAAD,CAAuBM,UAAU,4BAGrCoB,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAA0B,IAAhBiI,GACrD/P,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQS,EAAc,KAE1C/P,EAAA1B,EAAAC,cAACmS,GAAApS,EAAD,CAAiBM,UAAU,4BAG9BoR,EAAM9M,IAAI,SAAAqM,GAAI,OACbA,EAAO,EAEHvP,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CACE3R,UAAU,mBACVwE,IAAKmM,EACLoB,OAAQZ,IAAgBR,GAExBvP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,mBACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQC,KAE3BA,IAKLvP,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CACE3R,UAAU,mBACVwE,IAAKmM,EACLoB,OAAQZ,IAAgBR,GAExBvP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,mBACV5C,KAAK,UAFP,UAURgE,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAAU2H,EAAcM,EAAcP,GACjFxP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQS,EAAc,KAE1C/P,EAAA1B,EAAAC,cAACqS,GAAAtS,EAAD,CAAkBM,UAAU,4BAGhCoB,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAAU2H,EAAcM,EAAcP,GACjFxP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQM,KAAKC,KAAKL,EAAaC,MAEnDzP,EAAA1B,EAAAC,cAACsS,GAAAvS,EAAD,CAAwBM,UAAU,6BAM5CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBACboB,EAAA1B,EAAAC,cAAA,4BAAA/F,OACiBiX,GAAeM,EAAc,GAAM,EADpD,OAGIN,EAAcM,EAAcP,EAAaA,EAAaC,EAAcM,EAHxE,OAAAvX,OAKUgX,EALV,iBASFxP,EAAA1B,EAAAC,cAAA,eAGNuS,aAAe,WAAM,IAAAC,EAC8BxU,EAAKwC,MAA9CyQ,EADWuB,EACXvB,WAAYC,EADDsB,EACCtB,YAAaM,EADdgB,EACchB,YAG3BC,EAAQ,GACRL,EAAaC,KAAKC,KAAKL,EAAaC,GAE1C,GAAIE,GAJgB,EAKlB,IAAK,IAAIM,EAAI,EAAGA,GAAKN,EAAYM,GAAK,EACpCD,EAAM3O,KAAK4O,OAER,CAELD,EAAM3O,KAAK,GACX,IACM6O,EAAeC,GAZH,IAW4CR,EAAa,EAAI,GAE/E,GAAIA,EAAa,EAAII,EAAa,CAChC,IAAMxP,EAAKqP,KAAK9F,IAAIiG,EAAcH,KAAKC,KAAKK,EAAe,GAAIP,EAAa,GACtES,EAAOR,KAAK7F,IAAIgG,GAAeG,GAAgB3P,EAAKwP,IAAe,GACrEK,EAAO,GAAGJ,EAAM3O,KAAK,GACzB,IAAK,IAAI4O,EAAIG,EAAMH,GAAK1P,EAAI0P,GAAK,EAC/BD,EAAM3O,KAAK4O,GAET1P,EAAMoP,EAAa,GAAIK,EAAM3O,KAAK,OACjC,CACL,IAAM+O,EAAOR,KAAK7F,IAAIgG,EAAcH,KAAKS,MAAMH,EAAe,GAAI,GAC5D3P,EAAKqP,KAAK9F,IAAIiG,GAAeG,GAAgBH,EAAcK,IAAQT,EAAa,GAClFS,EAAO,GAAGJ,EAAM3O,KAAK,GACzB,IAAK,IAAI4O,EAAIG,EAAMH,GAAK1P,EAAI0P,GAAK,EAC/BD,EAAM3O,KAAK4O,GAET1P,EAAMoP,EAAa,GAAIK,EAAM3O,KAAK,GAExC2O,EAAM3O,KAAKsO,GAGb,OAAOH,EACLxP,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,4BACX4Q,GAAc,EAAK,GAEjBxP,EAAA1B,EAAAC,cAAC+R,GAAA,EAAD,CAAY1R,UAAU,aAAagJ,IAAI,OACrC5H,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAA0B,IAAhBiI,GACrD/P,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQ,KAE5BtP,EAAA1B,EAAAC,cAACkS,GAAAnS,EAAD,CAAuBM,UAAU,4BAGrCoB,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAA0B,IAAhBiI,GACrD/P,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQS,EAAc,KAE1C/P,EAAA1B,EAAAC,cAACmS,GAAApS,EAAD,CAAiBM,UAAU,4BAG9BoR,EAAM9M,IAAI,SAAAqM,GAAI,OACbA,EAAO,EAEHvP,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CACE3R,UAAU,mBACVwE,IAAKmM,EACLoB,OAAQZ,IAAgBR,GAExBvP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,mBACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQC,KAE3BA,IAKLvP,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CACE3R,UAAU,mBACVwE,IAAKmM,EACLoB,OAAQZ,IAAgBR,GAExBvP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,mBACV5C,KAAK,UAFP,UAURgE,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAAU2H,EAAcM,EAAcP,GACjFxP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQS,EAAc,KAE1C/P,EAAA1B,EAAAC,cAACqS,GAAAtS,EAAD,CAAkBM,UAAU,4BAGhCoB,EAAA1B,EAAAC,cAACgS,GAAA,EAAD,CAAgB3R,UAAU,mBAAmBkJ,SAAU2H,EAAcM,EAAcP,GACjFxP,EAAA1B,EAAAC,cAACiS,GAAA,EAAD,CACE5R,UAAU,2CACV5C,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQM,KAAKC,KAAKL,EAAaC,MAEnDzP,EAAA1B,EAAAC,cAACsS,GAAAvS,EAAD,CAAwBM,UAAU,6BAM5CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBACboB,EAAA1B,EAAAC,cAAA,4BAAA/F,OACiBiX,GAAeM,EAAc,GAAM,EADpD,OAGIN,EAAcM,EAAcP,EAAaA,EAAaC,EAAcM,EAHxE,OAAAvX,OAKUgX,EALV,iBASFxP,EAAA1B,EAAAC,cAAA,qFAIJ,OACEyB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACGnI,KAAKqT,eACLrT,KAAKqU,uBAtRgCE,IAAM/R,yCCL9CgS,eA0BJ,SAAAA,EAAYlS,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAwU,IACjB1U,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAuX,GAAArU,KAAAH,KAAMsC,KACDoN,aAAe5P,EAAK4P,aAAa+E,KAAlBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAFHA,4EAKN6U,IAEXrO,EADqBtG,KAAKsC,MAAlBgE,UACCqO,oCAGF,IAAAvR,EAQHpD,KAAKsC,MANPqD,EAFKvC,EAELuC,MACAwH,EAHK/J,EAGL+J,YACAd,EAJKjJ,EAILiJ,KACAuI,EALKxR,EAKLwR,WACAC,EANKzR,EAMLyR,cACApH,EAPKrK,EAOLqK,SAEF,OACElK,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eAEboB,EAAA1B,EAAAC,cAACgT,GAAAjT,EAAD,CACEkT,QAAS,IAAIC,MAAK,IAAIA,MAAOC,cAAgB,GAAI,EAAG,GACpDC,SAAUvP,EAAQ,IAAIqP,KAAKrP,GAAS,KACpCxD,UAAU,8BACVgT,gBAAiBhI,EACjB7G,SAAUtG,KAAK0P,aACfkF,WAAU,GAAA7Y,OAAK6Y,GAAL7Y,OAAkB8Y,EAAgB,SAAW,IACvDO,eAAe,QACfC,aAAa,SACbC,kBAAgB,EAChBT,cAAeA,EACfU,eAAgBV,EAChBpH,SAAUA,KAKdlK,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC0T,GAAA3T,EAAD,OAEDwK,EAAKC,SAAWD,EAAKxO,OAAS0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BkK,EAAKxO,eArExDkF,iBAAxByR,GAiBGhN,aAAe,CACpB7B,MAAO,GACPwH,YAAa,GACbd,KAAM,KACNuI,WAAY,aACZC,eAAe,EACfpH,UAAU,GAoDd,IAcegI,GAde,SAACnT,GAAU,IAC/B6J,EAAU7J,EAAV6J,MACR,OACE5I,EAAA1B,EAAAC,cAAC4T,GAADzY,OAAAuP,OAAA,GAAqBL,EAAW7J,yBC/E9BqT,8MAgDJjG,aAAe,SAACkG,IAEdtP,EADqBxG,EAAKwC,MAAlBgE,UACCsP,4EAGF,IAAAxS,EAOHpD,KAAKsC,MALPqD,EAFKvC,EAELuC,MAAOkQ,EAFFzS,EAEEyS,aAAchX,EAFhBuE,EAEgBvE,KAAMsO,EAFtB/J,EAEsB+J,YAAa2I,EAFnC1S,EAEmC0S,QAASC,EAF5C3S,EAE4C2S,QACjDC,EAHK5S,EAGL4S,YACAC,EAJK7S,EAIL6S,aACAC,EALK9S,EAKL8S,WACAC,EANK/S,EAML+S,WAGIC,EAAS,CACbC,OAAQ,SAAAC,GAAI,OAAArZ,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPqZ,EADO,CAGVC,QAAS,UACTC,WAAY,UACZC,QAAS,QACTC,UAAW,iBAEbC,WAAY,SAACL,EAAMlW,GAAP,OAAkBA,EAAM/D,KAAKua,QAAX3Z,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA0BqZ,EAA1B,CAAgCvP,gBAAiB,SAAWuP,GAC1FO,gBAAiB,SAACP,EAAMlW,GAAP,OACfA,EAAM/D,KAAKua,QAAX3Z,OAAA0Q,GAAA,EAAA1Q,CAAA,GAEOqZ,EAFP,CAGIQ,WAAY,OACZjQ,MAAO,QACPkQ,aAAc,IAEdT,GAENU,iBAAkB,SAACV,EAAMlW,GAAP,OAChBA,EAAM/D,KAAKua,QAAX3Z,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA0BqZ,EAA1B,CAAgCG,QAAS,SAAWH,GAEtDW,KAAM,SAAAhb,KAAGoU,MAAH,IAAa6G,EAAbja,OAAAka,GAAA,EAAAla,CAAAhB,EAAA,kBAAAgB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDia,KAKP,OACE3T,EAAA1B,EAAAC,cAACsV,GAAA,EAAD,CACEC,cAAc,OACdjB,OAAQA,EACRvX,KAAMA,EACN8G,MAAOA,EACPW,SAAUtG,KAAK0P,aACfoG,QAASA,EACTD,aAAcA,EACdyB,WAAW,EACXnV,UAAU,gBAEVgL,YAAaA,EACboK,gBAAgB,eAChBxB,QAASA,EACTC,YAAaA,EACbC,aAAcA,EACdC,WAAYA,EACZC,WAAYA,WA7GMpT,iBAApB4S,GAqCGnO,aAAe,CACpB2F,YAAa,GACb0I,aAAc,EACdC,QAAS,GACTC,SAAS,EACTC,aAAa,EACbC,aAAc,OACdC,gBAAYsB,EACZrB,YAAY,GAsEhB,IAAMsB,GAAoB,SAACnV,GAAU,IAEjC6J,EAKE7J,EALF6J,MAAOE,EAKL/J,EALK+J,KAAMyJ,EAKXxT,EALWwT,QAAS3I,EAKpB7K,EALoB6K,YAAa0I,EAKjCvT,EALiCuT,aAAc1T,EAK/CG,EAL+CH,UAAW4T,EAK1DzT,EAL0DyT,QAC5DC,EAIE1T,EAJF0T,YACAC,EAGE3T,EAHF2T,aACAC,EAEE5T,EAFF4T,WACAC,EACE7T,EADF6T,WAGIuB,GAA2B,oBAAZ5B,EAAyBA,IAAYA,GAAS6B,QAKnE,OAJKD,EAAKE,KAAK,SAAAC,GAAC,OAAgB,IAAZA,EAAElS,SACpB+R,EAAKI,QAAQ,CAAEnS,MAAO,EAAGqB,MAAO,MAIhCzD,EAAA1B,EAAAC,cAAA,OAAKK,UAAS,+BAAApG,OAAiCoG,IAC7CoB,EAAA1B,EAAAC,cAACiW,GAAD9a,OAAAuP,OAAA,GACML,EADN,CAEE2J,QAAS4B,EACTvK,YAAaA,EACb0I,aAAcA,EACdE,QAASA,EACTC,YAAaA,EACbC,aAAcA,EACdC,WAAYA,EACZC,WAAYA,KAEb9J,EAAKC,SAAWD,EAAKxO,OAAS0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BkK,EAAKxO,SA+BpF4Z,GAAkBjQ,aAAe,CAC/B6E,KAAM,KACNyJ,QAAS,GACT3I,YAAa,GACb0I,aAAc,EACd1T,UAAW,GACX4T,SAAS,EACTC,aAAa,EACbC,aAAc,OACdC,gBAAYsB,EACZrB,YAAY,GAGCsB,UCjITO,GAAuB,SAACC,EAAQC,EAAKC,GACzC,IAAKF,EAAOG,SACV,OAAO,KAGT,IAAMC,EAAa,CACjBlW,UAAW,gBAcb,MAXoB,WAAhB8V,EAAO1Y,OACT8Y,EAAWlW,UAAX,GAAApG,OAA0Bsc,EAAWlW,WAEhCoE,OAAO+R,OAAOL,EAAO3K,OACxB+K,EAAW/K,KAAO2K,EAAO3K,KAEtB/G,OAAO+R,OAAOL,EAAO5K,OACxBgL,EAAWhL,KAAO4K,EAAO5K,MAIT,WAAhB4K,EAAO1Y,MACT8Y,EAAWlW,UAAX,GAAApG,OAA0Bsc,EAAWlW,WAEnCoB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,UAAA5K,OAAYmc,EAAIlZ,GAAhB,KAAAjD,OAAsBkc,EAAOtR,KAChC9H,KAAI,UAAA9C,OAAYmc,EAAIlZ,GAAhB,KAAAjD,OAAsBkc,EAAOtR,KACjCiK,UAAW6G,GACXc,WAAYN,EAAOM,WAAWL,EAAKD,EAAOtR,KAC1CpH,KAAM0Y,EAAO1Y,KACbuW,QAASmC,EAAOO,YAAY1C,SAAW,GACvCC,QAASkC,EAAOO,YAAYzC,UAAW,EACvCE,aAAa,QACb3P,SAAU,SAACmS,GACTN,EAAWD,EAAKD,EAAOtR,IAAK8R,EAAK9S,WAOvCpC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,QAAA7E,OAAAuP,OAAA,GACM6L,EADN,CAEE1R,IAAG,SAAA5K,OAAWmc,EAAIlZ,GAAf,KAAAjD,OAAqBkc,EAAOtR,KAC/B9H,KAAI,SAAA9C,OAAWmc,EAAIlZ,GAAf,KAAAjD,OAAqBkc,EAAOtR,KAChCkP,aAAcqC,EAAID,EAAOtR,KACzBpH,KAAM0Y,EAAO1Y,MAAQ,OACrBuH,MAAOmR,EAAOM,WAAWL,EAAKD,EAAOtR,KACrCL,SAAU,SAACxF,GACTA,EAAE2O,iBADa,IAGP9J,EAAU7E,EAAE0F,cAAZb,MACR,GAAoB,WAAhBsS,EAAO1Y,QAAuBoG,GAASsS,EAAO5K,MAAQ1H,GAASsS,EAAO3K,KAGxE,OAFAxM,EAAE2O,sBACF3O,EAAE0F,cAAcb,OAASuS,EAAID,EAAOtR,MAGtC7F,EAAE0F,cAAckS,SAAU,GAE5BC,UAAW,SAAC7X,GACNA,EAAE0F,cAAckS,SAAuB,KAAZ5X,EAAE8X,QAC/BT,EAAWD,EAAKD,EAAOtR,IAAK7F,EAAE0F,cAAcb,OAC5C7E,EAAE0F,cAAckS,SAAU,IAG9BG,OAAQ,SAAC/X,GACHA,EAAE0F,cAAckS,UAClBP,EAAWD,EAAKD,EAAOtR,IAAK7F,EAAE0F,cAAcb,OAC5C7E,EAAE0F,cAAckS,SAAU,IAG9BI,QAAS,SAAAhY,GAAC,OAAIA,EAAE0F,cAAcuS,eAMhCC,GAAoB,SAAC1W,GAAU,IAEjCqE,EACErE,EADFqE,IAAK9H,EACHyD,EADGzD,KAAMU,EACT+C,EADS/C,KAFsB0Z,EAG/B3W,EADekW,mBAFgB,IAAAS,EAEF,GAFEA,EAKnC,MAAa,SAAT1Z,EAEAgE,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAK4K,EAAL,SACJiK,UAAWsI,GACXhF,QAAQ,EACRtG,aAAa,QACbT,YAAW,GAAApR,OAAK8C,EAAL,YAEb0E,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACL+R,UAAW1D,GACX3N,KAAK,OACLqO,aAAa,UAEfrK,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC0T,GAAA3T,EAAD,OAEF0B,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAK4K,EAAL,SACJiK,UAAWsI,GACXhF,QAAQ,EACRtG,aAAa,QACbT,YAAW,GAAApR,OAAK8C,EAAL,YAGb0E,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACL+R,UAAW1D,GACX3N,KAAK,OACLqO,aAAa,UAEfrK,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBACboB,EAAA1B,EAAAC,cAAC0T,GAAA3T,EAAD,QAMK,WAATtC,EAEAgE,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAM8H,EACNiK,UAAW1D,GACX3N,KAAMA,EACN8N,IAAK/K,EAAM+K,IACXC,IAAKhL,EAAMgL,IACXH,YAAatO,EACb+O,aAAa,UAKN,WAATrO,EAEAgE,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAM8H,EACNiK,UAAW6G,GACXlY,KAAMA,EACN4N,YAAatO,EACb+O,aAAa,QACbkI,QAAS0C,EAAY1C,SAAW,GAChCC,QAASyC,EAAYzC,UAAW,EAChCE,aAAa,UAMjB1S,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAM8H,EACNiK,UAAW1D,GACX3N,KAAMA,EACN4N,YAAatO,EACb+O,aAAa,QACbR,UAAU,QAyBhB4K,GAAqBxQ,aAAe,CAClCjI,KAAM,OACN8N,IAAK,GACLC,IAAK,GACLiL,WAAY,iBAAO,CAAEY,SAAU,YAUjCH,GAAkBxR,aAAe,CAC/BjI,KAAM,OACNiZ,YAAa,GACbnL,IAAK,GACLC,IAAK,QAQD8L,eACJ,SAAAA,EAAY9W,GAAO,IAAAxC,EAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAoZ,IACjBtZ,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAmc,GAAAjZ,KAAAH,KAAMsC,KAQR+W,aAAe,SAACvY,GACdA,EAAE2O,iBACF3P,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEgV,YAAahV,EAAUgV,eAXpCxZ,EAcnByZ,eAAiB,SAACzY,GAChBA,EAAE2O,iBACF3P,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEkV,gBAAiBlV,EAAUkV,mBAhBxC1Z,EAmBnB2Z,QAAU,SAACC,GACT,MAA2B,qBAAhBA,EAAID,SACRC,EAAID,SArBM,IAETD,EAAmBlX,EAAnBkX,eAFS,OAGjB1Z,EAAKM,MAAQ,CACXkZ,YAAY,EACZE,kBALe1Z,wEAwBV,IAAAS,EAAAP,KAAAoD,EAaHpD,KAAKsC,MAXPsB,EAFKR,EAELQ,MACA+V,EAHKvW,EAGLuW,QACAC,EAJKxW,EAILwW,MACAC,EALKzW,EAKLyW,eACA5G,EANK7P,EAML6P,aACA/C,EAPK9M,EAOL8M,aACA4J,EARK1W,EAQL0W,eACAhH,EATK1P,EASL0P,KACAiH,EAVK3W,EAUL2W,SACAC,EAXK5W,EAWL4W,gBACA7B,EAZK/U,EAYL+U,WAZKxW,EAe4C3B,KAAKI,MAAhDkZ,EAfD3X,EAeC2X,WAAY9I,EAfb7O,EAea6O,WAAYgJ,EAfzB7X,EAeyB6X,eAC1BS,EAAaN,EAAQO,OAAO,SAAAC,GAAC,OAAiB,IAAbA,EAAEC,SAAiB/T,OAAS,EAC7DgU,EAAWf,IAAeE,EAEhC,OACEjW,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKM,GAAI,GAAIL,GAAI,GACfhX,EAAA1B,EAAAC,cAAA,UAAK8B,IAEPL,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKM,GAAI,GAAIL,GAAI,GACdN,GACC1W,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,8CACVqB,QAAS,SAAA1C,GAAC,OAAIP,EAAK8Y,aAAavY,KAEhCyC,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,iBALlB,mBAMEoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,iBAAApG,OAAmBse,EAAW,KAAO,cAM9D9W,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,wBAAwB+O,SAAUhB,GAC/CmK,GAAYV,EAAQlT,IAAI,SAAAqU,GAAC,OAAIA,EAAEV,SAjHpCzT,GADgBrE,EAkH+CwY,GAjH/DnU,IAAK9H,EAASyD,EAATzD,KAEX0E,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,eAAA5K,OAAiB4K,GAAOxE,UAAU,oBACxCoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0BtD,GAC1C0E,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ6W,GAAkB1W,MANF,IAACA,EAChBqE,EAAK9H,IAkHAwb,GAEG9W,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,GACXjN,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,iBAJjB,WAMAoB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVkJ,SAAUmF,EACVhN,QAASsW,GACVvW,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,gBALjB,oBAOAoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW1E,GACXlF,MAAM,wBACNrB,MAAO6T,EAAiB,UAAY,GACpClO,eAAgBkO,EAChBhW,QAAS,SAAA1C,GAAC,OAAIP,EAAKgZ,eAAezY,UAQhDyC,EAAA1B,EAAAC,cAACiZ,GAAA,EAAD,CAAOC,YAAU,EAAC7Y,UAAU,mBAC1BoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACG6X,EAAQlT,IAAI,SAAAqU,GAAC,OAAIva,EAAKkZ,QAAQqB,IAC7BvX,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,MAAA5K,OAAQ+e,EAAEnU,KAAO0J,MAAOyK,EAAEzK,MAAQyK,EAAEzK,MAAQ,OAAQlO,UAAW2Y,EAAE3Y,WAAa,aAClF2Y,EAAEjc,UAKX0E,EAAA1B,EAAAC,cAAA,aACG8X,EAAMvT,OAAS,EACduT,EAAMnT,IAAI,SAACwU,EAAGC,GAAJ,OACR3X,EAAA1B,EAAAC,cAAA,MAAI6E,IAAKsU,EAAEjc,IAAMkc,GACdvB,EAAQlT,IAAI,SAACqU,EAAGK,GAAJ,OAAe5a,EAAKkZ,QAAQqB,IACvCvX,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKkf,EAAEjc,IAAMkc,EAAb,KAAAnf,OAAuB+e,EAAEnU,KAAOxE,UAAW2Y,EAAE3Y,WAAa,cAE5D2Y,EAAE1C,UACD7U,EAAA1B,EAAAC,cAAA,aA3VD4X,EA4VwBoB,EA5VnB5C,EA4VsB+C,EA5VjBtU,EA4Va,GAAA5K,OAAUkf,EAAEjc,IAAMkc,EAAlB,KAAAnf,OAA4B+e,EAAE9b,IAAMmc,GA3VjFzB,EAAIzW,KAKPM,EAAA1B,EAAAC,cAAA,QAAM6E,IAAG,QAAA5K,OAAU4K,IACjBpD,EAAA1B,EAAAC,cAAA,UACE0B,QAAS,kBAAMkW,EAAIzW,KAAKmY,UAAY1B,EAAIzW,KAAKmY,SAASlD,IACtD3Y,KAAK,SACL4C,UAAU,gBACVkQ,SAAS,MAERqH,EAAIzW,KAAK2N,UAAUsH,KAXjB,MA2VsB4C,EAAEO,OAASP,EAAEO,OAAOJ,GAAKA,EAAEH,EAAEnU,MApXhC,SAAC2U,EAASpD,GACtC,OAAMoD,GAAWA,EAAQjV,OAKvB9C,EAAA1B,EAAAC,cAAA,YACGwZ,EAAQ7U,IAAI,SAAA5E,GAAC,OACZ0B,EAAA1B,EAAAC,cAAA,QAAM6E,IAAG,UAAA5K,OAAYmc,EAAIlZ,GAAhB,KAAAjD,OAAsB8F,EAAE8E,MAC/BpD,EAAA1B,EAAAC,cAAA,UACE0B,QAAS,kBAAM3B,EAAEuZ,UAAYvZ,EAAEuZ,SAASlD,IACxC3Y,KAAK,SACL4C,UAAU,gBACVkQ,SAAS,MAEU,oBAAXxQ,EAAEoB,KAAsBpB,EAAEoB,KAAKiV,GAAOrW,EAAEoB,UAbjD,KAsXgBsY,CAAsB1B,EAAeiB,EAAEnU,IAAKsU,GAAIA,GAChDjD,GAAqB8C,EAAGG,EAAG9C,IAlW1B,IAACuB,EAAKxB,EAAKvR,OAwWnBpD,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,WAAd,oCAOZoB,EAAA1B,EAAAC,cAAC0Z,GAAD,CACEzI,WAAYiH,EACZhH,YAAa+G,EACbzG,YAAaR,EACbG,aAAcA,cAjJJlQ,iBAyKxBqW,GAAU5R,aAAe,CACvB5D,MAAO,GACPmW,SAAU,GACVF,eAAgB,iBAAM,IACtB3J,aAAc,kBAAM,MACpB4J,eAAgB,kBAAM,MACtB7G,aAAc,kBAAM,MACpBkF,WAAY,kBAAM,MAClBqB,gBAAgB,EAChBQ,gBAAiB,GAGnB,IAIeyB,GAJOtK,aAAU,CAC9BC,KAAM,kBADcD,CAEnBiI,uBC9bGsC,GAAc,SAAAzf,GAKd,IAJJ+C,EAII/C,EAJJ+C,GACA2G,EAGI1J,EAHJ0J,MACAqB,EAEI/K,EAFJ+K,MACAH,EACI5K,EADJ4K,MACI8U,EACkCC,oBAAS,GAD3CC,EAAA5e,OAAA6e,GAAA,EAAA7e,CAAA0e,EAAA,GACGI,EADHF,EAAA,GACgBG,EADhBH,EAAA,GAKJ,OACEtY,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOvI,GAAE,WAAAjD,OAAaiD,GAAM6H,MAAOA,GAChClB,GAGDqB,EACEzD,EAAA1B,EAAAC,cAACma,GAAA,EAAD,CACEC,UAAU,MACV/W,OAAQ4W,EACRlM,OAAM,WAAA9T,OAAaiD,GACnBqF,OAbK,kBAAM2X,GAAgBD,KAe1B/U,GAED,OAcZ0U,GAAYlU,aAAe,CACzBX,MAAO,WAIM6U,mBC1CAS,GANQ,kBACrB5Y,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,mCAAmC2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WACzF7Y,EAAA1B,EAAAC,cAACsO,GAAA,EAAD,CAASvJ,MAAM,UAAUC,MAAO,CAAEuJ,MAAO,OAAQC,OAAQ,YCLhDsE,GAAa,SAACjP,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAK1C,OAAO,IAAIwP,KAAKC,eAAeF,EAJjB,CACZG,UAAW,UAGkCnB,OAAO,IAAIrG,KAAKrP,KAWpD8W,GAAmB,SAAC9W,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAKhD,OAAO,IAAIwP,KAAKC,eAAeF,EAJjB,CACZK,IAAK,UAAWC,MAAO,UAAWC,KAAM,YAGKvB,OAAO,IAAIrG,KAAKrP,KAGpDkX,GAAuB,SAAClX,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QASpD,OAAO,IAAIwP,KAAKC,eAAeF,EARjB,CACZK,IAAK,UACLC,MAAO,UACPC,KAAM,UACNE,KAAM,UACNC,OAAQ,YAGqC1B,OAAO,IAAIrG,KAAKrP,KAGpDqX,GAAiB,SAACrX,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAO9C,OAAO,IAAIwP,KAAKC,eAAeF,EANjB,CACZK,IAAK,UACLC,MAAO,UACPC,KAAM,YAGuCvB,OAAO,IAAIrG,KAAKrP,KAIpDsX,GAAe,SAACtX,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAK5C,OAAO,IAAIwP,KAAKC,eAAeF,EAJjB,CACZM,MAAO,UAGsCtB,OAAO,IAAIrG,KAAKrP,IAAQuX,UAAU,EAAG,IAGzEC,GAAe,SAACxX,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAK5C,OAAO,IAAIwP,KAAKC,eAAeF,EAJjB,CACZK,IAAK,YAGwCrB,OAAO,IAAIrG,KAAKrP,KAIpDyX,GAAiB,SAACzX,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAM9C,OAAO,IAAIwP,KAAKC,eAAeF,EALjB,CACZG,UAAW,QACXa,UAAW,UAGkChC,OAAO,IAAIrG,KAAKrP,KAGpD2X,GAAa,SAAC3X,GAA6B,IAAtB0W,EAAsBvP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,QAK1C,OAAO,IAAIwP,KAAKC,eAAeF,EAJjB,CACZS,KAAM,UAAWC,OAAQ,UAAWQ,OAAQ,YAGClC,OAAO,IAAIrG,KAAKrP,KAGpD6X,GAAiB,SAAC7I,GAC7B,MAAoB,kBAATA,EACFA,EAGT,GAAA5Y,OAAU4Y,EAAK8I,mBAAmB,QAAS,CACzCb,KAAM,UACND,MAAO,UACPD,IAAK,YACJgB,MAAM,KAAKC,UAAUC,KAAK,KAJ7B,KAAA7hB,OAIqC4Y,EAAKkJ,mBAAmB,WCzEzDC,eAKJ,SAAAA,EAAYxb,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA8d,IACjBhe,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA6gB,GAAA3d,KAAAH,KAAMsC,KAwHRyb,eAAiB,WACfC,aAAe,CACbhO,UAAW,SAAC9U,GACV4E,EAAKmB,SAAS,CACZmF,MAAOlL,EAAEkL,SAGb3E,QAAS,WACPrC,aAAmB,qDAjINU,EAsInBme,gBAAkB,SAACnL,EAAMiH,EAAUmE,GACjCpe,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KAGtBC,aAAW,CACTC,SAAU,CACRtL,OACAiH,WACAmE,QAAQjhB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHihB,EADE,CAEL9X,MAAO8X,IAAYA,EAAQ9X,OAAS,IAAIK,IAAI,SAAA4X,GAAC,OAAIA,EAAE1Y,WAGvDqK,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,qDAhKNU,EAqKnBwe,WAAa,SAAC3V,GACZ,IAAM4V,EAAQ,GAAAxiB,OAAM4M,EAAK6V,OAAX,KAAAziB,OAAqB4M,EAAK8V,UACxCzQ,GAAQ,CACNpK,MAAO,iBACPqK,SAAQ,yCAAAlS,OAAwCwiB,EAAxC,KACRrQ,SAAU,qBACVE,QAAS,aACTC,UAAW,WACTiQ,aAAW3V,EAAK3J,GAAI,CAClBgR,UAAW,WACT9Q,aAAqB,gCADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAKme,gBAAgBnL,EAAMiH,IAE7BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,8CAvLZU,EA+LnBgQ,kBAAoB,SAACnH,GACnB,IAAM4V,EAAQ,GAAAxiB,OAAM4M,EAAK6V,OAAX,KAAAziB,OAAqB4M,EAAK8V,UACxCzQ,GAAQ,CACNpK,MAAO,4BACPqK,SAAQ,8DAAAlS,OAA0DwiB,EAA1D,KACRrQ,SAAU,kBACVE,QAAS,aACTC,UAAW,WACTyB,aAAkBnH,EAAKe,MAAO,CAC5BsG,UAAW,WAET9Q,aADY,oGAGduC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,sDAhNZU,EAwNnB4e,SAAW,SAAC/V,GACU7I,EAAKwC,MAAjBmC,QACAG,KAAR,qBAAA7I,OAAkC4M,EAAK3J,MA1NtBc,EA6NnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAKme,gBAAgBnL,EAAMiH,EAAUmE,KAhOtBpe,EAoOnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKme,gBAAgB,EAAGlE,EAAU7K,KAvOnBpP,EA2OnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKme,gBAAgB,EAAGlE,EAAU,KA7OjBja,EAgPnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IApPE7G,EAuPnBgf,SAAW,WAET,OADkBhf,EAAKM,MAAfgG,OAxPStG,EA4PnBif,SAAW,SAACpZ,GAkBV,MAjBe,CACb,CACEA,MAAO,IAAKkB,MAAO,QAErB,CACElB,MAAO,IAAKkB,MAAO,WAErB,CACElB,MAAO,IAAKkB,MAAO,WAErB,CACElB,MAAO,IAAKkB,MAAO,YAIE+Q,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUA,IAAvCkB,OAzQR/G,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IACfoH,MAAO,IAGTtG,EAAK6Z,QAAU,CACb,CAAEhT,IAAK,KAAM9H,KAAM,IAAKwR,MAAO,QAC/B,CACE1J,IAAK,kBACL9H,KAAM,yBACNub,QAAQ,EACR7a,KAAM,SACN8Q,MAAO,QAET,CACE1J,IAAK,QACL9H,KAAM,QACNub,QAAQ,EACR7a,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAKgf,SACd/I,SAAS,GAEX1F,MAAO,QACPgL,OAAQ,SAACnD,GAAQ,IACPlZ,EAAoCkZ,EAApClZ,GAAIoH,EAAgC8R,EAAhC9R,MAAO6Y,EAAyB/G,EAAzB+G,qBAEnB,OACE1b,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,SAEpBrQ,EAAMK,IAAI,SAAAyY,GAAG,OACX3b,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWmjB,EAAIvZ,OAASpG,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAClF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,GAAAjD,OAAKiD,EAAL,KAAAjD,OAAWmjB,EAAIvZ,OACjBA,MAAOuZ,EAAIvZ,MACXqB,MAAOkY,EAAIlY,MACXL,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWmjB,EAAIvZ,OAClBkB,MAAO/G,EAAKif,SAASG,EAAIvZ,YAM/BS,EAAMgZ,KAAK,SAAAF,GAAG,MAAkB,MAAdA,EAAIvZ,QACpBpC,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,yBAAgCO,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAC1F9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,GAAAjD,OAAKiD,EAAL,yBACF2G,MAAK,iBAAA5J,OAAgBkjB,EAAqB5Y,QAC1CW,MAAK,GAAAjL,OAAKkjB,EAAqB5Y,QAC/BM,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWkjB,EAAqB5Y,QACnCQ,MAAOoY,EAAqB5Y,OAAS,UAAY,eAGnD,QAMd,CAAEM,IAAK,SAAU9H,KAAM,SAAUub,QAAQ,GACzC,CAAEzT,IAAK,WAAY9H,KAAM,WAAYub,QAAQ,GAC7C,CAAEzT,IAAK,QAAS9H,KAAM,QAASub,QAAQ,GACvC,CAAEzT,IAAK,oBAAqB9H,KAAM,sBAAoBub,QAAQ,GAC9D,CACEzT,IAAK,cACL9H,KAAM,eACNub,QAAQ,EACRiB,OAAQ,SAAApf,GAAA,IAAG+C,EAAH/C,EAAG+C,GAAIqgB,EAAPpjB,EAAOojB,YAAaC,EAApBrjB,EAAoBqjB,oBAApB,OACN/b,EAAA1B,EAAAC,cAACqd,GAAD,CACE9M,SAAS,KACTrT,GAAE,GAAAjD,OAAKiD,EAAL,KAAAjD,OAAWsjB,GACb1Z,MAAO0Z,EAAc,KAAO,KAC5BrY,MAAOqY,EAAW,gBAAAtjB,OAAmB6Y,GAAW0K,IAAyB,GACzE3Y,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWsjB,GACdxY,MAAOwY,EAAc,UAAY,gBAIvC,CAAE1Y,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,UAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,mBACzCwX,SAAU,SAACzS,GACT7I,EAAK4e,SAAS/V,KAGlB,CACEhC,IAAK,iBACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,8BACzCwX,SAAU,SAACzS,GACT7I,EAAKgQ,kBAAkBnH,KAG3B,CACEhC,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,uBAAuByB,MAAM,qBAzGtC9D,mFAmHjBE,KAAK+d,iBADa,IAAAwB,EAGSvf,KAAKI,MAAxB0S,EAHUyM,EAGVzM,KAAMiH,EAHIwF,EAGJxF,SACd/Z,KAAKie,gBAAgBnL,EAAMiH,oCA2JpB,IAAAxZ,EAAAP,KAAAwf,EAQHxf,KAAKI,MANPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,oBACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,6BAMNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EACGkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAC4d,GAAD,OAEbnc,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,4CACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aA5TL7c,iBAsUdC,eAAW8a,sDChVpB+B,8MA2BJvZ,SAAW,WAAM,IAAAlD,EACkBtD,EAAKwC,OACtCgE,EAFelD,EACPkD,UADOlD,EACG0c,gGARA,IAAAxV,EAC+BtK,KAAKsC,MAA9CgJ,EADUhB,EACVgB,eAAgBhF,EADNgE,EACMhE,SAAUwZ,EADhBxV,EACgBwV,WAC9BxU,GACFhF,EAASwZ,oCASJ,IAAAxL,EAGHtU,KAAKsC,MADP+I,EAFKiJ,EAELjJ,SAAUlJ,EAFLmS,EAEKnS,UAAWtD,EAFhByV,EAEgBzV,KAAMmI,EAFtBsN,EAEsBtN,MAAO8Y,EAF7BxL,EAE6BwL,WAAYna,EAFzC2O,EAEyC3O,MAE1Coa,EAAmBnY,IAAW,CAClCoY,aAAa,EACb3U,aAGF,OAEE9H,EAAA1B,EAAAC,cAAA,SACEK,UAAS,GAAApG,OAAKgkB,GAALhkB,OAAwBoG,EAAS,eAAApG,OAAkBoG,GAAc,KAE1EoB,EAAA1B,EAAAC,cAAA,SACEK,UAAU,mBACVtD,KAAMA,EACNU,KAAK,QACL+G,SAAUtG,KAAKsG,SACfoF,QAAS/F,IAAUma,EACnBzU,SAAUA,IAEZ9H,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,4BACD,WAAdA,EAEGoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBACdoB,EAAA1B,EAAAC,cAACkK,GAAAnK,EAAD,CAAWM,UAAU,2BACrBoB,EAAA1B,EAAAC,cAACmK,GAAApK,EAAD,CAAWM,UAAU,8BAErB,GACNoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,oBAAoB6E,WA9DbjE,iBAAzB8c,GAYGrY,aAAe,CACpBR,MAAO,GACPsE,gBAAgB,EAChBwU,WAAY,GACZzU,UAAU,EACVlJ,UAAW,IAmDf,IAAM8d,GAAyB,SAAC3d,GAAU,IAEtC6J,EACE7J,EADF6J,MAAOnF,EACL1E,EADK0E,MAAOsE,EACZhJ,EADYgJ,eAAgBD,EAC5B/I,EAD4B+I,SAAUlJ,EACtCG,EADsCH,UAAW2d,EACjDxd,EADiDwd,WAErD,OACEvc,EAAA1B,EAAAC,cAACoe,GAADjjB,OAAAuP,OAAA,GACML,EADN,CAEEnF,MAAOA,EACPsE,eAAgBA,EAChBD,SAAUA,EACVyU,WAAYA,EACZ3d,UAAWA,MAiBjB8d,GAAuBzY,aAAe,CACpCR,MAAO,GACPsE,gBAAgB,EAChBD,UAAU,EACVyU,WAAY,GACZ3d,UAAW,IAGE8d,UCtBAhR,GAzFE,SAACE,GAChB,IAAMC,EAAS,GAoDf,GAnDKD,EAAMgR,cACJhR,EAAMqP,SACTpP,EAAOoP,OAAS,2BAEbrP,EAAMsP,WACTrP,EAAOqP,SAAW,6BAEdtP,EAAMiR,iBACPjR,EAAMiR,gBAAgB/Z,QAAU,GAChC,YAAYgJ,KAAKF,EAAMiR,mBAC1BhR,EAAOgR,gBAAkB,6CAIvBjR,EAAMkR,cAAgBlR,EAAMkR,aAAa1a,QAC7CyJ,EAAOiR,aAAe,0CAGnBlR,EAAMmR,YACTlR,EAAOkR,UAAY,4BAGhBnR,EAAMoR,mBAAqBpR,EAAMoR,kBAAkBla,OAAS,IAC1D,yDAAyDgJ,KAAKF,EAAMoR,sBACzEnR,EAAOmR,kBAAoB,+CAGzBpR,EAAMqR,iBACHrR,EAAMqR,gBAAgBna,QAAU,GAChC,yDAAyDgJ,KAAKF,EAAMqR,mBACzEpR,EAAOoR,gBAAkB,8CAGtBrR,EAAMzF,MAEC,4CAA4C2F,KAAKF,EAAMzF,SACjE0F,EAAO1F,MAAQ,uCAFf0F,EAAO1F,MAAQ,0CAKbyF,EAAMgR,eACHhR,EAAMsR,kBAAoBtR,EAAMsR,iBAAiBpa,OAAS,IACxD,yDAAyDgJ,KAAKF,EAAMsR,qBACzErR,EAAOqR,iBAAmB,8CAEvBtR,EAAMuR,qBACTtR,EAAOsR,mBAAqB,yCAEnBvR,EAAMlG,SAAWkG,EAAMrG,YAAcqG,EAAMpG,eAAiBoG,EAAMnG,WAC7EoG,EAAOnG,QAAU,oCAGfkG,EAAMrG,YAAcqG,EAAM8P,sBAAwB9P,EAAM8P,qBAAqB5Y,OAAS,EAAG,CAC3F,IAAMsa,EAAWxR,EAAM8P,qBAAqB/E,OAAO,SAAArC,GAAC,OAAKA,EAAE+I,SAAW/I,EAAEgJ,QAAQlb,MAAQ,IACrFc,IAAI,SAAAxK,GAAA,IAAA6kB,EAAA7kB,EAAG4kB,QAAH,MAAoC,CAAElb,MAAtCmb,EAAcnb,MAA+BqB,MAA7C8Z,EAAqB9Z,SAEtB+Z,EAAYJ,EAAS/I,KAAK,SAACoJ,EAAKC,GAAN,OAAgBA,IAAUN,EAASla,IAAI,SAAAya,GAAC,OAAIA,EAAEvb,QAAOwb,QAAQH,EAAIrb,SAC7Fob,EACF3R,EAAO6P,qBAAuB,CAAEmC,OAAM,cAAArlB,OAAgBglB,EAAU/Z,MAA1B,sBAEtCmI,EAAM8P,qBAAqB/E,OAAO,SAAArC,GAAC,OAAKA,EAAE+I,UAASliB,QAAQ,SAAAgQ,EAAgCuS,GAAU,IAAvCJ,EAAuCnS,EAAvCmS,QAASQ,EAA8B3S,EAA9B2S,UAAWC,EAAmB5S,EAAnB4S,MAC1EzjB,EAAQ,GACTgjB,GAAYA,EAAQlb,QACvB9H,EAAMgjB,QAAU,6BAEbQ,GAAcA,EAAU1b,QAC3B9H,EAAMwjB,UAAY,iCAEfC,GAAUA,IACbzjB,EAAMyjB,MAAQ,0BAGZrkB,OAAOwD,KAAK5C,GAAOwI,SAChB+I,EAAO6P,uBACV7P,EAAO6P,qBAAuB,IAGhC7P,EAAO6P,qBAAqBgC,GAASpjB,KAQ7C,OAFAuR,EAAOE,QAAyC,IAA/BrS,OAAOwD,KAAK2O,GAAQ/I,OAE9B+I,GCtFImS,GAAmB,CAC9B,CAAE5b,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,KAAMqB,MAAO,MACtB,CAAErB,MAAO,MAAOqB,MAAO,OACvB,CAAErB,MAAO,MAAOqB,MAAO,QAGZwa,GAAQ,CACnBC,OAAQ,EACRC,SAAU,EACVC,YAAa,EACbC,MAAO,GAGIC,GAAiB,CAC5B,CAAElc,MAAO,EAAGqB,MAAO,WACnB,CAAErB,MAAO,EAAGqB,MAAO,UACnB,CAAErB,MAAO,EAAGqB,MAAO,eACnB,CAAErB,MAAO,EAAGqB,MAAO,UAGR8a,GAAU,CACrB,CAAEnc,MAAO,EAAGqB,MAAO,kBACnB,CAAErB,MAAO,EAAGqB,MAAO,UACnB,CAAErB,MAAO,EAAGqB,MAAO,UAGR+a,GAAiB,CAC5B,CACEpc,WAAO6R,EAAWxQ,MAAO,IAAKgb,WAAY,IAAKnb,MAAO,QAExD,CACElB,MAAO,KAAMqB,MAAO,IAAKgb,WAAY,IAAKnb,MAAO,QAEnD,CACElB,MAAO,EAAGqB,MAAO,UAAWgb,WAAY,UAAWnb,MAAO,QAE5D,CACElB,MAAO,EAAGqB,MAAO,SAAUgb,WAAY,MAAOnb,MAAO,WAEvD,CACElB,MAAO,EAAGqB,MAAO,SAAUgb,WAAY,MAAOnb,MAAO,aAEvD,CACElB,MAAO,EAAGqB,MAAO,UAAWgb,WAAY,OAAQnb,MAAO,QAEzD,CACElB,MAAO,EAAGqB,MAAO,YAAagb,WAAY,SAAUnb,MAAO,WAE7D,CACElB,MAAO,EAAGqB,MAAO,WAAYgb,WAAY,QAASnb,MAAO,YAIhDob,GAAkB,CAC7BC,MAAO,EACPC,cAAe,EACfC,SAAU,GAGCC,GAAe,CAC1BC,OAAQ,CAAE3c,MAAO,EAAGqB,MAAO,UAC3Bub,QAAS,CAAE5c,MAAO,EAAGqB,MAAO,WAC5Bwb,QAAS,CAAE7c,MAAO,EAAGqB,MAAO,WAC5Byb,cAAe,CAAE9c,MAAO,EAAGqB,MAAO,kBAGvB0b,GAAuB,CAClCC,WAAY,CAAEhd,MAAO,EAAGqB,MAAO,cAC/B4b,UAAW,CAAEjd,MAAO,EAAGqB,MAAO,aAC9Bub,QAAS,CAAE5c,MAAO,EAAGqB,MAAO,YAUjB6b,GAAc,IACdC,GAAiB,CAAC,YAAa,cCpDtCC,GAAkB,CACtB,CAAEpd,OAAO,EAAMqB,MAAO,MACtB,CAAErB,OAAO,EAAOqB,MAAO,OAGnBgc,eA2EJ,SAAAA,EAAY1gB,GAAO,IAAAxC,EAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAgjB,IACjBljB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA+lB,GAAA7iB,KAAAH,KAAMsC,KAeR2gB,kBAAoB,WAAM,IAChBC,EAAkBpjB,EAAKM,MAAvB8iB,cACRpjB,EAAKmB,SAAS,CAAEiiB,eAAgBA,KAlBfpjB,EAqBnBqjB,0BAA4B,SAAAlnB,GAAgB,IAAb4T,EAAa5T,EAAb4T,OAC7B/P,EAAKmB,SAAS,CAAEmiB,sBAAuBvT,EAAOnE,WAtB7B5L,EAyBnBujB,uBAAyB,SAAA3U,GAAA,IAAA4U,EAAA5U,EACvB6U,cADuB,IAAAD,EACd,GADcA,EAEvBrE,EAFuBvQ,EAEvBuQ,qBAFuBuE,EAAA9U,EAGvBrC,KAAQxO,EAHe2lB,EAGf3lB,MAAO4lB,EAHQD,EAGRC,aACfC,EAJuBhV,EAIvBgV,eACAC,EALuBjV,EAKvBiV,kBACAC,EANuBlV,EAMvBkV,aACAC,EAPuBnV,EAOvBmV,eACAlD,EARuBjS,EAQvBiS,SACAU,EATuB3S,EASvB2S,UATuB,OAWvB9d,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,gCACfoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACb+I,EAAOld,QAAU,GAEd9C,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAASkgB,EACTvhB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,WAYA,UAOdoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,KACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,WACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,gBACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,SACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAa,OAG3BzgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAACwd,EAAmBhD,GAApB,OACV1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKkoB,GACRjlB,GAAE,GAAAjD,OAAKkoB,GACP9hB,UAAW8c,EAAqBgC,GAAOL,QAAU,SAAW,IAE5Drd,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,UAAKmf,EAAQ,GACb1d,EAAA1B,EAAAC,cAAA,SAAOvC,KAAK,SAASV,KAAI,GAAA9C,OAAKkoB,EAAL,WAG7B1gB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBAAmB2E,MAAO,CAAEid,aAAc,IACvDxgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKkoB,EAAL,YACJrT,UAAW6G,GACXtK,YAAY,UACZ2I,QAAS6K,EACTra,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,UAAWoiB,aAEtE1d,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAmC,SAM3DoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBAAmB2E,MAAO,CAAEid,aAAc,IACvDxgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKkoB,EAAL,cACJrT,UAAW6G,GACXtK,YAAY,eACZ2I,QAASuL,EACT/a,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,YAAaoiB,aAExE1d,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAmC,SAM3DoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBAAmB2E,MAAO,CAAEid,aAAc,IACvDxgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKkoB,EAAL,UACJrT,UAAW1D,GACX3N,KAAK,OACL6N,UAAU,MACVD,YAAY,QACZ7G,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,MAEjC1d,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAmC,SAM3DoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACExL,QAAS,kBAAMmgB,EAAkB1C,IACjCpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,gBAQjD0S,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kEACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,SAAU5K,SAAU,SAApF,IAEGtb,MAlKMiC,EA0KnBskB,aAAe,SAACtjB,GACd,IAAMnC,EAAOmC,EAAE+O,OAAOtR,MAAM,GAC5B,IAAKI,GAAQA,EAAKkQ,MAAQ,EAGxB,OAFA1P,aAAqB,+BACrB2B,EAAE+O,OAAOlK,MAAQ,MAInB,GAAIhH,EAAKkQ,KAAOgU,GAAa,CAC3B,IAAMwB,EAAgBxB,GAAc,IAIpC,OAHA1jB,aAAoB,6BAAApD,OAAwBsoB,EAAxB,aAEpBvjB,EAAE+O,OAAOlK,MAAQ,MAInB,IAAKmd,GAAewB,SAAS3lB,EAAKY,MAIhC,OAHAJ,aAAqB,0CAErB2B,EAAE+O,OAAOlK,MAAQ,OAKnB4e,EADyBzkB,EAAKwC,MAAtBiiB,cACKzjB,EAAE+O,OAAOtR,QAlML,IAGfimB,EAGEliB,EAHFkiB,8BACAC,EAEEniB,EAFFmiB,2BACA3b,EACExG,EADFwG,WALe,OAQjBhJ,EAAKM,MAAQ,CACXokB,gCACAC,6BACAvB,eAAe,EACfE,sBAAuBta,GAZRhJ,wEAqMV,IAAA6B,EAMH3B,KAAKI,MAJPokB,EAFK7iB,EAEL6iB,8BACAC,EAHK9iB,EAGL8iB,2BACAvB,EAJKvhB,EAILuhB,cACAE,EALKzhB,EAKLyhB,sBALKhgB,EAkDHpD,KAAKsC,MAzCP2G,EATK7F,EASL6F,QACAH,EAVK1F,EAUL0F,WACAC,EAXK3F,EAWL2F,cACAC,EAZK5F,EAYL4F,SACAwH,EAbKpN,EAaLoN,WACAN,EAdK9M,EAcL8M,aACAwU,EAfKthB,EAeLshB,qBACAC,EAhBKvhB,EAgBLuhB,OACAC,EAjBKxhB,EAiBLwhB,OACAC,EAlBKzhB,EAkBLyhB,eACAC,EAnBK1hB,EAmBL0hB,YACAzF,EApBKjc,EAoBLic,YACA0F,EArBK3hB,EAqBL2hB,6BACAC,EAtBK5hB,EAsBL4hB,+BACAC,EAvBK7hB,EAuBL6hB,6BACAC,EAxBK9hB,EAwBL8hB,gCACAC,EAzBK/hB,EAyBL+hB,gBACAC,EA1BKhiB,EA0BLgiB,IACAC,EA3BKjiB,EA2BLiiB,OACAhE,EA5BKje,EA4BLie,UACAV,EA7BKvd,EA6BLud,SAEA+C,EA/BKtgB,EA+BLsgB,eACAC,EAhCKvgB,EAgCLugB,kBACAC,EAjCKxgB,EAiCLwgB,aACAC,EAlCKzgB,EAkCLygB,eACAyB,EAnCKliB,EAmCLkiB,eAEAC,EArCKniB,EAqCLmiB,iBACAC,EAtCKpiB,EAsCLoiB,eACAC,EAvCKriB,EAuCLqiB,QACAtF,EAxCK/c,EAwCL+c,YACA3B,EAzCKpb,EAyCLob,OACAC,EA1CKrb,EA0CLqb,SACA2B,EA3CKhd,EA2CLgd,gBACAsF,EA5CKtiB,EA4CLsiB,gBACA1mB,EA7CKoE,EA6CLpE,GA7CK2mB,EAAAviB,EA8CL6b,4BA9CK,IAAA0G,EA8CkB,GA9ClBA,EA+CLC,EA/CKxiB,EA+CLwiB,gBACAtG,EAhDKlc,EAgDLkc,oBACAuG,EAjDKziB,EAiDLyiB,SAGIC,EAAoB5C,EAAgB,gCAAkC,iCAEtE6C,EAAiB5F,GAAe+C,EAAgB,GAAK,SACrD8C,EAA6B5C,EAAwB,GAAK,SAE1D9mB,EAAcuJ,IAEdogB,EAAe3pB,EAAY2M,SAAW3M,EAAYyM,cAClDmd,GAAWR,EAAkBS,KAAOT,GAAiBrK,OAAO,cAAgB,GAE5E+K,GAAiB,0BAAArqB,OAA8BokB,EAA2B,GAAb,YAC7DkG,GAAkB,0BAAAtqB,OAA6BokB,EAAc,WAAa,IAEhF,OACE5c,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,cAAc8G,MAAK,GAAA5J,OAAKokB,GAAe5gB,KAAK,WACxDgE,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,6BAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWikB,IAAjB,UACA7iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ8jB,EAEG1iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,SACZS,aAAa,QACbR,UAAU,OAIZ7J,EAAA1B,EAAAC,cAAA,SACE6D,MAAO6Y,EACPjf,KAAK,OACL4N,YAAY,SACZ9B,SAAS,eAOnB9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWikB,IAAjB,YACA7iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ8jB,EAEG1iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,WACZC,UAAW,KAIb7J,EAAA1B,EAAAC,cAAA,SACE6D,MAAO8Y,EACPlf,KAAK,OACL4N,YAAY,WACZ9B,SAAS,eAOnB9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWikB,IAAjB,0BACA7iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ8jB,EAEG1iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,SACL4N,YAAY,yBACZC,UAAW,KAIb7J,EAAA1B,EAAAC,cAAA,SACE6D,MAAOya,EACP7gB,KAAK,OACL4N,YAAY,yBACZ9B,SAAS,eAOnB9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWikB,IAAjB,uBACCH,EAEG1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAWsI,GACX/L,YAAY,sBACZS,aAAa,WAKjBrK,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE6D,MAAOugB,GACP3mB,KAAK,OACL4N,YAAY,sBACZ9B,SAAS,eAOnB9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,uBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ8jB,EAEG1iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,sBACZC,UAAW,KAIb7J,EAAA1B,EAAAC,cAAA,SACE6D,MAAOigB,EACPrmB,KAAK,OACL4N,YAAY,sBACZ9B,SAAS,eAQnB9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,gBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW6G,GACXtK,YAAY,eACZS,aAAa,QACbkI,QAASuP,EACT/e,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,eAAgB,qBAAsBjB,IACrE/N,YAAa8P,MAKnB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,uCAGFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,UAAA5K,OAAYuqB,EAAE3gB,OACjB9G,KAAK,gCACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgBkZ,IAAkC8B,EAAE3gB,MACpDW,SAAU,SAAA4d,GAAC,OAAIoB,EAAe,gCAAiCpB,IAC/D7Y,UAAW4a,QAMnB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,+BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZqiB,EAEGjhB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,mBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,8BACZC,UAAW,KAIb7J,EAAA1B,EAAAC,cAAA,SACEvC,KAAK,OACL4N,YAAY,gCACZ9B,SAAS,gBAQrB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GAEfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZsjB,EAAQhf,IAAI,SAAA6f,GAAC,OACZ/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,UAAA5K,OAAYuqB,EAAE3gB,OACjB9G,KAAK,SACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgBsZ,IAAW0B,EAAE3gB,MAC7B0F,UAAW4a,QAMnB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,QACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACEjD,KAAK,MACLU,KAAK,OACLoG,MAAOyf,EAAM,EAAIA,EAAM,GACvBjY,YAAY,uBACZ9B,SAAS,eAKf9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,sBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZojB,EAAiB9e,IAAI,SAAA6f,GAAC,OACrB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,mBAAA5K,OAAqBuqB,EAAE3gB,OAC1B9G,KAAK,iBACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgBuZ,IAAmByB,EAAE3gB,MACrC0F,UAAW4a,QAMnB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,QACZ9B,UAAW4a,MAKjB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,gBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZqjB,EAAe/e,IAAI,SAAA6f,GAAC,OACnB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,gBAAA5K,OAAkBuqB,EAAE3gB,OACvB9G,KAAK,cACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgBwZ,IAAgBwB,EAAE3gB,MAClC0F,UAAW4a,QAMnB1iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,gBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,gBAAA5K,OAAkBuqB,EAAE3gB,OACvB9G,KAAK,cACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgB+T,IAAgBiH,EAAE3gB,MAClCW,SAAU,SAAAX,GAAK,OAAI2f,EAAe,cAAe3f,IACjD0F,UAAW4a,OAKf5G,EACE9b,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,QAAMK,UAAWikB,IAAjB,0BACA7iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX8jB,EAEI1iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,sBACL+R,UAAWsI,GACX/L,YAAY,yBACZS,aAAa,QACbH,UAAWwY,IAGb1iB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,QAAQU,KAAK,OAAOoG,MAAOiP,GAAW0K,GAAsBjU,UAAQ,MAIxF,OAKV9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,wBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,0BAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,YAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,gBAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,qBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,iBAKpB5J,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,uBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,kBAKlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,QACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,gBACL+R,UAAW6G,GACXtK,YAAY,OACZS,aAAa,QACbkI,QAASuP,EACT/e,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,gBAAiB,kBAAmBjB,SAO3E3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GAAIrY,UAAWge,EAAc,SAAW,IACvD5c,EAAA1B,EAAAC,cAAA,KACE6W,UAAW3Y,KAAKijB,kBAChBzf,QAASxD,KAAKijB,kBACd9gB,UAAW2jB,EACXpf,KAAK,SACL2L,SAAS,KALX,IAMG6Q,EAAgB,UAAY,UAN/B,0BASF3f,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GAAIrY,UAAW4jB,GAC9BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,wBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,sBAEFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,4BAKpB5J,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,EAAGrY,UAAW4jB,GAC7BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,YAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,gBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,gBAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,mBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,iBAKpB5J,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,EAAGrY,UAAW4jB,GAC7BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,eACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,kBAKlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,QACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW6G,GACXtK,YAAY,OACZS,aAAa,QACbkI,QAASuP,EACT/e,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,cAAe,gBAAiBjB,QAIrE3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,mBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,uBAOpB5J,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GAAIrY,UAAW4jB,GAC9BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,wBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,4BAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,EAAGrY,UAAW4jB,GAC7BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,2CACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,6CAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,4CACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,mBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,gDAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,oBAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWkkB,IAAjB,iDAGA9iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,mBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,oDAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAWkkB,IAAjB,oCACA9iB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,qBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,uCAIlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,sCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,+BACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,0CAMpB5J,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,EAAGrY,UAAW4jB,GAE7BxiB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,8BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,gCAAA5K,OAAkCuqB,EAAE3gB,OACvC9G,KAAK,+BACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgByZ,IAAiCuB,EAAE3gB,YAM3DpC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,gCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,kCAAA5K,OAAoCuqB,EAAE3gB,OACzC9G,KAAK,iCACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgB0Z,IAAmCsB,EAAE3gB,YAM7DpC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,8BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,gCAAA5K,OAAkCuqB,EAAE3gB,OACvC9G,KAAK,+BACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgB2Z,IAAiCqB,EAAE3gB,YAM3DpC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,iCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,mCAAA5K,OAAqCuqB,EAAE3gB,OAC1C9G,KAAK,kCACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgB4Z,IAAoCoB,EAAE3gB,YAM9DpC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,4BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ4gB,GAAgBtc,IAAI,SAAA6f,GAAC,OACpB/iB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,8BAAA5K,OAAgCuqB,EAAE3gB,OACrC9G,KAAK,6BACL+R,UAAW2V,GACXvf,MAAOsf,EAAEtf,MACT8Y,WAAYwG,EAAE3gB,MACd2F,eAAgBmZ,IAA+B6B,EAAE3gB,MACjDW,SAAU,SAAA4d,GAAC,OAAIoB,EAAe,6BAA8BpB,UAKpE3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,iCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZsiB,EAEGlhB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAW1D,GACX3N,KAAK,OACL4N,YAAY,gCACZC,UAAW,KAIb7J,EAAA1B,EAAAC,cAAA,SACEvC,KAAK,OACL4N,YAAY,gCACZ9B,SAAS,gBASrB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,6BACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,gBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC0kB,GAAA,EAAD,CACEjnB,KAAK,OACLV,KAAK,YACLsO,YAAY,OACZsZ,OAAQ3D,GACRxc,SAAUtG,KAAKokB,kBAKvB7gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GACfjX,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACN,CAAC0a,GAAUpf,IAAI,SAAAvI,GAAG,OACjBqF,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CACEnY,UAAU,OACVoY,GAAI,GACJ5T,IAAG,WAAA5K,OAAamC,IAEhBqF,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,CACE0J,SAAO,EACPtd,MAAM,UACN1E,UAAU,+BAEVoB,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAU,sCAClBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qCACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACZoB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,GAEJnjB,EAAA1B,EAAAC,cAACgP,GAAAjP,EAAD,QAGJ0B,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,OACE4B,IAAI,kBACJD,IAAKoiB,GAAY,eAWrCtiB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,GAAIrY,UAAW8jB,IAAiB9F,EAAc,GAAK,UAClE5c,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,wBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,mBAEFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW1E,GACXlF,MAAM,aACNrB,MAAOqD,EAAW,UAAY,GAC9BsC,eAAgBtC,IAElBzF,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,aACL+R,UAAW1E,GACXlF,MAAM,eACNrB,MAAOmD,EAAa,UAAY,GAChCwC,eAAgBxC,EAChBxC,SAAUtG,KAAKmjB,4BAEjB5f,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,gBACL+R,UAAW1E,GACXlF,MAAM,kBACNrB,MAAOoD,EAAgB,UAAY,GACnCuC,eAAgBvC,IAElBxF,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW1E,GACXlF,MAAM,oBACN0E,QAASzC,EAAU,UAAY,GAC/BqC,eAAgBrC,SAU5B1F,EAAA1B,EAAAC,cAAA,OAAKK,UAAS,iBAAApG,OAAmBiqB,GAA8Blf,MAAO,CAAEid,aAAc,SACpFxgB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACE9nB,KAAK,uBACL+R,UAAW5Q,KAAKqjB,uBAChBpE,qBAAsBA,EACtBoC,UAAWA,EACXV,SAAUA,EACV+C,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,EACdC,eAAgBA,KAInB7kB,EAAK,GAAKinB,GACT1iB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,eACVkJ,SAAUmF,EACVhN,QAASkhB,GAJX,8BASJnhB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAtnCS5hB,iBAAjBigB,GA+CGxb,aAAe,CACpBgJ,YAAY,EACZvH,SAAS,EACTH,YAAY,EACZC,eAAe,EACfC,UAAU,EACVwb,+BAA+B,EAC/BO,8BAA8B,EAC9BC,gCAAgC,EAChCC,8BAA8B,EAC9BC,iCAAiC,EACjCT,4BAA4B,EAC5BzlB,GAAI,EACJ4lB,OAAQ,EACRQ,IAAK,EACLN,YAAa,EACbzF,aAAa,EACbwF,eAAgB,GAChB1E,aAAa,EACb3B,OAAQ,GACRC,SAAU,GACV2B,gBAAiB,GACjBsF,gBAAiB,GACjBE,gBAAiB,GACjBtG,oBAAqB,GACrBuG,SAAU,IA4jCd,IAMepZ,MANM0E,aAAU,CAC7BC,KAAM,eACNnC,YACA2Q,oBAAoB,GAHDzO,CAIlB6R,KC9oCG4D,eACJ,SAAAA,EAAYtkB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA4mB,IACjB9mB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA2pB,GAAAzmB,KAAAH,KAAMsC,KAoFRyb,eAAiB,WACfC,aAAe,CACbhO,UAAW,SAAA/T,GAA4C,IAAzCopB,EAAyCppB,EAAzCopB,OAAQwB,EAAiC5qB,EAAjC4qB,iBAAkBlG,EAAe1kB,EAAf0kB,SAChCmG,EAAYzB,EAAO5e,IAAI,SAAAsgB,GAAC,MAAK,CACjCphB,MAAOohB,EAAE/nB,GAAIgI,MAAO+f,EAAEvI,UAGxB1e,EAAKmB,SAAS,CACZokB,OAAQyB,EACRzF,UAAWwF,EACXlG,cAGJlf,QAAS,WACPrC,aAAmB,qDAnGNU,EAwGnBoQ,aAAe,SAAChB,GAAW,IACjBoR,EAAkBpR,EAAlBoR,UAAWthB,EAAOkQ,EAAPlQ,GACnB,GAAKshB,IAAathB,EAAlB,CAFyB,IAAA2C,EAYrB7B,EAAKM,MAHP4mB,EATuBrlB,EASvBqlB,mBACAC,EAVuBtlB,EAUvBslB,gBACAC,EAXuBvlB,EAWvBulB,cAGI7qB,EAAIY,OAAA0Q,GAAA,EAAA1Q,CAAA,GACLiS,EADK,CAER8X,qBACAC,kBACAC,kBAGFC,aAAS9qB,EAAM,CACb2T,UAAW,WACT9Q,aAAqB,iCADN,IAAAkE,EAE+BtD,EAAKwC,MAA3CmC,EAFOrB,EAEPqB,QAAS0b,EAFF/c,EAEE+c,YAAaiH,EAFfhkB,EAEegkB,YAC9B3qB,aAAamJ,QAAQ,cAAewhB,GAChCA,EACF3iB,EAAQG,KAAK,4CAIVub,GACH1b,EAAQG,KAAK,iBAGjBnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,6DApCvBD,aAAqB,2BA3GNW,EAqJnBwnB,eAAiB,SAACtoB,GAChBuoB,aAAW,CACTvoB,KACAgR,UAAW,SAACwX,GAAU,IACZ7e,EAAS7I,EAAKM,MAAduI,KACR7I,EAAKmB,SAAS,CACZZ,SAAS,EACTsI,KAAK1L,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA0L,EADD,CAEFkd,SAAU9kB,OAAO0mB,IAAIC,gBAAgBF,QAI3C/lB,QAAS,SAAC5D,GAKR,GAJAiC,EAAKmB,SAAS,CACZZ,SAAS,IAGPxC,GAA0B,MAAjBA,EAAML,OACjB,OAAIK,EAAMwpB,aACRloB,aAAqBtB,EAAMwpB,cAI7BloB,aAAqB,oCAIvBC,aAAmB,wCAjLNU,EAsLnB6nB,iBAAmB,SAACppB,GAAU,IACpBS,EAAOc,EAAKwC,MAAZtD,GACR4oB,aAAU,CACR5oB,KACAT,QACAyR,UAAW,SAACsQ,GACVphB,aAAqB,8BADG,IAEhByJ,EAAS7I,EAAKM,MAAduI,KAER7I,EAAKmB,SAAS,CACZ0H,KAAK1L,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA0L,EADD,CAEF2X,gBAIJxgB,EAAKwnB,eAAetoB,IAEtByC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,sDA5MRU,EAkNnB4kB,qBAAuB,WAAM,IAEzB/b,EACE7I,EAAKM,MADPuI,KAEI4V,EAAQ,GAAAxiB,OAAM4M,EAAK6V,OAAX,KAAAziB,OAAqB4M,EAAK8V,UACxCzQ,GAAQ,CACNpK,MAAO,4BACPqK,SAAQ,gEAAAlS,OAA4DwiB,EAA5D,KACRrQ,SAAU,gCACVE,QAAS,aACTC,UAAW,WACTyB,aAAkBnH,EAAKe,MACrB,CACEsG,UAAW,WAGT9Q,aAFc,2CACF,qFAGduC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,yDAxOdU,EAgPnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAlPShoB,EAqPnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GAAU,IAAAuiB,EAC1Cvf,EAAS7I,EAAKM,MAAduI,KACR7I,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,OAAAjrB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAGO0L,EAHP1L,OAAA2S,GAAA,EAAA3S,CAAA,GAIK+qB,EAAYriB,KAJjBuiB,KAvPiBpoB,EAgQnBqoB,8BAAgC,WAAM,IAC5BlJ,EAAyBnf,EAAKM,MAA9B6e,qBAEFgC,EAAwC,IAAhChC,EAAqB5Y,OAC/B,EACC8M,KAAK7F,IAALT,MAAAsG,KAAIlW,OAAAmrB,GAAA,EAAAnrB,CAAQgiB,EAAqBxY,IAAI,SAAAgS,GAAI,OAAIA,EAAKwI,UAAU,EAEjEnhB,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAC1B2a,qBAAoB,GAAAljB,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CACfqH,EAAU2a,sBADK,CAElB,CACEjgB,GAAI,EACJiiB,QACAI,UAAW,CACT1b,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,MAERoI,QAAS,CACPlb,MAAO,EACPqB,MAAO,GACPqhB,SAAU,EACV5P,KAAM,MAER6I,MAAO,GACPV,SAAS,SA1RE9gB,EAgSnBwoB,iCAAmC,SAACrH,GAAU,IAAAsH,EACNzoB,EAAKM,MAAnC6e,qBACFuJ,QAFsC,IAAAD,EACb,GADaA,GAEN9hB,IAAI,SAAAqU,GAAC,OAAA7d,OAAA0Q,GAAA,EAAA1Q,CAAA,GACtC6d,EADsC,CAEzC8F,QAAS9F,EAAE8F,SAAW9F,EAAEmG,QAAUA,MAGpCnhB,EAAKmB,SAAS,CAAEge,qBAAsBuJ,KAvSrB1oB,EA0SnB2oB,iBAAmB,SAAC3nB,EAAGmgB,GAAU,IACvBhC,EAAyBnf,EAAKM,MAA9B6e,qBACFyJ,EAAuBzrB,OAAAmrB,GAAA,EAAAnrB,CAAOgiB,GAE9BtZ,EAA0B,WAAlB7E,EAAE+O,OAAOtQ,KAAoBgH,OAAOzF,EAAE+O,OAAOlK,OAAS,GAAA5J,OAAG+E,EAAE+O,OAAOlK,OAAQgjB,OAExFD,EAAwBzH,GAAxBhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKyrB,EAAwBzH,GAD7BhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK6D,EAAE+O,OAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,IAInC7F,EAAKmB,SAAS,CACZge,qBAAsByJ,KAxTP5oB,EA4TnB8oB,mBAAqB,SAAAla,GAA6B,IAAAma,EAA1BxS,EAA0B3H,EAA1B2H,OAAQxX,EAAkB6P,EAAlB7P,KAAMoiB,EAAYvS,EAAZuS,MACpCnhB,EAAKmB,SAAS,CAAEZ,SAAS,IADuB,IAGxC4e,EAAyBnf,EAAKM,MAA9B6e,qBACFyJ,EAAuBzrB,OAAAmrB,GAAA,EAAAnrB,CAAOgiB,GAC9B5iB,GAAIwsB,EAAA,GAAA5rB,OAAA2S,GAAA,EAAA3S,CAAA4rB,EACPhqB,EAAOwX,GADApZ,OAAA2S,GAAA,EAAA3S,CAAA4rB,EAAA,QAER5H,GAFQ4H,GAKVH,EAAwBzH,GAAxBhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKyrB,EAAwBzH,GACxB5kB,GAGLyD,EAAKmB,SAAS,CACZge,qBAAsByJ,EACtBroB,SAAS,KA7UMP,EAiVnBgpB,mBAAqB,SAACniB,EAAKhB,GACzB7F,EAAKmB,SAALhE,OAAA2S,GAAA,EAAA3S,CAAA,GAAiB0J,EAAMhB,KAlVN7F,EAqVnBipB,WAAa,WAAM,IACTpgB,EAAS7I,EAAKM,MAAduI,KAEFrM,EAAcuJ,IAOpB,OAAI8C,EAAKK,SACA1M,EAAY8J,MAAM8T,OAAO,SAAAmE,GAAC,OANnB,IAMuBA,EAAE3X,OAAkBD,IAAI,SAAAC,GAAI,OAAIA,EAAK9C,QAGxE+E,EAAKG,WACAxM,EAAY8J,MAAM8T,OAAO,SAAAmE,GAAC,OATnB,IASuBA,EAAE3X,OAAkBD,IAAI,SAAAC,GAAI,OAAIA,EAAK9C,QAGxE+E,EAAKI,cACAzM,EAAY8J,MAAM8T,OAAO,SAAAmE,GAAC,OAZlB,IAYsBA,EAAE3X,OAAmBD,IAAI,SAAAC,GAAI,OAAIA,EAAK9C,QAGzE+E,EAAKM,QACA3M,EAAY8J,MAAM8T,OAAO,SAAAmE,GAAC,OAfrB,IAeyBA,EAAE3X,OAAgBD,IAAI,SAAAC,GAAI,OAAIA,EAAK9C,QAGnE,WA7WP9D,EAAKM,MAAQ,CACXC,SAAS,EACTsI,KAAM,KACNsW,qBAAsB,IAGxBnf,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KARXA,mFAWC,IAAAS,EAAAP,KAClBA,KAAK+d,iBADa,IAAAzT,EAKdtK,KAAKsC,MADPtD,EAJgBsL,EAIhBtL,GAAIyF,EAJY6F,EAIZ7F,QAGDzF,GAaLgB,KAAKiB,SAAS,CACZZ,SAAS,IAGX2oB,aAAUhqB,EAAI,CACZgR,UAAW,SAACiZ,GAAQ,IAEhB5J,EACE4J,EADF5J,YAAa6J,EACXD,EADWC,iBAAkBC,EAC7BF,EAD6BE,cAAeC,EAC5CH,EAD4CG,YAE1CnK,EAAuBgK,EAAIhK,qBAAqBxY,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,YAE3EtY,EAAI1L,OAAA0Q,GAAA,EAAA1Q,CAAA,GACLgsB,EADK,CAER5J,cACAgB,aAAc,CACZ1a,MAAOsjB,EAAIjC,mBACXhgB,MAAK,GAAAjL,OAAKmtB,IAEZC,cAAe,CACbxjB,MAAOsjB,EAAIhC,gBACXjgB,MAAK,GAAAjL,OAAKotB,IAEZC,YAAa,CACXzjB,MAAOsjB,EAAI/B,cACXlgB,MAAK,GAAAjL,OAAKqtB,MAId7oB,EAAKU,SAAS,CACZZ,SAAS,EACTsI,OACA0W,cACAJ,uBACA+H,mBAAoBiC,EAAIjC,mBACxBC,gBAAiBgC,EAAIhC,gBACrBC,cAAe+B,EAAI/B,gBAGrB3mB,EAAK+mB,eAAetoB,IAEtByC,QAAS,SAAC5D,GACR0C,EAAKU,SAAS,CACZZ,SAAS,IAEPxC,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,wBACnBqF,EAAQG,KAAK,iBAEbxF,aAAmB,sDA5DvBY,KAAKiB,SAAS,CACZ0H,KAAM,CACJ3J,GAAI,EACJqgB,aAAa,EACbwG,SAAU,MAEZ5G,qBAAsB,sCAyVnB,IAAAN,EASH3e,KAAKI,MAPPuI,EAFKgW,EAELhW,KAFK0gB,EAAA1K,EAGLM,4BAHK,IAAAoK,EAGkB,GAHlBA,EAILhE,EAJK1G,EAIL0G,OACAhE,EALK1C,EAKL0C,UACAV,EANKhC,EAMLgC,SACAtgB,EAPKse,EAOLte,QACAgf,EARKV,EAQLU,YARK/K,EAcHtU,KAAKsC,MAHPtD,EAXKsV,EAWLtV,GACAyF,EAZK6P,EAYL7P,QACA0b,EAbK7L,EAaL6L,YAGF,OAAI9f,GAAYsI,GAAS0c,EAKvB9hB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,cACuCgB,KAAK+oB,cAE5CxlB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,qCAEyCgB,KAAK+oB,cAE9CxlB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,mEAMNtD,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAT,KACEhX,EAAA1B,EAAAC,cAACwnB,GAADrsB,OAAAuP,OAAA,GACM7D,EADN,CAEEsE,cAAetE,EACfuI,SAAUlR,KAAKkQ,aACfqU,aAAcvkB,KAAK2nB,iBACnBjD,qBAAsB1kB,KAAK0kB,qBAC3BC,OAAQ3kB,KAAK6nB,aAEbnE,eAAgB1jB,KAAKmoB,8BACrBxE,kBAAmB3jB,KAAKsoB,iCAExBnD,gBAAiBnlB,KAAK+nB,qBACtBnE,aAAc5jB,KAAKyoB,iBACnB5E,eAAgB7jB,KAAK4oB,mBAErBvJ,YAAaA,EACbiG,eAAgBtlB,KAAK8oB,mBAErBrkB,QAASA,EAETwa,qBAAsBA,EAEtBoG,OAAQA,EACRhE,UAAWA,EACXV,SAAUA,EACV4E,iBAAkBhE,GAClBiE,eAAgB3D,GAChB4D,QAAS3D,GACT3B,YAAaA,QAnDd5c,EAAA1B,EAAAC,cAAC4d,GAAD,aApYmB3c,iBAschC6jB,GAAkBpf,aAAe,CAC/B2Y,aAAa,EACbiH,aAAa,GAGAR,4BChcR,SAAS2C,GAAuB5sB,GACrC,OAAOsB,aAAM,GAAAlC,OAAIV,KAAJ,qBACVuC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAqH5C,SAAS6rB,GAAa1qB,EAAIoc,GAC/B,OAAOnd,aAAM,GAAAlC,OAAIV,KAAJ,KAAAU,OAAmBiD,IAC7BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SCvKnD8rB,eAKJ,SAAAA,EAAYrnB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2pB,IACjB7pB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0sB,GAAAxpB,KAAAH,KAAMsC,KA4DRsnB,oBAAsB,SAAC9W,EAAMiH,EAAUmE,GDvElC,IAAuBvhB,EACtByhB,ECuEJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KD3ElBE,GADsBzhB,EC8EZ,CACZyhB,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oDD5FEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIV,KAAJ,QAAuB+iB,GAClCxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MCH9BiC,EAwFnB+pB,oBAAsB,SAACC,GACrB,IAAMjrB,EAAI,GAAA9C,OAAM+tB,EAAQtL,OAAd,KAAAziB,OAAwB+tB,EAAQrL,UAC1CzQ,GAAQ,CACNpK,MAAO,gBACPqK,SAAQ,yCAAAlS,OAAwC8C,EAAxC,KACRqP,SAAU,oBACVE,QAAS,aACTC,UAAW,WDqFV,IAAuBrP,EAAIoc,EAAJpc,ECpFR8qB,EAAQ9qB,GDoFIoc,ECnFxB,CACEpL,UAAW,WACT9Q,aAAqB,+BADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAK8pB,oBAAoB9W,EAAMiH,IAEjCtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBAEnBA,aAAmB,wCD0E1BH,aAAS,GAAAlD,OAAIV,KAAJ,KAAAU,OAAmBiD,IAChCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SC9LpCiC,EAmHnBiqB,gCAAkC,SAACD,GACbhqB,EAAKwC,MAAjBmC,QACAG,KAAR,0CAAA7I,OAAuD+tB,EAAQ9qB,MArH9Cc,EAwHnBkqB,YAAc,SAACF,GACOhqB,EAAKwC,MAAjBmC,QACAG,KAAR,wBAAA7I,OAAqC+tB,EAAQ9qB,MA1H5Bc,EA6HnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,KAhI1Bpe,EAoInB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU7K,KAvIvBpP,EA4InB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU,KA9IrBja,EAiJnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAnJf7G,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAEjBc,EAAK6Z,QAAU,CACb,CACEhT,IAAK,eACL9H,KAAM,WACNwR,MAAO,OACP+J,QAAQ,EACR7a,KAAM,UAER,CACEoH,IAAK,kBACL9H,KAAM,cACNub,QAAQ,EACR7a,KAAM,SACN8Q,MAAO,SAET,CAAE1J,IAAK,SAAU9H,KAAM,SAAUub,QAAQ,GACzC,CAAEzT,IAAK,WAAY9H,KAAM,WAAYub,QAAQ,GAC7C,CAAEzT,IAAK,QAAS9H,KAAM,QAASub,QAAQ,GACvC,CAAEzT,IAAK,UAAW9H,KAAM,UAAWub,QAAQ,GAC3C,CAAEzT,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,qBACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,YAAYyB,MAAM,4BACxCwX,SAAU,SAAC0O,GACThqB,EAAKiqB,gCAAgCD,KAGzC,CACEnjB,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,kBACzCwX,SAAU,SAAC0O,GACThqB,EAAKkqB,YAAYF,KAGrB,CACEnjB,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,kBAC1CwX,SAAU,SAAC0O,GACThqB,EAAK+pB,oBAAoBC,MAlDdhqB,mFAwDC,IAAAyf,EACSvf,KAAKI,MAAxB0S,EADUyM,EACVzM,KAAMiH,EADIwF,EACJxF,SACd/Z,KAAK4pB,oBAAoB9W,EAAMiH,oCA8FxB,IAAAxZ,EAAAP,KAAAwf,EAQHxf,KAAKI,MANPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,uBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,uBACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,4BAMNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gBAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,iDACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAlMF7c,iBA4MjBC,eAAW2mB,4CCRnB,SAASM,GAAgBC,EAAa9O,GAC3C,OAAOtc,aAAO,GAAA/C,OAAIR,KAAJ,qBAA2C2uB,GACtDtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAuClD,SAASssB,GAATC,GAIJ,IAAAC,EAAAD,EAHDhM,gBAGC,IAAAiM,EAHW,CAAEvX,KAAM,EAAGiH,SAAU,KAGhCsQ,EAFDra,EAECoa,EAFDpa,UACAvO,EACC2oB,EADD3oB,QAEA,OAAO3C,aAAO,GAAA/C,OAAIR,KAAJ,4BAAkD6iB,GAC7DxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KCrMpB,SAAS2H,GAAT8kB,GAAyC,IAA1BtrB,EAA0BsrB,EAA1BtrB,GAAIgR,EAAsBsa,EAAtBta,UAAWvO,EAAW6oB,EAAX7oB,QACnC,OAAOxD,aAAM,GAAAlC,OAAIL,KAAJ,KAAAK,OAA0BiD,IACpCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAoBpB,SAAS0sB,GAAKC,EAAKpP,GACxB,OAAOtc,aAAO,GAAA/C,OAAIL,MAAsB8uB,GACrC5sB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KA6GlD,SAAS4sB,GAAOzrB,EAAIoc,GACzB,OAAOnc,aAAS,GAAAlD,OAAIL,KAAJ,KAAAK,OAA0BiD,IACvCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAiClD,SAASmgB,GAAT0M,GAAgD,IAAtB1a,EAAsB0a,EAAtB1a,UAAWvO,EAAWipB,EAAXjpB,QAC1C,OAAOxD,aAAM,GAAAlC,OAAIL,KAAJ,eACVkC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAkBpB,SAAS8sB,GAATC,GAEJ,IADDC,EACCD,EADDC,UAAW7a,EACV4a,EADU5a,UAAWvO,EACrBmpB,EADqBnpB,QAEtB,OAAOxD,aAAM,GAAAlC,OAAIL,KAAJ,uBAAAK,OAA4C8uB,IACtDjtB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAkCpB,SAASitB,GAAmBnuB,GACjC,IAAMuhB,EAAUvhB,GAASA,EAAOuhB,SAAgB,GAChD,OAAOnf,aAAM,GAAAhD,OAAIL,KAAJ,oBAA0CiB,EAAOqC,GAAIkf,GAC/DtgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAsB5C,SAASktB,GAATC,GAAkE,IAA1BhsB,EAA0BgsB,EAA1BhsB,GAAIgR,EAAsBgb,EAAtBhb,UAAWvO,EAAWupB,EAAXvpB,QAC5D,OAAOrD,aAAW,GAAArC,OAAIL,KAAJ,oCAAAK,OAAyDiD,IACxEpB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,eAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACDza,GAAWA,EAAUhS,KAE1ByrB,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SCrXrBytB,eAOJ,SAAAA,EAAYhpB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsrB,IACjBxrB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAquB,GAAAnrB,KAAAH,KAAMsC,KAwDRipB,YAAc,SAACzY,EAAMiH,EAAUmE,GAC7Bpe,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KDzCnB,SAAAsN,GAKJ,IAJDX,EAICW,EAJDX,UAICY,EAAAD,EAHDpN,gBAGC,IAAAqN,EAHU,CAAE3Y,KAAM,EAAGiH,SAAU,IAG/B0R,EAFDzb,EAECwb,EAFDxb,UACAvO,EACC+pB,EADD/pB,QAEO3C,aAAO,GAAA/C,OAAIL,KAAJ,KAAAK,OAA0B8uB,EAA1B,gBAAmDzM,GAC9DxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KC6BvB6tB,CAAiB,CACfb,UAFsC/qB,EAAKwC,MAArCqpB,iBAGNvN,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAA/T,GAAgC,IAA7B2d,EAA6B3d,EAA7B2d,MAAOI,EAAsB/d,EAAtB+d,gBACnBla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,qBAGJvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,mDAjFNU,EAsFnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAnR,EACsB7B,EAAKM,MAA3B2Z,EADApY,EACAoY,SAAUmE,EADVvc,EACUuc,QAClBpe,EAAKyrB,YAAYzY,EAAMiH,EAAUmE,KAzFlBpe,EA6FnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyrB,YAAY,EAAGxR,EAAU7K,KAhGfpP,EAoGnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyrB,YAAY,EAAGxR,EAAU,KAtGbja,EAyGnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IA7GE7G,EAgHnBub,OAAS,SAAA1V,GAAK,OACZpC,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,QAAA5K,OAAU4J,GAASmB,MAAO,CAAE2P,QAAS,SAC1ClT,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,QAAA5K,OAAU4J,GACbkB,MAAQN,OAAOZ,GAAuB,UAAd,aAEvBA,KApHL7F,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAGjBc,EAAK6Z,QAAU,SAAAiS,GAA4B,MAAI,CAC7C,CACEjlB,IAAK,KACL9H,KAAM,IACNwR,MAAO,OACPgL,OAAQ,SAAA3M,GAAA,IAAG1P,EAAH0P,EAAG1P,GAAI6sB,EAAPnd,EAAOmd,eAAP,SAAA9vB,OAA+BiD,GAAM6sB,KAE/C,CACEllB,IAAK,QAAS9H,KAAM,QAASwR,MAAO,OAAQ+J,QAAQ,GAEtD,CACEzT,IAAK,YACL9H,KAAM,aACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAI4T,UAAU9kB,SAElC,CACEL,IAAK,kBACL9H,KAAM,mBACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAI6T,mBAExB,CACEplB,IAAK,eACL9H,KAAM,gBACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAI8T,gBAExB,CACErlB,IAAK,wBACL8S,QAASmS,EACT/sB,KAAM,0BACNwR,MAAO,OACPlO,UAAW,iBA/CErC,mFAoDC,IAAA6e,EACS3e,KAAKI,MAAxB0S,EADU6L,EACV7L,KAAMiH,EADI4E,EACJ5E,SACd/Z,KAAKurB,YAAYzY,EAAMiH,oCAqEhB,IAAAxZ,EAAAP,KAKP,GAFIA,KAAKI,MADPC,QAIA,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MANF,IAULkM,EACE5rB,KAAKsC,MADPspB,6BAVKrM,EAmBHvf,KAAKI,MALPwZ,EAdK2F,EAcL3F,MACA9G,EAfKyM,EAeLzM,KACAiH,EAhBKwF,EAgBLxF,SACAC,EAjBKuF,EAiBLvF,gBACAkE,EAlBKqB,EAkBLrB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,uCACN+V,QAAS3Z,KAAK2Z,QAAQiS,GACtBhS,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,YArKI7c,iBA4KjBC,eAAWsoB,IC9KpBW,GAAgB,SAAAhwB,GAOhB,IAAAiwB,EAAAjwB,EANJ2d,aAMI,IAAAsS,EANI,GAMJA,EAAAC,EAAAlwB,EALJmwB,kBAKI,IAAAD,EALS,GAKTA,EAAAE,EAAApwB,EAJJqwB,uBAII,IAAAD,EAJc,GAIdA,EAHJzI,EAGI3nB,EAHJ2nB,aAGI2I,EAAAtwB,EAFJuwB,sBAEI,IAAAD,EAFa,GAEbA,EAAAE,EAAAxwB,EADJ+M,gBACI,IAAAyjB,KAAAC,EAY2BF,EAAvBG,qBAZJ,IAAAD,EAYoB,GAZpBA,EAaEE,EAAiB,CACrB,CACE/tB,KAAM0E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,yBAA2BxC,MAAO6mB,EAAeK,oBAEzD,CAAEhuB,KAAM0E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,2BAA6BxC,MAAO6mB,EAAeM,sBAC3D,CAAEjuB,KAAM0E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,yBAAuBxC,MAAO6mB,EAAeO,yBACrD,CAAEluB,KAAM0E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,eAAaxC,MAAO6mB,EAAeQ,oBAG7C,OACEzpB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gBAAgB2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,SACvE1pB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,SACxF1pB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,YACAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,kBAGJoB,EAAA1B,EAAAC,cAAA,aACGsqB,EAAW3lB,IAAI,SAAAiI,EAIbuS,GAJa,IACdjiB,EADc0P,EACd1P,GACAmuB,EAFcze,EAEdye,SACA9L,EAHc3S,EAGd2S,UAHc,OAKd9d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,MAAA5K,OAAQiD,GAAMA,GAAE,MAAAjD,OAAQiD,IAC7BuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,eAAA/F,OAAUklB,EAAQ,EAAlB,OAAAllB,OAAyBoxB,MAG7B5pB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YA9CL,SAAAuf,GAAS,OACtB9d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,QAAA5K,OAAUslB,EAAU1b,OAASmB,MAAO,CAAE2P,QAAS,SACpDlT,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,QAAA5K,OAAUslB,EAAU1b,OACvBkB,MAA2B,IAApBwa,EAAU1b,MAAc,YAAc,WAExB,IAApB0b,EAAU1b,MAAc,GAAK,SAAU0b,EAAUra,QAwC7BqU,CAAOgG,YAQ5B9d,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,SACxF1pB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAQ,IAAI3hB,UAAU,0BAA1B,sBAGJoB,EAAA1B,EAAAC,cAAA,aACG8qB,EAAenmB,IAAI,SAAA+kB,EAGjBvK,GAHiB,IAClBpiB,EADkB2sB,EAClB3sB,KACA8G,EAFkB6lB,EAElB7lB,MAFkB,OAIlBpC,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,MAAA5K,OAAQ4J,EAAR,KAAA5J,OAAiBklB,EAAQ,GAAKjiB,GAAE,MAAAjD,OAAQ4J,EAAR,KAAA5J,OAAiBklB,IACtD1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YAAOjD,KAGX0E,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YAAO6D,WAQrBpC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,SACxF1pB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAYoB,EAAA1B,EAAAC,cAAA,oCAC1ByB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAYoB,EAAA1B,EAAAC,cAAA,8BAG9ByB,EAAA1B,EAAAC,cAAA,aACG8X,EAAMnT,IAAI,SAAA2mB,GAAA,IACTpuB,EADSouB,EACTpuB,GACAquB,EAFSD,EAETC,IACAC,EAHSF,EAGTE,8BACAC,EAJSH,EAITG,WACAC,EALSJ,EAKTI,QALS,OAOTjqB,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,MAAA5K,OAAQiD,GAAMA,GAAE,MAAAjD,OAAQiD,IAC7BuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YAAOwrB,EAA8BtmB,SAGzCzD,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YAAOurB,EAAIrmB,MAAX,KAAoBumB,EAApB,IAAiCC,WAQ/CjqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,SACxF1pB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UAEIkH,IAAawjB,EAAeiB,sBAC1BlqB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,0BACZoB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQiX,IAAK,WAClCnqB,EAAA1B,EAAAC,cAAA,sCACAyB,EAAA1B,EAAAC,cAAA,YAAOwqB,KAIX/oB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBAAmB2E,MAAO,CAAEid,aAAc,SACvDxgB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,yBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW1D,GACX3N,KAAK,OACL8L,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,GACXD,YAAY,0BACZS,aAAa,QACbiI,aAAcyW,EACdhmB,SAAUsd,QAQxBrgB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAYoB,EAAA1B,EAAAC,cAAA,kCAG9ByB,EAAA1B,EAAAC,cAAA,aACG6qB,EAAclmB,IAAI,SAAA6jB,GAAA,IACjBzJ,EADiByJ,EACjBzJ,QAAS8M,EADQrD,EACRqD,YADQ,OAGjBpqB,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,oBAAA5K,OAAsB4xB,GAAe3uB,GAAE,oBAAAjD,OAAsB4xB,IAClEpqB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,YAAO+e,cAuB7BoL,GAAczkB,aAAe,CAC3B6E,KAAM,GACNigB,gBAAiB,GACjBtjB,UAAU,GAGGijB,UCpKR,SAAS9tB,GAATqtB,GAA2C,IAA1BxsB,EAA0BwsB,EAA1BxsB,GAAIgR,EAAsBwb,EAAtBxb,UAAWvO,EAAW+pB,EAAX/pB,QACrC,OAAOxD,aAAM,GAAAlC,OAAIT,KAAJ,KAAAS,OAAsBiD,IAChCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAKb,OAFImS,GAAWA,EAAUwZ,GAElBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAkCpB,SAAS+vB,GAATC,GAEJ,IADDC,EACCD,EADDC,aAAcC,EACbF,EADaE,QAAS/d,EACtB6d,EADsB7d,UAAWvO,EACjCosB,EADiCpsB,QAElC,OAAO3C,aAAO,GAAA/C,OAAIT,KAAJ,KAAAS,OAAsB+xB,EAAtB,oBAAsDC,GACjEnwB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAKb,OAFImS,GAAWA,EAAUwZ,GAElBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SChFrBmwB,eAMJ,SAAAA,EAAY1rB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAguB,IACjBluB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA+wB,GAAA7tB,KAAAH,KAAMsC,KA4IR2rB,aAAe,WAAmB,IAAlBC,EAAkBphB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAAOqhB,EAG5BD,EADFpb,YAF8B,IAAAqb,EAEvB,EAFuBA,EAAAC,EAG5BF,EADQnU,gBAFoB,IAAAqU,EAET,GAFSA,EAAAC,EAG5BH,EADuBlU,uBAFK,IAAAqU,EAEa,EAFbA,EAAAC,EAG5BJ,EAD4ChQ,QAG1C9d,EAAQ,CACZ8d,cAN8B,IAAAoQ,EAE0B,GAF1BA,IAMV,CAAEC,WAAY,IAClCzb,OACAiH,WACAC,mBAGFla,EAAK0uB,WAALvxB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAqBmD,KAzJJN,EA4JnB0uB,WAAa,SAAAvyB,GAAiC,IAA9B6W,EAA8B7W,EAA9B6W,KAAMiH,EAAwB9d,EAAxB8d,SAAUmE,EAAcjiB,EAAdiiB,QAE5BuQ,EACE3uB,EAAKwC,MADPmsB,gBAGF3uB,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KD1KnB,SAAAxP,GAKJ,IAJD+f,EAIC/f,EAJD+f,gBAICC,EAAAhgB,EAHD0P,gBAGC,IAAAsQ,EAHW,CAAE5b,KAAM,EAAGiH,SAAU,IAGhC2U,EAFD1e,EAECtB,EAFDsB,UACAvO,EACCiN,EADDjN,QAEO3C,aAAO,GAAA/C,OAAIT,KAAJ,KAAAS,OAAsB0yB,EAAtB,OAA4CrQ,GACvDxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KC8JvB8wB,CAAQ,CACNF,kBACArQ,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAAtB,GAA2C,IAAxC0P,EAAwC1P,EAAxC0P,SAAUwQ,EAA8BlgB,EAA9BkgB,QAASC,EAAqBngB,EAArBmgB,eACvBjV,EAA2BwE,EAA3BxE,MAAOI,EAAoBoE,EAApBpE,gBACfla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,kBACA4U,UACAC,oBAGJptB,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,iEA3LNU,EAgMnBgvB,eAAiB,WACfhvB,EAAKmB,SAAS,CACZoZ,UAAU,IAGZva,EAAKmuB,gBArMYnuB,EAwMnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAnR,EACsB7B,EAAKM,MAA3B2Z,EADApY,EACAoY,SAAUmE,EADVvc,EACUuc,QAClBpe,EAAKmuB,aAAa,CAAEnb,OAAMiH,WAAUmE,cA3MrBpe,EA+MnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKmuB,aAAa,CAAEnb,KAAM,EAAGiH,WAAU7K,aAlNxBpP,EAsNnB+e,wBAA0B,WAAM,IAAAF,EACA7e,EAAKM,MAA3B2Z,EADsB4E,EACtB5E,SACAP,EAFsBmF,EACZT,QACV1E,eACR1Z,EAAKmuB,aAAa,CAAEnb,KAAM,EAAGiH,WAAUmE,QAAS,CAAE1E,qBAzNjC1Z,EA4NnBivB,SAAW,WAAM,IAAAxP,EAC6Bzf,EAAKM,MADlC4uB,EAAAzP,EACP0P,gBADO,IAAAD,EACI,GADJA,EACQE,EADR3P,EACQ2P,iBAEjBjO,EAAQgO,EAASE,UAAU,SAAAhV,GAAC,OAAIA,EAAEiV,YAAcF,IAGhDpF,EAAUmF,EAFChO,EAAQ,IAAMgO,EAAS5oB,OAAS,EAAI4a,EAAQ,GAI7DnhB,EAAKmB,SAAS,CAAEiuB,iBAAkBpF,EAAQsF,aApOzBtvB,EAuOnBuvB,aAAe,WAAM,IAAA7P,EACyB1f,EAAKM,MAD9BkvB,EAAA9P,EACXyP,gBADW,IAAAK,EACA,GADAA,EACIJ,EADJ1P,EACI0P,iBAEjBjO,EAAQgO,EAASE,UAAU,SAAAhV,GAAC,OAAIA,EAAEiV,YAAcF,IAC9CE,EAAcH,EAAmB,IAAVhO,EAAcgO,EAAS5oB,OAAS,EAAI4a,EAAQ,GAAnEmO,UAERtvB,EAAKmB,SAAS,CAAEiuB,iBAAkBE,KA7OjBtvB,EAgPnByvB,kBAAoB,SAAA/D,GASd,IARJsC,EAQItC,EARJsC,aACAoB,EAOI1D,EAPJ0D,iBACAM,EAMIhE,EANJgE,gBACAC,EAKIjE,EALJiE,eACAC,EAIIlE,EAJJkE,WACAC,EAGInE,EAHJmE,UACAC,EAEIpE,EAFJoE,SACAC,EACIrE,EADJqE,eAGA,OAD2B/vB,EAAKM,MAAxB0vB,eAECvsB,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,yBACV2E,MAAO,CAAEipB,UAAW,SAAU3T,eAAgB,kBAE9C7Y,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,qBAAA5K,OAAuB+xB,EAAvB,KAAA/xB,OAAuCmzB,GAC1C3vB,KAAK,SACL4C,UAAU,gBACVqB,QAASisB,GAETlsB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,kBAAA5K,OAAoB+xB,EAApB,KAAA/xB,OAAoCmzB,GACvCtrB,MAAM,WACNzB,UAAU,mCAGdoB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQ0C,SAAU,SAAU6W,aAAc,WAC/DzsB,EAAA1B,EAAAC,cAAA,WAAM+tB,GACNtsB,EAAA1B,EAAAC,cAAA,QACEK,UAAS,eAAApG,OAAiByzB,EAAgB3oB,OAC1CC,MAAO,CAAEmpB,UAAW,WAEnBT,EAAgBU,aAEnB3sB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,aAAA5K,OAAe+xB,EAAf,KAAA/xB,OAA+BmzB,GAClC3vB,KAAK,SACL4C,UAAU,gBACVqB,QAAS,kBAAMmsB,EAAU,CAAE7B,eAAcsB,UAAWF,MAEpD3rB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,WAAA5K,OAAa+xB,EAAb,KAAA/xB,OAA6BmzB,GAChCtrB,MAAM,WACNzB,UAAU,uBAGdoB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,aAAA5K,OAAe+xB,EAAf,KAAA/xB,OAA+BmzB,GAClC3vB,KAAK,SACL4C,UAAU,gBACVqB,QAAS,kBAAMosB,EAAS,CAAE9B,eAAcsB,UAAWF,MAEnD3rB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,WAAA5K,OAAa+xB,EAAb,KAAA/xB,OAA6BmzB,GAChCtrB,MAAM,UACNzB,UAAU,yBAKlBoB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,sBAAA5K,OAAwB+xB,EAAxB,KAAA/xB,OAAwCmzB,GAC3C3vB,KAAK,SACL4C,UAAU,gBACVqB,QAASksB,GAETnsB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,oBAAA5K,OAAsB+xB,EAAtB,KAAA/xB,OAAsCmzB,GACzCtrB,MAAM,WACNzB,UAAU,uCA7THrC,EAqUnBqwB,UAAY,WAAM,IAAAC,EAUZtwB,EAAKM,MARPia,EAFc+V,EAEd/V,SACAT,EAHcwW,EAGdxW,MACA9G,EAJcsd,EAIdtd,KACAiH,EALcqW,EAKdrW,SACAC,EANcoW,EAMdpW,gBACAkE,EAPckS,EAOdlS,QACA0Q,EARcwB,EAQdxB,QACAC,EATcuB,EASdvB,eAGF,OAAIxU,EACK,KAIP9W,EAAA1B,EAAAC,cAAC6d,GAAD,CACEhZ,IAAI,aACJ/C,MAAM,mCACN+V,QAAS7Z,EAAK6Z,QAAQ,CAAEiV,UAASC,mBACjCjV,MAAOA,EACP3G,aAAcnT,EAAKmT,aACnB+G,gBAAiBA,EACjB9I,SAAUpR,EAAK8e,kBACf9E,eAAgBha,EAAK+e,wBAErB7L,YAAa4G,EAAMvT,OACnByM,KAAMA,EACNiH,SAAUA,EACVP,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,KAlWtB9f,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTyvB,gBAAgB,EAChBlW,MAAO,GACPgV,QAAS,GACTC,eAAgB,GAChB3Q,QAAS,CAAElf,GAAI,IACfqb,UAAU,EACV4U,SAAU,GACVC,iBAAkB,GAGpBpvB,EAAK6Z,QAAU,SAAAyT,GAA4D,IAAzDwB,EAAyDxB,EAAzDwB,QAASC,EAAgDzB,EAAhDyB,eAAgDwB,EAAAjD,EAAhCkD,0BAAgC,IAAAD,KAGnEE,EAAoB3B,EAAQnoB,IAAI,SAAA6jB,GAAA,MAA8B,CAAEwD,aAAhCxD,EAAGtrB,GAA+C2V,KAAlD2V,EAAO3V,KAAiD6b,UAAxDlG,EAAakG,aAE7CC,EAAuB5B,EAC1BpoB,IAAI,SAAAonB,GAAA,MAA2C,CAAEC,aAA7CD,EAAGC,aAAwDsB,UAA3DvB,EAAiBuB,UAAqDsB,QAAtE7C,EAA4B6C,WAC7BC,EAAmBJ,EAAkBlqB,OACrCuqB,EAAiB,GAEvB/B,EACGpoB,IAAI,SAAA2jB,GAAA,MAA6B,CAAEgF,UAA/BhF,EAAGgF,UAAuCsB,QAA1CtG,EAAcsG,WAClBG,OAAO,SAACrH,EAADsH,GAAiC,IAAzB1B,EAAyB0B,EAAzB1B,UAAWsB,EAAcI,EAAdJ,QAQzB,OAPKlH,EAAI4F,KACP5F,EAAI4F,GAAa,CAAEA,YAAW7xB,GAAI,GAClCqzB,EAAehsB,KAAK4kB,EAAI4F,KAG1B5F,EAAI4F,GAAW7xB,IAAMmzB,EAAU,EAAI,EAE5BlH,GACN,IAEL,IAAMuH,EAAqBT,EAEvBC,EAAkB9pB,IAAI,SAAA5E,GAAC,MAAK,CAC5B8E,IAAG,aAAA5K,OAAe8F,EAAEisB,cACpBjvB,KACE0E,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,SAAU4U,cAAe,WACtEztB,EAAA1B,EAAAC,cAAA,WAAMqb,GAAatb,EAAE8S,MAAO9S,EAAE2uB,UAAF,IAAAz0B,OAAkB8F,EAAE2uB,WAAc,IAC9DjtB,EAAA1B,EAAAC,cAACqd,GAAD,CACExY,IAAG,UAAA5K,OAAY8F,EAAEisB,cACjB9uB,GAAI6C,EAAEisB,aACNnoB,MAAOsX,GAAapb,EAAE8S,MACtB3N,MAAOnF,EAAE2uB,UACT3pB,MAAM,eAIZwJ,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAA4V,GAAmB,IAAhB7B,EAAgB6B,EAAhB7B,UACH8B,EAAsBT,EACzB7Y,KAAK,SAAAuZ,GAAE,OAAIA,EAAGrD,eAAiBjsB,EAAEisB,cAAgBqD,EAAG/B,YAAcA,IAErE,OAAK8B,GAAuD,OAAhCA,EAAoBR,SAIZ,IAAhCQ,EAAoBR,QAEpBntB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,WAA5B,gBAKF7tB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,YAA5B,gBAVO7tB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,kBAA5B,oBAtBX,GAqCJ,SAAAr1B,OA5Da,GA8DR,CACD,CACE4K,IAAK,aACL9H,KAAM,eACNuZ,UAAU,EACV/H,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAAgW,GAAA,IAAcryB,EAAdqyB,EAAGjC,UAAHkC,EAAAD,EAAkBE,kBAAlB,IAAAD,EAA+B,EAA/BA,EAAA,OACN/tB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLmpB,UAAW,SACXnZ,WAAY,WAIZwZ,EACIiB,EACAX,EAAe1W,OAAO,SAAAsX,GAAA,IAAGpC,EAAHoC,EAAGpC,UAAH,OAAmBpwB,IAAOowB,IAC/C3oB,IAAI,SAAAgrB,GAAA,IAAGl0B,EAAHk0B,EAAGl0B,GAAH,OAAY4V,KAAKue,MAAOn0B,EAAKozB,EAAoB,OAAM,IAC3D,MAxBjB1zB,OAAAmrB,GAAA,EAAAnrB,CA8BK8zB,KA7GUjxB,mFAqHbE,KAAKsC,MADPqvB,eAUF3xB,KAAKiuB,eANHjuB,KAAKiB,SAAS,CACZZ,SAAS,+CAQIuC,GAAW,IACpB+uB,EAAmB3xB,KAAKsC,MAAxBqvB,eAEJA,IAAmB/uB,EAAU+uB,gBAI7BA,GACF3xB,KAAKiuB,gDAsOP,OAFIjuB,KAAKI,MADPC,QAIOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACGzf,KAAKmwB,oBA3XoBptB,iBAsYnB0J,MALkB0E,aAAU,CACzCC,KAAM,sBACNwO,oBAAoB,GAFWzO,CAG9B6c,KCjYG4D,eAMJ,SAAAA,EAAYtvB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA4xB,IACjB9xB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA20B,GAAAzxB,KAAAH,KAAMsC,KAsBRuvB,kBAAoB,WAAM,IAChB7yB,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAEZ,SAAS,INnBtB,SAAAqO,GAAoD,IAA1B1P,EAA0B0P,EAA1B1P,GAAIgR,EAAsBtB,EAAtBsB,UAAWvO,EAAWiN,EAAXjN,QACvCxD,aAAM,GAAAlC,OAAIR,KAAJ,QAAAQ,OAA6BiD,IACvCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KMUvBi0B,CAAe,CACb9yB,KACAgR,UAAW,SAACwc,GACV1sB,EAAKmB,SAAS,CACZurB,iBAAgBnsB,SAAS,KAG7BoB,QAAS,WACP3B,EAAKmB,SAAS,CACZurB,eAAgB,GAAInsB,SAAS,IAE/BjB,aAAmB,wDArCNU,EA0CnBuE,OAAS,SAAC0tB,GAER,GADsBjyB,EAAKM,MAAnB4xB,YACUD,EAAK,CACrB,GAAY,MAARA,EAMF,YALAjyB,EAAKmB,SAAS,CACZ+wB,UAAWD,EACXJ,gBAAgB,IAMpB7xB,EAAKmB,SAAS,CACZ+wB,UAAWD,EACXJ,gBAAgB,MAxDH7xB,EA6DnBgoB,OAAS,WACahoB,EAAKwC,MAAjBmC,QACAqjB,UA/DShoB,EAkEnBub,OAAS,SAAA1V,GAAK,OACZpC,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,QAAA5K,OAAU4J,GACbmB,MAAO,CAAEqS,SAAU,UACnBtS,MAAQN,OAAO0rB,UAAUtsB,GAAuB,UAAd,aAEjCA,EAAQY,OAAO0rB,UAAUtsB,GAAc,IAAL,KAtErC7F,EAAKM,MAAQ,CACXC,SAAS,EACT2xB,UAAW,IACXxF,eAAgB,KAChBmF,gBAAgB,GAGlB7xB,EAAKyY,WAAa,CAChBY,SAAU,OACV7I,OAAQ,OACRzJ,MAAO,cACPopB,UAAW,SACXnZ,WAAY,OACZ/P,gBAAiB,WAfFjH,mFAoBjBE,KAAK6xB,qDAwDE,IAAAtxB,EAAAP,KAAA2B,EAMH3B,KAAKI,MAJPosB,EAFK7qB,EAEL6qB,eACAnsB,EAHKsB,EAGLtB,QACA2xB,EAJKrwB,EAILqwB,UACAL,EALKhwB,EAKLgwB,eAGF,OAAItxB,IAAYmsB,EAEZjpB,EAAA1B,EAAAC,cAAC4d,GAAD,MAKFnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIzT,MAAO,CAAEiQ,aAAc,MAAOmb,YAAa,QACtD3uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,0BACZoB,EAAA1B,EAAAC,cAAA,YAAO0qB,EAAe3L,SACtBtd,EAAA1B,EAAAC,cAAA,UAAK0qB,EAAe2F,UAGtB5uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAEsrB,UAAW,WACxC7uB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,WAAmC,KACnCoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAe8F,WAG9C/uB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,YAAoC,KACpCoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAe+F,YAG9ChvB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,UAA+B,KAC/BoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAegG,QAG9CjvB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,qBAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,GAAID,GAAI,GAAI2S,GAAI,IAEvB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gBAAgB2E,MAAO,CAAEid,aAAc,SACpDxgB,EAAA1B,EAAAC,cAAC2wB,GAAD,CACE9rB,IAAI,gBACJ9H,KAAK,gBACLmK,SAAS,OACTsjB,gBAAiBE,EAAeF,gBAChCE,eAAcvvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTuvB,GAELJ,WAAYI,EAAeJ,WAC3BxS,MAAO4S,EAAekG,gBASlCnvB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAW3Y,MAAO,CAAEid,aAAc,SAChCxgB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAK7T,MAAO,CAAE4mB,IAAK,WACjBnqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGzX,GAAI,IAC5BrX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACXnC,KAAKqb,OAAO,OAAQ,IACpBrb,KAAKqb,OAAOlI,KAAKue,MAAMlF,EAAemG,iBAG3CpvB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGzX,GAAI,IAC5BrX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACXnC,KAAKqb,OAAO,gBAAiB,IAC7Brb,KAAKqb,OAAOlI,KAAKue,MAAMlF,EAAeoG,6BAOnDrvB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAC+wB,GAAA,EAAD,CAAKC,MAAI,GACPvvB,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,OAAO2E,MAAO,CAAEksB,YAAa,WAC/B,MAAdhB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,UAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,WAYNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,OAAO2E,MAAO,CAAEksB,YAAa,WAC/B,MAAdhB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,eAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,iBAaRd,EAAA1B,EAAAC,cAACmxB,GAAA,EAAD,CAAYjB,UAAWA,GACrBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACsxB,GAADn2B,OAAAuP,OAAA,GACMggB,EADN,CAEEb,iBAAkBa,EAAextB,QAIvCuE,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACuxB,GAAD,CAAY1B,eAAgBA,EAAgBlD,gBAAiBjC,EAAextB,UAOtFuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK8nB,OAAOrT,KAAKzU,OAH5B,qBA3OqB+C,iBAyPpBC,eAAW4uB,cCxPpB0B,eAKJ,SAAAA,EAAYhxB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAszB,IACjBxzB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAq2B,GAAAnzB,KAAAH,KAAMsC,KAwBRixB,aAAe,WN4QV,IAAuC52B,IM3QZ,CAC5BqT,UAAW,SAAC4J,GACV9Z,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,WAGJnY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,mDNmQlBnB,aAAM,GAAAlC,OAAIL,KAAJ,6BACVkC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MM/S9BiC,EAwCnB0zB,WAAa,SAACx0B,GACQc,EAAKwC,MAAjBmC,QACAG,KAAR,2BAAA7I,OAAwCiD,KA1CvBc,EA6CnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyzB,aAAa,EAAGxZ,EAAU,KA/Cdja,EAkDnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAtDE7G,EAyDnB2zB,iBAAmB,SAAC3yB,GAClBA,EAAE2O,kBA1De3P,EA6DnBif,SAAW,SAAA9iB,GAAe,IAAZ0J,EAAY1J,EAAZ0J,MACN8S,EAAO3Y,EAAK4zB,OAAO9b,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUA,IAC/C,OAAK8S,EAIEA,EAAK5R,MAHH/G,EAAK4zB,OAAO,GAAG7sB,OAhEP/G,EAsEnB6zB,6BAA+B,SAAAjlB,GAAmC,IAAhCklB,EAAgCllB,EAAhCklB,OAAQC,EAAwBnlB,EAAxBmlB,kBACxC,MAAK,CAACnR,GAAqBE,UAAUjd,MAAO+c,GAAqBH,QAAQ5c,OAAO2e,SAASsP,EAAOjuB,OAK9FpC,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,YAAO4gB,GAAqBE,UAAU5b,MAAtC,MACAzD,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEHmN,EAAoBhX,GAAqBgX,EAAkBG,gBAAkB,OAIhFtR,GAAqBH,QAAQ5c,QAAUiuB,EAAOjuB,MAE1CpC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,YAAO4gB,GAAqBH,QAAQvb,MAApC,MACAzD,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEHmN,EAAoBhX,GAAqBgX,EAAkBI,cAAgB,OAIhF,KAEN1wB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,qCACAyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEHmN,EAAoBpX,GAAiBoX,EAAkBK,iBAAmB,UA/C9E,MAtETp0B,EAAKM,MAAQ,CACXC,SAAS,EACTuZ,MAAO,IAGT9Z,EAAK4zB,OAAS,CACZ,CACE/tB,MAAO,EAAGkB,MAAO,aAEnB,CACElB,MAAO,EAAGkB,MAAO,QAEnB,CACElB,MAAO,EAAGkB,MAAO,YAfJ/G,mFAoBC,IAAA6B,EACS3B,KAAKI,MAAxB0S,EADUnR,EACVmR,KAAMiH,EADIpY,EACJoY,SACd/Z,KAAKuzB,aAAazgB,EAAMiH,oCA0GjB,IAAAxZ,EAAAP,KAAA2e,EAIH3e,KAAKI,MAFPC,EAFKse,EAELte,QACAuZ,EAHK+E,EAGL/E,MAGF,OAAIvZ,EAEAkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAKFnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,iBAClByX,IAAUA,EAAMvT,SACjB9C,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC8E,EAAA,EAAD,CAAOC,MAAM,OAAO1E,UAAU,cAAcc,KAAK,QAC/CM,EAAA1B,EAAAC,cAAA,kEAGAyB,EAAA1B,EAAAC,cAAA,yCAC8B,IAC5ByB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,qBAEd,qEAOTyX,GAASA,EAAMvT,QACd9C,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAACqyB,GAAA,EAAD,CAAMhyB,UAAU,QACdoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAa2E,MAAO,CAAEid,aAAc,MAAlD,UACU,kCACRxgB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,iBAIpBoB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMrE,MAAO,CAAEid,aAAc,SACpCxgB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,YACA1sB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,YACN6f,MAAI,GAHN,cAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,OACN6f,MAAI,GAHN,aAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,UACN6f,MAAI,GAHN,cAUNnjB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNyO,EAAMnT,IAAI,SAAA6f,GAAC,OACV/iB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CACEnY,UAAU,OACVkwB,GAAI,GACJ9X,GAAI,EACJC,GAAI,EACJ4Z,GAAI,EACJztB,IAAG,WAAA5K,OAAauqB,EAAEtnB,KAElBuE,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,SACrBlT,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,CACE0J,SAAO,EACPtd,MAAM,UACNrD,QAAS,kBAAMjD,EAAKizB,WAAWlN,EAAEtnB,KACjCmD,UAAU,+BAEVoB,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAS,8BAAApG,OAAgCwE,EAAKwe,SAASuH,EAAEsN,UACjErwB,EAAA1B,EAAAC,cAAA,MACEK,UAAU,sBACV2E,MAAO,CACL2P,QAAS,cACTqd,SAAU,OACVO,WAAY,WACZjY,eAAgB,gBAChBsR,IAAK,SACLrd,MAAO,OACP0T,aAAc,MAGhBxgB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAEHJ,EAAE6L,SAEL5uB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAHN,KAKKJ,EAAEtnB,IAEN,IACDuE,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAHN,OAKOJ,EAAEgO,gBAGX/wB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qCACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACXmkB,EAAEzF,SAELtd,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,YACGwkB,EAAEgM,SAEL/uB,EAAA1B,EAAAC,cAAA,YACGwkB,EAAEiO,iBAAkB,kBAAgBjO,EAAEkM,SAM/CjvB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,4BACAyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAEHvT,KAAKue,MAAMpL,EAAEsM,sBAJhB,OAOFrvB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,oBACAyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAEHvT,KAAKue,MAAMpL,EAAEqM,cAJhB,UAUPpyB,EAAKozB,6BAA6BrN,yBA3T9BvjB,iBAkV1BC,eAAWswB,IC3VXrkB,GApBE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAef,OAdKD,EAAMqlB,SAAYrlB,EAAMqlB,QAAQ7uB,QACnCyJ,EAAOolB,QAAU,8BAEdrlB,EAAMslB,OAAUtlB,EAAMslB,MAAM9uB,QAC/ByJ,EAAOqlB,MAAQ,6BAEXtlB,EAAMulB,cAAgBvlB,EAAMulB,aAAe,IAC/CtlB,EAAOslB,aAAe,yCAGnBvlB,EAAMwlB,eACTvlB,EAAOulB,aAAe,qCAGjBvlB,GCHHwlB,oLAaK,IAAAxxB,EAOHpD,KAAKsC,MALPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACAyU,EAJKvhB,EAILuhB,OACAkQ,EALKzxB,EAKLyxB,MACAC,EANK1xB,EAML0xB,OAEF,OACEvxB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,qBAGFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,uBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,SACL4N,YAAY,0BAKlB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,SACZS,aAAa,QACbkI,QAAS+e,MAKftxB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,mBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW6G,GACXtK,YAAY,kBACZS,aAAa,QACbkI,QAASgf,MAKfvxB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,oBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW6E,GACXtI,YAAY,wBAMpB5J,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAxFY5hB,iBAApB6xB,GASGptB,aAAe,CACpBgJ,YAAY,GA4FhB,IAMe/D,MANS0E,aAAU,CAChCC,KAAM,kBACNnC,YACA2Q,oBAAoB,GAHEzO,CAIrByjB,KC2DYG,eAlKb,SAAAA,EAAYzyB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA+0B,IACjBj1B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA83B,GAAA50B,KAAAH,KAAMsC,KAUR0yB,oBAAsB,WAAM,IAAA5xB,EACFtD,EAAKwC,MAArBtD,EADkBoE,EAClBpE,GAAIyF,EADcrB,EACdqB,QACRzF,EACF0qB,GAAa1qB,EACX,CACEgR,UAAW,SAACiZ,GAAQ,IAEhBgM,EAMEhM,EANFgM,QACAR,EAKExL,EALFwL,MACAnC,EAIErJ,EAJFqJ,QACA4C,EAGEjM,EAHFiM,UACA1W,EAEEyK,EAFFzK,OACAC,EACEwK,EADFxK,SAEIqL,EAAO7sB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACRgsB,EADQ,CAEXwL,MAAO,CACL9uB,MAAOsvB,EACPjuB,MAAK,GAAAjL,OAAK04B,EAAL,OAAA14B,OAAgBu2B,IAEvBkC,QAAS,CACP7uB,MAAOuvB,EACPluB,MAAK,GAAAjL,OAAKyiB,EAAL,KAAAziB,OAAe0iB,MAGxB3e,EAAKmB,SAAS,CAAE6oB,UAASxpB,QAAQ,KAEnCmB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,oBAEbxF,aAAmB,qDAK3BU,EAAKmB,SAAS,CACZ6oB,QAAS,CACP9qB,GAAI,EACJ01B,aAAc,KAGlB50B,EAAKmB,SAAS,CAAEX,QAAQ,MAtDTR,EA0DnBq1B,cAAgB,WACdC,aAAc,CACZplB,UAAW,SAAC6kB,GACV/0B,EAAKmB,SAAS,CAAE4zB,WAElBpzB,QAAS,WACPrC,aAAmB,sDAhENU,EAqEnBu1B,eAAiB,WZ8HZ,IAAwB14B,IY7HZ,CACbqT,UAAW,SAAC8kB,GACVh1B,EAAKmB,SAAS,CAAE6zB,YAElBrzB,QAAS,WACPrC,aAAmB,kDZyHlBnB,aAAM,GAAAlC,OAAIV,KAAJ,YACVuC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MY7M9BiC,EAgFnBoQ,aAAe,SAAChB,GAAW,IZuFDvG,EAAMyS,EYtFtBqZ,EAAiCvlB,EAAjCulB,MAAOD,EAA0BtlB,EAA1BslB,QAASE,EAAiBxlB,EAAjBwlB,aACTO,EAAYR,EAAnB9uB,MACOuvB,EAAcV,EAArB7uB,MACFhJ,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPiS,EADO,CAEVgmB,YACAD,UACAP,cAAeA,IAETjwB,EAAY3E,EAAKwC,MAAjBmC,QZ6EgBkE,EY5EZhM,EZ4EkBye,EY3E5B,CACEpL,UAAW,WACT9Q,aAAqB,gCACrBuF,EAAQG,KAAK,oBAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,sDZmEtBN,aAAO,GAAA/C,OAAIV,MAAesN,GAC9B/K,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MYjLpCiC,EA2GnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA3GRhoB,EAAKM,MAAQ,CAAEE,QAAQ,GAFNR,mFAMjBE,KAAKm1B,gBACLn1B,KAAKq1B,iBACLr1B,KAAKg1B,uDAwGE,IAAA1qB,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAOH3B,KAAKI,MAJP0pB,EAHKnoB,EAGLmoB,QACAxpB,EAJKqB,EAILrB,OACAu0B,EALKlzB,EAKLkzB,MACAC,EANKnzB,EAMLmzB,OAGF,OACEvxB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,WAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,kCAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJja,GAAUu0B,GAASC,EAGlBvxB,EAAA1B,EAAAC,cAACwzB,GAADr4B,OAAAuP,OAAA,GACMsd,EADN,CAEE5Y,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAe6c,EACfrlB,QAASA,EACTqwB,OAAQA,EACRD,MAAOA,KATRtxB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,yBA1IkBY,iBCNpBkM,GAVE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAKf,OAJKD,EAAM2a,SAAY3a,EAAM2a,QAAQyL,iBACnCnmB,EAAOolB,QAAU,8BAGZplB,GCYHomB,oLAqBK,IAAApyB,EAWHpD,KAAKsC,MATPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACAyU,EAJKvhB,EAILuhB,OACAmF,EALK1mB,EAKL0mB,QACAmF,EANK7rB,EAML6rB,SACAwG,EAPKryB,EAOLqyB,SACAC,EARKtyB,EAQLsyB,gBACAC,EATKvyB,EASLuyB,qBACA1vB,EAVK7C,EAUL6C,WAGF,OACE1C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,8BAGFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,2BACI,IAAf8D,GAAmC,IAAfA,IACpB1C,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,SACZS,aAAa,QACbkI,QAASmZ,EACT3oB,SAAU,SAAA4d,GAAC,OAAIwR,EAAgBxR,EAAEve,UAGpB,IAAfM,GACA1C,EAAA1B,EAAAC,cAAA,SACE6D,MAAOmkB,EAAQ9iB,MACfqE,UAAQ,MAMhB9H,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNsqB,GAAYA,EAAShvB,IAAI,SAAA6f,GAAC,OACzB/iB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,GAAI1rB,IAAG,YAAA5K,OAAcuqB,EAAEtnB,KAC5CuE,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAU,sCAClBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qCACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBAAuBmkB,EAAE9H,QACvCjb,EAAA1B,EAAAC,cAAA,WACCwkB,EAAE3F,SAASla,IAAI,SAAAya,GAAC,OACf3d,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,WAAA5K,OAAamlB,EAAEyK,kBAAoBxpB,UAAU,sBACnDoB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,WAAA5K,OAAamlB,EAAEyK,kBAClB9sB,KAAI,WAAA9C,OAAamlB,EAAEyK,kBACnB/a,UAAW1E,GACXlF,MACEzD,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,WAAA5K,OAAamlB,EAAEyK,kBAAoB7kB,MAAO,CAAE2P,QAAS,SAC1DyK,EAAE1C,OADL,OAGG0C,EAAEwR,SAASjsB,IAAI,SAAAxK,GAAA,IACd+C,EADc/C,EACd+C,GACAquB,EAFcpxB,EAEdoxB,IACAE,EAHctxB,EAGdsxB,WACAC,EAJcvxB,EAIduxB,QAJc,OAMdjqB,EAAA1B,EAAAC,cAAA,OACE6E,IAAG,MAAA5K,OAAQiD,EAAR,KAAAjD,OAAcmlB,EAAEyK,kBACnB7kB,MAAO,CAAE2P,QAAS,OAAQ0C,SAAU,WAEpC5V,EAAA1B,EAAAC,cAAA,YAAOurB,EAAIrmB,MAAMkW,UAAU,EAAG,GAA9B,MAAqCqQ,EAArC,IAAkDC,GAJpD,WAUN7nB,MAAOub,EAAE0U,UAAY,UAAY,GACjCtqB,eAAgB4V,EAAE0U,UAClBtvB,SAAU,SAAA4d,GAAC,OAAIyR,EAAqBzU,EAAEyK,iBAAkBzH,kBAa9E3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAAS,WAAQ/G,aAAamJ,QAAQ,eAAe,GAAQ+e,MAH/D,gCA3HgB5hB,iBAAxByyB,GAaGhuB,aAAe,CACpBgJ,YAAY,EACZsZ,QAAS,GACT2L,SAAU,GACVxvB,WAAY,GAwHhB,IAMewG,MANa0E,aAAU,CACpCC,KAAM,sBACNnC,YACA2Q,oBAAoB,GAHMzO,CAIzBqkB,KCzIGK,eACJ,SAAAA,EAAYvzB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA61B,IACjB/1B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA44B,GAAA11B,KAAAH,KAAMsC,KAYR0yB,oBAAsB,WACpBl1B,EAAKg2B,iBAAiB,GACtBh2B,EAAKi2B,iBAAiB,IAfLj2B,EAkBnBg2B,iBAAmB,SAACP,GAAmB,IAC7B9wB,EAAY3E,EAAKwC,MAAjBmC,QACRilB,GAAa6L,EAAgB,CAC3BvlB,UAAW,SAACiZ,GAAQ,IAEhBjqB,EAIEiqB,EAJFjqB,GACA01B,EAGEzL,EAHFyL,aACAlW,EAEEyK,EAFFzK,OACAC,EACEwK,EADFxK,SAEIqL,EAAO7sB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACRgsB,EADQ,CAEXsM,iBACA5vB,MAAO3G,EACPgI,MAAK,GAAAjL,OAAK24B,EAAL,MAAA34B,OAAsByiB,EAAtB,KAAAziB,OAAgC0iB,KAEvC3e,EAAKmB,SAAS,CAAE6oB,UAASxpB,QAAQ,KAEnCmB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,4BAEbxF,aAAmB,qDAzCRU,EA+CnBk2B,iBAAmB,WfsEd,IAAkC5a,IerEZ,CACvBpL,UAAW,SAACif,GACVnvB,EAAKmB,SAAS,CAAEguB,WAAU3uB,QAAQ,KAEpCmB,QAAS,WACPrC,aAAmB,mDfiElBnB,aAAM,GAAAlC,OAAIV,KAAJ,mBACVuC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,Me/HpCiC,EA0DnBi2B,iBAAmB,SAACR,GbiHf,IAAqC54B,IahHZ,CAC1B44B,iBACAvlB,UAAW,SAACylB,GACV31B,EAAKmB,SAAS,CAAEw0B,cAElBh0B,QAAS,WACPrC,aAAmB,2Cb2GlBnB,aAAM,GAAAlC,OAAIR,KAAJ,2BAAAQ,OAAgDY,EAAO44B,iBACjE33B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MarL9BiC,EAsEnB61B,qBAAuB,SAAC32B,EAAIi3B,GAC1B,GAAIA,EAAIpmB,OAAQ,KACNqmB,EAAwBp2B,EAAKM,MAA7B81B,oBACFC,EAAUD,EAAoBte,KAAK,SAAApE,GAAC,OAAIA,EAAEmY,mBAAqB3sB,IAChEm3B,GAOHA,EAAQP,UAAYK,EAAIpmB,OAAOnE,QAC/B5L,EAAKmB,SAAS,CAAEi1B,0BAPhBA,EAAoBtxB,KAAK,CACvB+mB,iBAAkB3sB,EAClB42B,UAAWK,EAAIpmB,OAAOnE,UAExB5L,EAAKmB,SAAS,CAAEi1B,2BA/EHp2B,EAuFnBs2B,WAAa,SAAClnB,GAAW,Ib9BS7S,EAAM+e,Ea+BZma,EAA+BrmB,EAAjD4a,QAAWnkB,MAAyB0wB,EAAannB,EAAbmnB,SAEtC15B,EAAS,CAAEu5B,oBADep2B,EAAKM,MAA7B81B,oBAC8BX,iBAAgBc,YAC9C5xB,EAAY3E,EAAKwC,MAAjBmC,QAER3E,EAAKmB,SAAS,CAAEX,QAAQ,IbpCQjE,EasCZM,EbtCkBye,EasCV,CAC1BpL,UAAW,SAAA/T,GAAsB,IAAAq6B,EAAAr6B,EAAnBorB,eAAmB,IAAAiP,EAAT,GAASA,EAI/B,GAHAx2B,EAAKmB,SAAS,CAAEX,QAAQ,IAExB7D,aAAamJ,QAAQ,eAAe,GAChCyhB,EAAQhhB,OAAQ,CAClB,IAAM1G,EAAU0nB,EAAQnN,OAAO,SAAAgH,GAAC,OAAIA,EAAEvhB,UACnC8G,IAAI,SAACya,EAAGD,GAAJ,OAAc1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKmlB,EAAEvhB,SAAWgG,MAAOsb,EAAQ,GAAIC,EAAEvhB,WAE7D9B,EAAQwpB,EAAQnN,OAAO,SAAAgH,GAAC,OAAIA,EAAErjB,QACjC4I,IAAI,SAACya,EAAGD,GAAJ,OAAc1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKmlB,EAAErjB,OAAS8H,MAAOsb,EAAQ,GAAIC,EAAErjB,SAMjE,OAJI8B,EAAQ0G,QACVnH,aAAqBqE,EAAA1B,EAAAC,cAAA,UAAKnC,IAGP,IAAjB9B,EAAMwI,YACR5B,EAAQG,KAAK,4BAIfzF,aAAqBoE,EAAA1B,EAAAC,cAAA,UAAKjE,IAE1BiC,EAAKg2B,iBAAiBP,QACtBz1B,EAAKi2B,iBAAiBR,IAKxBr2B,aAAqB,wCACrBuF,EAAQG,KAAK,4BAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4DAGrBU,EAAKmB,SAAS,CAAEX,QAAQ,Mb5EvBxB,aAAO,GAAA/C,OAAIR,KAAJ,qBAA2Cc,GACtDuB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,ManEpCiC,EA2InBoQ,aAAe,SAAChB,GAC8C,SAAxCzS,aAAaC,QAAQ,eASzCsR,GAAQ,CACNpK,MAAO,4BACPqK,SAAQ,oOAIRC,SAAU,gBACVE,QAAS,aACTC,UAAW,WACTvO,EAAKs2B,WAALn5B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKiS,EADL,CAEEmnB,UAAU,QAlBdv2B,EAAKs2B,WAALn5B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKiS,EADL,CAEEmnB,UAAU,MAhJGv2B,EAsKnB41B,gBAAkB,SAAC12B,GACjBc,EAAKg2B,iBAAiB92B,GACtBc,EAAKi2B,iBAAiB/2B,IAxKLc,EA2KnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA3KRhoB,EAAKM,MAAQ,CAAEE,QAAQ,EAAO41B,oBAAqB,IAFlCp2B,mFAMjBE,KAAKg2B,mBAEc,IADiBh2B,KAAKsC,MAAjCsH,QAAW3D,YAEjBjG,KAAKg1B,uDAuKA,IAAA5xB,EACiBpD,KAAKsC,MAArBtD,EADDoE,EACCpE,GAAIyF,EADLrB,EACKqB,QACOwB,EAAiBjG,KAAKsC,MAAjCsH,QAAW3D,WAFZtE,EAQH3B,KAAKI,MAJP0pB,EAJKnoB,EAILmoB,QACAxpB,EALKqB,EAKLrB,OALKi2B,EAAA50B,EAMLstB,gBANK,IAAAsH,EAMM,GANNA,EAAAC,EAAA70B,EAOL8zB,gBAPK,IAAAe,EAOM,GAPNA,EAUP,OACEjzB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,6BAGAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,YAAc,WADtB,8CAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJja,GAAUwpB,GAAWmF,EAAS5oB,QAAUovB,EAASpvB,OAGhD9C,EAAA1B,EAAAC,cAAC20B,GAADx5B,OAAAuP,OAAA,GACMsd,EADN,CAEEA,QAASA,EACT5Y,SAAUlR,KAAKkQ,aACfwlB,gBAAiB11B,KAAK01B,gBACtB/Q,OAAQ3kB,KAAK6nB,aACb5a,cAAe6c,EACfrlB,QAASA,EACTwqB,SAAUA,EACVwG,SAAUA,EACVxvB,WAAYA,EACZ0vB,qBAAsB31B,KAAK21B,wBAb7BpyB,EAAA1B,EAAAC,cAAC4d,GAAD,gBA3MmB3c,iBAyOpBC,eAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtBirB,KCpMG,SAAS7X,GAAerhB,GAC7B,OAAOsB,aAAM,GAAAlC,OAAIN,KAAJ,eACVmC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,SC5C7C64B,eAKJ,SAAAA,EAAYp0B,GAAO,IAAAxC,EAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA02B,IACjB52B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAy5B,GAAAv2B,KAAAH,KAAMsC,KA4JRyb,eAAiB,SAACG,GAChBpe,EAAKmB,SAAS,CACZZ,SAAS,IAGX2d,GAAe,CACbhO,UAAW,SAAA/T,GAAkB,IAAf06B,EAAe16B,EAAf06B,SACZ72B,EAAKmB,SAAS,CACZ01B,WACAt2B,SAAS,IAHgB,IAAAsB,EAMA7B,EAAKM,MAAxB0S,EANmBnR,EAMnBmR,KAAMiH,EANapY,EAMboY,SACdja,EAAK82B,oBAAoB9jB,EAAMiH,EAAUmE,IAE3Czc,QAAS,SAAC5D,GACR+C,QAAQC,IAAIhD,GACZuB,aAAmB,qDA9KNU,EAmLnB+2B,cAAgB,WAEd,OADoC/2B,EAAKwC,MAAjCsH,QAAW3D,YApLFnG,EAwLnBg3B,aAAe,SAACnuB,GACd,IAAMouB,EAAej3B,EAAK+2B,kBAAoBrV,GAAMC,OACpD,OAAQ9Y,EAAKK,WAAaL,EAAKM,SAAaN,EAAKK,UAAYL,EAAKM,SAAW8tB,GA1L5Dj3B,EA6LnBk3B,WAAa,SAACruB,GACZ,IAAMsuB,EAAoB,CAACzV,GAAMI,MAAOJ,GAAMG,aAAa2C,SAASxkB,EAAK+2B,iBACzE,OAAQluB,EAAKM,SAAWN,EAAKI,gBAAkBkuB,GA/L9Bn3B,EAkMnB82B,oBAAsB,SAAC9jB,EAAMiH,GAA2D,IAAjDmE,EAAiDpR,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAvC,CAAEoqB,QAAS,GAAIC,eAAgB,GAAQC,EAIlFlZ,EAFFgZ,eAFoF,IAAAE,EAE1E,CAAEzxB,MAAO,EAAGqB,MAAO,KAFuDowB,EAAAC,EAIlFnZ,EADFiZ,sBAHoF,IAAAE,EAGnE,EAHmEA,EAMhF16B,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPihB,EADO,CAEViZ,eAAgB5wB,OAAO4wB,GACvBG,UAAWJ,EAAQvxB,QAGrB7F,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASvhB,If3OR,SAA8B46B,EAAS56B,GAC5C,IAAMyhB,EAAWzhB,GAAUA,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IACnByd,EAAWD,EAAU,MAAQ,kBAC5Bz4B,aAAO,GAAA/C,OAAIR,KAAJ,KAAAQ,OAA0By7B,GAAYpZ,GACjDxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KeiO/C45B,CACiB,IAFmB33B,EAAKwC,MAAjCsH,QAAW3D,WAGjB,CACEmY,SAAU,CACRtL,OACAiH,WACAmE,QAASvhB,GAEXqT,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,gBAC1B0d,kBAAmBtZ,EAASsZ,qBAGhCj2B,QAAS,SAAC5D,GACJA,GAAwB,YAAfA,EAAM0B,KACjBJ,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,iDAGrBU,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,QA7OzBP,EAmPnB63B,oBAAsB,SAACC,GACrB,IAAM/4B,EAAI,GAAA9C,OAAM67B,EAAYtD,cAAlB,MAAAv4B,OAAoC67B,EAAYC,eAC1D7pB,GAAQ,CACNpK,MAAO,wBACPqK,SAAQ,2DAAAlS,OAAuD8C,EAAvD,KACRqP,SAAU,4BACVE,QAAS,aACTC,UAAW,Wf9KV,IAA8BrP,EAA9BsrB,EAAoCta,EAAWvO,EAAjBzC,Ee+KR44B,EAAY54B,Gf/KEgR,GAApCsa,Ee+KsC,CACnCta,UAAW,WACT9Q,aAAqB,uCADN,IAAAyf,EAEY7e,EAAKM,MAAxB0S,EAFO6L,EAEP7L,KAAMiH,EAFC4E,EAED5E,SACdja,EAAK82B,oBAAoB9jB,EAAMiH,IAEjCtY,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,iDfzLU4Q,UAAWvO,EAAW6oB,EAAX7oB,QAC7CxC,aAAS,GAAAlD,OAAIR,KAAJ,KAAAQ,OAA0BiD,IACvCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SetFNiC,EA6QnBg4B,mBAAqB,SAAChO,GACAhqB,EAAKwC,MAAjBmC,QACAG,KAAR,gCAAA7I,OAA6C+tB,EAAQ9qB,MA/QpCc,EAkRnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAyM,EACsBzf,EAAKM,MAA3B2Z,EADAwF,EACAxF,SAAUmE,EADVqB,EACUrB,QAClBpe,EAAK82B,oBAAoB9jB,EAAMiH,EAAUmE,KArR1Bpe,EAyRnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU7K,KA5RvBpP,EAgSnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU,KAlSrBja,EAqSnB+Z,eAAiB,SAAClT,EAAK6jB,GAAQ,IACrBuN,EAAqBj4B,EAAKM,MAA1B23B,iBACAL,EAAsBlN,EAAtBkN,kBACR,GAAc,YAAR/wB,EAAoB,OAAO,KACjC,IAAM/C,EAAQ8zB,EAAoB,oBAAsB,GACpDM,EAAc,GAEbN,IACHM,EAAcD,EAAmB,gBAAkB,YAGrD,IAAMzc,EAAU,CACd,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,cAAApG,OAAgBi8B,GAAep0B,MAAK,yBAAA7H,OAAwB6H,KACjFwX,SAAU,SAAC0O,IACL4N,GAAqBK,IAAkBj4B,EAAKg4B,mBAAmBhO,KAGvE,CACEnjB,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,eAAApG,OAAiBi8B,GAAep0B,MAAK,yBAAA7H,OAAwB6H,KAClFwX,SAAU,SAAC0O,IACL4N,GAAqBK,IAAkBj4B,EAAK63B,oBAAoB7N,MAK1E,IAAK4N,EAAmB,CACtB,IAAMO,EAAUF,EAAmB,gBAAkB,aACrDzc,EAAQ1W,KAAK,CACX+B,IAAK,YACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAS,GAAApG,OAAKk8B,GAAWr0B,MAAM,yCAC3CwX,SAAU,kBAAM,KAIpB,OAAOE,GA1UUxb,EA6UnBo4B,uBAAyB,SAACN,Gf1FrB,IAAwB1N,EAAa9O,Ee2FpCwc,If3FuB1N,Ee4FV0N,EAAY54B,Gf5FWoc,Ee4FP,CAC7BpL,UAAW,WAAM,IAGTmoB,EAFYr4B,EAAKM,MAAfwZ,MAEenT,IAAI,SAAAgS,GAAI,OAC7BA,EAAKzZ,KAAO44B,EAAY54B,GAAxB/B,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAkCwb,EAAlC,CAAwC2f,kBAAmBR,EAAYQ,mBAAqB3f,IAG9F3Y,EAAKmB,SAAS,CACZ2Y,MAAOue,IAGTj5B,aAAoB,WAAAnD,OACL67B,EAAYQ,iBAAmC,cAAhB,cAD1B,2BAItB32B,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,sDf/GtBN,aAAO,GAAA/C,OAAIR,KAAJ,0BAAgD2uB,GAC3DtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,Oe7PpCiC,EA0WnBu4B,YAAc,WAAM,IAAAC,EACQx4B,EAAKM,MAAvBu2B,SAER,YAHkB,IAAA2B,EACC,GADDA,GA1WDx4B,EAgXnBy4B,qBAAuB,SAAA7pB,GAAyD,IAAtDzI,EAAsDyI,EAAtDzI,WAAYyxB,EAA0ChpB,EAA1CgpB,kBAAmBK,EAAuBrpB,EAAvBqpB,iBACvD,OAAmB,IAAf9xB,GAAoByxB,EAEpBn0B,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,+BAArC,sBAMAi0B,EAEAx0B,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,2CAArC,wBAMG,MA/XP,IAAM6E,EAAO9C,IAEPkyB,EAAmBpvB,EAAKM,QAJb,OAKjBnJ,EAAKM,MAAQ,CACX23B,mBACAjlB,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IACf23B,SAAU,IAEZ72B,EAAK6Z,QAAU,CACb,CACEhT,IAAK,mBACL9H,KAAM,UACNwR,MAAO,OACP+J,QAAQ,EACRX,QAAS3Z,EAAKg3B,aAAanuB,GAC3B1F,KAAM,CACJmY,SAAU,SAAAlD,GAAG,OAAKpY,EAAKo4B,uBAAuBhgB,IAC9CtH,UAAW,SAAAsH,GAAG,OACZ3U,EAAA1B,EAAAC,cAAA,QACEK,UAAW+V,EAAIkgB,iBAAmB,aAAe,eACjDx0B,MAAOsU,EAAIkgB,iBAAmB,qBAAuB,6BAK7D,CACEzxB,IAAK,eACL9H,KAAM,SACNub,QAAQ,EACRX,QAAS3Z,EAAKk3B,WAAWruB,IAE3B,CACEhC,IAAK,SACL9H,KAAM,oBACNub,OAAQta,EAAKk3B,WAAWruB,GACxB8Q,SAAS,GAEX,CACE9S,IAAK,WACL9H,KAAM,sBACNub,OAAQta,EAAKk3B,WAAWruB,GACxB8Q,SAAS,GAEX,CACE9S,IAAK,gBACL9H,KAAM,iBACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRX,SAAS,EACTtX,UAAW,cACXkO,MAAO,QACP9Q,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAKu4B,aAEhBhd,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIgf,QAAUhf,EAAIgf,QAAQlwB,MAAQ,OAEtD,CACEL,IAAK,gBACL9H,KAAM,UACNwc,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIoc,cAAX,OAAAv4B,OAA8Bmc,EAAI2f,cAAlC,KAAA97B,OAAmDmc,EAAIia,UAClE/X,QAAQ,EACR/J,MAAO,SAET,CACE1J,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,QACL9H,KAAM,QACNwR,MAAO,QACP+J,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OAAIA,EAAIsgB,cAErB,CACE7xB,IAAK,UACL9H,KAAM,UACNwR,MAAO,QACP+J,QAAQ,EACRX,SAAS,EACT4B,OAAQ,SAAAnD,GAAG,OAAIA,EAAIugB,gBAErB,CACE9xB,IAAK,iBACL9H,KAAM,WACNU,KAAM,SACN6a,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIif,eAAX,SACX9mB,MAAO,OACPlO,UAAW,eAEb,CACEwE,IAAK,uBACL9H,KAAM,eACNwR,MAAO,QACPlO,UAAW,eAEb,CACEwE,IAAK,eACL9H,KAAM,OACNwR,MAAO,OACPlO,UAAW,eAEb,CACEwE,IAAK,mBACL9H,KAAM,SACNU,KAAM,SACN6a,QAAQ,EACRiB,OAAQ,SAAAmQ,GAAgC,IAA7BxsB,EAA6BwsB,EAA7BxsB,GAA6B05B,EAAAlN,EAAzBmN,sBAAyB,IAAAD,EAAR,EAAQA,EACtC,OAAK15B,EAKHuE,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CACED,MAAM,aACNzB,UAAS,cAAApG,OAAgB48B,EAAiB,EAAI,UAAY,aAC1D70B,GAAE,wBAAA/H,OAA0BiD,IAE3B25B,IAVEp1B,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,OAeXkI,MAAO,OACPlO,UAAW,eAEb,CACEwE,IAAK,UACL9H,KAAM,SACNwR,MAAO,OACPoJ,SAAS,EACTtX,UAAW,gBApJErC,mFA0JjBE,KAAK+d,eAAe,CAAEmZ,QAAS,sCA0OxB,IAAA32B,EAAAP,KAAAwf,EAUHxf,KAAKI,MARPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QACAwZ,EARKlY,EAQLkY,kBACAK,EATKvY,EASLuY,iBAEiB9xB,EAAiBjG,KAAKsC,MAAjCsH,QAAW3D,WAEnB,OAAI5F,EAEAkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAKFnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,4BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eAEXnC,KAAKu4B,qBAAqB,CAAEtyB,aAAYyxB,oBAAmBK,wBAKnEx0B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,kDACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAClT,EAAK6jB,GAAN,OAAcjqB,EAAKsZ,eAAelT,EAAK6jB,IACvDtZ,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aArbS7c,iBAicxBC,eAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtB8rB,KC3cWznB,GApBE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAef,OAbKD,EAAMypB,QAAWzpB,EAAMypB,OAAOjzB,QACjCyJ,EAAOwpB,OAAS,8BAEbzpB,EAAMslB,OAAUtlB,EAAMslB,MAAM9uB,QAC/ByJ,EAAOqlB,MAAQ,6BAEZtlB,EAAMojB,UAAapjB,EAAMojB,SAAS5sB,QACrCyJ,EAAOmjB,SAAW,6BAEfpjB,EAAM0R,SAAY1R,EAAM0R,QAAQlb,QACnCyJ,EAAOyR,QAAU,6BAGZzR,GCLHomB,oLAuBK,IAAApyB,EAaHpD,KAAKsC,MAXPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACAyU,EAJKvhB,EAILuhB,OAJKkU,EAAAz1B,EAKL0xB,cALK,IAAA+D,EAKI,GALJA,EAAAC,EAAA11B,EAML21B,iBANK,IAAAD,EAMO,GANPA,EAAAE,EAAA51B,EAOLqyB,gBAPK,IAAAuD,EAOM,GAPNA,EAQL7T,EARK/hB,EAQL+hB,gBACA8T,EATK71B,EASL61B,aACAC,EAVK91B,EAUL81B,eACAxE,EAXKtxB,EAWLsxB,aAXKyE,EAAA/1B,EAYLg2B,eAZK,IAAAD,EAYK,GAZLA,EAeP,OACE51B,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,+BAEDuyB,EAAe,GAEZnxB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE6D,MAAK,GAAA5J,OAAK24B,EAAL,MAAA34B,OAAsBk9B,EAAtB,KAAAl9B,OAAsCm9B,GAC3C7tB,UAAQ,MAMjBqpB,GAAgB,GACfnxB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW6G,GACXtK,YAAY,SACZS,aAAa,QACbkI,QAASsjB,EACT9yB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,SAAU,iBAAkBjB,QAKnE3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW6G,GACXtK,YAAY,QACZS,aAAa,QACbkI,QAASgf,EACTxuB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,QAAS,UAAWjB,QAIzD3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,YACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,WACZS,aAAa,QACbkI,QAASijB,EACTzyB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,QAK/D3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS2f,OAMjBlyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCA3HgB5hB,iBAAxByyB,GAeGhuB,aAAe,CACpBgJ,YAAY,EACZyoB,aAAc,GACdC,eAAgB,GAChBxE,aAAc,EACd0E,QAAS,IAqHb,IAMe3sB,MANa0E,aAAU,CACpCC,KAAM,sBACNnC,YACA2Q,oBAAoB,GAHMzO,CAIzBqkB,KCkFY6D,eAxNb,SAAAA,EAAY/2B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAq5B,IACjBv5B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAo8B,GAAAl5B,KAAAH,KAAMsC,KAeRg3B,2BAA6B,WAAM,IAAAl2B,EACTtD,EAAKwC,MAArBtD,EADyBoE,EACzBpE,GAAIyF,EADqBrB,EACrBqB,QACPzF,ElBgBF,SAAAwsB,GAAyD,IAA1BxsB,EAA0BwsB,EAA1BxsB,GAAIgR,EAAsBwb,EAAtBxb,UAAWvO,EAAW+pB,EAAX/pB,QAC5CxD,aAAM,GAAAlC,OAAIR,KAAJ,KAAAQ,OAA0BiD,IACpCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KkBrBvB07B,CAAoB,CAClBv6B,KACAgR,UAAW,SAACiZ,GACVnpB,EAAK05B,iBAAiBvQ,EAAIgM,SAE1B,IAAMwE,EAAcx8B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACfgsB,EADe,CAElBwL,MAAO,CACL9uB,MAAOsjB,EAAIgM,QACXjuB,MAAK,GAAAjL,OAAKktB,EAAIyQ,cAEhBnH,SAAU,CACR5sB,MAAOsjB,EAAI0Q,WACX3yB,MAAK,GAAAjL,OAAKktB,EAAI2Q,iBAEhB/Y,QAAS,CACPlb,MAAOsjB,EAAI4Q,UACX7yB,MAAK,GAAAjL,OAAKktB,EAAI6Q,cAAT,OAAA/9B,OAA4BktB,EAAI8Q,gBAEvCnB,OAAQ,CACNjzB,MAAOsjB,EAAIsM,eACXvuB,MAAK,GAAAjL,OAAKktB,EAAIyL,aAAT,MAAA34B,OAA0BktB,EAAIgQ,aAA9B,KAAAl9B,OAA8CktB,EAAIiQ,mBAI3Dp5B,EAAKmB,SAAS,CAAEw4B,oBAElBh4B,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,8CACnBqF,EAAQG,KAAK,4BAEbxF,aAAmB,8DApCvBU,EAAKmB,SAAS,CAAEw4B,eAAgB,CAAEz6B,GAAI,MAnBvBc,EA6DnBk6B,cAAgB,WAAM,IlBqFKr9B,EACrBT,EkBrFI8C,EAAOc,EAAKwC,MAAZtD,GlBqFJ9C,GADqBS,EkBnFZ,CACXs9B,MAAOj7B,EAAK,GACZgR,UAAW,SAACkqB,GACVp6B,EAAKmB,SAALhE,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAmBi9B,KAErBz4B,QAAS,WACPrC,aAAmB,mDlB8EH66B,IAAM,4BAA8B,wBACnDh8B,aAAM,GAAAlC,OAAIR,KAAJ,KAAAQ,OAA0BG,IACpC0B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MkB7J9BiC,EA0EnB05B,iBAAmB,YlBuFd,SAAA3L,GAAoE,IAA/B7d,EAA+B6d,EAA/B7d,UAAWvO,EAAoBosB,EAApBpsB,QAASwzB,EAAWpH,EAAXoH,QACvDh3B,aAAM,GAAAlC,OAAIR,KAAJ,8BAAAQ,OAAmDk5B,IAC7Dr3B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAIb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KkBjGvBs8B,CAA0B,CACxBlF,QAFgCnoB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAN,EAG1BkD,UAAW,SAAA/T,GAAuB,IAAAm+B,EAAAn+B,EAApBw5B,gBAAoB,IAAA2E,EAAT,GAASA,EAChCt6B,EAAKmB,SAAS,CACZw0B,cAGJh0B,QAAS,WACPrC,aAAmB,oDAnFNU,EAwFnBoQ,aAAe,SAAChB,GAAW,IlBxCM7S,EAAM+e,EkB0CnCqZ,EAIEvlB,EAJFulB,MACAlC,EAGErjB,EAHFqjB,SACA1R,EAEE3R,EAFF2R,QACA+X,EACE1pB,EADF0pB,OAGa3D,EAAYR,EAAnB9uB,MACOg0B,EAAepH,EAAtB5sB,MACOgmB,EAAqB9K,EAA5Blb,MACO4vB,EAAmBqD,EAA1BjzB,MACFhJ,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPiS,EADO,CAEVyqB,aACA1E,UACAtJ,mBACA4J,mBAEM9wB,EAAY3E,EAAKwC,MAAjBmC,QlB3DuBpI,EkB6D7BM,ElB7DmCye,EkB8DnC,CACEpL,UAAW,WACT9Q,aAAqB,wCACrBuF,EAAQG,KAAK,4BAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,8DlBtEtBN,aAAO,GAAA/C,OAAIR,MAAsBc,GACrCuB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MkB1DpCiC,EA8HnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAhIShoB,EAmInBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GAAU,IAAAuiB,EAC1CuR,EAAmB35B,EAAKM,MAAxBq5B,eAEU,UAAdzR,GACFloB,EAAK05B,iBAAiB7zB,EAAMA,OAAS,GAGvC7F,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,iBAAAjrB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAEuBw8B,EAFvBx8B,OAAA2S,GAAA,EAAA3S,CAAA,GAEwC+qB,EAAYriB,KAFpDuiB,KA1IiBpoB,EAgJnBu6B,eAAiB,WAAM,IAAA14B,EAC6B7B,EAAKM,MADlCk6B,EAAA34B,EACbszB,eADa,IAAAqF,EACH,EADGA,EAAAC,EAAA54B,EACAg4B,kBADA,IAAAY,EACa,EADbA,EACgB9E,EADhB9zB,EACgB8zB,SACrC,OAAKA,EAEEA,EACJvb,OAAO,SAAAC,GAAC,OAAIA,EAAE8a,UAAYA,GAAuB,IAAZA,IACrC/a,OAAO,SAAAC,GAAC,OAAIA,EAAEwf,aAAeA,GAA6B,IAAfA,IAC3ClzB,IAAI,SAAAiI,GAAA,IACH1P,EADG0P,EACH1P,GAAI86B,EADDprB,EACCorB,cAAejZ,EADhBnS,EACgBmS,QAASsR,EADzBzjB,EACyByjB,QADzB,MAEE,CACLxsB,MAAO3G,EACPgI,MAAK,GAAAjL,OAAK+9B,EAAL,OAAA/9B,OAAwB8kB,EAAxB,OAAA9kB,OAAqCo2B,MATxB,IAhJtBryB,EAAKM,MAAQ,CACX00B,OAAQ,GACRiE,UAAW,GACX9J,SAAU,GACVwG,SAAU,IAEZ31B,EAAKu6B,eAAiBv6B,EAAKu6B,eAAe5lB,KAApBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KARLA,mFAYjBE,KAAKg6B,gBACLh6B,KAAKs5B,8DAkJE,IAAAhvB,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADLka,EAQH3e,KAAKI,MAJPq5B,EAJK9a,EAIL8a,eAJKe,EAAA7b,EAKLmW,cALK,IAAA0F,EAKI,GALJA,EAAAC,EAAA9b,EAMLoa,iBANK,IAAA0B,EAMO,GANPA,EAAAC,EAAA/b,EAOLsQ,gBAPK,IAAAyL,EAOM,GAPNA,EAUDjF,EAAWz1B,KAAKq6B,iBAEtB,OACE92B,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,mBAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,4CAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJua,GAAUiE,GAAatD,GAAYgE,EAGlCl2B,EAAA1B,EAAAC,cAAC64B,GAAD19B,OAAAuP,OAAA,GACMitB,EADN,CAEEvoB,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAewsB,EACfh1B,QAASA,EACTqwB,OAAQA,EACRiE,UAAWA,EACXtD,SAAUA,EACVtQ,gBAAiBnlB,KAAK+nB,qBACtBnI,oBAAkB,EAClBwZ,QAASnK,KAbV1rB,EAAA1B,EAAAC,cAAC4d,GAAD,gBA5L0B3c,iBCuBpC,SAAS63B,GAAsB57B,EAAIO,EAAM6b,GAC9C,IAAMld,EAAe,OAATqB,EAAA,GAAAxD,OACLP,KADK,YAAAO,OACciD,GADd,GAAAjD,OAELP,KAFK,YAAAO,OAEciD,EAFd,KAAAjD,OAEoBwD,GAEhC,OAAOtB,aAAOC,GACXN,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAkBlD,SAASg9B,GAAW77B,EAAIoc,GAC7B,OAAOnc,aAAS,GAAAlD,OAAIP,KAAJ,KAAAO,OAAgBiD,IAC7BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAIlD,SAASi9B,GAAU97B,EAAI+7B,EAAM3f,GAClC,OAAOrc,aAAOvD,KAAUwD,EAAI+7B,GACzBn9B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAkBlD,SAASmgB,GAAegd,EAAer+B,GAC5C,OAAOsB,aAAM,GAAAlC,OAAIP,KAAJ,eAAAO,OAA0Bi/B,IACpCp9B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAmB5C,SAASo9B,GAATh/B,EAA4DU,GAAQ,IAA3BqC,EAA2B/C,EAA3B+C,GAAIk8B,EAAuBj/B,EAAvBi/B,YAClD,OAAO78B,aAAe,GAAAtC,OAAIP,KAAJ,2BAAAO,OAAsCiD,IACzDpB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAL,GAAApvB,OAAmBm/B,EAAnB,SACAhQ,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACD9tB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUhS,KAElDyrB,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,SC3H7Cs9B,eAKJ,SAAAA,EAAY74B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAm7B,IACjBr7B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAk+B,GAAAh7B,KAAAH,KAAMsC,KA8QRyb,eAAiB,WAAuB,IAAtBid,EAAsBluB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAN,EAChChN,EAAKmB,SAAS,CAAEZ,SAAS,IACzB2d,GAAegd,EAAe,CAC5BhrB,UAAW,SAAA/T,GAAA,IACTm/B,EADSn/B,EACTm/B,eACAC,EAFSp/B,EAETo/B,aAFS,OAGLv7B,EAAKmB,SAAS,CAClBZ,SAAS,EACT+6B,iBACAC,kBAEF55B,QAAS,WACP3B,EAAKmB,SAAS,CAAEZ,SAAS,IACzBjB,aAAmB,qDA5RNU,EAiSnBw7B,iBAAmB,SAAA5sB,GAIb,IDlUmB/R,EACnByhB,ECiUAmd,EAAA7sB,EAHJoE,YAGI,IAAAyoB,EAHG,EAGHA,EAAAC,EAAA9sB,EAFJqL,gBAEI,IAAAyhB,EAFO,GAEPA,EAAAC,EAAA/sB,EADJwP,eACI,IAAAud,EADM,GACNA,EACEx1B,EAAanG,EAAK+2B,gBAExB/2B,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAAQjhB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHihB,EADE,CAELjY,aACA2tB,OAAQ1V,EAAQ0V,QAAU,GAC1BsD,QAAShZ,EAAQgZ,SAAW,OD7UTv6B,ECkVZ,CACTyhB,SAAU,CACRtL,OACAiH,WACAmE,QAAQjhB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHihB,EADE,CAELjY,aACA2tB,OAAQ1V,EAAQ0V,QAAU,GAC1BsD,QAAShZ,EAAQgZ,SAAW,MAGhClnB,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,sDDrWnBgf,EAAWzhB,GAAUA,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIP,KAAJ,QAAoB4iB,GAC/BxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MCgB9BiC,EA8UnB47B,iBAAmB,SAACC,GAAW,IAE3B9a,EAEE8a,EAFF9a,QACA+a,EACED,EADFC,MAIIC,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAE7E5tB,GAAQ,CACNpK,MAAO,gBACPqK,SAAQ,qDAAAlS,OAAiD8kB,EAAjD,SAAA9kB,OAAgE8/B,EAAhE,MACR3tB,SAAU,oBACVE,QAAS,aACTC,UAAW,WACTwsB,GAAWc,EAAO38B,GAAI,CACpBgR,UAAW,WACT9Q,aAAqB,+BADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAKw7B,iBAAiBxoB,EAAMiH,IAE9BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBAEnBA,aAAmB,6CAvWZU,EA+WnBg8B,gBAAkB,SAACH,GAAW,IAE1B9a,EAEE8a,EAFF9a,QACA+a,EACED,EADFC,MAIIC,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAE7E5tB,GAAQ,CACNpK,MAAO,gBACPqK,SAAQ,mDAAAlS,OAA+C8kB,EAA/C,SAAA9kB,OAA8D8/B,EAA9D,8CAER3tB,SAAU,oBACVE,QAAS,aACTvH,MAAO,UACPwH,UAAW,WACTysB,GAAUa,EAAO38B,GAAI28B,EAAQ,CAC3B3rB,UAAW,WACT9Q,aAAqB,+BADN,IAAAyf,EAEY7e,EAAKM,MAAxB0S,EAFO6L,EAEP7L,KAAMiH,EAFC4E,EAED5E,SACdja,EAAKw7B,iBAAiBxoB,EAAMiH,IAE9BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,6CA5YZU,EAoZnBi8B,sBAAwB,SAACJ,GAAW,IAC1Bl3B,EAAY3E,EAAKwC,MAAjBmC,QAENzF,EAKE28B,EALF38B,GACA6hB,EAIE8a,EAJF9a,QACA+a,EAGED,EAHFC,MACAI,EAEEL,EAFFK,QACApI,EACE+H,EADF/H,OAIIiI,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAX3CK,EAaCpb,EAChCqb,QAAQ,IAAK,KACbA,QAAQ,IAAK,IACbxe,MAAM,KACNjX,IAAI,SAAA01B,GAAE,OAAIA,EAAGxT,SAjBkByT,EAAAn/B,OAAA6e,GAAA,EAAA7e,CAAAg/B,EAAA,GAa3Bf,EAb2BkB,EAAA,GAadC,EAbcD,EAAA,GAmB5BE,EAAc,CAClB14B,MAAK,mBAAA7H,OAAqBm/B,EAArB,KAAAn/B,OAAoCsgC,GACzCjuB,QAAS,aACTvH,MAAO,WAGT,GAAqB,IAAjB+sB,EAAOjuB,MAAa,CACtB,IAAMsI,EAAQ,gEAAAlS,OAAgE8kB,EAAhE,SAAA9kB,OAA+E8/B,EAA/E,yBAAA9/B,OACFigC,EADE,KAGdM,EAAYruB,SAAWA,EACvBquB,EAAYpuB,SAAW,gBACvBouB,EAAYnuB,WAAa,iBAEzBmuB,EAAYjuB,UAAY,WACtB5J,EAAQG,KAAR,4BAAA7I,OAAyCiD,KAE3Cs9B,EAAY/tB,QAAU,WACpBzO,EAAKmB,SAAS,CAAEZ,SAAS,IACzB46B,GAA8B,CAAEj8B,GAAI28B,EAAO38B,GAAIk8B,eAAe,CAC5DlrB,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4EAO7B,GAAqB,IAAjBw0B,EAAOjuB,MAAa,CACtB,IAAMsI,EAAQ,sDAAAlS,OAAsD8kB,EAAtD,SAAA9kB,OAAqE8/B,EAArE,yBAAA9/B,OACFigC,EADE,KAGdM,EAAYruB,SAAWA,EACvBquB,EAAYpuB,SAAW,iBACvBouB,EAAYjuB,UAAY,WACtBvO,EAAKmB,SAAS,CAAEZ,SAAS,IACzB46B,GAA8B,CAAEj8B,GAAI28B,EAAO38B,GAAIk8B,eAAe,CAC5DlrB,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4EAO7B4O,GAAQsuB,IAxeSx8B,EA2enBy8B,SAAW,SAACxB,GACUj7B,EAAKwC,MAAjBmC,QACAG,KAAR,qBAAA7I,OAAkCg/B,EAAK/7B,MA7etBc,EAgfnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAyM,EACsBzf,EAAKM,MAA3B2Z,EADAwF,EACAxF,SAAUmE,EADVqB,EACUrB,QAClBpe,EAAKw7B,iBAAiB,CAAExoB,OAAMiH,WAAUmE,cAnfzBpe,EAufnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKw7B,iBAAiB,CAAExoB,KAAM,EAAGiH,WAAUmE,QAAShP,MA1frCpP,EA8fnB+e,wBAA0B,WAAM,IAAAW,EACA1f,EAAKM,MAA3B2Z,EADsByF,EACtBzF,SACAP,EAFsBgG,EACZtB,QACV1E,eAER1Z,EAAKw7B,iBAAiB,CACpBxoB,KAAM,EACNiH,WACAmE,QAAS,CACP0V,OAAQ,GACRsD,QAAS,GACT1d,qBAxgBa1Z,EA6gBnB+Z,eAAiB,SAAClT,EAAKuR,GACrB,GAAY,YAARvR,EAAJ,CAD6B,IAKrBrK,EAAgBwD,EAAKM,MAArB9D,YAEFkgC,EAAYlgC,EAAY2M,SAAW3M,EAAYyM,cAMrD,MAJgB,CACduS,QAASxb,EAAKwb,QAAQpD,EAAKskB,GAAWtiB,OAAO,SAAArY,GAAC,OAAIA,EAAE8E,OAGvCA,KA1hBE7G,EA6hBnB28B,gBAAkB,SAAAjR,GAAuB,IAApBoQ,EAAoBpQ,EAApBoQ,MAAOhI,EAAapI,EAAboI,OAC1B,OAAe,IAAXA,EACK,UAGM,IAAXA,EACK,SAGL,IAAI5e,KAAK4mB,GAAS,IAAI5mB,KACjB,OAGF,aA1iBUlV,EA6iBnB48B,gBAAkB,kBAChBn5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMrE,MAAO,CAAEid,aAAc,SACpCxgB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,YACA1sB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,YACN6f,MAAI,GAHN,mBAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,OACN6f,MAAI,GAHN,UAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,UACN6f,MAAI,GAHN,WAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,SACN6f,MAAI,GAHN,+BAvkBW5mB,EAmlBnB68B,UAAY,WAEV,OADyB78B,EAAKM,MAAtBi7B,cAplBSv7B,EAwlBnB88B,kBAAoB,WAElB,OAD2B98B,EAAKM,MAAxBg7B,gBAzlBSt7B,EA6lBnB+2B,cAAgB,WAEd,OADoC/2B,EAAKwC,MAAjCsH,QAAW3D,YA3lBnBnG,EAAK+8B,WAAav3B,EAAa,aAE/BxF,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjBkE,QAAS,CACP0V,OAAQ,GACRsD,QAAS,IAEX72B,SAAS,EACTuZ,MAAO,GACPtd,YAAauJ,IACbw1B,aAAc,GACdD,eAAgB,IAGlBt7B,EAAK6Z,QAAU,iBAAM,CACnB,CACEhT,IAAK,KACL9H,KAAM,IACNub,QAAQ,GAEV,CACEzT,IAAK,WACL9H,KAAM,WACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,YACL9H,KAAM,kBACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,qBACL9H,KAAM,eACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,QACL9H,KAAM,QACNub,QAAQ,EACR7a,KAAM,OACN8Q,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAI2E,GAAqB3E,EAAI0jB,SAE1C,CACEj1B,IAAK,UACL9H,KAAM,UACNsD,UAAW,YACXiY,QAAQ,EACRiB,OAAQ,SAAA+R,GAAA,IACNpuB,EADMouB,EACNpuB,GACA6hB,EAFMuM,EAENvM,QACA+a,EAHMxO,EAGNwO,MACAhI,EAJMxG,EAINwG,OAJM,OAMNrwB,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,QAASjD,SAAU,SAE/D5V,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACvD9O,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEvI,GAAE,SAAAjD,OAAWiD,GACb6H,MAAO/G,EAAK28B,gBAAgB,CAC1Bb,QACAhI,OAAQA,EAAOjuB,SAGhBkb,QASf,CACEla,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACR7a,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAK88B,kBACd7mB,SAAS,GAEX5T,UAAW,eAEb,CACEwE,IAAK,WACL9H,KAAM,WACNub,QAAQ,GAEV,CACEzT,IAAK,qBACL9H,KAAM,aACNub,QAAQ,EACRjY,UAAW,cACXkZ,OAAQ,SAAAiP,GAAA,IAAGtrB,EAAHsrB,EAAGtrB,GAAI89B,EAAPxS,EAAOwS,mBAAP,OACNv5B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACvD9O,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOvI,GAAE,SAAAjD,OAAWiD,GAAM6H,MAAOi2B,EAAqB,OAAS,aAC5D,GAAA/gC,OAAG+gC,GAAqBC,SAAS,EAAG,cASnD,CACEp2B,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACR7a,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAK68B,UACd5mB,SAAS,GAEX5T,UAAW,cACXkZ,OAAQ,SAAAwS,GAAA,IAAG7uB,EAAH6uB,EAAG7uB,GAAI40B,EAAP/F,EAAO+F,OAAQgI,EAAf/N,EAAe+N,MAAf,OACNr4B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACvD9O,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEvI,GAAE,SAAAjD,OAAWiD,GACb6H,MAAO/G,EAAK28B,gBAAgB,CAC1Bb,QACAhI,OAAQA,EAAOjuB,SAGhBiuB,EAAO5sB,YAStB,CACEL,IAAK,aACL9H,KAAM,aACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAAnD,GAAG,OAAI2E,GAAqB3E,EAAI8kB,cAE1C,CACEr2B,IAAK,UACL9H,KAAM,SACNwR,MAAO,UAIXvQ,EAAKwb,QAAU,SAACpD,EAAKskB,GACnB,IAAMnxB,EAAW,CAAC,EAAG,GAAGiZ,SAASpM,EAAI0b,OAAOjuB,OAAS,GAAK,WACpDs3B,EAAWT,EAAY,OAAS,iBAChCU,EAAYV,EAAY,SAAW,cAqDzC,MAlDgB,CACd,CACE71B,IAAK0E,EAAW,MAAQ,OACxBpI,KACEM,EAAA1B,EAAAC,cAAA,QACEK,UAAS,SAAApG,OAAWsP,EAAW,MAAQ4xB,GACvCr5B,MAAK,GAAA7H,OAAKsP,EAAW,MAAQ6xB,EAAxB,aAGT9hB,SAAW,CAAC,EAAG,EAAG,GAAGkJ,SAASpM,EAAI0b,OAAOjuB,OAAgB,SAACo1B,GACpD,CAAC,EAAG,EAAG,GAAGzW,SAASyW,EAAKnH,OAAOjuB,QACjC7F,EAAKy8B,SAASxB,IAFgC,MAMpD,CACEp0B,IAAK0E,IAAamxB,EAAY,GAAK,QACnC/iB,SAAS,EACTxW,KAAMM,EAAA1B,EAAAC,cAAA,QACJK,UAAU,aACV2E,MAAO,CAAEqS,SAAU,QACnBvV,MAAM,kBAERwX,SAAU/P,EAAW,KAAO,SAAC0vB,GACvB,CAAC,EAAG,GAAGzW,SAASyW,EAAKnH,OAAOjuB,QAC9B7F,EAAKg8B,gBAAgBf,KAI3B,CACEp0B,IAAKuR,EAAI0b,OAAOjuB,OAAS,GAAK62B,EAAY,QAAU,GACpD/iB,SAAS,EACTxW,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,kBAC1CwX,SAAU,SAAC2f,GACLA,EAAKnH,OAAOjuB,OAAS,GACvB7F,EAAKi8B,sBAAsBhB,KAIjC,CACEp0B,IAAK0E,IAAamxB,EAAY,GAAK,SACnCv5B,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,kBAC1CwX,SAAU/P,EAAW,KAAO,SAAC0vB,GACD,IAAtBA,EAAKnH,OAAOjuB,OACd7F,EAAK47B,iBAAiBX,MAMf7gB,OAAO,SAAArY,GAAC,OAAkB,IAAdA,EAAE4X,WAlOd3Z,mFAuOjB,IAAMq9B,EAAMn9B,KAAK68B,WAAWr3B,IAAI,aADd4qB,EAKdpwB,KAAKI,MADP0S,EAJgBsd,EAIhBtd,KAAMiH,EAJUqW,EAIVrW,SAAUC,EAJAoW,EAIApW,gBAGZ5Z,EAAQ,CACZ8d,QAASif,EAAIjf,SAAW,GACxBpL,KAAMqqB,EAAIrqB,MAAQA,EAClBiH,SAAUojB,EAAIpjB,UAAYA,EAC1BC,gBAAiBmjB,EAAInjB,iBAAmBA,GAG1Cha,KAAK+d,iBAEL/d,KAAKs7B,iBAALr+B,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA2BmD,+CAGVwC,EAAW0B,GAAW,IAAA84B,EAGnCp9B,KAAKI,MADP0S,EAFqCsqB,EAErCtqB,KAAMiH,EAF+BqjB,EAE/BrjB,SAAUC,EAFqBojB,EAErBpjB,gBAEZ5Z,EAAQ,CAAE8d,QAJuBkf,EAEJlf,SAK/BpL,IAASxO,EAAUwO,OACrB1S,EAAM0S,KAAOA,GAGXiH,IAAazV,EAAUyV,WACzB3Z,EAAM2Z,SAAWA,GAGfC,IAAoB1V,EAAU0V,kBAChC5Z,EAAM4Z,gBAAkBA,GAG1Bha,KAAK68B,WAAWn3B,IAAItF,oCAsVb,IAAAG,EAAAP,KAAAq9B,EASHr9B,KAAKI,MAPPC,EAFKg9B,EAELh9B,QACAuZ,EAHKyjB,EAGLzjB,MACA9G,EAJKuqB,EAILvqB,KACAiH,EALKsjB,EAKLtjB,SACAC,EANKqjB,EAMLrjB,gBACAkE,EAPKmf,EAOLnf,QACA5hB,EARK+gC,EAQL/gC,YAGIkgC,EAAYlgC,EAAY2M,SAAW3M,EAAYyM,cAErD,OACExF,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACG+c,EACCj5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,oBACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,4BAMJ,KAEHnC,KAAK08B,kBACNn5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEIta,EACIkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEAnc,EAAA1B,EAAAC,cAAC6d,GAAD,CACEhZ,IAAI,WACJ/C,MAAM,mCACN+V,QAAS3Z,KAAK2Z,UACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAClT,EAAKuR,GAAN,OAAc3X,EAAKsZ,eAAelT,EAAKuR,IACvDlF,YAAa4G,EAAMvT,OACnByM,KAAMA,EACNiH,SAAUA,EACVP,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,aAxpBP7c,iBAsqBdC,eAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtBuwB,KCtsBG,SAASmC,GAATrhC,GAKJ,IAJDshC,EAICthC,EAJDshC,SACAC,EAGCvhC,EAHDuhC,aACAxtB,EAEC/T,EAFD+T,UACAvO,EACCxF,EADDwF,QAEA,OAAOxD,aAAM,GAAAlC,OAAIH,KAAJ,cAAAG,OAAqCwhC,EAAQ,IAAAxhC,OAAOwhC,EAAP,KAAAxhC,OAAmByhC,GAAiB,KAC3F5/B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SCMrBs9B,eAKJ,SAAAA,EAAY74B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAm7B,IACjBr7B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAk+B,GAAAh7B,KAAAH,KAAMsC,KA8GRm7B,aAAe,SAAC3qB,EAAMiH,EAAUmE,GDhC3B,IAAsBvhB,EACrByhB,ECgCJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KDpClBE,GADqBzhB,ECuCZ,CACXyhB,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAA/T,GAAgC,IAA7B2d,EAA6B3d,EAA7B2d,MAAOI,EAAsB/d,EAAtB+d,gBACnBla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,qBAGJvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,wDDrDEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIH,KAAJ,aAAqCwiB,GAChDxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MC5F9BiC,EA0InB49B,gBAAkB,WAChB59B,EAAKmB,SAAS,CAAEZ,SAAS,IACzB8pB,GAAmB,CACjB/L,SAAU,CACRtL,KAAM,EACNiH,SAAU,GAEZ/J,UAAW,SAAAtB,GAAe,IAAZkL,EAAYlL,EAAZkL,MACZ9Z,EAAKmB,SAAS,CACZZ,SAAS,EACTs9B,SAAU/jB,KAGdnY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oEAzJNU,EA8JnBk6B,cAAgB,WACdl6B,EAAKmB,SAAS,CAAEZ,SAAS,IACzBi9B,GAAY,CACVttB,UAAW,SAAAwb,GAAA,IACT6P,EADS7P,EACT6P,aADS,OAELv7B,EAAKmB,SAAS,CAClBZ,SAAS,EACTg7B,kBAEF55B,QAAS,WACP3B,EAAKmB,SAAS,CAAEZ,SAAS,IACzBjB,aAAmB,qDAzKNU,EA8KnB47B,iBAAmB,SAACC,GAClB,IAAM98B,EAAI,GAAA9C,OAAM4/B,EAAO9a,QAAQ+c,OAArB,MAAA7hC,OAAgC4/B,EAAO9a,QAAQrC,QACzDxQ,GAAQ,CACNpK,MAAO,gBACPqK,SAAQ,iDAAAlS,OAAgD8C,EAAhD,KACRqP,SAAU,oBACVE,QAAS,aACTC,UAAW,WACTvO,EAAKmB,SAAS,CAAEZ,SAAS,IAEzBw6B,GAAWc,EAAO38B,GAAI,CACpBgR,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,+BAFN,IAAAyC,EAGY7B,EAAKM,MAAxB0S,EAHOnR,EAGPmR,KAAMiH,EAHCpY,EAGDoY,SACdja,EAAK29B,aAAa3qB,EAAMiH,IAE1BtY,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBAEnBA,aAAmB,6CApMZU,EA4MnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK29B,aAAa3qB,EAAMiH,EAAUmE,KA/MnBpe,EAmNnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK29B,aAAa,EAAG1jB,EAAU7K,KAtNhBpP,EA0NnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK29B,aAAa,EAAG1jB,EAAU,KA5Ndja,EA+NnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAnOE7G,EAsOnB+9B,UAAY,SAAAzQ,GAAA,IAAGpuB,EAAHouB,EAAGpuB,GAAI8+B,EAAP1Q,EAAO0Q,aAAP,OACVv6B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAASpG,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAC3F9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,GAAAjD,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAC1BA,MAAOm4B,EAAa92B,MACpBA,MAAO82B,EAAa92B,MACpBL,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAC3BkB,MAAOi3B,EAAaj3B,WA/OX/G,EAsPnBi+B,eAAiB,SAAAzT,GAAA,IAAGtrB,EAAHsrB,EAAGtrB,GAAI6hB,EAAPyJ,EAAOzJ,QAAPmd,EAAA1T,EAAgB+Q,oBAAhB,IAAA2C,EAA+B,GAA/BA,EAAA,OACfz6B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,QAASjD,SAAU,SACjE5V,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,uBAAA5K,OAAyBiD,GAAMO,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACzF9O,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,mBAAA5K,OAAqBiD,IAC1BuE,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,sBAAA5K,OAAwBiD,GAC3B6H,MAA8B,IAAvBw0B,EAAa11B,MAAc,OAAS,WAE1Ckb,OA9PQ/gB,EAsQnB48B,gBAAkB,kBAChBn5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMrE,MAAO,CAAEid,aAAc,SACpCxgB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,YACA1sB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,OACN6f,MAAI,GAHN,UAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,UACN6f,MAAI,GAHN,eAlRW5mB,EA8RnB68B,UAAY,WAEV,OADyB78B,EAAKM,MAAtBi7B,cA7RRv7B,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjBJ,MAAO,GACP+jB,SAAU,GACVzf,QAAS,CAAElf,GAAI,IACfq8B,aAAc,IAEhBv7B,EAAK6Z,QAAU,CACb,CACEhT,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRiB,OAAQ,SAAAwS,GAAA,IACN7uB,EADM6uB,EACN7uB,GAAIq8B,EADExN,EACFwN,aAAc4C,EADZpQ,EACYoQ,WAAYpd,EADxBgN,EACwBhN,QADxB,OAEF/gB,EAAKi+B,eAAe,CAAE/+B,KAAIq8B,eAAcxa,QAAO,GAAA9kB,OAAKkiC,EAAL,KAAAliC,OAAmB8kB,OAE1E,CAAEla,IAAK,UAAW9H,KAAM,UAAWub,QAAQ,GAC3C,CACEzT,IAAK,eACL9H,KAAM,SACNub,QAAQ,EACRX,SAAS,EACTla,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAK68B,UACd5mB,SAAS,IAGb,CACEpP,IAAK,WACL9H,KAAM,WACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIqa,SAAX,UAEb,CACE5rB,IAAK,cACL9H,KAAM,eACNub,QAAQ,EACR7a,KAAM,OACN8Q,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAI8E,GAAe9E,EAAIgmB,eAEpC,CACEv3B,IAAK,mBACL9H,KAAM,iBACNub,QAAQ,EACR7a,KAAM,OACN8Q,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAI8E,GAAe9E,EAAIimB,oBAEpC,CACEx3B,IAAK,kBACL9H,KAAM,YACNub,QAAQ,EACRjY,UAAW,cACXkZ,OAAQ,SAAA+O,GAAuB,IAApBprB,EAAoBorB,EAApBprB,GAAIo/B,EAAgBhU,EAAhBgU,UACTv3B,EAAQ,SASZ,OARwB,IAApBu3B,EAAUz4B,QACZkB,EAAQ,QAGc,IAApBu3B,EAAUz4B,QACZkB,EAAQ,WAIRtD,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWqiC,EAAUz4B,OAASpG,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACxF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,aAAAjD,OAAeiD,EAAf,KAAAjD,OAAqBqiC,EAAUz4B,OACjCA,MAAOy4B,EAAUp3B,MACjBA,MAAOo3B,EAAUp3B,MACjBL,IAAG,aAAA5K,OAAeiD,EAAf,KAAAjD,OAAqBqiC,EAAUz4B,OAClCkB,MAAOA,QAQrB,CAAEF,IAAK,eAAgB9H,KAAM,gBAAiBub,QAAQ,GACtD,CAAEzT,IAAK,eAAgB9H,KAAM,gBAAiBub,QAAQ,GACtD,CAAEzT,IAAK,eAAgB9H,KAAM,gBAAiBub,QAAQ,GACtD,CACEzT,IAAK,eACL9H,KAAM,kBACNub,QAAQ,EACRjY,UAAW,cACXkZ,OAAQ,SAAAyV,GAAA,IAAG9xB,EAAH8xB,EAAG9xB,GAAI8+B,EAAPhN,EAAOgN,aAAP,OAA0Bh+B,EAAK+9B,UAAU,CAC/C7+B,KACA8+B,aAAc/b,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,QAK1Eh+B,EAAKwb,QAAU,GArGExb,mFAwGC,IAAAyf,EACSvf,KAAKI,MAAxB0S,EADUyM,EACVzM,KAAMiH,EADIwF,EACJxF,SACd/Z,KAAKy9B,aAAa3qB,EAAMiH,GACxB/Z,KAAK09B,kBACL19B,KAAKg6B,iDAuLE,IAAAz5B,EAAAP,KAAAwf,EASHxf,KAAKI,MAPPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MAHKykB,EAAA7e,EAILme,gBAJK,IAAAU,EAIM,GAJNA,EAKLvrB,EALK0M,EAKL1M,KACAiH,EANKyF,EAMLzF,SACAC,EAPKwF,EAOLxF,gBACAkE,EARKsB,EAQLtB,QAGF,OAAI7d,EAEAkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAKFnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,mBAEEw7B,EAASt3B,OAAS,GAChB9C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,oCACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,+BAQTnC,KAAK08B,kBACNn5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,2BACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAvVD7c,iBA+VdC,eAAWm4B,IC7VpBmD,eAKJ,SAAAA,EAAYh8B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAs+B,IACjBx+B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqhC,GAAAn+B,KAAAH,KAAMsC,KAYRixB,aAAe,WACbzzB,EAAKmB,SAAS,CAAEZ,SAAS,IACzB8pB,GAAmB,CACjBna,UAAW,SAAC1S,GACVwC,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOtc,EAAOsc,SAGlBnY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oEAxBNU,EA6BnBy+B,YAAc,SAAC5C,GAAW,IAChB9a,EAAuB8a,EAAvB9a,QAAuB8a,EAAd/F,WAEjB5nB,GAAQ,CACNpK,MAAO,0BACPqK,SAAQ,wDAAAlS,OAAuD8kB,EAAvD,MACR3S,SAAU,kBACVE,QAAS,aACTC,UAAW,WACTvO,EAAKmB,SAAS,CAAEZ,SAAS,IADV,IFHW6pB,EAAa9O,EEM/BojB,EAAwB7C,EAAxB6C,SAAUpP,EAAcuM,EAAdvM,UFNQlF,EEOX,CACbsU,WACAx/B,GAAI,EACJu2B,eAAgBnG,EAChB0O,aAAc,GFXuB1iB,EEcb,CACxBpL,UAAW,WACT9Q,aAAqB,yCACrBY,EAAKyzB,gBAEP9xB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,6CFvBxBN,aAAO,GAAA/C,OAAIH,KAAJ,gBAAwCsuB,GACnDtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SE5CpCiC,EAkEnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyzB,aAAa,EAAGxZ,EAAU,KApEdja,EAuEnB6kB,OAAS,WACa7kB,EAAKwC,MAAjBmC,QACAG,KAAK,yBAzEI9E,EA4EnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAhFE7G,EAmFnB2+B,QAAU,SAAA9pB,GAAI,OAAI,IAAIK,KAAKL,GAAM8I,mBAAmB,UAnFjC3d,EAqFnB4+B,kBAAoB,SAAAziC,GAAe,IAAZ0J,EAAY1J,EAAZ0J,MACrB,OAAc,IAAVA,EACK,OAGK,IAAVA,EACK,UAGF,UA9FU7F,EAiGnB6+B,kBAAoB,SAAAjwB,GAId,IAHJ/I,EAGI+I,EAHJ/I,MAGIi5B,EAAAlwB,EAFJ+J,KAAQomB,EAEJD,EAFIC,GAAIC,EAERF,EAFQE,KACZC,EACIrwB,EADJqwB,UAEA,OAAc,IAAVp5B,GAA6B,OAAdo5B,GAAsBF,EAChC,SAGK,IAAVl5B,GAA6B,eAAdo5B,GAA8BD,EACxC,SAGF,WA5GPh/B,EAAKM,MAAQ,CACXC,SAAS,EACTuZ,MAAO,IAJQ9Z,mFAQC,IAAA6B,EACS3B,KAAKI,MAAxB0S,EADUnR,EACVmR,KAAMiH,EADIpY,EACJoY,SACd/Z,KAAKuzB,aAAazgB,EAAMiH,oCAuGjB,IAAAxZ,EAAAP,KAAA2e,EAIH3e,KAAKI,MAFPC,EAFKse,EAELte,QACAuZ,EAHK+E,EAGL/E,MAGF,OAAIvZ,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAELla,GAAYkD,EAAA1B,EAAAC,cAAC4d,GAAD,OAGXrf,GACCkD,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAACqyB,GAAA,EAAD,CAAMhyB,UAAU,QACdoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,6BAEFoB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNyO,EAAMvT,QAAUuT,EAAMnT,IAAI,SAAA6f,GAAC,OAC1B/iB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAGC,GAAI,EAAG4Z,GAAI,EAAGztB,IAAG,WAAA5K,OAAauqB,EAAEtnB,GAAf,KAAAjD,OAAqBuqB,EAAEkY,WACzDj7B,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,CACEjX,QAAS,kBAAMjD,EAAKg+B,YAAYjY,IAChCnkB,UAAS,aAAApG,OAAeuqB,EAAEsP,UAAY,WAAa,KAEnDryB,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CACEvY,UAAS,8BAAApG,OAAgCwE,EAAKm+B,kBAAkBpY,EAAE8X,aAElE76B,EAAA1B,EAAAC,cAAA,OACEK,UAAU,oCACV2E,MAAO,CACL2P,QAAS,OAAQua,cAAe,SAAUza,QAAS,MAGrDhT,EAAA1B,EAAAC,cAAA,MACEK,UAAU,sBACV2E,MAAO,CACLk4B,UAAW,OACX7lB,SAAU,OACV4K,aAAc,OACdtN,QAAS,OACTqd,SAAU,OACV1X,eAAgB,SAChBiY,WAAY,WAGd9wB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,OACnBxS,IAAG,SAAA5K,OAAWuqB,EAAEkY,UAChB33B,MAAM,WAHR,KAKKyf,EAAEkY,UAjBT,IAAAziC,OAmBOuqB,EAAEzF,UAETtd,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,kBAE1C7Y,EAAA1B,EAAAC,cAAA,YAAOwkB,EAAEmO,OACTlxB,EAAA1B,EAAAC,cAAA,YAAOwkB,EAAEiM,SAAT,kBAEFhvB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,kBAE1C7Y,EAAA1B,EAAAC,cAAA,oBAEG,KACDyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,OACnBxS,IAAG,WAAA5K,OAAauqB,EAAEkY,UAClB33B,MAAM,WAEL,IAAImO,KAAKsR,EAAE4X,aAAazgB,mBAAmB,WAGhDla,EAAA1B,EAAAC,cAAA,wBAEG,KACDyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,OACnBxS,IAAG,WAAA5K,OAAauqB,EAAEkY,UAClB33B,MAAM,UAELuW,GAAekJ,EAAE2Y,iCAIxB17B,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,kBAE1C7Y,EAAA1B,EAAAC,cAAA,YAAO,KACPyB,EAAA1B,EAAAC,cAAA,sBACU,IACRyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,SAAA5K,OAAWuqB,EAAEkY,SAAb,KAAAziC,OAAyBuqB,EAAE8X,UAAUz4B,OACxCkB,MAAOtG,EAAKm+B,kBAAkBpY,EAAE8X,YAE/B9X,EAAE8X,UAAUp3B,SAInBzD,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,kBAE1C7Y,EAAA1B,EAAAC,cAAA,0BACc,IACZyB,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,SAAA5K,OAAWuqB,EAAEkY,SAAb,KAAAziC,OAAyBuqB,EAAEsM,sBAC9B/rB,MAAOtG,EAAKo+B,kBAAL1hC,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA4BqpB,EAAE8X,UAA9B,CAAyCW,UAAW,gBAC3Dj4B,MAAO,CAAEqS,SAAU,SAElB,IAAKmN,EAAEsM,sBANZ,MAWFrvB,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,kBACM,IACJyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,SAAA5K,OAAWuqB,EAAEkY,SAAb,KAAAziC,OAAyBuqB,EAAEqM,cAC9B9rB,MAAOtG,EAAKo+B,kBAAL1hC,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA4BqpB,EAAE8X,UAA9B,CAAyCW,UAAW,QAC3Dj4B,MAAO,CAAEqS,SAAU,SAElB,IAAKmN,EAAEqM,cAPZ,OAaJpvB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,gBAAiBjD,SAAU,SAErE5V,EAAA1B,EAAAC,cAAA,kCAAA/F,OAE0BwE,EAAKk+B,QAAQnY,EAAE4Y,2BAGzC37B,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,QACbmkB,EAAEsP,UAAF,qBAAA75B,OACwBwE,EAAKk+B,QAAQnY,EAAE6X,mBACpC,KAKgB,IAAtB7X,EAAE8X,UAAUz4B,MACVpC,EAAA1B,EAAAC,cAAA,OACEK,UAAU,qBACV2E,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,gBAAiBjD,SAAU,SAErE5V,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAWyf,EAAE8X,UAAU3lB,KAAK0mB,SAEzC,YAQdvlB,EAAMvT,QACN9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKM,GAAI,IACPrX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,gBAAd,wCAQVoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK2kB,QAHhB,kCAjTwB5hB,iBAmU/BC,eAAWs7B,IC5VpBc,GAAqB,eAACz5B,EAADmH,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAS,EAAT,OAAeuyB,WAAW15B,GAAS,GAAK05B,WAAW15B,GAAS,KAmCxEsJ,GAjCE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GA4Bf,OA1BKD,EAAMmwB,WAAcnwB,EAAMmwB,UAAU35B,QACvCyJ,EAAOkwB,UAAY,8BAEhBnwB,EAAMgvB,mBACT/uB,EAAO+uB,iBAAmB,0BAGxBiB,GAAmBjwB,EAAMyjB,wBAC3BxjB,EAAOwjB,qBAAuB,2CAE5BwM,GAAmBjwB,EAAMwjB,gBAC3BvjB,EAAOujB,aAAe,2CAEpByM,GAAmBjwB,EAAMowB,gBAC3BnwB,EAAOmwB,aAAe,2CAEpBH,GAAmBjwB,EAAMqwB,gBAC3BpwB,EAAOowB,aAAe,2CAIrBrwB,EAAMswB,iBACHl5B,OAAO0rB,UAAU9iB,EAAMswB,gBAAgB95B,QACvCoc,GAAe3C,KAAK,SAAAsgB,GAAE,OAAIA,EAAG/5B,QAAUwJ,EAAMswB,gBAAgB95B,UACjEyJ,EAAOqwB,gBAAkB,mBAEpBrwB,GCnBHomB,oLAiBK,IAAApyB,EASHpD,KAAKsC,MAPPtD,EAFKoE,EAELpE,GACAwR,EAHKpN,EAGLoN,WACAN,EAJK9M,EAIL8M,aACAyU,EALKvhB,EAKLuhB,OACAgX,EANKv4B,EAMLu4B,OACA2D,EAPKl8B,EAOLk8B,UACAlG,EARKh2B,EAQLg2B,QAGaH,EAAiBqG,EAAxBt4B,MACA6Z,EAAY8a,EAAZ9a,QAER,OACEtd,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAa0e,EAA3B,oDAGJtd,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,GAAIC,GAAI,IACtBxb,GAAM,GACLuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACL+R,UAAW6G,GACXtK,YAAY,SACZS,aAAa,QACbkI,QAASsjB,OAMnB71B,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,GAAIC,GAAI,IACtBxb,GACCuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SAAOvC,KAAK,OAAOoG,MAAOszB,EAAc5tB,UAAQ,OAKxD9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,mBACL+R,UAAWsI,GACX/L,YAAY,uBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,4BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,uBACL+R,UAAW1D,GACX3N,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJC,KAAK,IACLJ,YAAY,2BACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJC,KAAK,IACLJ,YAAY,gBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJC,KAAK,IACLJ,YAAY,gBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACX3N,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJC,KAAK,IACLJ,YAAY,gBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,mBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,kBACL+R,UAAW6G,GACXtK,YAAY,kBACZS,aAAa,QACbkI,QAASiM,SAOnBxe,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCA5KgB5hB,iBAAxByyB,GAWGhuB,aAAe,CACpBxI,GAAI,EACJwR,YAAY,EACZ8uB,UAAW,IA4Kf,IAMe7yB,MANc0E,aAAU,CACrCC,KAAM,kBACNnC,YACA2Q,oBAAoB,GAHOzO,CAI1BqkB,KCOYmK,eAlMb,SAAAA,EAAYr9B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2/B,IACjB7/B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0iC,GAAAx/B,KAAAH,KAAMsC,KASR0b,eAAiB,WAGfsf,GAAY,CACVC,SAHmBz9B,EAAKwC,MAAlBi7B,SAINC,cAAc,EACdxtB,UAAW,SAAA/T,GAAyB,IAAtB0/B,EAAsB1/B,EAAtB0/B,OAAQvC,EAAcn9B,EAAdm9B,QACpBt5B,EAAKmB,SAAS,CACZ06B,SAAQvC,YAGVt5B,EAAK8/B,0BAEPn+B,QAAS,WACPrC,aAAmB,qDAxBNU,EA6BnB8/B,uBAAyB,WAAM,IAAAx8B,EACLtD,EAAKwC,MAArBtD,EADqBoE,EACrBpE,GAAIyF,EADiBrB,EACjBqB,QACZ,GAAKzF,GL1BF,SAA8BA,EAAIoc,GAChCnd,aAAM,GAAAlC,OAAIH,KAAJ,KAAAG,OAA4BiD,IACtCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KKgCrDgiC,CAAqB7gC,EAAI,CACvBgR,UAAW,SAACiZ,GAAQ,IAEhBiM,EAMEjM,EANFiM,UACA9F,EAKEnG,EALFmG,UACA5Q,EAIEyK,EAJFzK,OACAC,EAGEwK,EAHFxK,SACAqhB,EAEE7W,EAFF6W,gBACAhC,EACE7U,EADF6U,aAGI2B,EAAkB1d,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,GAExE5T,EAAWjtB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACZgsB,EADY,CAEfqW,UAAW,CACT35B,MAAOypB,EACP/G,SAAU6M,EACVluB,MAAK,GAAAjL,OAAKm5B,EAAL,KAAAn5B,OAAkB+jC,EAAlB,MAAA/jC,OAAsCyiB,EAAtC,KAAAziB,OAAgD0iB,IAEvDghB,oBAEF3/B,EAAKmB,SAAS,CAAEipB,iBAElBzoB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,wCACnBqF,EAAQqjB,UAER1oB,aAAmB,mEA7CzB,CAAS,IACWw8B,EAAY97B,EAAKM,MAA3Bu7B,OAAUC,MAClB97B,EAAKmB,SAAS,CACZipB,YAAa,CACXlrB,GAAI,EACJm/B,iBAAkBvC,EAAMmE,iBACxBnN,qBAAsB,EACtBD,aAAc,EACd4M,aAAc,EACdC,aAAc,OAxCH1/B,EAkFnBoQ,aAAe,SAAChB,GAAW,IL9DSgb,EAAa9O,EKgE7Cpc,EAQEkQ,EARFlQ,GAFuBghC,EAUrB9wB,EAPFowB,UAAoB/J,EAHGyK,EAGVr6B,MAAiCuvB,EAHvB8K,EAGa3X,SACpC8V,EAMEjvB,EANFivB,iBACAvL,EAKE1jB,EALF0jB,qBACAD,EAIEzjB,EAJFyjB,aACA4M,EAGErwB,EAHFqwB,aACAC,EAEEtwB,EAFFswB,aAC0B1B,EACxB5uB,EADFuwB,gBAAmB95B,MAGC64B,EAAe1+B,EAAKM,MAAlCu7B,OAAU38B,GL1EgBkrB,EK4EnB,CACblrB,KACAw/B,WACAtJ,YACAK,iBACA4I,mBACAvL,sBAAuBA,EACvBD,cAAeA,EACf4M,cAAeA,EACfC,cAAeA,EACf1B,gBLtF6C1iB,EKyFjB,CAC5BpL,UAAW,WAAM,IACPvL,EAAY3E,EAAKwC,MAAjBmC,QACRvF,aAAqB,iDACrBuF,EAAQqjB,UAEVrmB,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,qELlGpBN,aAAO,GAAA/C,OAAIH,KAAJ,cAAsCsuB,GACjDtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MK9BpCiC,EA6HnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA/HShoB,EAkInBmgC,sBAAwB,SAACt6B,GAAU,IACzBukB,EAAgBpqB,EAAKM,MAArB8pB,YACRpqB,EAAKmB,SAAS,CACZipB,YAAYjtB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPitB,EADM,CAET0O,OAAQjzB,EACRuvB,UAAWvvB,EAAM0iB,SACjBkN,eAAgB5vB,EAAM3G,QAvI1Bc,EAAKM,MAAQ,GACbN,EAAKmgC,sBAAwBngC,EAAKmgC,sBAAsBxrB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAHZA,mFAOjBE,KAAKge,kDAuIE,IAAA1T,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAMH3B,KAAKI,MAHPu7B,EAHKh6B,EAGLg6B,OACAzR,EAJKvoB,EAILuoB,YACAkP,EALKz3B,EAKLy3B,QAGF,OACE71B,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,4BAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,+EAKJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJ6e,EAGC71B,EAAA1B,EAAAC,cAACo+B,GAADjjC,OAAAuP,OAAA,GACM0d,EADN,CAEEhZ,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAeid,EACfA,YAAaA,EACbzlB,QAASA,EACT20B,QAASA,EACTuC,OAAQA,EACRwE,gBAAiBngC,KAAKigC,sBACtBrgB,oBAAkB,KAZnBrc,EAAA1B,EAAAC,cAAC4d,GAAD,gBAtKsB3c,2BCDjCq9B,8MAqBJC,kBAAoB,iBAClB,CAAC,CACC16B,MAAO,EACPuqB,YAAa,WACbxkB,SAAS,6EAIJ,IAAAtI,EAUHpD,KAAKsC,MARPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACA7P,EAJK+C,EAIL/C,QACAigC,EALKl9B,EAKLk9B,2BACAC,EANKn9B,EAMLm9B,uBACA5b,EAPKvhB,EAOLuhB,OAPKwU,EAAA/1B,EAQLg2B,eARK,IAAAD,EAQK,GARLA,EASLqH,EATKp9B,EASLo9B,YAGF,OACEj9B,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAQAphB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEid,aAAc,QAClDxgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YAAY2E,MAAO,CAAEqS,SAAU,KAA7C,iBAEE5V,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEyP,QAAS,SAAU4C,SAAU,IACtCtS,MAAM,YACN6f,MAAI,GAEH0S,EAAQlf,OAAO,SAAArY,GAAC,OAAKA,EAAEqT,WAAU7O,YAQ9C9C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACP5H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI6Z,GAAI,GAAI/B,GAAI,IACvB9uB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gCACV2E,MAAO,CACLqS,SAAU,GACV1C,QAAS,OACTK,WAAY,SAGdvT,EAAA1B,EAAAC,cAAC2+B,GAAA,EAAD,CACE35B,MAAO,CAAEitB,WAAY,EAAG2M,cAAe,GACvCC,IAAI,cACJtO,GAAI,EACJlwB,UAAU,qCAJZ,oBAQAoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,GACP9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACXC,YAAY,iBACZS,aAAa,QACbrO,KAAK,OACL+G,SAAUi6B,EACVnzB,UAAW,GACXyI,aAAc2qB,SAQxBngC,EACIkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEAnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNiuB,EAAQ3yB,IAAI,SAAA0T,GAAC,OACZ5W,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,GAAI1rB,IAAG,eAAA5K,OAAiBoe,EAAE2P,UAC/CvmB,EAAA1B,EAAAC,cAAA,OACE6E,IAAG,eAAA5K,OAAiBoe,EAAExU,OACtBxD,UAAU,2BACV2E,MAAO,CACLqS,SAAU,GACV1C,QAAS,OACT2b,UAAW,SAGb7uB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,WAAA5K,OAAaoe,EAAE2P,SAClBjrB,KAAI,WAAA9C,OAAaoe,EAAE2P,SACnBlZ,UAAW1E,GACXlF,MAAK,GAAAjL,OAAKoe,EAAEymB,IAAP,KAAA7kC,OAAcoe,EAAEyC,KAAhB,MAAA7gB,OAAyBoe,EAAEtb,MAChCsD,UAAWgY,EAAEjF,SAAW,UAAY,GACpCvP,MAAOwU,EAAEjF,SACT5J,eAAgB6O,EAAEjF,SAClB5O,SAAU,SAAA4d,GAAC,OAAIoc,EAA2Bpc,EAAG/J,uBA5I5CpX,iBAA3Bq9B,GAcG54B,aAAe,CACpBgJ,YAAY,EACZnQ,SAAS,EACTi/B,UAAW,GACXkB,YAAa,KA2IjB,IAMe/zB,MANiB0E,aAAU,CACxCC,KAAM,qBACNnC,YACA2Q,oBAAoB,GAHUzO,CAI7BivB,KCjKYS,GAhBE,SAACC,EAAcC,GAE9B,IAAIC,EAGJ,OAAO,WAAa,QAAAC,EAAAn0B,UAAAzG,OAAT66B,EAAS,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAATF,EAASE,GAAAt0B,UAAAs0B,GAElBC,aAAaL,GAGbA,EAAQ9/B,WAAW,WACjB4/B,EAAYj0B,WAAZ,EAAgBq0B,IACfH,KCyTQO,eAjTb,SAAAA,EAAYh/B,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAshC,IACjBxhC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqkC,GAAAnhC,KAAAH,KAAMsC,KAmBR0b,eAAiB,SAAA/hB,GAAgD,IAAAslC,EAAAtlC,EAA7CuhC,oBAA6C,IAAA+D,KAAAC,EAAAvlC,EAAvBukC,mBAAuB,IAAAgB,EAAT,GAASA,EAE/DlE,GAAY,CACVC,SAFmBz9B,EAAKwC,MAAlBi7B,SAGNC,eACAxtB,UAAW,SAAAtB,GAA8B,IAA3BitB,EAA2BjtB,EAA3BitB,OAA2B8F,EAAA/yB,EAAnB0qB,eAAmB,IAAAqI,EAAT,GAASA,EAErC3hC,EAAKmB,SAAS,CACZ06B,SACAvC,UACA/4B,SAAS,EACTmgC,iBAaN/+B,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,IAEXjB,aAAmB,qDAhDNU,EAqDnBoQ,aAAe,SAAChB,GAAW,IACHsvB,EAAe1+B,EAAKM,MAAlCu7B,OAAU38B,GADO0iC,EAGAxyB,EAAjBkqB,eAHiB,IAAAsI,EAGP,GAHOA,EAKnBC,EAAyBvI,EAC5Blf,OAAO,SAAArY,GAAC,OAAIA,EAAEqT,WACdzO,IAAI,SAAA5E,GAAC,MAAK,CACT28B,WACAx/B,GAAI,EACJkW,SAAUrT,EAAEqT,SACZqgB,eAAgB1zB,EAAEioB,QAClBoL,UAAWrzB,EAAE8G,QAGXi5B,EAAgBxI,EACnBlf,OAAO,SAAArY,GAAC,OAAIA,EAAEqT,WACdzO,IAAI,SAAA+kB,GAAA,IAAGoV,EAAHpV,EAAGoV,IAAK/hC,EAAR2sB,EAAQ3sB,KAAR,OACH0E,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACVuJ,MAAO,MACPoG,QAAS,OACTua,cAAe,MACf8C,SAAU,SACV1X,eAAgB,aAChBiY,WAAY,aAGZ9wB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEvI,GAAE,SAAAjD,OAAWyiC,EAAX,KAAAziC,OAAuB6kC,GACzB/5B,MAAM,UACNC,MAAO,CAAEqS,SAAU,OAAQrC,WAAY,QAEtC8pB,GAEHr9B,EAAA1B,EAAAC,cAAA,YAAO,IAAKjD,MAIoB,IAAlC8iC,EAAuBt7B,QAI3B2H,GAAQ,CACNpK,MAAO,2BACPqK,SACE1K,EAAA1B,EAAAC,cAAA,oEAAA/F,OACqD4lC,EAAuBt7B,OAD5E,iBAEE9C,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTua,cAAe,MACf8C,SAAU,OACV1X,eAAgB,kBAGfwlB,IAGP1zB,SAAU,sBACVE,QAAS,aACTC,UAAW,WRhFV,IAAiC6b,EAAa9O,EAAb8O,EQiFR,CACtBsU,WACAmD,0BRnF2CvmB,EQoF1C,CACDpL,UAAW,WAAM,IACPvL,EAAY3E,EAAKwC,MAAjBmC,QACRvF,aAAqB,gDAErBuF,EAAQG,KAAR,qBAAA7I,OAAkCyiC,KAEpC/8B,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,qER9FxBN,aAAO,GAAA/C,OAAIH,MAAwBsuB,GACvCtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SQ1CpCiC,EAuInB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAzIShoB,EA4InBmgC,sBAAwB,SAACt6B,GAAU,IACzBukB,EAAgBpqB,EAAKM,MAArB8pB,YACRpqB,EAAKmB,SAAS,CACZipB,YAAYjtB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPitB,EADM,CAET0O,OAAQjzB,EACRuvB,UAAWvvB,EAAMgD,KACjB4sB,eAAgB5vB,EAAMmkB,aAnJThqB,EAwJnBwgC,2BAA6B,SAACrK,EAAKnM,GACjC,IAAKmM,EAAIzvB,cACP,OAAO,EAGT,IAAMxH,EAAK8qB,EAAQA,QAL0BnoB,EAUzC7B,EAAKM,MAFPyhC,EAR2ClgC,EAQ3CkgC,yBACAzI,EAT2Cz3B,EAS3Cy3B,QAGI0I,EAAU7kC,OAAAmrB,GAAA,EAAAnrB,CAAOm8B,GAEjB2I,EAAgBD,EAAW3S,UAAU,SAAAhV,GAAC,OAAIA,EAAE2P,UAAY9qB,IAC9D8iC,EAAWC,GAAX9kC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK6kC,EAAWC,GADhB,CAEE7sB,UAAW4sB,EAAWC,GAAe7sB,SACrCwD,SAAS,IAGX,IAAMspB,EAAoBH,EAAyBjqB,KAAK,SAAApE,GAAC,OAAIA,EAAE4b,YAAcpwB,IAmB7E,OAlBKgjC,GAWHA,EAAkB9sB,SAAW+gB,EAAIpmB,OAAOnE,QACxC5L,EAAKmB,SAAS,CACZm4B,QAAS0I,EACTD,8BAbF/hC,EAAKmB,SAAS,CACZm4B,QAAS0I,EACTD,yBAAwB,GAAA9lC,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CACnB4kC,GADmB,CACO,CAC3BzS,UAAWpwB,EACXkW,SAAU+gB,EAAIpmB,OAAOnE,cAYtB,GAhMU5L,EAmMnBygC,uBAAyB,SAAAnT,GAA2B,IAAdznB,EAAcynB,EAAxBvd,OAAUlK,MAEpC,GADoB7F,EAAKM,MAAjBC,QAENP,EAAKmB,SAAS,CACZu/B,YAAa76B,QAFjB,CAFkD,IAAAs8B,EASzBniC,EAAKM,MAAtBg5B,QACe,UAV2B,IAAA6I,EAShC,GATgCA,GAUtC57B,QAAgBV,EAC1B7F,EAAKke,eAAe,CAAEwf,cAAc,EAAMgD,YAAa76B,IAIzD7F,EAAKmB,SAAS,CACZu/B,YAAa76B,MAnNE7F,EAuNnBoiC,cAAgB,kBAAAp1B,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAS,IAAaq1B,UAAU,OAAOjG,QAAQ,mBAAoB,IAAIkG,eAvNpEtiC,EAyNnBuiC,WAAa,WAAM,IAAA1jB,EAMb7e,EAAKM,MANQkiC,EAAA3jB,EAEf6hB,mBAFe,IAAA8B,EAED,GAFCA,EAGfC,EAHe5jB,EAGf4jB,WACAC,EAJe7jB,EAIf6jB,SAJeC,EAAA9jB,EAKfya,eALe,IAAAqJ,EAKL,GALKA,EAQXvoB,EAASpa,EAAKoiC,cAAc1B,GAYlC,OAVepH,EACZlf,OAAO,SAAAwoB,GAAG,OACT5iC,EAAKoiC,cAAcQ,EAAI9B,KAAKtc,SAASpK,IAClCpa,EAAKoiC,cAAcQ,EAAI7jC,MAAMylB,SAASpK,IACtCpa,EAAKoiC,cAAcQ,EAAIh5B,OAAO4a,SAASpK,KAE3CyoB,KAAK,SAAC9gC,EAAG+gC,GAAJ,MACS,QAAbJ,EAAqB3gC,EAAE0gC,GAAYM,cAAcD,EAAEL,IAAeK,EAAEL,GAAYM,cAAchhC,EAAE0gC,OA1OnFziC,EAgPnBgjC,0BAA4B,SAAC7M,GAC3B,QAAKA,EAAIzvB,gBAIT1G,EAAKke,kBAEE,IArPPle,EAAKM,MAAQ,CACXC,SAAS,EACTmgC,YAAa,GACb+B,WAAY,OACZC,SAAU,OACVtY,YAAa,KACbkP,QAAS,GACTyI,yBAA0B,IAG5B/hC,EAAKmgC,sBAAwBngC,EAAKmgC,sBAAsBxrB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC7BA,EAAKijC,gCAAkClC,GAAS/gC,EAAKygC,uBAAwB,KAb5DzgC,mFAiBjBE,KAAKge,eAAe,qCAyOb,IACCvZ,EAAYzE,KAAKsC,MAAjBmC,QADD8a,EAOHvf,KAAKI,MAPF4iC,EAAAzjB,EAGLoc,cAHK,IAAAqH,EAGI,GAHJA,EAIL9Y,EAJK3K,EAIL2K,YACA7pB,EALKkf,EAKLlf,QACAmgC,EANKjhB,EAMLihB,YANKyC,EASkBtH,EAAjB9a,eATD,IAAAoiB,EASW,GATXA,EAWP,OAAI5iC,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,sDACsD0e,KAI1Dtd,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,KACLsG,GAAWtd,EAAA1B,EAAAC,cAAC4d,GAAD,MACZmB,GACCtd,EAAA1B,EAAAC,cAACohC,GAADjmC,OAAAuP,OAAA,GACM0d,EADN,CAEEhZ,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACbsY,gBAAiBngC,KAAKigC,sBACtBK,2BAA4BtgC,KAAKsgC,2BACjCC,uBAAwBvgC,KAAK+iC,gCAC7B91B,cAAeid,EACfzlB,QAASA,EACT20B,QAASp5B,KAAKqiC,aACd1G,OAAQA,EACR6E,YAAaA,EACb5gB,oBAAkB,eAnSQ7c,iBCe3BkM,GAlCE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GA6Bf,OA5BKD,EAAM0R,SAAY1R,EAAM0R,QAAQlb,QACnCyJ,EAAOyR,QAAU,gCAGd1R,EAAMg0B,aAAgBh0B,EAAMg0B,YAAYx9B,QAC3CyJ,EAAO+zB,YAAc,mCAGnBh0B,EAAMi0B,sBAAuBj0B,EAAMi0B,oBAAoBz9B,MAAUwJ,EAAMg0B,YAAYx9B,OAIlFwJ,EAAMysB,QACTxsB,EAAOwsB,MAAQ,qCAGZzsB,EAAMk0B,yBACTj0B,EAAOi0B,uBAAyB,mDAG7Bl0B,EAAM+nB,SAAY/nB,EAAM+nB,QAAQvxB,QACnCyJ,EAAO8nB,QAAU,4BAGd/nB,EAAM6sB,UACT5sB,EAAO4sB,QAAU,sCAGZ5sB,GCMHk0B,eA+CJ,SAAAA,EAAYhhC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsjC,IACjBxjC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqmC,GAAAnjC,KAAAH,KAAMsC,KAqPRu7B,UAAY,SAAA5hC,GAAA,IAAG+C,EAAH/C,EAAG+C,GAAI8+B,EAAP7hC,EAAO6hC,aAAP,OACVv6B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAASpG,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAC3F9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,GAAAjD,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAC1BA,MAAOm4B,EAAa92B,MACpBA,MAAO82B,EAAa92B,MACpBL,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAW+hC,EAAan4B,OAC3BkB,MAAOi3B,EAAaj3B,WA/PX/G,EAsQnByjC,gBAAkB,SAACrrB,EAAKvR,EAAKhB,GAAU,IAE/B69B,EADiB1jC,EAAKM,MAApBqjC,WACgB7rB,KAAK,SAAAyG,GAAC,OAAIA,EAAErf,KAAOkZ,EAAIlZ,KAE/C,GAAKwkC,EAAL,CACAA,EAAK78B,IAAQhB,EALwB,IAAA+9B,EAAAzmC,OAAA0Q,GAAA,EAAA1Q,CAAA,GAUhCib,EAVgCjb,OAAA2S,GAAA,EAAA3S,CAAA,GAWlC0J,GAAOhB,IAHJg+B,EAR+BD,EAQnC1kC,GAAmB4zB,EARgB8Q,EAQhB9Q,qBAAsB4M,EARNkE,EAQMlE,aAAcD,EARpBmE,EAQoBnE,aAAc5M,EARlC+Q,EAQkC/Q,aAAcmL,EARhD4F,EAQgD5F,cAQrF8F,EAF0C9jC,EAAKwC,MAAvCshC,+BAEsB,CAC5BD,gBAAe/Q,uBAAsB4M,eAAcD,eAAc5M,eAAcmL,mBAvRhEh+B,EA2RnB+jC,oBAAsB,SAACjM,GACrB,GAAIA,EAAa,KAAAx0B,EACStD,EAAKwC,MAArBtD,EADOoE,EACPpE,GADOoE,EACHqB,QACJG,KAAR,4BAAA7I,OAAyCiD,EAAzC,KAAAjD,OAA+C67B,EAAY54B,OA9R5Cc,EAkSnBgkC,mBAAqB,WAAM,IAAAx5B,EACDxK,EAAKwC,MAArBtD,EADiBsL,EACjBtL,GADiBsL,EACb7F,QACJG,KAAR,4BAAA7I,OAAyCiD,KApSxBc,EAuSnBikC,sBAAwB,SAACnM,GACnBA,IAEFoM,EADoClkC,EAAKwC,MAAjC0hC,yBACgBpM,IA1ST93B,EA8SnB+Z,eAAiB,SAAClT,GAAQ,IAAAs9B,EACUnkC,EAAKwC,MAA/BsxB,cADgB,IAAAqQ,EACP,CAAEt+B,MAAO,GADFs+B,EAEhB3nC,EAAgBwD,EAAKM,MAArB9D,YACFkgC,EAAYlgC,EAAY2M,SAAW3M,EAAYyM,cAE/CuS,EAAU,CACdA,QAASxb,EAAKwb,QAAQ,CAAEkhB,YAAW1zB,WAAYxM,EAAYwM,aAAcoR,OAAO,SAAArY,GAAC,OAAIA,EAAE8E,OAGzF,OAAwB,IAAjBitB,EAAOjuB,OAAe2V,EAAQ3U,IAvTpB7G,EA0TnBokC,mCAAqC,SAAAx1B,GAAoB,IAAjB1P,EAAiB0P,EAAjB1P,GAAI40B,EAAallB,EAAbklB,OAClCnvB,EAAY3E,EAAKwC,MAAjBmC,QACa,IAAjBmvB,EAAOjuB,OACTlB,EAAQG,KAAR,0CAAA7I,OAAuDiD,KA7TxCc,EAiUnBqkC,8BAAgC,SAAA3Y,GAAqB,IAAlBxsB,EAAkBwsB,EAAlBxsB,GAAkBolC,EAAA5Y,EAAd3K,QACP7Z,MAC3Bk1B,QAAQ,IAAK,KACbA,QAAQ,IAAK,IACbxe,MAAM,KACNjX,IAAI,SAAA01B,GAAE,OAAIA,EAAGxT,SAJTuS,EAD4Cj+B,OAAA6e,GAAA,EAAA7e,CAAAmnC,EAAA,MAQnDtkC,EAAKmB,SAAS,CAAEZ,SAAS,IACzB46B,GAA8B,CAAEj8B,KAAIk8B,eAAe,CACjDlrB,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4EAtVRU,EA4VnBi8B,sBAAwB,SAACJ,GAAW,IAC1Bl3B,EAAY3E,EAAKwC,MAAjBmC,QAENzF,EAKE28B,EALF38B,GACA6hB,EAIE8a,EAJF9a,QACA+a,EAGED,EAHFC,MACAI,EAEEL,EAFFK,QACApI,EACE+H,EADF/H,OAIIiI,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAX3CyI,EAYCxjB,EAAQ7Z,MACxCk1B,QAAQ,IAAK,KACbA,QAAQ,IAAK,IACbxe,MAAM,KACNjX,IAAI,SAAA01B,GAAE,OAAIA,EAAGxT,SAhBkB2b,EAAArnC,OAAA6e,GAAA,EAAA7e,CAAAonC,EAAA,GAY3BnJ,EAZ2BoJ,EAAA,GAYdjI,EAZciI,EAAA,GAmB5BhI,EAAc,CAClB14B,MAAK,mBAAA7H,OAAqBm/B,EAArB,KAAAn/B,OAAoCsgC,GACzCjuB,QAAS,aACTvH,MAAO,WAGT,GAAqB,IAAjB+sB,EAAOjuB,MAAa,CACtB,IAAMsI,EACJ1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,gFAAApM,OAEA8kB,EAAQ7Z,MAFR,SAAAjL,OAEqB8/B,EAFrB,sBAAA9/B,OAEsDigC,EAFtD,MAOFM,EAAYruB,SAAWA,EACvBquB,EAAYpuB,SAAW,gBACvBouB,EAAYnuB,WAAa,iBAEzBmuB,EAAYjuB,UAAY,WACtB5J,EAAQG,KAAR,4BAAA7I,OAAyCiD,KAE3Cs9B,EAAY/tB,QAAU,WACpBzO,EAAKmB,SAAS,CAAEZ,SAAS,IACzB46B,GAA8B,CAAEj8B,GAAI28B,EAAO38B,GAAIk8B,eAAe,CAC5DlrB,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4EAO7B,GAAIw0B,EAAOjuB,QAAU0c,GAAaC,OAAO3c,MAAO,CAC9C,IAAMsI,EACJ1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,qEAAApM,OAEA8kB,EAAQ7Z,MAFR,SAAAjL,OAEqB8/B,EAFrB,sBAAA9/B,OAEsDigC,EAFtD,MAOFM,EAAYruB,SAAWA,EACvBquB,EAAYpuB,SAAW,iBACvBouB,EAAYjuB,UAAY,WACtBvO,EAAKmB,SAAS,CAAEZ,SAAS,IACzB46B,GAA8B,CAAEj8B,GAAI28B,EAAO38B,GAAIk8B,eAAe,CAC5DlrB,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,4EAO7B4O,GAAQsuB,IA1bSx8B,EA6bnBg8B,gBAAkB,SAACH,GAAW,IAE1B9a,EAEE8a,EAFF9a,QACA+a,EACED,EADFC,MAIIC,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAE7E5tB,GAAQ,CACNpK,MAAO,gBACPqK,SACE1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,wDAC2D0Y,EAAQ7Z,MADnE,QAC+E60B,EAD/E,IAEEt4B,EAAA1B,EAAAC,cAAA,uDAGJoM,SAAU,oBACVE,QAAS,aACTvH,MAAO,UACPwH,UAAW,WACTysB,GAAUa,EAAO38B,GAAI28B,EAAQ,CAC3B3rB,UAAW,WAAM,IACPvL,EAAY3E,EAAKwC,MAAjBmC,QACRA,EAAQG,KAAK,gBACb1F,aAAqB,+BACrBuF,EAAQG,KAAR,qBAAA7I,OAAkC4/B,EAAO38B,MAE3CyC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,6CA/dZU,EAuenBykC,eAAiB,SAAC5I,GAAW,IAEzB9a,EAEE8a,EAFF9a,QACA+a,EACED,EADFC,MAIIC,EAAe,IAAIvf,KAAKC,eAAe,QAD/B,CAAEC,UAAW,UACkCnB,OAAO,IAAIrG,KAAK4mB,IAE7E5tB,GAAQ,CACNpK,MAAO,eACPqK,SACE1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,uDAC0D0Y,EAAQ7Z,MADlE,QAC8E60B,EAD9E,IAEEt4B,EAAA1B,EAAAC,cAAA,4DAGJoM,SAAU,mBACVE,QAAS,aACTvH,MAAO,UACPwH,UAAW,WZ1eV,IAAkBrP,EAAI+7B,EAAM3f,EAAVpc,EY2eR28B,EAAO38B,GZ3eK+7B,EY2eDY,EZ3eOvgB,EY2eC,CAC1BpL,UAAW,WAAM,IACPvL,EAAY3E,EAAKwC,MAAjBmC,QACRA,EAAQG,KAAK,gBACb1F,aAAqB,+BACrBuF,EAAQG,KAAR,qBAAA7I,OAAkC4/B,EAAO38B,MAE3CyC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,uBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,uCZvfxBL,aAAM,GAAAhD,OAAIP,KAAJ,SAAqBwD,EAAI+7B,GACnCn9B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SY3BpCiC,EAihBnB0kC,iBAAmB,WAAM,IAAAlwB,EAMnBxU,EAAKwC,MAJPtD,EAFqBsV,EAErBtV,GACA40B,EAHqBtf,EAGrBsf,OACAnvB,EAJqB6P,EAIrB7P,QAJqBggC,EAAAnwB,EAKrBowB,wBALqB,IAAAD,EAKF,GALEA,EAQvB,OAAKzlC,GAAO,CAACqjB,GAAaC,OAAO3c,MAAO0c,GAAaI,cAAc9c,OAAO2e,SAASsP,EAAOjuB,OAInF++B,EAAiBxqB,OAAO,SAAA1G,GAAC,OAAIA,EAAE7N,QAAUsc,GAAgBC,QAC7Dzb,IAAI,SAAA+M,GAAC,OACJjQ,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,uBACVqB,QAAS,kBAAMiB,EAAQG,KAAR,kCAAA7I,OAA+CiD,MAE9DuE,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,kBACnC,IANH,iBAOiB4P,EAAExM,SAZd,MA1hBQlH,EA2iBnB6kC,YAAc,WAAM,IAAAC,EAMd9kC,EAAKwC,MAJPtD,EAFgB4lC,EAEhB5lC,GACA6hB,EAHgB+jB,EAGhB/jB,QACA+a,EAJgBgJ,EAIhBhJ,MACAhI,EALgBgR,EAKhBhR,OAGF,OAAK50B,GAAO,CAACqjB,GAAaC,OAAO3c,MAAO0c,GAAaI,cAAc9c,OAAO2e,SAASsP,EAAOjuB,OAKxFpC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,0BACVqB,QAAS,kBAAM1D,EAAKg8B,gBAAgB,CAClC98B,KACA6hB,UACA+a,QACAhI,aAGFrwB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,kBAClC,IAXH,iBAJO,MApjBQ9D,EAykBnB+kC,WAAa,WAKX,IAFI/kC,EAAKM,MADP9D,YAGewoC,YACf,OAAO,KANQ,IAAAC,EAcbjlC,EAAKwC,MAJPtD,EAVe+lC,EAUf/lC,GACA6hB,EAXekkB,EAWflkB,QACA+a,EAZemJ,EAYfnJ,MACAhI,EAbemR,EAafnR,OAGF,OAAK50B,GAAO,CAACqjB,GAAaE,QAAQ5c,OAAO2e,SAASsP,EAAOjuB,OAKvDpC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,0BACVqB,QAAS,kBAAM1D,EAAKykC,eAAe,CACjCvlC,KACA6hB,UACA+a,QACAhI,aAGFrwB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,eAAeyB,MAAM,iBACpC,IAXH,gBAJO,MA1lBQ9D,EA+mBnBklC,eAAiB,WAAM,IAAAC,EAIjBnlC,EAAKwC,MAFPtD,EAFmBimC,EAEnBjmC,GACAyF,EAHmBwgC,EAGnBxgC,QAGF,OAAKzF,EAKHuE,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,uBACVqB,QAAS,kBAAMiB,EAAQG,KAAR,gCAAA7I,OAA6CiD,MAE5DuE,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,8BACnC,IANH,6BAJO,MAtnBQ9D,EAsoBnBolC,yBAA2B,WAAM,IAAAC,EAO3BrlC,EAAKwC,MALPtD,EAF6BmmC,EAE7BnmC,GACA40B,EAH6BuR,EAG7BvR,OACAnvB,EAJ6B0gC,EAI7B1gC,QAJ6B2gC,EAAAD,EAK7BT,wBAL6B,IAAAU,EAKV,GALUA,EAAAC,EAAAF,EAM7B1B,kBAN6B,IAAA4B,EAMhB,GANgBA,EAS/B,OAAKrmC,GAAuB,IAAjB40B,EAAOjuB,OAIU89B,EAAWrkB,KAAK,SAAAgO,GAAA,OAAAA,EAAGgR,UAA0Bz4B,QAAUsc,GAAgBE,gBAK5FuiB,EAAiBxqB,OAAO,SAAA1G,GAAC,OAAIA,EAAE7N,QAAUsc,GAAgBE,gBAC7D1b,IAAI,SAAA+M,GAAC,OACJjQ,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,uBACVqB,QAAS,kBAAMiB,EAAQG,KAAR,0CAAA7I,OAAuDiD,MAEtEuE,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,kBACnC,IANH,iBAOiB4P,EAAExM,SAjBd,MAhpBQlH,EAsqBnBwlC,+BAAiC,WAAM,IAAAC,EAOjCzlC,EAAKwC,MALPtD,EAFmCumC,EAEnCvmC,GACA40B,EAHmC2R,EAGnC3R,OACAoI,EAJmCuJ,EAInCvJ,QACAJ,EALmC2J,EAKnC3J,MALmC4J,EAAAD,EAMnC1kB,eANmC,IAAA2kB,EAMzB,GANyBA,EASrC,OAAKxmC,EAKHuE,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,uBACVqB,QAAS,kBAAM1D,EAAKqkC,8BAA8B,CAChDnlC,KACA6hB,UACA+a,QACAI,UACApI,aAGFrwB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,+BACnC,IAZH,8BAJO,MAhrBQ9D,EAssBnB48B,gBAAkB,kBAChBn5B,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMrE,MAAO,CAAEid,aAAc,SACpCxgB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,YACA1sB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,YACN6f,MAAI,GAHN,mBAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,OACN6f,MAAI,GAHN,UAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,UACN6f,MAAI,GAHN,WAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,SACN6f,MAAI,GAHN,+BA9tBN5mB,EAAK+jC,oBAAsB/jC,EAAK+jC,oBAAoBpvB,KAAzBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC3BA,EAAKgkC,mBAAqBhkC,EAAKgkC,mBAAmBrvB,KAAxBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC1BA,EAAKikC,sBAAwBjkC,EAAKikC,sBAAsBtvB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAE7BA,EAAKM,MAAQ,CACXC,SAAS,EACT/D,YAAaC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GAChE+mC,WAAYnhC,EAAMmhC,YAGpB3jC,EAAKyY,WAAa,SAACL,GAAkB,IAAbvR,EAAamG,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACxBjG,EAAQ,cAEZ,GAAIqR,EAAIutB,gBAAiB,CACvB,IAAM9/B,EAAQuS,EAAIvR,GAEN,yBAARA,GAAkChB,IAAUuS,EAAIwtB,oBAClD7+B,EAAQ,OAGE,iBAARF,GAA0BhB,IAAUuS,EAAIytB,YAC1C9+B,EAAQ,OAIZ,MAAO,CACLsS,SAAU,OACV9I,MAAO,OACPC,OAAQ,OACRzJ,QACAopB,UAAW,SACXnZ,WAAY,SAKhBhX,EAAK8lC,gBAAkB,CACrBzsB,SAAU,OACV7I,OAAQ,OACRzJ,MAAO,OACPopB,UAAW,SACXnZ,WAAY,QAIdhX,EAAK6Z,QAAU,SAAA2Q,GAAA,IAAGub,EAAHvb,EAAGub,QAASrJ,EAAZlS,EAAYkS,UAAZ,MAA4B,CAQzC,CACE71B,IAAK,kBACL9H,KAAM,aACNub,QAAQ,EACR7a,KAAM,SACN8Q,MAAO,SAET,CACE1J,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,MAAK,GAAAnc,OAAGmc,EAAIuG,SAAP,MAAA1iB,OAAoBmc,EAAIsG,QAASmK,SAEnD,CACEhiB,IAAK,QACL9H,KAAM0E,EAAA1B,EAAAC,cAAA,8BACNsY,QAAQ,EAERiB,OAAQ,SAAAwS,GAAA,IAAGsQ,EAAHtQ,EAAGsQ,iBAAkB2H,EAArBjY,EAAqBiY,mBAArB,SAAA/pC,OACH0gB,GAAiB0hB,GADd,OAAApiC,OACqC+pC,KAG/C,CACEn/B,IAAK,kBACL9H,KAAM,YACNub,QAAQ,EACRjY,UAAW,cACXkZ,OAAQ,SAAA+O,GAAuB,IAApBprB,EAAoBorB,EAApBprB,GAAIo/B,EAAgBhU,EAAhBgU,UACTv3B,EAAQ,SASZ,OARwB,IAApBu3B,EAAUz4B,QACZkB,EAAQ,QAGc,IAApBu3B,EAAUz4B,QACZkB,EAAQ,WAIRtD,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,GAAA5K,OAAKiD,EAAL,KAAAjD,OAAWqiC,EAAUz4B,OAASpG,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACxF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,aAAAjD,OAAeiD,EAAf,KAAAjD,OAAqBqiC,EAAUz4B,OACjCA,MAAOy4B,EAAUp3B,MACjBA,MAAOo3B,EAAUp3B,MACjBL,IAAG,aAAA5K,OAAeiD,EAAf,KAAAjD,OAAqBqiC,EAAUz4B,OAClCkB,MAAOA,QAQrB,CACEF,IAAK,oBACL9H,KAAM,uBACNub,QAAQ,EACRhC,UAAU,EACVjW,UAAW,cACXkZ,OAAQ,SAAAyV,GAEF,IADJ9xB,EACI8xB,EADJ9xB,GAAIymC,EACA3U,EADA2U,gBAAiBC,EACjB5U,EADiB4U,kBAAmB9S,EACpC9B,EADoC8B,qBAAsB+S,EAC1D7U,EAD0D6U,UAAWhT,EACrE7B,EADqE6B,aAEnEoT,EAAaN,EAAkBC,EAAoB9S,EACnDiM,EAAK4G,EAAkBE,EAAYhT,EACzC,OACEpvB,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAC9C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,MAAA5K,OAAQiD,EAAR,KAAAjD,OAAcgqC,GAAcxmC,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACtF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,cAAAjD,OAAgBiD,GAClB2G,MAAK,GAAA5J,OAAKgqC,GACV/+B,MAAK,GAAAjL,OAAKgqC,GACVp/B,IAAG,MAAA5K,OAAQiD,EAAR,KAAAjD,OAAcgqC,GACjBl/B,MAAM,eAPZ,IAWEtD,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,OAAA5K,OAASiD,EAAT,KAAAjD,OAAe8iC,GAAMt/B,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAC/E9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,gBAAAjD,OAAkBiD,GACpB2G,MAAK,GAAA5J,OAAK8iC,GACV73B,MAAK,GAAAjL,OAAK8iC,GACVl4B,IAAG,QAAA5K,OAAUiD,EAAV,KAAAjD,OAAgB8iC,GACnBh4B,MAAM,kBAOlB,CACEF,IAAK,uBACL9H,KAAM,eACNub,QAAQ,EACRhC,SAAUytB,EACV1jC,UAAW,cACXoW,WAAY,SAACL,EAAKvR,GAAN,OAAc7G,EAAKyY,WAAWL,EAAKvR,IAC/CpH,KAAM,SACN8N,IAAK,IACLC,IAAK,OAEP,CACE3G,IAAK,eACL9H,KAAM,OACNub,QAAQ,EACRhC,SAAUytB,EACV1jC,UAAW,cACXoW,WAAY,SAACL,EAAKvR,GAAN,OAAc7G,EAAKyY,WAAWL,EAAKvR,IAC/CpH,KAAM,SACN8N,IAAK,IACLC,IAAK,OAEP,CACE3G,IAAK,eACL9H,KAAM,OACNub,QAAQ,EACRhC,SAAUytB,EACV1jC,UAAW,cACXoW,WAAY,SAACL,EAAKvR,GAAN,OAAc7G,EAAKyY,WAAWL,EAAKvR,IAC/CpH,KAAM,SACN8N,IAAK,IACLC,IAAK,OAEP,CACE3G,IAAK,eACL9H,KAAM,OACNub,QAAQ,EACRhC,UAAU,EACVjW,UAAW,cACXoW,WAAY,SAACL,EAAKvR,GAAN,OAAc7G,EAAKyY,WAAWL,EAAKvR,IAC/CpH,KAAM,SACN8N,IAAK,IACLC,IAAK,MACL+N,OAAQ,SAAA4V,GAAwC,IAArCjyB,EAAqCiyB,EAArCjyB,GAAIwgC,EAAiCvO,EAAjCuO,aAAc1B,EAAmB7M,EAAnB6M,aACrBkI,EAAQjkB,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,GACpE,OACEv6B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAC9C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,MAAA5K,OAAQiD,EAAR,KAAAjD,OAAcyjC,GAAgBjgC,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MACxF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACEngB,GAAE,cAAAjD,OAAgBiD,GAClB2G,MAAK,GAAA5J,OAAKyjC,GACVx4B,MAAK,GAAAjL,OAAKyjC,GACV74B,IAAG,MAAA5K,OAAQiD,EAAR,KAAAjD,OAAcyjC,GACjB34B,MAAOm/B,EAAMn/B,YAOzB,CACEF,IAAK,eACL9H,KAAM0E,EAAA1B,EAAAC,cAAA,+BACNsY,QAAQ,EACRhC,UAAU,EACV7Y,KAAM,SACN4C,UAAW,cACXoW,WAAY,kBAAMzY,EAAK8lC,iBACvBv4B,IAAK,IACLC,IAAK,IACLC,KAAM,IACN8N,OAAQ,SAAAgW,GAAA,IAAGryB,EAAHqyB,EAAGryB,GAAI8+B,EAAPzM,EAAOyM,aAAP,OAA0Bh+B,EAAK+9B,UAAU,CAC/C7+B,KACA8+B,aAAc/b,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,OAGxE,CACEn3B,IAAK,UACL9H,KAAM,SACNwR,MAAO,OACPoJ,QAAS+iB,GAAaqJ,KAG1B/lC,EAAKwb,QAAU,SAAAkW,GAAA,IAAGgL,EAAHhL,EAAGgL,UAAH,MAAmB,CAChC,CACE71B,IAAK61B,EAAY,OAAS,GAC1Bv5B,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,gBACzCwX,SAAU,SAACwc,GACT93B,EAAK+jC,oBAAoBjM,KAG7B,CACEjxB,IAAK61B,EAAY,SAAW,GAC5Bv5B,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,gBAC1CwX,SAAU,SAACwc,GACT93B,EAAKikC,sBAAsBnM,OAhPhB93B,wEA4uBV,IAAAS,EAAAP,KAAA2B,EAIH3B,KAAKI,MAFP9D,EAFKqF,EAELrF,YAIF,GANOqF,EAGLtB,QAIA,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAPF,IAAAumB,EAmCHjmC,KAAKsC,MAxBPtD,EAXKinC,EAWLjnC,GACAwR,EAZKy1B,EAYLz1B,WACAN,EAbK+1B,EAaL/1B,aACAyU,EAdKshB,EAcLthB,OAdKuhB,EAAAD,EAeL7Z,kBAfK,IAAA8Z,EAeQ,GAfRA,EAgBLvlB,EAhBKslB,EAgBLtlB,SACAwlB,EAjBKF,EAiBLE,SACAhhB,EAlBK8gB,EAkBL9gB,gBACAihB,EAnBKH,EAmBLG,iBACA3d,EApBKwd,EAoBLxd,iBACA4d,EArBKJ,EAqBLI,iBACAjL,EAtBK6K,EAsBL7K,eACAxH,EAvBKqS,EAuBLrS,OACAoI,EAxBKiK,EAwBLjK,QACAsK,EAzBKL,EAyBLK,mBACA1K,EA1BKqK,EA0BLrK,MACAyH,EA3BK4C,EA2BL5C,uBA3BKkD,EAAAN,EA4BL3T,eA5BK,IAAAiU,EA4BK,GA5BLA,EAAAC,EAAAP,EA6BL/O,eA7BK,IAAAsP,EA6BK,GA7BLA,EAAAC,EAAAR,EA8BLS,sBA9BK,IAAAD,EA8BY,GA9BZA,EAAAE,EAAAV,EA+BLplB,eA/BK,IAAA8lB,EA+BK,GA/BLA,EAAAC,EAAAX,EAgCL9C,mBAhCK,IAAAyD,EAgCS,GAhCTA,EAAAC,EAAAZ,EAiCL7C,2BAjCK,IAAAyD,EAiCiB,GAjCjBA,EAkCLpD,EAlCKwC,EAkCLxC,WAGIjH,EAAYlgC,EAAY2M,SAAW3M,EAAYyM,cAE/C88B,EAA2B,IAAjBjS,EAAOjuB,OAAe62B,EAEtC,OACEj5B,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,sBAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAASqwB,EACT7/B,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,MAGzD3gB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,UAAUU,KAAK,OAAOoG,MAAO2sB,EAAQtrB,MAAOqE,UAAQ,OAK5E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,mBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ0jC,EAEGtiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW6G,GACXtK,YAAY,kBACZS,aAAa,QACbkI,QAASuwB,EACT//B,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,iBAAkB,mBAAoBjB,MAGvE3gB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,iBAAiBU,KAAK,OAAOoG,MAAO+gC,EAAe1/B,MAAOqE,UAAQ,OAKxF9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ0jC,EAEGtiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6K,EACTra,SAAU,SAAA4d,GAAC,OAAIkiB,EAAiB,UAAW,mBAAoBliB,MAGjE3gB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,UAAUU,KAAK,OAAOoG,MAAOkb,EAAQ7Z,MAAOqE,UAAQ,OAK1E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ0jC,EAEGtiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW6G,GACXtK,YAAY,gBACZS,aAAa,QACbkI,QAASsW,IAGX7oB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,cAAcU,KAAK,OAAOoG,MAAOw9B,EAAYn8B,MAAOqE,UAAQ,OAKlF9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,oBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ0jC,EAEGtiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,mBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,MAG3D3gB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,cAAcU,KAAK,OAAOoG,MAAOw9B,EAAYn8B,MAAOqE,UAAQ,OAKlF9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACZ0jC,EAEGtiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,sBACL+R,UAAW6G,GACXtK,YAAY,gBACZS,aAAa,QACbkI,QAASsW,IAGX7oB,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,sBAAsBU,KAAK,OAAOoG,MAAOy9B,EAAoBp8B,MAAOqE,UAAQ,OAKlG9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IAErB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,mBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW1D,GACXC,YAAY,kBACZS,aAAa,QACbrO,KAAMsmC,EAAU,iBAAmB,OACnCx6B,UAAWw6B,EACXxqB,OAAQ,SAAA1V,GAAK,OAAKkgC,EAAUlgC,EAAQpF,EAAK8a,OAAO1V,IAChDkT,OAAQ,SAAA4Y,GAAA,IAAG5hB,EAAH4hB,EAAG5hB,OAAH,OAAgB4Y,EAAiB,CAAE5Y,cAI7CtM,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,QAAQU,KAAK,OAAOoG,MAAOiP,GAAWgnB,GAAQvwB,UAAQ,OAK9E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IAErB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,yBACL+R,UAAW1D,GACXC,YAAY,iCACZS,aAAa,QACbrO,KAAMsmC,EAAU,iBAAmB,OACnCx6B,UAAWw6B,EACXxqB,OAAQ,SAAA1V,GAAK,OAAKkgC,EAAUlgC,EAAQpF,EAAK8a,OAAO1V,IAChDkT,OAAQ,SAAAiuB,GAAA,IAAGj3B,EAAHi3B,EAAGj3B,OAAH,OAAgB4Y,EAAiB,CAAE5Y,cAI7CtM,EAAA1B,EAAAC,cAAA,SACEjD,KAAK,yBACLU,KAAK,OACLoG,MAAOiP,GAAWyuB,GAClBh4B,UAAQ,OAOtB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,sBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,qBACZS,aAAa,QACbkI,QAASslB,IAGX73B,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,UAAUU,KAAK,OAAOoG,MAAOuxB,EAAQlwB,MAAOqE,UAAQ,OAK5E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW1D,GACX3N,KAAK,OACL6N,UAAW,IACXD,YAAY,oBACZS,aAAa,UAGfrK,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,UAAUU,KAAK,OAAOoG,MAAOq2B,EAAS3wB,UAAQ,OAKtE9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,yBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BAEX0jC,EAEItiC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,qBACL+R,UAAW1D,GACX3N,KAAK,WACL6N,UAAW,KACXD,YAAY,wBACZS,aAAa,UAGfrK,EAAA1B,EAAAC,cAAA,SAAOjD,KAAK,qBAAqBU,KAAK,OAAOoG,MAAO2gC,EAAoBj7B,UAAQ,QAM9F9H,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,IACZ0jC,GACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAQF3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,qBAMC3kB,KAAK2kC,cACL3kC,KAAK6kC,aACL7kC,KAAKwkC,mBACLxkC,KAAKklC,2BACLllC,KAAKslC,iCACLtlC,KAAKglC,kBAERzhC,EAAA1B,EAAAC,cAAA,WACC9C,GACCuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACZ0jC,GACCtiC,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVqB,QAAS,kBAAMjD,EAAKujC,uBAEpBvgC,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,+BALf,4BASJoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,wCACN+V,QAAS3Z,KAAK2Z,QAAQ,CACpBksB,QAA0B,IAAjBjS,EAAOjuB,MAChB62B,cAEF5iB,MAAO6pB,EACP3wB,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBt2B,cAAe,GACf2S,oBAAkB,KAIxBrc,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACZ0jC,GACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAQF3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCA5nCS5hB,iBAAjBugC,GAgCG97B,aAAe,CACpBxI,GAAI,EACJwR,YAAY,EACZwrB,QAAS,GACTsK,mBAAoB,GACpBI,eAAgB,GAChB9S,OAAQ,GACRsD,QAAS,GACTkM,oBAAqB,GACrBD,YAAa,GACbtiB,QAAS,GACTyR,QAAS,GACTmR,WAAY,IA8lChB,IAMeh3B,MANO0E,aAAU,CAC9BC,KAAM,WACNnC,YACA2Q,oBAAoB,GAHAzO,CAInBmyB,KC5sBYyD,eAhdb,SAAAA,EAAYzkC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA+mC,IACjBjnC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA8pC,GAAA5mC,KAAAH,KAAMsC,KAiBR0kC,iBAAmB,WAAM,IAAA5jC,EACCtD,EAAKwC,MAArBtD,EADeoE,EACfpE,GAAIyF,EADWrB,EACXqB,QAEZ,IAAKzF,EAaH,OAZAc,EAAKmB,SAAS,CACZ85B,KAAM,CACJ/7B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,cAClB5D,wBAAwB,IAAIruB,MAAOiyB,cACnCrT,OAAQ,CAAEjuB,MAAO,IAEnB89B,WAAY,UAGd3jC,EAAKie,iBAKPje,EAAKmB,SAAS,CACZZ,SAAS,IblCR,SAAmBrB,EAAIoc,GACrBnd,aAAM,GAAAlC,OAAIP,KAAJ,KAAAO,OAAgBiD,IAC1BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,Ka2BrDqpC,CAAUloC,EAAI,CACZgR,UAAW,SAACiZ,GAAQ,IACVpI,EAAYoI,EAAZpI,QACAsiB,EAAqCla,EAArCka,YAAaC,EAAwBna,EAAxBma,oBACfrI,EAAI99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACLgsB,EADK,CAERka,YAAa,CACXx9B,MAAOsjB,EAAIke,cACXngC,MAAK,GAAAjL,OAAKonC,IAEZhW,SAAU,CACRxnB,MAAOsjB,EAAIme,WACXpgC,MAAK,GAAAjL,OAAKktB,EAAIkE,WAEhBiW,oBAAqB,CACnBz9B,MAAOsjB,EAAIoe,sBACXrgC,MAAK,GAAAjL,OAAKqnC,IAEZviB,QAAS,CACPlb,MAAOsjB,EAAI0C,iBACX3kB,MAAK,GAAAjL,OAAK8kB,IAEZyR,QAAS,CACP3sB,MAAOsjB,EAAIqe,UACXtgC,MAAOiiB,EAAIqJ,SAEb4E,QAAS,CACPvxB,MAAOsjB,EAAIiO,QACXlwB,MAAOiiB,EAAIiO,SAEbwP,eAAgB,CACd/gC,MAAOsjB,EAAIse,iBACXvgC,MAAOiiB,EAAIyd,kBAIPjD,EAAexa,EAAfwa,WACJ1I,EAAK0I,mBACA1I,EAAK0I,WAGd3jC,EAAKmB,SAAS,CACZ85B,OACA0I,aACApjC,SAAS,IAGXP,EAAKie,eAAekL,EAAIse,mBAE1B9lC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZZ,SAAS,IAGPxC,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,iBAEbxF,aAAmB,qDAnGRU,EAyGnBie,eAAiB,WAAuB,IAAtBid,EAAsBluB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAN,EAChChN,EAAKmB,SAAS,CACZZ,SAAS,IAGX2d,GAAegd,EAAe,CAC5BhrB,UAAW,SAAA/T,GAAA,IACTkqC,EADSlqC,EACTkqC,SACAxlB,EAFS1kB,EAET0kB,SACAyL,EAHSnwB,EAGTmwB,WACAia,EAJSpqC,EAIToqC,iBACAjL,EALSn/B,EAKTm/B,eACAsJ,EANSzoC,EAMTyoC,iBANS,OAOL5kC,EAAKmB,SAAS,CAClBklC,WACAxlB,WACAyL,aACAia,mBACAjL,iBACAsJ,mBACArkC,SAAS,KAEXoB,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,IAEXjB,aAAmB,qDAnINU,EAwInBoQ,aAAe,SAAChB,GAAW,IbpGJ6rB,EAAM3f,EasGzBpc,EAUEkQ,EAVFlQ,GACA6hB,EASE3R,EATF2R,QACAsiB,EAQEj0B,EARFi0B,YACAhW,EAOEje,EAPFie,SACAiW,EAMEl0B,EANFk0B,oBACAxH,EAKE1sB,EALF0sB,MACAyH,EAIEn0B,EAJFm0B,uBACAiD,EAGEp3B,EAHFo3B,mBACAkB,EAEEt4B,EAFFs4B,KACAxL,EACE9sB,EADF8sB,QAGarQ,EAAqB9K,EAA5Blb,MACOwhC,EAAkBhE,EAAzBx9B,MACOyhC,EAAeja,EAAtBxnB,MACkBuxB,EAAchoB,EAAhCgoB,QAAWlwB,MACJqgC,GAA2BjE,GAAuB,IAAzDz9B,MAEFhJ,EAAS,CACbqC,KACA48B,MAAOpe,GAAeoe,GACtByH,uBAAwB7lB,GAAe6lB,GACvC1X,mBACAwb,gBACAC,aACAC,wBACAnQ,UACAoP,qBACAkB,OACAxL,WAGMv3B,EAAY3E,EAAKwC,MAAjBmC,QAER3E,EAAKmB,SAAS,CACZZ,SAAS,IbzIU06B,Ea4IZp+B,Eb5IkBye,Ea4IV,CACfpL,UAAW,WACT9Q,aAAqB,gCACrBuF,EAAQG,KAAK,iBAEfnD,QAAS,WAAgB,IAAf5D,EAAeiP,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAChBhN,EAAKmB,SAAS,CACZZ,SAAS,IAEPxC,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,sDbvJpBN,aAAO,GAAA/C,OAAIP,MAAYu/B,GAC3Bn9B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,Ma9CpCiC,EAkMnBkkC,wBAA0B,SAACpM,GACzB,IAAM/4B,EAAI,GAAA9C,OAAM67B,EAAYpZ,OAAlB,KAAAziB,OAA4B67B,EAAYnZ,UAClDzQ,GAAQ,CACNpK,MAAO,kCACPqK,SAAQ,4DAAAlS,OAAwD8C,EAAxD,KACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,WXjIV,IAAiCrP,EAAIoc,EWkIpCtb,EAAKmB,SAAS,CACZZ,SAAS,IXnIqBrB,EWqIR44B,EAAY54B,GXrIAoc,EWqII,CACtCpL,UAAW,WACTlQ,EAAKmB,SAAS,CACZZ,SAAS,IAEXnB,aAAqB,+BACrBY,EAAKknC,oBAEPvlC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZZ,SAAS,IAEPxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,yCAEnBA,aAAmB,uDXnJxBH,aAAS,GAAAlD,OAAIH,KAAJ,KAAAG,OAA4BiD,IACzCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SWlFpCiC,EAoOnB8jC,8BAAgC,SAAApY,GAE1B,IX7KgCtB,EAAa9O,EW4KjDuoB,EACInY,EADJmY,cAAe/Q,EACXpH,EADWoH,qBAAsB4M,EACjChU,EADiCgU,aAAcD,EAC/C/T,EAD+C+T,aAAc5M,EAC7DnH,EAD6DmH,aAAcmL,EAC3EtS,EAD2EsS,aX5K3C5T,EW8KZ,CACtByZ,gBAAe/Q,uBAAsB4M,eAAcD,eAAc5M,eAAcmL,gBX/KhC1iB,EWgL9C,CACDpL,UAAW,SAAC4nB,GAAgB,IAClB6L,EAAe3jC,EAAKM,MAApBqjC,WAEFgE,EAAaxqC,OAAAmrB,GAAA,EAAAnrB,CAAOwmC,GACpB1B,EAAgB0F,EAActY,UAAU,SAAAhV,GAAC,OAAIA,EAAEnb,KAAO44B,EAAY54B,KAExEyoC,EAAc1F,GAAiBnK,EAE/B93B,EAAKmB,SAAS,CACZwiC,WAAYgE,IAGdvoC,aAAqB,mDAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,oEXlMpBN,aAAO,GAAA/C,OAAIH,KAAJ,iBAAyCsuB,GACpDtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MWnEpCiC,EAkQnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UApQShoB,EAuQnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GAAU,IAAA+hC,EAC1C3M,EAASj7B,EAAKM,MAAd26B,KACR,GAAc,cAAV9S,EAAJ,CAwBuB,IAAA0f,EADvB,GAAc,qBAAV1f,EACF,OAAItiB,EAAMA,MAAQ,GAChB7F,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,GADD4M,EAAA,GAAA1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAED1f,EAAQtiB,EAAMA,OAFb1I,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAGD3f,EAAYriB,GAHX1I,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,mBAKgB,GALhB1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,UAMO,CAAEhiC,MAAO,EAAGqB,MAAO,MAN1B/J,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,gBAQa,GARb1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,cASW,CAAEhiC,MAAO,EAAGqB,MAAO,MAT9B/J,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,aAWU,GAXV1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,WAYQ,CAAEhiC,MAAO,EAAGqB,MAAO,MAZ3B2gC,WAgBN7nC,EAAKie,eAAepY,EAAMA,aAI5B7F,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,EADD,CAEFpP,iBAAkB,EAClB9K,QAAS,CAAElb,MAAO,EAAGqB,MAAO,KAE5BugC,iBAAkB,EAClBb,eAAgB,CAAE/gC,MAAO,EAAGqB,MAAO,KAEnCmgC,cAAe,EACfhE,YAAa,CAAEx9B,MAAO,EAAGqB,MAAO,KAEhCogC,WAAY,EACZja,SAAU,CAAExnB,MAAO,EAAGqB,MAAO,SAOnClH,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,GADD2M,EAAA,GAAAzqC,OAAA2S,GAAA,EAAA3S,CAAAyqC,EAEDzf,EAAQtiB,EAAMA,OAFb1I,OAAA2S,GAAA,EAAA3S,CAAAyqC,EAGD1f,EAAYriB,GAHX+hC,UAnEN,CAA2B,IAAAE,EACzB9nC,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,GADD6M,EAAA,GAAA3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAED3f,EAAQtiB,EAAMA,OAFb1I,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAGD5f,EAAYriB,GAHX1I,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,mBAKgB,GALhB3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,UAMO,CAAEjiC,MAAO,EAAGqB,MAAO,MAN1B/J,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,mBAQgB,GARhB3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,iBASc,CAAEjiC,MAAO,EAAGqB,MAAO,MATjC/J,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,gBAWa,GAXb3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,cAYW,CAAEjiC,MAAO,EAAGqB,MAAO,MAZ9B/J,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,aAcU,GAdV3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAAA,WAeQ,CAAEjiC,MAAO,EAAGqB,MAAO,MAf3B4gC,QA3QS9nC,EAoVnB+nC,gBAAkB,SAACP,GAAc,IACvB3mB,EAAa7gB,EAAKM,MAAlBugB,SACR,OAAKA,GAAa2mB,EAIX3mB,EAASzG,OAAO,SAAAgH,GAAC,OAAIA,EAAEmH,WAAaif,IAHlC,IAvVQxnC,EA6VnBgoC,sBAAwB,SAAC9f,EAAWC,EAAOtiB,GAAU,IAAAoiC,EAC3ChN,EAASj7B,EAAKM,MAAd26B,KACFiN,EAAeriC,EAAM6Y,OAAN,GAAAziB,OAAkB4J,EAAM6Y,OAAxB,KAAAziB,OAAkC4J,EAAM8Y,UAAa,GACpE0oB,EAA+BpM,EAA/BoM,cAAehE,EAAgBpI,EAAhBoI,YAOnBA,EALGgE,EAKW,CAAExhC,MADhBwhC,EAAgB,EACsBngC,MAAOghC,GAH/B,CAAEriC,MADhBwhC,EAAgBxhC,EAAMuvB,UACgBluB,MAAOghC,GAM/CloC,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,GADDgN,EAAA,GAAA9qC,OAAA2S,GAAA,EAAA3S,CAAA8qC,EAED9f,EAAQtiB,EAAMA,OAFb1I,OAAA2S,GAAA,EAAA3S,CAAA8qC,EAGD/f,EAAYriB,GAHX1I,OAAA2S,GAAA,EAAA3S,CAAA8qC,EAAA,WAIQ,CAAEpiC,MAAOA,EAAMuvB,UAAWluB,MAAOghC,IAJzC/qC,OAAA2S,GAAA,EAAA3S,CAAA8qC,EAAA,cAKF5E,GALElmC,OAAA2S,GAAA,EAAA3S,CAAA8qC,EAAA,gBAMFZ,GANEY,OA3WWjoC,EAsXnB2oB,iBAAmB,SAAA2E,GAEb,IADJvd,EACIud,EADJvd,OAEMlK,EAAwB,WAAhBkK,EAAOtQ,KACjBgH,OAAOsJ,EAAOlK,OACd,GAAA5J,OAAG8T,EAAOlK,OAAQgjB,OAEtB7oB,EAAKmB,SAAS,SAAAgnC,GAAI,MAAK,CACrBlN,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACAgrC,EAAKlN,KADN99B,OAAA2S,GAAA,EAAA3S,CAAA,GAGC4S,EAAOhR,KAAO8G,QA/XrB7F,EAAKM,MAAQ,CACX26B,KAAM,GACN0I,WAAY,GACZiB,iBAAkB,GAClBrkC,SAAS,GAGXP,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKgoC,sBAAwBhoC,EAAKgoC,sBAAsBrzB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC7BA,EAAKkkC,wBAA0BlkC,EAAKkkC,wBAAwBvvB,KAA7BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAXdA,mFAejBE,KAAKgnC,oDAwXE,IAAA18B,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAWH3B,KAAKI,MARP26B,EAHKp5B,EAGLo5B,KACA3O,EAJKzqB,EAILyqB,WAJK8b,EAAAvmC,EAKLwkC,gBALK,IAAA+B,EAKM,GALNA,EAML7B,EANK1kC,EAML0kC,iBACAjL,EAPKz5B,EAOLy5B,eAPK+M,EAAAxmC,EAQL+iC,wBARK,IAAAyD,EAQc,GARdA,EASL1E,EATK9hC,EASL8hC,WACApjC,EAVKsB,EAULtB,QAGF,IAAK06B,GAA4B,IAApBoL,EAAS9/B,QAAgBhG,EACpC,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAGT,IAAMiB,EAAW3gB,KAAK6nC,gBAAgB9M,EAAKuM,WACnC1T,EAAWmH,EAAXnH,OAER,OACErwB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,GAAuB,IAAjB40B,EAAOjuB,OAAe,UAAW3G,GAAM,QAASA,GAAuB,IAAjB40B,EAAOjuB,OAAe,MADrF,WAGApC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACN,GACLnD,GAAuB,IAAjB40B,EAAOjuB,OAAe,cAAe3G,GAAM,WAAYA,GAAuB,IAAjB40B,EAAOjuB,OAAe,OAF5F,kCAOJpC,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJ6R,EAGC7oB,EAAA1B,EAAAC,cAACsmC,GAADnrC,OAAAuP,OAAA,GACMuuB,EADN,CAEE7pB,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAe8tB,EACf0I,WAAYA,EACZh/B,QAASA,EACT2nB,WAAYA,EACZzL,SAAUA,EACVwlB,SAAUA,EACVE,iBAAkBA,EAClBjL,eAAgBA,EAChBsJ,iBAAkBA,EAClBvf,gBAAiBnlB,KAAK+nB,qBACtBqe,iBAAkBpmC,KAAK8nC,sBACvB9D,wBAAyBhkC,KAAKgkC,wBAC9BJ,8BAA+B5jC,KAAK4jC,8BACpCnb,iBAAkBzoB,KAAKyoB,iBACvB7I,oBAAkB,KApBnBrc,EAAA1B,EAAAC,cAAC4d,GAAD,gBA7ae3c,iBCwYjBslC,uBAhZb,SAAAA,EAAY/lC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAqoC,IACjBvoC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAorC,GAAAloC,KAAAH,KAAMsC,KAQR0kC,iBAAmB,SAACsB,GAAoB,IAAAllC,EACdtD,EAAKwC,MAArBtD,EAD8BoE,EAC9BpE,GAAIyF,EAD0BrB,EAC1BqB,QACZ,IAAKzF,EASH,OARAc,EAAKmB,SAAS,CACZ85B,KAAM,CACJ/7B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,sBAItBnnC,EAAKie,iBAIP6c,GAAsB57B,EAAIspC,EAAiB,CACzCt4B,UAAW,SAAC+qB,GACVj7B,EAAKmB,SAAS,CAAE85B,UAElBt5B,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,iBAEbxF,aAAmB,qDAhCRU,EAsCnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAxCShoB,EA2CnByoC,oBAAsB,SAACzK,GACrB,IAAM2B,EAAkB1d,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,GAC9E,OAAO2B,EAAgB95B,MAAQ85B,EAAgBzd,WAAa,KA7C3CliB,EAgDnB0oC,eAAiB,SAAC1K,GAChB,IAAM2B,EAAkB1d,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,GAC9E,OAAQ2B,EAAgB95B,MAAqC,GAA7B85B,EAAgBzd,YAhDhDliB,EAAKM,MAAQ,GAFIN,mFAMjBE,KAAKgnC,iBAAiB/kB,GAAgBC,wCA+C/B,IAAA3hB,EAAAP,KACC+6B,EAAS/6B,KAAKI,MAAd26B,KACR,OAAKA,EAKHx3B,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,kBAAkBqB,QAAS,kBAAMzC,OAAO0nC,UACtEllC,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,gBADf,aAGAoB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK6nB,cAHhB,sBAQFtkB,EAAA1B,EAAAC,cAAA,OACE9C,GAAG,mBACHmD,UAAU,8BACV2E,MAAO,CACL4hC,WAAY,cACZjyB,QAAS,OACT2F,eAAgB,SAChB/L,MAAO,SAGT9M,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQpG,MAAO,OAAQ+L,eAAgB,WAC5D7Y,EAAA1B,EAAAC,cAAA,OACE4B,IAAI,sBACJvB,UAAU,sBAEZoB,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL4hC,WAAY,QAAS5xB,WAAY,OAAQqC,SAAU,SAAUiZ,UAAW,WAF5E,QAAAr2B,OAKWg/B,EAAKiB,UAEhBz4B,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL4hC,WAAY,kBAAmB5xB,WAAY,OAAQqC,SAAU,SAAUiZ,UAAW,WAFtF,4BAKgC2I,EAAKzI,QAAQqW,eAG7CplC,EAAA1B,EAAAC,cAAA,KACE8mC,MAAM,SACN9hC,MAAO,CACLid,aAAc,MAAOqO,UAAW,OAAQyW,WAAY,OAAQC,eAAgB,UAG9EvlC,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAC/BzlC,EAAA1B,EAAAC,cAAA,SACEyB,EAAA1B,EAAAC,cAAA,SAAI,UAAA/F,OAAUg/B,EAAK7D,SAAUyR,cAA7B,SAKRplC,EAAA1B,EAAAC,cAAA,KAAG8mC,MAAM,SAAS9hC,MAAO,CAAEid,aAAc,MAAO8kB,WAAY,SAC1DtlC,EAAA1B,EAAAC,cAAA,YAEFyB,EAAA1B,EAAAC,cAAA,KACEgF,MAAO,CACLmiC,WAAY,SACZC,WAAY,UACZnlB,aAAc,MACd8kB,WAAY,OACZ5Y,UAAW,QACXxZ,QAAS,OACT2F,eAAgB,kBAGlB7Y,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,4BAKRyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKla,SAAU8nB,mBAM9BplC,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,0BAORyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKxI,UAAWoW,cAAczM,QAAQ,WAAY,IAAIkN,gBAOvE7lC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,yBAMNyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAK5N,UAAWwb,kBAK7BplC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,4BAINyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAKoI,aAAcwF,kBAKhCplC,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL+hC,WAAY,OAAQpyB,QAAS,OAAQ2F,eAAgB,gBAAiB2H,aAAc,WAGtFxgB,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,sBAINyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACO6Y,GAAWmmB,EAAKa,YAK7Br4B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,qBAMNyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACOuhB,GAAWyd,EAAKa,aAM/Br4B,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,SAAO9C,GAAG,eACRuE,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBACboB,EAAA1B,EAAAC,cAAA,iBAAA/F,OAAYg/B,EAAKiB,cAMzBz4B,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,SAAOwnC,YAAY,IAAIC,YAAY,IAAIziC,MAAO,CAAEuJ,MAAO,SACrD9M,EAAA1B,EAAAC,cAAA,gBACEyB,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,QACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,OACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,OACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,SAEb9M,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAI0nC,OAAO,OACTjmC,EAAA1B,EAAAC,cAAA,MACE2nC,QAAQ,IACRp5B,MAAM,MACNC,OAAO,KACPxJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAU,eAEVoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAAjC,cAMNzlC,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAQ,IAAIzT,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAC5ChT,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBAAX,qBAGJxlC,EAAA1B,EAAAC,cAAA,MAAI2nC,QAAQ,IAAIp5B,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,cAAgBpU,UAAU,eACtEoB,EAAA1B,EAAAC,cAAA,8BAKJyB,EAAA1B,EAAAC,cAAA,MAAI0nC,OAAO,OACTjmC,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,sBAEFyB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,sBAGHi5B,EAAK0I,WAAWh9B,IAAI,SAACgS,EAAMwI,GAAP,OACnB1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAK8R,EAAKzZ,GAAImD,UAAU,kBAC1BoB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAChChT,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,GAAApG,OACMklB,EAAQ,EADd,MAAAllB,OACoB0c,EAAKgG,SADzB,MAAA1iB,OACsC0c,EAAK+F,UAG7Cjb,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,SAAU1Z,QAAS,WACzChT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACO0c,EAAKqlB,cAAgB,QAIhCv6B,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEyP,QAAS,WACpBhT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACOwE,EAAKgoC,oBAAoB9vB,EAAKqlB,kBAIzCv6B,EAAA1B,EAAAC,cAAA,MACEuO,MAAM,MACNvJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAW5B,EAAKioC,eAAe/vB,EAAKqlB,cAAgB,GAAK,YAEzDv6B,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEyP,QAAS,WACpBhT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACOwE,EAAKioC,eAAe/vB,EAAKqlB,wBAS9Cv6B,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,mCAGFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,yBAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,sBAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,yBAQZyB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UAEEyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAf,+BAnUboB,EAAA1B,EAAAC,cAAC4d,GAAD,aAzDsB3c,kBCsZpBslC,eArZb,SAAAA,EAAY/lC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAqoC,IACjBvoC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAorC,GAAAloC,KAAAH,KAAMsC,KAQR0kC,iBAAmB,SAACsB,GAAoB,IAAAllC,EACdtD,EAAKwC,MAArBtD,EAD8BoE,EAC9BpE,GAAIyF,EAD0BrB,EAC1BqB,QACZ,IAAKzF,EAUH,OATAc,EAAKmB,SAAS,CACZ85B,KAAM,CACJ/7B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,cAClByC,YAAa,WAIjB5pC,EAAKie,iBAIP6c,GAAsB57B,EAAIspC,EAAiB,CACzCt4B,UAAW,SAAC+qB,GAAS,IAAA4O,EACS5O,EAApB0I,WACFiG,QAFa,IAAAC,EACE,GADFA,GAEYljC,IAAI,SAAA+M,GAAC,OAAIA,EAAE4qB,UAAUp3B,QAAO,GAE3DlH,EAAKmB,SAAS,CACZ85B,KAAK99B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACA89B,EADD,CAEF2O,mBAINjoC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,iBAEbxF,aAAmB,qDAzCRU,EA+CnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAjDShoB,EAoDnByoC,oBAAsB,SAACzK,GAErB,OADwB/b,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,IACvD9b,YAtDNliB,EAyDnB8pC,SAAW,SAACjkC,GACV,IAAMkkC,EAAStjC,OAAOZ,GACtB,OAAe,IAAXkkC,EACK,EAGJA,GACI,KAhEQ/pC,EAsEnB0oC,eAAiB,SAAC1K,GAChB,IAAM2B,EAAkB1d,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,GAC9E,OAAiC,IAA1B2B,EAAgB95B,MAAc85B,EAAgBzd,WAAa,IAtElEliB,EAAKM,MAAQ,GAFIN,mFAMjBE,KAAKgnC,iBAAiB/kB,GAAgBE,gDAqE/B,IAAA5hB,EAAAP,KACC+6B,EAAS/6B,KAAKI,MAAd26B,KACR,OAAKA,EAKHx3B,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,kBAAkBqB,QAAS,kBAAMzC,OAAO0nC,UACtEllC,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,gBADf,aAGAoB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK6nB,cAHhB,sBAQFtkB,EAAA1B,EAAAC,cAAA,OACE9C,GAAG,mBACHmD,UAAU,8BACV2E,MAAO,CACL4hC,WAAY,cACZjyB,QAAS,OACT2F,eAAgB,SAChB/L,MAAO,SAGT9M,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQpG,MAAO,OAAQ+L,eAAgB,WAC5D7Y,EAAA1B,EAAAC,cAAA,OACE4B,IAAI,sBACJvB,UAAU,sBAEZoB,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL4hC,WAAY,QAAS5xB,WAAY,OAAQqC,SAAU,SAAUiZ,UAAW,WAF5E,QAAAr2B,OAKWg/B,EAAKiB,UAEhBz4B,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL4hC,WAAY,kBAAmB5xB,WAAY,OAAQqC,SAAU,SAAUiZ,UAAW,WAFtF,4BAKgC2I,EAAKzI,SAGrC/uB,EAAA1B,EAAAC,cAAA,KACE8mC,MAAM,SACN9hC,MAAO,CACLid,aAAc,MAAOqO,UAAW,OAAQyW,WAAY,OAAQC,eAAgB,UAG9EvlC,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAC/BzlC,EAAA1B,EAAAC,cAAA,SACEyB,EAAA1B,EAAAC,cAAA,SAAI,UAAA/F,OAAUg/B,EAAK2O,aAAcf,cAAjC,SAKRplC,EAAA1B,EAAAC,cAAA,KAAG8mC,MAAM,SAAS9hC,MAAO,CAAEid,aAAc,MAAO8kB,WAAY,SAC1DtlC,EAAA1B,EAAAC,cAAA,YAEFyB,EAAA1B,EAAAC,cAAA,KACEgF,MAAO,CACLmiC,WAAY,SACZC,WAAY,UACZnlB,aAAc,MACd8kB,WAAY,OACZ5Y,UAAW,QACXxZ,QAAS,OACT2F,eAAgB,kBAGlB7Y,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,4BAKRyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKla,SAAU8nB,mBAM9BplC,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,0BAORyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKxI,UAAWoW,cAAczM,QAAQ,WAAY,IAAIkN,gBAOvE7lC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,yBAMNyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAK5N,UAAWwb,kBAK7BplC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,4BAINyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAKoI,aAAcwF,kBAKhCplC,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL+hC,WAAY,OAAQpyB,QAAS,OAAQ2F,eAAgB,gBAAiB2H,aAAc,WAGtFxgB,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,sBAINyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACO6Y,GAAWmmB,EAAKa,YAK7Br4B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,qBAMNyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACOuhB,GAAWyd,EAAKa,aAM/Br4B,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,SAAO9C,GAAG,eACRuE,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBACboB,EAAA1B,EAAAC,cAAA,iBAAA/F,OAAYg/B,EAAKiB,cAMzBz4B,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,SAAOwnC,YAAY,IAAIC,YAAY,IAAIziC,MAAO,CAAEuJ,MAAO,SACrD9M,EAAA1B,EAAAC,cAAA,gBACEyB,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,QACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,OACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,QAEb9M,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAI0nC,OAAO,OACTjmC,EAAA1B,EAAAC,cAAA,MACEuO,MAAM,MACNC,OAAO,KACPxJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAU,eAEVoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAAjC,cAMNzlC,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAChChT,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBAAX,QAGJxlC,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAChChT,EAAA1B,EAAAC,cAAA,8BAKHi5B,EAAK0I,WAAWh9B,IAAI,SAACgS,EAAMwI,GAAP,OACnB1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAK8R,EAAKzZ,GAAImD,UAAU,kBAC1BoB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAChChT,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,GAAApG,OACMklB,EAAQ,EADd,MAAAllB,OACoB0c,EAAKgG,SADzB,MAAA1iB,OACsC0c,EAAK+F,UAG7Cjb,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,SAAU1Z,QAAS,WACzChT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACOwE,EAAKqpC,SAASnxB,EAAK8mB,kBAI9Bh8B,EAAA1B,EAAAC,cAAA,MACEuO,MAAM,MACNvJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAW5B,EAAKioC,eAAe/vB,EAAKqlB,cAAgB,GAAK,YAEzDv6B,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEyP,QAAS,WACpBhT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACOwE,EAAKioC,eAAe/vB,EAAKqlB,wBAS9Cv6B,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,SAAI,MAENyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,mCAGFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,yBAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,SAAI,MAENyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,2BAQZyB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UAEEyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAf,+BAlTboB,EAAA1B,EAAAC,cAAC4d,GAAD,aA/EsB3c,iBCmapBslC,eAlab,SAAAA,EAAY/lC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAqoC,IACjBvoC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAorC,GAAAloC,KAAAH,KAAMsC,KAQR0kC,iBAAmB,WAAM,IAAA5jC,EACCtD,EAAKwC,MAArBtD,EADeoE,EACfpE,GAAIyF,EADWrB,EACXqB,QACZ,IAAKzF,EASH,OARAc,EAAKmB,SAAS,CACZ85B,KAAM,CACJ/7B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,sBAItBnnC,EAAKie,iBAIP6c,GAAsB57B,EAAI,KAAM,CAC9BgR,UAAW,SAAC+qB,GACVj7B,EAAKmB,SAAS,CAAE85B,UAElBt5B,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQG,KAAK,iBAEbxF,aAAmB,qDAhCRU,EAsCnBgqC,cAAgB,WACdhqC,EAAKmB,SAAS,CACZwnC,OAAO,IAGTvnC,WAAW,WACTH,OAAO0nC,QACP3oC,EAAKmB,SAAS,CACZwnC,OAAO,KAER,KAhDc3oC,EAmDnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UArDShoB,EAwDnByoC,oBAAsB,SAACzK,GAErB,OADwB/b,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUm4B,KAAiB,IACvD9b,YAxDvBliB,EAAKM,MAAQ,GAFIN,mFAMjBE,KAAKgnC,oDAuDE,IAAAzmC,EAAAP,KAAA2B,EACyB3B,KAAKI,MAA7B26B,EADDp5B,EACCo5B,KADDgP,EAAApoC,EACO8mC,aADP,IAAAsB,KAEP,IAAKhP,EACH,OAAOx3B,EAAA1B,EAAAC,cAAC4d,GAAD,MAGT,IAAMsqB,EAAUzmC,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,mBAEhB,OACE5E,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UAAQvC,KAAK,SAAS4C,UAAU,kBAAkBqB,QAASxD,KAAK8pC,eAC9DvmC,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,gBADf,aAGAoB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK6nB,cAHhB,sBAQFtkB,EAAA1B,EAAAC,cAAA,OACE9C,GAAG,mBACHmD,UAAU,8CACV2E,MAAO,CACL4hC,WAAY,cACZjyB,QAAS,OACT2F,eAAgB,SAChB/L,MAAO,SAGT9M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,4BACboB,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CAAE2P,QAASgyB,EAAQ,QAAU,QACpC/kC,IAAI,sBACJvB,UAAU,2BAGZoB,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL4hC,WAAY,kBAAmB5xB,WAAY,OAAQqC,SAAU,SAAUiZ,UAAW,WAFtF,4BAKgC2I,EAAKzI,SAErC/uB,EAAA1B,EAAAC,cAAA,KAAG8mC,MAAM,SAAS9hC,MAAO,CAAEid,aAAc,MAAO8kB,WAAY,OAAQC,eAAgB,UAClFvlC,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAC/BzlC,EAAA1B,EAAAC,cAAA,SACEyB,EAAA1B,EAAAC,cAAA,oCAKRyB,EAAA1B,EAAAC,cAAA,KACE8mC,MAAM,SACN9hC,MAAO,CACLid,aAAc,MAAOqO,UAAW,OAAQyW,WAAY,OAAQC,eAAgB,UAG9EvlC,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAC/BzlC,EAAA1B,EAAAC,cAAA,SACEyB,EAAA1B,EAAAC,cAAA,SAAI,UAAA/F,OAAUg/B,EAAK7D,SAAUyR,cAA7B,SAKRplC,EAAA1B,EAAAC,cAAA,KAAG8mC,MAAM,SAAS9hC,MAAO,CAAEid,aAAc,MAAO8kB,WAAY,SAC1DtlC,EAAA1B,EAAAC,cAAA,YAEFyB,EAAA1B,EAAAC,cAAA,KACEgF,MAAO,CACLmiC,WAAY,SACZC,WAAY,UACZnlB,aAAc,MACd8kB,WAAY,OACZ5Y,UAAW,QACXxZ,QAAS,OACT2F,eAAgB,kBAGlB7Y,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,4BAKRyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKla,SAAU8nB,mBAM9BplC,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,cAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAA,0BAORyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,YACG,IAAA/F,OAAIg/B,EAAKxI,UAAWoW,cAAczM,QAAQ,WAAY,IAAIkN,gBAOvE7lC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,yBAMNyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAK5N,UAAWwb,kBAK7BplC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YACZoB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACT9lC,EAAA1B,EAAAC,cAAA,4BAINyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,QAAMunC,KAAK,SACR,IAAAttC,OAAIg/B,EAAKoI,aAAcwF,kBAKhCplC,EAAA1B,EAAAC,cAAA,MACEgF,MAAO,CACL+hC,WAAY,OAAQpyB,QAAS,OAAQ2F,eAAgB,gBAAiB2H,aAAc,WAGtFxgB,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,sBAINyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACO6Y,GAAWmmB,EAAKa,YAK7Br4B,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,eAC1B5lC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SACjCzlC,EAAA1B,EAAAC,cAAA,qBAMNyB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,MAAM/H,MAAO,CAAEkiC,QAAS,SAAnC,IAAAjtC,OACOuhB,GAAWyd,EAAKa,aAM/Br4B,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,SAAO9C,GAAG,eACRuE,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBACboB,EAAA1B,EAAAC,cAAA,iBAAA/F,OAAYg/B,EAAKiB,cAMzBz4B,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAEZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,SAAOwnC,YAAY,IAAIC,YAAY,IAAIziC,MAAO,CAAEuJ,MAAO,SACrD9M,EAAA1B,EAAAC,cAAA,gBACEyB,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,QACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,OACX9M,EAAA1B,EAAAC,cAAA,OAAKuO,MAAM,QAEb9M,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAI0nC,OAAO,OACTjmC,EAAA1B,EAAAC,cAAA,MACEuO,MAAM,MACNC,OAAO,KACPxJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAU,eAEVoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBACTxlC,EAAA1B,EAAAC,cAAA,QAAM+M,KAAK,IAAI/H,MAAO,CAAEkiC,QAAS,SAAjC,cAMNzlC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,MACZoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBAAgBiB,KAG/BzmC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,MACZoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBAAX,gBAGJxlC,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,iBAEFyB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MACR9M,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,QAAMinC,KAAK,gBAAX,gBAILhO,EAAK0I,WAAWh9B,IAAI,SAACgS,EAAMwI,GAAP,OACnB1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAK8R,EAAKzZ,GAAImD,UAAU,kBAC1BoB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,MAAMvJ,MAAO,CAAEyP,QAAS,eAChChT,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,GAAApG,OACMklB,EAAQ,EADd,MAAAllB,OACoB0c,EAAKgG,SADzB,MAAA1iB,OACsC0c,EAAK+F,UAG7Cjb,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,SAAU1Z,QAAS,WACzChT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WACzB1wB,EAAK2H,mBAIZ7c,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,SAAU1Z,QAAS,WACzChT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACO0c,EAAKma,sBAAwB,MAIxCrvB,EAAA1B,EAAAC,cAAA,MAAIuO,MAAM,KAAKvJ,MAAO,CAAEyP,QAAS,eAC/BhT,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,SAAU1Z,QAAS,WACzChT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACO0c,EAAKka,cAAgB,MAIhCpvB,EAAA1B,EAAAC,cAAA,MACEuO,MAAM,MACNvJ,MAAO,CAAEyP,QAAS,cAClBpU,UAAW5B,EAAKgoC,oBAAoB9vB,EAAKqlB,cAAgB,GAAK,YAE9Dv6B,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEyP,QAAS,WACpBhT,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEqiC,YAAa,WAA5B,IAAAptC,OACO0c,EAAK2lB,UAAUp3B,OAAS,cAS7CzD,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,mCAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,mCAGFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAqB2E,MAAO,CAAEuJ,MAAO,UAClD9M,EAAA1B,EAAAC,cAAA,yBAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,YAAY2E,MAAO,CAAEuJ,MAAO,UACzC9M,EAAA1B,EAAAC,cAAA,sBAEFyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBAAsB2E,MAAO,CAAEuJ,MAAO,UACnD9M,EAAA1B,EAAAC,cAAA,yBAQZyB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UAEEyB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qBAAf,sCA9YSY,iBCIpBknC,GAdK,kBAClB1mC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,8BACAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,WAAd,2BAEFoB,EAAA1B,EAAAC,cAAA,4BCSOooC,GAhBM,kBACnB3mC,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,aACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,cAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACqoC,GAAD,OAEF5mC,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACqoC,GAAD,SCESF,GAdK,kBAClB1mC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,SACAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,WAAd,2BAEFoB,EAAA1B,EAAAC,cAAA,8CCMOsoC,GAbG,kBAChB7mC,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,aACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,YAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACuoC,GAAD,uCCSAC,eAKJ,SAAAA,EAAYhoC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsqC,IACjBxqC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqtC,GAAAnqC,KAAAH,KAAMsC,KAwGRg5B,iBAAmB,SAACxoB,EAAMiH,EAAUmE,GvC1H/B,IAAAjiB,EAA8EsuC,EAA5DnsB,EAAsCpO,EAAWvO,EuC2HtE3B,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KvC/H2DqsB,GAA9EtuC,EuCiII,CACLmiB,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAA/T,GAAgC,IAA7B2d,EAA6B3d,EAA7B2d,MAAOI,EAAsB/d,EAAtB+d,gBACnBla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,qBAGJvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,gEvChJFgf,gBAA4D,IAAAmsB,EAAjD,CAAEz3B,KAAM,EAAGiH,SAAU,IAA4BwwB,EAAtBv6B,EAAsB/T,EAAtB+T,UAAWvO,EAAWxF,EAAXwF,QACjE3C,aAAO,GAAA/C,OAAIL,KAAJ,QAA8B0iB,GACzCxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,MuCONiC,EAoInB0qC,mBAAqB,SAACC,GACpB,IAAM5rC,EAAI,GAAA9C,OAAM0uC,EAAO5pB,SACvB7S,GAAQ,CACNpK,MAAO,6BACPqK,SAAQ,qDAAAlS,OAAoD8C,EAApD,kBACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,WACToc,GAAOggB,EAAOzrC,GACZ,CACEgR,UAAW,WACT9Q,aAAqB,gCADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAKw7B,iBAAiBxoB,EAAMiH,IAE9BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,yCAEnBA,aAAmB,uDAvJdU,EA+JnB4qC,KAAO,SAACD,GACc3qC,EAAKwC,MAAjBmC,QACAG,KAAR,gCAAA7I,OAA6C0uC,EAAOzrC,MAjKnCc,EAoKnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAKw7B,iBAAiBxoB,EAAMiH,EAAUmE,KAvKvBpe,EA2KnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKw7B,iBAAiB,EAAGvhB,EAAU7K,KA9KpBpP,EAkLnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKw7B,iBAAiB,EAAGvhB,EAAU,KApLlBja,EAuLnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAzLf7G,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAEjBc,EAAK6Z,QAAU,CACb,CAAEhT,IAAK,KAAM9H,KAAM,IAAKwR,MAAO,QAC/B,CAAE1J,IAAK,OAAQ9H,KAAM,UAAWwR,MAAO,QACvC,CAAE1J,IAAK,QAAS9H,KAAM,QAASub,QAAQ,GACvC,CACEzT,IAAK,mBACL9H,KAAM,WACNwR,MAAO,OACPgL,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIqc,iBAAX,UAEb,CACE5tB,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRiB,OAAQ,SAAA3M,GAAA,IAAG4lB,EAAH5lB,EAAG4lB,cAAezT,EAAlBnS,EAAkBmS,QAASsR,EAA3BzjB,EAA2ByjB,QAA3B,OACN5uB,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,QAAQytB,GAAzB,IAAAv4B,OAAoD8kB,EAApD,KAAA9kB,OAA+Do2B,MAGnE,CACExrB,IAAK,gBAAiB9H,KAAM,oBAAkBub,QAAQ,EAAMX,SAAS,GAEvE,CACE9S,IAAK,aACL9H,KAAM,eACNwc,OAAQ,SAAAnD,GAAG,OAAIA,EAAIkU,WAAW3lB,IAAI,SAAAya,GAAC,OACjC3d,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,QAAA5K,OAAUmc,EAAIlZ,GAAd,KAAAjD,OAAoBmlB,EAAEliB,KAChB,cAAXkiB,EAAExa,KAAuB,OAAS,OADrC,IAC8Cwa,EAAE1C,OADhD,IACyD0C,EAAEzC,cAI/D,CACE9X,IAAK,qBACL9H,KAAM,qBACNub,QAAQ,EACRjY,UAAW,cACXkO,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAK3U,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,QAAQqR,EAAI4kB,uBAE/C,CACEn2B,IAAK,eACL9H,KAAM,UACNub,QAAQ,EACRjY,UAAW,cACXkO,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OACT3U,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOqR,EAAIyyB,aAAe,UAAY,WAErCzyB,EAAIyyB,aAAe,KAAO,SAKnC,CAAEhkC,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,WACzCwX,SAAU,SAACqvB,GACT3qC,EAAK4qC,KAAKD,KAGd,CACE9jC,IAAK,SACL1D,KAAM,SAAAiV,GAAG,OACP3U,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,QAAM9C,GAAE,sBAAAjD,OAAwBmc,EAAIlZ,IAAMmD,UAAU,cAAcyB,MAAM,WACxEL,EAAA1B,EAAAC,cAAC8oC,GAAA,EAAD,CACEC,QAAQ,SACR3uB,UAAU,OACVrM,OAAM,sBAAA9T,OAAwBmc,EAAIlZ,IAClCmD,UAAU,OACVkJ,UAAW6M,EAAI4kB,oBAEfv5B,EAAA1B,EAAAC,cAACgpC,GAAA,EAAD,sCACAvnC,EAAA1B,EAAAC,cAACipC,GAAA,EAAD,iDAIN3vB,SAAU,SAACqvB,GACJA,EAAO3N,oBACVh9B,EAAK0qC,mBAAmBC,MA7Ff3qC,mFAoGC,IAAAyf,EACSvf,KAAKI,MAAxB0S,EADUyM,EACVzM,KAAMiH,EADIwF,EACJxF,SACd/Z,KAAKs7B,iBAAiBxoB,EAAMiH,oCAwFrB,IAAAxZ,EAAAP,KAAAwf,EAQHxf,KAAKI,MANPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,iCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,+BACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,uCAMNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gBAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,4CACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAxOI7c,iBAkPvBC,eAAWsnC,4CCzPpBU,GAAwB,SAAA/uC,GAQxB,IAPJuwB,EAOIvwB,EAPJuwB,eAOIye,EAAAhvC,EANJsnB,cAMI,IAAA0nB,EANK,GAMLA,EAAAz9B,EAAAvR,EALJoQ,KAAQxO,EAKJ2P,EALI3P,MAAO4lB,EAKXjW,EALWiW,aACfC,EAIIznB,EAJJynB,eACAC,EAGI1nB,EAHJ0nB,kBACAC,EAEI3nB,EAFJ2nB,aACAhK,EACI3d,EADJ2d,MAEMlS,EAAQkS,EAAMwF,KAAK,SAAAvH,GAAC,OAAKA,EAAEqzB,SAAoB,IAATrzB,EAAE7Y,KAC9C,OACEuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEkqB,cAAe,WAE5DxE,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEC,gBAAiB,wBAC7BxD,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAMkgB,EAAe,CAAE7kB,KAAM0kB,EAAO1kB,QAC7CsD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,cAcJ,KAENoB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gBACV2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,OAAQke,UAAW,UAE7D5nC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,WACxF1pB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,KACAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,YACAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAa,OAG/BoB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC2kC,EAAUnqB,GACrB,OAAKrH,EAAMqH,GAIT1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKqvC,GACRpsC,GAAE,GAAAjD,OAAKqvC,GACPjpC,UAAYyX,EAAMqH,GAAOiqB,SAAYtxB,EAAMqH,GAAOjiB,GAAK,GAAK0I,EAAU,SAAW,IAEjFnE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAAA,UAAK8X,EAAMqH,GAAOA,MAAQ,KAI9B1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,aACJj+B,YAAY,WACZ5N,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB5xB,UAAU,OACVi+B,UAA+B,IAApBzxB,EAAMqH,GAAOjiB,GACxBqM,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1B7c,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAoI,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,gBAM1EuL,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACExL,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,WAGzC,MA/CD,SAwDb0S,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,MAmBfmtC,GAAsBxjC,aAAe,CACnC6E,KAAM,IAGO2+B,UC/HTM,GAAwB,SAAArvC,GAUxB,IATJuwB,EASIvwB,EATJuwB,eASIye,EAAAhvC,EARJsnB,cAQI,IAAA0nB,EARK,GAQLA,EAAAz9B,EAAAvR,EAPJoQ,KAAQxO,EAOJ2P,EAPI3P,MAAO4lB,EAOXjW,EAPWiW,aACfC,EAMIznB,EANJynB,eACAC,EAKI1nB,EALJ0nB,kBACAC,EAII3nB,EAJJ2nB,aACAC,EAGI5nB,EAHJ4nB,eACAjK,EAEI3d,EAFJ2d,MACAwS,EACInwB,EADJmwB,WAEM1kB,EAAQkS,EAAMwF,KAAK,SAAAvH,GAAC,OAAKA,EAAEqzB,SAAoB,IAATrzB,EAAE7Y,KAC9C,OACEuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEkqB,cAAe,WAC9DztB,EAAA1B,EAAAC,cAAA,aAEI0qB,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEC,gBAAiB,wBAC7BxD,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAMkgB,EAAe,CAAE7kB,KAAM0kB,EAAO1kB,QAC7CsD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,cAcJ,MAGRoB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gBACV2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,OAAQke,UAAW,UAE7D5nC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,SACrExgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC2kC,EAAUnqB,GACrB,OAAKrH,EAAMqH,GAKT1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKqvC,GACRpsC,GAAE,GAAAjD,OAAKqvC,GACPjpC,UAAYyX,EAAMqH,GAAOiqB,SAAYtxB,EAAMqH,GAAOjiB,GAAK,GAAK0I,EAAU,SAAW,IAEjFnE,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTiX,IAAK,OACLsC,aAAc,SACd5T,eAAgB,aAChBiY,WAAY,WACZtQ,aAAc,OACdxN,QAAS,SACTxP,gBAAiB,YAGjBxD,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,IAAyBoa,EAAQ,IAEnCuL,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACErI,IAAG,cAAA5K,OAAgBqvC,GACnB5nC,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,UAEvC,OAKVxN,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEid,aAAc,SAA5B,SAEExgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OACEK,UAAU,kEACV2E,MAAO,CAAE2P,QAAS,SAElBlT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,UACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,UACJj+B,YAAY,QACZyD,UAAW1D,GACXU,aAAa,QACbrO,KAAK,OACL+G,SAAU,SAACilC,EAAGC,GAAJ,OAAiB5nB,EAAa,CACtC/T,OAAQ,CAAEhR,KAAI,GAAA9C,OAAKqvC,EAAL,UAAuBzlC,MAAO6lC,GAAY3sC,KAAM0kB,EAAO1kB,KAAMoiB,WAE7E5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAMlClqB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEid,aAAc,SAA5B,YAEExgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,WACxDvwB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,oBACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,oBACJj+B,YAAY,WACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAChCxN,OAAQ/T,EACRzD,KAAM0kB,EAAO1kB,KACbgR,OAAQ,CAAEhR,KAAI,GAAA9C,OAAKqvC,EAAL,qBACdnqB,WAEFnL,QAASsW,EACTxb,UAAW6G,GACXtB,YAAaqW,EAAeiB,0BAIlClqB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEid,aAAc,SAA5B,UAEExgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,WACxDvwB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,WACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,WACJj+B,YAAY,SACZ5N,KAAK,OACL6N,UAAU,OACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAoI,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,4BAOpClqB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,sBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SAAxC,aAEElT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,eACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,eACJj+B,YAAY,aACZ5N,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB5xB,UAAU,OACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAklB,GAAA,IAAG3b,EAAH2b,EAAG3b,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,8BA1HjC,SAuIbhK,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,MAqBfytC,GAAsB9jC,aAAe,CACnC6E,KAAM,IAGOi/B,UC/MTG,GAA2B,SAAAxvC,GAU3B,IATJuwB,EASIvwB,EATJuwB,eASIye,EAAAhvC,EARJsnB,cAQI,IAAA0nB,EARK,GAQLA,EAAAz9B,EAAAvR,EAPJoQ,KAAQxO,EAOJ2P,EAPI3P,MAAO4lB,EAOXjW,EAPWiW,aACfC,EAMIznB,EANJynB,eACAC,EAKI1nB,EALJ0nB,kBACAC,EAII3nB,EAJJ2nB,aACAC,EAGI5nB,EAHJ4nB,eACAjK,EAEI3d,EAFJ2d,MACAwS,EACInwB,EADJmwB,WAEM1kB,EAAQkS,EAAMwF,KAAK,SAAAvH,GAAC,OAAKA,EAAEqzB,SAAoB,IAATrzB,EAAE7Y,KAC9C,OACEuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEkqB,cAAe,WAC9DztB,EAAA1B,EAAAC,cAAA,aAEI0qB,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAMkgB,EAAe,CAAE7kB,KAAM0kB,EAAO1kB,QAC7CsD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,gBAgBR,MAGRoB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gBACV2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,OAAQke,UAAW,UAE7D5nC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,SACrExgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC2kC,EAAUnqB,GACrB,OAAKrH,EAAMqH,GAKT1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKqvC,GACRpsC,GAAE,GAAAjD,OAAKqvC,GACPjpC,UAAYyX,EAAMqH,GAAOiqB,SAAYtxB,EAAMqH,GAAOjiB,GAAK,GAAK0I,EAAU,SAAW,IAEjFnE,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTiX,IAAK,OACLsC,aAAc,SACd5T,eAAgB,aAChBiY,WAAY,WACZtQ,aAAc,OACdxN,QAAS,SACTxP,gBAAiB,YAGjBxD,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,IAAyBoa,EAAQ,IAEnCuL,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACErI,IAAG,cAAA5K,OAAgBqvC,GACnB5nC,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,UAEvC,OAIVxN,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAEPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,YACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,oBACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,oBACJj+B,YAAY,WACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAChCxN,OAAQ/T,EACRzD,KAAM0kB,EAAO1kB,KACbgR,OAAQ,CAAEhR,KAAI,GAAA9C,OAAKqvC,EAAL,qBACdnqB,WAEFnL,QAASsW,EACTxb,UAAW6G,GACXtB,YAAaqW,EAAeiB,2BAKpClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,eACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,aACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,aACJj+B,YAAY,cACZ5N,KAAK,OACL6N,UAAU,KACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAoI,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,6BAOtClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,cACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,cACJj+B,YAAY,YACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVtG,MAAO,CAAEk4B,UAAW,SACpBpuB,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAklB,GAAA,IAAG3b,EAAH2b,EAAG3b,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAKlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAGoxB,GAAI,IACrBpoC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,gBACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,gBACJj+B,YAAY,iBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXpG,MAAO,CAAEk4B,UAAW,SACpBpxB,aAAa,QACbtH,SAAU,SAAA8mB,GAAA,IAAGvd,EAAHud,EAAGvd,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAKlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAGoxB,GAAI,IACrBpoC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,GAAA5K,OAAKqvC,EAAL,kBACHvsC,KAAI,GAAA9C,OAAKqvC,EAAL,kBACJj+B,YAAY,oBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXpG,MAAO,CAAEk4B,UAAW,SACpBpxB,aAAa,QACbtH,SAAU,SAAAgkB,GAAA,IAAGza,EAAHya,EAAGza,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,8BAhJjC,SA6JbhK,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,MAqBf4tC,GAAyBjkC,aAAe,CACtC6E,KAAM,IAGOo/B,UCzOTG,GAA+B,SAAA3vC,GAW/B,IAVJuwB,EAUIvwB,EAVJuwB,eAUIye,EAAAhvC,EATJsnB,cASI,IAAA0nB,EATK,GASLA,EAAAz9B,EAAAvR,EARJoQ,KAAQxO,EAQJ2P,EARI3P,MAAO4lB,EAQXjW,EARWiW,aACfC,EAOIznB,EAPJynB,eACAC,EAMI1nB,EANJ0nB,kBACAC,EAKI3nB,EALJ2nB,aACAC,EAII5nB,EAJJ4nB,eACAjK,EAGI3d,EAHJ2d,MACAwS,EAEInwB,EAFJmwB,WACAyf,EACI5vC,EADJ4vC,kBAEMnkC,EAAQkS,EAAMwF,KAAK,SAAAvH,GAAC,OAAKA,EAAEqzB,SAAoB,IAATrzB,EAAE7Y,KAC9C,OACEuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEkqB,cAAe,WAE5DxE,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAMkgB,EAAe,CAAE7kB,KAAM0kB,EAAO1kB,QAC7CsD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,gBAgBR,KAENoB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gBACV2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,OAAQke,UAAW,UAE7D5nC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,SACrExgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC2kC,EAAUnqB,GACrB,OAAKrH,EAAMqH,GAKT1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKqvC,GACRpsC,GAAE,GAAAjD,OAAKqvC,GACPjpC,UAAYyX,EAAMqH,GAAOiqB,SAAYtxB,EAAMqH,GAAOjiB,GAAK,GAAK0I,EAAU,SAAW,IAEjFnE,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTiX,IAAK,OACLsC,aAAc,SACd5T,eAAgB,aAChBiY,WAAY,WACZtQ,aAAc,OACdxN,QAAS,SACTxP,gBAAiB,YAGjBxD,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,IAAyBoa,EAAQ,IAEnCuL,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACErI,IAAG,cAAA5K,OAAgBqvC,GACnB5nC,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,UAEvC,OAIVxN,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,YACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,oBACJj+B,YAAY,WACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAChCxN,OAAQ/T,EACRzD,KAAM0kB,EAAO1kB,KACbgR,OAAQ,CAAEhR,KAAI,GAAA9C,OAAKqvC,EAAL,qBACdnqB,WAEFnL,QAASsW,EACTxb,UAAW6G,GACXtB,YAAaqW,EAAeiB,2BAMpClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,eACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,aACJj+B,YAAY,cACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAChCxN,OAAQ/T,EAAOzD,KAAM0kB,EAAO1kB,KAAMgR,OAAQ,CAAEhR,KAAI,GAAA9C,OAAKqvC,EAAL,cAA4BnqB,WAE9EnL,QAAS+1B,EACTj7B,UAAW6G,GACXtB,YAAaqW,EAAeiB,6BAQxClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,aACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,cACJj+B,YAAY,YACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXpG,MAAO,CAAEk4B,UAAW,SACpBpxB,aAAa,QACbtH,SAAU,SAAAoI,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAMlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,gBACJj+B,YAAY,iBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXpG,MAAO,CAAEk4B,UAAW,SACpBpxB,aAAa,QACbtH,SAAU,SAAAklB,GAAA,IAAG3b,EAAH2b,EAAG3b,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAMlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,eACJj+B,YAAY,gBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXpG,MAAO,CAAEk4B,UAAW,SACpBpxB,aAAa,QACbtH,SAAU,SAAA8mB,GAAA,IAAGvd,EAAHud,EAAGvd,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,8BA9IjC,SA6JbhK,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,MAsBf+tC,GAA6BpkC,aAAe,CAC1C6E,KAAM,IAGOu/B,UC1OTE,GAA+B,SAAA7vC,GAQ/B,IAPJuwB,EAOIvwB,EAPJuwB,eAOIye,EAAAhvC,EANJsnB,cAMI,IAAA0nB,EANK,GAMLA,EAAAz9B,EAAAvR,EALJoQ,KAAQxO,EAKJ2P,EALI3P,MAAO4lB,EAKXjW,EALWiW,aACfC,EAIIznB,EAJJynB,eACAC,EAGI1nB,EAHJ0nB,kBACAC,EAEI3nB,EAFJ2nB,aACAhK,EACI3d,EADJ2d,MAEMlS,EAAQkS,EAAMwF,KAAK,SAAAvH,GAAC,OAAKA,EAAEqzB,SAAoB,IAATrzB,EAAE7Y,KAC9C,OACEuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEkqB,cAAe,WAE5DxE,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAMkgB,EAAe,CAAE7kB,KAAM0kB,EAAO1kB,QAC7CsD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,gBAgBR,KAENoB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gBACV2E,MAAO,CAAEid,aAAc,OAAQkJ,UAAW,OAAQke,UAAW,UAE7D5nC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,+BAA+B2E,MAAO,CAAEid,aAAc,SACrExgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC2kC,EAAUnqB,GACrB,OAAKrH,EAAMqH,GAKT1d,EAAA1B,EAAAC,cAAA,MACE6E,IAAG,GAAA5K,OAAKqvC,GACRpsC,GAAE,GAAAjD,OAAKqvC,GACPjpC,UAAYyX,EAAMqH,GAAOiqB,SAAYtxB,EAAMqH,GAAOjiB,GAAK,GAAK0I,EAAU,SAAW,IAEjFnE,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTiX,IAAK,OACLsC,aAAc,SACd5T,eAAgB,aAChBiY,WAAY,WACZtQ,aAAc,OACdxN,QAAS,SACTxP,gBAAiB,YAGjBxD,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,IAAyBoa,EAAQ,IAEnCuL,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACErI,IAAG,cAAA5K,OAAgBqvC,GACnB5nC,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,UAEvC,OAIVxN,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,yBACJj+B,YAAY,iBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAoI,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAKlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,kBACJj+B,YAAY,gBACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAAklB,GAAA,IAAG3b,EAAH2b,EAAG3b,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAKlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,WACJj+B,YAAY,SACZu+B,UAAQ,EACRnsC,KAAK,WACL6N,UAAU,OACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA8mB,GAAA,IAAGvd,EAAHud,EAAGvd,OAAH,OAAgB+T,EAAa,CAAE/T,SAAQhR,KAAM0kB,EAAO1kB,KAAMoiB,WACpE5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,2BAKlClqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,GACdhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKqvC,EAAL,kBACJj+B,YAAY,oBACZ5N,KAAK,SACL8N,IAAK,EACLC,IAAK,IACLsD,UAAW1D,GACXU,aAAa,QACbpR,MAAO,SAAAuvC,GAAG,OAAIxlC,OAAOwlC,IACrBzlC,SAAU,SAAAgkB,GAAA,IAAGza,EAAHya,EAAGza,OAAH,OAAgB+T,EAAa,CACrC/T,OAAQ,CACNtQ,KAAMsQ,EAAOtQ,KACboG,MAAOY,OAAOsJ,EAAOlK,OACrB9G,KAAMgR,EAAOhR,MAEfA,KAAM0kB,EAAO1kB,KACboiB,WAEF5V,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,6BAUpCjB,EAAeiB,sBACblqB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACExL,QAAS,kBAAMmgB,EAAkB,CAAE9kB,KAAM0kB,EAAO1kB,KAAMoiB,WACtDpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,WAGzC,MAhJD,SAwJb0S,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,MAmBfiuC,GAA6BtkC,aAAe,CAC1C6E,KAAM,IAGOy/B,UC3DA78B,GAlLE,WAaX,IAbYE,EAaZrC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAboB,CACxB0f,eAAgB,GAChBwf,oBAAqB,GACrBC,sBAAuB,GACvBC,oBAAqB,GACrBC,sBAAuB,GACvBC,qBAAsB,GACtBC,kBAAmB,GACnBC,mBAAoB,GACpBC,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BrgB,WAAY,IAENhd,EAAS,GAEf,OAAID,EAAMqd,iBAAmBrd,EAAMqd,eAAeiB,sBACzCre,GAGJD,EAAM68B,sBACT58B,EAAO48B,oBAAsB,0BAG1B78B,EAAM88B,wBACT78B,EAAO68B,sBAAwB,0BAG5B98B,EAAM+8B,sBACT98B,EAAO88B,oBAAsB,0BAG1B/8B,EAAMg9B,wBACT/8B,EAAO+8B,sBAAwB,0BAG5Bh9B,EAAMi9B,uBACTh9B,EAAOg9B,qBAAuB,0BAG3Bj9B,EAAMm9B,qBACTl9B,EAAOk9B,mBAAqB,0BAGzBn9B,EAAMk9B,mBAAsBl9B,EAAMk9B,kBAAkBhmC,QAGvD+I,EAAOi9B,kBAAoB,GAC3Bl9B,EAAMk9B,kBAAkBnyB,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GAC5D,IAAMpjB,EAAQ,GAET2sB,EAAI4gB,WACPvtC,EAAMutC,SAAW,6BAGfnuC,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOi9B,kBAAkBprB,GAASpjB,MAXtCuR,EAAOi9B,kBAAoB,CAAEjrB,OAAQ,4BAgBlCjS,EAAMo9B,kBAAqBp9B,EAAMo9B,iBAAiBlmC,QAGrD+I,EAAOm9B,iBAAmB,GAC1Bp9B,EAAMo9B,iBAAiBryB,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GAC3D,IAAMpjB,EAAQ,GAET2sB,EAAIkiB,aACP7uC,EAAM6uC,WAAa,gCAEhBliB,EAAIoR,QACP/9B,EAAM+9B,MAAQ,kCAGXpR,EAAImiB,iBAAoBniB,EAAImiB,gBAAgBhnC,OAEpCwJ,EAAMid,YAAc,IAAIhN,KAAK,SAAA2H,GAAC,OAAIA,EAAE/nB,KAAOwrB,EAAImiB,gBAAgBhnC,UAC1E9H,EAAM8uC,gBAAkB,sDAFxB9uC,EAAM8uC,gBAAkB,+BAKrBniB,EAAIoiB,SACP/uC,EAAM+uC,OAAS,2BAGb3vC,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOm9B,iBAAiBtrB,GAASpjB,MAxBrCuR,EAAOm9B,iBAAmB,CAAEnrB,OAAQ,8BA6BlCjS,EAAMq9B,uBAAyBr9B,EAAMq9B,sBAAsBnmC,SAC7D+I,EAAOo9B,sBAAwB,GAC/Br9B,EAAMq9B,sBAAsBtyB,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GAChE,IAAMpjB,EAAQ,GACT2sB,EAAIqiB,YACPhvC,EAAMgvC,UAAY,8BAEfriB,EAAIsiB,cACPjvC,EAAMivC,YAAc,gCAGjBtiB,EAAImiB,iBAAoBniB,EAAImiB,gBAAgBhnC,OAEpCwJ,EAAMid,YAAc,IAAIhN,KAAK,SAAA2H,GAAC,OAAIA,EAAE/nB,KAAOwrB,EAAImiB,gBAAgBhnC,UAC1E9H,EAAM8uC,gBAAkB,sDAFxB9uC,EAAM8uC,gBAAkB,+BAKrBniB,EAAIuiB,WACPlvC,EAAMkvC,SAAW,iCAGf9vC,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOo9B,sBAAsBvrB,GAASpjB,MAKxCsR,EAAMs9B,4BAA8Bt9B,EAAMs9B,2BAA2BpmC,SACvE+I,EAAOq9B,2BAA6B,GACpCt9B,EAAMs9B,2BAA2BvyB,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GACrE,IAAMpjB,EAAQ,GACT2sB,EAAIqiB,YACPhvC,EAAMgvC,UAAY,8BAEfriB,EAAIsiB,cACPjvC,EAAMivC,YAAc,gCAEjBtiB,EAAIwiB,aACPnvC,EAAMmvC,WAAa,kCAGhBxiB,EAAImiB,iBAAoBniB,EAAImiB,gBAAgBhnC,OAEpCwJ,EAAMid,YAAc,IAAIhN,KAAK,SAAA2H,GAAC,OAAIA,EAAE/nB,KAAOwrB,EAAImiB,gBAAgBhnC,UAC1E9H,EAAM8uC,gBAAkB,sDAFxB9uC,EAAM8uC,gBAAkB,+BAKrBniB,EAAIuiB,UAAaviB,EAAIuiB,SAASpnC,QACjC9H,EAAMkvC,SAAW,iCAGf9vC,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOq9B,2BAA2BxrB,GAASpjB,MAK7CsR,EAAM89B,4BAA8B99B,EAAM89B,2BAA2B5mC,SACvE+I,EAAO69B,2BAA6B,GACpC99B,EAAM89B,2BAA2B/yB,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GACrE,IAAMpjB,EAAQ,GACT2sB,EAAI0iB,uBACPrvC,EAAMqvC,qBAAuB,8BAE1B1iB,EAAI2iB,gBACPtvC,EAAMsvC,cAAgB,mCAEnB3iB,EAAI4iB,SACPvvC,EAAMuvC,OAAS,4BAEZ5iB,EAAI6iB,gBACPxvC,EAAMwvC,cAAgB,sCAGpBpwC,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAO69B,2BAA2BhsB,GAASpjB,MAK7CZ,OAAOwD,KAAK2O,GAAQ/I,OAIjB+I,IC9IHk+B,eAiEJ,SAAAA,EAAYhrC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAstC,IACjBxtC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqwC,GAAAntC,KAAAH,KAAMsC,KAOR+B,OAAS,WACPvE,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEipC,cAAejpC,EAAUipC,iBATtCztC,EAYnB0tC,cAAgB,SAAAvxC,GAA4C,IAAzCozB,EAAyCpzB,EAAzCozB,aAAcN,EAA2B9yB,EAA3B8yB,SAAUve,EAAiBvU,EAAjBuU,WACzC,OAAIue,EAEAxrB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,GAAID,GAAI,GAAI2S,GAAI,IACvB3pB,EAAA1B,EAAAC,cAACiN,GAAA,EAAD,CAAe5M,UAAU,wCACvBoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQnI,MAAM,UAAUtH,KAAK,SAASiE,QAAS6rB,EAAcltB,UAAU,YAAvE,YACAoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQnI,MAAM,UAAUtH,KAAK,SAASiE,QAASurB,EAAU1jB,SAAUmF,EAAYrO,UAAU,QAAzF,eASNoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,GAAID,GAAI,GAAI2S,GAAI,IACvB3pB,EAAA1B,EAAAC,cAACiN,GAAA,EAAD,CAAe5M,UAAU,wCACvBoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQnI,MAAM,UAAUtH,KAAK,SAASiE,QAAS6rB,EAAcltB,UAAU,YAAvE,YACAoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQnI,MAAM,UAAUtH,KAAK,SAAS8L,SAAUmF,EAAYrO,UAAU,QAAtE,gBA9BWrC,EAoCnB+S,QAAU,SAACtF,GAAS,IAAAnK,EAGdtD,EAAKwC,MADPoW,EAFgBtV,EAEhBsV,QAAS5F,EAFO1P,EAEP0P,KAAMD,EAFCzP,EAEDyP,QAAS3B,EAFR9N,EAEQ8N,SAGtB4B,IAASvF,IAITmL,EACF1K,GAAQ,CACNpK,MAAO,0BACPqK,SAAW1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,4DACX+F,SAAU,cACVE,QAAS,gBACTC,UAAW,WACT6C,EAASpR,EAAKwC,QAEhBgM,SAAU,WACRuE,EAAQtF,MAOdsF,EAAQtF,KA9DSzN,EAiEnByN,KAAO,SAAAmB,GAAqB,IAAlBnB,EAAkBmB,EAAlBnB,KAAM3J,EAAY8K,EAAZ9K,MACNkP,EAAShT,EAAKwC,MAAdwQ,KACR,OACEvP,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACLiE,QAAS,kBAAM1D,EAAK+S,QAAQtF,IAC5BpL,UAAS,eAAApG,OACQ+W,IAASvF,EAAO,wBAA0B,KAG3DhK,EAAA1B,EAAAC,cAAA,SAAI8B,KA3ES9D,EAgFnB2tC,eAAiB,WAAM,IAAAnjC,EAUjBxK,EAAKwC,MARPmrC,EAFmBnjC,EAEnBmjC,eACAC,EAHmBpjC,EAGnBojC,YACAjgB,EAJmBnjB,EAInBmjB,sBACAkgB,EALmBrjC,EAKnBqjC,sBACAz9B,EANmB5F,EAMnB4F,aACAgB,EAPmB5G,EAOnB4G,SACA08B,EARmBtjC,EAQnBsjC,mBACAC,EATmBvjC,EASnBujC,aAIAN,EACEztC,EAAKM,MADPmtC,aAGF,OAAIG,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,KACE/W,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEid,aAAc,WACzBxgB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAO4mB,EAAwB,UAAY,WAChDlqB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,6CAED,IACD5E,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAO4mB,EAAwB,UAAY,WAChDlqB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KAAGwlC,GAAyBvwB,GAAeuwB,OAK/CF,GAAkBhgB,EAChBlqB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,KACE/W,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM3J,SAAUhB,GACd3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAACgsC,GAAA,EAAD,CAAU3oC,OAAQooC,EAAclpC,OAAQvE,EAAKuE,OAAQoF,UAAU,QAC7DlG,EAAA1B,EAAAC,cAACisC,GAAA,EAAD,CACEl/B,KAAK,KACL1M,UAAU,aACV6rC,MAAM,OACNnnC,MAAM,UACNC,MAAO,CAAEuJ,MAAO,SAEhB9M,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBAAuB4O,cAAY,SAPlD,uBASAxN,EAAA1B,EAAAC,cAACmsC,GAAA,EAAD,CAAcC,OAAK,GACjB3qC,EAAA1B,EAAAC,cAACqsC,GAAA,EAAD,CACEhsC,UAAU,cACVqB,QAAS,kBAAM0N,EAASjU,OAAA0Q,GAAA,EAAA1Q,CAAA,GACnB6C,EAAKwC,MADa,CAErB8rC,kBAAmB,KACnB1mC,OAAO,OAGTnE,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,aAAa4O,cAAY,SARxC,6BAUC88B,EAAapnC,IAAI,SAAA4nC,GAAG,OACnB9qC,EAAA1B,EAAAC,cAACqsC,GAAA,EAAD,CACExnC,IAAK0nC,EAAIrvC,GACTwE,QAAS,kBAAMoqC,EAAmB3wC,OAAA0Q,GAAA,EAAA1Q,CAAA,GAC7B6C,EAAKwC,MADuB,CAE/BgsC,oBAAqBD,EAAIrvC,GACzB0I,OAAO,OAGTnE,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,SARzC,wBAQwEs9B,EAAI7b,KAR5E,IAQmF6b,EAAIlc,gBAQjG,OA5JOryB,EAkKnByuC,aAAe,SAAA/iB,GAA8C,IAA3C1Y,EAA2C0Y,EAA3C1Y,KAAM26B,EAAqCjiB,EAArCiiB,eAAgBe,EAAqBhjB,EAArBgjB,eACtC,OAAIf,EACK,KAIPlqC,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,GAAI9X,GAAI,GAAIC,GAAI,GACvBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACZrC,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,4BAC5BrI,EAAKyN,KAAK,CACTA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,8CAEjBrI,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,oBAE5BrI,EAAKyN,KAAK,CACTA,KAAM,EACN3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KAAE5E,EAAA1B,EAAAC,cAAA,uBAAF,MAAyByB,EAAA1B,EAAAC,cAAA,8BAAzB,MAA2DyB,EAAA1B,EAAAC,cAAA,8BAEnEhC,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,+BAC5BrI,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,iDAE5BrI,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,8CAC5BrI,EAAKyN,KAAK,CAAEA,KAAM,EAAG3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,sCAC5BrI,EAAKyN,KAAK,CACTA,KAAM,EACN3J,MAAOL,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KAAE5E,EAAA1B,EAAAC,cAAA,yCAAF,MAAiDyB,EAAA1B,EAAAC,cAAA,mCAI9DyB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,GAAI9X,GAAI,GAAIC,GAAI,GACvBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,wBACZrC,EAAK2uC,MAAM37B,GACXhT,EAAK4uC,MAAM57B,GACXhT,EAAK6uC,MAAM77B,GACXhT,EAAK8uC,MAAM97B,GAEXhT,EAAK+uC,MAAM/7B,EAAM07B,GACjB1uC,EAAKgvC,MAAMh8B,EAAM07B,GACjB1uC,EAAKivC,MAAMj8B,EAAM07B,GAEjB1uC,EAAKkvC,MAAMl8B,GACXhT,EAAKmvC,MAAMn8B,OA5MHhT,EAmNnB2uC,MAAQ,SAAC37B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAAwB,EAoBZxU,EAAKwC,MAdPkqB,EANclY,EAMdkY,eACAF,EAPchY,EAOdgY,gBAPc4iB,EAAA56B,EAQdoe,gBARc,IAAAwc,EAQH,GARGA,EAAAC,EAAA76B,EASd8X,kBATc,IAAA+iB,EASD,GATCA,EAUdj/B,EAVcoE,EAUdpE,aACAmf,EAXc/a,EAWd+a,aACA7e,EAZc8D,EAYd9D,WACAk9B,EAbcp5B,EAado5B,YACA9pB,EAdctP,EAcdsP,aACAmJ,EAfczY,EAedyY,wBACAD,EAhBcxY,EAgBdwY,qBACAD,EAjBcvY,EAiBduY,mBACAG,EAlBc1Y,EAkBd0Y,kBAlBcoiB,EAAA96B,EAmBdqY,qBAnBc,IAAAyiB,EAmBE,GAnBFA,EAsBhB,OAAI1B,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC2wB,GAAD,CACE9rB,IAAI,gBACJ9H,KAAK,gBACLytB,gBAAiBA,EACjBE,eAAcvvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTuvB,EADS,CAEZO,0BACAD,uBACAD,qBACAG,oBACAL,kBAEFP,WAAYA,EACZxS,MAAO8Y,EACP9O,aAAcA,MAInB9jB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBAnQvB1Q,EAwQnB4uC,MAAQ,SAAC57B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAA8xB,EAYZ9kC,EAAKwC,MANPshB,EANcghB,EAMdhhB,aACApT,EAPco0B,EAOdp0B,WACAN,EARc00B,EAQd10B,aACAmf,EATcuV,EASdvV,aACAqe,EAVc9I,EAUd8I,YACAlhB,EAXcoY,EAWdpY,eAGF,OAAIkhB,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAGPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,0CAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAW1D,GACXw+B,UAAQ,EACR5kC,MAAO,CAAEk4B,UAAW,SACpBz/B,KAAK,WACL8L,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,kCACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKpC3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,sDAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,sBACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,6CACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKnCpkB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBA3UvB1Q,EAgVnB6uC,MAAQ,SAAC77B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAAiyB,EAeZjlC,EAAKwC,MATPshB,EANcmhB,EAMdnhB,aACAF,EAPcqhB,EAOdrhB,eACAC,EARcohB,EAQdphB,kBACA6I,EATcuY,EASdvY,eACA6f,EAVctH,EAUdsH,kBACAn8B,EAXc60B,EAWd70B,aACAmf,EAZc0V,EAYd1V,aACA7e,EAbcu0B,EAadv0B,WAIF,OAjBgBu0B,EAcd2I,YAIOnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAGPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,gCAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,oBACJ9H,KAAK,oBACL+R,UAAWo6B,GACXxe,eAAgBA,EAChB5S,MAAOyyB,EACP3oB,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,KAGjB9jB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBAvXvB1Q,EA4XnB8uC,MAAQ,SAAC97B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAAmyB,EAYZnlC,EAAKwC,MANPshB,EANcqhB,EAMdrhB,aACA8pB,EAPczI,EAOdyI,YACAx9B,EARc+0B,EAQd/0B,aACAmf,EATc4V,EASd5V,aACA7e,EAVcy0B,EAUdz0B,WACAgc,EAXcyY,EAWdzY,eAGF,OAAIkhB,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAGPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAImF,GAAI,IACtB9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,6BAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,sBACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,uBACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKpC3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAImF,GAAI,IACtB9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,2CAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,oCACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKpC3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAImF,GAAI,IACtB9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,sCAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,uBACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,8BACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKnCpkB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBAvdvB1Q,EA4dnB+uC,MAAQ,SAAC/7B,EAAM07B,GACb,GAAa,IAAT17B,EACF,OAAO,KAFuB,IAAAqyB,EAgB5BrlC,EAAKwC,MAVPshB,EAN8BuhB,EAM9BvhB,aACAC,EAP8BshB,EAO9BthB,eACAH,EAR8ByhB,EAQ9BzhB,eACAC,EAT8BwhB,EAS9BxhB,kBACA6I,EAV8B2Y,EAU9B3Y,eAV8B6iB,EAAAlK,EAW9BoH,wBAX8B,IAAA8C,EAWX,GAXWA,EAY9B3B,EAZ8BvI,EAY9BuI,YACAx9B,EAb8Bi1B,EAa9Bj1B,aACAmf,EAd8B8V,EAc9B9V,aACA7e,EAf8B20B,EAe9B30B,WAGF,OAAIk9B,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,2DAIFoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,GAAID,GAAI,GAAI2S,GAAI,IACvB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,mBACJ9H,KAAK,mBACL+R,UAAW06B,GACX1xB,MAAO2yB,EACP/f,eAAgBA,EAChBJ,WAAYoiB,EACZ9qB,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,EACdC,eAAgBA,KAGnB/jB,EAAK0tC,cAAc,CAAEne,eAAc7e,kBAxgBzB1Q,EA8gBnBgvC,MAAQ,SAACh8B,EAAM07B,GACb,GAAa,IAAT17B,EACF,OAAO,KAFuB,IAAAyyB,EAkB5BzlC,EAAKwC,MAZPshB,EAN8B2hB,EAM9B3hB,aACAC,EAP8B0hB,EAO9B1hB,eACAH,EAR8B6hB,EAQ9B7hB,eACAC,EAT8B4hB,EAS9B5hB,kBACA6I,EAV8B+Y,EAU9B/Y,eAV8B8iB,EAAA/J,EAY9BiH,6BAZ8B,IAAA8C,EAYN,GAZMA,EAAAC,EAAAhK,EAa9BsG,yBAb8B,IAAA0D,EAaV,GAbUA,EAc9B7B,EAd8BnI,EAc9BmI,YACAre,EAf8BkW,EAe9BlW,aACA7e,EAhB8B+0B,EAgB9B/0B,WACAN,EAjB8Bq1B,EAiB9Br1B,aAGF,OAAIw9B,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAGPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,gDAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,wBACJ9H,KAAK,wBACL+R,UAAW66B,GACX7xB,MAAO4yB,EACPhgB,eAAgBA,EAChBqf,kBAAmBA,EACnBzf,WAAYoiB,EACZ9qB,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,EACdC,eAAgBA,KAGnB/jB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBA3jBvB1Q,EAgkBnBivC,MAAQ,SAACj8B,EAAM07B,GACb,GAAa,IAAT17B,EACF,OAAO,KAFuB,IAAAmzB,EAkB5BnmC,EAAKwC,MAZPshB,EAN8BqiB,EAM9BriB,aACAC,EAP8BoiB,EAO9BpiB,eACAH,EAR8BuiB,EAQ9BviB,eACAC,EAT8BsiB,EAS9BtiB,kBACA6I,EAV8ByZ,EAU9BzZ,eAV8BgjB,EAAAvJ,EAY9BwG,kCAZ8B,IAAA+C,EAYD,GAZCA,EAAAC,EAAAxJ,EAa9B4F,yBAb8B,IAAA4D,EAaV,GAbUA,EAc9B/B,EAd8BzH,EAc9ByH,YACAre,EAf8B4W,EAe9B5W,aACA7e,EAhB8By1B,EAgB9Bz1B,WACAN,EAjB8B+1B,EAiB9B/1B,aAGF,OAAIw9B,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,8DAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,6BACJ9H,KAAK,6BACL+R,UAAWg7B,GACXhyB,MAAO6yB,EACPjgB,eAAgBA,EAChBqf,kBAAmBA,EACnBzf,WAAYoiB,EACZ9qB,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,EACdC,eAAgBA,KAGnB/jB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBA9mBvB1Q,EAmnBnBkvC,MAAQ,SAACl8B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAA48B,EAiBZ5vC,EAAKwC,MAXPshB,EANc8rB,EAMd9rB,aACAC,EAPc6rB,EAOd7rB,eACAH,EARcgsB,EAQdhsB,eACAC,EATc+rB,EASd/rB,kBACA6I,EAVckjB,EAUdljB,eAVcmjB,EAAAD,EAYdzC,kCAZc,IAAA0C,EAYe,GAZfA,EAadjC,EAbcgC,EAadhC,YACAre,EAdcqgB,EAcdrgB,aACA7e,EAfck/B,EAedl/B,WACAN,EAhBcw/B,EAgBdx/B,aAGF,OAAIw9B,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qEAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,6BACJ9H,KAAK,6BACL+R,UAAWk7B,GACXlyB,MAAOqzB,EACPzgB,eAAgBA,EAChB9I,eAAgBA,EAChBC,kBAAmBA,EACnBC,aAAcA,EACdC,eAAgBA,KAGnB/jB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBA9pBvB1Q,EAmqBnBmvC,MAAQ,SAACn8B,GACP,GAAa,IAATA,EACF,OAAO,KAFO,IAAA88B,EAYZ9vC,EAAKwC,MANPshB,EANcgsB,EAMdhsB,aACA8pB,EAPckC,EAOdlC,YACAre,EARcugB,EAQdvgB,aACA7e,EATco/B,EASdp/B,WACAN,EAVc0/B,EAUd1/B,aACAsc,EAXcojB,EAWdpjB,eAGF,OAAIkhB,EACKnqC,EAAA1B,EAAAC,cAAC4d,GAAD,MAGPnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,oBAAoB+O,SAAUhB,GAC5C3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,oCAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAI,qBACJ9H,KAAK,qBACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,yBACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKpC3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,iBACZoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,0CAIFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,6BACL+R,UAAW1D,GACXw+B,UAAQ,EACRnsC,KAAK,WACLuH,MAAO,CAAEk4B,UAAW,SACpB3zB,UAAWmhB,EAAeiB,sBAC1BhgB,UAAW+e,EAAeiB,sBAC1BrgB,UAAW,KACXD,YAAY,iCACZS,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,SAKnCpkB,EAAK0tC,cAAc,CAAEne,eAAc7e,iBApuBxC1Q,EAAKM,MAAQ,CACXmtC,cAAc,GAJCztC,wEA4uBV,IAAA+vC,EAQH7vC,KAAKsC,MANPjC,EAFKwvC,EAELxvC,QAFKyvC,EAAAD,EAGLnd,gBAHK,IAAAod,EAGM,GAHNA,EAAAC,EAAAF,EAILzjB,kBAJK,IAAA2jB,EAIQ,GAJRA,EAKLj9B,EALK+8B,EAKL/8B,KACA26B,EANKoC,EAMLpC,eACAuC,EAPKH,EAOLG,WAGF,GAAI3vC,IAAgC,IAArBqyB,EAASrsB,OACtB,OAAO9C,EAAA1B,EAAAC,cAAC4d,GAAD,MAGT,IAAM8uB,EAAiBpiB,EAAW3lB,IAAI,SAAA2mB,GAAA,MAAuB,CAC3DznB,MADoCynB,EAAGpuB,GAEvCgI,MAFoComB,EAAOD,YAK7C,OACE5pB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,OAAQhM,aAAc,MAC9DxgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,0BAIGsrC,EASG,KARFlqC,EAAA1B,EAAAC,cAAA,UACEK,UAAU,sBACV5C,KAAK,SACLiE,QAASwsC,GAETzsC,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QALF,2BAWNoB,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAU,UACjBnC,KAAKytC,iBACLztC,KAAKuuC,aAAa,CAAEz7B,OAAM26B,iBAAgBe,6BAt1BxBzrC,iBAAzBuqC,GAiDG9lC,aAAe,CACpBgJ,YAAY,EACZnE,KAAM,GACN6R,QAAS,GACTmuB,kBAAmB,GACnBE,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BQ,2BAA4B,GAC5BpB,kBAAmB,GAEnBvf,gBAAiB,GACjBoG,SAAU,GACVtG,WAAY,IAgyBhB,IAMe3f,MANe0E,aAAU,CACtCC,KAAM,mBACNnC,YACA2Q,oBAAoB,GAHQzO,CAI3Bm8B,KC71BI,SAAS2C,GAATzkB,GAEJ,IADD1Y,EACC0Y,EADD1Y,KAAMo9B,EACL1kB,EADK0kB,QAASlgC,EACdwb,EADcxb,UAAWvO,EACzB+pB,EADyB/pB,QAE1B,OAAO3C,aAAO,GAAA/C,OAAIJ,KAAJ,KAAAI,OAAmB+W,GAAQo9B,GACtCtyC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SCyfZsyC,eAphBb,SAAAA,EAAY7tC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAmwC,IACjBrwC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAkzC,GAAAhwC,KAAAH,KAAMsC,KAsDR8tC,eAAiB,WACftwC,EAAKmB,SAAS,CACZZ,SAAS,IAFU,IDVlBiqB,EAAoBtrB,EAAIgR,EAAWvO,ECe9B4uC,EAAevwC,EAAKwC,MAApB+tC,WDferxC,GAApBsrB,ECiBM,CACPtrB,GAAIqxC,EACJrgC,UAAW,kBAAMlQ,EAAKmB,SAAS,CAC7BZ,SAAS,KAEXoB,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,IAGXjB,aAAmB,kDD3BAJ,GAAIgR,EAAsBsa,EAAtBta,UAAWvO,EAAW6oB,EAAX7oB,QACjCrD,aAAW,GAAArC,OAAIJ,KAAJ,cAAAI,OAA4BiD,IAC3CpB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,oBAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACDza,GAAWA,EAAUhS,KAE1ByrB,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,MC1DNiC,EA6EnBwwC,mBAAqB,SAACx9B,GAAS,IACrBu9B,EAAevwC,EAAKwC,MAApB+tC,WAEHA,GAkBLvwC,EAAKmB,SAAS,CACZZ,SAAS,IDnHR,SAAApE,GAEJ,IADD+C,EACC/C,EADD+C,GAAI8T,EACH7W,EADG6W,KAAM9C,EACT/T,EADS+T,UAAWvO,EACpBxF,EADoBwF,QAEdxD,aAAM,GAAAlC,OAAIJ,KAAJ,KAAAI,OAAmBiD,EAAnB,UAAAjD,OAA8B+W,IACxClV,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KC0GvB0yC,CAAY,CACVvxC,GAAIqxC,EACJv9B,OACA9C,UAAW,SAACwgC,GAEV,IAAM/C,EAAkD,IAAjCxwC,OAAOwD,KAAK+vC,GAAUnqC,OAC7CvG,EAAK2wC,kBAAkBD,EAASE,gBAEhC5wC,EAAK6wC,YAAYH,GACjB1wC,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACA26B,iBACA/0B,SAAS,KAGbjX,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,SAGEjV,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,6BAEnBA,aAAmB,2DA9CvBU,EAAKmB,SAAS,CACZuvC,SAAU,CACR7kB,iBAAkB,EAClB0gB,kBAAmB,GACnBE,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BQ,2BAA4B,GAC5Bva,SAAU,GACVtG,WAAY,IAEd1T,SAAS,KA5FI5Y,EAqInB2wC,kBAAoB,SAACC,GACnB5wC,EAAKmB,SAAS,CACZZ,SAAS,IAGNqwC,ED3IF,SAAAhiC,GAEJ,IADDgiC,EACChiC,EADDgiC,eAAgB1gC,EACftB,EADesB,UAAWvO,EAC1BiN,EAD0BjN,QAEpBxD,aAAM,GAAAlC,OAAIJ,KAAJ,wBAAAI,OAAsC20C,IAChD9yC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KCuIvB+yC,CAAiB,CACfF,iBACA1gC,UAAW,WAAuB,IAAtB69B,EAAsB/gC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACzBhN,EAAKmB,SAAS,CACZ4sC,eACAxtC,SAAS,KAGboB,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,EACTwtC,aAAc,KAGhBzuC,aAAmB,oDArBrBU,EAAKmB,SAAS,CACZZ,SAAS,EACTwtC,aAAc,MA7ID/tC,EAqKnBk6B,cAAgB,WDtIX,IAAA5M,EAAiCpd,EAAWvO,ECuI/C3B,EAAKmB,SAAS,CACZZ,SAAS,IDxIyB2P,GAAjCod,EC0ImB,CACpBpd,UAAW,SAAA/T,GAA2B,IAAxB40C,EAAwB50C,EAAxB40C,kBACZ/wC,EAAKmB,SAAS,CACZ4qC,kBAAmBgF,EACnBxwC,SAAS,KAGboB,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,IAGXjB,aAAmB,oDDtJa4Q,UAAWvO,EAAW2rB,EAAX3rB,QAC1CxD,aAAM,GAAAlC,OAAIJ,KAAJ,eACViC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,MCzCNiC,EA0LnBgxC,mBAAqB,SAAApiC,GAAc,IAAX7P,EAAW6P,EAAX7P,KACd2xC,EAAa1wC,EAAKM,MAAlBowC,SACF52B,EAAQ42B,EAAS3xC,GAEjBkyC,EAA4B,IAAjBn3B,EAAMvT,OACnB,EACC8M,KAAK7F,IAALT,MAAAsG,KAAIlW,OAAAmrB,GAAA,EAAAnrB,CAAQ2c,EAAMnT,IAAI,SAAA+kB,GAAA,OAAAA,EAAGvK,UAAsB,EAEpDnhB,EAAKmB,SAAS,CACZyX,SAAS,EACT83B,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJuzC,EADGvzC,OAAA2S,GAAA,EAAA3S,CAAA,GAEL4B,EAFK,GAAA9C,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CAGD2c,GAHC,CAIJ,CACE5a,GAAI,EACJiiB,MAAO8vB,UA1MEjxC,EAiNnBkxC,sBAAwB,SAAA5jB,GAAqB,IAAlBvuB,EAAkBuuB,EAAlBvuB,KAAMoiB,EAAYmM,EAAZnM,MACvBuvB,EAAa1wC,EAAKM,MAAlBowC,SAGFhoB,EAFQgoB,EAAS3xC,GAEA4H,IAAI,SAAAqU,GAAC,OAAA7d,OAAA0Q,GAAA,EAAA1Q,CAAA,GACvB6d,EADuB,CAE1BowB,QAASpwB,EAAEowB,SAAWpwB,EAAEmG,QAAUA,MAGpCnhB,EAAKmB,SAAS,CACZyX,SAAS,EACT83B,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJuzC,EADGvzC,OAAA2S,GAAA,EAAA3S,CAAA,GAEL4B,EAAO2pB,OA9NK1oB,EAmOnB2oB,iBAAmB,SAAA6B,GAAoC,IAAjCzrB,EAAiCyrB,EAAjCzrB,KAAMgR,EAA2Bya,EAA3Bza,OAA2BohC,EAAA3mB,EAAnBrJ,aAAmB,IAAAgwB,EAAX,KAAWA,EAC/CtrC,EAAwB,WAAhBkK,EAAOtQ,KACjBgH,OAAOsJ,EAAOlK,OACd,GAAA5J,OAAG8T,EAAOlK,OAAQgjB,OAEtB,GAAIpiB,OAAO0rB,UAAUhR,GAAQ,KACnBuvB,EAAa1wC,EAAKM,MAAlBowC,SACF52B,EAAQ42B,EAAS3xC,GAEjB2pB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAO2c,GAgBrB,OAfA4O,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GADdhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK4S,EAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,SAIjC7F,EAAKmB,SAAS,CACZyX,SAAS,EACT83B,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJuzC,EADGvzC,OAAA2S,GAAA,EAAA3S,CAAA,GAEL4B,EAAO2pB,MAOd1oB,EAAKmB,SAAS,SAAAgnC,GAAI,MAAK,CACrBvvB,SAAS,EACT83B,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJgrC,EAAKuI,SADFvzC,OAAA2S,GAAA,EAAA3S,CAAA,GAGH4S,EAAOhR,KAAO8G,QApQJ7F,EA0QnB8oB,mBAAqB,SAAAiF,GAEf,IAAAhF,EADJxS,EACIwX,EADJxX,OAAQxX,EACJgvB,EADIhvB,KAAMgR,EACVge,EADUhe,OAAQoR,EAClB4M,EADkB5M,MAGhBrH,EADe9Z,EAAKM,MAAlBowC,SACe3xC,GAEjB2pB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAO2c,GACfvd,GAAIwsB,EAAA,GAAA5rB,OAAA2S,GAAA,EAAA3S,CAAA4rB,EACPhZ,EAAOhR,KAAK6e,MAAM,KAAK,GAAKrH,GADrBpZ,OAAA2S,GAAA,EAAA3S,CAAA4rB,EAAA,QAER5H,GAFQ4H,GAKVL,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GACT5kB,GAGLyD,EAAKmB,SAAS,SAAAgnC,GAAI,MAAK,CACrBvvB,SAAS,EACT83B,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJgrC,EAAKuI,SADFvzC,OAAA2S,GAAA,EAAA3S,CAAA,GAGH4B,EAAO2pB,QAhSG1oB,EAsSnB+S,QAAU,SAACC,GACThT,EAAKwwC,mBAAmBx9B,IAvSPhT,EA0SnBivB,SAAW,WAAM,IACPjc,EAAShT,EAAKM,MAAd0S,KACRhT,EAAK+S,QAAQC,EAAO,EAAI,GAAKA,EAAO,EAAI,IA5SvBhT,EA+SnBuvB,aAAe,WAAM,IACXvc,EAAShT,EAAKM,MAAd0S,KACRhT,EAAK+S,QAAQC,EAAO,EAAI,EAAIA,EAAO,EAAI,IAjTtBhT,EAoTnBoxC,uBAAyB,SAAChiC,GACxBpP,EAAKoQ,aAAahB,IArTDpP,EAwTnBoQ,aAAe,SAAChB,GACd,GAAKA,EAAL,CADyB,IAOjBsd,EAAmB1sB,EAAKwC,MAAxBkqB,eAPiB7qB,EAQyB7B,EAAKM,MAA/CsY,EARiB/W,EAQjB+W,QAAS+0B,EARQ9rC,EAQR8rC,eAAgBI,EARRlsC,EAQQksC,aAEjC,GAAKJ,GAAoBjhB,EAAeiB,uBAA0B/U,EAAlE,CAVyB,IAejB41B,EAAuCp/B,EAAvCo/B,oBAfiB6C,EAesBjiC,EAAlBxH,aAfJ,IAAAypC,KAiBnBC,EAAcvD,EAAaj2B,KAAK,SAAAC,GAAC,OAAIA,EAAE7Y,KAAOsvC,IAEpD,GAAK5mC,EA8DLsG,GAAQ,CACNpK,MAAO0qC,EAAsB,sBAAwB,qBACrDrgC,SACE1K,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,kBAEGmmC,EAAsB,aAAe,kBAFxC,gBAGE/qC,EAAA1B,EAAAC,cAAA,SAAIsvC,EAAW,IAAAr1C,OAAOq1C,EAAY5e,KAAnB,KAAAz2B,OAA2Bq1C,EAAYjf,SAAY,IAHpE,MAMFjkB,SAAUogC,EAAsB,aAAe,YAC/ClgC,QAAS,KACTvH,MAAO,UACPwH,UAAW,WACTvO,EAAKmB,SAAS,CACZysC,aAAa,IAFA,IAMb56B,EAGE5D,EAHF4D,KANau+B,EASXniC,EAFFq9B,wBAPa,IAAA8E,EAOM,GAPNA,EAAAC,EASXpiC,EADFs9B,6BARa,IAAA8E,EAQW,GARXA,EAWK3lB,EAAqB7rB,EAAKwC,MAAtC+tC,WAERJ,GAAa,CACXn9B,KAAI,OAAA/W,OAAS0xC,EAAiB,EAAI36B,GAClCo9B,QAAQjzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHiS,EADE,CAELyc,mBACA4gB,iBAAkBA,EAAiB9lC,IAAI,SAAA4qB,GAAA,IACrCqb,EADqCrb,EACrCqb,WACAxB,EAFqC7Z,EAErC6Z,QACAtP,EAHqCvK,EAGrCuK,MACA58B,EAJqCqyB,EAIrCryB,GACA2tC,EALqCtb,EAKrCsb,gBACAC,EANqCvb,EAMrCub,OANqC,MAOhC,CACLjhB,mBACA+gB,aACAxB,UACAtP,MAAQA,GAAmB,eAAVA,EAAgCA,EAAP,KAC1C58B,KACA2tC,kBACAC,YAEFJ,sBAAuBA,EAAsB/lC,IAAI,SAAA8qC,GAAE,OAAAt0C,OAAA0Q,GAAA,EAAA1Q,CAAA,GAC9Cs0C,EAD8C,CAEjD5lB,yBAGJ3b,UAAW,WACTlQ,EAAKivB,WAEL7vB,aAAqB,gDAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAClBxpB,EAAMuR,OACfnS,OAAOu0C,QAAQ3zC,EAAMuR,QAAQqiC,QAAQ,SAAAjgB,GAAA,IAAInK,EAAJpqB,OAAA6e,GAAA,EAAA7e,CAAAu0B,EAAA,aAAiBryB,aAAqBkoB,KAE3EjoB,aAAmB,0DAGrBU,EAAKmB,SAAS,CACZysC,aAAa,QAKrBp/B,SAAU,mBArIZ,CACExO,EAAKmB,SAAS,CACZysC,aAAa,IAFL,IAMR56B,EAGE5D,EAHF4D,KANQ4+B,EASNxiC,EAFFq9B,wBAPQ,IAAAmF,EAOW,GAPXA,EAAAC,EASNziC,EADFs9B,6BARQ,IAAAmF,EAQgB,GARhBA,EAWUhmB,EAAqB7rB,EAAKwC,MAAtC+tC,WAERJ,GAAa,CACXn9B,KAAI,OAAA/W,OAAS0xC,EAAiB,EAAI36B,GAClCo9B,QAAQjzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHiS,EADE,CAELyc,mBACA4gB,iBAAkBA,EAAiB9lC,IAAI,SAAA2jB,GAAA,IACrCsiB,EADqCtiB,EACrCsiB,WACAxB,EAFqC9gB,EAErC8gB,QACAtP,EAHqCxR,EAGrCwR,MACA58B,EAJqCorB,EAIrCprB,GACA2tC,EALqCviB,EAKrCuiB,gBACAC,EANqCxiB,EAMrCwiB,OANqC,MAOhC,CACLjhB,mBACA+gB,aACAxB,UACAtP,MAAQA,GAAmB,eAAVA,EAAgCA,EAAP,KAC1C58B,KACA2tC,kBACAC,YAEFJ,sBAAuBA,EAAsB/lC,IAAI,SAAA8qC,GAAE,OAAAt0C,OAAA0Q,GAAA,EAAA1Q,CAAA,GAC9Cs0C,EAD8C,CAEjD5lB,yBAGJ3b,UAAW,WACTlQ,EAAKivB,WAEL7vB,aAAqB,gDAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAClBxpB,EAAMuR,OACfnS,OAAOu0C,QAAQ3zC,EAAMuR,QAAQqiC,QAAQ,SAAA3gB,GAAA,IAAIzJ,EAAJpqB,OAAA6e,GAAA,EAAA7e,CAAA6zB,EAAA,aAAiB3xB,aAAqBkoB,KAE3EjoB,aAAmB,0DAGrBU,EAAKmB,SAAS,CACZysC,aAAa,aA9DnB5tC,EAAKivB,gBATLnuB,QAAQC,IAAIqO,IAvTdpP,EAAKswC,eAAe37B,KAApBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAEAA,EAAKM,MAAQ,CACX0S,KAAM,EACN4F,SAAS,EACTrY,SAAS,EACTqtC,aAAa,EACb7B,kBAAmB,GACnBgC,aAAc,GACdJ,gBAAgB,EAChB+C,SAAU,CACRnE,kBAAmB,GACnBE,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BQ,2BAA4B,KAlBfntC,mFAwBjBE,KAAKg6B,gBACLh6B,KAAKswC,mBAAmB,uCAGdE,GAAU,IAAAoB,EAQhBpB,EANFnE,yBAFkB,IAAAuF,EAEE,GAFFA,EAAAC,EAQhBrB,EALFjE,wBAHkB,IAAAsF,EAGC,GAHDA,EAAAC,EAQhBtB,EAJFhE,6BAJkB,IAAAsF,EAIM,GAJNA,EAAAC,EAQhBvB,EAHF/D,kCALkB,IAAAsF,EAKW,GALXA,EAAAC,EAQhBxB,EAFFvD,kCANkB,IAAA+E,EAMW,GANXA,EAAAC,EAQhBzB,EADFpkB,kBAPkB,IAAA6lB,EAOL,GAPKA,EAUFb,EAAgBpxC,KAAKI,MAA/BowC,SAERxwC,KAAKiB,SAAS,CACZuvC,SAASvzC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACJuzC,EADG,CAENpkB,WAAkC,IAAtBA,EAAW/lB,OAAe+qC,EAAYhlB,WAAaA,EAC/DigB,kBAAmBA,EAAkB5lC,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,YAChEsrB,iBAAkBA,EAAiB9lC,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,YAC9DurB,sBAAuBA,EAAsB/lC,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,YACxEwrB,2BAA4BA,EAA2BhmC,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,YAClFgsB,2BAA4BA,EAA2BxmC,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,cAEpFysB,aAAa,EACbh1B,SAAS,qCAmaJ,IAEL8T,EACExsB,KAAKsC,MADPkqB,eAFK7N,EAcH3e,KAAKI,MARPowC,EANK7xB,EAML6xB,SACAnwC,EAPKse,EAOLte,QACAqtC,EARK/uB,EAQL+uB,YACA7B,EATKltB,EASLktB,kBACA/4B,EAVK6L,EAUL7L,KACA4F,EAXKiG,EAWLjG,QACA+0B,EAZK9uB,EAYL8uB,eACAI,EAbKlvB,EAaLkvB,aAGF,OAAIxtC,GAAYmwC,GAAahkB,GAA+C,IAA7Bqf,EAAkBxlC,OAO/D9C,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACowC,GAADj1C,OAAAuP,OAAA,GACMgkC,EADN,CAEEhkB,eAAgBA,EAChBqhB,aAAcA,EACdhC,kBAAmBA,EACnB4B,eAAgBA,EAChBv8B,SAAUlR,KAAKkQ,aACf09B,mBAAoB5tC,KAAKkxC,uBACzB7wC,QAASA,EACTqtC,YAAaA,EACbzgC,cAAeujC,EAEf9sB,eAAgB1jB,KAAK8wC,mBACrBntB,kBAAmB3jB,KAAKgxC,sBACxBptB,aAAc5jB,KAAKyoB,iBACnB5E,eAAgB7jB,KAAK4oB,mBACrBonB,WAAYhwC,KAAKowC,eAEjB13B,QAASA,EACT5F,KAAMA,EACND,QAAS7S,KAAK6S,QACdwc,aAAcrvB,KAAKqvB,aACnBN,SAAU/uB,KAAK+uB,SAEfnP,oBAAkB,OA/BtBrc,EAAA1B,EAAAC,cAAC4d,GAAD,aAzeqB3c,iBC+CdkM,GArEE,WAEX,IAFYE,EAEZrC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAFoB,CACxB4lB,SAAU,IAEJtjB,EAAS,GA+Df,OA7DKD,EAAMslB,OAAUtlB,EAAMslB,MAAM9uB,QAC/ByJ,EAAOqlB,MAAQ,8BAGZtlB,EAAM+nB,SAAY/nB,EAAM+nB,QAAQvxB,QACnCyJ,EAAO8nB,QAAU,+BAGd/nB,EAAM0R,SAAY1R,EAAM0R,QAAQlb,QACnCyJ,EAAOyR,QAAU,gCAGd1R,EAAMge,UAAahe,EAAMge,SAASxnB,QACrCyJ,EAAO+d,SAAW,gCAGhBhe,EAAMujB,UAAYvjB,EAAMujB,SAASrsB,SACnC+I,EAAOsjB,SAAW,GAClBvjB,EAAMujB,SAASxY,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GACnD,IAAMpjB,EAAQ,GAET2sB,EAAI8C,+BAAkC9C,EAAI8C,8BAA8B3nB,QAC3E9H,EAAMyvB,8BAAgC,gDAEnC9C,EAAI2C,UAAa3C,EAAI2C,SAASxnB,MAMN,CADvBwJ,EADFge,UAGY,GAFVhe,EADQgjC,mBAIW,GAHnBhjC,EAD2BijC,mBAKR,GAJnBjjC,EAD8CkjC,mBAM3B,IAGCjzB,KAAK,SAAA2H,GAAC,OAAIA,EAAEphB,OAASohB,EAAEphB,QAAU6kB,EAAI2C,SAASxnB,UACpE9H,EAAMsvB,SAAW,sDAbnBtvB,EAAMsvB,SAAW,+BAgBd3C,EAAI6C,KAAQ7C,EAAI6C,IAAI1nB,QACvB9H,EAAMwvB,IAAM,2BAET7C,EAAI+C,aACP1vB,EAAM0vB,WAAa,yBAEhB/C,EAAIgD,UACP3vB,EAAM2vB,QAAU,yBAGdvwB,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOsjB,SAASzR,GAASpjB,MAK3BZ,OAAOwD,KAAK2O,GAAQ/I,QACtBzF,QAAQ/C,MAAMuR,GAGTA,GCpCHkjC,eAmEJ,SAAAA,EAAYhwC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsyC,IACjBxyC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAq1C,GAAAnyC,KAAAH,KAAMsC,KAsGRiwC,iCAAmC,SAACC,GAGlC,OAF2C1yC,EAAKwC,MAAxCmwC,+BAE8Bv4B,OAAO,SAAAw4B,GAAG,OAAIA,EAAI/sC,QAAU6sC,KA1GjD1yC,EA6GnBuE,OAAS,SAAC0tB,GAAQ,IACR4gB,EAAwB7yC,EAAKwC,MAA7BqwC,oBACc7yC,EAAKM,MAAnB4xB,YACUD,IAChBjyB,EAAKmB,SAAS,CAAE+wB,UAAWD,IACf,MAARA,GACF4gB,MAnHa7yC,EAwHnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IA5HE7G,EA+HnB8yC,qBAAuB,WAAM,IAAAxvC,EAGvBtD,EAAKwC,MAET,MAAO,CALoBc,EAEzB+pB,UAIY,GANa/pB,EAEf+uC,mBAKW,GAPI/uC,EAEIgvC,mBAMR,GARIhvC,EAEuBivC,mBAO3B,IACrBn4B,OAAO,SAAA6M,GAAC,OAAIA,EAAEphB,SAzIC7F,EA4InB+yC,eAAiB,SAAA52C,GAKX,IAAAgvC,EAAAhvC,EAJJsnB,cAII,IAAA0nB,EAJK,GAILA,EAAA6H,EAAA72C,EAHJw2C,sCAGI,IAAAK,EAH6B,GAG7BA,EAAAC,EAAA92C,EAFJ+2C,kBAEI,IAAAD,EAFS,GAETA,EAAAE,EAAAh3C,EADJy2B,gBACI,IAAAugB,EADO,GACPA,EAAA3oC,EAGAxK,EAAKwC,MADP4wC,EAFE5oC,EAEF4oC,sBAAuBC,EAFrB7oC,EAEqB6oC,wBAAyBvvB,EAF9CtZ,EAE8CsZ,aAAcC,EAF5DvZ,EAE4DuZ,eAG1DuvB,EAAoBtzC,EAAK8yC,uBAkC/B,OACErvC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,gCACfoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,EAAG0S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,gCAxCiB,IAA7BsxC,EAAkB/sC,OAElB9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,qFAURtD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,EAAG0S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAM0vC,KACf/wC,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,gBA+BEoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,KACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,kBACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,YACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,UACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,QACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,eACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,YACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAa,OAG3BzgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC4sC,EAASpyB,GACpB,OAAKyR,EAASzR,GAKZ1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKs3C,GAAWlxC,UAAWuwB,EAASzR,GAAOiqB,QAAU,SAAW,IACrE3nC,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAQ,IAAI3hB,UAAU,wBACxBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAEgtB,SAAU,SAAUO,WAAY,SAAUtE,UAAW,SAClFxsB,EAAA1B,EAAAC,cAAA,UAAKmf,EAAQ,GACb1d,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,kCACJlmC,YAAY,iBACZ7G,SACE,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,gCAAiCoiB,WAElFnL,QAAS28B,EACT7hC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,aACJlmC,YAAY,WACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,WAAYoiB,WACrEnL,QAASs9B,EACTxiC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,QACJlmC,YAAY,SACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,MAAOoiB,WAChEnL,QAASk9B,EACTpiC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,SACJlmC,YAAY,OACZ5N,KAAK,OACL6N,UAAU,KACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,SAKvC1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,eACJlmC,YAAY,cACZ5N,KAAK,OACLqR,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,QAIrC1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,YACJlmC,YAAY,WACZmmC,cAAexzC,EAAKyzC,kBACpBh0C,KAAK,OACLqR,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,QAIrC1d,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACExL,QAAS,kBAAM2vC,EAAwB,CAAElyB,WACzCpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,YA1FtC,WAtNFjR,EA4TnB0zC,iBAAmB,WAAM,IACfhnB,EAAmB1sB,EAAKwC,MAAxBkqB,eACR,OACEjpB,EAAA1B,EAAAC,cAAC2xC,GAAD,CACEpD,WAAY7jB,EAAextB,GAC3BwtB,eAAcvvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTuvB,EADS,CAEZiB,uBAAuB,OAjU7B3tB,EAAKM,MAAQ,CACX4xB,UAAW,KAGblyB,EAAK6Z,QAAU,SAAAjL,GAGT,IAFJglC,EAEIhlC,EAFJglC,qBACAC,EACIjlC,EADJilC,YAEMC,EAAO,CACX,CACEjtC,IAAK,kBACL9H,KAAM0E,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,wBACNkI,MAAO,QACP+J,QAAQ,GAEV,CACEzT,IAAK,iBACL9H,KAAM,WACN4a,SAAS,EACTW,QAAQ,GAEV,CACEzT,IAAK,eACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,MAAI,GAAAnc,OAAGmc,EAAIghB,eAAP,MAAAn9B,OAA0Bmc,EAAI+gB,cAAetQ,SAE9D,CAAEhiB,IAAK,QAAS9H,KAAM,WAGxB,SAAA9C,OACK63C,EACA,CACD,CACEjtC,IAAK,eACL9H,KAAM,OACNuZ,UAAWs7B,GAAwBC,EACnCp0C,KAAM,SACN8N,IAAK,EACLC,IAAK,IACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAAmQ,GAAA,IAAGmH,EAAHnH,EAAGmH,aAAH,OACNpvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb6b,KAIP,CACEhsB,IAAK,uBACL9H,KAAM,eACNU,KAAM,SACN8N,IAAK,IACLC,IAAK,MACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAA+R,GAAA,IAAGwF,EAAHxF,EAAGwF,qBAAH,OACNrvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb3D,KAAKue,MAAMkB,MAIlB,CACEjsB,IAAK,UACL9H,KAAM,SACNwR,MAAO,QACPoJ,SAAS,MAMjB3Z,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,iBACzCwX,SAAU,SAACwc,GACT93B,EAAK+zC,YAAYjc,MAjGN93B,wEAyUV,IAAAS,EAAAP,KAKP,GAFIA,KAAKsC,MADPjC,QAIA,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MANF,IAAApL,EA4BHtU,KAAKsC,MAlBPkO,EAVK8D,EAUL9D,WACAN,EAXKoE,EAWLpE,aACAiV,EAZK7Q,EAYL6Q,gBACAR,EAbKrQ,EAaLqQ,OACAmvB,EAdKx/B,EAcLw/B,8BACA1nB,EAfK9X,EAeL8X,WACAzL,EAhBKrM,EAgBLqM,SACAgW,EAjBKriB,EAiBLqiB,SACA7B,EAlBKxgB,EAkBLwgB,OACAke,EAnBK1+B,EAmBL0+B,WACAtgB,EApBKpe,EAoBLoe,SACA+f,EArBKn+B,EAqBLm+B,+BACAsB,EAtBKz/B,EAsBLy/B,kBACAvnB,EAvBKlY,EAuBLkY,eACAwnB,EAxBK1/B,EAwBL0/B,sBACAp6B,EAzBKtF,EAyBLsF,MACAI,EA1BK1F,EA0BL0F,gBACAkE,EA3BK5J,EA2BL4J,QAIA8T,EACEhyB,KAAKI,MADP4xB,UAGF,OACEzuB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEsrB,UAAW,SAC/C7uB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAOFphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAMo5B,QAAM,EAAC9xC,UAAU,OAAO+O,SAAUhB,GACtC3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,qCAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,QACL+R,UAAW6G,GACXtK,YAAY,QACZS,aAAa,QACbkI,QAASgf,EACTxuB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,QAAS,UAAWjB,SAK3D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6gB,OAKjBpzB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6K,OAKjBpd,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,sBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,WACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,SAKjE3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAMnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAMnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAKnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0B,KAC1CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW1E,GACXlF,MAAM,wBACNrB,MAAOouC,EAAoB,UAAY,GACvCzoC,eAAgByoC,OAMxBxwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,cACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACLsO,YAAY,aACZ5N,KAAK,OACL6N,UAAU,KACVwD,UAAW1D,GACXU,aAAa,cAQvBrK,EAAA1B,EAAAC,cAAA,WAEAyB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC+wB,GAAA,EAAD,CAAKC,MAAI,EAAChsB,MAAO,CAAE4mB,IAAK,WACtBnqB,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,qBAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACVqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAJ7B,sBAWNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,kBAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQmV,SAAO,EAACtd,MAAM,YAAY1E,UAAU,OAAOqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAA9E,mBAMNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,gBAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,kBAaRd,EAAA1B,EAAAC,cAACmxB,GAAA,EAAD,CAAYjB,UAAWA,GACrBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAAS/wB,UAAU,qBAAqBgxB,MAAM,KAC5C5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACE9nB,KAAK,WACL+R,UAAW5Q,KAAK6yC,eAChBngB,SAAUA,EACVsgB,WAAYA,EACZP,+BAAgCA,EAChCzgB,UAAWA,MAIjBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEIq5B,EACEzwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,eACrBoB,EAAA1B,EAAAC,cAAC4d,GAAD,OAIAnc,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,aACboB,EAAA1B,EAAAC,cAAA,UACEgF,MAAO,CAAEwJ,OAAQ,QACjBnO,UAAU,kCACV5C,KAAK,SACLiE,QAASswC,GAETvwC,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QANF,qBAWJoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,6BACN+V,QAAS3Z,KAAK2Z,QAAQ,CACpBg6B,YAAannB,EAAemnB,YAC5BD,qBAAsBlnB,EAAeknB,qBACrCQ,6BAA8B1nB,EAAe0nB,+BAE/Ct6B,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBvwB,YAAa4G,EAAMvT,OACnByM,KAAM,EACNiH,SAAUC,EACVR,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,OAOhCrc,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACG3a,KAAKwzC,uBAMdjwC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEsrB,UAAW,SAC/C7uB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAjtBmB5hB,iBAA3BuvC,GA+DG9qC,aAAe,CACpBgJ,YAAY,GA+pBhB,IAMe/D,MANiB0E,aAAU,CACxCC,KAAM,qBACNnC,YACA2Q,oBAAoB,GAHUzO,CAI7BmhC,KCxSYhI,eA/bb,SAAAA,EAAYhoC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsqC,IACjBxqC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqtC,GAAAnqC,KAAAH,KAAMsC,KAkCR6xC,4BAA8B,WAAM,IAC1Bn1C,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvCjpB,GAA6B,CAC3B/rB,KACAgR,UAAW,WACTlQ,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC90C,aAAqB,kCAEvBuC,QAAS,WACP3B,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC50C,aAAmB,sEA9CNU,EAmDnBwwC,mBAAqB,WAAM,IAAAltC,EACDtD,EAAKwC,MAArBtD,EADiBoE,EACjBpE,GAAIyF,EADarB,EACbqB,QACNrE,EAAQ,GAETpB,EAsBLwG,GAAI,CACFxG,KACAgR,UAAW,SAACwc,GACV1sB,EAAKmB,SAAS,CACZurB,eAAevvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACVuvB,EACApsB,MAITqB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,gCACnBqF,EAAQG,KAAK,4BAEbxF,aAAmB,+DApCvBU,EAAKmB,SAAS,CACZurB,eAAevvB,OAAA0Q,GAAA,EAAA1Q,CAAA,CACb+B,GAAI,EACJ2V,MAAM,IAAIK,MAAOiyB,cACjBhS,QAAS,KACTR,MAAO,CAAE9uB,MAAO,EAAGqB,MAAO,KAC1BswB,UAAW,KACXJ,QAAS,CAAEvxB,MAAO,EAAGqB,MAAO,KAC5B6Z,QAAS,CAAElb,MAAO,EAAGqB,MAAO,KAC5BotC,aAAc,CAAEzuC,MAAO,EAAGqB,MAAO,KACjCmrC,kBAAmB,CAAExsC,MAAO,EAAGqB,MAAO,KACtCorC,kBAAmB,CAAEzsC,MAAO,EAAGqB,MAAO,KACtCqrC,kBAAmB,CAAE1sC,MAAO,EAAGqB,MAAO,KACtC4kB,8BAA8B,GAC3BxrB,MAtEQN,EAkGnBie,eAAiB,WACfC,GAAe,CACbhO,UAAW,SAAA/T,GAML,IACEmE,EAAQ,CACZ00B,OAFE74B,EALJ64B,OAQE6B,SAHE16B,EAJJ06B,SAQEvK,WAJEnwB,EAHJmwB,WAQEqmB,+BALEx2C,EAFJw2C,+BAQEO,WANE/2C,EADJ+2C,YAUAlzC,EAAKmB,SAASb,GACdN,EAAKwwC,sBAEP7uC,QAAS,kBAAMrC,aAAmB,qDAtHnBU,EA0HnBu0C,qBAAuB,SAACvhC,EAAMiH,EAAUmE,GAAY,IAC1Clf,EAAOc,EAAKwC,MAAZtD,GAERc,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvB91B,QAASA,GAAW,KAGtB4M,GAAmB,CACjB5M,UACAlf,KACAgR,UAAW,SAAAtB,GAAyB,IAAZkL,EAAYlL,EAAtBiS,SACZ7gB,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvBp6B,QACAI,gBAAiBJ,EAAMvT,UAG3B5E,QAAS,WACP3B,EAAKmB,SAAS,CACZ2Y,MAAO,GACPo6B,uBAAuB,IAEzB50C,aAAmB,oDAjJNU,EAsJnBw0C,0BAA4B,WAAM,IAAAC,EACNz0C,EAAKM,MAAvBsyB,gBADwB,IAAA6hB,EACb,GADaA,EAG1BxD,EAA+B,IAApBre,EAASrsB,OAAe,EAAK8M,KAAK7F,IAALT,MAAAsG,KAAIlW,OAAAmrB,GAAA,EAAAnrB,CAAQy1B,EAASjsB,IAAI,SAAA+kB,GAAA,OAAAA,EAAGvK,UAAsB,EAEhGnhB,EAAKmB,SAAS,CACZyxB,SAAQ,GAAA32B,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CACHy1B,GADG,CAEN,CACE1zB,GAAI,EACJiiB,MAAO8vB,EACPvkB,eAAgB,GAChBW,SAAU,CACRxnB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,MAER4U,IAAK,CACH1nB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,MAER8U,WAAY,QACZC,QAAS,QACTga,KAAM,GACNla,8BAA+B,CAC7B3nB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,YArLG3Y,EA4LnB00C,4BAA8B,SAAApnB,GAAe,IAAZnM,EAAYmM,EAAZnM,MAAYwzB,EACjB30C,EAAKM,MAAvBsyB,SACFlK,QAFqC,IAAAisB,EACxB,GADwBA,GAEjBhuC,IAAI,SAAAqU,GAAC,OAAA7d,OAAA0Q,GAAA,EAAA1Q,CAAA,GAC1B6d,EAD0B,CAE7BowB,QAASpwB,EAAEowB,SAAWpwB,EAAEmG,QAAUA,MAGpCnhB,EAAKmB,SAAS,CAAEyxB,SAAUlK,KAnMT1oB,EAsMnB40C,cAAgB,SAACC,InDyDZ,SAAAC,GAA+D,IAA9BD,EAA8BC,EAA9BD,OAAQ3kC,EAAsB4kC,EAAtB5kC,UAAWvO,EAAWmzC,EAAXnzC,QAClDxD,aAAM,GAAAlC,OAAIL,KAAJ,cAAAK,OAAmC44C,IAC7C/2C,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KmDlEvBg3C,CAAsB,CACpBF,SACA3kC,UAAW,SAAC2Q,GACV7gB,EAAKmB,SAAS,CAAE0f,cAElBlf,QAAS,kBAAMrC,aAAmB,6CA5MnBU,EAgNnBoQ,aAAe,SAAChB,GACd,GAAKA,EAAL,CADyB,IAIvBlQ,EAaEkQ,EAbFlQ,GACkB66B,EAYhB3qB,EAZF2R,QAAWlb,MACQyhC,EAWjBl4B,EAXFie,SAAYxnB,MACIsvB,EAUd/lB,EAVFulB,MAAS9uB,MACc+qC,EASrBxhC,EATFklC,aAAgBzuC,MACE2xB,EAQhBpoB,EARFgoB,QAAWvxB,MACXwsC,EAOEjjC,EAPFijC,kBACAC,EAMEljC,EANFkjC,kBACAC,EAKEnjC,EALFmjC,kBACA3f,EAIExjB,EAJFwjB,SACA9G,EAGE1c,EAHF0c,6BACAmoB,EAEE7kC,EAFF6kC,kBACA5hB,EACEjjB,EADFijB,QAmBF5H,GAhBe,CACbvrB,KACAi2B,UACAyb,iBACA7W,YACAuN,aACA9P,YACAwd,oBAAqB3C,EAAoBA,EAAkBxsC,MAAQ,EACnEovC,oBAAqB3C,EAAoBA,EAAkBzsC,MAAQ,EACnEqvC,oBAAqB3C,EAAoBA,EAAkB1sC,MAAQ,EACnE+sB,WACA9G,+BACAmoB,oBACA5hB,WAGW,CACXniB,UAAW,WACT9Q,aAAqB,6CAEDY,EAAKwC,MAAjBmC,QACAG,KAAK,4BAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,kEA9PRU,EAoQnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAtQShoB,EAyQnBm1C,sBAAwB,SAACjtB,EAAWC,EAAOxP,GAAS,IAAAmvB,EAC5Cpb,EAAmB1sB,EAAKM,MAAxBosB,eASYyI,GAPlBzI,EAAcvvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTuvB,GADSob,EAAA,GAAA3qC,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAEX3f,EAAQxP,EAAK9S,OAFF1I,OAAA2S,GAAA,EAAA3S,CAAA2qC,EAGX5f,EAAYvP,GAHDmvB,KAOZnT,MAAS9uB,MAGX7F,EAAKmB,SAAS,CAAEurB,mBAEZyI,GACFn1B,EAAK40C,cAAczf,IAzRJn1B,EA6RnBo1C,4BAA8B,WAAM,IAC1Bl2C,EAAOc,EAAKwC,MAAZtD,GAEHA,GAQLc,EAAKmB,SAAS,CACZZ,SAAS,IAGXsqB,GAAuC,CACrCE,UAAW7rB,EACXgR,UAAW,SAAC0iB,GACV5yB,EAAKmB,SAAS,CACZZ,SAAS,EACTqyB,SAAUA,EAASjsB,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,eAGlDxf,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEyxB,SAAU,GAAIryB,SAAS,IACnCxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,kCAEnBA,aAAmB,gEAxBvBU,EAAKmB,SAAS,CACZyxB,SAAU,MAlSG5yB,EA+TnB2oB,iBAAmB,SAAC3nB,EAAGmgB,GAAU,IACvByR,EAAa5yB,EAAKM,MAAlBsyB,SAEF/sB,EAA0B,WAAlB7E,EAAE+O,OAAOtQ,KAAoBgH,OAAOzF,EAAE+O,OAAOlK,OAAS,GAAA5J,OAAG+E,EAAE+O,OAAOlK,OAAQgjB,OAElFwsB,EAAWl4C,OAAAmrB,GAAA,EAAAnrB,CAAOy1B,GACxByiB,EAAYl0B,GAAZhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKk4C,EAAYl0B,GADjBhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK6D,EAAE+O,OAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,IAInC7F,EAAKmB,SAAS,CAAEyxB,SAAUyiB,KA5UTr1C,EA+UnB8oB,mBAAqB,SAAA0B,GAA6B,IAAAzB,EAA1BxS,EAA0BiU,EAA1BjU,OAAQxX,EAAkByrB,EAAlBzrB,KAAMoiB,EAAYqJ,EAAZrJ,MACpCnhB,EAAKmB,SAAS,CAAEZ,SAAS,IADuB,IAGxCqyB,EAAa5yB,EAAKM,MAAlBsyB,SACFyiB,EAAWl4C,OAAAmrB,GAAA,EAAAnrB,CAAOy1B,GAClBr2B,GAAIwsB,EAAA,GAAA5rB,OAAA2S,GAAA,EAAA3S,CAAA4rB,EACPhqB,EAAOwX,GADApZ,OAAA2S,GAAA,EAAA3S,CAAA4rB,EAAA,QAER5H,GAFQ4H,GAKVssB,EAAYl0B,GAAZhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKk4C,EAAYl0B,GACZ5kB,GAGLyD,EAAKmB,SAAS,CACZyxB,SAAUyiB,EACV90C,SAAS,EACT+0C,gBAAgB,IAAIpgC,MAAOqgC,aA9V7Bv1C,EAAKM,MAAQ,CACX00B,OAAQ,GACRnU,SAAU,GACVgW,SAAU,GACVvK,WAAY,GACZqmB,+BAAgC,GAChCO,WAAY,GACZxmB,eAAgB,KAChBnsB,SAAS,EACTqyB,SAAU,GACV0iB,eAAgB,EAEhBpB,uBAAuB,EACvBp6B,MAAO,GACPI,gBAAiB,EACjBkE,QAAS,CACPpL,KAAM,EACNiH,SAAU,GACVqG,gBAAiB,GACjB6Y,aAAc,GACdC,eAAgB,KAIpBp5B,EAAKq0C,4BAA4B1/B,KAAjCxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KA3BiBA,mFA+BjBE,KAAK+d,iBACL/d,KAAKk1C,+DAqUE,IAAA5qC,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAkBH3B,KAAKI,MAdPosB,EAJK7qB,EAIL6qB,eACA7L,EALKhf,EAKLgf,SACAyL,EANKzqB,EAMLyqB,WACA0I,EAPKnzB,EAOLmzB,OACA6B,EARKh1B,EAQLg1B,SACA8b,EATK9wC,EASL8wC,+BACAO,EAVKrxC,EAULqxC,WACA3yC,EAXKsB,EAWLtB,QACAqyB,EAZK/wB,EAYL+wB,SACA0iB,EAbKzzC,EAaLyzC,eACApB,EAdKryC,EAcLqyC,sBACAp6B,EAfKjY,EAeLiY,MACAsE,EAhBKvc,EAgBLuc,QACAlE,EAjBKrY,EAiBLqY,gBAGIK,EAAW+R,GAAc0I,GAAUtI,GAAkBimB,EAA+BpsC,OAE1F,OACE9C,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,oBAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,wBAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,KAEJF,GAAYha,EACRkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEDnc,EAAA1B,EAAAC,cAACwzC,GAADr4C,OAAAuP,OAAA,GACMggB,EADN,CAEEtb,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACbxnB,QAASA,EACT4M,cAAeuf,EACfA,eAAgBA,EAChB/nB,QAASA,EACT2nB,WAAYA,EACZzL,SAAUA,EACVmU,OAAQA,EACR6B,SAAUA,EACV8b,+BAAgCA,EAChCO,WAAYA,EACZnoB,UAAWtkB,OAAOvH,GAElBo2C,eAAgBA,EAEhBxxB,aAAc5jB,KAAKyoB,iBACnB5E,eAAgB7jB,KAAK4oB,mBAErBzD,gBAAiBnlB,KAAKi1C,sBACtB/B,sBAAuBlzC,KAAKs0C,0BAC5BnB,wBAAyBnzC,KAAKw0C,4BAC9B7B,oBAAqB3yC,KAAKq0C,qBAC1BP,8BAA+B9zC,KAAKm0C,4BAEpCzhB,SAAUA,EAEVshB,sBAAuBA,EACvBp6B,MAAOA,EACPI,gBAAiBA,EACjBkE,QAASA,EACT0B,oBAAkB,eAhbA7c,mDCAhCwyC,eAKJ,SAAAA,EAAYjzC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAu1C,IACjBz1C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAs4C,GAAAp1C,KAAAH,KAAMsC,KAuBRixB,aAAe,WClCV,IAAiC52B,IDmCZ,CACtBqT,UAAW,SAAC4J,GACV9Z,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,WAGJnY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,mDC3ClBnB,aAAM,GAAAlC,OAAID,KAAJ,4BACV8B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MDA9BiC,EAuCnB0zB,WAAa,SAACx0B,GACQc,EAAKwC,MAAjBmC,QACAG,KAAR,4BAAA7I,OAAyCiD,KAzCxBc,EA4CnB+e,wBAA0B,WACxB/e,EAAKyzB,gBA7CYzzB,EAgDnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IApDE7G,EAuDnBif,SAAW,SAAA9iB,GAAe,IAAZ0J,EAAY1J,EAAZ0J,MACN8S,EAAO3Y,EAAK4zB,OAAO9b,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUA,IAC/C,OAAK8S,EAIEA,EAAK5R,MAHH/G,EAAK4zB,OAAO,GAAG7sB,OA1DP/G,EAgEnB6zB,6BAA+B,SAAAjlB,GAAmC,IAAhCklB,EAAgCllB,EAAhCklB,OAAQC,EAAwBnlB,EAAxBmlB,kBACxC,MAAK,CAACnR,GAAqBE,UAAUjd,MAAO+c,GAAqBH,QAAQ5c,OAAO2e,SAASsP,EAAOjuB,OAK9FpC,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,YAAO4gB,GAAqBE,UAAU5b,MAAtC,MACAzD,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEH7J,GAAqBgX,EAAkBG,kBAI1CtR,GAAqBH,QAAQ5c,QAAUiuB,EAAOjuB,MAE1CpC,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,YAAO4gB,GAAqBH,QAAQvb,MAApC,MACAzD,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEH7J,GAAqBgX,EAAkBI,gBAI5C,KAEN1wB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,qCACAyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAO/G,EAAKif,SAAS6U,GACrBlN,MAAI,GAEHjK,GAAiBoX,EAAkBK,sBA/CvC,MAhETp0B,EAAKM,MAAQ,CACXC,SAAS,EACTuZ,MAAO,IAGT9Z,EAAK4zB,OAAS,CACZ,CACE/tB,MAAO,EAAGkB,MAAO,aAEnB,CACElB,MAAO,EAAGkB,MAAO,QAEnB,CACElB,MAAO,EAAGkB,MAAO,YAfJ/G,mFAqBjBE,KAAKuzB,gDAqGE,IAAAhzB,EAAAP,KAAA2B,EAIH3B,KAAKI,MAFPC,EAFKsB,EAELtB,QACAuZ,EAHKjY,EAGLiY,MAGF,OAAIvZ,EAEAkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAKFnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,iBAClByX,IAAUA,EAAMvT,SACjB9C,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAC8E,EAAA,EAAD,CAAOC,MAAM,OAAO1E,UAAU,cAAcc,MAAI,GAC9CM,EAAA1B,EAAAC,cAAA,kEAGAyB,EAAA1B,EAAAC,cAAA,yCAC8B,IAC5ByB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,qBAEd,qEAOTyX,GAASA,EAAMvT,QACd9C,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAACqyB,GAAA,EAAD,CAAMhyB,UAAU,QACdoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,WACW,kCACToB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,iBAGpBoB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMrE,MAAO,CAAEid,aAAc,SACpCxgB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,YACA1sB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,YACN6f,MAAI,GAHN,cAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,OACN6f,MAAI,GAHN,aAOAnjB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,WAC1CltB,MAAM,UACN6f,MAAI,GAHN,cAUNnjB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNyO,EAAMnT,IAAI,SAAA6f,GAAC,OACV/iB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CACEnY,UAAU,OACVoY,GAAI,EACJ6Z,GAAI,EACJ/B,GAAI,GACJ1rB,IAAG,WAAA5K,OAAauqB,EAAEtnB,KAElBuE,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,CACE0J,SAAO,EACPtd,MAAM,UACNrD,QAAS,kBAAMjD,EAAKizB,WAAWlN,EAAEtnB,KACjCmD,UAAU,+BAEVoB,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAS,8BAAApG,OAAgCwE,EAAKwe,SAASuH,EAAEsN,UACjErwB,EAAA1B,EAAAC,cAAA,MACEK,UAAU,sBACV2E,MAAO,CACL2P,QAAS,cACTqd,SAAU,OACVO,WAAY,WACZjY,eAAgB,gBAChB/L,MAAO,OACP0T,aAAc,MAGhBxgB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAEHJ,EAAE6L,SAEL5uB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAHN,KAKKJ,EAAEtnB,IAEN,IACDuE,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,WACnBtS,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAHN,OAKOJ,EAAEgO,gBAGX/wB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qCACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBACXmkB,EAAEzF,SAELtd,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,YACGwkB,EAAEmO,OAELlxB,EAAA1B,EAAAC,cAAA,YACGwkB,EAAEiO,iBAAkB,kBAAgBjO,EAAEkM,SAM/CjvB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMhJ,UAAU,sBACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACTqd,SAAU,OACV1X,eAAgB,gBAChBsR,IAAK,SAGPnqB,EAAA1B,EAAAC,cAAA,sBAEEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOtG,EAAKwe,SAASuH,EAAEsN,QACvBlN,MAAI,GAEHJ,EAAEwW,qBAGPv5B,EAAA1B,EAAAC,cAAA,WAAM,QAKXvB,EAAKozB,6BAA6BrN,wBA1S5BvjB,iBA+T1BC,eAAWuyC,IE7TpBC,eAKJ,SAAAA,EAAYlzC,GAAO,IAAAxC,EAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAw1C,IACjB11C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAu4C,GAAAr1C,KAAAH,KAAMsC,KAuHRu0B,cAAgB,WAEd,OADoC/2B,EAAKwC,MAAjCsH,QAAW3D,YAzHFnG,EA6HnBg3B,aAAe,SAACnuB,GACd,IAAM8sC,EAAiB31C,EAAK+2B,kBAAoBrV,GAAME,SACtD,OAAQ/Y,EAAKG,aAAeH,EAAKM,SAAaN,EAAKG,YAAcH,EAAKM,SAAWwsC,GA/HhE31C,EAkInBk3B,WAAa,SAACruB,GACZ,IAAM+sC,EAAc51C,EAAK+2B,kBAAoBrV,GAAMI,MACnD,OAAOjZ,EAAKM,SAAWysC,GApIN51C,EAuInB82B,oBAAsB,SAAC9jB,EAAMiH,GAA2B,IAAjBmE,EAAiBpR,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAAOsqB,EAIlDlZ,EAFFgZ,eAFoD,IAAAE,EAE1C,CAAEzxB,MAAO,EAAGqB,MAAO,KAFuBowB,EAAAC,EAIlDnZ,EADFiZ,sBAHoD,IAAAE,EAGnC,EAHmCA,EAMhD16B,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPihB,EADO,CAEViZ,eAAgB5wB,OAAO4wB,GACvBG,UAAWJ,EAAQvxB,QAGrB7F,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASvhB,IDjLR,SAAqB46B,EAAS56B,GAC5BmC,aAAO,GAAA/C,OAAID,KAAJ,cAAAC,OAA8Bw7B,GAAW56B,EAAOyhB,UAC3DxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KC4K/C83C,CACiB,IAHmB71C,EAAKwC,MAAjCsH,QAAW3D,WAIjB,CACEmY,SAAU,CACRtL,OACAiH,WACAmE,QAASvhB,GAEXqT,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,qDA7KRU,EAmLnBie,eAAiB,WACfje,EAAKmB,SAAS,CACZZ,SAAS,IAGX2d,GAAe,CACbhO,UAAW,SAAA/T,GAAkB,IAAf06B,EAAe16B,EAAf06B,SACZ72B,EAAKmB,SAAS,CACZ01B,WACAt2B,SAAS,IAHgB,IAAAsB,EAMA7B,EAAKM,MAAxB0S,EANmBnR,EAMnBmR,KAAMiH,EANapY,EAMboY,SACdja,EAAK82B,oBAAoB9jB,EAAMiH,IAEjCtY,QAAS,SAAC5D,GACR+C,QAAQC,IAAIhD,GACZuB,aAAmB,qDApMNU,EAyMnB81C,QAAU,SAAC19B,GACWpY,EAAKwC,MAAjBmC,QACAG,KAAR,4BAAA7I,OAAyCmc,EAAIlZ,MA3M5Bc,EA8MnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK82B,oBAAoB9jB,EAAMiH,EAAUmE,KAjN1Bpe,EAqNnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU7K,KAxNvBpP,EA4NnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU,KA9NrBja,EAiOnBo4B,uBAAyB,SAAChgB,GD/NrB,IAAwBgS,EAAa9O,EACnCnf,EC+NDic,IDhOuBgS,ECiOVhS,EAAIlZ,GDjOmBoc,ECiOf,CACrBpL,UAAW,WAAM,IAGTmoB,EAFYr4B,EAAKM,MAAfwZ,MAEenT,IAAI,SAAAgS,GAAI,OAC7BA,EAAKzZ,KAAOkZ,EAAIlZ,GAAhB/B,OAAA0Q,GAAA,EAAA1Q,CAAA,GAA0Bwb,EAA1B,CAAgC2f,kBAAmBlgB,EAAIkgB,mBAAqB3f,IAG9E3Y,EAAKmB,SAAS,CACZ2Y,MAAOue,IAGTj5B,aAAoB,WAAAnD,OACLmc,EAAIkgB,iBAAmC,cAAhB,cADlB,2BAItB32B,QAAO,eAAAo0C,EAAA54C,OAAA64C,GAAA,EAAA74C,CAAA84C,GAAAl0C,EAAAm0C,KAAE,SAAAC,EAAOp4C,GAAP,OAAAk4C,GAAAl0C,EAAAq0C,KAAA,SAAAC,GAAA,cAAAA,EAAAlO,KAAAkO,EAAAC,MAAA,OACHv4C,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,oDAJd,wBAAA+2C,EAAAE,SAAAJ,MAAF,gBAAAK,GAAA,OAAAT,EAAAhpC,MAAA7M,KAAA8M,YAAA,IDhPNhO,aAAO,GAAA/C,OAAID,KAAJ,0BAA2CouB,GACtDtsB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,OARIxtB,EAAAgB,OAAA64C,GAAA,EAAA74C,CAAA84C,GAAAl0C,EAAAm0C,KAQE,SAAAC,EAAOp4C,GAAP,OAAAk4C,GAAAl0C,EAAAq0C,KAAA,SAAAC,GAAA,cAAAA,EAAAlO,KAAAkO,EAAAC,MAAA,WACDh7B,IAAYA,EAAS3Z,QADpB,CAAA00C,EAAAC,KAAA,eAAAD,EAAAI,GAC6Bn7B,EAD7B+6B,EAAAC,KAAA,EACoDv4C,EAAMF,OAD1D,OAAAw4C,EAAAK,GAAAL,EAAAM,KAAAN,EAAAI,GACsC90C,QADtCtB,KAAAg2C,EAAAI,GAAAJ,EAAAK,IAAA,wBAAAL,EAAAE,SAAAJ,MARF,SAAAK,GAAA,OAAAr6C,EAAA4Q,MAAA7M,KAAA8M,gBCHYhN,EA8PnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAlQE7G,EAqQnBu4B,YAAc,WAAM,IAAAC,EACQx4B,EAAKM,MAAvBu2B,SAER,YAHkB,IAAA2B,EACC,GADDA,GAnQlB,IAAM3vB,EAAOpM,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GAF/C,OAIjBoD,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IACf23B,SAAU,IAEZ72B,EAAK6Z,QAAU,CACb,CACEhT,IAAK,mBACL9H,KAAM,UACNwR,MAAO,OACP+J,QAAQ,EACRX,QAAS3Z,EAAKg3B,aAAanuB,GAC3B1F,KAAM,CACJmY,SAAU,SAAAlD,GAAG,OAAKpY,EAAKo4B,uBAAuBhgB,IAC9CtH,UAAW,SAAAsH,GAAG,OACZ3U,EAAA1B,EAAAC,cAAA,QACEK,UAAW+V,EAAIkgB,iBAAmB,aAAe,eACjDx0B,MAAOsU,EAAIkgB,iBAAmB,qBAAuB,6BAK7D,CACEzxB,IAAK,WACL9H,KAAM,WACNub,OAAQta,EAAKk3B,WAAWruB,GACxB8Q,QAAS3Z,EAAKk3B,WAAWruB,IAE3B,CACEhC,IAAK,gBACL9H,KAAM,iBACNub,QAAQ,EACRX,SAAS,GAEX,CACE9S,IAAK,UACL9H,KAAM,UACNwc,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIoc,cAAX,OAAAv4B,OAA8Bmc,EAAI2I,QAAlC,OAAA9kB,OAA+Cmc,EAAIia,UAC9D/X,QAAQ,EACR/J,MAAO,SAET,CACE1J,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRX,SAAS,EACTtX,UAAW,cACXkO,MAAO,QACP9Q,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAKu4B,aAEhBhd,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIgf,QAAUhf,EAAIgf,QAAU,OAEhD,CACEvwB,IAAK,QACL9H,KAAM,QACNwR,MAAO,QACPlO,UAAW,cACXiY,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OAAIA,EAAIuc,QAErB,CACE9tB,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OAAIA,EAAIoa,UAErB,CACE3rB,IAAK,iBACL9H,KAAM,WACNU,KAAM,SACN6a,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIqc,iBAAX,SACXlkB,MAAO,OACPlO,UAAW,eAEb,CACEwE,IAAK,qBACL9H,KAAM,UACNU,KAAM,SACN6a,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OACT3U,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOqR,EAAI4kB,mBAAqB,EAAI,UAAY,YAChDpW,MAAI,GAEHxO,EAAI4kB,sBAIXzsB,MAAO,OACPlO,UAAW,eAEb,CAAEwE,IAAK,UAAW9H,KAAM,YAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,gBACzCwX,SAAU,SAAClD,GACTpY,EAAK81C,QAAQ19B,MA9GFpY,mFAqHjBE,KAAK+d,kDAsJE,IAAAxd,EAAAP,KAAAuf,EAQHvf,KAAKI,MANPC,EAFKkf,EAELlf,QACAuZ,EAHK2F,EAGL3F,MACA9G,EAJKyM,EAILzM,KACAiH,EALKwF,EAKLxF,SACAC,EANKuF,EAMLvF,gBACAkE,EAPKqB,EAOLrB,QAEF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEPnc,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,6CACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aA/SM7c,iBA6TzBC,eAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtB4qC,KCvVEkB,iOAsBK,IAAAtzC,EAGHpD,KAAKsC,MADPzD,EAFKuE,EAELvE,KAAMwM,EAFDjI,EAECiI,SAAU1F,EAFXvC,EAEWuC,MAAOW,EAFlBlD,EAEkBkD,SAGzB,OACE/C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cACboB,EAAA1B,EAAAC,cAAA,SACEK,UAAS,oBAAApG,OAAgC,KAAV4J,EAAe,WAAa,IAC3DpG,KAAK,WACLV,KAAMA,EACNyH,SAAUA,EACVoF,QAAS/F,EACT0F,SAAUA,IAEZ9H,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,0BACVqB,QAAS,kBAAM8C,GAAUX,KAH3B,kBArCwB5C,iBAA1B2zC,GAYGlvC,aAAe,CAEpB6D,UAAU,GAkCd,IAAMsrC,GAA0B,SAACr0C,GAAU,IACjC6J,EAAoC7J,EAApC6J,MAAOb,EAA6BhJ,EAA7BgJ,eAAgBD,EAAa/I,EAAb+I,SAE/B,OACE9H,EAAA1B,EAAAC,cAAC80C,GAAD35C,OAAAuP,OAAA,GACML,EADN,CAEEb,eAAgBA,EAChBD,SAAUA,MAchBsrC,GAAwBnvC,aAAe,CACrC8D,eAAgB,KAChBD,UAAU,GAGGsrC,oBCjDA1nC,GA5BE,SAAAhT,GAEX,IAAA46C,EAAA56C,EADJ6wC,mBACI,IAAA+J,EADU,GACVA,EAAAC,EAAA76C,EADc+vB,oBACd,IAAA8qB,EAD6B,EAC7BA,EAAAC,EAAA96C,EADgC+6C,oBAChC,IAAAD,EAD+C,GAC/CA,EAAAE,EAAAh7C,EADmD6vB,iBACnD,IAAAmrB,EAD+D,CAAEtxC,MAAO,EAAGqB,MAAO,KAClFiwC,EACE7nC,EAAS,GAsBf,OApBK09B,IACH19B,EAAO09B,YAAc,4BAGlB9gB,GAAgBA,GAAgB,KACnC5c,EAAO4c,aAAe,0BAGnBF,GAAcA,EAAUnmB,QAC3ByJ,EAAO0c,UAAY,kCAGhBkrB,IACH5nC,EAAO4nC,aAAe,2BAGnBA,IACH5nC,EAAO4nC,aAAe,2BAGjB5nC,GChBH8nC,GAAsB,SAAAj7C,GAUtB,IAAAgvC,EAAAhvC,EATJsnB,cASI,IAAA0nB,EATK,GASLA,EAAAz9B,EAAAvR,EARJoQ,KAAQxO,EAQJ2P,EARI3P,MAAO4lB,EAQXjW,EARWiW,aACfG,EAOI3nB,EAPJ2nB,aACAuzB,EAMIl7C,EANJk7C,OACAv9B,EAKI3d,EALJ2d,MACAoS,EAII/vB,EAJJ+vB,aACAorB,EAGIn7C,EAHJm7C,UACA7U,EAEItmC,EAFJsmC,WACAC,EACIvmC,EADJumC,SAEMjqB,EAAa,CACjBY,SAAU,OACV7I,OAAQ,OACRzJ,MAAO,cACPopB,UAAW,SACXnZ,WAAY,QAKd,OACEvT,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,gCACfoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,0BACAzgB,EAAA1B,EAAAC,cAAA,MACE0B,QAAS,kBAAM2zC,EAAO,CAAE5U,WAAY,SAAUC,cAC9Cxe,MAAM,aAFR,SAIS,IACPzgB,EAAA1B,EAAAC,cAAA,KACEK,UAAS,oBAAApG,OAC4B,WAAfwmC,GAAwC,SAAbC,EAAsBA,EAAW,OAElFzxB,cAAY,UAGhBxN,EAAA1B,EAAAC,cAAA,MACE0B,QAAS,kBAAM2zC,EAAO,CAAE5U,WAAY,WAAYC,cAChDxe,MAAM,aAFR,WAIW,IACTzgB,EAAA1B,EAAAC,cAAA,KACEK,UAAS,oBAAApG,OAAqC,aAAfwmC,GAA0C,SAAbC,EAAsBA,EAAW,OAC7FzxB,cAAY,UAGhBxN,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,sBAGJzgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC4wC,EAAOp2B,GAAR,OACV1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKs7C,GAASr4C,GAAE,GAAAjD,OAAKs7C,GAASl1C,UAAWyX,EAAMqH,IAAUrH,EAAMqH,GAAOiqB,QAAU,SAAW,IAChG3nC,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OACEK,UAAU,kEACV2E,MAAO,CAAE2P,QAAS,SAElBlT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs7C,EAAL,oBACJzmC,UAAU,QACVhD,aAAa,QACbrO,KAAK,OACLkO,UA/CG,EAgDHpC,UAhDG,OAsDX9H,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs7C,EAAL,WACJzmC,UAAU,QACVhD,aAAa,QACbrO,KAAK,OACLkO,UA9DG,EA+DHpC,UA/DG,OAoEX9H,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs7C,EAAL,aACJzmC,UAAU,QACVhD,aAAa,QACbrO,KAAK,OACLkO,UA5EG,EA6EHpC,UA7EG,OAmFX9H,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE7J,MAAOyR,EACP1Z,KAAI,GAAA9C,OAAKs7C,EAAL,oBACJ93C,KAAK,SACL+N,IAAK0e,EACL3e,IAAI,IACJuD,UAAW1D,GACXU,aAAa,QACbiL,OAAQ,SAAAnK,GAAgB,IAAbmB,EAAanB,EAAbmB,OACHkc,EAAkBnS,EAAMqH,IAAUrH,EAAMqH,GAAO8K,gBACvCxlB,OAAOsJ,EAAOlK,SAEdomB,GACZnI,EAAa,CACX/T,SACAhR,KAAM0kB,EAAO1kB,KACbuhB,gBAAiBxG,EAAMqH,IAAUrH,EAAMqH,GAAOb,mBAIpD5jB,MAAO,SAAAmJ,GAAK,OAAIY,OAAOZ,IACvB8H,SAAU2pC,EACV/rC,SAAU+rC,YAWxB3zB,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,KAoBbq5C,GAAoB1vC,aAAe,CACjC6E,KAAM,GACN2f,aAAc,EACduW,WAAY,SACZC,SAAU,OAGG0U,UCtJTI,eAiCJ,SAAAA,EAAYh1C,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAs3C,IACjBx3C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAq6C,GAAAn3C,KAAAH,KAAMsC,KAIR+Y,OAAS,WAAe,IAAd1G,EAAc7H,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACf,OAAI6H,EACKC,GAAWD,EAAK+I,MAAM,KAAK,IAG7B,IARP5d,EAAKM,MAAQ,GAFIN,wEAaV,IAAAS,EAAAP,KAAAoD,EAIHpD,KAAKsC,MAFPjC,EAFK+C,EAEL/C,QACA8P,EAHK/M,EAGL+M,YAGF,GAAI9P,EACF,OAAO8P,IAPF,IAAA7F,EA6BHtK,KAAKsC,MAlBP4N,EAXK5F,EAWL4F,aACAuY,EAZKne,EAYLme,iBACA8uB,EAbKjtC,EAaLitC,WACAhX,EAdKj2B,EAcLi2B,uBACA1c,EAfKvZ,EAeLuZ,eACArT,EAhBKlG,EAgBLkG,WACAmU,EAjBKra,EAiBLqa,OACAqH,EAlBK1hB,EAkBL0hB,aAlBKwrB,EAAAltC,EAmBLmtC,mBAnBK,IAAAD,EAmBS,GAnBTA,EAAAE,EAAAptC,EAoBLwiC,mBApBK,IAAA4K,EAoBS,GApBTA,EAqBL5rB,EArBKxhB,EAqBLwhB,UACA+Z,EAtBKv7B,EAsBLu7B,QACA8R,EAvBKrtC,EAuBLqtC,oBACAnX,EAxBKl2B,EAwBLk2B,YACA5U,EAzBKthB,EAyBLshB,6BACAgsB,EA1BKttC,EA0BLstC,mBACArV,EA3BKj4B,EA2BLi4B,WACAC,EA5BKl4B,EA4BLk4B,SAGF,OACEj/B,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEsrB,UAAW,SAC9CyT,EACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOE,KAEJ3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAOFphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAMo5B,QAAM,EAAC9xC,UAAU,OAAO+O,SAAUhB,GACtC3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAIsrB,EAAU,GAAK,EAAG3Y,GAAI,IAC7B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,wBAGF0jC,GAAW+R,EACXr0C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,oCACwCuW,GAAew6B,OAK3D,KAEJr0C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACXC,YAAY,QACZS,aAAa,QACb89B,UAAQ,EACRnsC,KAAK,OACL6N,UAAU,MACV/B,UAAWw6B,EACXhwB,aAAci3B,EACdj0B,OAAQ,SAAA5c,GAAA,IAAG4T,EAAH5T,EAAG4T,OAAH,OAAgB4Y,EAAiB,CAAE5Y,iBAKnDtM,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,cACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACLsO,YAAY,aACZ7G,SACE,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,eAEjDiX,QAAS2hC,EACT7mC,UAAW6G,QAKnBlU,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACXG,IAAI,IACJC,IAAyB,IAApBwe,EAAUnmB,MAAc,EAAI,IACjCwH,YAAY,gBACZS,aAAa,QACbrO,KAAK,SACL8L,UAAWw6B,GAA+B,IAApB/Z,EAAUnmB,MAChCnJ,MAAO,SAAAuvC,GAAG,OAAIxlC,OAAOwlC,IACrBlzB,OAAQ,SAAAnK,GAAA,IAAGmB,EAAHnB,EAAGmB,OAAH,OAAgB4Y,EAAiB,CAAE5Y,iBAM9B,IAApBic,EAAUnmB,MACTpC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,2BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAW1D,GACXG,IAAI,IACJC,IAAI,MACJH,YACEye,GAAoD,IAApBE,EAAUnmB,MACtC,0BACA,mBAENiI,aAAa,QACbrO,KAAK,SACL8L,SAA8B,IAApBygB,EAAUnmB,QAAiBimB,IAAiCia,EACtExqB,OAAQ,SAAA1V,GAAK,OAAKimB,EAA+BjmB,EAAQ,IACzDnJ,MAAO,SAAAuvC,GAAG,OAAIxlC,OAAOwlC,IACrBlzB,OAAQ,SAAA2S,GAAA,IAAG3b,EAAH2b,EAAG3b,OAAH,OAAgB4Y,EAAiB,CAAE5Y,iBAKjD,KAGJtM,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAW1D,GACXC,YAAY,gBACZS,aAAa,QACbrO,KAAMsmC,EAAU,OAAS,OACzBx6B,UAAWw6B,EACXxqB,OAAQ,SAAA1V,GAAK,OAAKkgC,EAAUlgC,EAAQpF,EAAK8a,OAAO1V,IAChDkT,OAAQ,SAAAuU,GAAA,IAAGvd,EAAHud,EAAGvd,OAAH,OAAgB4Y,EAAiB,CAAE5Y,oBAQzDtM,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,KACE/W,EAAA1B,EAAAC,cAAC+1C,GAAA,EAAD,CAAW3/B,KAAG,EAAC/V,UAAU,QACvBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKE,GAAI,EAAGD,GAAI,EAAG8X,GAAI,EAAGnF,GAAI,IAC5B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,oBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACXC,YAAY,iBACZS,aAAa,QACbrO,KAAK,OACL+G,SAAUi6B,EACVnzB,UAAW,GACXyI,aAAc2qB,UAS5Bj9B,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,sBACJ9H,KAAK,sBACL+R,UAAWsmC,GACXt9B,MAAO+9B,EACP3rB,aAAcA,EACdorB,WAAYvR,EACZtD,WAAYA,EACZC,SAAUA,EACV5e,aAAc6E,EACd0uB,OAAQI,IAGVh0C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEsrB,UAAW,SAC9CyT,EACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOE,KAEJ3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCA9Qa5hB,iBAArBu0C,GA0BG9vC,aAAe,CACpBgJ,YAAY,EACZq1B,SAAS,EACTrF,YAAa,GACb1U,UAAW,CAAEnmB,MAAO,EAAGqB,MAAO,MA8PlC,IAMeyF,MANW0E,aAAU,CAClCC,KAAM,eACNnC,YACA2Q,oBAAoB,GAHIzO,CAIvBmmC,KCyDYhsB,eA5Vb,SAAAA,EAAYhpB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsrB,IACjBxrB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAquB,GAAAnrB,KAAAH,KAAMsC,KAsBRyb,eAAiB,W3D8MZ,IAAA+oB,EAAkC92B,EAAWvO,E2D7MhD3B,EAAKmB,SAAS,CACZZ,SAAS,I3D4M0B2P,GAAlC82B,E2DzMoB,CACrB92B,UAAW,SAAA/T,GAAwB,IAAA67C,EAAA77C,EAArB87C,iBAAqB,IAAAD,EAAT,GAASA,EACzB94C,EAAOc,EAAKwC,MAAZtD,GADyBg5C,EAEVl4C,EAAKM,MAApBi3C,aAFyB,IAAAW,EAEjB,GAFiBA,EAIjCl4C,EAAKmB,SAAS,CACZw2C,YAAaM,EACb13C,SAAS,EACTg3C,MAAMp6C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDo6C,EADA,CAEHvrB,UAAWisB,EAAUngC,KAAK,SAAAlJ,GAAA,OAAyB,IAAzBA,EAAG/I,YAIjC7F,EAAKwwC,mBAAmBtxC,IAE1ByC,QAAS,WACP3B,EAAKmB,SAAS,CACZw2C,YAAa,GACbp3C,SAAS,IAEXjB,aAAmB,oD3DoLc4Q,UAAWvO,EAAWqlC,EAAXrlC,QAC3CxD,aAAM,GAAAlC,OAAIL,KAAJ,wBACVkC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,M2D/ONiC,EAsDnBwwC,mBAAqB,SAACtxC,GAGpB,GAFAc,EAAKmB,SAAS,CAAEZ,SAAS,IAEpBrB,G3DnBF,SAAAouB,GAAiD,IAA1BpuB,EAA0BouB,EAA1BpuB,GAAIgR,EAAsBod,EAAtBpd,UAAWvO,EAAW2rB,EAAX3rB,QACpCxD,aAAM,GAAAlC,OAAIL,KAAJ,cAAAK,OAAmCiD,IAC7CpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,K2DuBvBo6C,CAAY,CACVj5C,KACAgR,UAAW,SAACqnC,GAAU,IACZL,EAAiBK,EAAjBL,aACRl3C,EAAKmB,SAAS,CACZZ,SAAS,EACTg3C,MAAMp6C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDo6C,EACA,CACDL,aAAcA,EAAat5B,MAAM,KAAK,QAK9Cjc,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IAErBxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,+BAEnBA,aAAmB,kEAlCzB,CAAS,IAAA84C,EACgBp4C,EAAKM,MAApBi3C,aADD,IAAAa,EACS,GADTA,EAEPp4C,EAAKmB,SAAS,CACZZ,SAAS,EACTg3C,MAAMp6C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDo6C,EADA,CAEHr4C,GAAI,EACJ8tC,YAAa,SAhEFhtC,EAiGnBoQ,aAAe,SAAChB,GACd,GAAKA,EAAL,CAEApP,EAAKmB,SAAS,CAAEZ,SAAS,IAHA,I3DDtB+pB,EAAwB8lB,EAASlgC,EAAWvO,E2DO7CzC,EAQEkQ,EARFlQ,GACA2sB,EAOEzc,EAPFyc,iBACAmhB,EAME59B,EANF49B,YACAkK,EAKE9nC,EALF8nC,aACoBlrB,EAIlB5c,EAJF4c,UAAanmB,MACbqmB,EAGE9c,EAHF8c,aACAmsB,EAEEjpC,EAFFipC,sBACAjN,EACEh8B,EADFg8B,QAGMtf,EAAiC9rB,EAAKwC,MAAtCspB,6B3DjBmBskB,GAAxB9lB,E2DmBU,CACX8lB,QAAS,CACPlxC,KACA2sB,mBACAmhB,cACAkK,eACAlrB,YACAE,eACAmsB,sBAAuBvsB,GAAgCusB,GAA8B,EACrFjN,WAEFl7B,UAAW,SAACooC,GACVt4C,EAAKmB,SAAS,CAAEZ,SAAS,IAEzBP,EAAKwwC,mBAAmB8H,GACxBl5C,aAAqB,yCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IAErBxC,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,+D3D1CE8wC,QAASlgC,EAAsBoa,EAAtBpa,UAAWvO,EAAW2oB,EAAX3oB,QAC1C3C,aAAO,GAAA/C,OAAIL,KAAJ,aAAmCw0C,GAC9CtyC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,O2D1GNiC,EAgJnB+nB,aAAe,YAEbwwB,EADuBv4C,EAAKwC,MAApB+1C,eAjJSv4C,EAqJnB2oB,iBAAmB,SAAA+C,GAIb,IAHJ3sB,EAGI2sB,EAHJ3sB,KACAgR,EAEI2b,EAFJ3b,OACAuQ,EACIoL,EADJpL,gBAEMza,EAAwB,WAAhBkK,EAAOtQ,KACjBgH,OAAOsJ,EAAOlK,OACd,GAAA5J,OAAG8T,EAAOlK,OAAQgjB,OAEtB,GAAIvI,EAAiB,KACXi3B,EAAUv3C,EAAKM,MAAfi3C,MACFz9B,EAAQy9B,EAAMx4C,GAEd2pB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAO2c,GACfqH,EAAQuH,EAAS2G,UAAU,SAAA1W,GAAI,OAAIA,EAAK2H,kBAAoBA,IAkBlE,OAhBAoI,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GADdhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK4S,EAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,IAIjC7F,EAAKmB,SAAS,CACZo2C,MAAMp6C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDo6C,EADAp6C,OAAA2S,GAAA,EAAA3S,CAAA,GAEF4B,EAAO2pB,WAIZ1oB,EAAKw4C,uBAAuB9vB,EAASvH,IAKvCnhB,EAAKmB,SAAS,SAAAgnC,GAAI,MAAK,CACrBoP,MAAMp6C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACDgrC,EAAKoP,MADLp6C,OAAA2S,GAAA,EAAA3S,CAAA,GAGA4S,EAAOhR,KAAO8G,QA5LJ7F,EAkMnB8oB,mBAAqB,SAAAwE,GAAsB,IAAnB/W,EAAmB+W,EAAnB/W,OAAQxX,EAAWuuB,EAAXvuB,KACtBw4C,EAAUv3C,EAAKM,MAAfi3C,MAEFlf,EAAQl7B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTo6C,EADSp6C,OAAA2S,GAAA,EAAA3S,CAAA,GAEX4B,EAAOwX,IAGW,IAAjBA,EAAO1Q,QACTwyB,EAASnM,aAAe,EACxBmM,EAASggB,sBAAwB,IAGnCr4C,EAAKmB,SAAS,CAAEo2C,MAAOlf,KA/MNr4B,EAkNnBy3C,WAAa,SAAAjtB,GAA8B,IAA3BiY,EAA2BjY,EAA3BiY,WAAYC,EAAelY,EAAfkY,SAC1B1iC,EAAKmB,SAAS,CACZshC,aACAC,SAAuB,SAAbA,EAAsB,MAAQ,UArNzB1iC,EAyNnBygC,uBAAyB,SAAA1S,GAA2B,IAAdloB,EAAckoB,EAAxBhe,OAAUlK,MACpC7F,EAAKmB,SAAS,CAAEu/B,YAAa76B,KA1NZ7F,EA6NnBoiC,cAAgB,kBAAAp1B,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAS,IAAaq1B,UAAU,OAAOjG,QAAQ,mBAAoB,IAAIkG,eA7NpEtiC,EA+NnBy4C,uBAAyB,WAAM,IAAA52C,EAMzB7B,EAAKM,MANoBo4C,EAAA72C,EAE3B6+B,mBAF2B,IAAAgY,EAEb,GAFaA,EAG3BjW,EAH2B5gC,EAG3B4gC,WACAC,EAJ2B7gC,EAI3B6gC,SAJ2BiW,EAAA92C,EAK3B01C,MAASM,2BALkB,IAAAc,EAKI,GALJA,EAQvBv+B,EAASpa,EAAKoiC,cAAc1B,GAYlC,OAVemX,EACZz9B,OAAO,SAAAwoB,GAAG,OACT5iC,EAAKoiC,cAAcQ,EAAItiB,iBAAiBkE,SAASpK,IAC9Cpa,EAAKoiC,cAAcQ,EAAIlkB,QAAQ8F,SAASpK,IACxCpa,EAAKoiC,cAAcQ,EAAIjkB,UAAU6F,SAASpK,KAE9CyoB,KAAK,SAAC9gC,EAAG+gC,GAAJ,MACS,QAAbJ,EAAqB3gC,EAAE0gC,GAAYM,cAAcD,EAAEL,IAAeK,EAAEL,GAAYM,cAAchhC,EAAE0gC,OAhPnFziC,EAsPnB44C,cAAgB,SAACxgC,GACf,GAAKA,EAAL,CADuB,I3DzFSygC,EAAcv9B,E2D6F5Cpc,EAIEkZ,EAJFlZ,GACA45C,EAGE1gC,EAHF0gC,qBACA7sB,EAEE7T,EAFF6T,gBACAF,EACE3T,EADF2T,e3DhG8B8sB,E2DmGZ,CAClB35C,KACA45C,uBACA7sB,kBACAF,kB3DvG4CzQ,E2DwG3C,CACDpL,UAAW,WACT9Q,aAAqB,sCAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,wD3D/GpBN,aAAO,GAAA/C,OAAIL,KAAJ,0BAAgDi9C,GAC3D/6C,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,O2DpKrDiC,EAAKM,MAAQ,CACXi3C,MAAO,CACLvK,YAAa,GACb6K,oBAAqB,GACrB7rB,UAAW,CAAEnmB,MAAO,EAAGqB,MAAO,MAEhCywC,YAAa,GACbp3C,SAAS,EACTmgC,YAAa,GACb+B,WAAY,WACZC,SAAU,QAGZ1iC,EAAKw4C,uBAAyBzX,GAAS/gC,EAAK44C,cAAe,KAhB1C54C,mFAoBjBE,KAAK+d,kDA+PE,IAAA3a,EAKHpD,KAAKsC,MAHPtD,EAFKoE,EAELpE,GACA2sB,EAHKvoB,EAGLuoB,iBACAC,EAJKxoB,EAILwoB,6BAJKjN,EAcH3e,KAAKI,MANPi3C,EARK14B,EAQL04B,MARKwB,EAAAl6B,EASL84B,mBATK,IAAAoB,EASS,GATTA,EAULx4C,EAVKse,EAULte,QACAmgC,EAXK7hB,EAWL6hB,YACA+B,EAZK5jB,EAYL4jB,WACAC,EAbK7jB,EAaL6jB,SAGF,OACEj/B,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,mBAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,oBAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAELla,EAAUkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAENnc,EAAA1B,EAAAC,cAACg3C,GAAD77C,OAAAuP,OAAA,GACM6qC,EADN,CAEE1rB,iBAAkBA,EAClB8rB,YAAaA,EACb7rB,6BAA8BA,EAC9B+rB,oBAAqB33C,KAAKu4C,yBAC1B/X,YAAaA,EACbtvB,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACbxnB,QAASA,EACT4M,cAAeoqC,EACf9U,WAAYA,EACZC,SAAUA,EAEV/Z,iBAAkBzoB,KAAKyoB,iBACvB5E,eAAgB7jB,KAAK4oB,mBACrB2uB,WAAYv3C,KAAKu3C,WACjBhX,uBAAwBvgC,KAAKugC,uBAE7BpwB,YAAanQ,KAAKmQ,YAClByP,oBAAkB,eA1UN7c,iBCW1BuoB,eASJ,SAAAA,EAAYhpB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsrB,IACjBxrB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAquB,GAAAnrB,KAAAH,KAAMsC,KAqGRipB,YAAc,SAACzY,EAAMiH,EAAUmE,GAAY,IAEvCyN,EACE7rB,EAAKwC,MADPqpB,iBAGF7rB,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,K5DlInB,SAAAxP,GAKJ,IAJDid,EAICjd,EAJDid,iBAIC+C,EAAAhgB,EAHD0P,gBAGC,IAAAsQ,EAHU,CAAE5b,KAAM,EAAGiH,SAAU,IAG/B2U,EAFD1e,EAECtB,EAFDsB,UACAvO,EACCiN,EADDjN,QAEO3C,aAAO,GAAA/C,OAAIL,KAAJ,KAAAK,OAA0B4vB,EAA1B,iBAA2DvN,GACtExgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,K4DsHvBk7C,CAAe,CACbptB,mBACAvN,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAA/T,GAAgC,IAA7B2d,EAA6B3d,EAA7B2d,MAAOI,EAAsB/d,EAAtB+d,gBACnBla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,qBAGJvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,iEAlINU,EAuInB0qC,mBAAqB,SAACC,GACpB,IAAM5rC,EAAI,GAAA9C,OAAM0uC,EAAOqC,aACvB9+B,GAAQ,CACNpK,MAAO,wBACPqK,SAAQ,mDAAAlS,OAAkD8C,EAAlD,MACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,W5DsDV,IAAwBrP,EAAIoc,EAAJpc,E4DrDRyrC,EAAOzrC,G5DqDKoc,E4DrDD,CACxBpL,UAAW,WACT9Q,aAAqB,8BADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAKyrB,YAAYzY,EAAMiH,IAEzBtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,sBAEnBA,aAAmB,oC5D4CxBH,aAAS,GAAAlD,OAAIL,KAAJ,cAAAK,OAAmCiD,IAChDpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,S4D9MpCiC,EAiKnBgvB,eAAiB,WACfhvB,EAAKmB,SAAS,CACZoZ,UAAU,EACV2+B,SAAU,IAGZl5C,EAAK+e,2BAvKY/e,EA0KnB4qC,KAAO,SAACD,GACN3qC,EAAKmB,SAAS,CACZoZ,UAAU,EACV2+B,SAAUvO,EAAOzrC,MA7KFc,EAiLnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAKyrB,YAAYzY,EAAMiH,EAAUmE,KApLlBpe,EAwLnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyrB,YAAY,EAAGxR,EAAU7K,KA3LfpP,EA+LnB+e,wBAA0B,WAAM,IAAAU,EACAzf,EAAKM,MAA3B2Z,EADsBwF,EACtBxF,SACAP,EAFsB+F,EACZrB,QACV1E,eACR1Z,EAAKyrB,YAAY,EAAGxR,EAAU,CAAEP,oBAlMf1Z,EAqMnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAzME7G,EA4MnBoQ,aAAe,YAIbA,EAHyBpQ,EAAKwC,MAAtB4N,cAGK,CAAE0b,6BAF0B9rB,EAAKM,MAAtCwrB,gCA9MS9rB,EAmNnBm5C,oBAAsB,SAACrtB,QACgBpU,IAAjCoU,IAIJ9rB,EAAKmB,SAAS,CAAE2qB,kCAIhB1b,EAFyBpQ,EAAKwC,MAAtB4N,cAEK,CAAE0b,mCA1Nf9rB,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IACfqb,UAAU,EACV2+B,SAAU,GAGZl5C,EAAKoQ,aAAauE,KAAlBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAEAA,EAAKo5C,mBAAqB,CACxB9mB,UAAW,MACX3b,QAAS,OACT2F,eAAgB,UAGlBtc,EAAK6Z,QAAU,SAAAiS,GAA4B,MAAI,CAC7C,CAAEjlB,IAAK,KAAM9H,KAAM,IAAKwR,MAAO,QAC/B,CACE1J,IAAK,cAAe9H,KAAM,QAASwR,MAAO,OAAQ+J,QAAQ,GAE5D,CACEzT,IAAK,YACL9H,KAAM,aACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAI4T,UAAU9kB,SAElC,CACEL,IAAK,eACL9H,KAAM,gBACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAI8T,gBAExB,CACErlB,IAAK,wBACL9H,KAAM,0BACNwR,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,SAAAnc,OAAO6vB,EAA+B1T,EAAIigC,sBAAwB,cAE/E,CACExxC,IAAK,eACL9H,KAAM,gBACNub,QAAQ,EACRjY,UAAW,cACXkO,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAItD,GAAWsD,EAAI8+B,gBAEhC,CACErwC,IAAK,UACL9H,KAAM,SACNwR,MAAO,OACPlO,UAAW,iBAGfrC,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,WACzCwX,SAAU,SAACqvB,GACT3qC,EAAK4qC,KAAKD,KAGd,CACE9jC,IAAK,SACL8S,SAAS,EACTxW,KAAM,SAAAiV,GAAG,OACP3U,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,QAAM9C,GAAE,sBAAAjD,OAAwBmc,EAAIlZ,IAAMmD,UAAU,cAAcyB,MAAM,WACxEL,EAAA1B,EAAAC,cAAC8oC,GAAA,EAAD,CACEC,QAAQ,SACR3uB,UAAU,OACVrM,OAAM,sBAAA9T,OAAwBmc,EAAIlZ,IAClCmD,UAAU,OACVkJ,UAAW6M,EAAI4kB,oBAEfv5B,EAAA1B,EAAAC,cAACgpC,GAAA,EAAD,oCACAvnC,EAAA1B,EAAAC,cAACipC,GAAA,EAAD,gDAIN3vB,SAAU,SAACqvB,GACJA,EAAO3N,oBACVh9B,EAAK0qC,mBAAmBC,MA1Ff3qC,mFAiGC,IAAA0f,EACSxf,KAAKI,MAAxB0S,EADU0M,EACV1M,KAAMiH,EADIyF,EACJzF,SACd/Z,KAAKurB,YAAYzY,EAAMiH,oCA4HhB,IAAAxZ,EAAAP,KAELK,EACEL,KAAKI,MADPC,QAIAu3C,EACE53C,KAAKsC,MADPs1C,mBAGF,GAAIv3C,IAAYu3C,EACd,OAAOr0C,EAAA1B,EAAAC,cAAC4d,GAAD,MAVF,IAAAtc,EAiBHpD,KAAKsC,MAHPqpB,EAdKvoB,EAcLuoB,iBACAC,EAfKxoB,EAeLwoB,6BACAia,EAhBKziC,EAgBLyiC,QAhBKzV,EAsBHpwB,KAAKI,MAFPia,EApBK+V,EAoBL/V,SACA2+B,EArBK5oB,EAqBL4oB,SAGF,GAAI3+B,EACF,OACE9W,EAAA1B,EAAAC,cAACq3C,GAAD,CACEn6C,GAAIg6C,EACJrtB,iBAAkBA,EAClBC,6BAA8BA,EAC9BgsB,mBAAoBA,EACpBS,WAAYr4C,KAAK8uB,iBA/BhB,IAAAsO,EA0CHp9B,KAAKI,MALPwZ,EArCKwjB,EAqCLxjB,MACA9G,EAtCKsqB,EAsCLtqB,KACAiH,EAvCKqjB,EAuCLrjB,SACAC,EAxCKojB,EAwCLpjB,gBACAkE,EAzCKkf,EAyCLlf,QAGF,OAAKd,GAAew6B,GAKlBr0C,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG8X,GAAI,GACd9uB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAOg/B,EAAU,UAAY,UAAW/+B,MAAO,CAAEsyC,SAAU,SAAlE,oCAAAr9C,OACoCqhB,GAAew6B,MAGpD/R,EACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVqB,QAAS,kBAAMjD,EAAKmqC,KAAK,CAAE1rC,GAAI,MAE/BuE,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eALf,wBAOE,MAGNoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG8X,GAAI,GACd9uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQ4d,WAAY,WAAYjC,UAAW,SAE9DyT,EACEtiC,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CACEo5B,QAAM,EACN9xC,UAAU,OACVtD,KAAK,oBACLqS,SAAUlR,KAAKkQ,cAEf3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,GACf3pB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,mBACV2E,MAAO,CACL2P,QAAS,OACTsN,aAAc,MACdiN,cAAe,SACfqD,WAAY,WAGd9wB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAAhB,2BACAoB,EAAA1B,EAAAC,cAAA,OACEgF,MAAO,CACL2P,QAAS,OACT4d,WAAY,WAGd9wB,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAO+kB,EAA+B,YAAc,WAA3D,OACJroB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,yBAAyB2E,MAAO,CAAEuJ,MAAO,OAAQgpC,OAAQ,eACtE91C,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEpF,WAAYvL,KAAKk5C,mBACjBr6C,KAAK,+BACL+R,UAAW+lC,GACXhxC,MAAOimB,EACPtlB,SAAUtG,KAAKi5C,uBAGnB11C,EAAA1B,EAAAC,cAAA,UAAIyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAQ+kB,EAA6C,UAAd,aAA9C,WAKV,QAMZroB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,uCACN+V,QAAS3Z,KAAK2Z,QAAQiS,GACtBhS,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBvwB,YAAa4G,EAAMvT,OACnByM,KAAMA,EACNiH,SAAUA,EACVP,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,MAvFjB,YArRmB7c,iBA0XjB0J,MANgB0E,aAAU,CACvCC,KAAM,oBAENwO,oBAAoB,GAHSzO,CAI5Bma,eC/YYrc,GAVE,SAAAhT,GAAmB,IAAAq9C,EAAAr9C,EAAhB0Y,KACZvF,EAAS,GAMf,YAPkC,IAAAkqC,EAAT,GAASA,KAIhClqC,EAAOuF,KAAO,2BAGTvF,GCEHmqC,GAAe,CACnB,CACE5zC,MAAO,KAAMqB,MAAO,eAAMkpB,YAAa,IAAKrpB,MAAO,aAErD,CACElB,OAAO,EAAMqB,MAAO,eAAMkpB,YAAa,WAAYrpB,MAAO,WAE5D,CACElB,OAAO,EAAOqB,MAAO,eAAMkpB,YAAa,UAAWrpB,MAAO,WAIxD2yC,GAA0B,SAAAv9C,GAU1B,IAAAgvC,EAAAhvC,EATJsnB,cASI,IAAA0nB,EATK,GASLA,EAAAz9B,EAAAvR,EARJoQ,KAAQxO,EAQJ2P,EARI3P,MAAO4lB,EAQXjW,EARWiW,aACfg2B,EAOIx9C,EAPJw9C,gBACAtC,EAMIl7C,EANJk7C,OACAv9B,EAKI3d,EALJ2d,MACA8W,EAIIz0B,EAJJy0B,QACA0mB,EAGIn7C,EAHJm7C,UACA7U,EAEItmC,EAFJsmC,WACAC,EACIvmC,EADJumC,SAEM0W,EAAqB,CACzB9mB,UAAW,MACX3b,QAAS,OACT2F,eAAgB,UAGZs9B,EAAU,CACdnjC,QAAS,WAGX,OAAKmjC,EAKHn2C,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,gCACfoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAAS11B,MAAM,aAA1B,0BACAzgB,EAAA1B,EAAAC,cAAA,MACEgF,MAAO4yC,EACPl2C,QAAS,kBAAM2zC,EAAO,CAAE5U,WAAY,OAAQC,cAC5Cxe,MAAM,aAHR,SAKS,IACPzgB,EAAA1B,EAAAC,cAAA,KACEK,UAAS,oBAAApG,OAC4B,SAAfwmC,GAAsC,SAAbC,EAAsBA,EAAW,OAEhFzxB,cAAY,UAGhBxN,EAAA1B,EAAAC,cAAA,MACEgF,MAAO4yC,EACPl2C,QAAS,kBAAM2zC,EAAO,CAAE5U,WAAY,UAAWC,cAC/Cxe,MAAM,aAHR,WAKW,IACTzgB,EAAA1B,EAAAC,cAAA,KACEK,UAAS,oBAAApG,OAAqC,YAAfwmC,GAAyC,SAAbC,EAAsBA,EAAW,OAC5FzxB,cAAY,UAGhBxN,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAAS11B,MAAM,aAA1B,cAGJzgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAACqjB,EAAS7I,GAAU,IAAA04B,EACCJ,GAAar/B,OAAO,SAAArY,GAAC,OAAI+X,EAAMqH,IAAUpf,EAAE8D,QAAUiU,EAAMqH,GAAOyP,UADnEkpB,EAAA38C,OAAA6e,GAAA,EAAA7e,CAAA08C,EAAA,MACvBnqB,OADuB,IAAAoqB,EACL,GADKA,EAE9B,OACEr2C,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAK+tB,GAAW9qB,GAAE,GAAAjD,OAAK+tB,GAAW3nB,UAAWyX,EAAMqH,IAAUrH,EAAMqH,GAAOiqB,QAAU,SAAW,IACpG3nC,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAASv3C,UAAU,aAC5BoB,EAAA1B,EAAAC,cAAA,YAAO8X,EAAMqH,IAAUrH,EAAMqH,GAAO2f,MAEtCr9B,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAASv3C,UAAU,aAC5BoB,EAAA1B,EAAAC,cAAA,YAAO8X,EAAMqH,IAAUrH,EAAMqH,GAAOpiB,OAEtC0E,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAASv3C,UAAU,aAC5BoB,EAAA1B,EAAAC,cAAA,YAAO8X,EAAMqH,IAAUrH,EAAMqH,GAAO44B,UAGtCt2C,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO4yC,EAASv3C,UAAU,aAC5BoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OACEK,UAAU,kEACV2E,MAAO,CAAEuJ,MAAO,SAGb+mC,EAGG7zC,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEpF,WAAY2tC,EACZr6C,KAAI,GAAA9C,OAAK+tB,EAAL,YACJlZ,UAAW+lC,GACXhxC,MAAO+qB,EACPpqB,SAAU,SAACoF,GACT+tC,EAAgB,CACd56C,KAAM0kB,EAAO1kB,KACbgR,OAAQ,CAAEhR,KAAI,GAAA9C,OAAK+tB,EAAL,YAAwBpe,WACtCk1B,IAAKhnB,EAAMqH,IAAUrH,EAAMqH,GAAO2f,OAItCnzB,UAAW2pC,EACX/rC,SAAU+rC,IAhBX7zC,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAY5B,EAAgBU,aAA7C,SAA4DV,EAAgBxoB,eA8BjGyc,GAAgB5lB,GACd0F,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,yBAAyB2E,MAAO,CAAEid,aAAc,WAC7DlmB,IA3FF,MA+GX27C,GAAwBhyC,aAAe,CACrC6E,KAAM,GACNqkB,QAAS,KACT6R,WAAY,OACZC,SAAU,OAGGgX,UCzITM,eACJ,SAAAA,EAAYx3C,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA85C,IACjBh6C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA68C,GAAA35C,KAAAH,KAAMsC,KAMR+Y,OAAS,WAAe,IAAd1G,EAAc7H,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACf,OAAI6H,EACKC,GAAWD,EAAK+I,MAAM,KAAK,IAG7B,IATP5d,EAAKM,MAAQ,GAHIN,wEAeV,IAAAS,EAAAP,KAKP,GAFIA,KAAKsC,MADPjC,QAIA,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MANF,IAAAtc,EA2BHpD,KAAKsC,MAjBP4N,EAVK9M,EAUL8M,aACAupC,EAXKr2C,EAWLq2C,gBACAlC,EAZKn0C,EAYLm0C,WACAhX,EAbKn9B,EAaLm9B,uBACA9X,EAdKrlB,EAcLqlB,iBACAjY,EAfKpN,EAeLoN,WACAmU,EAhBKvhB,EAgBLuhB,OACAo1B,EAjBK32C,EAiBL22C,YACAlU,EAlBKziC,EAkBLyiC,QACA5W,EAnBK7rB,EAmBL6rB,SACAjwB,EApBKoE,EAoBLpE,GACA2V,EArBKvR,EAqBLuR,KACAqlC,EAtBK52C,EAsBL42C,KACAxpB,EAvBKptB,EAuBLotB,UACAgQ,EAxBKp9B,EAwBLo9B,YACA+B,EAzBKn/B,EAyBLm/B,WACAC,EA1BKp/B,EA0BLo/B,SAGF,OACEj/B,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEsrB,UAAW,SACtByT,EACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOE,KAEJ3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAOFphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAMo5B,QAAM,EAAC9xC,UAAU,OAAO+O,SAAUhB,GACtC3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAIsrB,EAAU,GAAK,EAAG3Y,GAAI,IAC7B3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,yBAAiDnD,EAAE,KAAAjD,OAAQiD,GAAO,MAGtEuE,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAIpmB,MAAO,CAAE2P,QAAS,SACpClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,sBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,aACLsO,YAAY,oBACZ2I,QAASikC,EACTnpC,UAAW6G,GACXpM,UAAWw6B,OAKnBtiC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,OACL+R,UAAW1D,GACX5G,SAAUmiB,EACVtb,YAAY,QACZS,aAAa,QACbrO,KAAMsmC,EAAU,OAAS,OACzBhwB,aAAclB,EACdtJ,UAAWw6B,EACXxqB,OAAQ,SAAA1V,GAAK,OAAKkgC,EAAUlgC,EAAQpF,EAAK8a,OAAO1V,SAKxDpC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAIpmB,MAAO,CAAE2P,QAAS,SACpClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,QACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,OACL+R,UAAW1D,GACXC,YAAY,OACZS,aAAa,QACbvC,UAAWw6B,EACXz4B,UAAW,GACXyI,aAAcmkC,OAKtBz2C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,cACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACL+R,UAAW1D,GACX5G,SAAUmiB,EACVtb,YAAY,aACZS,aAAa,QACbvC,UAAWw6B,EACXz4B,UAAW,GACXyI,aAAc2a,QAMxBjtB,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAMo5B,QAAM,EAAC9xC,UAAU,QACrBoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,oBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACXC,YAAY,iBACZS,aAAa,QACbrO,KAAK,OACL+G,SAAUi6B,EACVnzB,UAAW,GACXyI,aAAc2qB,QAOxBj9B,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACEhgB,IAAI,WACJ9H,KAAK,WACL+R,UAAW4oC,GACX5/B,MAAOqV,EACPmoB,UAAWvR,EACXtD,WAAYA,EACZC,SAAUA,EACViX,gBAAiBA,EACjBtC,OAAQI,IAGVh0C,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAEsrB,UAAW,SACtByT,EACCtiC,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOE,KAEJ3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,+BAtLiB5hB,iBAyMd0J,MANa0E,aAAU,CACpCC,KAAM,iBACNnC,YACA2Q,oBAAoB,GAHMzO,CAIzB2oC,KA4BHA,GAAetyC,aAAe,CAC5BgJ,YAAY,EACZq1B,SAAS,EACTrF,YAAa,GACbxhC,GAAI,EACJuvB,WAAY,KACZiC,UAAW,KACX7b,KAAM,GACNqlC,KAAM,QCuFOC,eApUb,SAAAA,EAAY33C,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAi6C,IACjBn6C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAg9C,GAAA95C,KAAAH,KAAMsC,KAwBR43C,cAAgB,SAAAj+C,GAAY,IAAT+C,EAAS/C,EAAT+C,GACZA,GASLc,EAAKmB,SAAS,CACZZ,SAAS,IAGXlC,GAAM,CACJa,KACAgR,UAAW,SAAAtB,GAEL,IADJiG,EACIjG,EADJiG,KAAMqlC,EACFtrC,EADEsrC,KAAMxpB,EACR9hB,EADQ8hB,UAAWjC,EACnB7f,EADmB6f,WAAYsX,EAC/Bn3B,EAD+Bm3B,QAASsU,EACxCzrC,EADwCyrC,YACxCC,EAAA1rC,EADqDugB,gBACrD,IAAAmrB,EADgE,GAChEA,EACJt6C,EAAKmB,SAAS,CACZo5C,WAAY,CACVr7C,KACA2V,KAAMA,EAAK+I,MAAM,KAAK,GACtBs8B,OACAxpB,YACAjC,aACA4rB,cACAtU,UACA5W,YAEF5uB,SAAS,KAGboB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZo5C,WAAY,GACZh6C,SAAS,IAGPxC,GAA0B,MAAjBA,EAAML,OACjB2B,aAAqB,2BAIvBC,aAAmB,2DA1CrBU,EAAKmB,SAAS,CACZo5C,WAAY,GACZh6C,SAAS,KA7BIP,EA0EnBoQ,aAAe,WAAiB,IAAhBhB,EAAgBpC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACvB,GAAK7P,OAAOu0C,QAAQtiC,GAAQ7I,OAA5B,CAEAvG,EAAKmB,SAAS,CAAEZ,SAAS,IAHK,I7DrB3BiqB,EAA0ByD,EAAS/d,EAAWvO,E6D0B/CzC,EAMEkQ,EANFlQ,GAL4Bs7C,EAW1BprC,EALFqf,kBAN4B,IAAA+rB,EAMf,CAAE30C,MAAO,MANM20C,EAO5BN,EAIE9qC,EAJF8qC,KACAxpB,EAGEthB,EAHFshB,UACA7b,EAEEzF,EAFFyF,KAT4B4lC,EAW1BrrC,EADFwhB,eAV4B,IAAA6pB,KAatB9rB,EAAoB3uB,EAAKwC,MAAzBmsB,gB7DlCLnE,E6DoCY,CACbyD,QAAS,CACP/uB,KACAyvB,kBACA+rB,aAAcjsB,GAAcA,EAAW5oB,MACvCq0C,OACAxpB,YACA7b,OACA+b,WAEF1gB,UAAW,SAAAwb,GAAsB,IAAAivB,EAAAjvB,EAAnBuC,eAAmB,IAAA0sB,EAAT,GAASA,EAC/B36C,EAAKmB,SAALhE,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK8wB,EADL,CAEE1tB,SAAS,KAEXP,EAAK+nB,eACL3oB,aAAqB,qCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IAErBxC,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,0D7D5DI2uB,EAA+BzD,EAA/ByD,QAAS/d,EAAsBsa,EAAtBta,UAAWvO,EAAW6oB,EAAX7oB,QAC5C3C,aAAO,GAAA/C,OAAIT,MAAkByyB,GACjCnwB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAKb,OAFImS,GAAWA,EAAUwZ,GAElBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,O6DjENiC,EAuHnB+nB,aAAe,YAEbwwB,EADuBv4C,EAAKwC,MAApB+1C,eAxHSv4C,EA4HnBm5C,oBAAsB,SAAA7rB,GAIhB,IAHJvuB,EAGIuuB,EAHJvuB,KAGI67C,EAAAttB,EAFJvd,cAEI,IAAA6qC,EAFK,GAELA,EADJ9Z,EACIxT,EADJwT,IAEA,QAAuBppB,IAAnB3H,EAAOnE,QAAX,CAIA,IAAM/F,EAAQkK,EAAOnE,QACrB,GAAIk1B,EAAK,KACCyZ,EAAev6C,EAAKM,MAApBi6C,WACFzgC,EAAQygC,EAAWx7C,GAEnB2pB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAO2c,GACfqH,EAAQuH,EAAS2G,UAAU,SAAA1W,GAAI,OAAIA,EAAKmoB,MAAQA,IAiBtD,OAfApY,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GADdhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK4S,EAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,IAIjC7F,EAAKmB,SAAS,CACZo5C,WAAWp9C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACNo9C,EADKp9C,OAAA2S,GAAA,EAAA3S,CAAA,GAEP4B,EAAO2pB,WAIZ1oB,EAAK66C,yBAAL19C,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAmCurB,EAASvH,GAA5C,CAAoD6M,aAAcusB,EAAWr7C,MAI/Ec,EAAKmB,SAAS,SAAAgnC,GAAI,MAAK,CACrBoS,WAAWp9C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACNgrC,EAAKoS,WADAp9C,OAAA2S,GAAA,EAAA3S,CAAA,GAGL4S,EAAOhR,KAAO8G,SAnKJ7F,EAyKnBy3C,WAAa,SAAAjtB,GAA8B,IAA3BiY,EAA2BjY,EAA3BiY,WAAYC,EAAelY,EAAfkY,SAC1B1iC,EAAKmB,SAAS,CACZshC,aACAC,SAAuB,SAAbA,EAAsB,MAAQ,UA5KzB1iC,EAgLnBygC,uBAAyB,SAAA1S,GAA2B,IAAdloB,EAAckoB,EAAxBhe,OAAUlK,MACpC7F,EAAKmB,SAAS,CAAEu/B,YAAa76B,KAjLZ7F,EAoLnB2oB,iBAAmB,SAAA2B,GAAiC,IAAAwwB,EAAAxwB,EAA9Bva,OAAUhR,EAAoB+7C,EAApB/7C,KAAM8G,EAAci1C,EAAdj1C,MAC5B00C,EAAev6C,EAAKM,MAApBi6C,WACRv6C,EAAKmB,SAAS,CACZo5C,WAAWp9C,OAAA0Q,GAAA,EAAA1Q,CAAA,GACNo9C,EADKp9C,OAAA2S,GAAA,EAAA3S,CAAA,GAEP4B,EAAO8G,OAzLK7F,EA8LnBoiC,cAAgB,kBAAAp1B,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAS,IAAaq1B,UAAU,OAAOjG,QAAQ,mBAAoB,IAAIkG,eA9LpEtiC,EAgMnB+6C,YAAc,WAAM,IAAAl5C,EAMd7B,EAAKM,MANSo4C,EAAA72C,EAEhB6+B,mBAFgB,IAAAgY,EAEF,GAFEA,EAGhBjW,EAHgB5gC,EAGhB4gC,WACAC,EAJgB7gC,EAIhB6gC,SAJgBsY,EAAAn5C,EAKhB04C,WAAcprB,gBALE,IAAA6rB,EAKS,GALTA,EAQZ5gC,EAASpa,EAAKoiC,cAAc1B,GAYlC,OAXevR,EACZ/U,OAAO,SAAAwoB,GAAG,OACT5iC,EAAKoiC,cAAcQ,EAAI9B,KAAKtc,SAASpK,IAClCpa,EAAKoiC,cAAcQ,EAAI7jC,MAAMylB,SAASpK,IACtCpa,EAAKoiC,cAAcQ,EAAImX,SAASv1B,SAASpK,KAE7CyoB,KAAK,SAAC9gC,EAAG+gC,GAAJ,MAAwB,QAAbJ,EACb3gC,EAAE0gC,GAAYM,cAAcD,EAAEL,IAC9BK,EAAEL,GAAYM,cAAchhC,EAAE0gC,OAjNnBziC,EAuNnBi7C,gBAAkB,WAAc,IAAb7iC,EAAapL,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAErBghB,EAGE5V,EAHF4V,aACAsB,EAEElX,EAFFkX,UACAsB,EACExY,EADFwY,QAGG5C,GAA2B,MAAX4C,GAErB9C,GAAuB,CACrBE,eACAC,QAAS,CACPD,eACAsB,YACAsB,WAEF1gB,UAAW,WACT9Q,aAAqB,yCAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,6DA9ORU,EAoPnBk7C,eAAiB,WAAM,IAAA53C,EAKjBtD,EAAKwC,MAHPtD,EAFmBoE,EAEnBpE,GACA+6C,EAHmB32C,EAGnB22C,YACAI,EAJmB/2C,EAInB+2C,YAJmBx7B,EAajB7e,EAAKM,MALPi6C,EARmB17B,EAQnB07B,WACAh6C,EATmBse,EASnBte,QACAmgC,EAVmB7hB,EAUnB6hB,YACA+B,EAXmB5jB,EAWnB4jB,WACAC,EAZmB7jB,EAYnB6jB,SAGF,OAAIniC,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAACm5C,GAADh+C,OAAAuP,OAAA,GACM6tC,EADN,CAEEr7C,GAAIA,EACJ+6C,YAAaA,EACbI,YAAaA,EACblrB,SAAUnvB,EAAK+6C,cACfra,YAAaA,EACbtvB,SAAUpR,EAAKoQ,aACfyU,OAAQ7kB,EAAK+nB,aACbxnB,QAASA,EACT4M,cAAeotC,EACf9X,WAAYA,EACZC,SAAUA,EAEViX,gBAAiB35C,EAAKm5C,oBACtB1B,WAAYz3C,EAAKy3C,WACjBhX,uBAAwBzgC,EAAKygC,uBAC7B9X,iBAAkB3oB,EAAK2oB,iBAEvB7I,oBAAkB,MAxRtB9f,EAAKM,MAAQ,CACXi6C,WAAY,CACV7pB,UAAW,GACX7b,KAAM,GACNqlC,KAAM,GACNzrB,WAAY,CAAE5oB,MAAO,GACrBspB,SAAU,IAEZ5uB,SAAS,EACTmgC,YAAa,GACb+B,WAAY,UACZC,SAAU,QAGZ1iC,EAAK66C,yBAA2B9Z,GAAS/gC,EAAKi7C,gBAAiB,KAjB9Cj7C,mFAoBC,IACVd,EAAOgB,KAAKsC,MAAZtD,GACRgB,KAAKk6C,cAAc,CAAEl7C,wCA0Qd,IAELA,EACEgB,KAAKsC,MADPtD,GAGF,OACEuE,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,eAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,gBAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACdxa,KAAKg7C,2BArToBj4C,iBCVhCm4C,GAAY,SAAC54C,GAAU,IAEzBtD,EASEsD,EATFtD,GACAyvB,EAQEnsB,EARFmsB,gBACA4pB,EAOE/1C,EAPF+1C,WACA0B,EAMEz3C,EANFy3C,YACAn2C,EAKEtB,EALFsB,MACAyK,EAIE/L,EAJF+L,UAPyB8sC,EAWvB74C,EAHFgM,gBARyB,IAAA6sC,EAQd,aARcA,EAUzBt0C,EACEvE,EADFuE,MAGMoE,EAAU3J,IAAM85C,WAAhBnwC,MAoCR,OAAOuD,wBAAa,CAClBC,SAjCe,SAAAxS,GAAA,IAAG0S,EAAH1S,EAAG0S,QAAH,OACfpL,EAAA1B,EAAAC,cAAC8M,GAAA,EAAD,CACEC,KAAK,KACL1J,QAAM,EACN2J,eAAc,qBAAA/S,OAAuBkP,EAAM9I,WAC3CA,UAAS,iBAAApG,OAAmB8K,GAAS,UAA5B,KAAA9K,OAPM,uBAON,oBACT+K,MAAO,CAAEuJ,MAAO,SAAUgrC,SAAU,WAEpC93C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,4BAA4ByB,IAE5CL,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEyP,QAAS,eAC7ChT,EAAA1B,EAAAC,cAACw5C,EAAA,EAAD,CAAUh6C,MAAOA,KACfiC,EAAA1B,EAAAC,cAACy5C,EAAA,SAAD,KACEh4C,EAAA1B,EAAAC,cAACm5C,GAAD,CACEj8C,GAAIA,EACJyvB,gBAAiBA,EACjB4pB,WAAYA,EACZ0B,YAAaA,EACbp1B,OAAQ,WAAQrW,IAAYK,IAAW0pC,KACvCnoC,aAAc,SAAAhB,GAAM,OAAIb,EAAUpR,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAKiS,EAAN,CAAcP,wBAkC7DusC,GAAU1zC,aAAe,CACvB0G,SAAU,UACVE,QAAS,YAGI8sC,IChDT3B,GAAe,CACnB,CACE5zC,MAAO,KAAMqB,MAAO,eAAMkpB,YAAa,IAAKrpB,MAAO,aAErD,CACElB,OAAO,EAAMqB,MAAO,eAAMkpB,YAAa,WAAYrpB,MAAO,WAE5D,CACElB,OAAO,EAAOqB,MAAO,eAAMkpB,YAAa,UAAWrpB,MAAO,WAI9D,SAAS20C,GAATv/C,GAYG,IAXD6xB,EAWC7xB,EAXD6xB,aACAnZ,EAUC1Y,EAVD0Y,KACAkxB,EASC5pC,EATD4pC,QACArV,EAQCv0B,EARDu0B,UACAirB,EAOCx/C,EAPDw/C,gBACAC,EAMCz/C,EANDy/C,oBACAhsB,EAKCzzB,EALDyzB,WACAD,EAICxzB,EAJDwzB,eACAE,EAGC1zB,EAHD0zB,UACAC,EAEC3zB,EAFD2zB,SACAjhB,EACC1S,EADD0S,QAEA,IAAKk3B,EACH,OAAO,KAFR,IAAA8V,EAKuBpnC,IAAMqH,UAAS,GALtCggC,EAAA3+C,OAAA6e,GAAA,EAAA7e,CAAA0+C,EAAA,GAKME,EALND,EAAA,GAKYE,EALZF,EAAA,GAAAG,EAMmCxnC,IAAMqH,UAAS,GANlDogC,EAAA/+C,OAAA6e,GAAA,EAAA7e,CAAA8+C,EAAA,GAMM1B,EANN2B,EAAA,GAMkBC,EANlBD,EAAA,GAQD,OACEz4C,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACE9C,GAAE,UAAAjD,OAAY+xB,GACdvuB,KAAK,SACLiE,QANS,kBAAMs4C,GAASD,IAOxB15C,UAAU,iBAEVoB,EAAA1B,EAAAC,cAAA,QAAM6E,IAAG,OAAA5K,OAAS+xB,GAAgB3rB,UAAU,aAAayB,MAAM,YAEjEL,EAAA1B,EAAAC,cAACo6C,GAAA,EAAD,CAASC,KAAK,OAAOtsC,OAAM,UAAA9T,OAAY+xB,GAAgB3oB,OAAQ02C,GAC7Dt4C,EAAA1B,EAAAC,cAACgpC,GAAA,EAAD,KACEvnC,EAAA1B,EAAAC,cAAA,OACEK,UAAU,QACV2E,MAAO,CACLuyC,OAAQ,IACR5iC,QAAS,OACT4d,WAAY,WACZjY,eAAgB,gBAChB2T,UAAW,SAGbxsB,EAAA1B,EAAAC,cAAA,eAAA/F,OACO+xB,EADP,MAAA/xB,OACwB6Y,GAAWD,GADnC,UAGIpR,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAEgQ,WAAY,SAAW0Z,GAAa,KAGvDjtB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,gBACVqB,QAAS,WACPs4C,GAAQ,GACRG,GAAc,GACdttC,MAGFpL,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,cAI1CL,EAAA1B,EAAAC,cAACipC,GAAA,EAAD,KACExnC,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,QAAQ2E,MAAO,CAAEid,aAAc,MAC9CxgB,EAAA1B,EAAAC,cAAA,aAEI45C,EAAoB,CAClBrB,aACAvsB,eACAnZ,OACA6b,YACAyrB,gBACAR,kBACAhsB,iBACAC,aACAC,YACAC,sBAyBZ5B,eAKJ,SAAAA,EAAY1rB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAguB,IACjBluB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA+wB,GAAA7tB,KAAAH,KAAMsC,KA2MR85C,cAAgB,SAAA1tC,GAAiC,IAA9Bof,EAA8Bpf,EAA9Bof,aAAcsB,EAAgB1gB,EAAhB0gB,UAC/B,GAAKtB,GAAiBsB,EAAtB,CAIAtvB,EAAKmB,SAAS,CAAE6uB,gBAAgB,IALe,IAOvCb,EAAanvB,EAAKM,MAAlB6uB,SAERrB,GAAuB,CACrBE,eACAC,QAAS,CACPD,eAAcsB,YAAWsB,SAAS,GAEpC1gB,UAAW,SAAAwb,GAAsB,IAAAivB,EAAAjvB,EAAnBuC,eAAmB,IAAA0sB,EAAT,GAASA,EAC/Bv7C,aAAqB,qCAErB,IAAMspB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAOgyB,GACfhO,EAAQuH,EAAS2G,UAAU,SAAA1W,GAAI,OAAIA,EAAK2W,YAAcA,IAE5D5G,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GADd,CAEEyP,QAAS3C,EAAQ2C,UAAW,IAG9B5wB,EAAKmB,SAAS,CACZguB,SAAUzG,EACVsH,gBAAgB,IAGlBhwB,EAAKivB,YAEPttB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZ6uB,gBAAgB,IAGdjyB,GAA0B,MAAjBA,EAAML,OACjB2B,aAAqB,2BAIvBC,aAAmB,4DAtPNU,EA2PnBu8C,aAAe,SAAAjvB,GAAiC,IAA9BU,EAA8BV,EAA9BU,aAAcsB,EAAgBhC,EAAhBgC,UAC9B,GAAKtB,GAAiBsB,EAAtB,CAIAtvB,EAAKmB,SAAS,CAAE6uB,gBAAgB,IALc,IAOtCb,EAAanvB,EAAKM,MAAlB6uB,SAERrB,GAAuB,CACrBE,eACAC,QAAS,CACPD,eAAcsB,YAAWsB,SAAS,GAEpC1gB,UAAW,SAAAsa,GAAiB,IAAdoG,EAAcpG,EAAdoG,QACZxxB,aAAqB,qCAErB,IAAMspB,EAAQvrB,OAAAmrB,GAAA,EAAAnrB,CAAOgyB,GACfhO,EAAQuH,EAAS2G,UAAU,SAAA1W,GAAI,OAAIA,EAAK2W,YAAcA,IAE5D5G,EAASvH,GAAThkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKurB,EAASvH,GADd,CAEEyP,YAGF5wB,EAAKmB,SAAS,CACZguB,SAAUzG,EACVsH,gBAAgB,IAGlBhwB,EAAKivB,YAEPttB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZ6uB,gBAAgB,IAGdjyB,GAA0B,MAAjBA,EAAML,OACjB2B,aAAqB,2BAIvBC,aAAmB,4DArSNU,EA0SnBo6C,cAAgB,SAAArsB,GAAY,IAAT7uB,EAAS6uB,EAAT7uB,GACZA,EAULb,GAAM,CACJa,KACAgR,UAAW,SAAAoa,GAEL,IAAAkyB,EAAAlyB,EADJ6E,gBACI,IAAAqtB,EADO,GACPA,EACJx8C,EAAKmB,SAAS,CACZguB,WACA5uB,SAAS,EACT6uB,iBAAkB,IAEhBD,EAAS5oB,OACXvG,EAAKivB,WAIP5vB,aAAqB,mCAEvBsC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZguB,SAAU,GACV5uB,SAAS,EACT6uB,iBAAkB,IAGhBrxB,GAA0B,MAAjBA,EAAML,OACjB2B,aAAqB,2BAIvBC,aAAmB,0DAtCrBU,EAAKmB,SAAS,CACZguB,SAAU,GACV5uB,SAAS,EACT6uB,iBAAkB,KA/SLpvB,EAuVnBmuB,aAAe,WAAmB,IAAlBC,EAAkBphB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAAOqhB,EAG5BD,EADFpb,YAF8B,IAAAqb,EAEvB,EAFuBA,EAAAC,EAG5BF,EADQnU,gBAFoB,IAAAqU,EAET,GAFSA,EAAAC,EAG5BH,EADuBlU,uBAFK,IAAAqU,EAEa,EAFbA,EAAAC,EAG5BJ,EAD4ChQ,QAG1C9d,EAAQ,CACZ8d,cAN8B,IAAAoQ,EAE0B,GAF1BA,IAMV,CAAEC,WAAY,IAClCzb,OACAiH,WACAC,mBAGFla,EAAKy8C,mBAELz8C,EAAK0uB,WAALvxB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAqBmD,KArWJN,EAwWnBy8C,iBAAmB,WAAM,IACf9tB,EAAoB3uB,EAAKwC,MAAzBmsB,gBAER3uB,EAAKmB,SAAS,CAAEZ,SAAS,I/D1ctB,SAAA+sB,GAAiE,IAAvCqB,EAAuCrB,EAAvCqB,gBAAiBze,EAAsBod,EAAtBpd,UAAWvO,EAAW2rB,EAAX3rB,QACpDxD,aAAM,GAAAlC,OAAIT,KAAJ,eAAAS,OAAgC0yB,IAC1C7wB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,K+DicvBmgB,CAAe,CACbyQ,kBACAze,UAAW,SAAA8gB,GAAA,IACTipB,EADSjpB,EACTipB,YACAI,EAFSrpB,EAETqpB,YACAtU,EAHS/U,EAGT+U,QACA2W,EAJS1rB,EAIT0rB,eAJS,OAKL18C,EAAKmB,SAAS,CAClBZ,SAAS,EACT05C,cACAI,cACAtU,UACA2W,oBAEF/6C,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,EACT05C,YAAa,GACbI,YAAa,GACbtU,SAAS,EACT2W,gBAAgB,IAElBp9C,aAAmB,qDAlYNU,EAuYnB0uB,WAAa,SAAAyC,GAAiC,IAA9Bne,EAA8Bme,EAA9Bne,KAAMiH,EAAwBkX,EAAxBlX,SAAUmE,EAAc+S,EAAd/S,QAE5BuQ,EACE3uB,EAAKwC,MADPmsB,gBAGF3uB,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,K/DriBnB,SAAAjiB,GAKJ,IAJDwyB,EAICxyB,EAJDwyB,gBAIC8b,EAAAtuC,EAHDmiB,gBAGC,IAAAmsB,EAHW,CAAEz3B,KAAM,EAAGiH,SAAU,IAGhCwwB,EAFDv6B,EAEC/T,EAFD+T,UACAvO,EACCxF,EADDwF,QAEO3C,aAAO,GAAA/C,OAAIT,KAAJ,KAAAS,OAAsB0yB,EAAtB,QAA6CrQ,GACxDxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,K+DyhBvB4+C,CAAS,CACPhuB,kBACArQ,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAAAqhB,GAA2C,IAAxCjT,EAAwCiT,EAAxCjT,SAAUwQ,EAA8ByC,EAA9BzC,QAASC,EAAqBwC,EAArBxC,eACvBjV,EAA2BwE,EAA3BxE,MAAOI,EAAoBoE,EAApBpE,gBACfla,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,QACAI,kBACA4U,UACAC,oBAGJptB,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,iEAtaNU,EA2anB0qC,mBAAqB,SAACC,GAAW,IAAA9oC,EACJ7B,EAAKM,MAAxB0S,EADuBnR,EACvBmR,KAAMiH,EADiBpY,EACjBoY,SACdja,EAAKmuB,aAAa,CAAEnb,OAAMiH,aAE1B,IAAMlb,EAAI,IAAA9C,OAAO0uC,EAAOzrC,GAAd,MAAAjD,OAAqB6Y,GAAW61B,EAAO91B,MAAvC,UAAA5Y,OAAqD0uC,EAAOja,WAAa,IACnFxiB,GAAQ,CACNpK,MAAO,oBACPqK,SAAQ,wDAAAlS,OAAuD8C,EAAvD,MACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,W/DpeV,IAA0BrP,EAAIoc,EAAJpc,E+DqeRyrC,EAAOzrC,G/DreKoc,E+DqeD,CAC1BpL,UAAW,WACT9Q,aAAqB,mCACrBY,EAAKmuB,aAAa,CAAEnb,OAAMiH,cAE5BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,2BAEnBA,aAAmB,yC/D7exBH,aAAS,GAAAlD,OAAIT,KAAJ,KAAAS,OAAsBiD,IACnCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,S+DqCpCiC,EAucnBgvB,eAAiB,WACfhvB,EAAKmB,SAAS,CACZoZ,UAAU,EACVqiC,eAAe,IAGjB58C,EAAKmuB,gBA7cYnuB,EAgdnB08C,eAAiB,SAAAhrB,GAAgB,IAAAmrB,EAAAnrB,EAAbxyB,UAAa,IAAA29C,EAAR,EAAQA,EAC/B78C,EAAKy8C,mBACM,IAAPv9C,EAQJc,EAAKmB,SAAS,CACZjC,KAAIqb,UAAU,EAAMqiC,eAAe,IARnC58C,EAAKmB,SAAS,CACZjC,KAAI09C,eAAe,EAAMriC,UAAU,KApdtBva,EA+dnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAKmuB,aAAa,CAAEnb,OAAMiH,WAAUmE,cAlerBpe,EAsenB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKmuB,aAAa,CAAEnb,KAAM,EAAGiH,WAAUmE,QAAShP,MAzejCpP,EA6enB+e,wBAA0B,WAAM,IAAAU,EACAzf,EAAKM,MAA3B2Z,EADsBwF,EACtBxF,SACAP,EAFsB+F,EACZrB,QACV1E,eACR1Z,EAAKmuB,aAAa,CAAEnb,KAAM,EAAGiH,WAAUmE,QAAS,CAAE1E,qBAhfjC1Z,EAmfnBivB,SAAW,WAAM,IAAAvP,EAC6B1f,EAAKM,MADlCkvB,EAAA9P,EACPyP,gBADO,IAAAK,EACI,GADJA,EACQJ,EADR1P,EACQ0P,iBAEjBjO,EAAQgO,EAASE,UAAU,SAAAhV,GAAC,OAAIA,EAAEiV,YAAcF,IAGhDpF,EAAUmF,EAFChO,EAAQ,IAAMgO,EAAS5oB,OAAS,EAAI4a,EAAQ,GAI7DnhB,EAAKmB,SAAS,CAAEiuB,iBAAkBpF,EAAQsF,aA3fzBtvB,EA8fnBuvB,aAAe,WAAM,IAAAe,EACyBtwB,EAAKM,MAD9Bw8C,EAAAxsB,EACXnB,gBADW,IAAA2tB,EACA,GADAA,EACI1tB,EADJkB,EACIlB,iBAEjBjO,EAAQgO,EAASE,UAAU,SAAAhV,GAAC,OAAIA,EAAEiV,YAAcF,IAC9CE,EAAcH,EAAmB,IAAVhO,EAAcgO,EAAS5oB,OAAS,EAAI4a,EAAQ,GAAnEmO,UAERtvB,EAAKmB,SAAS,CAAEiuB,iBAAkBE,KApgBjBtvB,EAugBnB+8C,kBAAoB,SAAAprB,GAWd,IAVJ4oB,EAUI5oB,EAVJ4oB,WACAvsB,EASI2D,EATJ3D,aACAnZ,EAQI8c,EARJ9c,KACA6b,EAOIiB,EAPJjB,UACAyrB,EAMIxqB,EANJwqB,cACAR,EAKIhqB,EALJgqB,gBACAhsB,EAIIgC,EAJJhC,eACAC,EAGI+B,EAHJ/B,WACAC,EAEI8B,EAFJ9B,UACAC,EACI6B,EADJ7B,SACIwN,EACwCt9B,EAAKM,MAD7C08C,EAAA1f,EACInO,gBADJ,IAAA6tB,EACe,GADfA,EACmB5tB,EADnBkO,EACmBlO,iBACjB6tB,EAAe9tB,EAASE,UAAU,SAAAhV,GAAC,OAAIA,EAAEiV,YAAcF,IAE7D,IAAKmrB,EACH,OACE92C,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTua,cAAe,SACfgsB,OAAQ,OACR3oB,WAAY,WAGZ9wB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,yBACVqB,QAAS,WACPy4C,GAAc,GACdR,EAAgB,CAAEz8C,GAAI8uB,KAExBhnB,MAAO,CAAEid,aAAc,MAEvBxgB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,uBATf,sBAYFoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,yBACVqB,QAAS,WACP1D,EAAK08C,eAAe,CAAEx9C,GAAI8uB,KAE5BhnB,MAAO,CAAEid,aAAc,MAEvBxgB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eARf,uBAWFoB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,wBACVqB,QAAS,WACP1D,EAAK0qC,mBAAmB,CACtBxrC,GAAI8uB,EACJnZ,OACA6b,eAGJ1pB,MAAO,CAAEid,aAAc,MAEvBxgB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,gBAZf,0BAoBZ,IAAsB,IAAlB46C,EACF,OAAOx5C,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,MA9DL,IAAA80C,EAmEAhuB,EAAS8tB,GADXnc,EAlEEqc,EAkEFrc,IAAK/hC,EAlEHo+C,EAkEGp+C,KAAMg7C,EAlEToD,EAkESpD,QAlETqD,EAAAD,EAkEkBvsB,eAlElB,IAAAwsB,KAAAvD,EAqEsBJ,GAAar/B,OAAO,SAAArY,GAAC,OAAIA,EAAE8D,QAAU+qB,IAAxDlB,EArEHvyB,OAAA6e,GAAA,EAAA7e,CAAA08C,EAAA,MAuEJ,OACEp2C,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,+BAAoB8+B,GACpBr9B,EAAA1B,EAAAC,cAAA,WAAM+3C,GACNt2C,EAAA1B,EAAAC,cAAA,WAAMjD,KAGV0E,EAAA1B,EAAAC,cAAA,UAEIhC,EAAKyvB,kBAAkB,CACrBzB,eACAoB,mBACAM,kBACAC,iBACAC,aACAC,YACAC,WACAC,eAAc,GAAA9zB,OAAKghD,EAAe,EAApB,KAAAhhD,OAAyBkzB,EAAS5oB,aA5mBzCvG,EAonBnByvB,kBAAoB,SAAAuX,GASd,IARJhZ,EAQIgZ,EARJhZ,aACAoB,EAOI4X,EAPJ5X,iBACAM,EAMIsX,EANJtX,gBACAC,EAKIqX,EALJrX,eACAC,EAIIoX,EAJJpX,WACAC,EAGImX,EAHJnX,UACAC,EAEIkX,EAFJlX,SACAC,EACIiX,EADJjX,eAGA,OAD2B/vB,EAAKM,MAAxB0vB,eAECvsB,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,yBACV2E,MAAO,CAAEipB,UAAW,SAAU3T,eAAgB,kBAE9C7Y,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,qBAAA5K,OAAuB+xB,EAAvB,KAAA/xB,OAAuCmzB,GAC1C3vB,KAAK,SACL4C,UAAU,gBACVqB,QAASisB,GAETlsB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,kBAAA5K,OAAoB+xB,EAApB,KAAA/xB,OAAoCmzB,GACvCtrB,MAAM,WACNzB,UAAU,mCAGdoB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQ0C,SAAU,SAAU6W,aAAc,WAC/DzsB,EAAA1B,EAAAC,cAAA,WAAM+tB,GACNtsB,EAAA1B,EAAAC,cAAA,QACEK,UAAS,eAAApG,OAAiByzB,EAAgB3oB,OAC1CC,MAAO,CAAEmpB,UAAW,WAEnBT,EAAgBU,aAEnB3sB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,aAAA5K,OAAe+xB,EAAf,KAAA/xB,OAA+BmzB,GAClC3vB,KAAK,SACL4C,UAAU,gBACVqB,QAAS,kBAAMmsB,EAAU,CAAE7B,eAAcsB,UAAWF,MAEpD3rB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,WAAA5K,OAAa+xB,EAAb,KAAA/xB,OAA6BmzB,GAChCtrB,MAAM,WACNzB,UAAU,uBAGdoB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,aAAA5K,OAAe+xB,EAAf,KAAA/xB,OAA+BmzB,GAClC3vB,KAAK,SACL4C,UAAU,gBACVqB,QAAS,kBAAMosB,EAAS,CAAE9B,eAAcsB,UAAWF,MAEnD3rB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,WAAA5K,OAAa+xB,EAAb,KAAA/xB,OAA6BmzB,GAChCtrB,MAAM,UACNzB,UAAU,yBAKlBoB,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,sBAAA5K,OAAwB+xB,EAAxB,KAAA/xB,OAAwCmzB,GAC3C3vB,KAAK,SACL4C,UAAU,gBACVqB,QAASksB,GAETnsB,EAAA1B,EAAAC,cAAA,QACE6E,IAAG,oBAAA5K,OAAsB+xB,EAAtB,KAAA/xB,OAAsCmzB,GACzCtrB,MAAM,WACNzB,UAAU,uCAjsBHrC,EAysBnB08B,UAAY,WAAM,IAAAa,EAGZv9B,EAAKM,MADPia,EAFcgjB,EAEdhjB,SAAUqiC,EAFIrf,EAEJqf,cAAevC,EAFX9c,EAEW8c,YAAatU,EAFxBxI,EAEwBwI,QAGxC,OAAIxrB,GAAYqiC,EACP,MAGJ7W,GAAWsU,EAEZ52C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,wDAC4DuW,GAAe+8B,OASnF52C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIzT,MAAO,CAAEid,aAAc,OAAQqO,UAAW,SACrD7uB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,yBACV2E,MAAO,CAAEid,aAAc,KACvBvgB,QAAS,kBAAM1D,EAAK08C,eAAe,CAAEx9C,GAAI,MAEzCuE,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eANf,gCAnuBWrC,EAgvBnBq9C,sBAAwB,WAAM,IAAAC,EAGxBt9C,EAAKM,MADPpB,EAF0Bo+C,EAE1Bp+C,GAAI+6C,EAFsBqD,EAEtBrD,YAAaI,EAFSiD,EAETjD,YAAa9/B,EAFJ+iC,EAEI/iC,SAAUwrB,EAFduX,EAEcvX,QAGlCpX,EAAoB3uB,EAAKwC,MAAzBmsB,gBACR,OAAKA,GAAoBpU,EAIvB9W,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACu7C,GAAD,CACEr+C,GAAIA,EACJyvB,gBAAiBA,EACjBsrB,YAAaA,EACbI,YAAaA,EACbtU,QAASA,EACTwS,WAAYv4C,EAAKgvB,eACjBlP,oBAAkB,KAXf,MAvvBQ9f,EAwwBnBw9C,2BAA6B,WAAM,IAAAC,EAG7Bz9C,EAAKM,MADPpB,EAF+Bu+C,EAE/Bv+C,GAAI+6C,EAF2BwD,EAE3BxD,YAAa2C,EAFca,EAEdb,cAGXjuB,EAAoB3uB,EAAKwC,MAAzBmsB,gBACR,IAAKA,IAAoBiuB,EACvB,OAAO,KAwBT,OACEn5C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACu7C,GAAD,CACEr+C,GAAIA,EACJyvB,gBAAiBA,EACjBsrB,YAAaA,EACb1B,WAAYv4C,EAAKgvB,eACjBlP,oBAAkB,MA9yBP9f,EAozBnBqwB,UAAY,WAAM,IAAAqtB,EAaZ19C,EAAKM,MAXPia,EAFcmjC,EAEdnjC,SACAqiC,EAHcc,EAGdd,cACA9iC,EAJc4jC,EAId5jC,MACA9G,EALc0qC,EAKd1qC,KACAiH,EANcyjC,EAMdzjC,SACAC,EAPcwjC,EAOdxjC,gBACAkE,EARcs/B,EAQdt/B,QACA0Q,EATc4uB,EASd5uB,QACAC,EAVc2uB,EAUd3uB,eACAgX,EAXc2X,EAWd3X,QACA2W,EAZcgB,EAYdhB,eAGF,OAAIniC,GAAYqiC,EACP,KAIPn5C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6d,GAAD,CACEhZ,IAAI,aACJ/C,MAAM,mCACN+V,QAAS7Z,EAAK6Z,QAAQ,CACpBiV,UAASC,iBAAgB8kB,YAAa9N,EAAS2W,mBAEjD5iC,MAAOA,EACP3G,aAAcnT,EAAKmT,aACnB+G,gBAAiBA,EACjB9I,SAAUpR,EAAK8e,kBACf9E,eAAgBha,EAAK+e,wBAErB7L,YAAa4G,EAAMvT,OACnByM,KAAMA,EACNiH,SAAUA,EACVP,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,MAv1BxB9f,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTyvB,gBAAgB,EAChBlW,MAAO,GACPgV,QAAS,GACTC,eAAgB,GAChB3Q,QAAS,CAAElf,GAAI,IACfqb,UAAU,EACVqiC,eAAe,EACf3C,YAAa,GACbI,YAAa,GACbtU,SAAS,EACT2W,gBAAgB,EAChBx9C,GAAI,EACJiwB,SAAU,GACVC,iBAAkB,GAGpBpvB,EAAK6Z,QAAU,SAAA+Q,GAET,IADJkE,EACIlE,EADJkE,QAASC,EACLnE,EADKmE,eAAgB8kB,EACrBjpB,EADqBipB,YAAa6I,EAClC9xB,EADkC8xB,eAEhC5I,EAAO,CACX,CACEjtC,IAAK,MACL9H,KAAM,YACNwR,MAAO,QACP+J,QAAQ,GAEV,CACEzT,IAAK,UACL9H,KAAM,WACN4a,SAAS,EACTW,QAAQ,GAEV,CACEzT,IAAK,OACL9H,KAAM,SACNub,QAAQ,EACR/J,MAAO,QACPgL,OAAQ,SAAAu5B,GAAA,IAAGiF,EAAHjF,EAAGiF,QAASh7C,EAAZ+1C,EAAY/1C,KAAZ,OACN0E,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQpG,MAAO,UACpC,GAAAtU,OAAG89C,EAAH,MAAA99C,OAAe8C,GAAO8pB,WAMzB4H,EAAoB3B,EAAQnoB,IAAI,SAAAmkB,GAAA,MAA8B,CAAEkD,aAAhClD,EAAG5rB,GAA+C2V,KAAlDiW,EAAOjW,KAAiD6b,UAAxD5F,EAAa4F,aAE7CC,EAAuB5B,EAC1BpoB,IAAI,SAAAg3C,GAAA,MAA2C,CAAE3vB,aAA7C2vB,EAAG3vB,aAAwDsB,UAA3DquB,EAAiBruB,UAAqDsB,QAAtE+sB,EAA4B/sB,WAC7BC,EAAmBJ,EAAkBlqB,OACrCuqB,EAAiB,GAEvB/B,EACGpoB,IAAI,SAAAi3C,GAAA,MAA6B,CAAEtuB,UAA/BsuB,EAAGtuB,UAAuCsB,QAA1CgtB,EAAchtB,WAClBG,OAAO,SAACrH,EAADwB,GAAiC,IAAzBoE,EAAyBpE,EAAzBoE,UAAWsB,EAAc1F,EAAd0F,QAQzB,OAPKlH,EAAI4F,KACP5F,EAAI4F,GAAa,CAAEA,YAAW7xB,GAAI,GAClCqzB,EAAehsB,KAAK4kB,EAAI4F,KAG1B5F,EAAI4F,GAAW7xB,IAAMmzB,EAAU,EAAI,EAE5BlH,GACN,IAEL,IAAMuH,EAAoBR,EAAkB9pB,IAAI,SAAA5E,GAAC,MAAK,CACpD8E,IAAG,aAAA5K,OAAe8F,EAAEisB,cACpBjvB,KACE0E,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,SAAU4U,cAAe,WACtEztB,EAAA1B,EAAAC,cAAA,WAAMqb,GAAatb,EAAE8S,OACrBpR,EAAA1B,EAAAC,cAACqd,GAAD,CACExY,IAAG,UAAA5K,OAAY8F,EAAEisB,cACjB9uB,GAAI6C,EAAEisB,aACNnoB,MAAOsX,GAAapb,EAAE8S,MACtB3N,MAAOnF,EAAE2uB,UACT3pB,MAAM,cAERtD,EAAA1B,EAAAC,cAAA,UACE6E,IAAG,MAAA5K,OAAQ8F,EAAEisB,cACbvuB,KAAK,SACL4C,UAAU,iBAEVoB,EAAA1B,EAAAC,cAAC05C,GAAD,CACE1tB,aAAcjsB,EAAEisB,aAChBnZ,KAAM9S,EAAE8S,KACR6b,UAAW3uB,EAAE2uB,UACbqV,QAAS8N,EACT8H,gBAAiB37C,EAAKo6C,cACtBwB,oBAAqB57C,EAAK+8C,kBAC1BntB,WAAY5vB,EAAKivB,SACjBU,eAAgB3vB,EAAKuvB,aACrBM,UAAW7vB,EAAKs8C,cAChBxsB,SAAU9vB,EAAKu8C,aACf1tC,QAAS7O,EAAKmuB,iBAKtB5d,MAAO,OACPlO,UAAW,cACXkZ,OAAQ,SAAAsiC,GAAmB,IAAhBvuB,EAAgBuuB,EAAhBvuB,UACH8B,EAAsBT,EACzB7Y,KAAK,SAAAuZ,GAAE,OAAIA,EAAGrD,eAAiBjsB,EAAEisB,cAAgBqD,EAAG/B,YAAcA,IAErE,OAAK8B,GAAuD,OAAhCA,EAAoBR,SAIZ,IAAhCQ,EAAoBR,QAEpBntB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,WAA5B,gBAKF7tB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,YAA5B,gBAVO7tB,EAAA1B,EAAAC,cAAA,QAAM4E,KAAK,MAAM0qB,aAAW,kBAA5B,oBAeb,SAAAr1B,OACK63C,EACA,CACD,CACEjtC,IAAK,aACL9H,KAAM,eACNuZ,UAAU,EACV/H,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAAuiC,GAAuC,IAAzB5+C,EAAyB4+C,EAApCxuB,UAAoCyuB,EAAAD,EAArBrsB,kBAAqB,IAAAssB,EAAR,EAAQA,EAC7C,OAAIrB,EAEAj5C,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLmpB,UAAW,SACXnZ,WAAY,SACZqC,SAAU,SAGXoY,GAMLhuB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLmpB,UAAW,SACXnZ,WAAY,SACZqC,SAAU,SAIVyX,EAAe1W,OAAO,SAAA4jC,GAAA,IAAG1uB,EAAH0uB,EAAG1uB,UAAH,OAAmBpwB,IAAOowB,IAC7C3oB,IAAI,SAAAs3C,GAAA,IAAGxgD,EAAHwgD,EAAGxgD,GAAH,OAAY4V,KAAKue,MAAOn0B,EAAKozB,EAAoB,OAAM,IAC3DY,MAxCjBt0B,OAAAmrB,GAAA,EAAAnrB,CA+CK8zB,KA/KUjxB,mFAqLjBE,KAAKiuB,0DAGYrrB,EAAW0B,GAAW,IAAA05C,EAGnCh+C,KAAKI,MADP0S,EAFqCkrC,EAErClrC,KAAMiH,EAF+BikC,EAE/BjkC,SAAUC,EAFqBgkC,EAErBhkC,gBAEZ5Z,EAAQ,CAAE8d,QAJuB8/B,EAEJ9/B,SAK/BpL,IAASxO,EAAUwO,OACrB1S,EAAM0S,KAAOA,GAGXiH,IAAazV,EAAUyV,WACzB3Z,EAAM2Z,SAAWA,GAGfC,IAAoB1V,EAAU0V,kBAChC5Z,EAAM4Z,gBAAkBA,oCA6pB1B,OAFIha,KAAKI,MADPC,QAIOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACGzf,KAAKw8B,YACLx8B,KAAKm9C,wBACLn9C,KAAKs9C,6BACLt9C,KAAKmwB,oBAn3BoBptB,iBA83BnB0J,MALkB0E,aAAU,CACzCC,KAAM,sBACNwO,oBAAoB,GAFWzO,CAG9B6c,KC/2BYiwB,GAzJW,SAAAhiD,GAIpB,IAHJiiD,EAGIjiD,EAHJiiD,mBACA7vC,EAEIpS,EAFJoS,UACA8vC,EACIliD,EADJkiD,eAKEhgB,EAKE+f,EALF/f,iBACAlF,EAIEilB,EAJFjlB,aACAC,EAGEglB,EAHFhlB,eANEklB,EASAF,EAFFtrB,4BAPE,IAAAwrB,EAOqB,EAPrBA,EAAAC,EASAH,EADFvrB,oBARE,IAAA0rB,EAQa,EARbA,EAUEn0B,EAAc/D,KAAOgY,GAgI3B3vB,wBAAa,CACXC,SA/He,SAAAC,GAAiB,IAAdC,EAAcD,EAAdC,QAadS,EAAS,CACXwjB,qBAAsB,GACtBD,aAAc,IAGVjjB,EAAe,SAACC,GACpBA,EAAM2uC,UACN,IAAMpvC,EAAMjS,OAAA2S,GAAA,EAAA3S,CAAA,GAAM0S,EAAME,OAAOhR,MAAQ8Q,EAAMnJ,cAAcb,OAC3DyJ,EAAMnS,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAQmS,EAARnS,OAAA2S,GAAA,EAAA3S,CAAA,GAAiB0S,EAAME,OAAOhR,KApBrB,SAACqQ,GAChB,IAAMC,EAAQD,GAAU,GACxB,OAAIC,EAAMyjB,qBAAuB,GAAKzjB,EAAMyjB,qBAAuB,IAC1D,+CAELzjB,EAAMwjB,aAAe,GAAKxjB,EAAMwjB,aAAe,IAC1C,+CAGF,GAWoC1jB,CAASC,KAEpDivC,EAAexuC,EAAME,OAAOhR,MAAO8Q,EAAMnJ,cAAcb,OAEvDulB,SAASqzB,eAAe,2BAA2BC,YAAcpvC,EAAOwjB,qBAExE1H,SAASqzB,eAAe,mBAAmBC,YAAcpvC,EAAOujB,cAGlE,OACEpvB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAC8M,GAAA,EAAD,CACEzJ,QAAM,EACN2J,eAAe,oBACf3M,UAAS,iBAAApG,OA9CH,OA8CG,KAAAA,OA7CE,uBA6CF,gBAETwH,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,4BAAd,8BAEFoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eAEboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,QACboB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,GAAIC,GAAI,IACvBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SAAOvC,KAAK,OAAOoG,MAAK,GAAA5J,OAAKk9B,EAAL,KAAAl9B,OAAqBm9B,GAAkB7tB,UAAQ,OAI7E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SAAOvC,KAAK,OAAOoG,MAAOukB,EAAY7O,OAAO,cAAehQ,UAAQ,OAI1E9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,IACxBjX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,4BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE28C,YAAU,EACV5/C,KAAK,uBACLU,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJH,YAAY,2BACZS,aAAa,QACbiI,aAAc+c,EACdtsB,SAAUoJ,IAEZnM,EAAA1B,EAAAC,cAAA,QAAM9C,GAAG,0BAA0BmD,UAAU,0BAA7C,QAINoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK4S,GAAI,GAAI3S,GAAI,EAAGC,GAAI,GACtBjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACEjD,KAAK,eACLU,KAAK,SACL8N,IAAI,IACJC,IAAI,MACJoxC,UAAQ,EACRvxC,YAAY,gBACZS,aAAa,QACbiI,aAAc8c,EACdrsB,SAAUoJ,IAEZnM,EAAA1B,EAAAC,cAAA,QAAM9C,GAAG,kBAAkBmD,UAAU,0BAArC,UAMVoB,EAAA1B,EAAAC,cAACiN,GAAA,EAAD,CAAe5M,UAAU,kBACrBiN,EAAOujB,cAELpvB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACE7M,UAAU,kBACV0E,MApHF,OAqHErD,QAAS,WACP6K,IACAM,MALJ,WAYJpL,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQ7M,UAAU,oBAAoBqB,QAASmL,GAA/C,mBChGNgwC,eAMJ,SAAAA,EAAYr8C,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2+C,IACjB7+C,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0hD,GAAAx+C,KAAAH,KAAMsC,KA8LRs8C,cAAgB,WACd9+C,EAAK++C,uBACL/+C,EAAKu0C,wBAjMYv0C,EAoMnBuE,OAAS,SAAC0tB,GAER,GADsBjyB,EAAKM,MAAnB4xB,YACUD,EAAK,CAErB,GADAjyB,EAAKmB,SAAS,CAAE+wB,UAAWD,IACf,MAARA,EAEF,YADAjyB,EAAKu0C,uBAIK,MAARtiB,GACFjyB,EAAKu0C,yBA9MQv0C,EAmNnBg/C,yCAA2C,SAAC5vC,GAAW,IpElIlD4hB,EAA8C/C,EAAS/d,EAAWvO,EoEmI7DzC,EAAOc,EAAKwC,MAAZtD,GAEA4sB,EAAiC1c,EAAjC0c,6BpErILkF,EoEuIgC,CACjC/C,QAAS,CACP/uB,GAAIuH,OAAOvH,GACX+/C,MAAOnzB,GAET5b,UAAW,WACTlQ,EAAK8+C,gBACL1/C,aAAqB,sCAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,2CAErBU,EAAK8+C,kBpEtJwC7wB,EAA+B+C,EAA/B/C,QAAS/d,EAAsB8gB,EAAtB9gB,UAAWvO,EAAWqvB,EAAXrvB,QAChE1C,aAAM,GAAAhD,OAAIL,KAAJ,wBAA8CqyB,EAAQ/uB,GAAI+uB,GACpEnwB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAIb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,MoE5FNiC,EA4OnB++C,qBAAuB,WAAM,IACnB7/C,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAEZ,SAAS,IACzBmF,GAAI,CACFxG,KACAgR,UAAW,SAACwc,GACV1sB,EAAKmB,SAAS,CACZurB,iBAAgBnsB,SAAS,KAG7BoB,QAAS,WACP3B,EAAKmB,SAAS,CACZ2Y,MAAO,GACPolC,OAAQ,GACR3+C,SAAS,IAEXjB,aAAmB,wDA5PNU,EAiQnB+zC,YAAc,SAACjc,GACb93B,EAAKmB,SAAS,CAAEg+C,mBAAoBrnB,IACpCqmB,GAAkB,CAChBC,mBAAoBtmB,EACpBumB,eAAgB,SAACx3C,EAAKhB,GAAU,IACtBs5C,EAAuBn/C,EAAKM,MAA5B6+C,mBACRn/C,EAAKmB,SAAS,CAAEg+C,mBAAmBhiD,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAMgiD,EAAPhiD,OAAA2S,GAAA,EAAA3S,CAAA,GAA4B0J,GAAOhB,OAEvE0I,UAAW,WAET4b,GAD+BnqB,EAAKM,MAA5B6+C,mBAC4B,CAClCjvC,UAAW,WACT9Q,aAAqB,kDADN,IAAAyC,EAEe7B,EAAKM,MAA3B2Z,EAFOpY,EAEPoY,SAAUmE,EAFHvc,EAEGuc,QAClBpe,EAAKu0C,qBAAqB,EAAGt6B,EAAUmE,IAEzCzc,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,yEArRZU,EA6RnByjC,gBAAkB,SAACrrB,EAAKvR,EAAKhB,GAAU,IAE/B69B,EADY1jC,EAAKM,MAAfwZ,MACWhC,KAAK,SAAAyG,GAAC,OAAIA,EAAErf,KAAOkZ,EAAIlZ,KAErCwkC,IACLA,EAAK78B,IAAQhB,EACbskB,GAAgBhtB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAKib,EAANjb,OAAA2S,GAAA,EAAA3S,CAAA,GAAY0J,GAAOhB,IAAS,CACzCqK,UAAW,WACT9Q,aAAqB,mDAEvBuC,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,uEA3SRU,EAiTnBgoB,OAAS,WACahoB,EAAKwC,MAAjBmC,QACAqjB,UAnTShoB,EAsTnBu0C,qBAAuB,SAACvhC,EAAMiH,EAAUmE,GAAY,IAC1Clf,EAAOc,EAAKwC,MAAZtD,GAERc,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvB91B,QAASA,GAAW,KAGtB4M,GAAmB,CACjB5M,UACAlf,KACAgR,UAAW,SAAA/T,GAAiC,IAApB2d,EAAoB3d,EAA9B0kB,SAAiBq+B,EAAa/iD,EAAb+iD,OAC7Bl/C,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvBp6B,QACAolC,SACAhlC,gBAAiBJ,EAAMvT,UAG3B5E,QAAS,WACP3B,EAAKmB,SAAS,CACZ2Y,MAAO,GACPolC,OAAQ,GACRhL,uBAAuB,IAEzB50C,aAAmB,oDA/UNU,EAoVnBo/C,uBAAyB,WAAM,IACrBlgD,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAE+yC,uBAAuB,IpEtCpC,SAAA0J,GAA6D,IAA1B1+C,EAA0B0+C,EAA1B1+C,GAAIgR,EAAsB0tC,EAAtB1tC,UAAWvO,EAAWi8C,EAAXj8C,QAChDrD,aAAW,GAAArC,OAAIL,KAAJ,8BAAAK,OAAmDiD,IAClEpB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,eAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACDza,GAAWA,EAAUhS,KAE1ByrB,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KoE0BvBshD,CAAwB,CACtBngD,KACAgR,UAAW,WACT9Q,aAAqB,iCACrBY,EAAKmB,SAAS,CAAE+yC,uBAAuB,KAEzCvyC,QAAS,WACP3B,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC50C,aAAmB,uDA/VNU,EAoWnBq0C,4BAA8B,WAAM,IAC1Bn1C,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvCjpB,GAA6B,CAC3B/rB,KACAgR,UAAW,WACTlQ,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC90C,aAAqB,kCAEvBuC,QAAS,WACP3B,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC50C,aAAmB,sEA/WNU,EAoXnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAxXE7G,EA2XnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKu0C,qBAAqB,EAAGt6B,EAAU7K,KA9XxBpP,EAkYnB+e,wBAA0B,WAAM,IAAAF,EACA7e,EAAKM,MAA3B2Z,EADsB4E,EACtB5E,SACAP,EAFsBmF,EACZT,QACV1E,eACR1Z,EAAKu0C,qBAAqB,EAAGt6B,EAAU,CAAEP,oBArYxB1Z,EAwYnB0zC,iBAAmB,WAAM,IACfhnB,EAAmB1sB,EAAKM,MAAxBosB,eACR,OACEjpB,EAAA1B,EAAAC,cAAC2xC,GAAD,CACEpD,WAAY7jB,EAAextB,GAC3BwtB,eAAgBA,KA7YH1sB,EAkZnBs/C,UAAY,WAAiB,IAAhBxrB,EAAgB9mB,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAChBjG,EAAQ,YAUZ,OARI+sB,EAAOjuB,QAAU+c,GAAqBE,UAAUjd,QAClDkB,EAAQ,QAGN+sB,EAAOjuB,QAAU+c,GAAqBH,QAAQ5c,QAChDkB,EAAQ,WAIRtD,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,UAAW4a,WAAY,UAC1CltB,MAAOA,EACP6f,MAAI,GAEHkN,EAAO5sB,QAnaKlH,EAwanBu/C,aAAe,SAAA3wC,GAA6B,IAAA4wC,EAAA5wC,EAA1B8d,sBAA0B,IAAA8yB,EAAT,GAASA,EAC1C,QAA8B9nC,IAA1BgV,EAAeoH,OACjB,OAAO,KAGT,IAAI2rB,EAASh8C,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,MA2Bb,OA1BIqkB,EAAeoH,OAAOjuB,QAAU+c,GAAqBC,WAAWhd,QAClE45C,EACEh8C,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,yBACV2E,MAAO,CAAEid,aAAc,KACvBvgB,QAAS,kBAAM1D,EAAK0/C,qBAAqBhzB,KAEzCjpB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,iBANf,cAWAqqB,EAAeoH,OAAOjuB,QAAU+c,GAAqBE,UAAUjd,QACjE45C,EACEh8C,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,yBACV2E,MAAO,CAAEid,aAAc,KACvBvgB,QAAS,kBAAM1D,EAAK2/C,mBAAmBjzB,KAEvCjpB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eANf,YAYFoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIzT,MAAO,CAAEid,aAAc,OAAQqO,UAAW,SACrD7uB,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CAAE2P,QAAS,OAAQqd,SAAU,OAAQpG,IAAK,SACpDnqB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEmpB,UAAW,QAAxB,WACCnwB,EAAKs/C,UAAU5yB,EAAeoH,QAC9B2rB,MA9cQz/C,EAqdnB0/C,qBAAuB,SAAChzB,GAAmB,IAEvC4nB,EACE5nB,EADF4nB,aAGFpmC,GAAQ,CACNpK,MAAO,mBACPqK,SAAQ,sDAAAlS,OAAkDq4C,EAAaptC,MAA/D,gDAERkH,SAAU,uBACVE,QAAS,aACTvH,MAAO,UACPwH,UAAW,WpEjYV,IAAA4iB,EACLjyB,EAAIm3B,EAASnmB,EAAWvO,EADnBwvB,EoEkYgB,CACbjyB,GAAIwtB,EAAextB,GACnBm3B,QAAS3J,EACTxc,UAAW,WACT9Q,aAAqB,kCACrBY,EAAK8+C,iBAEPn9C,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,2CpE9Y/BJ,EACCiyB,EADDjyB,GAAIm3B,EACHlF,EADGkF,QAASnmB,EACZihB,EADYjhB,UAAWvO,EACvBwvB,EADuBxvB,QAEjB1C,aAAM,GAAAhD,OAAIL,KAAJ,YAAkCsD,EAAIm3B,GAChDv4B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SoE5GNiC,EAufnB2/C,mBAAqB,SAACjzB,GAAmB,IAErC4nB,EACE5nB,EADF4nB,aAGFpmC,GAAQ,CACNpK,MAAO,iBACPqK,SAAQ,oDAAAlS,OAAgDq4C,EAAaptC,MAA7D,8CAERkH,SAAU,qBACVE,QAAS,aACTvH,MAAO,UACPwH,UAAW,WpEnZV,IAAAgjB,EACLryB,EAAIm3B,EAASnmB,EAAWvO,EADnB4vB,EoEoZc,CACXryB,GAAIwtB,EAAextB,GACnBm3B,QAAS3J,EACTxc,UAAW,WACT9Q,aAAqB,gCACrBY,EAAK8+C,iBAEPn9C,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBACVvB,GAA0B,MAAjBA,EAAML,OACxB2B,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,yCpEha/BJ,EACCqyB,EADDryB,GAAIm3B,EACH9E,EADG8E,QAASnmB,EACZqhB,EADYrhB,UAAWvO,EACvB4vB,EADuB5vB,QAEjB1C,aAAM,GAAAhD,OAAIL,KAAJ,UAAgCsD,EAAIm3B,GAC9Cv4B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,SoE5HNiC,EAyhBnB4/C,yBAA2B,SAAAl0B,GAA+B,IAA5BxsB,EAA4BwsB,EAA5BxsB,GAC5B,OADwDwsB,EAAxBuoB,kBAEvB,KAGPxwC,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC69C,GAAD,CAAmBlxB,gBAAiBzvB,OA9hB1Cc,EAAKM,MAAQ,CACXC,SAAS,EACT2zC,uBAAuB,EACvBp6B,MAAO,GACPolC,OAAQ,GACR9gC,QAAS,CACPpL,KAAM,EACNiH,SAAU,GACVqG,gBAAiB,GACjB6Y,aAAc,GACdC,eAAgB,IAElBlH,UAAW,IACXitB,mBAAoB,GACpBzyB,eAAgB,MAGlB1sB,EAAKyY,WAAa,CAChBY,SAAU,OACVtS,MAAO,cACPopB,UAAW,SACXnZ,WAAY,OACZ/P,gBAAiB,eAGnBjH,EAAK8/C,gBAAkB,CACrB,CACEj5C,IAAK,kBACL9H,KAAM,kBACNwR,MAAO,QACP+J,QAAQ,GAEV,CACEzT,IAAK,iBACL9H,KAAM,WACNub,QAAQ,GAEV,CACEzT,IAAK,eACL9H,KAAM,SACNub,QAAQ,GAEV,CAAEzT,IAAK,cAAe9H,KAAM,eAC5B,CAAE8H,IAAK,QAAS9H,KAAM,WAGxBiB,EAAK6Z,QAAU,SAAAyT,GAMT,IALJsmB,EAKItmB,EALJsmB,qBACAsL,EAII5xB,EAJJ4xB,OACArL,EAGIvmB,EAHJumB,YACArjB,EAEIlD,EAFJkD,mBACA4jB,EACI9mB,EADJ8mB,6BAuBM2L,EAASb,EAAOv4C,IAAI,SAAAq5C,GAAC,MAAK,CAC9Bn5C,IAAG,SAAA5K,OAAW+jD,EAAE9gD,IAChBH,KAA4B,IAAtBihD,EAAEh0B,UAAUnmB,MAAZ,UAAA5J,OACQ+jD,EAAE9gD,GADV,KAAAjD,OACgB+jD,EAAEl0B,6BAAF,IAAA7vB,OAAqC+jD,EAAE3H,sBAAvC,MAAmE,IAErF50C,EAAA1B,EAAAC,cAAA,QAAMgF,MAAO,CAAE2P,QAAS,OAAQ2F,eAAgB,WAE5C7Y,EAAA1B,EAAAC,cAAA,UAAQ6E,IAAG,cAAA5K,OAAgB+jD,EAAE9gD,IAAMO,KAAK,SAAS4C,UAAU,gBAAgBkQ,SAAS,MAClF9O,EAAA1B,EAAAC,cAACqd,GAAD,CACErY,MAAO,CAAEi5C,WAAY,UACrBp6C,MAAK,UAAA5J,OACO+jD,EAAE9gD,GADT,KAAAjD,OACe+jD,EAAEl0B,6BAAF,IAAA7vB,OAAqC+jD,EAAE3H,sBAAvC,MAAmE,IAEvFnxC,MACE84C,EAAEh0B,UAAU9kB,MAEdL,IAAG,kBAAA5K,OAAoB+jD,EAAE9gD,IACzB6H,MAAM,cAMlBwJ,MAAO,QACPlO,UAAW,cACXkZ,OAAQ,SAAAiP,GAAA,IAAA01B,EAAA11B,EAAG21B,sBAAH,IAAAD,EAAoB,GAApBA,EAAA,OACNz8C,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACG83C,EAAe/lC,OAAO,SAAA8E,GAAC,OAAIA,EAAEo5B,UAAY0H,EAAE9gD,KAAIyH,IAAI,SAAAuY,GAAC,OAAIA,EAAEkhC,UAAS,IAAM,EACzE,IACAJ,EAAE9zB,kBAKT,SAAAjwB,OAvDa,CACX,CACE4K,IAAK,kBACL9H,KAAM,kBACNwR,MAAO,QACP+J,QAAQ,GAEV,CACEzT,IAAK,iBACL9H,KAAM,WACN4a,SAAS,EACTW,QAAQ,GAEV,CACEzT,IAAK,eACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,MAAI,GAAAnc,OAAGmc,EAAIghB,eAAP,MAAAn9B,OAA0Bmc,EAAI+gB,cAAetQ,UAsChE1rB,OAAAmrB,GAAA,EAAAnrB,CAEK4iD,GACA,CACD,CACEl5C,IAAK,eACL9H,KAAM,OACNuZ,UAAWs7B,GAAwBC,EACnCp0C,KAAM,SACN8N,IAAK,EACLC,IAAK,IACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAAwS,GAAA,IAAG8E,EAAH9E,EAAG8E,aAAH,OACNpvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb6b,KAIP,CACElZ,QAASy6B,EACTvtC,IAAK,uBACL9H,KAAM,eACNuZ,SAAUkY,IAAuBqjB,EACjCp0C,KAAM,SACN8N,IAAK,IACLC,IAAK,MACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAA+O,GAAA,IAAGwI,EAAHxI,EAAGwI,qBAAH,OACNrvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb3D,KAAKue,MAAMkB,MAIlB,CACEjsB,IAAK,UACL9H,KAAM,SACNwR,MAAO,QACPoJ,SAAS,MAMjB3Z,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,iBACzCwX,SAAU,SAACwc,GACT93B,EAAK+zC,YAAYjc,MAIvB93B,EAAKo/C,uBAAuBzqC,KAA5BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KACAA,EAAKq0C,4BAA4B1/B,KAAjCxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KACAA,EAAK+zC,YAAYp/B,KAAjBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAxLiBA,mFA4LjBE,KAAK4+C,iDA0WE,IAAAr+C,EAAAP,KAAAuf,EAUHvf,KAAKI,MARPosB,EAFKjN,EAELiN,eACAnsB,EAHKkf,EAGLlf,QACA2zC,EAJKz0B,EAILy0B,sBACAp6B,EALK2F,EAKL3F,MACAolC,EANKz/B,EAMLy/B,OACAhlC,EAPKuF,EAOLvF,gBACAkE,EARKqB,EAQLrB,QACA8T,EATKzS,EASLyS,UAGF,OAAI3xB,IAAYmsB,EACPjpB,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,0BAAd,4BAGAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAa2E,MAAO,CAAE2P,QAAS,OAAQ4d,WAAY,aAC/D9wB,EAAA1B,EAAAC,cAAA,YAAO0qB,EAAe3L,QAAQ7Z,MAAO,OACrCzD,EAAA1B,EAAAC,cAAA,UAAK0qB,EAAe2F,UAGtB5uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAEsrB,UAAW,WACxC7uB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,WAAmC,KACnCoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAe8F,WAG9C/uB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,YAAoC,KACpCoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAe+F,YAG9ChvB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,UAA+B,KAC/BoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAaqqB,EAAegG,QAG9CjvB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,EAAG9X,GAAI,EAAG2S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAE2P,QAAS,OAAQsZ,UAAW,WAChExsB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,wBAOTnC,KAAKq/C,aAAa,CAAE7yB,mBACrBjpB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC+wB,GAAA,EAAD,CAAKC,MAAI,EAAChsB,MAAO,CAAE4mB,IAAK,WACtBnqB,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,WAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACVqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAJ7B,YAWNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,UAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,WAYNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,gBAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,iBAYNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,kBAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQmV,SAAO,EAACtd,MAAM,YAAY1E,UAAU,OAAOqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAA9E,mBAMJmoB,EAAeunB,kBAWb,KAVFxwC,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,eAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQmV,SAAO,EAACtd,MAAM,YAAY1E,UAAU,OAAOqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAA9E,iBAQVd,EAAA1B,EAAAC,cAACmxB,GAAA,EAAD,CAAYjB,UAAWA,GACrBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAAS/wB,UAAU,qBAAqBgxB,MAAM,KAC5C5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEIq5B,EACEzwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,eACrBoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACZoB,EAAA1B,EAAAC,cAACsO,GAAA,EAAD,CAASvJ,MAAM,UAAUC,MAAO,CAAEuJ,MAAO,OAAQC,OAAQ,YAK3D/M,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,aACboB,EAAA1B,EAAAC,cAAA,UACEgF,MAAO,CAAEwJ,OAAQ,QACjBnO,UAAU,qCACV5C,KAAK,SACLiE,QAASxD,KAAKk/C,wBAEd37C,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QANF,qBAYJoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,+BACN+V,QAAS3Z,KAAK4/C,gBACdhmC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBvwB,YAAa4G,EAAMvT,OACnByM,KAAM,EACNiH,SAAUC,EACVR,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,OAOhCrc,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACq+C,GAAD,CACEx0B,iBAAkBa,EAAextB,GACjC44C,mBAAoBprB,EAAeorB,mBACnC/R,QAASrZ,EAAemnB,YACxB/nB,6BAA8BY,EAAeZ,6BAC7C1b,aAAclQ,KAAK8+C,6CAIzBv7C,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACG3a,KAAKwzC,qBAGVjwC,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEIq5B,EACEzwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,eACrBoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACZoB,EAAA1B,EAAAC,cAACsO,GAAA,EAAD,CAASvJ,MAAM,UAAUC,MAAO,CAAEuJ,MAAO,OAAQC,OAAQ,YAK3D/M,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,aACboB,EAAA1B,EAAAC,cAAA,UACEgF,MAAO,CAAEwJ,OAAQ,QACjBnO,UAAU,kCACV5C,KAAK,SACLiE,QAASxD,KAAKm0C,6BAEd5wC,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QANF,qBAWJoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,6BACN+V,QAAS3Z,KAAK2Z,QAAQ,CACpBg6B,YAAannB,EAAemnB,YAC5BrjB,mBAAoB9D,EAAeunB,kBACnCL,qBAAsBlnB,EAAeknB,qBACrCQ,6BAA8B1nB,EAAe0nB,6BAC7C8K,WAEFplC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBvwB,YAAa4G,EAAMvT,OACnByM,KAAM,EACNiH,SAAUC,EACVR,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,OAO/B5f,KAAK0/C,yBAAyBlzB,OAOvCjpB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASxD,KAAK8nB,OAAOrT,KAAKzU,OAH5B,qBAvzBuB+C,iBAq0BtBC,eAAW27C,ICv2BpBh1B,eAKJ,SAAAA,EAAYrnB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2pB,IACjB7pB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0sB,GAAAxpB,KAAAH,KAAMsC,KA0ERyb,eAAiB,WACfje,EAAKmB,SAAS,CACZZ,SAAS,IAGX2d,GAAe,CACbhO,UAAW,SAAA/T,GAAkB,IAAf06B,EAAe16B,EAAf06B,SACZ72B,EAAKmB,SAAS,CACZm/C,QAASzpB,EACTt2B,SAAS,IAHgB,IAAAsB,EAMA7B,EAAKM,MAAxB0S,EANmBnR,EAMnBmR,KAAMiH,EANapY,EAMboY,SACdja,EAAK8pB,oBAAoB9W,EAAMiH,IAEjCtY,QAAS,SAAC5D,GACR+C,QAAQC,IAAIhD,GACZuB,aAAmB,qDA5FNU,EAiGnB8pB,oBAAsB,SAAC9W,EAAMiH,GAA2B,IxEzFxBpd,EAC1ByhB,EwEwFiCF,EAAiBpR,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAAOsqB,EAC7BlZ,EAAjBgZ,eAD8C,IAAAE,EACpC,GADoCA,EAGtDt3B,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAAQjhB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHihB,EADE,CAELoZ,UAAWJ,EAAQvxB,UxElGOhJ,EwEqGZ,CAChByhB,SAAU,CACRtL,OACAiH,WACAmE,QAAQjhB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACHihB,EADE,CAELoZ,UAAWJ,EAAQvxB,SAGvBqK,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,kDxEtHnBgf,EAAWzhB,GAAUA,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIV,KAAJ,uBAAsC+iB,GACjDxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MwErB9BiC,EAoInBkqB,YAAc,SAACF,GACOhqB,EAAKwC,MAAjBmC,QACAG,KAAR,wBAAA7I,OAAqC+tB,EAAQ9qB,MAtI5Bc,EAyInBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,KA5I1Bpe,EAgJnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU7K,KAnJvBpP,EAwJnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU,KA1JrBja,EA6JnBugD,WAAa,WAGX,OAFoBvgD,EAAKM,MAAjBggD,SAEU,IAhKDtgD,EAmKnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAvKE7G,EA0KnBwgD,gBAAkB,YxEhEb,SAAoC3jD,GACzC,IAAMuhB,EAAUvhB,EAAOuhB,SAAW,GAC3B7f,aAAe,GAAAtC,OAAIV,KAAJ,gCAA+C6iB,GAClEtgB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,0BAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACD9tB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUhS,KAElDyrB,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KwEoD/C0iD,CAA2B,CACzBriC,QAFkBpe,EAAKM,MAAjB8d,SAEc,GACpBzc,QAAS,WACPrC,aAAmB,uDA7KvBU,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CACPlf,GAAI,GACJk4B,QAAS,CAAEvxB,MAAO,EAAGqB,MAAO,MAE9Bo5C,QAAS,IAEXtgD,EAAK6Z,QAAU,CACb,CACEhT,IAAK,UACL9H,KAAM,UACNsD,UAAW,cACXiY,QAAQ,EACR/J,MAAO,QACP9Q,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAKugD,YAEhBhlC,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIgf,QAAUhf,EAAIgf,QAAQlwB,MAAQ,OAEtD,CACEL,IAAK,QACL9H,KAAM,QACNub,QAAQ,GAEV,CACEzT,IAAK,UACL9H,KAAM,UACNub,QAAQ,GAEV,CACEzT,IAAK,eACL9H,KAAM,WACNwR,MAAO,QACP+J,QAAQ,EACR7a,KAAM,UAER,CACEoH,IAAK,kBACL9H,KAAM,cACNub,QAAQ,EACR7a,KAAM,SACN8Q,MAAO,SAET,CACE1J,IAAK,SACL9H,KAAM,SACNub,QAAQ,GAEV,CACEzT,IAAK,WACL9H,KAAM,WACNub,QAAQ,GAEV,CACEzT,IAAK,6BACL9H,KAAM,uBACNU,KAAM,SACN8Q,MAAO,QACPlO,UAAW,gBAlEErC,mFAwEjBE,KAAK+d,kDA6GE,IAAAwB,EAQHvf,KAAKI,MANPC,EAFKkf,EAELlf,QACAuZ,EAHK2F,EAGL3F,MACA9G,EAJKyM,EAILzM,KACAiH,EALKwF,EAKLxF,SACAC,EANKuF,EAMLvF,gBACAkE,EAPKqB,EAOLrB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBAGHyX,EAAMvT,QACL9C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,cACrBoB,EAAA1B,EAAAC,cAAA,UACEK,UAAU,eACV5C,KAAK,SACLiE,QAASxD,KAAKsgD,iBAEd/8C,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QALF,qBAYNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gBAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,sDACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAxOF7c,iBAkPjBC,eAAW2mB,ICnPX1a,GAXE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAMf,OAJKD,EAAM0R,SAAY1R,EAAM0R,QAAQlb,QACnCyJ,EAAOyR,QAAU,gCAGZzR,GCIHoxC,8MAkBJ3hC,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKw7B,iBAAiB,EAAGvhB,EAAU,6EAG5B,IAAA3W,EASHpD,KAAKsC,MAPP4N,EAFK9M,EAEL8M,aACAyQ,EAHKvd,EAGLud,SACAwlB,EAJK/iC,EAIL+iC,SACAxP,EALKvzB,EAKLuzB,SACA8pB,EANKr9C,EAMLq9C,UACAt7B,EAPK/hB,EAOL+hB,gBACAu7B,EARKt9C,EAQLs9C,SAGF,OACEn9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6gB,EACTrwB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAASqwB,EACT7/B,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,YACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,WACZS,aAAa,QACbkI,QAAS2qC,EACTn6C,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,SAKjE3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mCACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6K,EACTra,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,UACEK,UAAU,kBACV5C,KAAK,SACLiE,QAASk9C,GAHX,yBAtGmB39C,iBAAjCy9C,GAWGh5C,aAAe,CACpBmvB,SAAU,GACVwP,SAAU,GACVxlB,SAAU,GACV8/B,UAAW,IAyGf,IAMeh0C,MANgB0E,aAAU,CACvCC,KAAM,oBACNwO,oBAAoB,EACpB3Q,aAH6BkC,CAI5BqvC,KCzHG72B,eAKJ,SAAAA,EAAYrnB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2pB,IACjB7pB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0sB,GAAAxpB,KAAAH,KAAMsC,KAqDR03B,cAAgB,WACdzQ,GAAuB,CACrBvZ,UAAW,SAAC2wC,GAAa,IACfhgC,EAAaggC,EAAbhgC,SACFigC,EAAmBjgC,EAASzG,OAAO,SAACgK,EAAGjD,EAAO4/B,GAAX,OAAoBA,EAAKp6C,IAAI,SAAAq6C,GAAC,OAAIA,EAAE95C,QAAOma,QAAQ+C,EAAEld,SAAWia,IACzGnhB,EAAKmB,SAALhE,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK0jD,EADL,CAEEI,iBAAkBpgC,EAClBA,SAAUigC,MAGdn/C,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,yDAnENU,EAwEnB8pB,oBAAsB,SAAC9W,EAAMiH,EAAUmE,GzEmIlC,IAAkCvhB,EACjCyhB,EyEnIJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KzE+HlBE,GADiCzhB,EyE5HZ,CACvByhB,SAAU,CACRtL,OACAiH,WACAmE,QAASA,GAAW,IAEtBlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oDzE8GEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIR,KAAJ,gCAAsD6iB,GACjExgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MyExN9BiC,EAmGnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GACxC,GAAkB,YAAdqiB,GAAyC,YAAdA,EAAyB,KAAAE,EAAAvmB,EACH7B,EAAKM,MAAhDknC,EAD8C3lC,EAC9C2lC,UAAWhQ,EADmC31B,EACnC21B,UACf3W,EAFkDhf,EACxBo/C,iBACE7mC,OAAO,SAAAgH,GAAC,QAAMomB,GAAapmB,EAAEomB,YAAcA,MACpEhQ,GAAapW,EAAEoW,YAAcA,KAGpC3W,EAAWA,EAASzG,OAAO,SAACgK,EAAGjD,EAAO4/B,GAAX,OAAoBA,EAAKp6C,IAAI,SAAAq6C,GAAC,OAAIA,EAAE95C,QAAOma,QAAQ+C,EAAEld,SAAWia,IACxFxa,IAAI,SAAAq6C,GAAC,MAAK,CAAE95C,MAAO85C,EAAE95C,MAAOrB,MAAOm7C,EAAEjnB,aACxC/5B,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAEGF,EAAYriB,GAFf1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,WAGEvH,GAHFuH,QAKK,KAAA84B,EACLlhD,EAAKmB,UAAL+/C,EAAA,GAAA/jD,OAAA2S,GAAA,EAAA3S,CAAA+jD,EACG/4B,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAA+jD,EAEGh5B,EAAYriB,GAFfq7C,IAfgD,IAqB1C9iC,EAAYpe,EAAKM,MAAjB8d,QACRA,EAAQ+J,GAAStiB,EAAMA,MAEvB7F,EAAKmB,SAAS,CACZid,aA5Hepe,EAgInBmhD,eAAiB,WAAM,IAAAtiC,EACe7e,EAAKM,MAAjC0S,EADa6L,EACb7L,KAAMiH,EADO4E,EACP5E,SAAUmE,EADHS,EACGT,QACxBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,IAlIxBpe,EAqInBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAyM,EACsBzf,EAAKM,MAA3B2Z,EADAwF,EACAxF,SAAUmE,EADVqB,EACUrB,QAClBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,KAxI1Bpe,EA4InB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU7K,KA/IvBpP,EAmJnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU,KArJrBja,EAwJnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IA5JE7G,EA+JnBohD,mCAAqC,YzE6DhC,SAA4CvkD,GACjD,IAAMuhB,EAAUvhB,EAAOuhB,SAAW,GAC3B7f,aAAe,GAAAtC,OAAIR,KAAJ,yCAA+D2iB,GAClFtgB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,kCAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACD9tB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUhS,KAElDyrB,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KyEzE/CqjD,CAAmC,CACjChjC,QAFkBpe,EAAKM,MAAjB8d,SAEc,GACpBzc,QAAS,WACPrC,aAAmB,uDAlKvBU,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKohD,mCAAmCzsC,KAAxCxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KACAA,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IAEjBc,EAAK6Z,QAAU,CACb,CAAEhT,IAAK,kBAAmB9H,KAAM,aAAWwR,MAAO,SAClD,CAAE1J,IAAK,WAAY9H,KAAM,WAAYwR,MAAO,OAC5C,CAAE1J,IAAK,SAAU9H,KAAM,SAAUwR,MAAO,OACxC,CAAE1J,IAAK,cAAe9H,KAAM,cAAYwR,MAAO,OAC/C,CAAE1J,IAAK,QAAS9H,KAAM,SAAUwR,MAAO,OACvC,CAAE1J,IAAK,gBAAiB9H,KAAM,WAC9B,CACE8H,IAAK,eACLxE,UAAW,cACXtD,KAAM,iBACNwR,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OAAI,IAAIlD,KAAKkD,EAAIyc,cAAc1f,gBAE5C,CAAEtO,IAAK,gBAAiB9H,KAAM,WAC9B,CACE8H,IAAK,iBACL9H,KAAM,WACNwR,MAAO,OACPgL,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIif,eAAX,UAEb,CACExwB,IAAK,uBACL9H,KAAM,eACNU,KAAM,SACN8Q,MAAO,SAGT,CACE1J,IAAK,eACL9H,KAAM,OACNU,KAAM,SACN8Q,MAAO,UA5CMvQ,mFAiDC,IAAA0f,EACSxf,KAAKI,MAAxB0S,EADU0M,EACV1M,KAAMiH,EADIyF,EACJzF,SACd/Z,KAAKg6B,cAAclnB,EAAMiH,oCAsHlB,IAAAqW,EAQHpwB,KAAKI,MANPC,EAFK+vB,EAEL/vB,QACAuZ,EAHKwW,EAGLxW,MACA9G,EAJKsd,EAILtd,KACAiH,EALKqW,EAKLrW,SACAC,EANKoW,EAMLpW,gBACAkE,EAPKkS,EAOLlS,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,gDAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACq/C,GAADlkD,OAAAuP,OAAA,GACMxM,KAAKI,MADX,CAEE+kB,gBAAiBnlB,KAAK+nB,qBACtB24B,SAAU1gD,KAAKihD,mBAGnB19C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,cACpByX,EAAMvT,QACL9C,EAAA1B,EAAAC,cAAA,UACEK,UAAU,eACV5C,KAAK,SACLiE,QAASxD,KAAKkhD,oCAEd39C,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QALF,qBAWNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gCAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,kCACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAlOF7c,iBA4OjBC,eAAW2mB,IChPpBy3B,8MAkBJviC,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKw7B,iBAAiB,EAAGvhB,EAAU,6EAG5B,IAAA3W,EASHpD,KAAKsC,MAPP4N,EAFK9M,EAEL8M,aACAyQ,EAHKvd,EAGLud,SACAwlB,EAJK/iC,EAIL+iC,SACAxP,EALKvzB,EAKLuzB,SACA8pB,EANKr9C,EAMLq9C,UACAt7B,EAPK/hB,EAOL+hB,gBACAu7B,EARKt9C,EAQLs9C,SAGF,OACEn9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6gB,EACTrwB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAASqwB,EACT7/B,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,YACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,WACZS,aAAa,QACbkI,QAAS2qC,EACTn6C,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,SAKjE3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6K,EACTra,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,UAAW,YAAajB,SAK/D3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,UACEK,UAAU,kBACV5C,KAAK,SACLiE,QAASk9C,GAHX,yBAtGY39C,iBAA1Bq+C,GAWG55C,aAAe,CACpBmvB,SAAU,GACVwP,SAAU,GACVxlB,SAAU,GACV8/B,UAAW,IAyGf,IAKeh0C,MALgB0E,aAAU,CACvCC,KAAM,oBACNwO,oBAAoB,GAFSzO,CAG5BiwC,KCpHGz3B,eAKJ,SAAAA,EAAYrnB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2pB,IACjB7pB,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0sB,GAAAxpB,KAAAH,KAAMsC,KA6DR03B,cAAgB,WACdzQ,GAAuB,CACrBvZ,UAAW,SAAC2wC,GAAa,IACfhgC,EAAaggC,EAAbhgC,SAEFigC,EAAmBjgC,EACtBzG,OAAO,SAACgK,EAAGjD,EAAO4/B,GAAX,OAAoBA,EAAKp6C,IAAI,SAAAq6C,GAAC,OAAIA,EAAE95C,QAAOma,QAAQ+C,EAAEld,SAAWia,IACvExa,IAAI,SAAAq6C,GAAC,MAAK,CAAE95C,MAAO85C,EAAE95C,MAAOrB,MAAOm7C,EAAEjnB,aACxC/5B,EAAKmB,SAALhE,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK0jD,EADL,CAEEI,iBAAkBpgC,EAClBA,SAAUigC,MAGdn/C,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,yDA9ENU,EAmFnB8pB,oBAAsB,SAAC9W,EAAMiH,EAAUmE,G7EjDlC,IAAwBvhB,EACvByhB,E6EiDJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,K7ErDlBE,GADuBzhB,E6EwDZ,CACbyhB,SAAU,CACRtL,OACAiH,WACAmE,QAASA,GAAW,IAEtBlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oD7EtEEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIV,KAAJ,oBAAmC+iB,GAC9CxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,M6E/C9BiC,EA8GnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GACxC,GAAkB,YAAdqiB,GAAyC,YAAdA,EAAyB,KAAAE,EAAAvmB,EACH7B,EAAKM,MAAhDknC,EAD8C3lC,EAC9C2lC,UAAWhQ,EADmC31B,EACnC21B,UACf3W,EAFkDhf,EACxBo/C,iBACE7mC,OAAO,SAAAgH,GAAC,QAAMomB,GAAapmB,EAAEomB,YAAcA,MACpEhQ,GAAapW,EAAEoW,YAAcA,KACpC3W,EAAWA,EAASzG,OAAO,SAACgK,EAAGjD,EAAO4/B,GAAX,OAAoBA,EAAKp6C,IAAI,SAAAq6C,GAAC,OAAIA,EAAE95C,QAAOma,QAAQ+C,EAAEld,SAAWia,IAC3FnhB,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAEGF,EAAYriB,GAFf1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,WAGEvH,GAHFuH,QAKK,KAAA84B,EACLlhD,EAAKmB,UAAL+/C,EAAA,GAAA/jD,OAAA2S,GAAA,EAAA3S,CAAA+jD,EACG/4B,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAA+jD,EAEGh5B,EAAYriB,GAFfq7C,IAZgD,IAiB1C9iC,EAAYpe,EAAKM,MAAjB8d,QACRA,EAAQ+J,GAAStiB,EAAMA,MAEvB7F,EAAKmB,SAAS,CACZid,aAnIepe,EAuInBmhD,eAAiB,WAAM,IAAAtiC,EACe7e,EAAKM,MAAjC0S,EADa6L,EACb7L,KAAMiH,EADO4E,EACP5E,SAAUmE,EADHS,EACGT,QACxBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,IAzIxBpe,EA4InBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAAyM,EACsBzf,EAAKM,MAA3B2Z,EADAwF,EACAxF,SAAUmE,EADVqB,EACUrB,QAClBpe,EAAK8pB,oBAAoB9W,EAAMiH,EAAUmE,KA/I1Bpe,EAmJnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU7K,KAtJvBpP,EA0JnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8pB,oBAAoB,EAAG7P,EAAU,KA5JrBja,EA+JnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAnKE7G,EAsKnBwgD,gBAAkB,Y7EpFb,SAA0B3jD,GAC/B,IAAMuhB,EAAUvhB,EAAOuhB,SAAW,GAC3B7f,aAAe,GAAAtC,OAAIV,KAAJ,6BAA4C6iB,GAC/DtgB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,eAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACD9tB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUhS,KAElDyrB,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,K6EwE/CwjD,CAAiB,CACfnjC,QAFkBpe,EAAKM,MAAjB8d,SAEc,GACpBzc,QAAS,WACPrC,aAAmB,uDAzKvBU,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKwgD,gBAAgB7rC,KAArBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KACAA,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,IAEjBc,EAAK6Z,QAAU,CACb,CAAEhT,IAAK,kBAAmB9H,KAAM,aAAWwR,MAAO,SAClD,CAAE1J,IAAK,WAAY9H,KAAM,YACzB,CAAE8H,IAAK,SAAU9H,KAAM,UACvB,CAAE8H,IAAK,OAAQ9H,KAAM,QACrB,CAAE8H,IAAK,eAAgB9H,KAAM,gBAC7B,CACE8H,IAAK,cACL9H,KAAM,eACNU,KAAM,SACN4C,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,OAAKA,EAAImH,YAAc,KAAO,OAE3C,CACE1Y,IAAK,sBACL9H,KAAM,mBACNU,KAAM,SACN4C,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,OAAKA,EAAImH,YAAc5C,GAAiBvE,EAAIoH,qBAAuB,KAEhF,CAAE3Y,IAAK,cAAe9H,KAAM,eAC5B,CAAE8H,IAAK,QAAS9H,KAAM,UACtB,CACE8H,IAAK,SACL9H,KAAM,YACNwc,OAAQ,SAAAnD,GAAG,OAAK4J,GAAQ5J,EAAI0M,QAAU9C,GAAQ5J,EAAI0M,QAAQ5d,MAAQ,KAEpE,CACEL,IAAK,eACL9H,KAAM,iBACNU,KAAM,SACN8b,OAAQ,SAAAnD,GAAG,OAAI,IAAIlD,KAAKkD,EAAIyc,cAAc1f,gBAE5C,CAAEtO,IAAK,UAAW9H,KAAM,WACxB,CACE8H,IAAK,WACL9H,KAAM,WACNwc,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIqa,SAAX,WAjDEzyB,mFAsDC,IAAA0f,EACSxf,KAAKI,MAAxB0S,EADU0M,EACV1M,KAAMiH,EADIyF,EACJzF,SACd/Z,KAAKg6B,cAAclnB,EAAMiH,GACzB/Z,KAAKiB,SAAS,CACZZ,SAAS,qCAsHJ,IAAA+vB,EAQHpwB,KAAKI,MANPC,EAFK+vB,EAEL/vB,QACAuZ,EAHKwW,EAGLxW,MACA9G,EAJKsd,EAILtd,KACAiH,EALKqW,EAKLrW,SACAC,EANKoW,EAMLpW,gBACAkE,EAPKkS,EAOLlS,QAGF,OAAI7d,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACw/C,GAADrkD,OAAAuP,OAAA,GACMxM,KAAKI,MADX,CAEE+kB,gBAAiBnlB,KAAK+nB,qBACtB24B,SAAU1gD,KAAKihD,mBAGlBrnC,EAAMvT,QACL9C,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,cACrBoB,EAAA1B,EAAAC,cAAA,UACEK,UAAU,eACV5C,KAAK,SACLiE,QAASxD,KAAKsgD,iBAEd/8C,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QALF,qBAYNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,yBACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aA5OE7c,iBAoPjBC,eAAW2mB,ICpPpB43B,8MAkBJC,aAAe,SAACxb,GAEd,QADkBjkB,GAAenK,KAAK,SAAAoH,GAAC,OAAIA,EAAErZ,QAAUqgC,KAAU,IAC/Ch/B,OAAS,KAAK0W,MAAM,KAAK+jC,MAAM94B,UAGnD+4B,gBAAkB,SAAAC,GAAQ,OAAIA,EAASC,uBAAuBn7C,IAAI,SAAA0vB,GAAO,OACvE5yB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MACE2nC,QAAStT,EAAQ8pB,eAAe55C,OAAS,EACzClE,UAAU,cACV2E,MAAO,CAAE+6C,cAAe,WAEvB1rB,EAAQ2D,eAEXv2B,EAAA1B,EAAAC,cAAA,MACE2nC,QAAStT,EAAQ8pB,eAAe55C,OAAS,EACzClE,UAAU,cACV2E,MAAO,CAAE+6C,cAAe,WAEvB1rB,EAAQtV,UAGZ/gB,EAAKgiD,gBAAgB3rB,SAI1B2rB,gBAAkB,SAAA3rB,GAAO,OAAIA,EAAQ8pB,eAAex5C,IAAI,SAAAu/B,GAAK,OAC3DziC,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc2E,MAAO,CAAE+6C,cAAe,WACjD7b,EAAMlI,aAAekI,EAAMlI,aAAe,KAE7Cv6B,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc2E,MAAO,CAAE+6C,cAAe,WACjD/hD,EAAK0hD,aAAaxb,EAAMlI,eAE3Bv6B,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc2E,MAAO,CAAE+6C,cAAe,WACjD7b,EAAMhK,SAETz4B,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc2E,MAAO,CAAE+6C,cAAe,WACjDjtC,GAAWoxB,EAAM9H,cAEpB36B,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc2E,MAAO,CAAE+6C,cAAe,WACjD7b,EAAM9O,qFAKJ,IAAA32B,EAAAP,KAAAoD,EAWHpD,KAAKsC,MATPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACAyU,EAJKvhB,EAILuhB,OACAvE,EALKhd,EAKLgd,gBACA5B,EANKpb,EAMLob,OACAC,EAPKrb,EAOLqb,SACAkW,EARKvxB,EAQLuxB,aACAotB,EATK3+C,EASL2+C,UACAC,EAVK5+C,EAUL4+C,wBAGF,OACEz+C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK2nC,GAAI,GAAI5vB,GAAI,GAAI9X,GAAI,GAAIC,GAAI,IAC/BjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,uBAINoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK2nC,GAAI,GAAI5vB,GAAI,GAAI9X,GAAI,EAAGC,GAAI,GAC9BjX,EAAA1B,EAAAC,cAACiZ,GAAA,EAAD,CAAOlM,KAAK,KAAKmM,YAAU,EAACknC,YAAU,GACpC3+C,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,OAAV,wBACAzgB,EAAA1B,EAAAC,cAAA,aAAA/F,OAAQyiB,EAAR,KAAAziB,OAAkB0iB,KAEpBlb,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,OAAV,wBACAzgB,EAAA1B,EAAAC,cAAA,UAEIse,GAAmB+hC,SAAS/hC,EAAiB,IACzC,IAAI9D,KAAK8lC,aAAa,SAAS/mC,OAAO8mC,SAAS/hC,EAAiB,KAChEA,IAIV7c,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,OAAV,cACAzgB,EAAA1B,EAAAC,cAAA,UAAKigD,IAEPx+C,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,OAAV,+BAGAzgB,EAAA1B,EAAAC,cAAA,UACG,IAAIkT,KAAK2f,GAAc1f,qBAStC1R,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK2nC,GAAI,GAAI5vB,GAAI,GAAI9X,GAAI,GAAIC,GAAI,IAC/BjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEid,aAAc,QAClDxgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBAAd,uBAINoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACN62C,EAAwBv7C,IAAI,SAAA47C,GAAE,OAC7B9+C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI6Z,GAAI,EAAG/B,GAAI,GAAI1rB,IAAG,YAAA5K,OAAcsmD,EAAG1oB,aAC9Cp2B,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,CAAM3T,MAAO,CAAE45B,cAAe,SAC5Bn9B,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAU,4CAA4C2E,MAAO,CAAEyP,QAAS,YAChFhT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oCAAoC2E,MAAO,CAAEyP,QAAS,YACnEhT,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,sBAAsB2E,MAAO,CAAEid,aAAc,QAAUs+B,EAAG9vB,UACxEhvB,EAAA1B,EAAAC,cAAA,WACAyB,EAAA1B,EAAAC,cAAA,OACE6E,IAAG,WAAA5K,OAAasmD,EAAG1oB,YACnBx3B,UAAU,qBACV2E,MAAO,CAAEsrB,UAAW,QAEpB7uB,EAAA1B,EAAAC,cAACiZ,GAAA,EAAD,CAAOlM,KAAK,KAAKyzC,UAAQ,EAACx7C,MAAO,CAAEqS,SAAU,OAAQ4K,aAAc,WACjExgB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,kBAGAyB,EAAA1B,EAAAC,cAAA,wBAGAyB,EAAA1B,EAAAC,cAAA,mBAGAyB,EAAA1B,EAAAC,cAAA,oBAGAyB,EAAA1B,EAAAC,cAAA,wBAGAyB,EAAA1B,EAAAC,cAAA,mBAGAyB,EAAA1B,EAAAC,cAAA,oBAKJyB,EAAA1B,EAAAC,cAAA,aACGvB,EAAKmhD,gBAAgBW,eAY5C9+C,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,aAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAnMmB5hB,iBAA3Bw+C,GAaG/5C,aAAe,CACpBgJ,YAAY,EACZwxC,wBAAyB,IAkM7B,IAKev1C,MALC0E,aAAU,CACxBC,KAAM,UACNwO,oBAAoB,GAFNzO,CAGbowC,KChHYgB,eAtGb,SAAAA,EAAYjgD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAuiD,IACjBziD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAslD,GAAApiD,KAAAH,KAAMsC,KAUR0yB,oBAAsB,WAAM,IAAA5xB,EACGtD,EAAKwC,MADRkgD,EAAAp/C,EAClBpE,UADkB,IAAAwjD,EACb,GADaA,EACT/9C,EADSrB,EACTqB,S/E8Cd,WAAuD,IAAjBzF,EAAiB8N,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,GAAInQ,EAAQmQ,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACrDvZ,aAAM,GAAAlC,OAAIV,KAAJ,qCAAAU,OAAmDiD,IAC7DpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,K+EvD/C4kD,CAA6BzjD,EAAI,CAC/BgR,UAAW,SAAC8Z,GACVhqB,EAAKmB,SAAS,CAAE6oB,UAASzpB,SAAS,KAEpCoB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,uBACnBqF,EAAQqjB,UAER1oB,aAAmB,kEAvBRU,EA6BnBoQ,aAAe,SAAChB,GAAW,IACjBlQ,EAAOkQ,EAAPlQ,GACRc,EAAKmB,SAAS,CAAEZ,SAAS,I/EyCtB,WAAwD,IAAjBrB,EAAiB8N,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAZ,GAAInQ,EAAQmQ,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACtDnZ,aAAe,GAAAtC,OAAIV,KAAJ,8CAAAU,OAA4DiD,IAC/EpB,KAAK,SAACI,GACL,IAAME,EAAM6C,OAAO0mB,IAAIC,gBAAgB1pB,GACjCitB,EAAOC,SAASppB,cAAc,KACpCmpB,EAAKvpB,KAAOxD,EACZ+sB,EAAKE,SAAW,gCAChBD,SAASnuB,KAAKquB,YAAYH,GAC1BA,EAAKI,QACLJ,EAAKR,SACD9tB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUhS,KAElDyrB,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,K+ErD/Co9B,CAA8Bj8B,EAAI,CAChCgR,UAAW,WACTlQ,EAAKmB,SAAS,CAAEZ,SAAS,IACzBnB,aAAqB,oCAEvBuC,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEZ,SAAS,IACrBxC,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,2DA1CRU,EAgDnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAhDRhoB,EAAKM,MAAQ,CACXC,SAAS,GAHMP,mFAQjBE,KAAKg1B,uDA6CE,IACCvwB,EAAYzE,KAAKsC,MAAjBmC,QADD9C,EAKH3B,KAAKI,MAFP0pB,EAHKnoB,EAGLmoB,QACAzpB,EAJKsB,EAILtB,QAGF,OAAIA,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,8BAGAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,uDAKJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACNla,EACIkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEDnc,EAAA1B,EAAAC,cAAC4gD,GAADzlD,OAAAuP,OAAA,GACMsd,EADN,CAEE5Y,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAe6c,EACfrlB,QAASA,eAvFW1B,iBCKhC4/C,eAKJ,SAAAA,EAAYrgD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA2iD,IACjB7iD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA0lD,GAAAxiD,KAAAH,KAAMsC,KAiHRsgD,oBAAsB,SAAC9vC,EAAMiH,EAAUmE,GhExIlC,IAAgBvhB,EACfyhB,EgEwIJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KhE5IlBE,GADezhB,EgE+IZ,CACLyhB,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,qDhE7JEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIN,KAAJ,QAAuB2iB,GAClCxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MgES9BiC,EA6InB+iD,oBAAsB,SAAC3rB,GACrB,IAAMr4B,EAAI,GAAA9C,OAAMm7B,EAAQrW,QAAQ+c,OAAtB,MAAA7hC,OAAiCm7B,EAAQrW,QAAQrC,QAC3DxQ,GAAQ,CACNpK,MAAO,iBACPqK,SAAQ,kDAAAlS,OAAiD8C,EAAjD,KACRqP,SAAU,qBACVE,QAAS,aACTC,UAAW,WhE7HV,IAAgBrP,EAAIoc,EAAJpc,EgE8HRk4B,EAAQl4B,GhE9HIoc,EgE+HjB,CACEpL,UAAW,WACT9Q,aAAqB,gCADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAK8iD,oBAAoB9vC,EAAMiH,IAEjCtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,yChExI1BH,aAAS,GAAAlD,OAAIN,KAAJ,KAAAM,OAAmBiD,IAChCpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SgEjCpCiC,EAwKnBgjD,YAAc,SAAC5rB,GACOp3B,EAAKwC,MAAjBmC,QACAG,KAAR,wBAAA7I,OAAqCm7B,EAAQl4B,MA1K5Bc,EA6KnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK8iD,oBAAoB9vC,EAAMiH,EAAUmE,KAhL1Bpe,EAoLnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8iD,oBAAoB,EAAG7oC,EAAU7K,KAvLvBpP,EA4LnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK8iD,oBAAoB,EAAG7oC,EAAU,KA9LrBja,EAiMnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IArME7G,EAwMnBijD,YAAc,SAAA9mD,GAAuB,IAApB+mD,EAAoB/mD,EAApB+mD,OAAQr9C,EAAY1J,EAAZ0J,MACvB,OAAKq9C,EAKHz/C,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,QACnBtS,MAAM,UACN6f,MAAI,GAEH/gB,GATIA,GAxMT7F,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAEjBc,EAAK6Z,QAAU,CACb,CACEhT,IAAK,OACL9H,KAAM,SACNub,QAAQ,EACR/J,MAAO,OACPgL,OAAQ,SAAA3M,GAAA,IAAS/I,EAAT+I,EAAG8jB,KAAawwB,EAAhBt0C,EAAgBs0C,OAAhB,OAA6BljD,EAAKijD,YAAY,CAAEp9C,QAAOq9C,aAEjE,CACEr8C,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAmQ,GAAA,IAAW7lB,EAAX6lB,EAAGhN,OAAewkC,EAAlBx3B,EAAkBw3B,OAAlB,OAA+BljD,EAAKijD,YAAY,CAAEp9C,QAAOq9C,aAEnE,CACEr8C,IAAK,eACL9H,KAAM,mBACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAA+R,GAAA,IAAG61B,EAAH71B,EAAG61B,aAAcD,EAAjB51B,EAAiB41B,OAAjB,OAA8BljD,EAAKijD,YAAY,CAAEp9C,MAAOiP,GAAWquC,GAAeD,aAE5F,CACEr8C,IAAK,YACL9H,KAAM,gBACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAAiP,GAAA,IAAG44B,EAAH54B,EAAG44B,UAAWF,EAAd14B,EAAc04B,OAAd,OAA2BljD,EAAKijD,YAAY,CAAEp9C,MAAOiP,GAAWsuC,GAAYF,aAEtF,CACEr8C,IAAK,2BACL9H,KAAM,0BACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAAwS,GAAA,IAAGs1B,EAAHt1B,EAAGs1B,yBAA0BH,EAA7Bn1B,EAA6Bm1B,OAA7B,OAA0CljD,EAAKijD,YAAY,CACjEp9C,MAAOiP,GAAWuuC,GAClBH,aAGJ,CACEr8C,IAAK,wBACL9H,KAAM,uBACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAA+O,GAAA,IAAGg5B,EAAHh5B,EAAGg5B,sBAAuBJ,EAA1B54B,EAA0B44B,OAA1B,OAAuCljD,EAAKijD,YAAY,CAC9Dp9C,MAAOiP,GAAWwuC,GAClBJ,aAGJ,CACEr8C,IAAK,qBACL9H,KAAM,kCACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAAyV,GAAA,IAAG8mB,EAAH9mB,EAAG8mB,mBAAoBoL,EAAvBlyB,EAAuBkyB,OAAvB,OAAoCljD,EAAKijD,YAAY,CAAEp9C,MAAOiP,GAAWgjC,GAAqBoL,aAExG,CACEr8C,IAAK,wBACL9H,KAAM,qCACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAAA4V,GAAA,IACN0c,EADM1c,EACN0c,sBAAuBqV,EADjB/xB,EACiB+xB,OADjB,OAEFljD,EAAKijD,YAAY,CACrBp9C,MAAOiP,GAAW+4B,GAClBqV,aAGJ,CACEr8C,IAAK,gBACL9H,KAAM,kBACNub,QAAQ,EACRiB,OAAQ,SAAAgW,GAAA,IAAGgyB,EAAHhyB,EAAGgyB,cAAeL,EAAlB3xB,EAAkB2xB,OAAlB,OAA+BljD,EAAKijD,YAAY,CAAEp9C,MAAQ09C,EAAgB,KAAO,KAAOL,aAElG,CACEr8C,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAmW,GAAA,IAAGwxB,EAAHxxB,EAAGwxB,OAAH,OAAgBljD,EAAKijD,YAAY,CAAEp9C,MAAQq9C,EAAS,KAAO,KAAOA,aAE5E,CAAEr8C,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,mBACzCwX,SAAU,SAAC8b,GACTp3B,EAAKgjD,YAAY5rB,KAGrB,CACEvwB,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,mBAC1CwX,SAAU,SAAC8b,GACTp3B,EAAK+iD,oBAAoB3rB,MAvGdp3B,mFA6GC,IAAAyf,EACSvf,KAAKI,MAAxB0S,EADUyM,EACVzM,KAAMiH,EADIwF,EACJxF,SACd/Z,KAAK4iD,oBAAoB9vC,EAAMiH,oCAyGxB,IAAAxZ,EAAAP,KAAAwf,EAQHxf,KAAKI,MANPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAC+B,EAAA,EAAD,CAAM1B,UAAU,kBAAkB2B,GAAG,uBACnCP,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eADf,6BAMNoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEPnc,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,gCACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAlQF7c,iBA4QjBC,eAAW2/C,ICjQX1zC,GA/BE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GA0Bf,OAxBKD,EAAMqP,SACTpP,EAAOoP,OAAS,2CAGbrP,EAAMm0C,aAAgBn0C,EAAMm0C,YAAY39C,QAC3CyJ,EAAOk0C,YAAc,sCAGlBn0C,EAAM8zC,eACT7zC,EAAO6zC,aAAe,iDAGnB9zC,EAAM+zC,YACT9zC,EAAO8zC,UAAY,8CAGhB/zC,EAAMg0C,2BACT/zC,EAAO+zC,yBAA2B,wDAG/Bh0C,EAAMi0C,wBACTh0C,EAAOg0C,sBAAwB,qDAG1Bh0C,GCJHm0C,eA2BJ,SAAAA,EAAYjhD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAujD,IACjBzjD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAsmD,GAAApjD,KAAAH,KAAMsC,KA+FRkhD,uBAAyB,SAACtsB,GACxB,GAAIA,EAAS,KAAA9zB,EACatD,EAAKwC,MAArBtD,EADGoE,EACHpE,GADGoE,EACCqB,QACJG,KAAR,wBAAA7I,OAAqCiD,EAArC,gBAnGec,EAwGnB2jD,mBAAqB,SAACj3B,GACpB,GAAIA,EAAgB,KAAAliB,EACMxK,EAAKwC,MAArBtD,EADUsL,EACVtL,GADUsL,EACN7F,QACJG,KAAR,iCAAA7I,OAA8CiD,EAA9C,KAAAjD,OAAoDywB,EAAextB,OA3GpDc,EA+GnB4jD,qBAAuB,SAACl3B,GAClBA,IAEFm3B,EADuC7jD,EAAKwC,MAApCqhD,4BACmBn3B,IAlHZ1sB,EAsHnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU7K,KAzHvBpP,EA6HnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU,KA/HrBja,EAkInB8jD,iBAAmB,SAACtxB,GAClBxyB,EAAKmB,SAAS,CACZqmC,UAAWhV,EAAQ3sB,SApIJ7F,EAwInB+jD,eAAiB,WAAM,IACbljC,EAAa7gB,EAAKwC,MAAlBqe,SACA2mB,EAAcxnC,EAAKM,MAAnBknC,UAER,OAAO3mB,EAASzG,OAAO,SAAAgH,GAAC,OAAIA,EAAEomB,YAAcA,GAA2B,IAAdA,KA5IxCxnC,EA+InBgkD,YAAc,WAAM,IACV3d,EAAarmC,EAAKwC,MAAlB6jC,SACR,MACK,CAAC,CAAExgC,MAAO,EAAGqB,MAAO,UADzBjL,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CAEKkpC,KAnJYrmC,EAuJnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAzJf7G,EAAK2jD,mBAAqB3jD,EAAK2jD,mBAAmBhvC,KAAxBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC1BA,EAAK4jD,qBAAuB5jD,EAAK4jD,qBAAqBjvC,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjBkE,QAAS,CAAElf,GAAI,IACfsoC,UAAW,GAEbxnC,EAAK6Z,QAAU,CAGb,CACEhT,IAAK,mBACL9H,KAAM,WACNub,QAAQ,EACR/J,MAAO,QACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,OACT3U,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,OAAA5K,OAASmc,EAAIlZ,IAChB6H,MAAOqR,EAAIqc,iBAAmB,IAAM,EAAI,YAAc,WAFxD,IAAAx4B,OAIOmc,EAAIqc,iBAJX,YASN,CACE5tB,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIoc,cAAX,OAAAv4B,OAA8Bmc,EAAI2I,QAAlC,OAAA9kB,OAA+Cmc,EAAIia,WAEhE,CACExrB,IAAK,QACL9H,KAAM,QACNub,QAAQ,GAEV,CACEzT,IAAK,aACL9H,KAAM,eACNwc,OAAQ,SAAAnD,GAAG,OAAIA,EAAIkU,WAAW3lB,IAAI,SAAAya,GAAC,OACjC3d,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,QAAA5K,OAAUmc,EAAIlZ,GAAd,KAAAjD,OAAoBmlB,EAAEliB,IAAM8H,MAAO,CAAE2P,QAAS,SACpDlT,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,QAAA5K,OAAUmc,EAAIlZ,GAAd,KAAAjD,OAAoBmlB,EAAEliB,KAC3BuE,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,QAAA5K,OAAUmc,EAAIlZ,GAAd,KAAAjD,OAAoBmlB,EAAEliB,IACzB6H,MAAkB,cAAXqa,EAAExa,KAAuB,YAAc,WAElC,cAAXwa,EAAExa,KAAuB,MAAQ,QAGtCnD,EAAA1B,EAAAC,cAAA,iBAASof,EAAE1C,OAAX,IAAoB0C,EAAEzC,eAI5B,CACE9X,IAAK,eACL9H,KAAM,UACNub,QAAQ,EACRjY,UAAW,cACXkO,MAAO,QACPgL,OAAQ,SAAAnD,GAAG,OACT3U,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAOqR,EAAIyyB,aAAe,UAAY,WAErCzyB,EAAIyyB,aAAe,KAAO,SAKnC,CAAEhkC,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,mBACzCwX,SAAU,SAACoR,GACT1sB,EAAK2jD,mBAAmBj3B,KAG5B,CACE7lB,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,mBAC1CwX,SAAU,SAACoR,GACT1sB,EAAK4jD,qBAAqBl3B,MAzFf1sB,wEA8JV,IAAAS,EAAAP,KAAAsU,EASHtU,KAAKsC,MAPPtD,EAFKsV,EAELtV,GACAwR,EAHK8D,EAGL9D,WACAN,EAJKoE,EAILpE,aACAyU,EALKrQ,EAKLqQ,OACAo/B,EANKzvC,EAMLyvC,cACAV,EAPK/uC,EAOL+uC,cACAL,EARK1uC,EAQL0uC,OARKrhD,EAgBH3B,KAAKI,MAJP0S,EAZKnR,EAYLmR,KACAiH,EAbKpY,EAaLoY,SACAC,EAdKrY,EAcLqY,gBACAkE,EAfKvc,EAeLuc,QAGF,OACE3a,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAOFphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,uBAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW1D,GACXC,YAAY,SACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW6G,GACXtK,YAAY,iBACZS,aAAa,QACbkI,QAASiuC,OAOjBxgD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAAhB,iBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,gBACL+R,UAAW1E,GACXlF,MAAM,gBACNrB,MAAO09C,EAAgB,UAAY,GACnC/3C,eAAgB+3C,OAMxB9/C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW1E,GACXlF,MAAM,UACNrB,MAAOq9C,EAAS,UAAY,GAC5B13C,eAAgB03C,OAMxBz/C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,6BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,eACL+R,UAAWsI,GACX/L,YAAY,4BACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,0BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,YACL+R,UAAWsI,GACX/L,YAAY,yBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,2BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,2BACL+R,UAAWsI,GACX/L,YAAY,0BACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,wBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAWsI,GACX/L,YAAY,uBACZS,aAAa,aAKrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,8BACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,qBACL+R,UAAWsI,GACX/L,YAAY,6BACZS,aAAa,QACbiH,cAAc,YAMtBtR,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,iCACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,wBACL+R,UAAWsI,GACX/L,YAAY,gCACZS,aAAa,QACbiH,cAAc,aAOxBtR,EAAA1B,EAAAC,cAAA,WACC9C,GACCuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVqB,QAAS,kBAAMjD,EAAKijD,uBAAuB,CAAExkD,SAH/C,8BAQFuE,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAAC+1C,GAAA,EAAD,CAAW3/B,KAAG,GACZ3U,EAAA1B,EAAAC,cAAC2+B,GAAA,EAAD,CAAOE,IAAI,UAAUtO,GAAI,EAAGlwB,UAAU,qCAAtC,YACAoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,IACP9uB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE3R,GAAG,UACHH,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,QACZ0I,aAAc,EACdjI,aAAa,QACbkI,QAAS9V,KAAK8jD,cACdx9C,SAAUtG,KAAK4jD,uBAMzBrgD,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,sBACN+V,QAAS3Z,KAAK2Z,QACdC,MAAO5Z,KAAK6jD,iBACZ5wC,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,KAIxBrc,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCA/aY5hB,iBAApBwgD,GAgBG/7C,aAAe,CACpBxI,GAAI,EACJwR,YAAY,EACZ6yC,eAAe,EACfL,QAAQ,EACRriC,SAAU,GACVwlB,SAAU,GACVmd,YAAa,IAsajB,IAMe72C,MANU0E,aAAU,CACjCC,KAAM,cACNnC,YACA2Q,oBAAoB,GAHGzO,CAItBoyC,KCjNYS,eAlPb,SAAAA,EAAY1hD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAgkD,IACjBlkD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA+mD,GAAA7jD,KAAAH,KAAMsC,KAcRguC,mBAAqB,WAAM,IAAAltC,EACDtD,EAAKwC,MAArBtD,EADiBoE,EACjBpE,GAAIyF,EADarB,EACbqB,QACZ3E,EAAKmB,SAAS,CACZZ,SAAS,IAEPrB,EnEtBD,SAAaA,EAAIoc,GACfnd,aAAM,GAAAlC,OAAIN,KAAJ,KAAAM,OAAmBiD,IAC7BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KmEanD2H,CAAIxG,EAAI,CACNgR,UAAW,SAACiZ,GACV,IAAMiO,EAAOj6B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACRgsB,EADQ,CAEXq6B,YAAa,CACX39C,MAAOsjB,EAAI+R,cACXh0B,MAAK,GAAAjL,OAAKktB,EAAIuJ,SAIlB1yB,EAAKmB,SAAS,CAAEi2B,UAAS72B,SAAS,KAEpCoB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,wBACnBqF,EAAQG,KAAK,oBAEbxF,aAAmB,kDAGrBU,EAAKmB,SAAS,CACZZ,SAAS,OAKfP,EAAKmB,SAAS,CACZi2B,QAAS,CACPl4B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,eAEpB5mC,SAAS,KApDIP,EAyDnBie,eAAiB,WACfje,EAAKmB,SAAS,CACZZ,SAAS,IAEX2d,GAAe,CACbhO,UAAW,SAAC9U,GACV4E,EAAKmB,SAAS,CACZ8iD,cAAe7oD,EAAE6oD,cACjB5d,SAAUjrC,EAAEirC,SACZ9lC,SAAS,KAGboB,QAAS,WACPrC,aAAmB,iDACnBU,EAAKmB,SAAS,CACZZ,SAAS,QAxEEP,EA8EnBoQ,aAAe,SAAChB,GACdpP,EAAKmB,SAAS,CACZZ,SAAS,IAFc,InElERmqB,EAAKpP,EmEwEE4f,EAGpB9rB,EAHFo0C,YAAe39C,MACfiyC,EAEE1oC,EAFF0oC,mBACAjK,EACEz+B,EADFy+B,sBAGIhxC,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPiS,EADO,CAEV0oC,mBAAoBp6B,GAAeo6B,GACnCjK,sBAAuBnwB,GAAemwB,GACtC3S,kBAEMv2B,EAAY3E,EAAKwC,MAAjBmC,QnEnFS+lB,EmEoFZ7tB,EnEpFiBye,EmEoFT,CACXpL,UAAW,WACTlQ,EAAKmB,SAAS,CACZZ,SAAS,IAEXnB,aAAqB,iCACrBuF,EAAQG,KAAK,oBAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,qDAErBU,EAAKmB,SAAS,CACZZ,SAAS,MnElGVvB,aAAO,GAAA/C,OAAIN,MAAe+uB,GAC9B5sB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MmEtBpCiC,EAqHnB6jD,2BAA6B,SAACn3B,GAC5B,IAAM3tB,EAAI,GAAA9C,OAAMywB,EAAe3L,SAC/B7S,GAAQ,CACNpK,MAAO,4BACPqK,SAAQ,gDAAAlS,OAA+C8C,EAA/C,qBACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,WACTvO,EAAKmB,SAAS,CACZZ,SAAS,IAGX4jD,GAAqBz3B,EAAextB,GAClC,CACEgR,UAAW,WACT9Q,aAAqB,gCACrBY,EAAKie,iBACLje,EAAKwwC,qBACLxwC,EAAKmB,SAAS,CACZZ,SAAS,KAGboB,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CACZZ,SAAS,IAEPxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,0DAlJdU,EA2JnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA7JShoB,EAgKnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GAAU,IAAAuiB,EAC1CgP,EAAYp3B,EAAKM,MAAjB82B,QACRp3B,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,UAAAjrB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAEgBi6B,EAFhBj6B,OAAA2S,GAAA,EAAA3S,CAAA,GAE0B+qB,EAAYriB,KAFtCuiB,KAlKiBpoB,EAwKnBgoC,sBAAwB,SAAC9f,EAAWC,EAAOtiB,GAAU,IAAAgiC,EAAAqZ,EAC3C9pB,EAAYp3B,EAAKM,MAAjB82B,QACF/J,EAAQ,GAAApxB,OAAM4J,EAAM6Y,OAAZ,KAAAziB,OAAsB4J,EAAM8Y,UACpC0oB,EAA+BjQ,EAA/BiQ,cAAehE,EAAgBjM,EAAhBiM,YAEhBgE,IAEHhE,EAAc,CAAEx9B,MADhBwhC,EAAgBxhC,EAAMuvB,UACgBluB,MAAOmmB,IAE/CrtB,EAAKmB,UAAL+/C,EAAA,GAAA/jD,OAAA2S,GAAA,EAAA3S,CAAA+jD,EACG/4B,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAA+jD,EAAA,UAAA/jD,OAAA0Q,GAAA,EAAA1Q,CAAA,GAGOi6B,GAHPyQ,EAAA,GAAA1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAIK3f,EAAYriB,GAJjB1I,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,WAKIxa,GALJlwB,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,cAMIxE,GANJlmC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,gBAOIR,GAPJQ,KAAAqZ,KA/KAlhD,EAAKM,MAAQ,CACXC,SAAS,GAEXP,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKgoC,sBAAwBhoC,EAAKgoC,sBAAsBrzB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC7BA,EAAK6jD,2BAA6B7jD,EAAK6jD,2BAA2BlvC,KAAhCxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAPjBA,mFAWjBE,KAAK+d,iBACL/d,KAAKswC,sDAiLE,IAAAhmC,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAOH3B,KAAKI,MAJP82B,EAHKv1B,EAGLu1B,QACA6sB,EAJKpiD,EAILoiD,cACA5d,EALKxkC,EAKLwkC,SACA9lC,EANKsB,EAMLtB,QAEF,OACEkD,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,YAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,mCAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,KACLwpC,GAAiB1jD,EACfkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEAnc,EAAA1B,EAAAC,cAACoiD,GAADjnD,OAAAuP,OAAA,GACM0qB,EADN,CAEEhmB,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAeiqB,EACfzyB,QAASA,EACTs/C,cAAeA,EACf5d,SAAUA,EACVhhB,gBAAiBnlB,KAAK+nB,qBACtBqe,iBAAkBpmC,KAAK8nC,sBACvB6b,2BAA4B3jD,KAAK2jD,2BACjC/jC,oBAAkB,eAnOD7c,iBCXpBkM,GAVE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAKf,OAJKD,EAAM2a,SAAY3a,EAAM2a,QAAQyL,iBACnCnmB,EAAOolB,QAAU,8BAGZplB,GCYHomB,oLAkBK,IAAApyB,EAUHpD,KAAKsC,MARPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACAyU,EAJKvhB,EAILuhB,OACA6N,EALKpvB,EAKLovB,KACA2T,EANK/iC,EAML+iC,SANKnN,EAAA51B,EAOLqyB,gBAPK,IAAAuD,EAOM,GAPNA,EAQLmrB,EARK/gD,EAQL+gD,wBACAP,EATKxgD,EASLwgD,iBAGF,OACErgD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,0BAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,yBAWRphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAE/B3M,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE6D,MAAK,GAAA5J,OAAKy2B,GACVnnB,UAAQ,OAKhB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAASqwB,EACT7/B,SAAUs9C,QAOpBrgD,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACNsqB,EAAShvB,IAAI,SAAA6f,GAAC,OACb/iB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,GAAI1rB,IAAG,YAAA5K,OAAcuqB,EAAEtnB,KAC5CuE,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,CAAUvY,UAAU,sCAClBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,qCACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,uBAAuBmkB,EAAE9H,QACvCjb,EAAA1B,EAAAC,cAAA,WACCwkB,EAAE3F,SAASla,IAAI,SAAAya,GAAC,OACf3d,EAAA1B,EAAAC,cAAA,OAAK6E,IAAG,WAAA5K,OAAamlB,EAAEwvB,gBAAkBvuC,UAAU,sBACjDoB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,WAAA5K,OAAamlB,EAAEwvB,gBAClB7xC,KAAI,WAAA9C,OAAamlB,EAAEwvB,gBACnB9/B,UAAW1E,GACXlF,MAAOka,EAAE1C,OACT7Y,MAAOub,EAAEhM,SAAW,UAAY,GAChC5J,eAAgB4V,EAAEhM,SAClB5O,SAAU,SAAA4d,GAAC,OAAIigC,EAAwBjjC,EAAEwvB,eAAgBxsB,kBAa/E3gB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAnIgB5hB,iBAAxByyB,GAYGhuB,aAAe,CACpBgJ,YAAY,EACZ21B,SAAU,GACV1Q,SAAU,IAkId,IAMehpB,MANa0E,aAAU,CACpCC,KAAM,sBACNnC,YACA2Q,oBAAoB,GAHMzO,CAIzBqkB,KCtJGK,eACJ,SAAAA,EAAYvzB,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA61B,IACjB/1B,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA44B,GAAA11B,KAAAH,KAAMsC,KAaR03B,cAAgB,WAAM,IAAA52B,EACetD,EAAKwC,MAAhCmC,EADYrB,EACZqB,StE0CL,SAAmC6yB,EAAW36B,GAC5CsB,aAAM,GAAAlC,OAAIN,KAAJ,6BAAAM,OAA2Cu7B,IACrD15B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KsEnD/CumD,CAFoBhhD,EACHpE,GACoB,CACnCgR,UAAW,SAAC2wC,GAAa,IACfxa,EAAawa,EAAbxa,SACRA,EAASvhC,KAAK,CAAEe,MAAO,EAAGqB,MAAO,UACjClH,EAAKmB,SAALhE,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK0jD,EADL,CAEExa,WACA7lC,QAAQ,MAGZmB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,wBACnBqF,EAAQG,KAAK,4BAEbxF,aAAmB,sDA/BRU,EAqCnBi2B,iBAAmB,SAACuR,GAAc,ItEmCQ3qC,EsElC5B26B,EAAcx3B,EAAKwC,MAAvBtD,GACRc,EAAKmB,SAAS,CAAEX,QAAQ,ItEiCgB3D,EsEhCZ,CAC1B26B,YACAgQ,YACAt3B,UAAW,SAACylB,GACV31B,EAAKmB,SAAS,CAAEw0B,WAAUn1B,QAAQ,KAEpCmB,QAAS,WACPrC,aAAmB,yCACnBU,EAAKmB,SAAS,CAAEX,QAAQ,MtEyBvBrC,aAAM,GAAAlC,OAAIN,KAAJ,2BAAAM,OAAyCY,EAAO26B,UAAhD,KAAAv7B,OAA6DY,EAAO2qC,YAC9E1pC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MsElF9BiC,EAsDnBqkD,wBAA0B,SAACnlD,EAAIi3B,GAC7B,GAAIA,EAAIpmB,OAAQ,KACNqmB,EAAwBp2B,EAAKM,MAA7B81B,oBACFC,EAAUD,EAAoBte,KAAK,SAAApE,GAAC,OAAIA,EAAEk9B,iBAAmB1xC,IAC9Dm3B,GAOHA,EAAQjhB,SAAW+gB,EAAIpmB,OAAOnE,QAC9B5L,EAAKmB,SAAS,CAAEi1B,0BAPhBA,EAAoBtxB,KAAK,CACvB8rC,eAAgB1xC,EAChBkW,SAAU+gB,EAAIpmB,OAAOnE,UAEvB5L,EAAKmB,SAAS,CAAEi1B,2BA/DHp2B,EAuEnBoQ,aAAe,WAAM,ItEeM7T,EAAM+e,EsEdnBkc,EAAcx3B,EAAKwC,MAAvBtD,GAEFrC,EAAS,CAAEu5B,oBADep2B,EAAKM,MAA7B81B,oBAC8BoB,WAAYA,GAC1C7yB,EAAY3E,EAAKwC,MAAjBmC,QtEWiBpI,EsEVZM,EtEUkBye,EsET7B,CACEpL,UAAW,WACT9Q,aAAqB,8CACrBuF,EAAQG,KAAR,wBAAA7I,OAAqCu7B,KAEvC71B,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,qEtECtBN,aAAO,GAAA/C,OAAIN,KAAJ,kBAAiCY,GAC5CuB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MsEhGpCiC,EA4FnB8jD,iBAAmB,SAACtxB,GAClBxyB,EAAKmB,SAAS,CAAEqxB,YAChBxyB,EAAKi2B,iBAAiBzD,EAAQ3sB,QA9Fb7F,EAiGnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAjGRhoB,EAAKM,MAAQ,CACXE,QAAQ,EACR41B,oBAAqB,GACrB5D,QAAS,CAAE3sB,MAAO,EAAGqB,MAAO,UALblH,mFAUjBE,KAAKg6B,gBACLh6B,KAAK+1B,iBAAiB,oCA2Ff,IAAAzrB,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAQH3B,KAAKI,MALP82B,EAHKv1B,EAGLu1B,QACA52B,EAJKqB,EAILrB,OACAm1B,EALK9zB,EAKL8zB,SACAnD,EANK3wB,EAML2wB,QACA6T,EAPKxkC,EAOLwkC,SAIF,OACE5iC,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wBAGAoB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,YAAc,WADtB,+CAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJja,GAAUm1B,GAAYyB,EAGrB3zB,EAAA1B,EAAAC,cAACuiD,GAADpnD,OAAAuP,OAAA,GACM0qB,EADN,CAEEA,QAASA,EACT5E,QAASA,EACT6T,SAAUA,EACVj1B,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAeiqB,EACfzyB,QAASA,EACTgxB,SAAUA,EACV0uB,wBAAyBnkD,KAAKmkD,wBAC9BP,iBAAkB5jD,KAAK4jD,oBAbxBrgD,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,yBAlIkBY,iBAgKpBC,eAAW4H,YAAQ,SAAAxK,GAAK,MAAK,CAC1CwJ,QAASxJ,EAAMwJ,UADSgB,CAEtBirB,KC/GW5mB,GArEE,WAEX,IAFYE,EAEZrC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAFoB,CACxB4lB,SAAU,IAEJtjB,EAAS,GA+Df,OA7DKD,EAAMslB,OAAUtlB,EAAMslB,MAAM9uB,QAC/ByJ,EAAOqlB,MAAQ,8BAGZtlB,EAAM0R,SAAY1R,EAAM0R,QAAQlb,QACnCyJ,EAAOyR,QAAU,gCAGd1R,EAAMge,UAAahe,EAAMge,SAASxnB,QACrCyJ,EAAO+d,SAAW,gCAGfhe,EAAM+nB,SAAY/nB,EAAM+nB,QAAQvxB,QACnCyJ,EAAO8nB,QAAU,+BAGf/nB,EAAMujB,UAAYvjB,EAAMujB,SAASrsB,SACnC+I,EAAOsjB,SAAW,GAClBvjB,EAAMujB,SAASxY,OAAO,SAAArC,GAAC,OAAKA,EAAEqzB,UAASxsC,QAAQ,SAAC8rB,EAAKvJ,GACnD,IAAMpjB,EAAQ,GAET2sB,EAAI8C,+BAAkC9C,EAAI8C,8BAA8B3nB,QAC3E9H,EAAMyvB,8BAAgC,gDAEnC9C,EAAI2C,UAAa3C,EAAI2C,SAASxnB,MAMN,CADvBwJ,EADFge,UAGY,GAFVhe,EADQgjC,mBAIW,GAHnBhjC,EAD2BijC,mBAKR,GAJnBjjC,EAD8CkjC,mBAM3B,IAGCjzB,KAAK,SAAA2H,GAAC,OAAIA,EAAEphB,OAASohB,EAAEphB,QAAU6kB,EAAI2C,SAASxnB,UACpE9H,EAAMsvB,SAAW,sDAbnBtvB,EAAMsvB,SAAW,+BAgBd3C,EAAI6C,KAAQ7C,EAAI6C,IAAI1nB,QACvB9H,EAAMwvB,IAAM,2BAET7C,EAAI+C,aACP1vB,EAAM0vB,WAAa,yBAEhB/C,EAAIgD,UACP3vB,EAAM2vB,QAAU,yBAGdvwB,OAAOwD,KAAK5C,GAAOwI,SACrB+I,EAAOsjB,SAASzR,GAASpjB,MAK3BZ,OAAOwD,KAAK2O,GAAQ/I,QACtBzF,QAAQ/C,MAAMuR,GAGTA,GCnCHkjC,eAsDJ,SAAAA,EAAYhwC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsyC,IACjBxyC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAq1C,GAAAnyC,KAAAH,KAAMsC,KAsGRsc,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KAAA9L,EAC6CtD,EAAKwC,OAC5DqwC,EAFUvvC,EACFuvC,qBACY,EAFVvvC,EACmB8a,QAAWnE,SACP7K,KA1GlBpP,EA8GnB+e,wBAA0B,WAAM,IAAAvU,EAC+BxK,EAAKwC,MAA1DqwC,EADsBroC,EACtBqoC,oBADsB2R,EAAAh6C,EACD4T,eADC,IAAAomC,EACS,CAAEvqC,SAAU,KADrBuqC,EAE9B3R,EAAoB,EAAGz0B,EAAQnE,SAAUmE,IAhHxBpe,EAmHnBuE,OAAS,SAAC0tB,GAAQ,IACR4gB,EAAwB7yC,EAAKwC,MAA7BqwC,oBACc7yC,EAAKM,MAAnB4xB,YACUD,IAChBjyB,EAAKmB,SAAS,CAAE+wB,UAAWD,IACf,MAARA,GACF4gB,MAzHa7yC,EA8HnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAlIE7G,EAqInB8yC,qBAAuB,WAAM,IAAAt+B,EAGvBxU,EAAKwC,MAET,MAAO,CALoBgS,EAEzB6Y,UAIY,GANa7Y,EAEf69B,mBAKW,GAPI79B,EAEI89B,mBAMR,GARI99B,EAEuB+9B,mBAO3B,IACrBn4B,OAAO,SAAA6M,GAAC,OAAIA,EAAEphB,SA/IC7F,EAkJnB+yC,eAAiB,SAAA52C,GAKX,IAAAgvC,EAAAhvC,EAJJsnB,cAII,IAAA0nB,EAJK,GAILA,EAAA6H,EAAA72C,EAHJw2C,sCAGI,IAAAK,EAH6B,GAG7BA,EAAAC,EAAA92C,EAFJ+2C,kBAEI,IAAAD,EAFS,GAETA,EAAAE,EAAAh3C,EADJy2B,gBACI,IAAAugB,EADO,GACPA,EAAArO,EAGA9kC,EAAKwC,MADP4wC,EAFEtO,EAEFsO,sBAAuBC,EAFrBvO,EAEqBuO,wBAAyBvvB,EAF9CghB,EAE8ChhB,aAAcC,EAF5D+gB,EAE4D/gB,eAG1DuvB,EAAoBtzC,EAAK8yC,uBAmC/B,OACErvC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,SAAOK,UAAU,gCACfoB,EAAA1B,EAAAC,cAAA,aACEyB,EAAA1B,EAAAC,cAAA,MAAIgF,MAAO,CAAEC,gBAAiB,wBAC5BxD,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAS,GACXvgB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,kBACboB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,GACdjX,EAAA1B,EAAAC,cAAA,gCAzCiB,IAA7BsxC,EAAkB/sC,OAElB9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CAAOV,MAAM,WAAb,qFAURtD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAGC,GAAI,EAAG0S,GAAI,IACrB3pB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAAS,kBAAM0vC,KACf/wC,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,eACZ,IARH,gBAgCEoB,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,KACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,kBACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAV,YACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,UACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,QACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,eACAzgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAc6hB,MAAM,aAAlC,YACAzgB,EAAA1B,EAAAC,cAAA,MAAIkiB,MAAM,aAAa,OAG3BzgB,EAAA1B,EAAAC,cAAA,aACGyhB,EAAO9c,IAAI,SAAC4sC,EAASpyB,GACpB,OAAKyR,EAASzR,GAKZ1d,EAAA1B,EAAAC,cAAA,MAAI6E,IAAG,GAAA5K,OAAKs3C,GAAWlxC,UAAWuwB,EAASzR,GAAOiqB,QAAU,SAAW,IACrE3nC,EAAA1B,EAAAC,cAAA,MAAIgiB,QAAQ,IAAI3hB,UAAU,wBACxBoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAEgtB,SAAU,SAAUO,WAAY,SAAUtE,UAAW,SAClFxsB,EAAA1B,EAAAC,cAAA,UAAKmf,EAAQ,GACb1d,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,kCACJlmC,YAAY,iBACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAChCxN,OAAQ/T,EAAOzD,KAAM,gCAAiCoiB,WAExDnL,QAAS28B,EACT7hC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,aACJlmC,YAAY,WACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,WAAYoiB,WACrEnL,QAASs9B,EACTxiC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,QACJlmC,YAAY,SACZ7G,SAAU,SAAAhE,GAAK,OAAIuhB,EAAe,CAAExN,OAAQ/T,EAAOzD,KAAM,MAAOoiB,WAChEnL,QAASk9B,EACTpiC,UAAW6G,OAIjBlU,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mEACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,SACJlmC,YAAY,OACZ5N,KAAK,OACL6N,UAAU,KACVwD,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,SAKvC1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,eACJlmC,YAAY,cACZ5N,KAAK,OACLqR,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,QAIrC1d,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,yBACZoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,OAAO2E,MAAO,CAAE2P,QAAS,SACtClT,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAI,GAAA9C,OAAKs3C,EAAL,YACJlmC,YAAY,WACZmmC,cAAexzC,EAAKyzC,kBACpBh0C,KAAK,OACLqR,UAAW1D,GACXU,aAAa,QACbtH,SAAU,SAAA4d,GAAC,OAAIN,EAAaM,EAAGjD,QAIrC1d,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACExL,QAAS,kBAAM2vC,EAAwB,CAAElyB,WACzCpS,KAAK,KACLsV,SAAO,EACPtd,MAAM,SACNC,MAAO,CAAEid,aAAc,OACvB5hB,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,cAAc4O,cAAY,YA1FtC,WA7NFjR,EAmUnB0zC,iBAAmB,WAAM,IACfhnB,EAAmB1sB,EAAKwC,MAAxBkqB,eACR,OACEjpB,EAAA1B,EAAAC,cAAC2xC,GAAD,CACEpD,WAAY7jB,EAAextB,GAC3BwtB,eAAcvvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACTuvB,EADS,CAEZiB,uBAAuB,OA1UZ3tB,EAgVnBykD,YAAc,WAAM,IAAAxf,EACkBjlC,EAAKwC,MAAjCkqB,EADUuY,EACVvY,eADUuY,EACMtgC,QAChBG,KAAR,iCAAA7I,OAA8CywB,EAAe8K,UAA7D,KAAAv7B,OAA0EywB,EAAextB,GAAzF,mBAhVAc,EAAKM,MAAQ,CACX4xB,UAAW,KAGblyB,EAAK6Z,QAAU,SAAAjL,GAGT,IAFJglC,EAEIhlC,EAFJglC,qBACAC,EACIjlC,EADJilC,YAwBA,SAAA53C,OAtBa,CACX,CACE4K,IAAK,kBACL9H,KAAM,gBACNwR,MAAO,QACP+J,QAAQ,GAEV,CACEzT,IAAK,iBACL9H,KAAM,WACN4a,SAAS,EACTW,QAAQ,GAEV,CACEzT,IAAK,eACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,MAAI,GAAAnc,OAAGmc,EAAIghB,eAAP,MAAAn9B,OAA0Bmc,EAAI+gB,cAAetQ,SAE9D,CAAEhiB,IAAK,QAAS9H,KAAM,WAKnB,CACD,CACE8H,IAAK,eACL9H,KAAM,OACNuZ,UAAWs7B,GAAwBC,EACnCp0C,KAAM,SACN8N,IAAK,EACLC,IAAK,IACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAAmQ,GAAA,IAAGmH,EAAHnH,EAAGmH,aAAH,OACNpvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb6b,KAIP,CACEhsB,IAAK,uBACL9H,KAAM,eACNU,KAAM,SACN8N,IAAK,IACLC,IAAK,MACL+C,MAAO,QACPlO,UAAW,cACXoW,WAAY,kBAAMzY,EAAKyY,YACvB8C,OAAQ,SAAA+R,GAAA,IAAGwF,EAAHxF,EAAGwF,qBAAH,OACNrvB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACN6f,MAAI,EACJ5f,MAAO,CACLqS,SAAU,OACV8W,UAAW,SACXnZ,WAAY,WAGb3D,KAAKue,MAAMkB,MAIlB,CACEjsB,IAAK,UACL9H,KAAM,SACNwR,MAAO,QACPoJ,SAAS,MAMjB3Z,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,iBACzCwX,SAAU,SAACwc,GACT93B,EAAK+zC,YAAYjc,MAjGN93B,wEAqVV,IAAAS,EAAAP,KAGP,GAFoBA,KAAKsC,MAAjBjC,QAGN,OAAOkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAJF,IAAAulB,EAwBHjlC,KAAKsC,MAhBPkO,EARKy0B,EAQLz0B,WACAN,EATK+0B,EASL/0B,aACAiV,EAVK8f,EAUL9f,gBACAR,EAXKsgB,EAWLtgB,OACAmvB,EAZK7O,EAYL6O,8BACA1nB,EAbK6Y,EAaL7Y,WACAzL,EAdKskB,EAcLtkB,SACA6L,EAfKyY,EAeLzY,eACAkG,EAhBKuS,EAgBLvS,SACAsgB,EAjBK/N,EAiBL+N,WACAP,EAlBKxN,EAkBLwN,+BACAsB,EAnBK9O,EAmBL8O,kBACAC,EApBK/O,EAoBL+O,sBACAp6B,EArBKqrB,EAqBLrrB,MACAI,EAtBKirB,EAsBLjrB,gBACAkE,EAvBK+mB,EAuBL/mB,QAGMuW,EAAmBjI,EAAnBiI,MAAOyC,EAAY1K,EAAZ0K,QAGblF,EACEhyB,KAAKI,MADP4xB,UAGF,OACEzuB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,qCAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,SACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE6D,MAAK,GAAA5J,OAAK04B,EAAMztB,OAChBqE,UAAQ,OAKhB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAA,SACE6D,MAAK,GAAA5J,OAAKm7B,EAAQvxB,MAAb,OAAA5J,OAAwBm7B,EAAQlwB,OACrCqE,UAAQ,OAKhB9H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAAS6K,OAMjBpd,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,sBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW6G,GACXtK,YAAY,WACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,WAAY,aAAcjB,SAKjE3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAMnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAMnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,qBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASsW,EACT9lB,SAAU,SAAA4d,GAAC,OAAIiB,EAAgB,oBAAqB,sBAAuBjB,SAKnF3gB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,0BAA0B,KAC1CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,oBACL+R,UAAW1E,GACXlF,MAAM,wBACNrB,MAAOouC,EAAoB,UAAY,GACvCzoC,eAAgByoC,OAMxBxwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,cACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACLsO,YAAY,aACZ5N,KAAK,OACL6N,UAAU,KACVwD,UAAW1D,GACXU,aAAa,aAOrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAAIpmB,MAAO,CAAE2P,QAAS,OAAQ4d,WAAY,WACxD9wB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEH,KAAK,KACLhI,MAAM,UACNC,MAAO,CAAEid,aAAc,OACvBvgB,QAASxD,KAAKukD,YACdpiD,UAAU,oBAEVoB,EAAA1B,EAAAC,cAAA,KAAGK,UAAU,gBACZ,IARH,oBAeNoB,EAAA1B,EAAAC,cAAA,WAWAyB,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC+wB,GAAA,EAAD,CAAKC,MAAI,EAAChsB,MAAO,CAAE4mB,IAAK,WACtBnqB,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,qBAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACVqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAJ7B,sBAWNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EACIzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,QAA3C,kBAEDoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQmV,SAAO,EAACtd,MAAM,YAAY1E,UAAU,OAAOqB,QAAS,kBAAMjD,EAAK8D,OAAO,OAA9E,mBAMNd,EAAA1B,EAAAC,cAACixB,GAAA,EAAD,CAAS5wB,UAAU,IACF,MAAd6vB,EAEGzuB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQkF,QAAM,EAACrN,MAAM,YAAY1E,UAAU,OAAO2E,MAAO,CAAEid,aAAc,SAAzE,gBAKAxgB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CACEmV,SAAO,EACPtd,MAAM,YACN1E,UAAU,OACV2E,MAAO,CAAEid,aAAc,QACvBvgB,QAAS,kBAAMjD,EAAK8D,OAAO,OAL7B,kBAaRd,EAAA1B,EAAAC,cAACmxB,GAAA,EAAD,CAAYjB,UAAWA,GACrBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAAS/wB,UAAU,qBAAqBgxB,MAAM,KAC5C5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAAC6kB,GAAA,EAAD,CACE9nB,KAAK,WACL+R,UAAW5Q,KAAK6yC,eAChBngB,SAAUA,EACVsgB,WAAYA,EACZP,+BAAgCA,EAChCzgB,UAAWA,MAIjBzuB,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KAEIq5B,EACEzwC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIpY,UAAU,eACrBoB,EAAA1B,EAAAC,cAAC4d,GAAD,OAIAnc,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,aACboB,EAAA1B,EAAAC,cAAA,UACEgF,MAAO,CAAEwJ,OAAQ,QACjBnO,UAAU,kCACV5C,KAAK,SACLiE,QAASswC,GAETvwC,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wBAAhB,QANF,qBAWJoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,6BACN+V,QAAS3Z,KAAK2Z,QAAQ,CACpBg6B,YAAannB,EAAemnB,YAC5BD,qBAAsBlnB,EAAeknB,qBACrCQ,6BAA8B1nB,EAAe0nB,+BAE/Ct6B,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnB+G,gBAAiBA,EACjB9I,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrBhF,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CwR,WAAYnY,KAAKujC,gBACjBvwB,YAAa4G,EAAMvT,OACnByM,KAAM,EACNiH,SAAUC,EACVR,eAAgB0E,EAAQ1E,eACxBvM,cAAeiR,EACf0B,oBAAkB,OAOhCrc,EAAA1B,EAAAC,cAACoxB,GAAA,EAAD,CAASC,MAAM,KACb5vB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACG3a,KAAKwzC,uBAMdjwC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAltBmB5hB,iBAA3BuvC,GAkDG9qC,aAAe,CACpBgJ,YAAY,GA6qBhB,IAMe/D,MANiB0E,aAAU,CACxCC,KAAM,qBACNnC,YACA2Q,oBAAoB,GAHUzO,CAI7BmhC,KCrUYhI,eApab,SAAAA,EAAYhoC,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsqC,IACjBxqC,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqtC,GAAAnqC,KAAAH,KAAMsC,KAyBR6xC,4BAA8B,WAAM,IAC1Bn1C,EAAOc,EAAKwC,MAAZtD,GACRc,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvCjpB,GAA6B,CAC3B/rB,KACAgR,UAAW,WACTlQ,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC90C,aAAqB,kCAEvBuC,QAAS,WACP3B,EAAKmB,SAAS,CAAE+yC,uBAAuB,IACvC50C,aAAmB,sEArCNU,EA0CnBu0C,qBAAuB,SAACvhC,EAAMiH,EAAUmE,GAAY,IAC1Clf,EAAOc,EAAKwC,MAAZtD,GAERc,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvB91B,QAASA,GAAW,KAGtB4M,GAAmB,CACjB5M,UACAlf,KACAgR,UAAW,SAAA/T,GAAyB,IAAZ2d,EAAY3d,EAAtB0kB,SACZ7gB,EAAKmB,SAAS,CACZ+yC,uBAAuB,EACvBp6B,QACAI,gBAAiBJ,EAAMvT,UAG3B5E,QAAS,WACP3B,EAAKmB,SAAS,CACZ2Y,MAAO,GACPo6B,uBAAuB,IAEzB50C,aAAmB,oDAjENU,EAsEnBwwC,mBAAqB,WAAM,IAAAltC,EACUtD,EAAKwC,MAAhCtD,EADiBoE,EACjBpE,GAAIwlD,EADaphD,EACbohD,UAAW//C,EADErB,EACFqB,QACnBzF,EACFwG,GAAI,CACFxG,KACAgR,UAAW,SAACiZ,GACVnpB,EAAKmB,SAAS,CAAEurB,eAAgBvD,KAElCxnB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,gCACnBqF,EAAQG,KAAR,wBAAA7I,OAAqCyoD,KAErCplD,aAAmB,+DAKzBU,EAAKmB,SAAS,CACZurB,eAAgB,CACdxtB,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,cAClBrb,8BAA8B,MA5FnB9rB,EAkGnBie,eAAiB,WACfC,GAAe,CACbhO,UAAW,SAAAtB,GAOL,IANJomB,EAMIpmB,EANJomB,OACAnU,EAKIjS,EALJiS,SACAgW,EAIIjoB,EAJJioB,SACAvK,EAGI1d,EAHJ0d,WACAqmB,EAEI/jC,EAFJ+jC,+BACAO,EACItkC,EADJskC,WAEAlzC,EAAKmB,SAAS,CACZ6zB,SACAnU,WACAgW,WACAvK,aACAqmB,iCACAO,eAGFlzC,EAAKwwC,sBAEP7uC,QAAS,WACPrC,aAAmB,qDAxHNU,EA6HnBoQ,aAAe,SAAChB,GACd,GAAKA,EAAL,CADyB,IAGvBlQ,EAaEkQ,EAbFlQ,GACA6hB,EAYE3R,EAZF2R,QACAsM,EAWEje,EAXFie,SACAglB,EAUEjjC,EAVFijC,kBACAC,EASEljC,EATFkjC,kBACAC,EAQEnjC,EARFmjC,kBACA3B,EAOExhC,EAPFwhC,eACAjc,EAMEvlB,EANFulB,MACA6C,EAKEpoB,EALFooB,UACA5E,EAIExjB,EAJFwjB,SACA9G,EAGE1c,EAHF0c,6BACAmoB,EAEE7kC,EAFF6kC,kBACA5hB,EACEjjB,EADFijB,QAUIx1B,EAAS,CAEbqC,KACA0xC,iBACAzb,QAXyBR,EAAnB9uB,MAYNk0B,UAX2BhZ,EAArBlb,MAYNyhC,WAX4Bja,EAAtBxnB,MAYN2xB,YACAwd,qBAZqC3C,GAAqB,IAApDxsC,MAaNovC,qBAZqC3C,GAAqB,IAApDzsC,MAaNqvC,qBAZqC3C,GAAqB,IAApD1sC,MAaN+sB,WACA9G,+BACAmoB,oBACA5hB,WAvCuB7nB,EAyCMxK,EAAKwC,MAA5BmC,EAzCiB6F,EAyCjB7F,QAAS+/C,EAzCQl6C,EAyCRk6C,UACjBj6B,GAAK5tB,EAAQ,CACXqT,UAAW,WACT9Q,aAAqB,6CACrBuF,EAAQG,KAAR,wBAAA7I,OAAqCyoD,KAEvC/iD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,kEAhLRU,EAsLnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UAxLShoB,EA2LnBw0C,0BAA4B,WAAM,IAAAC,EACNz0C,EAAKM,MAAvBsyB,gBADwB,IAAA6hB,EACb,GADaA,EAG1BxD,EAA+B,IAApBre,EAASrsB,OAAe,EAAK8M,KAAK7F,IAALT,MAAAsG,KAAIlW,OAAAmrB,GAAA,EAAAnrB,CAAQy1B,EAASjsB,IAAI,SAAAonB,GAAA,OAAAA,EAAG5M,UAAsB,EAEhGnhB,EAAKmB,SAAS,CACZyxB,SAAQ,GAAA32B,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CACHy1B,GADG,CAEN,CACE1zB,GAAI,EACJiiB,MAAO8vB,EACPvkB,eAAgB,GAChBW,SAAU,CACRxnB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,MAER4U,IAAK,CACH1nB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,MAER8U,WAAY,QACZC,QAAS,QACTga,KAAM,GACNla,8BAA+B,CAC7B3nB,MAAO,EACPqB,MAAO,IACPqhB,SAAU,EACV5P,KAAM,YA1NG3Y,EAiOnB00C,4BAA8B,SAAApqB,GAAe,IAAZnJ,EAAYmJ,EAAZnJ,MAAYwzB,EACjB30C,EAAKM,MAAvBsyB,SACFlK,QAFqC,IAAAisB,EACxB,GADwBA,GAEjBhuC,IAAI,SAAAqU,GAAC,OAAA7d,OAAA0Q,GAAA,EAAA1Q,CAAA,GAC1B6d,EAD0B,CAE7BowB,QAASpwB,EAAEowB,SAAWpwB,EAAEmG,QAAUA,MAGpCnhB,EAAKmB,SAAS,CAAEyxB,SAAUlK,KAxOT1oB,EA2OnBo1C,4BAA8B,WAAM,IAC1Bl2C,EAAOc,EAAKwC,MAAZtD,GAEHA,GAQLc,EAAKmB,SAAS,CACZZ,SAAS,IAGXsqB,GAAuC,CACrCE,UAAW7rB,EACXgR,UAAW,SAAC0iB,GACV5yB,EAAKmB,SAAS,CACZZ,SAAS,EACTqyB,SAAUA,EAASjsB,IAAI,SAACqU,EAAGmG,GAAJ,OAAAhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAoB6d,EAApB,CAAuBmG,eAGlDxf,QAAS,SAAC5D,GACRiC,EAAKmB,SAAS,CAAEyxB,SAAU,GAAIryB,SAAS,IACnCxC,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,kCAEnBA,aAAmB,gEAxBvBU,EAAKmB,SAAS,CACZyxB,SAAU,MAhPG5yB,EA6QnB2oB,iBAAmB,SAAC3nB,EAAGmgB,GAAU,IACvByR,EAAa5yB,EAAKM,MAAlBsyB,SAEF/sB,EAA0B,WAAlB7E,EAAE+O,OAAOtQ,KAAoBgH,OAAOzF,EAAE+O,OAAOlK,OAAS,GAAA5J,OAAG+E,EAAE+O,OAAOlK,OAAQgjB,OAElFwsB,EAAWl4C,OAAAmrB,GAAA,EAAAnrB,CAAOy1B,GACxByiB,EAAYl0B,GAAZhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKk4C,EAAYl0B,GADjBhkB,OAAA2S,GAAA,EAAA3S,CAAA,GAGK6D,EAAE+O,OAAOhR,KAAK6e,MAAM,KAAK,GAAK/X,IAInC7F,EAAKmB,SAAS,CAAEyxB,SAAUyiB,KA1RTr1C,EA6RnB8oB,mBAAqB,SAAAkI,GAA6B,IAAAjI,EAA1BxS,EAA0Bya,EAA1Bza,OAAQxX,EAAkBiyB,EAAlBjyB,KAAMoiB,EAAY6P,EAAZ7P,MACpCnhB,EAAKmB,SAAS,CAAEZ,SAAS,IADuB,IAGxCqyB,EAAa5yB,EAAKM,MAAlBsyB,SACFyiB,EAAWl4C,OAAAmrB,GAAA,EAAAnrB,CAAOy1B,GAClBr2B,GAAIwsB,EAAA,GAAA5rB,OAAA2S,GAAA,EAAA3S,CAAA4rB,EACPhqB,EAAOwX,GADApZ,OAAA2S,GAAA,EAAA3S,CAAA4rB,EAAA,QAER5H,GAFQ4H,GAKVssB,EAAYl0B,GAAZhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACKk4C,EAAYl0B,GACZ5kB,GAGLyD,EAAKmB,SAAS,CACZyxB,SAAUyiB,EACV90C,SAAS,EACT+0C,gBAAgB,IAAIpgC,MAAOqgC,aA/SZv1C,EAmTnBm1C,sBAAwB,SAACjtB,EAAWC,EAAOxP,GAAS,IAAAkvB,EAC1Cnb,EAAmB1sB,EAAKM,MAAxBosB,eAER1sB,EAAKmB,SAAS,CACZurB,eAAevvB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACVuvB,GADSmb,EAAA,GAAA1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAEX1f,EAAQxP,EAAK9S,OAFF1I,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAGX3f,EAAYvP,GAHDkvB,OAvTC7nC,EA+TnBqQ,YAAc,kBACZ5M,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,gCACboB,EAAA1B,EAAAC,cAACsO,GAAA,EAAD,CAASvJ,MAAM,UAAUC,MAAO,CAAEuJ,MAAO,OAAQC,OAAQ,YA/T3DxQ,EAAKM,MAAQ,CACXqyC,+BAAgC,GAChCO,WAAY,GACZ3yC,SAAS,EACTqyB,SAAU,GACV0iB,eAAgB,EAChBpB,uBAAuB,EACvBp6B,MAAO,GACPI,gBAAiB,EACjBkE,QAAS,CACPpL,KAAM,EACNiH,SAAU,GACVqG,gBAAiB,GACjB6Y,aAAc,GACdC,eAAgB,KAhBHp5B,mFAsBjBE,KAAK+d,iBACL/d,KAAKk1C,+DA8SE,IAAA5gC,EACiBtU,KAAKsC,MAArBtD,EADDsV,EACCtV,GAAIyF,EADL6P,EACK7P,QADL9C,EAkBH3B,KAAKI,MAfPosB,EAHK7qB,EAGL6qB,eACAJ,EAJKzqB,EAILyqB,WACA0I,EALKnzB,EAKLmzB,OACA6B,EANKh1B,EAMLg1B,SACAhW,EAPKhf,EAOLgf,SACA8xB,EARK9wC,EAQL8wC,+BACAO,EATKrxC,EASLqxC,WACA3yC,EAVKsB,EAULtB,QACAqyB,EAXK/wB,EAWL+wB,SACA0iB,EAZKzzC,EAYLyzC,eAEApB,EAdKryC,EAcLqyC,sBACAp6B,EAfKjY,EAeLiY,MAfK6qC,EAAA9iD,EAgBLuc,eAhBK,IAAAumC,EAgBK,CAAE1qC,SAAU,KAhBjB0qC,EAiBLzqC,EAjBKrY,EAiBLqY,gBAGF,OACEzW,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,oBAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,wBAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJ6R,GAAcI,EAGbjpB,EAAA1B,EAAAC,cAAC4iD,GAADznD,OAAAuP,OAAA,GACMggB,EADN,CAEEtb,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb2E,eAAgBA,EAChBvf,cAAeuf,EACf/nB,QAASA,EACT2nB,WAAYA,EACZzL,SAAUA,EACVmU,OAAQA,EACR6B,SAAUA,EACVxR,gBAAiBnlB,KAAKi1C,sBACtB7O,iBAAkBpmC,KAAK8nC,sBACvB9D,wBAAyBhkC,KAAKgkC,wBAE9B3jC,QAASA,EAEToyC,+BAAgCA,EAChCO,WAAYA,EAEZoC,eAAgBA,EAEhBxxB,aAAc5jB,KAAKyoB,iBACnB5E,eAAgB7jB,KAAK4oB,mBAErBsqB,sBAAuBlzC,KAAKs0C,0BAC5BnB,wBAAyBnzC,KAAKw0C,4BAE9B7B,oBAAqB3yC,KAAKq0C,qBAC1BP,8BAA+B9zC,KAAKm0C,4BAEpChkC,YAAanQ,KAAKmQ,YAElBuiB,SAAUA,EAEVshB,sBAAuBA,EACvBp6B,MAAOA,EACPI,gBAAiBA,EACjBkE,QAASA,EAET0B,oBAAkB,KA1CpBrc,EAAA1B,EAAAC,cAAC4d,GAAD,gBA1WsB3c,iBCLvBkM,GApBE,WAAgB,IAAfE,EAAerC,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GAClBsC,EAAS,GAgBf,OAfKD,EAAMw1C,SAAYx1C,EAAMw1C,QAAQh/C,QACnCyJ,EAAOu1C,QAAU,mCAIhBx1C,EAAM0yB,0BACH1yB,EAAM0yB,yBAAyBx7B,QAC/B8I,EAAM0yB,yBAAyBziB,KAAK,SAAAte,GAAC,OAAIA,EAAEoU,aAC/C9F,EAAOw1C,SAAW,8BAGhB3nD,OAAOwD,KAAK2O,GAAQ/I,QACtBzF,QAAQ/C,MAAMuR,GAGTA,GCAHy1C,8MAyBJC,QAAU,SAAClqC,EAAIjU,GAAL,OAAaiU,EAAGiW,OAAO,SAACrG,EAAKs2B,GACrC,IAAMiE,EAAKv6B,EAEX,OADCu6B,EAAGjE,EAAEn6C,IAAQo+C,EAAGjE,EAAEn6C,KAAS,IAAI/B,KAAKk8C,GAC9BiE,GACN,OAGH1kB,kBAAoB,iBAClB,CAAC,CACC16B,MAAO,EACPuqB,YAAa,WACbxkB,SAAS,OAIbs5C,SAAW,SAAC/1B,GACV,IAAMg2B,EAAQhoD,OAAOu0C,QAAQ1xC,EAAKglD,QAAQ71B,EAAU,SAASxoB,IAAI,SAAAxK,GAAA,IAAAyS,EAAAzR,OAAA6e,GAAA,EAAA7e,CAAAhB,EAAA,SAAmB,CAAE2gB,KAArBlO,EAAA,GAA2Bw2C,MAA3Bx2C,EAAA,GAAuCrI,UAExG,OACE9C,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEid,aAAc,QAClDxgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YAAY2E,MAAO,CAAEqS,SAAU,GAAIiZ,UAAW,WAA5D,WAEG6yB,EAAMx+C,IAAI,SAAApK,GAAI,OACbkH,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACG9L,EAAKugB,KADR,IAEErZ,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,IACnBtS,MAAM,OACN6f,MAAI,GAEHrqB,EAAK6oD,OAEP,sFASN,IAAA9hD,EAcHpD,KAAKsC,MAZPkO,EAFKpN,EAELoN,WACAN,EAHK9M,EAGL8M,aACA7P,EAJK+C,EAIL/C,QACAigC,EALKl9B,EAKLk9B,2BACA6kB,EANK/hD,EAML+hD,kBACA5kB,EAPKn9B,EAOLm9B,uBACA1c,EARKzgB,EAQLygB,eACAc,EATKvhB,EASLuhB,OATKygC,EAAAhiD,EAUL6rB,gBAVK,IAAAm2B,EAUM,GAVNA,EAAAC,EAAAjiD,EAWLkiD,gBAXK,IAAAD,EAWM,GAXNA,EAYL7kB,EAZKp9B,EAYLo9B,YACAokB,EAbKxhD,EAaLwhD,SAGF,OACErhD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,KACEnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAQAphB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,KACE5E,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,cAAc2E,MAAO,CAAEid,aAAc,QAClDxgB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,YAAY2E,MAAO,CAAEqS,SAAU,KAA7C,SAEE5V,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,IACnBtS,MAAM,UACN6f,MAAI,GAEHuI,EAAS5oB,QAEX,KATH,gBAWE9C,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,IACnBtS,MAAM,UACN6f,MAAI,GAEHuI,EAAS/U,OAAO,SAAArY,GAAC,OAAIA,EAAEqT,WAAU7O,QAEnC,KAlBH,mBAoBE9C,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACET,MAAO,CAAEqS,SAAU,IACnBtS,MAAM,YACN6f,MAAI,GAEHuI,EAAS/U,OAAO,SAAArY,GAAC,OAAKA,EAAEqT,WAAU7O,YAO9CrG,KAAKglD,SAAS/1B,GACf1rB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,OACP5H,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI6Z,GAAI,GAAI/B,GAAI,IACvB9uB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,gCACV2E,MAAO,CACLqS,SAAU,GACV1C,QAAS,OACTK,WAAY,SAGdvT,EAAA1B,EAAAC,cAAC2+B,GAAA,EAAD,CACE35B,MAAO,CAAEitB,WAAY,EAAG2M,cAAe,GACvCC,IAAI,cACJtO,GAAI,EACJlwB,UAAU,qCAJZ,oBAQAoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAK+X,GAAI,GACP9uB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,cACL+R,UAAW1D,GACXC,YAAY,iBACZS,aAAa,QACbrO,KAAK,OACL+G,SAAUi6B,EACVnzB,UAAW,GACXyI,aAAc2qB,SAQxBngC,EACIkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAEAnc,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,CAAWtd,UAAU,qBACnBoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,cACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,oBACZS,aAAa,QACbkI,QAASwvC,EACTh/C,SACE,SAAAhE,GAAK,OAAIuhB,EAAevhB,UAQpCiB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,IACrB9uB,EAAA1B,EAAAC,cAAA,OACEK,UAAU,2BACV2E,MAAO,CACLqS,SAAU,GACV1C,QAAS,OACT2b,UAAW,SAGb7uB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,WACL+R,UAAW1E,GACXlF,MAAM,oBACNrB,MAAOi/C,EACPt5C,eAAgBs5C,EAChBt+C,SAAU,SAAA4d,GAAC,OAAIihC,EAAkBjhC,SAKzC3gB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,CAAKxP,IAAI,MAAMtM,KAAK,4BACjBowB,EAASxoB,IAAI,SAAA0T,GAAC,OACb5W,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG6Z,GAAI,EAAG/B,GAAI,GAAI1rB,IAAG,eAAA5K,OAAiBoe,EAAEorC,gBAC/ChiD,EAAA1B,EAAAC,cAAA,OACE6E,IAAG,eAAA5K,OAAiBoe,EAAExU,OACtBxD,UAAU,2BACV2E,MAAO,CACLqS,SAAU,GACV1C,QAAS,OACT2b,UAAW,SAGb7uB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACEhK,IAAG,WAAA5K,OAAaoe,EAAEorC,eAClB1mD,KAAI,WAAA9C,OAAaoe,EAAEorC,eACnB30C,UAAW1E,GACXlF,MAAK,GAAAjL,OAAKoe,EAAEymB,IAAP,KAAA7kC,OAAcoe,EAAEyC,KAAhB,MAAA7gB,OAAyBoe,EAAEtb,MAChCsD,UAAWgY,EAAEjF,SAAW,UAAY,GACpCvP,MAAOwU,EAAEjF,SACT5J,eAAgB6O,EAAEjF,SAClB5O,SAAU,SAAA4d,GAAC,OAAIoc,EAA2Bpc,EAAG/J,uBAjP/CpX,iBAAxB8hD,GAiBGr9C,aAAe,CACpBgJ,YAAY,EACZnQ,SAAS,EACTi/B,UAAW,GACXkB,YAAa,IACbokB,UAAU,GA4Od,IAMen4C,MANiB0E,aAAU,CACxCC,KAAM,kBACNnC,YACA2Q,oBAAoB,GAHUzO,CAI7B0zC,KC0FYW,eA7Vb,SAAAA,EAAYljD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAwlD,IACjB1lD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAuoD,GAAArlD,KAAAH,KAAMsC,KAsBR0b,eAAiB,SAAA/hB,GAA0B,IAAAulC,EAAAvlC,EAAvBukC,mBAAuB,IAAAgB,EAAT,GAASA,EAC7B3W,EAAc/qB,EAAKwC,MAAvBtD,I1FlBL,SAAA/C,GAAmE,IAAjC4uB,EAAiC5uB,EAAjC4uB,UAAW7a,EAAsB/T,EAAtB+T,UAAWvO,EAAWxF,EAAXwF,QACtDxD,aAAM,GAAAlC,OAAIR,KAAJ,0BAAAQ,OAA+C8uB,IACzDjtB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,K0FSvB4nD,CAAuB,CACrB56B,YACA7a,UAAW,SAAAtB,GAAsC,IAAA0rC,EAAA1rC,EAAnCugB,gBAAmC,IAAAmrB,EAAxB,GAAwBA,EAAAsL,EAAAh3C,EAApB42C,gBAAoB,IAAAI,EAAT,GAASA,EAC/C5lD,EAAKmB,SAAS,CACZguB,WACAq2B,SAAUA,EAASprC,OAAO,SAAAC,GAAC,OAAIA,EAAExU,QAAUY,OAAOskB,KAClDxqB,SAAS,EACTmgC,iBAGJ/+B,QAAS,WACP3B,EAAKmB,SAAS,CACZZ,SAAS,IAEXjB,aAAmB,qDAvCNU,EA4CnBoQ,aAAe,SAAChB,GAAW,IACjBy1C,EAAY7kD,EAAKM,MAAjBukD,QADiBgB,EAGCz2C,EAAlB+f,gBAHiB,IAAA02B,EAGN,GAHMA,EAKnBC,EAAoB32B,EACvB/U,OAAO,SAAArY,GAAC,OAAIA,EAAEqT,WACdzO,IAAI,SAAA5E,GAAC,MAAK,CACT0jD,cAAe1jD,EAAE0jD,iBAGrB,GAAiC,IAA7BK,EAAkBv/C,OAAtB,CAIA,IAAMu7B,EAAgB3S,EACnB/U,OAAO,SAAArY,GAAC,OAAIA,EAAEqT,WACdzO,IAAI,SAAA+kB,GAAmB,IAAhBoV,EAAgBpV,EAAhBoV,IACA97B,EADgB0mB,EAAX3sB,KACW6e,MAAM,MADNmoC,EAEF/gD,EAAS,GAAG4Y,MAAM,KAA/BooC,EAFe7oD,OAAA6e,GAAA,EAAA7e,CAAA4oD,EAAA,MAAAE,EAGHjhD,EAAS,GAAG4Y,MAAM,KAA9BsoC,EAHe/oD,OAAA6e,GAAA,EAAA7e,CAAA8oD,EAAA,MAKtB,OACExiD,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACVuJ,MAAO,MACPoG,QAAS,OACTua,cAAe,MACf8C,SAAU,SACV1X,eAAgB,aAChBiY,WAAY,aAGZ9wB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEvI,GAAE,SAAAjD,OAAW4oD,EAAQh/C,MAAnB,KAAA5J,OAA4B6kC,GAC9B/5B,MAAM,UACNC,MAAO,CAAEqS,SAAU,OAAQrC,WAAY,QAEtC8pB,GAEHr9B,EAAA1B,EAAAC,cAAA,gBAAA/F,OAAW+pD,EAAX,MAAA/pD,OAAyBiqD,OAKjCh4C,GAAQ,CACNpK,MAAO,6BACPqK,SACE1K,EAAA1B,EAAAC,cAAA,kEAAA/F,OAEoD6pD,EAAkBv/C,OAFtE,oBAKE9C,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEV,MAAM,UACNC,MAAO,CAAEqS,SAAU,OAAQrC,WAAY,QAEtC6tC,EAAQ39C,OATb,KAYEzD,EAAA1B,EAAAC,cAAA,OAAKgF,MAAO,CACV2P,QAAS,OACTua,cAAe,MACf8C,SAAU,OACV1X,eAAgB,kBAGfwlB,IAGP1zB,SAAU,oBACVE,QAAS,aACTC,UAAW,W1FxCV,IAA4BhS,EAA5B+wB,EAAoCpd,EAAWvO,EAAnBpF,E0FyCR,CACjBwuB,UAAW85B,EAAQh/C,MACnBspB,SAAU22B,G1F3CuB51C,GAApCod,E0F4CI,CACDpd,UAAW,WACT9Q,aAAqB,2DAErBY,EAAK+nB,gBAEPpmB,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,yD1FtDU4Q,UAAWvO,EAAW2rB,EAAX3rB,QAC7C3C,aAAO,GAAA/C,OAAIR,KAAJ,qBAA2Cc,GACtDuB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADImS,GAAWA,EAAUwZ,GAClBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,U0FrFNiC,EAyInB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA3IShoB,EA8InBmgC,sBAAwB,SAACt6B,GACvB7F,EAAKmB,SAAS,CAAE0jD,QAASh/C,KA/IR7F,EAkJnBqlD,kBAAoB,SAAClvB,GACnB,IAAKA,EAAIzvB,cACP,OAAO,EAGT,IAAMo+C,EAAW3uB,EAAIpmB,OAAOnE,QALD/J,EAUvB7B,EAAKM,MAFPyhC,EARyBlgC,EAQzBkgC,yBACA5S,EATyBttB,EASzBstB,SAGI6S,EAAU7kC,OAAAmrB,GAAA,EAAAnrB,CAAOgyB,GA6BvB,OA3BA6S,EAAWpjC,QAAQ,SAACunD,EAAUhlC,GAQ5B,GAPA6gB,EAAW7gB,GAAXhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK6kC,EAAW7gB,GADhB,CAEE/L,SAAU0vC,EACVlsC,SAAS,KAGempB,EAAyBjqB,KAAK,SAAApE,GAAC,OAAIA,EAAE4b,YAAc62B,EAAS72B,YAC9D,CACtB,IAAM82B,EAAU,CACd92B,UAAW62B,EAAS72B,UACpBla,SAAU0vC,GAGZ/iB,EAAyB5gB,GAAzBhkB,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK4kC,EAAyB5gB,GACzBilC,MAKTpmD,EAAKmB,SAAS,CACZguB,SAAU6S,EACVD,2BACA+iB,cAGK,GA3LU9kD,EA8LnB8oB,mBAAqB,SAAA+7B,GAAO,OAAI7kD,EAAKmB,SAAS,CAAE0jD,aA9L7B7kD,EAgMnBwgC,2BAA6B,SAACrK,EAAKnM,GACjC,IAAKmM,EAAIzvB,cACP,OAAO,EAGT,IAAMxH,EAAK8qB,EAAQy7B,cAL0B5mC,EAUzC7e,EAAKM,MAFPyhC,EAR2CljB,EAQ3CkjB,yBACA5S,EAT2CtQ,EAS3CsQ,SAGI6S,EAAU7kC,OAAAmrB,GAAA,EAAAnrB,CAAOgyB,GAEjB8S,EAAgBD,EAAW3S,UAAU,SAAAhV,GAAC,OAAIA,EAAEorC,gBAAkBvmD,IACpE8iC,EAAWC,GAAX9kC,OAAA0Q,GAAA,EAAA1Q,CAAA,GACK6kC,EAAWC,GADhB,CAEE7sB,UAAW4sB,EAAWC,GAAe7sB,SACrCwD,SAAS,IAGX,IAAMspB,EAAoBH,EAAyBjqB,KAAK,SAAApE,GAAC,OAAIA,EAAE+xC,gBAAkBvmD,IAmBjF,OAlBKgjC,GAWHA,EAAkB9sB,SAAW+gB,EAAIpmB,OAAOnE,QACxC5L,EAAKmB,SAAS,CACZguB,SAAU6S,EACVD,8BAbF/hC,EAAKmB,SAAS,CACZguB,SAAU6S,EACVD,yBAAwB,GAAA9lC,OAAAkB,OAAAmrB,GAAA,EAAAnrB,CACnB4kC,GADmB,CACO,CAC3B0jB,cAAevmD,EACfkW,SAAU+gB,EAAIpmB,OAAOnE,cAYtB,GAxOU5L,EA2OnBygC,uBAAyB,SAAAnT,GAA2B,IAAdznB,EAAcynB,EAAxBvd,OAAUlK,MAEpC,GADoB7F,EAAKM,MAAjBC,QAENP,EAAKmB,SAAS,CACZu/B,YAAa76B,QAFjB,CAFkD,IAAA4wB,EASxBz2B,EAAKM,MAAvB6uB,SACgB,UAV0B,IAAAsH,EAS/B,GAT+BA,GAUrClwB,QAAgBV,EAC3B7F,EAAKke,eAAe,CAAEwf,cAAc,EAAMgD,YAAa76B,IAIzD7F,EAAKmB,SAAS,CACZu/B,YAAa76B,MA3PE7F,EA+PnBoiC,cAAgB,eAACv8B,EAADmH,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAS,GAAT,MAAgB,GAAA/Q,OAAG4J,GAAQw8B,UAAU,OAAOjG,QAAQ,mBAAoB,IAAIkG,eA/PzEtiC,EAiQnBuiC,WAAa,WAAM,IAAA9iB,EAMbzf,EAAKM,MANQ+lD,EAAA5mC,EAEfihB,mBAFe,IAAA2lB,EAED,GAFCA,EAGf5jB,EAHehjB,EAGfgjB,WACAC,EAJejjB,EAIfijB,SAJexT,EAAAzP,EAKf0P,gBALe,IAAAD,EAKJ,GALIA,EAQX9U,EAASpa,EAAKoiC,cAAc1B,GAYlC,OAVevR,EACZ/U,OAAO,SAAAwoB,GAAG,OACT5iC,EAAKoiC,cAAL,GAAAnmC,OAAsB2mC,EAAI9B,IAA1B,KAAA7kC,OAAiC2mC,EAAI9lB,OAAQ0H,SAASpK,IACnDpa,EAAKoiC,cAAcQ,EAAI7jC,MAAMylB,SAASpK,IACtCpa,EAAKoiC,cAAcQ,EAAIh5B,OAAO4a,SAASpK,KAE3CyoB,KAAK,SAAC9gC,EAAG+gC,GAAJ,MACS,QAAbJ,EAAqB3gC,EAAE0gC,GAAYM,cAAcD,EAAEL,IAAeK,EAAEL,GAAYM,cAAchhC,EAAE0gC,OAlRnFziC,EAwRnBgjC,0BAA4B,SAAC7M,GAC3B,QAAKA,EAAIzvB,gBAIT1G,EAAKke,kBAEE,IA7RPle,EAAKM,MAAQ,CACXC,SAAS,EACTmgC,YAAa,GACb+B,WAAY,OACZC,SAAU,OACVtY,YAAa,KACb+E,SAAU,GACVq2B,SAAU,GACVzjB,yBAA0B,GAC1B+iB,UAAU,EACVD,QAAS,CAAEh/C,MAAO,IAGpB7F,EAAKmgC,sBAAwBngC,EAAKmgC,sBAAsBxrB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC7BA,EAAKijC,gCAAkClC,GAAS/gC,EAAKygC,uBAAwB,KAhB5DzgC,mFAoBjBE,KAAKge,eAAe,qCA8Qb,IACCvZ,EAAYzE,KAAKsC,MAAjBmC,QADD+a,EAUHxf,KAAKI,MAPP8pB,EAHK1K,EAGL0K,YACA7pB,EAJKmf,EAILnf,QACAmgC,EALKhhB,EAKLghB,YACAokB,EANKplC,EAMLolC,SANKwB,EAAA5mC,EAOLqiB,gCAPK,IAAAukB,EAOsB,GAPtBA,EAAAC,EAAA7mC,EAQL8lC,gBARK,IAAAe,EAQM,GARNA,EASL1B,EATKnlC,EASLmlC,QAGF,OAAItkD,EACKkD,EAAA1B,EAAAC,cAAC4d,GAAD,MAIPnc,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,wEAKJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAACwkD,GAADrpD,OAAAuP,OAAA,GACM0d,EADN,CAEEhZ,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACbsY,gBAAiBngC,KAAKigC,sBACtBK,2BAA4BtgC,KAAKsgC,2BACjC6kB,kBAAmBnlD,KAAKmlD,kBACxB5kB,uBAAwBvgC,KAAK+iC,gCAC7Blf,eAAgB7jB,KAAK4oB,mBACrB3b,cAAeid,EACfzlB,QAASA,EACTwqB,SAAUjvB,KAAKqiC,aACfR,yBAA0BA,EAC1ByjB,SAAUA,EACVX,QAASA,EACTnkB,YAAaA,EACbokB,SAAUA,EACVhlC,oBAAkB,eA/UO7c,qBCNjCwjD,eAKJ,SAAAA,EAAYjkD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAumD,IACjBzmD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAspD,GAAApmD,KAAAH,KAAMsC,KAyERkkD,kBAAoB,SAAC1zC,EAAMiH,EAAUmE,GCzFhC,IAAgBvhB,EACfyhB,EDyFJte,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,QAASA,GAAW,KC7FlBE,GADezhB,EDgGZ,CACLyhB,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,mDC9GEzC,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IAClBjb,aAAO,GAAA/C,OAAIF,KAAJ,QAAqBuiB,GAChCxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MDE9BiC,EAqGnB2mD,kBAAoB,SAAChyB,GACnB,IAAM51B,EAAI,GAAA9C,OAAM04B,EAAMjW,OAAZ,OAAAziB,OAAwB04B,EAAMnC,SACxCtkB,GAAQ,CACNpK,MAAO,eACPqK,SAAQ,gDAAAlS,OAA+C8C,EAA/C,KACRqP,SAAU,mBACVE,QAAS,aACTC,UAAW,WC9EV,IAAgBrP,EAAIoc,EAAJpc,ED+ERy1B,EAAMz1B,GC/EMoc,ED+EF,CACfpL,UAAW,WACT9Q,aAAqB,8BADN,IAAAyC,EAEY7B,EAAKM,MAAxB0S,EAFOnR,EAEPmR,KAAMiH,EAFCpY,EAEDoY,SACdja,EAAK0mD,kBAAkB1zC,EAAMiH,IAE/BtY,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,sBAEnBA,aAAmB,uCCxFxBH,aAAS,GAAAlD,OAAIF,KAAJ,KAAAE,OAAiBiD,IAC9BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SDxCpCiC,EA+HnB4mD,UAAY,SAACjyB,GACS30B,EAAKwC,MAAjBmC,QACAG,KAAR,sBAAA7I,OAAmC04B,EAAMz1B,MAjIxBc,EAoInBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAK0mD,kBAAkB1zC,EAAMiH,EAAUmE,KAvIxBpe,EA2InB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK0mD,kBAAkB,EAAGzsC,EAAU7K,KA9IrBpP,EAkJnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK0mD,kBAAkB,EAAGzsC,EAAU,KApJnBja,EAuJnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAzJf7G,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACTuZ,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAEjBc,EAAK6Z,QAAU,CACb,CACEhT,IAAK,KACL9H,KAAM,KACNub,QAAQ,EACR/J,MAAO,QAET,CACE1J,IAAK,SACL9H,KAAM,SACNub,QAAQ,GAEV,CACEzT,IAAK,UACL9H,KAAM,UACNub,QAAQ,GAEV,CACEzT,IAAK,gBACL9H,KAAM,iBACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAACnD,GAEP,OAAO,IAAIoE,KAAKC,eAAe,QADjB,CAAEC,UAAW,QAASa,UAAW,WACAhC,OAAO,IAAIrG,KAAKkD,EAAIyuC,kBAGvE,CACEhgD,IAAK,iBACL9H,KAAM,mBACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OAAKA,EAAI0uC,eAAiB,KAAO,OAE9C,CACEjgD,IAAK,SACL9H,KAAM,SACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,OAAKA,EAAI8qC,OAAS,KAAO,OAEtC,CAAEr8C,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,iBACzCwX,SAAU,SAACqZ,GACT30B,EAAK4mD,UAAUjyB,KAGnB,CACE9tB,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,iBAC1CwX,SAAU,SAACqZ,GACT30B,EAAK2mD,kBAAkBhyB,MA/DZ30B,mFAqEC,IAAAyf,EACSvf,KAAKI,MAAxB0S,EADUyM,EACVzM,KAAMiH,EADIwF,EACJxF,SACd/Z,KAAKwmD,kBAAkB1zC,EAAMiH,oCAuFtB,IAAAxZ,EAAAP,KAAAwf,EAQHxf,KAAKI,MANPC,EAFKmf,EAELnf,QACAuZ,EAHK4F,EAGL5F,MACA9G,EAJK0M,EAIL1M,KACAiH,EALKyF,EAKLzF,SACAC,EANKwF,EAMLxF,gBACAkE,EAPKsB,EAOLtB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,oBACC,IASLoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gBAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,8BACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aA1MJ7c,iBAoNfC,eAAWujD,IE1NpBM,eAkBJ,SAAAA,IAAc,IAAA/mD,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA6mD,IACZ/mD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA4pD,GAAA1mD,KAAAH,QAQF8mD,QAAU,SAACjgD,GACT,OAAQA,GACN,IAAK,UACH,OAAOtD,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,sCACzB,IAAK,UACH,OAAOoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,wCACzB,IAAK,UACH,OAAOoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCACzB,IAAK,SACH,OAAOoB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2CACzB,QACE,OAAOoB,EAAA1B,EAAAC,cAAAyB,EAAA1B,EAAAsG,SAAA,QAlBXrI,EAAKM,MAAQ,CACX2mD,OAAO,GAGTjnD,EAAKuE,OAASvE,EAAKuE,OAAOoQ,KAAZxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KANFA,wEAyBZE,KAAKiB,SAAS,SAAAqD,GAAS,MAAK,CAAEyiD,OAAQziD,EAAUyiD,0CAGzC,IAAA3jD,EAGHpD,KAAKsC,MADPuE,EAFKzD,EAELyD,MAAOmgD,EAFF5jD,EAEE4jD,IAAKpjD,EAFPR,EAEOQ,MAAOyjB,EAFdjkB,EAEcikB,QAAS4/B,EAFvB7jD,EAEuB6jD,QAASC,EAFhC9jD,EAEgC8jD,OAAQh8C,EAFxC9H,EAEwC8H,IAEvC67C,EAAU/mD,KAAKI,MAAf2mD,MAEFI,EAAav/C,IAAW,CAC5Bw/C,wBAAyBH,EACzBI,uBAAwBH,IAG1B,OACE3jD,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQnI,MAAOA,EAAOrD,QAASxD,KAAKqE,QAAS2iD,GAC7CzjD,EAAA1B,EAAAC,cAAC8M,GAAA,EAAD,CACEzJ,OAAQ4hD,EACR1iD,OAAQrE,KAAKqE,OACbyK,eAAc,GAAA/S,OAAKmP,EAAIzB,UAAT,YACdtH,UAAS,iBAAApG,OAAmB8K,EAAnB,KAAA9K,OAA4BorD,IAErC5jD,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UAAQK,UAAU,iCAAiC5C,KAAK,SAASiE,QAASxD,KAAKqE,UAC7E6iD,GAAUlnD,KAAK8mD,QAAQjgD,GACzBtD,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,4BAA4ByB,IAE5CL,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACZklB,GAEH9jB,EAAA1B,EAAAC,cAACiN,GAAA,EAAD,CAAe5M,UAAU,iBACvBoB,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQ7M,UAAU,eAAeqB,QAASxD,KAAKqE,QAA/C,UAAuE,IACvEd,EAAA1B,EAAAC,cAACkN,GAAA,EAAD,CAAQ7M,UAAU,WAAWgiB,QAAS8iC,EAASpgD,MAAOA,EAAOrD,QAASxD,KAAKqE,QAA3E,gBA5EiBtB,iBAAvB8jD,GAWGr/C,aAAe,CACpB5D,MAAO,GACPyjB,QAAS,GACT4/B,SAAS,EACTC,QAAQ,GAqEGt8C,YAAQ,SAAAxK,GAAK,MAAK,CAC/B8K,IAAK9K,EAAM8K,MADEN,CAEXi8C,IAFWj8C,ICxEAqE,GAnBE,SAACC,GAChB,IAAMC,EAAQD,GAAU,GAClBE,EAAS,GAcf,OAZKD,EAAMqP,SACTpP,EAAOoP,OAAS,yCAGbrP,EAAMmjB,SAAYnjB,EAAMmjB,QAAQ3sB,QACnCyJ,EAAOkjB,QAAU,+BAGdnjB,EAAMw3C,gBACTv3C,EAAOu3C,cAAgB,yCAGlBv3C,GCKHk4C,eA0BJ,SAAAA,EAAYhlD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAAsnD,IACjBxnD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAAqqD,GAAAnnD,KAAAH,KAAMsC,KA6ERkhD,uBAAyB,SAAC/uB,GACxB,GAAIA,EAAO,KAAArxB,EACetD,EAAKwC,MAArBtD,EADCoE,EACDpE,GADCoE,EACGqB,QACJG,KAAR,sBAAA7I,OAAmCiD,EAAnC,gBAjFec,EAqFnBynD,iBAAmB,SAACnT,GAClB,GAAIA,EAAc,KAAA9pC,EACQxK,EAAKwC,MAArBtD,EADQsL,EACRtL,GAAIyF,EADI6F,EACJ7F,QACZ7D,QAAQC,IAAIuzC,GACZt0C,EAAKmB,SAAS,CAAE8lD,OAAO,IAEZ,MAAP/nD,GACFyF,EAAQG,KAAR,+BAAA7I,OAA4CiD,EAA5C,KAAAjD,OAAkDq4C,EAAap1C,OA5FlDc,EAiGnB0nD,mBAAqB,SAACpT,GAChBA,IAEFqT,EADqC3nD,EAAKwC,MAAlCmlD,0BACiBrT,IApGVt0C,EAwGnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU7K,KA3GvBpP,EA+GnB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAK82B,oBAAoB,EAAG7c,EAAU,KAjHrBja,EAoHnB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IAxHE7G,EA2HnB4nD,cAAgB,SAAC5mD,GACfF,QAAQC,IAAIC,GAEZhB,EAAKuE,UA9HYvE,EAiInB6nD,kBAAoB,SAAC7mD,GACnBF,QAAQC,IAAIC,GAEZhB,EAAKuE,UApIYvE,EAuInBuE,OAAS,WACPvE,EAAKmB,SAAS,SAAAqD,GAAS,MAAK,CAAEyiD,OAAQziD,EAAUyiD,UArIhDjnD,EAAKynD,iBAAmBznD,EAAKynD,iBAAiB9yC,KAAtBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KACxBA,EAAK0nD,mBAAqB1nD,EAAK0nD,mBAAmB/yC,KAAxBxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAE1BA,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,IACVC,gBAAiB,EACjBkE,QAAS,CAAElf,GAAI,IACf+nD,OAAO,GAGTjnD,EAAK6Z,QAAU,CACb,CACEhT,IAAK,mBACL9H,KAAM,WACNub,QAAQ,EACR/J,MAAO,QACPlO,UAAW,cACXkZ,OAAQ,SAAAnD,GAAG,OACT3U,EAAA1B,EAAAC,cAAA,UACEyB,EAAA1B,EAAAC,cAACyF,EAAA,EAAD,CACEZ,IAAG,OAAA5K,OAASmc,EAAIlZ,IAChB6H,MAAOqR,EAAIqc,iBAAmB,IAAM,EAAI,YAAc,WAFxD,IAAAx4B,OAIOmc,EAAIqc,iBAJX,YASN,CACE5tB,IAAK,UACL9H,KAAM,UACNub,QAAQ,EACRiB,OAAQ,SAAAnD,GAAG,SAAAnc,OAAOmc,EAAIoc,cAAX,OAAAv4B,OAA8Bmc,EAAI2I,WAE/C,CACEla,IAAK,mBACL9H,KAAM,oBACNsD,UAAW,eAEb,CACEwE,IAAK,4BACL9H,KAAM,8BACNsD,UAAW,eAEb,CACEwE,IAAK,yBACL9H,KAAM,2BACNsD,UAAW,eAEb,CACEwE,IAAK,uBACL9H,KAAM,yBACNsD,UAAW,eAEb,CAAEwE,IAAK,UAAW9H,KAAM,SAAUwR,MAAO,SAE3CvQ,EAAKwb,QAAU,CACb,CACE3U,IAAK,OACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,aAAayB,MAAM,mBACzCwX,SAAU,SAACg5B,GACTt0C,EAAKynD,iBAAiBnT,KAG1B,CACEztC,IAAK,SACL1D,KAAMM,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,cAAcyB,MAAM,mBAC1CwX,SAAU,SAACg5B,GACTt0C,EAAK0nD,mBAAmBpT,MAxEbt0C,wEA2IV,IAAAwU,EAUHtU,KAAKsC,MARPkO,EAFK8D,EAEL9D,WACAN,EAHKoE,EAGLpE,aACAyU,EAJKrQ,EAILqQ,OACA3lB,EALKsV,EAKLtV,GACAmnC,EANK7xB,EAML6xB,SAEAygB,GARKtyC,EAOLqM,SAPKrM,EAQLsyC,gBACA5D,EATK1uC,EASL0uC,OATKrhD,EAkBH3B,KAAKI,MAlBFuB,EAaLmR,KAbKnR,EAcLoY,SAdKpY,EAeLqY,gBAfKrY,EAgBLuc,QAhBKvc,EAiBLolD,MAKF,OACExjD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAIC,GAAI,IACfjX,EAAA1B,EAAAC,cAAC2Y,GAAA,EAAD,KACElX,EAAA1B,EAAAC,cAAC4Y,GAAA,EAAD,MALqB,EAoBnBnX,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,sBAOFphB,EAAA1B,EAAAC,cAAC+Y,GAAA,EAAD,CAAM1Y,UAAU,OAAO+O,SAAUhB,GAC/B3M,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,GAAI2S,GAAI,IACf3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,eACboB,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,aAAd,uBAGJoB,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,UACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW1D,GACXC,YAAY,SACZS,aAAa,aAMrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,IACd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,WACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,UACL+R,UAAW6G,GACXtK,YAAY,UACZS,aAAa,QACbkI,QAASqwB,OAOjB5iC,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,mCAAhB,kBACAoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,gBACL+R,UAAWsI,GACX/L,YAAY,iBACZS,aAAa,aAOrBrK,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAA2B,KAC3CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,iBACL+R,UAAW1E,GACXlF,MAAM,oBACNrB,MAAOihD,EAAiB,UAAY,GACpCt7C,eAAgBs7C,OAMxBrjD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,EAAG2S,GAAI,GAEd3pB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,oBACboB,EAAA1B,EAAAC,cAAA,QAAMK,UAAU,2BAA2B,KAC3CoB,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,0BACboB,EAAA1B,EAAAC,cAAC6O,GAAA,EAAD,CACE9R,KAAK,SACL+R,UAAW1E,GACXlF,MAAM,UACNrB,MAAOq9C,EAAS,UAAY,GAC5B13C,eAAgB03C,QAO1Bz/C,EAAA1B,EAAAC,cAAA,WACC9C,IAzHkB,EAkJnBuE,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,iBACboB,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,kBACVkJ,SAAUmF,EACVhN,QAAS0M,GAJX,WAOA3M,EAAA1B,EAAAC,cAAA,UACEvC,KAAK,SACL4C,UAAU,4BACVqB,QAASmhB,GAHX,gCAnVU5hB,iBAAlBukD,GAiBG9/C,aAAe,CACpBxI,GAAI,EACJwR,YAAY,EACZmQ,SAAU,GACV2R,QAAS,GACTs0B,gBAAgB,EAChB5D,QAAQ,GA0UZ,IAMev2C,MANQ0E,aAAU,CAC/BC,KAAM,YACNnC,YACA2Q,oBAAoB,GAHCzO,CAIpBm2C,SChKYM,eAjMb,SAAAA,EAAYtlD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA4nD,IACjB9nD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA2qD,GAAAznD,KAAAH,KAAMsC,KAYRguC,mBAAqB,WAAM,IAAAltC,EACDtD,EAAKwC,MAArBtD,EADiBoE,EACjBpE,GAAIyF,EADarB,EACbqB,QACRzF,EJpBD,SAAaA,EAAIoc,GACfnd,aAAM,GAAAlC,OAAIF,KAAJ,KAAAE,OAAiBiD,IAC3BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KIWnD2H,CAAIxG,EAAI,CACNgR,UAAW,SAACiZ,GACV,IAAMwL,EAAKx3B,OAAA0Q,GAAA,EAAA1Q,CAAA,GACNgsB,EADM,CAETqJ,QAAS,CACP3sB,MAAOsjB,EAAIqe,UACXtgC,MAAOiiB,EAAIqJ,WAIfxyB,EAAKmB,SAAS,CAAEwzB,WAElBhzB,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,QACjB4B,aAAmB,sBACnBqF,EAAQG,KAAK,kBAEbxF,aAAmB,qDAKzBU,EAAKmB,SAAS,CACZwzB,MAAO,CACLz1B,GAAI,EACJ48B,OAAO,IAAI5mB,MAAOiyB,kBAzCPnnC,EA+CnBie,eAAiB,WJVZ,IAAwBphB,IIWZ,CACbqT,UAAW,SAAC9U,GACV4E,EAAKmB,SAAS,CACZklC,SAAUjrC,EAAEirC,YAGhB1kC,QAAS,WACPrC,aAAmB,mDJjBlBnB,aAAM,GAAAlC,OAAIF,KAAJ,eACV+B,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,MI/C9BiC,EA4DnBoQ,aAAe,SAAChB,GAAW,IJnDRsb,EAAKpP,EIoDIksB,EAAgBp4B,EAAlCojB,QAAW3sB,MACbhJ,EAAMM,OAAA0Q,GAAA,EAAA1Q,CAAA,GACPiS,EADO,CAEVo4B,cAGM7iC,EAAY3E,EAAKwC,MAAjBmC,QJ1DS+lB,EI2DZ7tB,EJ3DiBye,EI2DT,CACXpL,UAAW,WACT9Q,aAAqB,+BACrBuF,EAAQG,KAAK,kBAEfnD,QAAS,SAAC5D,GACJA,EAAMwpB,QACRloB,aAAqBtB,EAAMwpB,SAE3BjoB,aAAmB,qDJnEpBN,aAAO,GAAA/C,OAAIF,MAAa2uB,GAC5B5sB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MInBpCiC,EAmFnB2nD,yBAA2B,SAACrT,GAC1B,IAAMv1C,EAAI,GAAA9C,OAAMq4C,EAAavzB,SAC7B7S,GAAQ,CACNpK,MAAO,0BACPqK,SAAQ,gDAAAlS,OAA+C8C,EAA/C,mBACRqP,SAAU,aACVE,QAAS,aACTC,UAAW,WC9DV,IAAgBrP,EAAIoc,EAAJpc,ED+DIo1C,EAAap1C,GC/Dboc,ED+DiB,CAClCpL,UAAW,WACT9Q,aAAqB,gCACrBY,EAAKie,iBACLje,EAAKwwC,sBAEP7uC,QAAS,SAAC5D,GACJA,GAA0B,MAAjBA,EAAML,OACjB4B,aAAmB,wBAEnBA,aAAmB,qDCxExBH,aAAS,GAAAlD,OAAIF,KAAJ,KAAAE,OAAiBiD,IAC9BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,SDtCpCiC,EA6GnB+nB,aAAe,WACO/nB,EAAKwC,MAAjBmC,QACAqjB,UA/GShoB,EAkHnBioB,qBAAuB,SAACC,EAAWC,EAAOtiB,GAAU,IAAAuiB,EAC1CuM,EAAU30B,EAAKM,MAAfq0B,MACR30B,EAAKmB,UAALinB,EAAA,GAAAjrB,OAAA2S,GAAA,EAAA3S,CAAAirB,EACGD,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAAirB,EAAA,QAAAjrB,OAAA0Q,GAAA,EAAA1Q,CAAA,GAEcw3B,EAFdx3B,OAAA2S,GAAA,EAAA3S,CAAA,GAEsB+qB,EAAYriB,KAFlCuiB,KApHiBpoB,EA0HnBgoC,sBAAwB,SAAC9f,EAAWC,EAAOtiB,GAAU,IAAAgiC,EAAAqZ,EAC3CvsB,EAAU30B,EAAKM,MAAfq0B,MACFtH,EAAQ,GAAApxB,OAAM4J,EAAM6Y,OAAZ,KAAAziB,OAAsB4J,EAAM8Y,UACpC0oB,EAA+B1S,EAA/B0S,cAAehE,EAAgB1O,EAAhB0O,YAEhBgE,IAEHhE,EAAc,CAAEx9B,MADhBwhC,EAAgBxhC,EAAMuvB,UACgBluB,MAAOmmB,IAE/CrtB,EAAKmB,UAAL+/C,EAAA,GAAA/jD,OAAA2S,GAAA,EAAA3S,CAAA+jD,EACG/4B,EAAQtiB,EAAMA,OADjB1I,OAAA2S,GAAA,EAAA3S,CAAA+jD,EAAA,QAAA/jD,OAAA0Q,GAAA,EAAA1Q,CAAA,GAGOw3B,GAHPkT,EAAA,GAAA1qC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAIK3f,EAAYriB,GAJjB1I,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,WAKIxa,GALJlwB,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,cAMIxE,GANJlmC,OAAA2S,GAAA,EAAA3S,CAAA0qC,EAAA,gBAOIR,GAPJQ,KAAAqZ,KAjIAlhD,EAAKM,MAAQ,GACbN,EAAKioB,qBAAuBjoB,EAAKioB,qBAAqBtT,KAA1BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC5BA,EAAKgoC,sBAAwBhoC,EAAKgoC,sBAAsBrzB,KAA3BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KAC7BA,EAAK2nD,yBAA2B3nD,EAAK2nD,yBAAyBhzC,KAA9BxX,OAAAyX,GAAA,EAAAzX,QAAAyX,GAAA,EAAAzX,CAAA6C,KALfA,mFASjBE,KAAK+d,iBACL/d,KAAKswC,sDAqIE,IAAAhmC,EACiBtK,KAAKsC,MAArBtD,EADDsL,EACCtL,GAAIyF,EADL6F,EACK7F,QADL9C,EAKH3B,KAAKI,MAFPq0B,EAHK9yB,EAGL8yB,MACA0R,EAJKxkC,EAILwkC,SAEF,OACE5iC,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cACXnD,EAAK,SAAW,QADnB,UAGAuE,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBACXnD,EAAK,aAAe,WADvB,mCAMJuE,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACJ4rB,EAGC5iC,EAAA1B,EAAAC,cAAC+lD,GAAD5qD,OAAAuP,OAAA,GACMioB,EADN,CAEEvjB,SAAUlR,KAAKkQ,aACfyU,OAAQ3kB,KAAK6nB,aACb5a,cAAewnB,EACfhwB,QAASA,EACT0hC,SAAUA,EACVhhB,gBAAiBnlB,KAAK+nB,qBACtBqe,iBAAkBpmC,KAAK8nC,sBACvB2f,yBAA0BznD,KAAKynD,yBAC/B7nC,oBAAkB,KAZnBrc,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,yBAtKgBY,iBEhB3B+kD,eAKJ,SAAAA,EAAYxlD,GAAO,IAAAxC,EAAA,OAAA7C,OAAAiH,EAAA,EAAAjH,CAAA+C,KAAA8nD,IACjBhoD,EAAA7C,OAAAkH,EAAA,EAAAlH,CAAA+C,KAAA/C,OAAAmH,EAAA,EAAAnH,CAAA6qD,GAAA3nD,KAAAH,KAAMsC,KA2DRipB,YAAc,SAACzY,EAAMiH,GAA2B,IAAjBmE,EAAiBpR,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAP,GACvChN,EAAKmB,SAAS,CACZZ,SAAS,EACTyS,OACAiH,WACAmE,YAEF6pC,aAAkB,CAChB3pC,SAAU,CACRtL,OACAiH,WACAmE,WAEFlO,UAAW,SAACoO,GACVte,EAAKmB,SAAS,CACZZ,SAAS,EACTuZ,MAAOwE,EAASxE,MAChBI,gBAAiBoE,EAASpE,mBAG9BvY,QAAS,WACP3B,EAAKmB,SAAS,CAAE2Y,MAAO,GAAIvZ,SAAS,IACpCjB,aAAmB,oDAlFNU,EAuFnBie,eAAiB,WACfje,EAAKmB,SAAS,CACZZ,SAAS,IAGX2d,aAAe,CACbhO,UAAW,SAAC3T,GACVyD,EAAKmB,SAAS,CACZ+mD,WAAY3rD,EAAK2rD,WACjB3nD,SAAS,IAHQ,IAAAsB,EAKQ7B,EAAKM,MAAxB0S,EALWnR,EAKXmR,KAAMiH,EALKpY,EAKLoY,SACdja,EAAKyrB,YAAYzY,EAAMiH,IAEzBtY,QAAS,WACPrC,aAAmB,qDAtGNU,EA2GnBmoD,cAAgB,WAGd,OAFuBnoD,EAAKM,MAApB4nD,YAEa,IA9GJloD,EAiHnBooD,SAAW,SAAC7rD,GACUyD,EAAKwC,MAAjBmC,QACAG,KAAR,+BAAA7I,OAA4CM,EAAK2C,MAnHhCc,EAsHnBmT,aAAe,SAACH,GACd,GAAIA,EAAM,KAAA6L,EACsB7e,EAAKM,MAA3B2Z,EADA4E,EACA5E,SAAUmE,EADVS,EACUT,QAClBpe,EAAKyrB,YAAYzY,EAAMiH,EAAUmE,KAzHlBpe,EA6HnB8e,kBAAoB,SAAC1P,GACnB,GAAIA,EAAQ,KACF6K,EAAaja,EAAKM,MAAlB2Z,SAERja,EAAKyrB,YAAY,EAAGxR,EAApB9c,OAAA0Q,GAAA,EAAA1Q,CAAA,GAAmCiS,EAAnC,CAA2Ci5C,KAAMj5C,EAAOi5C,KAAOj5C,EAAOi5C,KAAKxiD,MAAQ,OAjIpE7F,EAsInB+e,wBAA0B,WAAM,IACtB9E,EAAaja,EAAKM,MAAlB2Z,SACRja,EAAKyrB,YAAY,EAAGxR,EAAU,KAxIbja,EA2InB+Z,eAAiB,SAAClT,GAIhB,MAHgB,CACd2U,QAASxb,EAAKwb,SAED3U,IA7If7G,EAAKM,MAAQ,CACX0S,KAAM,EACNiH,SAAU,GACVC,gBAAiB,EACjB3Z,SAAS,EACT2nD,WAAY,GACZpuC,MAAO,GACPsE,QAAS,CAAElf,GAAI,KAGjBc,EAAK6Z,QAAU,CACb,CACEhT,IAAK,KAAM9H,KAAM,IAAKwR,MAAO,OAAQ+J,QAAQ,EAAM7a,KAAM,UAE3D,CACEoH,IAAK,UAAW9H,KAAM,UAAWub,QAAQ,EAAM/J,MAAO,QAExD,CACE1J,IAAK,OACL9H,KAAM,OACNub,QAAQ,EACR7a,KAAM,SACNiZ,YAAa,CACX1C,QAAShW,EAAKmoD,gBAGlB,CACEthD,IAAK,QACL9H,KAAM,QACNub,QAAQ,EACR7a,KAAM,OACN8b,OAAQ,SAACnD,GAEP,OAAO,IAAIoE,KAAKC,eAAe,QADjB,CAAEC,UAAW,QAASa,UAAW,WACAhC,OAAO,IAAIrG,KAAKkD,EAAI0jB,UAGvE,CACEj1B,IAAK,cAAe9H,KAAM,QAASub,QAAQ,GAE7C,CACEzT,IAAK,gBAAiB9H,KAAM,iBAAkBub,QAAQ,GAExD,CACEzT,IAAK,oBAAqB9H,KAAM,qBAAsBub,QAAQ,GAEhE,CACEzT,IAAK,oBAAqB9H,KAAM,qBAAsBub,QAAQ,GAEhE,CACEzT,IAAK,gBAAiB9H,KAAM,iBAAkBub,QAAQ,IAnDzCta,mFAyDjBE,KAAK+d,kDAyFE,IAAAxd,EAAAP,KAAAuf,EAQHvf,KAAKI,MANPC,EAFKkf,EAELlf,QACAuZ,EAHK2F,EAGL3F,MACA9G,EAJKyM,EAILzM,KACAiH,EALKwF,EAKLxF,SACAC,EANKuF,EAMLvF,gBACAkE,EAPKqB,EAOLrB,QAGF,OACE3a,EAAA1B,EAAAC,cAAC2d,GAAA,EAAD,KACElc,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACEpX,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IACPhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,cAAd,6BAGJoB,EAAA1B,EAAAC,cAAC6Y,GAAA,EAAD,KACGta,EAAUkD,EAAA1B,EAAAC,cAACwY,GAAA,EAAD,CAAKC,GAAI,IAAIhX,EAAA1B,EAAAC,cAAA,MAAIK,UAAU,wBAAd,gBAEpBoB,EAAA1B,EAAAC,cAAC6d,GAAD,CACE/b,MAAM,2CACN+V,QAAS3Z,KAAK2Z,QACdC,MAAOA,EACP3G,aAAcjT,KAAKiT,aACnBH,KAAMA,EACNiH,SAAUA,EACVC,gBAAiBA,EACjBH,eAAgB,SAAAlT,GAAG,OAAIpG,EAAKsZ,eAAelT,IAC3CuK,SAAUlR,KAAK4e,kBACf9E,eAAgB9Z,KAAK6e,wBACrB5R,cAAeiR,EACf0B,oBAAkB,aAvLF7c,iBAiMjBC,eAAW8kD,IChJpBM,GAAW,SAAC9lD,GAEhB,OADsCA,EAA9B+lD,MAAS1rD,OAAUqC,IAGvBspD,GAAiB,SAAChmD,GAEtB,OAD4CA,EAApC+lD,MAAS1rD,OAAU4rD,UAIvBC,GAAQ,kBACZjlD,EAAA1B,EAAAC,cAAC2mD,EAAA,EAAD,KACEllD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,eAAeyP,UAAWkN,KAC5Cva,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,mBAAmBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC+mD,GAAD5rD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAG,SAC9EuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,wBAAwBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC+mD,GAAD5rD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAIopD,GAAS9lD,SAC7FiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,4BACLynD,OACE,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC+mD,GAAD5rD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAI6G,IAAiB7G,GAAImhB,aAAW,QAGtE5c,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,8BACLynD,OACE,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC+mD,GAAD5rD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAI6G,IAAiB7G,GAAImhB,aAAW,EAACiH,aAAW,QAGlF7jB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,kBAAkByP,UAAW+Y,KAC/CpmB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,sBAAsBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACgnD,GAAD7rD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAG,SACpFuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,2BAA2BynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACgnD,GAAD7rD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAIopD,GAAS9lD,SAEnGiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,0BAA0ByP,UAAWm4C,KACvDxlD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,8BACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACknD,GAAD/rD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAIopD,GAAS9lD,SAExDiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,2CACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACmnD,GAADhsD,OAAAuP,OAAA,GAAqBlK,EAArB,CAA4BtD,GAAG,SAElDuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,0CACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAConD,GAADjsD,OAAAuP,OAAA,GAAwBlK,EAAxB,CAA+BtD,GAAG,SAErDuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,2BAA2ByP,UAAWu4C,KAExD5lD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,mCAAmCyP,UAAWw4C,KAChE7lD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,uBAAuByP,UAAWy4C,KACpD9lD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,+BACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACwnD,GAADrsD,OAAAuP,OAAA,GAAwBlK,EAAxB,CAA+Bi7B,SAAU6qB,GAAS9lD,SAErEiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,yCACLynD,OACE,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACynD,GAADtsD,OAAAuP,OAAA,GAAqBlK,EAArB,CAA4Bi7B,SAAU6qB,GAAS9lD,GAAQtD,GAAIspD,GAAehmD,SAIvFiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,eAAeyP,UAAWuqB,KAC5C53B,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,mBAAmBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC0nD,GAADvsD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAG,SAC9EuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,wBAAwBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC0nD,GAADvsD,OAAAuP,OAAA,GAAclK,EAAd,CAAqBtD,GAAIopD,GAAS9lD,SAE7FiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,qCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC2nD,GAADxsD,OAAAuP,OAAA,GAAqBlK,EAArB,CAA4BtD,GAAIopD,GAAS9lD,SAE5DiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,6CACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC4nD,GAADzsD,OAAAuP,OAAA,GAA6BlK,EAA7B,CAAoCtD,GAAIopD,GAAS9lD,SAGpEiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,mCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC6nD,GAAD1sD,OAAAuP,OAAA,GAAmBlK,EAAnB,CAA0BtD,GAAIopD,GAAS9lD,SAG1DiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,mCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAConD,GAADjsD,OAAAuP,OAAA,GAAwBlK,EAAxB,CAA+BtD,GAAIopD,GAAS9lD,SAE/DiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOvnD,KAAK,aAAayP,UAAWg5C,KACpCrmD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOvnD,KAAK,aAAayP,UAAWi5C,KACpCtmD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,0BAA0ByP,UAAWk5C,KACvDvmD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,8BAA8BynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACioD,GAAD9sD,OAAAuP,OAAA,GAAwBlK,EAAxB,CAA+BtD,GAAG,SACnGuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,mCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACioD,GAAD9sD,OAAAuP,OAAA,GAAwBlK,EAAxB,CAA+BtD,GAAIopD,GAAS9lD,SAE/DiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,kBAAkByP,UAAWo5C,KAC/CzmD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,sBAAsBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACmoD,GAADhtD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAG,SACpFuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,2BAA2BynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACmoD,GAADhtD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAIopD,GAAS9lD,SACnGiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,8CACLynD,OACE,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACooD,GAADjtD,OAAAuP,OAAA,GAA0BlK,EAA1B,CAAiCtD,GAAIspD,GAAehmD,GAAQkiD,UAAW4D,GAAS9lD,SAG7FiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,2DACLynD,OACE,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACqoD,GAADltD,OAAAuP,OAAA,GAAiBlK,EAAjB,CAAwBtD,GAAIspD,GAAehmD,GAAQkiD,UAAW4D,GAAS9lD,SAGpFiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,oCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACsoD,GAADntD,OAAAuP,OAAA,GAA2BlK,EAA3B,CAAkCtD,GAAIopD,GAAS9lD,SAGlEiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,gBAAgByP,UAAWy5C,KAC7C9mD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,oBAAoBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACwoD,GAADrtD,OAAAuP,OAAA,GAAelK,EAAf,CAAsBtD,GAAG,SAChFuE,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,yBAAyBynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAACwoD,GAADrtD,OAAAuP,OAAA,GAAelK,EAAf,CAAsBtD,GAAIopD,GAAS9lD,SAS/FiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,4BAA4ByP,UAAW25C,KACzDhnD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,2BAA2ByP,UAAW45C,KACxDjnD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,+BACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC2oD,GAAD,CAAwBzrD,GAAIopD,GAAS9lD,QAExDiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,6BAA6ByP,UAAW85C,KAC1DnnD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,yBAAyByP,UAAW+5C,KACtDpnD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,6CACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC8oD,GAAD3tD,OAAAuP,OAAA,GAA2BlK,EAA3B,CAAkCtD,GAAIopD,GAAS9lD,SAElEiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CACEC,OAAK,EACLxnD,KAAK,yCACLynD,OAAQ,SAAAtmD,GAAK,OAAIiB,EAAA1B,EAAAC,cAAC8oD,GAA0BtoD,MAE9CiB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,sCAAsCyP,UAAWi6C,KACnEtnD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,mBAAmByP,UAAWk3C,UAIpBjiD,IAAxBC,8BAAiB,MAEnBglD,GAAgB,SAAAxoD,GAAK,OACzBiB,EAAA1B,EAAAC,cAAA,WACEyB,EAAA1B,EAAAC,cAACipD,EAAWjlD,IACZvC,EAAA1B,EAAAC,cAAA,OAAKK,UAAU,mBACboB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOvnD,KAAK,SAASyP,UAAW43C,MAElCjlD,EAAA1B,EAAAC,cAACkpD,EAAD/tD,OAAAuP,OAAA,GAAelK,EAAf,CAAsBwD,eAAgBA,QAgB3BmlD,IAZA,SAAA3oD,GAAK,OAClBiB,EAAA1B,EAAAC,cAACopD,EAAgB5oD,EACfiB,EAAA1B,EAAAC,cAAA,YACEyB,EAAA1B,EAAAC,cAAC2mD,EAAA,EAAWnmD,EACViB,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,IAAIynD,OAAQ,SAAAuC,GAAU,OAAI5nD,EAAA1B,EAAAC,cAACspD,GAAUD,MACvD5nD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,UAAUynD,OAAQ,SAAAuC,GAAU,OAAI5nD,EAAA1B,EAAAC,cAACspD,GAAUD,MAC7D5nD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAAD,CAAOC,OAAK,EAACxnD,KAAK,gBAAgBynD,OAAQ,SAAAuC,GAAU,OAAI5nD,EAAA1B,EAAAC,cAACupD,GAAeF,MACxE5nD,EAAA1B,EAAAC,cAAC4mD,EAAA,EAADzrD,OAAAuP,OAAA,GAAWlK,EAAX,CAAkBnB,KAAK,IAAIyP,UAAWk6C,kFC1O9C7vD,EAAAojB,EAAAljB,GAAA,IAAAmwD,EAAArwD,EAAA,GAAAswD,EAAAtwD,EAAAuwD,EAAAF,GAAAG,EAAAxwD,EAAA,IAAAywD,EAAAzwD,EAAA,KAIA2tD,iBACE2C,EAAA1pD,EAAAC,cAAC4pD,EAAA,EAAD,MACAxgC,SAASqzB,eAAe,gECN1BtjD,EAAAC,EAAAC,EAAA,sBAAAwwD,IAAA1wD,EAAAC,EAAAC,EAAA,sBAAAywD,IAAA3wD,EAAAC,EAAAC,EAAA,sBAAA0wD,IAAA5wD,EAAAC,EAAAC,EAAA,sBAAA2wD,IAAA7wD,EAAAC,EAAAC,EAAA,sBAAA4wD,IAAA9wD,EAAAC,EAAAC,EAAA,sBAAA6wD,IAAA/wD,EAAAC,EAAAC,EAAA,sBAAA8wD,IAAAhxD,EAAAC,EAAAC,EAAA,sBAAA+wD,IAAAjxD,EAAAC,EAAAC,EAAA,sBAAA6tB,IAAA/tB,EAAAC,EAAAC,EAAA,sBAAAgsB,IAAAlsB,EAAAC,EAAAC,EAAA,sBAAAysB,IAAA3sB,EAAAC,EAAAC,EAAA,sBAAAosB,IAAAtsB,EAAAC,EAAAC,EAAA,sBAAAmjB,IAAArjB,EAAAC,EAAAC,EAAA,sBAAA2U,IAAA7U,EAAAC,EAAAC,EAAA,sBAAA6iB,IAAA,IAAAmuC,EAAAlxD,EAAA,IAAAmxD,EAAAnxD,EAAA,IAKa0wD,EAAkB,kBAClBC,EAAiB,iBAEjBC,EAAqB,qBACrBC,EAAqB,qBACrBC,EAAoB,oBAEpBC,EAAoB,oBACpBC,EAAoB,oBACpBC,EAAmB,mBAYzB,SAASljC,EAAUhqB,EAAIoc,GAC5B,OAAOnd,YAAM,GAAAlC,OAAIX,IAAJ,KAAAW,OAAgBiD,IAC1BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAIlD,SAASspB,EAASxe,EAAMyS,GAC7B,OAAOtc,YAAO,GAAA/C,OAAIX,KAAYuN,GAC3B/K,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAIlD,SAAS+pB,EAAT3rB,GAEJ,IADD+C,EACC/C,EADD+C,GAAIT,EACHtC,EADGsC,MAAOyR,EACV/T,EADU+T,UAAWvO,EACrBxF,EADqBwF,QAEtB,OAAOnD,YAAa,GAAAvC,OAAIX,IAAJ,KAAAW,OAAgBiD,EAAhB,UAA4BT,GAC7CX,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAKb,OAFImS,GAAWA,EAAUwZ,GAElBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAIpB,SAAS0pB,EAAT7Y,GAAgD,IAA1B1P,EAA0B0P,EAA1B1P,GAAIgR,EAAsBtB,EAAtBsB,UAAWvO,EAAWiN,EAAXjN,QAC1C,OAAOrD,YAAW,GAAArC,OAAIX,IAAJ,KAAAW,OAAgBiD,EAAhB,WACfpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAKb,OAFImS,GAAWA,EAAUwZ,GAElBA,IAERC,MAAM,SAAC5rB,GACF4D,GAASA,EAAQ5D,KAIpB,SAASygB,EAAWtf,EAAIoc,GAC7B,OAAOnc,YAAS,GAAAlD,OAAIX,IAAJ,KAAAW,OAAgBiD,IAC7BpB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAIlD,SAASiS,EAAkBpG,EAAO0R,GACvC,OAAOnd,YAAM,GAAAlC,OAAIX,IAAJ,oBAAAW,OAA+B2N,IACzC9L,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIud,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUwZ,GAChDA,IAERC,MAAM,SAAC5rB,GACFud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,KAIlD,SAASmgB,EAAerhB,GAC7B,OAAOsB,YAAM,GAAAlC,OAAIX,IAAJ,eACVwC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,2WCzH7CwuD,EAAqB,IAAIC,IAAgB/vD,KAAKC,MAAMC,aAAaC,QAAQ,iBAGlE6vD,EAAkB,kBAClBC,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAe,eACfC,EAAS,SAGTC,EAAe,iBAAO,CAAErtD,KAAMitD,IAC9BK,EAAe,SAAAlkD,GAAI,MAAK,CAAEpJ,KAAMktD,EAAe1+B,QAASplB,IACxDmkD,EAAc,SAAAjvD,GAAK,MAAK,CAAE0B,KAAMmtD,EAAc3+B,QAASlwB,IAK9DkvD,EAAe,kBAAMxwD,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,IAExEswD,EAAiB,SAACrkD,GACtB,IAAMskD,EAAShwD,OAAAiwD,EAAA,EAAAjwD,CAAA,GAAQ0L,EAAR,CAAc3D,iBAAiB,IAG9C,OAFAvI,aAAamJ,QAAQ,cAAerJ,KAAKa,UAAU6vD,IACnDZ,EAAmBjW,KAAK6W,GACjBA,GAGItoD,EAAS,kBAAM,SAACpD,GAE3B9E,aAAaqB,WAAW,eACxBuuD,EAAmBjW,KAAK,MACxB70C,EAhBkC,CAAEhC,KAAMotD,IAiB1CprD,EAhB8B,CAAEhC,KAPC,sBAO0BoG,MAAO,MAmB7D,SAAS6L,EAAMnV,EAAM+e,GAC1B,OAAO,SAAC7Z,GACNA,EAASqrD,KACT9tD,YAAO,GAAA/C,OAAIX,IAAJ,UAAsBiB,GAC1BuB,KAAK,SAACuvD,GACL,GAAIA,EAAStvD,MACX,MAAOsvD,EAAStvD,MAUlB,OAPAmvD,EAAeG,GACXA,EAAS36C,YAAc4I,GAAYA,EAAS1J,aAC9C0J,EAAS1J,aAAay7C,GACb/xC,GAAYA,EAASpL,YAC9BzO,EAASsrD,EAAaE,MACtB3xC,EAASpL,UAAUm9C,IAEdA,IAER1jC,MAAM,SAAC5rB,GACN0D,EAASurD,EAAYjvD,IACjBud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MAMpD,SAAS2U,EAAWtD,EAAQkM,GACjC,OAAO,SAAC7Z,GACNA,EAASqrD,KACT,IAAMtwD,EAAcC,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GACjEL,EAAIY,OAAAiwD,EAAA,EAAAjwD,CAAA,GAAQiS,EAAR,CAAgBxF,MAAOpN,EAAYoN,QAC7C5K,YAAO,GAAA/C,OAAIX,IAAJ,qBAAiCiB,GACrCuB,KAAK,SAACuvD,GACL,GAAIA,EAAStvD,MACX,MAAOsvD,EAAStvD,MAKlB,OAHAmvD,EAAeG,GACf5rD,EAASsrD,EAAaE,MAClB3xC,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUm9C,GAChDA,IAER1jC,MAAM,SAAC5rB,GACN0D,EAASurD,EAAYjvD,IACjBud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,MAKpD,SAAS2D,EAAgB4Z,GAC9B,OAAO,SAAC7Z,GAENtD,YAAM,GAAAlC,OAAIX,IAAJ,sBACHwC,KAAK,SAACuvD,GACL,GAAIA,EAAStvD,MACX,MAAOsvD,EAAStvD,MAIlB,OAFA0D,EAASsrD,EAAaE,MAClB3xC,GAAYA,EAASpL,WAAWoL,EAASpL,UAAUm9C,GAChDA,IAER1jC,MAAM,SAAC5rB,GACN0D,EAASoD,EAAO9G,IACZud,GAAYA,EAAS3Z,SAAS2Z,EAAS3Z,QAAQ5D,wCCrG3D5C,EAAAC,EAAAC,EAAA,sBAAAiyD,IAAAnyD,EAAAC,EAAAC,EAAA,sBAAAkyD,IAAApyD,EAAAC,EAAAC,EAAA,sBAAAmyD,IAAAryD,EAAAC,EAAAC,EAAA,sBAAAmI,IAAArI,EAAAC,EAAAC,EAAA,sBAAAkI,IAAApI,EAAAC,EAAAC,EAAA,sBAAAuJ,IAAO,IAAM0oD,EAA4B,4BAC5BC,EAAmC,mCACnCC,EAAsB,sBAE5B,SAAShqD,IACd,MAAO,CACL/D,KAAM6tD,GAIH,SAAS/pD,IACd,MAAO,CACL9D,KAAM8tD,GAIH,SAAS3oD,EAAiB2F,GAC/B,MAAO,CACL9K,KAAM+tD,EACN3nD,MAAO0E,qCCnBXpP,EAAAC,EAAAC,EAAA,sBAAAoyD,IAAAtyD,EAAAC,EAAAC,EAAA,sBAAAqyD,IAAAvyD,EAAAC,EAAAC,EAAA,sBAAAsyD,IAAAxyD,EAAAC,EAAAC,EAAA,sBAAAgjB,IAAAljB,EAAAC,EAAAC,EAAA,sBAAAi6B,IAAAn6B,EAAAC,EAAAC,EAAA,sBAAA4sD,IAAA9sD,EAAAC,EAAAC,EAAA,sBAAA6iB,IAAA,IAAAmuC,EAAAlxD,EAAA,IAAAmxD,EAAAnxD,EAAA,IAGasyD,EAAsB,sBACtBC,EAAsB,sBACtBC,EAAqB,qBAM3B,SAAStvC,EAAWxhB,GACzB,IAAMyhB,EAAWzhB,GAAUA,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IACzB,OAAOjb,YAAO,GAAA/C,OAAIX,IAAJ,QAAoBgjB,GAC/BxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAI5C,SAASu3B,EAAcz4B,GAC5B,OAAOsB,YAAM,GAAAlC,OAAIX,IAAJ,SACVwC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAI5C,SAASkqD,EAAkBprD,GAChC,IAAMyhB,EAAWzhB,GAAUA,EAAOyhB,SAC9BzhB,EAAOyhB,SACP,CAAEtL,KAAM,EAAGiH,SAAU,IACzB,OAAOjb,YAAO,GAAA/C,OAAIX,IAAJ,iBAA6BgjB,GACxCxgB,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,KAI5C,SAASmgB,EAAerhB,GAC7B,OAAOsB,YAAM,GAAAlC,OAAIX,IAAJ,eACVwC,KAAK,SAAC4rB,GACL,GAAIA,EAAI3rB,MACN,MAAO2rB,EAAI3rB,MAGb,OADIlB,GAAUA,EAAOqT,WAAWrT,EAAOqT,UAAUwZ,GAC1CA,IAERC,MAAM,SAAC5rB,GACFlB,GAAUA,EAAO8E,SAAS9E,EAAO8E,QAAQ5D,iWChE7C6vD,EAAe,CACnBvrD,UAAW,cAGEwrD,EAAA,WAAwC,IAA9BvtD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtB4gD,EAC/B,QADqD5gD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,GACtCjY,MACb,KAAKquD,IACH,MAAO,CAAEzrD,UAAW,cACtB,KAAK0rD,IACH,MAAO,CAAE1rD,UAAW,eACtB,QACE,OAAO/B,mBCVPuI,EAAOpM,KAAKC,MAAMC,aAAaC,QAAQ,iBAAmB,GAC1DuJ,EAAaM,OAAO9J,aAAaC,QAAQ,eAAiB,KAC5DoxD,EAAc,EACdnlD,EAAKK,SACP8kD,EAAc,EACLnlD,EAAKG,WACdglD,EAAc,EACLnlD,EAAKI,cACd+kD,EAAc,EACLnlD,EAAKI,gBACd+kD,EAAc,GAGhB,IAAMJ,EAAe,CACnBxlD,MAAM,EACN3D,UAAU,EACV0B,WAAY0C,EAAK3D,iBAAkBiB,GAA4B6nD,GAGlDC,EAAA,WAAwC,IAA9B3tD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtB4gD,EAAcM,EAAQlhD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACrD,OAAQw2C,EAAOzuD,MACb,KAAK6tD,IACH,OAAOnwD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBmE,UAAWnE,EAAMmE,WACtC,KAAK8oD,IACH,OAAOpwD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmB8H,MAAO9H,EAAM8H,OAClC,KAAKolD,IAEH,OADA7wD,aAAamJ,QAAQ,aAAcooD,EAAOroD,OACnC1I,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmB6F,WAAY+nD,EAAOroD,QACxC,QACE,OAAOvF,ICnCA6tD,EAA0B,0BAC1BC,EAA0B,0BCIvC,IAAMR,EAAe,CACnBjkD,UAAW,OAGE0kD,EAAA,WAAwC,IAA9B/tD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtB4gD,EAC/B,QADqD5gD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,GACtCjY,MACb,KAAK0uD,EACH,MAAO,CAAExkD,UAAW,OACtB,KAAKykD,EACH,MAAO,CAAEzkD,UAAW,OACtB,QACE,OAAOrJ,YCRPstD,EAAe,CACnBrtD,SAAS,EACT2E,iBAAiB,EACjB0E,MAAO,kBACP8H,MAAO,CACL9H,MAAO,oBAII0kD,EAAA,WAAwC,IAA9BhuD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtB4gD,EAAcM,EAAQlhD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACrD,OAAQw2C,EAAOzuD,MACb,KAAKgtD,IACH,OAAOtvD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAU4tD,EAAOjgC,SAC/B,KAAKy+B,IACH,OAAOvvD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,IAC9B,KAAKosD,IACH,OAAOxvD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAU4tD,EAAOjgC,QAA7B,CAAsC1tB,SAAS,IACjD,KAAKqsD,IAEL,KAAKC,IACH,OAAO1vD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKywD,GACd,QACE,OAAOttD,YClBPiuD,EAAe,CACnBhuD,SAAS,GAUIiuD,EAAA,WAAwC,IAA9BluD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtBuhD,EAAcL,EAAQlhD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACrD,OAAQw2C,EAAOzuD,MACb,KAAKosD,IACH,OAAO1uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKoxD,GACd,KAAKzC,IACH,OAAO3uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAU4tD,EAAOjgC,SAE/B,KAAK89B,IACH,OAAO5uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,IAC9B,KAAKyrD,IACH,OAAO7uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,GAAU2tD,EAAOjgC,SAC/C,KAAKg+B,IACH,OAAO9uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,EAAOxC,MAAOmwD,EAAOjgC,UAEnD,KAAKi+B,IACH,OAAO/uD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,IAC9B,KAAK4rD,IACH,OAAOhvD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,GAAU2tD,EAAOjgC,SAC/C,KAAKm+B,IACH,OAAOjvD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,EAAOxC,MAAOmwD,EAAOjgC,UACnD,QACE,OAAO3tB,YCtCPiuD,EAAe,CACnBhuD,SAAS,EACTw0B,MAAO,IAGM05B,EAAA,WAAwC,IAA9BnuD,EAA8B0M,UAAAzG,OAAA,QAAAmR,IAAA1K,UAAA,GAAAA,UAAA,GAAtBuhD,EAAcL,EAAQlhD,UAAAzG,OAAA,EAAAyG,UAAA,QAAA0K,EACrD,OAAQw2C,EAAOzuD,MACb,KAAKguD,IACH,OAAOtwD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,IAC9B,KAAKmtD,IACH,OAAOvwD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,EAAOw0B,MAAOm5B,EAAOjgC,UACnD,KAAK0/B,IACH,OAAOxwD,OAAA0Q,EAAA,EAAA1Q,CAAA,GAAKmD,EAAZ,CAAmBC,SAAS,EAAOxC,MAAOmwD,EAAOjgC,UACnD,QACE,OAAO3tB,ICAPkB,EAAQktD,sBAVM,SAACpuD,EAAO4tD,GAC1B,IAAM71B,EAAW61B,EAAOzuD,OAASotD,IAC7B,CACA1hD,MAAO7K,EAAM6K,MACbrB,QAASxJ,EAAMwJ,QACfsB,IAAK9K,EAAM8K,KACT9K,EACN,OAAOquD,0BAAgBC,EAAhBD,CAA0Bt2B,EAAU61B,IAK3C,GAEAW,8BAAoBC,0BAAgBC,OAGvBvtD,uCC3BfrG,EAAAC,EAAAC,EAAA,sBAAAyyD,IAAA3yD,EAAAC,EAAAC,EAAA,sBAAA0yD,IAAA5yD,EAAAC,EAAAC,EAAA,sBAAAgP,IAAAlP,EAAAC,EAAAC,EAAA,sBAAAiP,IAAO,IAAMwjD,EAAuB,uBACvBC,EAAwB,wBAE9B,SAAS1jD,IACd,MAAO,CACL5K,KAAMquD,GAIH,SAASxjD,IACd,MAAO,CACL7K,KAAMsuD","file":"static/js/main.36559a13.chunk.js","sourcesContent":["export const urlBase = '/api';\r\nexport const urlUsers = `${urlBase}/usuarios`;\r\nexport const urlStudents = `${urlBase}/students`;\r\nexport const urlAssistances = `${urlBase}/assistances`;\r\nexport const urlStudentSubjects = `${urlBase}/studentsubjects`;\r\nexport const urlExams = `${urlBase}/exams`;\r\nexport const urlPeriodos = `${urlBase}/Periodos`;\r\nexport const urlMateriasPeriodo = `${urlBase}/MateriasPeriodo`;\r\nexport const urlPlanning = `${urlBase}/planning`;\r\nexport const urlInscripcionExamen = `${urlBase}/inscripcionexamen`;\r\nexport const urlFacultades = `${urlBase}/facultades`;\r\nexport const urlCarreras = `${urlBase}/carreras`;\r\nexport const urlMaterias = `${urlBase}/materias`;\r\nexport const urlMallas = `${urlBase}/mallas`;\r\nexport const urlProfessors = `${urlBase}/Professors`;\r\n","const authParams = ({\r\n method,\r\n contentType,\r\n data = null,\r\n}) => {\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n const params = {\r\n method,\r\n };\r\n\r\n if (currentUser) {\r\n params.headers = {\r\n Authorization: `Bearer ${currentUser.token}`,\r\n };\r\n }\r\n\r\n if (!contentType && data) {\r\n params.body = data;\r\n params.headers.redirect = 'follow';\r\n }\r\n\r\n if (contentType === 'application/json' && data) {\r\n params.headers = {\r\n ...params.headers,\r\n 'Content-Type': contentType,\r\n };\r\n\r\n params.body = JSON.stringify(data);\r\n }\r\n\r\n return params;\r\n};\r\n\r\nconst checkResults = (result) => {\r\n if (result.ok) {\r\n return result.status === 204 ? Promise.resolve(result) : result.json();\r\n }\r\n\r\n if (result.status === 400) {\r\n return result.json().then((error) => {\r\n const ex = {\r\n ...error,\r\n status: result.status,\r\n };\r\n\r\n throw ex;\r\n });\r\n }\r\n\r\n if (result.status === 401) {\r\n localStorage.removeItem('currentUser');\r\n return Promise.resolve(result);\r\n }\r\n\r\n throw result;\r\n};\r\n\r\nconst checkDownloadResults = (result) => {\r\n if (result.ok) {\r\n return result.blob();\r\n }\r\n\r\n if (result.status === 400) {\r\n return result.json().then((error) => {\r\n throw error;\r\n });\r\n }\r\n\r\n throw result;\r\n};\r\n\r\nexport const apiGet = url => fetch(url, authParams({\r\n method: 'GET',\r\n contentType: 'application/json',\r\n})).then(checkResults);\r\n\r\nexport const apiDownload = url => fetch(url, authParams({\r\n method: 'GET',\r\n contentType: 'application/json',\r\n})).then(checkDownloadResults);\r\n\r\nexport const apiDownloadPost = (url, data) => fetch(url, authParams({\r\n method: 'POST',\r\n contentType: 'application/json',\r\n data,\r\n})).then(checkDownloadResults);\r\n\r\nexport const apiUploadPost = (url, files) => {\r\n const data = new FormData();\r\n [...files].forEach(file => data.append(file.name, file));\r\n\r\n return fetch(url, authParams({\r\n method: 'POST',\r\n data,\r\n }))\r\n .then(checkDownloadResults);\r\n};\r\n\r\nexport const apiPost = (url, data) => fetch(url, authParams({\r\n method: 'POST',\r\n contentType: 'application/json',\r\n data,\r\n})).then(checkResults);\r\n\r\nexport const apiPut = (url, id, data) => fetch(`${url}/${id}`, authParams({\r\n method: 'PUT',\r\n contentType: 'application/json',\r\n data,\r\n})).then(checkResults);\r\n\r\nexport const apiDelete = url => fetch(url, authParams({\r\n method: 'DELETE',\r\n contentType: 'application/json',\r\n})).then(checkResults);\r\n","import { NotificationManager } from 'react-notifications';\r\n\r\nexport const NOTIFY_INFO = 'info';\r\nexport const NOTIFY_SUCCESS = 'success';\r\nexport const NOTIFY_WARNING = 'warning';\r\nexport const NOTIFY_ERROR = 'error';\r\n/**\r\n * Creates a notification\r\n */\r\nexport const createNotification = (type, text) => {\r\n switch (type) {\r\n case NOTIFY_INFO:\r\n NotificationManager.info('Info', text || '');\r\n break;\r\n case NOTIFY_SUCCESS:\r\n NotificationManager.success('', text || '');\r\n break;\r\n case NOTIFY_WARNING:\r\n NotificationManager.warning('Advertencia', text || '');\r\n break;\r\n case NOTIFY_ERROR:\r\n NotificationManager.error('Error', text || 'Ha ocurrido un error, por favor intenta de nuevo.');\r\n break;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nexport const createInfoMessage = text => createNotification(NOTIFY_INFO, text);\r\nexport const createSuccessMessage = text => createNotification(NOTIFY_SUCCESS, text);\r\nexport const createWarningMessage = text => createNotification(NOTIFY_WARNING, text);\r\nexport const createErrorMessage = text => createNotification(NOTIFY_ERROR, text);\r\n","import React, { Component, Fragment } from 'react';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { hot } from 'react-hot-loader';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { NotificationContainer } from 'react-notifications';\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport 'react-notifications/lib/notifications.css';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css';\r\nimport 'react-data-grid/dist/react-data-grid.css';\r\nimport 'font-awesome/css/font-awesome.css';\r\nimport '../../scss/app.scss';\r\nimport Router from './Router';\r\nimport store from './store';\r\nimport ScrollToTop from './ScrollToTop';\r\nimport { verifyUserToken } from '../../redux/actions/loginActions';\r\nimport { createSuccessMessage } from '../../helpers/notification';\r\n\r\nclass App extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n loading: true,\r\n loaded: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n caches.keys().then((names) => {\r\n names.forEach((name) => {\r\n caches.delete(name);\r\n });\r\n });\r\n\r\n console.log('Complete Cache Cleared');\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n this.setState({ loading: false });\r\n setTimeout(() => this.setState({ loaded: true }), 500);\r\n });\r\n const { location: { pathname: path } } = window;\r\n if (!(path === '' || path === '/' || path === '/log_in')) {\r\n store.dispatch(verifyUserToken({\r\n onError: () => {\r\n createSuccessMessage('Error');\r\n window.location.href = ('/');\r\n },\r\n }));\r\n }\r\n }\r\n\r\n render() {\r\n const { loaded, loading } = this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n {!loaded\r\n && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\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 hot(module)(App);\r\n","import { PureComponent } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nclass ScrollToTop extends PureComponent {\n static propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string,\n }).isRequired,\n children: PropTypes.element.isRequired,\n };\n\n componentDidUpdate(prevProps) {\n const { location } = this.props;\n if (location.pathname !== prevProps.location.pathname) {\n window.scrollTo(0, 0);\n }\n }\n\n render() {\n const { children } = this.props;\n return children;\n }\n}\n\nexport default withRouter(ScrollToTop);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nconst icon = `${process.env.PUBLIC_URL}/img/burger.svg`;\n\nclass TopbarSidebarButton extends PureComponent {\n static propTypes = {\n changeMobileSidebarVisibility: PropTypes.func.isRequired,\n changeSidebarVisibility: PropTypes.func.isRequired,\n };\n\n render() {\n const { changeMobileSidebarVisibility, changeSidebarVisibility } = this.props;\n\n return (\n
\n \n \n
\n );\n }\n}\n\nexport default TopbarSidebarButton;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nexport default class TopbarMenuLinks extends PureComponent {\n static propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n path: PropTypes.string.isRequired,\n };\n\n render() {\n const { title, icon, path } = this.props;\n\n return (\n \n \n

{title}

\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class TopbarMenuButton extends PureComponent {\r\n static propTypes = {\r\n title: PropTypes.string.isRequired,\r\n icon: PropTypes.string.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n };\r\n\r\n render() {\r\n const { title, icon, onClick } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport DownIcon from 'mdi-react/ChevronDownIcon';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router';\r\nimport { Collapse } from 'reactstrap';\r\nimport TopbarMenuLink from './TopbarMenuLink';\r\nimport TopbarMenuButton from './TopbarMenuButton';\r\nimport store from '../../App/store';\r\nimport { logout } from '../../../redux/actions/loginActions';\r\nimport { changeUserViewAs } from '../../../redux/actions/sidebarActions';\r\n\r\nconst Ava = `${process.env.PUBLIC_URL}/img/avatar.png`;\r\n\r\nclass TopbarProfile extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n collapse: false,\r\n };\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({ collapse: !prevState.collapse }));\r\n };\r\n\r\n onLogoutClick = () => {\r\n const { history } = this.props;\r\n store.dispatch(changeUserViewAs(0));\r\n store.dispatch(logout());\r\n history.push('/');\r\n };\r\n\r\n render() {\r\n const { collapse } = this.state;\r\n\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n const LoggedUser = (\r\n

{currentUser.fullName}

\r\n );\r\n const AnonimousUser = (\r\n

Usuario anónimo

\r\n );\r\n\r\n return (\r\n
\r\n \r\n {collapse && \r\n \r\n
    \r\n
    \r\n {children}\r\n
    \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SidebarLink from './SidebarLink';\r\nimport SidebarCategory from './SidebarCategory';\r\n\r\nclass SidebarContent extends Component {\r\n static propTypes = {\r\n changeToDark: PropTypes.func.isRequired,\r\n changeToLight: PropTypes.func.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n viewPageAs: PropTypes.number.isRequired,\r\n };\r\n\r\n hideSidebar = () => {\r\n const { onClick } = this.props;\r\n onClick();\r\n };\r\n\r\n showAdminMenu = show => (\r\n show ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null\r\n );\r\n\r\n showStudentMenu = show => (\r\n show ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : null\r\n );\r\n\r\n showProfessorMenu = show => (\r\n show ? (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n \r\n ) : null\r\n );\r\n\r\n showReportMenu = show => (\r\n show ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : null\r\n );\r\n\r\n render() {\r\n const { changeToDark, changeToLight, viewPageAs } = this.props;\r\n const user = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n\r\n const isAdminMenu = viewPageAs === 2 || viewPageAs === 3;\r\n\r\n const isProfessorMenu = user.esProfesor\r\n && (viewPageAs === 1 || (user.esProfesor && !user.esFuncionario && !user.esAlumno && !user.esAdmin));\r\n\r\n const isStudentMenu = user.esAlumno\r\n && (viewPageAs === 0 || (user.esAlumno && !user.esFuncionario && !user.esProfesor && !user.esAdmin));\r\n\r\n const isReportMenu = isStudentMenu || isAdminMenu;\r\n\r\n return (\r\n
\r\n
    \r\n \r\n \r\n \r\n \r\n
\r\n
    \r\n {this.showAdminMenu(isAdminMenu)}\r\n {this.showStudentMenu(isStudentMenu)}\r\n {this.showProfessorMenu(isProfessorMenu)}\r\n {this.showReportMenu(isReportMenu)}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SidebarContent;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst {\r\n string, shape,\r\n} = PropTypes;\r\n\r\nexport const SidebarProps = shape({\r\n show: PropTypes.bool,\r\n collapse: PropTypes.bool,\r\n});\r\n\r\nexport const ThemeProps = shape({\r\n className: string,\r\n});\r\n\r\nexport const RTLProps = shape({\r\n direction: string,\r\n});\r\n\r\nexport const LoginProps = shape({\r\n email: string,\r\n password: string,\r\n});\r\n","import React from 'react';\r\nimport Scrollbar from 'react-smooth-scrollbar';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport SidebarContent from './SidebarContent';\r\nimport { SidebarProps } from '../../../shared/prop-types/ReducerProps';\r\n\r\nconst Sidebar = ({\r\n changeToDark, changeToLight, changeMobileSidebarVisibility, sidebar, viewPageAs,\r\n}) => {\r\n const sidebarClass = classNames({\r\n sidebar: true,\r\n 'sidebar--show': sidebar.show,\r\n 'sidebar--collapse': sidebar.collapse,\r\n });\r\n\r\n return (\r\n
\r\n
\r\n );\r\n};\r\n\r\nSidebar.propTypes = {\r\n sidebar: SidebarProps.isRequired,\r\n changeToDark: PropTypes.func.isRequired,\r\n changeToLight: PropTypes.func.isRequired,\r\n changeMobileSidebarVisibility: PropTypes.func.isRequired,\r\n viewPageAs: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default Sidebar;\r\n","import React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Topbar from './topbar/Topbar';\r\nimport Sidebar from './sidebar/Sidebar';\r\n\r\nimport { changeThemeToDark, changeThemeToLight } from '../../redux/actions/themeActions';\r\nimport {\r\n changeMobileSidebarVisibility,\r\n changeSidebarVisibility,\r\n changeUserViewAs,\r\n} from '../../redux/actions/sidebarActions';\r\nimport { SidebarProps } from '../../shared/prop-types/ReducerProps';\r\nimport { getCurrentUser } from '../../helpers/storage';\r\n\r\nclass Layout extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n sidebar: SidebarProps.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n appEnvironment: PropTypes.shape({}).isRequired,\r\n };\r\n\r\n changeSidebarVisibility = () => {\r\n const { dispatch } = this.props;\r\n dispatch(changeSidebarVisibility());\r\n };\r\n\r\n changeMobileSidebarVisibility = () => {\r\n const { dispatch } = this.props;\r\n dispatch(changeMobileSidebarVisibility());\r\n };\r\n\r\n changeToDark = () => {\r\n const { dispatch } = this.props;\r\n dispatch(changeThemeToDark());\r\n };\r\n\r\n changeToLight = () => {\r\n const { dispatch } = this.props;\r\n dispatch(changeThemeToLight());\r\n };\r\n\r\n changeUserView = (userType) => {\r\n const { dispatch, history } = this.props;\r\n dispatch(changeUserViewAs(userType));\r\n\r\n const user = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n\r\n if (!user.id) {\r\n history.push('/');\r\n return;\r\n }\r\n\r\n if (userType === 0 && user.esAlumno) {\r\n history.push('/pages/student-dashboard');\r\n return;\r\n }\r\n\r\n if (userType === 1 && user.esProfesor) {\r\n history.push('/pages/profesor-dashboard');\r\n return;\r\n }\r\n\r\n history.push('/pages');\r\n };\r\n\r\n render() {\r\n const { sidebar, appEnvironment, history } = this.props;\r\n const { viewPageAs } = sidebar;\r\n const layoutClass = classNames({\r\n layout: true,\r\n 'layout--collapse': sidebar.collapse,\r\n });\r\n\r\n const currentUser = getCurrentUser();\r\n\r\n if (!currentUser.id) {\r\n history.push('/');\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(Layout));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Bottombar = ({ publicSettings }) => {\r\n const { appName, appVersion } = publicSettings;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {appName} 2021-2024 - Build # {appVersion}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nBottombar.propTypes = {\r\n publicSettings: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default Bottombar;\r\n","import React, { PureComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { ThemeProps, RTLProps } from '../../shared/prop-types/ReducerProps';\n\nclass MainWrapper extends PureComponent {\n static propTypes = {\n theme: ThemeProps.isRequired,\n rtl: RTLProps.isRequired,\n children: PropTypes.element.isRequired,\n location: PropTypes.shape({}).isRequired,\n };\n\n render() {\n const {\n theme, children, rtl, location,\n } = this.props;\n\n const direction = location.pathname === '/' ? 'ltr' : rtl.direction;\n\n return (\n
\n
\n {children}\n
\n
\n );\n }\n}\n\nexport default withRouter(connect(state => ({\n theme: state.theme,\n rtl: state.rtl,\n}))(MainWrapper));\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React, { PureComponent } from 'react';\r\nimport CheckIcon from 'mdi-react/CheckIcon';\r\nimport CloseIcon from 'mdi-react/CloseIcon';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nclass CheckBoxField extends PureComponent {\r\n static propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n ]).isRequired,\r\n label: PropTypes.string,\r\n defaultChecked: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n className: PropTypes.string,\r\n style: PropTypes.shape({}),\r\n labelStyle: PropTypes.shape({}),\r\n color: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n label: '',\r\n defaultChecked: false,\r\n disabled: false,\r\n className: '',\r\n style: {},\r\n labelStyle: {},\r\n color: '',\r\n };\r\n\r\n componentDidMount() {\r\n // const { onChange, defaultChecked } = this.props;\r\n // onChange(defaultChecked);\r\n }\r\n\r\n render() {\r\n const {\r\n disabled,\r\n className,\r\n name,\r\n value,\r\n onChange,\r\n label,\r\n color,\r\n defaultChecked,\r\n style,\r\n labelStyle,\r\n } = this.props;\r\n\r\n const CheckboxClass = classNames({\r\n 'checkbox-btn': true,\r\n disabled,\r\n });\r\n\r\n const checked = value !== '' ? value : defaultChecked;\r\n const checkedClass = checked ? 'checkbox-btn--checked' : '';\r\n const labelClass = `${CheckboxClass} ${checkedClass} ${className ? `checkbox-btn--${className}` : ''}`;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {className === 'button'\r\n ? (\r\n \r\n \r\n \r\n \r\n ) : ''}\r\n \r\n {label}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst renderCheckBoxField = (props) => {\r\n const {\r\n input,\r\n label,\r\n defaultChecked,\r\n disabled,\r\n className,\r\n color,\r\n style,\r\n labelStyle,\r\n meta: {\r\n touched, error,\r\n },\r\n } = props;\r\n\r\n return (\r\n
\r\n \r\n {touched && error && {error}}\r\n
\r\n );\r\n};\r\n\r\nrenderCheckBoxField.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func,\r\n name: PropTypes.string,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n ]),\r\n }).isRequired,\r\n label: PropTypes.string,\r\n defaultChecked: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n style: PropTypes.shape({}),\r\n labelStyle: PropTypes.shape({}),\r\n className: PropTypes.string,\r\n color: PropTypes.string,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n }),\r\n};\r\n\r\nrenderCheckBoxField.defaultProps = {\r\n label: '',\r\n defaultChecked: false,\r\n disabled: false,\r\n style: {},\r\n labelStyle: {},\r\n className: '',\r\n color: '',\r\n meta: {},\r\n};\r\n\r\nexport default renderCheckBoxField;\r\n","import React, { PureComponent } from 'react';\r\n\r\nconst setPropsAsInitialValues = WrappedComponent => (\r\n class extends PureComponent {\r\n render() {\r\n return ;\r\n }\r\n }\r\n);\r\n\r\nexport default setPropsAsInitialValues;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst TextBox = ({\r\n input,\r\n placeholder,\r\n type,\r\n maxLength,\r\n min,\r\n max,\r\n step,\r\n meta: { touched, error },\r\n readOnly,\r\n disabled,\r\n className,\r\n style,\r\n onKeyPress,\r\n}) => {\r\n const props = {\r\n ...input,\r\n };\r\n\r\n if (type === 'number') {\r\n props.step = step;\r\n\r\n if (min) {\r\n props.min = min;\r\n }\r\n if (max) {\r\n props.max = max <= 999999999999 ? max : 999999999999;\r\n }\r\n }\r\n\r\n if (type === 'textarea') {\r\n return (\r\n
\r\n \r\n {touched && error && {error}}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {touched && error && {error}}\r\n
\r\n );\r\n};\r\n\r\nTextBox.propTypes = {\r\n input: PropTypes.shape({}).isRequired,\r\n style: PropTypes.shape({}),\r\n placeholder: PropTypes.string,\r\n type: PropTypes.string,\r\n min: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n max: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n step: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n maxLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n model: PropTypes.string,\r\n forceValidation: PropTypes.bool,\r\n readOnly: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n className: PropTypes.string,\r\n pattern: PropTypes.string,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n }),\r\n onKeyPress: PropTypes.func,\r\n};\r\n\r\nTextBox.defaultProps = {\r\n style: {},\r\n placeholder: '',\r\n meta: {},\r\n type: 'text',\r\n min: '',\r\n max: '',\r\n step: '',\r\n maxLength: '',\r\n model: '',\r\n forceValidation: false,\r\n readOnly: false,\r\n disabled: false,\r\n className: '',\r\n pattern: '',\r\n onKeyPress: () => false,\r\n};\r\n\r\nexport default TextBox;\r\n","import React from 'react';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport { Button, ButtonToolbar, Modal } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Confirm = ({\r\n title,\r\n question,\r\n yesLabel,\r\n otherLabel,\r\n noLabel,\r\n onConfirm,\r\n onCancel,\r\n onOther,\r\n color,\r\n}) => {\r\n const modalClass = 'modal-dialog--header';\r\n\r\n Confirm.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n question: PropTypes.string.isRequired,\r\n yesLabel: PropTypes.string,\r\n otherLabel: PropTypes.string,\r\n noLabel: PropTypes.string,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func,\r\n onOther: PropTypes.func.isRequired,\r\n color: PropTypes.string,\r\n };\r\n\r\n Confirm.defaultProps = {\r\n yesLabel: 'Si',\r\n noLabel: 'No, Volver',\r\n color: 'warning',\r\n onCancel: () => { },\r\n };\r\n\r\n const customUI = ({ onClose }) => (\r\n
\r\n \r\n
\r\n

{title}

\r\n
\r\n
\r\n {question}\r\n
\r\n \r\n {\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n onClose();\r\n }}\r\n >\r\n {noLabel}\r\n \r\n {\r\n otherLabel && (\r\n {\r\n onOther();\r\n onClose();\r\n }}\r\n >\r\n {otherLabel}\r\n \r\n )\r\n }\r\n {\r\n onConfirm();\r\n onClose();\r\n }}\r\n >\r\n {yesLabel}\r\n \r\n \r\n \r\n
\r\n );\r\n\r\n customUI.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n };\r\n\r\n confirmAlert({\r\n customUI,\r\n });\r\n};\r\n\r\nexport default Confirm;\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.email) {\r\n errors.email = 'Debe ingresar el correo electrónico.';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(attrs.email)) {\r\n errors.email = 'El correo electronico no es valido.';\r\n }\r\n if (!attrs.password) {\r\n errors.password = 'Debe ingresar la contraseña';\r\n }\r\n errors.isValid = Object.keys(errors).length === 0;\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport { Field, reduxForm } from 'redux-form';\r\nimport { Spinner, Button } from 'reactstrap';\r\nimport EyeIcon from 'mdi-react/EyeIcon';\r\nimport KeyVariantIcon from 'mdi-react/KeyVariantIcon';\r\nimport AccountOutlineIcon from 'mdi-react/AccountOutlineIcon';\r\nimport PropTypes from 'prop-types';\r\nimport { resetUserPassword } from '../../../redux/actions/userActions';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport { createErrorMessage, createSuccessMessage } from '../../../helpers/notification';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport validateForm from './validate';\r\n\r\nclass LogIn extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool.isRequired,\r\n pristine: PropTypes.bool.isRequired,\r\n loggingIn: PropTypes.bool.isRequired,\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n showPassword: false,\r\n email: false,\r\n resetPassword: false,\r\n };\r\n }\r\n\r\n showPassword = (e) => {\r\n e.preventDefault();\r\n this.setState(prevState => ({ showPassword: !prevState.showPassword }));\r\n }\r\n\r\n handleChange = (event) => {\r\n this.setState({ [event.target.name]: event.target.value });\r\n };\r\n\r\n resetUserPassword = (props) => {\r\n const { valid } = props;\r\n if (!valid) {\r\n return;\r\n }\r\n\r\n const { email } = this.state;\r\n\r\n Confirm({\r\n title: 'Restablecer contrase\\xF1a',\r\n question: `Est\\xE1s seguro que deseas restablecer la contrase\\xF1a de ${email}?`,\r\n yesLabel: 'Si, Restablecer',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n resetUserPassword(email, {\r\n onSuccess: () => {\r\n const msg = 'Contrase\\xF1a restablecida exitosamente.';\r\n createSuccessMessage(`${msg} Se ha enviado un correo con la contrase\\xF1a temporal.`);\r\n this.setState({ resetPassword: false });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El usuario no existe');\r\n } else {\r\n createErrorMessage('Error al intentar restablecer contrase\\xF1a');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleSubmit = (values) => {\r\n const { handleSubmit } = this.props;\r\n return handleSubmit(values);\r\n }\r\n\r\n showSpinner = () => (\r\n
\r\n \r\n
\r\n );\r\n\r\n showLoging = (showPassword, submitting, pristine) => (\r\n <>\r\n
\r\n Usuario\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Contraseña\r\n
\r\n
\r\n \r\n
\r\n \r\n this.showPassword(e)}\r\n type=\"button\"\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Ingresar\r\n \r\n this.setState({ resetPassword: true })}\r\n >\r\n ¿Olvidaste tu Contraseña?\r\n \r\n \r\n );\r\n\r\n showResetPassword = () => (\r\n <>\r\n
\r\n Usuario\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n this.resetUserPassword(this.props)}\r\n >Restablecer\r\n \r\n this.setState({ resetPassword: false })}\r\n >Cancelar\r\n \r\n \r\n );\r\n\r\n render() {\r\n const { showPassword, resetPassword } = this.state;\r\n const { submitting, pristine, loggingIn } = this.props;\r\n\r\n if (resetPassword) {\r\n return (\r\n
this.handleSubmit(values)}>\r\n {\r\n this.showResetPassword()\r\n }\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
this.handleSubmit(values)}>\r\n {\r\n !loggingIn ? this.showLoging(showPassword) : this.showSpinner(submitting, pristine)\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst LogInForm = reduxForm({\r\n form: 'LogInForm',\r\n validate: validateForm,\r\n})(LogIn);\r\n\r\nexport default setPropsAsInitialValues(LogInForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { change } from 'redux-form';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport FacebookIcon from 'mdi-react/FacebookIcon';\r\nimport GooglePlusIcon from 'mdi-react/GooglePlusIcon';\r\nimport LogInForm from './components/LogInForm';\r\nimport { login, logout } from '../../redux/actions/loginActions';\r\nimport { changeUserViewAs } from '../../redux/actions/sidebarActions';\r\nimport { createWarningMessage } from '../../helpers/notification';\r\n\r\nclass LogInContainer extends PureComponent {\r\n constructor() {\r\n super();\r\n this.state = {\r\n loggingIn: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n // const { logout: logoutAction } = this.props;\r\n // logoutAction();\r\n }\r\n\r\n handleSubmit = (values) => {\r\n this.setState(prevState => ({ loggingIn: !prevState.loggingIn }));\r\n\r\n const { login: loginAction, history, changeFormValue } = this.props;\r\n changeFormValue('LogInForm', 'password', '***************');\r\n return loginAction(values, {\r\n onSuccess: () => {\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n if (currentUser.esAlumno) {\r\n this.changeUserView(0);\r\n history.push('/pages/student-dashboard');\r\n return;\r\n }\r\n\r\n if (currentUser.esProfesor) {\r\n this.changeUserView(1);\r\n history.push('/pages/profesor-dashboard');\r\n return;\r\n }\r\n\r\n history.push('/pages/one');\r\n },\r\n onFirstLogin: () => {\r\n history.push('/first_log_in');\r\n },\r\n onError: () => {\r\n createWarningMessage('Usuario y/o contraseña incorrecto');\r\n this.setState(prevState => ({ loggingIn: !prevState.loggingIn }));\r\n },\r\n });\r\n }\r\n\r\n changeUserView = (userType) => {\r\n const { dispatch } = this.props;\r\n dispatch(changeUserViewAs(userType));\r\n }\r\n\r\n render() {\r\n const { loggingIn } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Bienvenido a\r\n Integral\r\n FIUNI\r\n \r\n

\r\n

Facultad de Ingeniería

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

Or Easily Using

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nLogInContainer.propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n login: PropTypes.func.isRequired,\r\n changeFormValue: PropTypes.func.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nconst mapStateToProps = () => ({});\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators({\r\n login,\r\n logout,\r\n changeFormValue: change,\r\n dispatch,\r\n}, dispatch);\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(LogInContainer));\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.email) {\r\n errors.email = 'Debe ingresar el correo electrónico.';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(attrs.email)) {\r\n errors.email = 'El correo electronico no es valido.';\r\n }\r\n if (!attrs.password) {\r\n errors.password = 'Debe ingresar la contraseña actual';\r\n }\r\n if (!attrs.newPassword) {\r\n errors.newPassword = 'Debe ingresar la nueva contraseña';\r\n }\r\n if (attrs.newPassword && attrs.newPasswordConfirmation === attrs.password) {\r\n errors.newPassword = 'La nueva contraseña no puede ser igual a la contraseña actual';\r\n }\r\n if (!attrs.newPasswordConfirmation) {\r\n errors.newPasswordConfirmation = 'Debe confirmar la nueva contraseña';\r\n }\r\n if (attrs.newPasswordConfirmation && attrs.newPasswordConfirmation !== attrs.newPassword) {\r\n errors.newPasswordConfirmation = 'La confirmación de la nueva contraseña no es igual a la nueva contraseña';\r\n }\r\n errors.isValid = Object.keys(errors).length === 0;\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport { Field, reduxForm } from 'redux-form';\r\nimport EyeIcon from 'mdi-react/EyeIcon';\r\nimport KeyVariantIcon from 'mdi-react/KeyVariantIcon';\r\nimport AccountOutlineIcon from 'mdi-react/AccountOutlineIcon';\r\nimport PropTypes from 'prop-types';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport validate from './validate';\r\n\r\nclass FirstLogIn extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool.isRequired,\r\n pristine: PropTypes.bool.isRequired,\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = { showPassword: false };\r\n }\r\n\r\n showPassword = (e) => {\r\n e.preventDefault();\r\n const { currentTarget: { id } } = e;\r\n this.setState(prevState => ({ [id]: !prevState[id] }));\r\n }\r\n\r\n render() {\r\n const { showPassword, showNewPassword, showNewPasswordConfirmation } = this.state;\r\n const { handleSubmit, submitting, pristine } = this.props;\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n return (\r\n
\r\n
\r\n Usuario\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Contraseña actual\r\n
\r\n
\r\n \r\n
\r\n \r\n this.showPassword(e)}\r\n type=\"button\"\r\n tabIndex={0}\r\n >\r\n \r\n
\r\n
\r\n
\r\n Contraseña nueva\r\n
\r\n
\r\n \r\n
\r\n \r\n this.showPassword(e)}\r\n type=\"button\"\r\n tabIndex={0}\r\n >\r\n \r\n
\r\n
\r\n
\r\n Confirmación de ontraseña nueva\r\n
\r\n
\r\n \r\n
\r\n \r\n this.showPassword(e)}\r\n type=\"button\"\r\n >\r\n \r\n
\r\n
\r\n Establecer nueva contraseña\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst FirstLogInForm = reduxForm({\r\n form: 'LogInForm',\r\n validate,\r\n})(FirstLogIn);\r\n\r\nexport default setPropsAsInitialValues(FirstLogInForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { reset } from 'redux-form';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { Link } from 'react-router-dom';\r\nimport FacebookIcon from 'mdi-react/FacebookIcon';\r\nimport GooglePlusIcon from 'mdi-react/GooglePlusIcon';\r\nimport FirstLogInForm from './components/FirstLogInForm';\r\nimport { firstLogin } from '../../redux/actions/loginActions';\r\nimport { createWarningMessage, createSuccessMessage } from '../../helpers/notification';\r\n\r\nclass FirstLogInContainer extends PureComponent {\r\n handleSubmit = (values) => {\r\n const { firstLogin: submit, history, resetForm } = this.props;\r\n resetForm('LogInForm');\r\n return submit(values,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Nueva contraseña establecidad con éxito');\r\n history.push('/pages/users');\r\n },\r\n onError: () => {\r\n createWarningMessage('Usuario y/o contraseña incorrecto');\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Establecer nueva contraseña

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

Or Easily Using

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nFirstLogInContainer.propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n firstLogin: PropTypes.func.isRequired,\r\n resetForm: PropTypes.func.isRequired,\r\n};\r\n\r\nconst mapStateToProps = () => ({});\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators({\r\n firstLogin,\r\n resetForm: reset,\r\n}, dispatch);\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(FirstLogInContainer);\r\n","import React from 'react';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport ChevronRightIcon from 'mdi-react/ChevronRightIcon';\r\nimport ChevronDoubleRightIcon from 'mdi-react/ChevronDoubleRightIcon';\r\n\r\nimport ChevronLeftIcon from 'mdi-react/ChevronLeftIcon';\r\nimport ChevronDoubleLeftIcon from 'mdi-react/ChevronDoubleLeftIcon';\r\n\r\nexport default class CustomPagination extends React.Component {\r\n static propTypes = {\r\n onChangePage: PropTypes.func.isRequired,\r\n itemsCount: PropTypes.number.isRequired,\r\n itemsToShow: PropTypes.number.isRequired,\r\n pageOfItems: PropTypes.number.isRequired,\r\n };\r\n\r\n setPage = (page) => {\r\n const { itemsCount, itemsToShow, onChangePage } = this.props;\r\n\r\n // calculate total pages\r\n const totalPages = Math.ceil(itemsCount / itemsToShow);\r\n\r\n if (page < 1 || page > totalPages) {\r\n return;\r\n }\r\n\r\n // call change page function in parent component\r\n onChangePage(page);\r\n };\r\n\r\n render4Pages = () => {\r\n const { itemsCount, itemsToShow, pageOfItems } = this.props;\r\n\r\n const pagesToShow = 4;\r\n const pages = [];\r\n const totalPages = Math.ceil(itemsCount / itemsToShow);\r\n\r\n if (totalPages <= pagesToShow) {\r\n for (let i = 1; i <= totalPages; i += 1) {\r\n pages.push(i);\r\n }\r\n } else {\r\n // 1 ... 5 6 7 .... 20 Paginantion impl\r\n pages.push(1);\r\n const currentPageSpace = pagesToShow === 1 || pagesToShow === totalPages ? 0 : 1;\r\n const dinamicPages = pagesToShow - 2 - currentPageSpace; // First, current and last\r\n if (totalPages / 2 < pageOfItems) {\r\n const to = Math.min(pageOfItems + Math.ceil(dinamicPages / 2), totalPages - 1);\r\n const from = Math.max(pageOfItems - (dinamicPages - (to - pageOfItems)), 2);\r\n if (from > 2) pages.push(0); // Separator\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n if (to < (totalPages - 1)) pages.push(0); // Separator\r\n } else {\r\n const from = Math.max(pageOfItems - Math.floor(dinamicPages / 2), 2);\r\n const to = Math.min(pageOfItems + (dinamicPages - (pageOfItems - from)), totalPages - 1);\r\n if (from > 2) pages.push(0); // Separator\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n if (to < (totalPages - 1)) pages.push(0); // Separator\r\n }\r\n pages.push(totalPages);\r\n }\r\n\r\n return itemsCount ? (\r\n
\r\n {(itemsCount <= 1) ? ''\r\n : (\r\n \r\n \r\n this.setPage(1)}\r\n >\r\n \r\n \r\n \r\n \r\n this.setPage(pageOfItems - 1)}\r\n >\r\n \r\n \r\n \r\n {pages.map(page => (\r\n page > 0\r\n ? (\r\n \r\n this.setPage(page)}\r\n >\r\n {page}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n ...\r\n \r\n \r\n )\r\n ))\r\n }\r\n itemsCount}>\r\n this.setPage(pageOfItems + 1)}\r\n >\r\n \r\n \r\n \r\n itemsCount}>\r\n this.setPage(Math.ceil(itemsCount / itemsToShow))}\r\n >\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n Resultado {`${(itemsToShow * (pageOfItems - 1)) + 1} - `}\r\n {\r\n itemsToShow * pageOfItems > itemsCount ? itemsCount : itemsToShow * pageOfItems\r\n }\r\n {` de ${itemsCount} registros`}\r\n \r\n
\r\n
\r\n ) :
;\r\n }\r\n\r\n render9Pages = () => {\r\n const { itemsCount, itemsToShow, pageOfItems } = this.props;\r\n\r\n const pagesToShow = 4;\r\n const pages = [];\r\n const totalPages = Math.ceil(itemsCount / itemsToShow);\r\n\r\n if (totalPages <= pagesToShow) {\r\n for (let i = 1; i <= totalPages; i += 1) {\r\n pages.push(i);\r\n }\r\n } else {\r\n // 1 ... 5 6 7 .... 20 Paginantion impl\r\n pages.push(1);\r\n const currentPageSpace = pagesToShow === 1 || pagesToShow === totalPages ? 0 : 1;\r\n const dinamicPages = pagesToShow - 2 - currentPageSpace; // First, current and last\r\n if (totalPages / 2 < pageOfItems) {\r\n const to = Math.min(pageOfItems + Math.ceil(dinamicPages / 2), totalPages - 1);\r\n const from = Math.max(pageOfItems - (dinamicPages - (to - pageOfItems)), 2);\r\n if (from > 2) pages.push(0); // Separator\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n if (to < (totalPages - 1)) pages.push(0); // Separator\r\n } else {\r\n const from = Math.max(pageOfItems - Math.floor(dinamicPages / 2), 2);\r\n const to = Math.min(pageOfItems + (dinamicPages - (pageOfItems - from)), totalPages - 1);\r\n if (from > 2) pages.push(0); // Separator\r\n for (let i = from; i <= to; i += 1) {\r\n pages.push(i);\r\n }\r\n if (to < (totalPages - 1)) pages.push(0); // Separator\r\n }\r\n pages.push(totalPages);\r\n }\r\n\r\n return itemsCount ? (\r\n
\r\n {(itemsCount <= 1) ? ''\r\n : (\r\n \r\n \r\n this.setPage(1)}\r\n >\r\n \r\n \r\n \r\n \r\n this.setPage(pageOfItems - 1)}\r\n >\r\n \r\n \r\n \r\n {pages.map(page => (\r\n page > 0\r\n ? (\r\n \r\n this.setPage(page)}\r\n >\r\n {page}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n ...\r\n \r\n \r\n )\r\n ))\r\n }\r\n itemsCount}>\r\n this.setPage(pageOfItems + 1)}\r\n >\r\n \r\n \r\n \r\n itemsCount}>\r\n this.setPage(Math.ceil(itemsCount / itemsToShow))}\r\n >\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n Resultado {`${(itemsToShow * (pageOfItems - 1)) + 1} - `}\r\n {\r\n itemsToShow * pageOfItems > itemsCount ? itemsCount : itemsToShow * pageOfItems\r\n }\r\n {` de ${itemsCount} registros`}\r\n \r\n
\r\n
\r\n ) :
;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.render4Pages()}\r\n {this.render9Pages()}\r\n \r\n );\r\n }\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport DatePicker from 'react-datepicker';\r\nimport CalendarBlankIcon from 'mdi-react/CalendarBlankIcon';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass DatePickerField extends PureComponent {\r\n static propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.instanceOf(Date),\r\n ]),\r\n placeholder: PropTypes.string,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.string,\r\n }),\r\n dateFormat: PropTypes.string,\r\n showTimeInput: PropTypes.bool,\r\n readOnly: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n value: '',\r\n placeholder: '',\r\n meta: null,\r\n dateFormat: 'dd/MM/yyyy',\r\n showTimeInput: false,\r\n readOnly: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(date) {\r\n const { onChange } = this.props;\r\n onChange(date);\r\n }\r\n\r\n render() {\r\n const {\r\n value,\r\n placeholder,\r\n meta,\r\n dateFormat,\r\n showTimeInput,\r\n readOnly,\r\n } = this.props;\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 {meta.touched && meta.error && {meta.error}}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst renderDatePickerField = (props) => {\r\n const { input } = props;\r\n return (\r\n \r\n );\r\n};\r\n\r\nrenderDatePickerField.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func,\r\n name: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nexport default renderDatePickerField;\r\n","import React, { PureComponent } from 'react';\r\nimport Select from 'react-select';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass SelectField extends PureComponent {\r\n static propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n label: PropTypes.string,\r\n })),\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n label: PropTypes.string,\r\n }),\r\n PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n label: PropTypes.string,\r\n })),\r\n ]).isRequired,\r\n defaultValue: PropTypes.number,\r\n isMulti: PropTypes.bool,\r\n isClearable: PropTypes.bool,\r\n isSearchable: PropTypes.string,\r\n menuIsOpen: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n placeholder: '',\r\n defaultValue: 0,\r\n options: [],\r\n isMulti: false,\r\n isClearable: false,\r\n isSearchable: 'true',\r\n menuIsOpen: undefined,\r\n isDisabled: false,\r\n };\r\n\r\n handleChange = (selectedOption) => {\r\n const { onChange } = this.props;\r\n onChange(selectedOption);\r\n };\r\n\r\n render() {\r\n const {\r\n value, defaultValue, name, placeholder, options, isMulti,\r\n isClearable,\r\n isSearchable,\r\n menuIsOpen,\r\n isDisabled,\r\n } = this.props;\r\n\r\n const styles = {\r\n option: base => ({\r\n ...base,\r\n // borderBottom: `1px dotted ${'white'}`,\r\n padding: '8px 2px',\r\n alignTtems: 'center;',\r\n display: 'flex;',\r\n boxSizing: 'content-box',\r\n }),\r\n multiValue: (base, state) => (state.data.isFixed ? { ...base, backgroundColor: 'gray' } : base),\r\n multiValueLabel: (base, state) => (\r\n state.data.isFixed\r\n ? {\r\n ...base,\r\n fontWeight: 'bold',\r\n color: 'white',\r\n paddingRight: 6,\r\n }\r\n : base\r\n ),\r\n multiValueRemove: (base, state) => (\r\n state.data.isFixed ? { ...base, display: 'none' } : base\r\n ),\r\n menu: ({ width, ...css }) => ({\r\n ...css,\r\n // width: '200px',\r\n }),\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nconst renderSelectField = (props) => {\r\n const {\r\n input, meta, options, placeholder, defaultValue, className, isMulti,\r\n isClearable,\r\n isSearchable,\r\n menuIsOpen,\r\n isDisabled,\r\n } = props;\r\n\r\n const opts = (typeof options === 'function' ? options() : options).slice();\r\n if (!opts.find(o => o.value === 0)) {\r\n opts.unshift({ value: 0, label: '-' });\r\n }\r\n\r\n return (\r\n
\r\n \r\n {meta.touched && meta.error && {meta.error}}\r\n
\r\n );\r\n};\r\n\r\nrenderSelectField.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func,\r\n name: PropTypes.string,\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.string,\r\n }),\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n label: PropTypes.string,\r\n })),\r\n placeholder: PropTypes.string,\r\n defaultValue: PropTypes.number,\r\n className: PropTypes.string,\r\n isMulti: PropTypes.bool,\r\n isClearable: PropTypes.bool,\r\n isSearchable: PropTypes.string,\r\n menuIsOpen: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n};\r\n\r\nrenderSelectField.defaultProps = {\r\n meta: null,\r\n options: [],\r\n placeholder: '',\r\n defaultValue: 0,\r\n className: '',\r\n isMulti: false,\r\n isClearable: false,\r\n isSearchable: 'true',\r\n menuIsOpen: undefined,\r\n isDisabled: false,\r\n};\r\n\r\nexport default renderSelectField;\r\n","import React, { PureComponent } from 'react';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Row, Col, Card, CardBody, Table,\r\n} from 'reactstrap';\r\n\r\nimport CalendarBlankIcon from 'mdi-react/CalendarBlankIcon';\r\n\r\nimport TextBox from './form/TextBox';\r\nimport renderCheckBoxField from './form/CheckBox';\r\nimport Pagination from './pagination/Pagination';\r\nimport DatePicker from './form/DatePicker';\r\nimport renderSelectField from './form/Select';\r\n\r\nconst RenderDataTableAction = (actions, row) => {\r\n if (!(actions && actions.length)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {actions.map(a => (\r\n \r\n a.callback && a.callback(row)}\r\n type=\"button\"\r\n className=\"action-button\"\r\n tabIndex=\"-1\"\r\n >\r\n {typeof a.icon === 'function' ? a.icon(row) : a.icon}\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nconst RenderDataTableIcon = (col, row, key) => {\r\n if (!col.icon) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n col.icon.callback && col.icon.callback(row)}\r\n type=\"button\"\r\n className=\"action-button\"\r\n tabIndex=\"-1\"\r\n >\r\n {col.icon.component(row)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst RenderDataTableInput = (column, row, onAutoSave) => {\r\n if (!column.editable) {\r\n return null;\r\n }\r\n\r\n const attributes = {\r\n className: 'form-control',\r\n };\r\n\r\n if (column.type === 'number') {\r\n attributes.className = `${attributes.className}`;\r\n\r\n if (!Number.isNaN(+column.max)) {\r\n attributes.max = +column.max;\r\n }\r\n if (!Number.isNaN(+column.min)) {\r\n attributes.min = +column.min;\r\n }\r\n }\r\n\r\n if (column.type === 'select') {\r\n attributes.className = `${attributes.className}`;\r\n return (\r\n {\r\n onAutoSave(row, column.key, item.value);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n e.preventDefault();\r\n\r\n const { value } = e.currentTarget;\r\n if (column.type === 'number' && (+value < +column.min || +value > +column.max)) {\r\n e.preventDefault();\r\n e.currentTarget.value = +row[column.key];\r\n return;\r\n }\r\n e.currentTarget.changed = true;\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.currentTarget.changed && e.which === 13) {\r\n onAutoSave(row, column.key, e.currentTarget.value);\r\n e.currentTarget.changed = false;\r\n }\r\n }}\r\n onBlur={(e) => {\r\n if (e.currentTarget.changed) {\r\n onAutoSave(row, column.key, e.currentTarget.value);\r\n e.currentTarget.changed = false;\r\n }\r\n }}\r\n onFocus={e => e.currentTarget.select()}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst RenderSearchField = (props) => {\r\n const {\r\n key, name, type, searchProps = {},\r\n } = props;\r\n\r\n if (type === 'date') {\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 if (type === 'number') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (type === 'select') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst RenderSearchForm = (props) => {\r\n const { key, name } = props;\r\n return (\r\n
\r\n {name}\r\n
\r\n {RenderSearchField(props)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nRenderDataTableInput.propTypes = {\r\n key: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n type: PropTypes.string,\r\n min: PropTypes.string,\r\n max: PropTypes.string,\r\n inputStyle: PropTypes.func,\r\n};\r\nRenderDataTableInput.defaultProps = {\r\n type: 'text',\r\n min: '',\r\n max: '',\r\n inputStyle: () => ({ fontSize: '1.6rem' }),\r\n};\r\nRenderSearchField.propTypes = {\r\n key: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n type: PropTypes.string,\r\n min: PropTypes.string,\r\n max: PropTypes.string,\r\n searchProps: PropTypes.shape({}),\r\n};\r\nRenderSearchField.defaultProps = {\r\n type: 'text',\r\n searchProps: {},\r\n min: '',\r\n max: '',\r\n};\r\n\r\nRenderSearchForm.propTypes = {\r\n key: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n};\r\n\r\nclass DataTable extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const { autoHideSearch } = props;\r\n this.state = {\r\n showSearch: false,\r\n autoHideSearch,\r\n };\r\n }\r\n\r\n toggleSearch = (e) => {\r\n e.preventDefault();\r\n this.setState(prevState => ({ showSearch: !prevState.showSearch }));\r\n }\r\n\r\n toggleAutoHide = (e) => {\r\n e.preventDefault();\r\n this.setState(prevState => ({ autoHideSearch: !prevState.autoHideSearch }));\r\n }\r\n\r\n visible = (col) => {\r\n if (typeof col.visible === 'undefined') return true;\r\n return col.visible;\r\n }\r\n\r\n render() {\r\n const {\r\n title,\r\n columns,\r\n items,\r\n getGridActions,\r\n onChangePage,\r\n handleSubmit,\r\n onClearFilters,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n onAutoSave,\r\n } = this.props;\r\n\r\n const { showSearch, submitting, autoHideSearch } = this.state;\r\n const searchable = columns.filter(s => s.search === true).length > 0;\r\n const showForm = showSearch || !autoHideSearch;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
{title}
\r\n \r\n \r\n {searchable && (\r\n this.toggleSearch(e)}\r\n >\r\n Búsqueda \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n {showForm && columns.map(h => h.search && RenderSearchForm(h))}\r\n {showForm\r\n && (\r\n
\r\n
\r\n Buscar\r\n \r\n Limpiar filtros\r\n \r\n
\r\n this.toggleAutoHide(e)}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n }\r\n
\r\n \r\n \r\n \r\n {columns.map(h => this.visible(h) && (\r\n \r\n ))}\r\n \r\n \r\n \r\n {items.length > 0 ? (\r\n items.map((u, uIndex) => (\r\n \r\n {columns.map((h, hIndex) => this.visible(h) && (\r\n \r\n ))}\r\n \r\n )))\r\n : (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n {h.name}\r\n
\r\n {\r\n !h.editable && (\r\n \r\n {RenderDataTableIcon(h, u, `${u.id || uIndex}_${h.id || hIndex}`)}\r\n {h.format ? h.format(u) : u[h.key]}\r\n \r\n )\r\n }\r\n {RenderDataTableAction(getGridActions(h.key, u), u)}\r\n {RenderDataTableInput(h, u, onAutoSave)}\r\n
\r\n
No se encontraron resultados
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nDataTable.propTypes = {\r\n title: PropTypes.string,\r\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape([])).isRequired,\r\n getGridActions: PropTypes.func,\r\n handleSubmit: PropTypes.func,\r\n onClearFilters: PropTypes.func,\r\n onChangePage: PropTypes.func,\r\n onAutoSave: PropTypes.func,\r\n page: PropTypes.number.isRequired,\r\n pageSize: PropTypes.number,\r\n totalItemsCount: PropTypes.number,\r\n autoHideSearch: PropTypes.bool,\r\n};\r\n\r\nDataTable.defaultProps = {\r\n title: '',\r\n pageSize: 25,\r\n getGridActions: () => [],\r\n handleSubmit: () => null,\r\n onClearFilters: () => null,\r\n onChangePage: () => null,\r\n onAutoSave: () => null,\r\n autoHideSearch: true,\r\n totalItemsCount: 0,\r\n};\r\n\r\nconst DataTableForm = reduxForm({\r\n form: 'SearchUserForm',\r\n})(DataTable);\r\n\r\nexport default DataTableForm;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Badge, Tooltip,\r\n} from 'reactstrap';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nconst TooltipItem = ({\r\n id,\r\n value,\r\n label,\r\n color,\r\n}) => {\r\n const [tooltipOpen, setTooltipOpen] = useState(false);\r\n\r\n const toggle = () => setTooltipOpen(!tooltipOpen);\r\n\r\n return (\r\n

\r\n \r\n {value}\r\n \r\n {\r\n label ? (\r\n \r\n {label}\r\n \r\n ) : null\r\n }\r\n

\r\n );\r\n};\r\n\r\nTooltipItem.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n color: PropTypes.string,\r\n};\r\n\r\n\r\nTooltipItem.defaultProps = {\r\n color: 'warning',\r\n};\r\n\r\n\r\nexport default TooltipItem;\r\n","import React from 'react';\r\nimport { Spinner } from 'reactstrap';\r\n\r\nconst LoadingSpinner = () => (\r\n

\r\n \r\n

\r\n);\r\n\r\nexport default LoadingSpinner;\r\n","export const dateFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n dateStyle: 'short',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const dateDDMMFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n day: '2-digit', month: '2-digit',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const dateDDMMYYFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n day: '2-digit', month: '2-digit', year: '2-digit',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const dateDDMMYYHHMMFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: '2-digit',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const dateMMYYFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: '2-digit',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\n\r\nexport const dateMMFormat = (value, locales = 'es-PE') => {\r\n const style = {\r\n month: 'short',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value)).substring(0, 3);\r\n};\r\n\r\nexport const dateDDFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n day: '2-digit',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\n\r\nexport const dateTimeFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n dateStyle: 'short',\r\n timeStyle: 'short',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const timeFormat = (value, locales = 'en-GB') => {\r\n const style = {\r\n hour: 'numeric', minute: 'numeric', second: 'numeric',\r\n };\r\n\r\n return new Intl.DateTimeFormat(locales, style).format(new Date(value));\r\n};\r\n\r\nexport const dateTimeString = (date) => {\r\n if (typeof date === 'string') {\r\n return date;\r\n }\r\n\r\n return `${date.toLocaleDateString('en-GB', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n }).split('/').reverse().join('-')}T${date.toLocaleTimeString('en-GB')}`;\r\n};\r\n","import React, { PureComponent } from 'react';\r\n\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col, Container, Row,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport TooltipItem from '../../shared/components/TooltipItem';\r\nimport { fetchUsers, fetchFormDatas } from '../../redux/actions/usersActions';\r\nimport { deleteUser, resetUserPassword } from '../../redux/actions/userActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { dateFormat } from '../../helpers/dateFormat';\r\n\r\nclass UsersContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n roles: [],\r\n };\r\n\r\n this.columns = [\r\n { key: 'id', name: '#', width: '60px' },\r\n {\r\n key: 'numeroDocumento',\r\n name: 'Número de documento',\r\n search: true,\r\n type: 'number',\r\n width: '80px',\r\n },\r\n {\r\n key: 'roles',\r\n name: 'Roles',\r\n search: true,\r\n type: 'select',\r\n searchProps: {\r\n options: this.getRoles,\r\n isMulti: true,\r\n },\r\n width: '110px',\r\n format: (row) => {\r\n const { id, roles, categoriasProfesores } = row;\r\n\r\n return (\r\n \r\n {\r\n roles.map(rol => (\r\n \r\n ))\r\n }\r\n {\r\n roles.some(rol => rol.value === 'P') ? (\r\n \r\n ) : null\r\n }\r\n \r\n );\r\n },\r\n },\r\n { key: 'nombre', name: 'Nombre', search: true },\r\n { key: 'apellido', name: 'Apellido', search: true },\r\n { key: 'email', name: 'Email', search: true },\r\n { key: 'domicilioTelefono', name: 'Teléfono Celular', search: true },\r\n {\r\n key: 'arancelCero',\r\n name: 'Arancel Cero',\r\n search: true,\r\n format: ({ id, arancelCero, fechaFinArancelCero }) => (\r\n \r\n ),\r\n },\r\n { key: 'actions', name: 'Accion', width: '105px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (user) => {\r\n this.editUser(user);\r\n },\r\n },\r\n {\r\n key: 'reset_password',\r\n icon: ,\r\n callback: (user) => {\r\n this.resetUserPassword(user);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n /* callback: (user) => {\r\n this.deleteUser(user);\r\n },\r\n */\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n\r\n const { page, pageSize } = this.state;\r\n this.updateUserTable(page, pageSize);\r\n }\r\n\r\n fetchDatasList = () => {\r\n fetchFormDatas({\r\n onSuccess: (d) => {\r\n this.setState({\r\n roles: d.roles,\r\n });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n updateUserTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n\r\n fetchUsers({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: {\r\n ...filters,\r\n roles: filters && (filters.roles || []).map(r => r.value),\r\n },\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de usuarios');\r\n },\r\n });\r\n }\r\n\r\n deleteUser = (user) => {\r\n const userName = `${user.nombre} ${user.apellido}`;\r\n Confirm({\r\n title: 'Borrar usuario',\r\n question: `Estás seguro que deseas eliminar a ${userName}?`,\r\n yesLabel: 'Si, Borrar usuario',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n deleteUser(user.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Usuario borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateUserTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El usuario no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar el usuario');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n resetUserPassword = (user) => {\r\n const userName = `${user.nombre} ${user.apellido}`;\r\n Confirm({\r\n title: 'Restablecer contraseña',\r\n question: `Estás seguro que deseas restablecer la contraseña de ${userName}?`,\r\n yesLabel: 'Si, Restablecer',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n resetUserPassword(user.email, {\r\n onSuccess: () => {\r\n const msg = 'Contraseña restablecida exitosamente. Se ha enviado un correo con la contraseña temporal.';\r\n createSuccessMessage(msg);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El usuario no existe');\r\n } else {\r\n createErrorMessage('Error al intentar restablecer contraseña');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n editUser = (user) => {\r\n const { history } = this.props;\r\n history.push(`/pages/users/edit/${user.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateUserTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateUserTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateUserTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getRoles = () => {\r\n const { roles } = this.state;\r\n return roles;\r\n };\r\n\r\n getColor = (value) => {\r\n const colors = [\r\n {\r\n value: 'A', color: 'info',\r\n },\r\n {\r\n value: 'P', color: 'success',\r\n },\r\n {\r\n value: 'F', color: 'primary',\r\n },\r\n {\r\n value: 'S', color: 'warning',\r\n },\r\n ];\r\n\r\n const { color } = colors.find(c => c.value === value);\r\n\r\n return color;\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

Usuarios del Sistema

\r\n
\r\n \r\n Agregar nuevo usuario\r\n \r\n
\r\n \r\n
\r\n \r\n {loading\r\n ? \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(UsersContainer);\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React, { PureComponent } from 'react';\r\nimport CheckIcon from 'mdi-react/CheckIcon';\r\nimport CloseIcon from 'mdi-react/CloseIcon';\r\nimport * as PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nclass RadioButtonField extends PureComponent {\r\n static propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]).isRequired,\r\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n defaultChecked: PropTypes.bool,\r\n radioValue: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\r\n disabled: PropTypes.bool,\r\n className: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n label: '',\r\n defaultChecked: false,\r\n radioValue: '',\r\n disabled: false,\r\n className: '',\r\n };\r\n\r\n componentDidMount() {\r\n const { defaultChecked, onChange, radioValue } = this.props;\r\n if (defaultChecked) {\r\n onChange(radioValue);\r\n }\r\n }\r\n\r\n onChange = () => {\r\n const { onChange, radioValue } = this.props;\r\n onChange(radioValue);\r\n };\r\n\r\n render() {\r\n const {\r\n disabled, className, name, label, radioValue, value,\r\n } = this.props;\r\n const RadioButtonClass = classNames({\r\n 'radio-btn': true,\r\n disabled,\r\n });\r\n\r\n return (\r\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\r\n \r\n \r\n \r\n {className === 'button'\r\n ? (\r\n \r\n \r\n \r\n \r\n ) : ''}\r\n {label}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst renderRadioButtonField = (props) => {\r\n const {\r\n input, label, defaultChecked, disabled, className, radioValue,\r\n } = props;\r\n return (\r\n \r\n );\r\n};\r\n\r\nrenderRadioButtonField.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func,\r\n name: PropTypes.string,\r\n }).isRequired,\r\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n defaultChecked: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n radioValue: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\r\n className: PropTypes.string,\r\n};\r\n\r\nrenderRadioButtonField.defaultProps = {\r\n label: '',\r\n defaultChecked: false,\r\n disabled: false,\r\n radioValue: '',\r\n className: '',\r\n};\r\n\r\nexport default renderRadioButtonField;\r\n","const validate = (attrs) => {\r\n const errors = {};\r\n if (!attrs.showProfile) {\r\n if (!attrs.nombre) {\r\n errors.nombre = 'Debe ingresar el nombre';\r\n }\r\n if (!attrs.apellido) {\r\n errors.apellido = 'Debe ingresar el apellido';\r\n }\r\n if (!(attrs.numeroDocumento\r\n && attrs.numeroDocumento.length >= 6\r\n && /^[0-9]*$/i.test(attrs.numeroDocumento))) {\r\n errors.numeroDocumento = 'El número de documento no es correcto';\r\n }\r\n }\r\n\r\n if (!(attrs.nacionalidad && attrs.nacionalidad.value)) {\r\n errors.nacionalidad = 'Debe ingresar el país de nacimiento';\r\n }\r\n\r\n if (!attrs.photoName) {\r\n errors.photoName = 'Debe ingresar una foto';\r\n }\r\n\r\n if (!attrs.domicilioTelefono || attrs.domicilioTelefono.length < 6\r\n || !(/^[+]{0,1}[(]{0,1}[0-9]{1,6}[)|-]{0,1}[ ]{0,1}[/0-9]*$/i.test(attrs.domicilioTelefono))) {\r\n errors.domicilioTelefono = 'El número de teléfono no es correcto';\r\n }\r\n\r\n if (attrs.trabajoTelefono\r\n && !(attrs.trabajoTelefono.length >= 6\r\n && /^[+]{0,1}[(]{0,1}[0-9]{1,6}[)|-]{0,1}[ ]{0,1}[/0-9]*$/i.test(attrs.trabajoTelefono))) {\r\n errors.trabajoTelefono = 'El número de teléfono no es correcto';\r\n }\r\n\r\n if (!attrs.email) {\r\n errors.email = 'Debe ingresar el correo electrónico.';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(attrs.email)) {\r\n errors.email = 'El correo electronico no es valido.';\r\n }\r\n\r\n if (attrs.showProfile) {\r\n if (!attrs.emergenciaNumero || attrs.emergenciaNumero.length < 6\r\n || !(/^[+]{0,1}[(]{0,1}[0-9]{1,6}[)|-]{0,1}[ ]{0,1}[/0-9]*$/i.test(attrs.emergenciaNumero))) {\r\n errors.emergenciaNumero = 'El número de teléfono no es correcto';\r\n }\r\n if (!attrs.emergenciaContacto) {\r\n errors.emergenciaContacto = 'Debe ingresar el nombre del contacto';\r\n }\r\n } else if (!(attrs.esAdmin || attrs.esProfesor || attrs.esFuncionario || attrs.esAlumno)) {\r\n errors.esAdmin = 'Debe seleccionar al menos un rol';\r\n }\r\n\r\n if (attrs.esProfesor && attrs.categoriasProfesores && attrs.categoriasProfesores.length > 0) {\r\n const materias = attrs.categoriasProfesores.filter(o => !o.removed && o.materia.value > 0)\r\n .map(({ materia: { value, label } }) => ({ value, label }));\r\n\r\n const duplicate = materias.find((mat, index) => index !== materias.map(m => m.value).indexOf(mat.value));\r\n if (duplicate) {\r\n errors.categoriasProfesores = { _error: `La materia ${duplicate.label} ya fue agregada.` };\r\n } else {\r\n attrs.categoriasProfesores.filter(o => !o.removed).forEach(({ materia, escalafon, notas }, index) => {\r\n const error = {};\r\n if (!materia || !materia.value) {\r\n error.materia = 'Debe ingresar una materia';\r\n }\r\n if (!escalafon || !escalafon.value) {\r\n error.escalafon = 'Debe ingresar un escalafón';\r\n }\r\n if (!notas || !notas) {\r\n error.notas = 'Debe ingresar una nota';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n if (!errors.categoriasProfesores) {\r\n errors.categoriasProfesores = [];\r\n }\r\n\r\n errors.categoriasProfesores[index] = error;\r\n }\r\n });\r\n }\r\n }\r\n\r\n errors.isValid = Object.keys(errors).length === 0;\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","export const GruposSanguineos = [\r\n { value: '0-', label: '0-' },\r\n { value: '0+', label: '0+' },\r\n { value: 'A-', label: 'A-' },\r\n { value: 'A+', label: 'A+' },\r\n { value: 'B-', label: 'B-' },\r\n { value: 'B+', label: 'B+' },\r\n { value: 'AB-', label: 'AB-' },\r\n { value: 'AB+', label: 'AB+' },\r\n];\r\n\r\nexport const Roles = {\r\n Alumno: 0,\r\n Profesor: 1,\r\n Funcionario: 2,\r\n Admin: 3,\r\n};\r\n\r\nexport const EstadosCiviles = [\r\n { value: 0, label: 'Soltero' },\r\n { value: 1, label: 'Casado' },\r\n { value: 2, label: 'Union libre' },\r\n { value: 3, label: 'Viudo' },\r\n];\r\n\r\nexport const Generos = [\r\n { value: 0, label: 'No especificar' },\r\n { value: 1, label: 'Hombre' },\r\n { value: 2, label: 'Mujer' },\r\n];\r\n\r\nexport const Calificaciones = [\r\n {\r\n value: undefined, label: '-', desciption: '-', color: 'dark',\r\n },\r\n {\r\n value: null, label: '-', desciption: '-', color: 'dark',\r\n },\r\n {\r\n value: 0, label: 'Ausente', desciption: 'Ausente', color: 'dark',\r\n },\r\n {\r\n value: 1, label: '1: Uno', desciption: 'Uno', color: 'warning',\r\n },\r\n {\r\n value: 2, label: '2: Dos', desciption: 'Dos', color: 'secondary',\r\n },\r\n {\r\n value: 3, label: '3: Tres', desciption: 'Tres', color: 'info',\r\n },\r\n {\r\n value: 4, label: '4: Cuatro', desciption: 'Cuatro', color: 'primary',\r\n },\r\n {\r\n value: 5, label: '5: Cinco', desciption: 'Cinco', color: 'success',\r\n },\r\n];\r\n\r\nexport const InstanciaExamen = {\r\n Final: 0,\r\n Recuperatorio: 1,\r\n Invalido: 3,\r\n};\r\n\r\nexport const EstadoExamen = {\r\n Activo: { value: 0, label: 'Activo' },\r\n Sellado: { value: 1, label: 'Sellado' },\r\n Borrado: { value: 2, label: 'Borrado' },\r\n Inconsistente: { value: 3, label: 'Inconsistente' },\r\n};\r\n\r\nexport const EstadoMateriaPeriodo = {\r\n Preliminar: { value: 0, label: 'Preliminar' },\r\n Publicado: { value: 1, label: 'Publicado' },\r\n Sellado: { value: 2, label: 'Sellado' },\r\n};\r\n\r\nexport const InstanciasExamen = [\r\n { value: 0, label: 'Final' },\r\n { value: 1, label: 'Recuperatorio' },\r\n { value: 3, label: 'Invalido' },\r\n];\r\n\r\n// 5 MB\r\nexport const MaxSizeFile = 5 * 1000000;\r\nexport const AcceptTypeFile = ['image/png', 'image/jpeg'];\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Field, reduxForm, FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n Row,\r\n Button,\r\n Input,\r\n Container,\r\n Badge,\r\n} from 'reactstrap';\r\nimport EyeIcon from 'mdi-react/EyeIcon';\r\nimport moment from 'moment';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport renderRadioField from '../../../shared/components/form/RadioButton';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport DatePicker from '../../../shared/components/form/DatePicker';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\nimport { dateFormat } from '../../../helpers/dateFormat';\r\nimport { getCurrentUser } from '../../../helpers/storage';\r\nimport {\r\n MaxSizeFile, AcceptTypeFile,\r\n} from '../../../constants/enums';\r\nimport {\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\n\r\nconst TrueFalseValues = [\r\n { value: true, label: 'Si' },\r\n { value: false, label: 'No' },\r\n];\r\n\r\nclass EditUser extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onSubmitFoto: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n resetPasswordHandler: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n esAdmin: PropTypes.bool,\r\n esProfesor: PropTypes.bool,\r\n esFuncionario: PropTypes.bool,\r\n esAlumno: PropTypes.bool,\r\n provenienteDePuebloOriginario: PropTypes.bool,\r\n saludPoseeDiscapacidadVisual: PropTypes.bool,\r\n saludPoseeDiscapacidadAuditiva: PropTypes.bool,\r\n saludPoseeDiscapacidadMotora: PropTypes.bool,\r\n saludPoseeDiscapacidadCognitiva: PropTypes.bool,\r\n saludPoseeOtraDiscapacidad: PropTypes.bool,\r\n id: PropTypes.number,\r\n genero: PropTypes.number,\r\n age: PropTypes.number,\r\n estadoCivil: PropTypes.number,\r\n arancelCero: PropTypes.bool,\r\n grupoSanguineo: PropTypes.string,\r\n categoriasProfesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n paises: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n escalafon: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n gruposSanguineos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n estadosCiviles: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n generos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n showProfile: PropTypes.bool,\r\n nombre: PropTypes.string,\r\n apellido: PropTypes.string,\r\n numeroDocumento: PropTypes.string,\r\n fechaNacimiento: PropTypes.string,\r\n lugarNacimiento: PropTypes.string,\r\n fechaFinArancelCero: PropTypes.string,\r\n urlPhoto: PropTypes.string,\r\n\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n onRadioChanges: PropTypes.func.isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n esAdmin: false,\r\n esProfesor: false,\r\n esFuncionario: false,\r\n esAlumno: false,\r\n provenienteDePuebloOriginario: false,\r\n saludPoseeDiscapacidadVisual: false,\r\n saludPoseeDiscapacidadAuditiva: false,\r\n saludPoseeDiscapacidadMotora: false,\r\n saludPoseeDiscapacidadCognitiva: false,\r\n saludPoseeOtraDiscapacidad: false,\r\n id: 0,\r\n genero: 0,\r\n age: 0,\r\n estadoCivil: 0,\r\n arancelCero: false,\r\n grupoSanguineo: '',\r\n showProfile: false,\r\n nombre: '',\r\n apellido: '',\r\n numeroDocumento: '',\r\n fechaNacimiento: '',\r\n lugarNacimiento: '',\r\n fechaFinArancelCero: '',\r\n urlPhoto: '',\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n const {\r\n provenienteDePuebloOriginario,\r\n saludPoseeOtraDiscapacidad,\r\n esProfesor,\r\n } = props;\r\n\r\n this.state = {\r\n provenienteDePuebloOriginario,\r\n saludPoseeOtraDiscapacidad,\r\n showOtherData: false,\r\n showCategoriaProfesor: esProfesor,\r\n };\r\n }\r\n\r\n showHideOtherData = () => {\r\n const { showOtherData } = this.state;\r\n this.setState({ showOtherData: !showOtherData });\r\n }\r\n\r\n showHideCategoriaProfesor = ({ target }) => {\r\n this.setState({ showCategoriaProfesor: target.checked });\r\n }\r\n\r\n categoriaProfesorTable = ({\r\n fields = {},\r\n categoriasProfesores,\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n onChangeSelect,\r\n materias,\r\n escalafon,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n \r\n

Categoría docente

\r\n \r\n \r\n {fields.length <= 20\r\n ? (\r\n \r\n \r\n {' '}\r\n Agregar\r\n \r\n )\r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((categoriaProfesor, 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
#MateriaEscalafónNotas{' '}
\r\n
\r\n

{index + 1}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n onChangeSelect({ option: props, name: 'materia', index })}\r\n />\r\n {' '}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n onChangeSelect({ option: props, name: 'escalafon', index })}\r\n />\r\n {' '}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n onChangeText(v, index)}\r\n />\r\n {' '}\r\n
\r\n
\r\n
\r\n
\r\n onDeleteItemArray(index)}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n
\r\n {\r\n submitFailed && error && (\r\n
\r\n \r\n *\r\n {error}\r\n \r\n
\r\n )\r\n }\r\n \r\n );\r\n\r\n onFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file || file.size <= 0) {\r\n createWarningMessage('Debe elegir una imagen');\r\n e.target.value = null;\r\n return;\r\n }\r\n\r\n if (file.size > MaxSizeFile) {\r\n const maxSizeFileMb = MaxSizeFile / 1000000;\r\n createWarningMessage(`El tamaño máximo es ${maxSizeFileMb} MB`);\r\n\r\n e.target.value = null;\r\n return;\r\n }\r\n\r\n if (!AcceptTypeFile.includes(file.type)) {\r\n createWarningMessage('El tipo de imagen no es válido');\r\n\r\n e.target.value = null;\r\n return;\r\n }\r\n\r\n const { onSubmitFoto } = this.props;\r\n onSubmitFoto(e.target.files);\r\n }\r\n\r\n render() {\r\n const {\r\n provenienteDePuebloOriginario,\r\n saludPoseeOtraDiscapacidad,\r\n showOtherData,\r\n showCategoriaProfesor,\r\n } = this.state;\r\n\r\n const {\r\n esAdmin,\r\n esProfesor,\r\n esFuncionario,\r\n esAlumno,\r\n submitting,\r\n handleSubmit,\r\n resetPasswordHandler,\r\n onBack,\r\n genero,\r\n grupoSanguineo,\r\n estadoCivil,\r\n arancelCero,\r\n saludPoseeDiscapacidadVisual,\r\n saludPoseeDiscapacidadAuditiva,\r\n saludPoseeDiscapacidadMotora,\r\n saludPoseeDiscapacidadCognitiva,\r\n onFilterChanges,\r\n age,\r\n paises,\r\n escalafon,\r\n materias,\r\n\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n onChangeSelect,\r\n onRadioChanges,\r\n\r\n gruposSanguineos,\r\n estadosCiviles,\r\n generos,\r\n showProfile,\r\n nombre,\r\n apellido,\r\n numeroDocumento,\r\n fechaNacimiento,\r\n id,\r\n categoriasProfesores = [],\r\n lugarNacimiento,\r\n fechaFinArancelCero,\r\n urlPhoto,\r\n } = this.props;\r\n\r\n const otherDataBtnClass = showOtherData ? 'fa fa-angle-down collapse-btn' : 'fa fa-angle-right collapse-btn';\r\n\r\n const otherDataClass = showProfile || showOtherData ? '' : 'hidden';\r\n const categoriaProfesorDataClass = showCategoriaProfesor ? '' : 'hidden';\r\n\r\n const currentUser = getCurrentUser();\r\n\r\n const editMainInfo = currentUser.esAdmin || currentUser.esFuncionario;\r\n const birdDate = fechaNacimiento ? moment(fechaNacimiento).format('DD/MM/YYYY') : '';\r\n\r\n const requiredNameClass = `form__form-group-label ${!showProfile ? 'required' : ''}`;\r\n const requiredPhoneClass = `form__form-group-label ${showProfile ? 'required' : ''}`;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
Información personal
\r\n
\r\n \r\n \r\n
\r\n Nombre\r\n
\r\n {editMainInfo\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n Apellido\r\n
\r\n {editMainInfo\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n Número de documento\r\n
\r\n {editMainInfo\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n Fecha de nacimiento\r\n {editMainInfo\r\n ? (\r\n
\r\n \r\n
\r\n )\r\n : (\r\n
\r\n \r\n
\r\n )\r\n }\r\n
\r\n\r\n
\r\n Lugar de nacimiento\r\n
\r\n {editMainInfo\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n\r\n
\r\n
\r\n\r\n
\r\n Nacionalidad\r\n
\r\n onFilterChanges('nacionalidad', 'nacionalidadPaisId', v)}\r\n isDisabled={!editMainInfo}\r\n />\r\n
\r\n
\r\n\r\n
\r\n Proveniente de Pueblos originarios\r\n
\r\n\r\n
\r\n
\r\n {TrueFalseValues.map(g => (\r\n onRadioChanges('provenienteDePuebloOriginario', v)}\r\n disabled={!editMainInfo}\r\n />\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Nombre de pueblo originario\r\n
\r\n {provenienteDePuebloOriginario\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n \r\n {/* ///////////////////////////////////////////////////////////////// START SECTION CONTACT-ADDRESS */}\r\n \r\n\r\n
\r\n Género\r\n
\r\n {generos.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Edad\r\n
\r\n 0 ? age : ''}\r\n placeholder=\"Edad (automático)\"\r\n disabled=\"disabled\"\r\n />\r\n
\r\n
\r\n\r\n
\r\n Grupo sanguíneo\r\n
\r\n {gruposSanguineos.map(g => (\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 Estado Civil\r\n
\r\n {estadosCiviles.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Arancel Cero\r\n
\r\n {TrueFalseValues.map(g => (\r\n onRadioChanges('arancelCero', value)}\r\n disabled={!editMainInfo}\r\n />\r\n ))}\r\n
\r\n {\r\n arancelCero ? (\r\n <>\r\n Fecha fin Arancel Cero\r\n
\r\n {\r\n editMainInfo\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
\r\n \r\n ) : null\r\n }\r\n
\r\n\r\n \r\n \r\n
\r\n
Domicilio particular
\r\n
\r\n \r\n \r\n
\r\n Calle\r\n
\r\n \r\n
\r\n
\r\n
\r\n Número\r\n
\r\n \r\n
\r\n
\r\n
\r\n Localidad\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Teléfono Celular\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Pais\r\n
\r\n onFilterChanges('domicilioPais', 'domicilioPaisId', v)}\r\n />\r\n
\r\n
\r\n \r\n {/* ///////////////////////////////////////////////////////////////// END SECTION CONTACT-ADDRESS */}\r\n {/* ///////////////////////////////////////////////////////////////// START SECTION WORK EMPLOYMENT */}\r\n \r\n {showOtherData ? 'Ocultar' : 'Mostrar'} datos adicionales...\r\n
\r\n \r\n \r\n
\r\n
Domicilio Laboral
\r\n
\r\n
\r\n Nombre de la empresa\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Calle\r\n
\r\n \r\n
\r\n
\r\n
\r\n Número\r\n
\r\n \r\n
\r\n
\r\n
\r\n Localidad\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Teléfono\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Pais\r\n
\r\n onFilterChanges('trabajoPais', 'trabajoPaisId', v)}\r\n />\r\n
\r\n
\r\n
\r\n Horario laboral\r\n
\r\n \r\n
\r\n
\r\n \r\n {/* ///////////////////////////////////////////////////////////////// END SECTION EMPLOYMENT */}\r\n {/* ///////////////////////////////////////////////////////////////// OTHER DATA */}\r\n \r\n
\r\n
Otros Datos Personales
\r\n
\r\n \r\n \r\n
\r\n Padece alguna enfermedad? (Especificar)\r\n
\r\n \r\n
\r\n
\r\n
\r\n Toma algún medicamento? (Especificar)\r\n
\r\n \r\n
\r\n
\r\n
\r\n Alérgico a\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Teléfono de contacto en caso de emergencia\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Nombre de contacto de emergencia\r\n
\r\n \r\n
\r\n
\r\n
\r\n Relación parentesca de contacto\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n Padece discapacidad visual\r\n
\r\n {TrueFalseValues.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Padece discapacidad auditiva\r\n
\r\n {TrueFalseValues.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Padece discapacidad motora\r\n
\r\n {TrueFalseValues.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Padece discapacidad cognitiva\r\n
\r\n {TrueFalseValues.map(g => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n Padece otra discapacidad\r\n
\r\n {TrueFalseValues.map(g => (\r\n onRadioChanges('saludPoseeOtraDiscapacidad', v)}\r\n />\r\n ))}\r\n
\r\n
\r\n
\r\n Especificar otra discapacidad\r\n
\r\n {saludPoseeOtraDiscapacidad\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n \r\n {/* ///////////////////////////////////////////////////////////////// END OTHER DATA */}\r\n\r\n \r\n
\r\n Cambiar Foto\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {[urlPhoto].map(url => (\r\n \r\n \r\n \r\n
\r\n

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

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n ))}\r\n
\r\n
\r\n \r\n \r\n
\r\n
Rol de usuario
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n {id > 0 && editMainInfo && (\r\n
\r\n Restablecer contraseña\r\n \r\n
\r\n )}\r\n
\r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst EditUserForm = reduxForm({\r\n form: 'EditUserForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(EditUser);\r\n\r\nexport default setPropsAsInitialValues(EditUserForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col, Container, Row, Badge,\r\n} from 'reactstrap';\r\nimport EditUserForm from './UserForm';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport {\r\n fetchUser,\r\n saveUser,\r\n savePhoto,\r\n fetchPhoto,\r\n fetchFormDatas,\r\n resetUserPassword,\r\n} from '../../../redux/actions/userActions';\r\n\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\n\r\nimport {\r\n GruposSanguineos,\r\n EstadosCiviles,\r\n Generos,\r\n} from '../../../constants/enums';\r\n\r\nimport { getCurrentUser } from '../../../helpers/storage';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass EditUserContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n user: null,\r\n categoriasProfesores: [],\r\n };\r\n\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n\r\n const {\r\n id, history,\r\n } = this.props;\r\n\r\n if (!id) {\r\n this.setState({\r\n user: {\r\n id: 0,\r\n arancelCero: false,\r\n urlPhoto: null,\r\n },\r\n categoriasProfesores: [],\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchUser(id, {\r\n onSuccess: (dto) => {\r\n const {\r\n arancelCero, nacionalidadPais, domicilioPais, trabajoPais,\r\n } = dto;\r\n const categoriasProfesores = dto.categoriasProfesores.map((h, index) => ({ ...h, index }));\r\n\r\n const user = {\r\n ...dto,\r\n arancelCero,\r\n nacionalidad: {\r\n value: dto.nacionalidadPaisId,\r\n label: `${nacionalidadPais}`,\r\n },\r\n domicilioPais: {\r\n value: dto.domicilioPaisId,\r\n label: `${domicilioPais}`,\r\n },\r\n trabajoPais: {\r\n value: dto.trabajoPaisId,\r\n label: `${trabajoPais}`,\r\n },\r\n };\r\n\r\n this.setState({\r\n loading: false,\r\n user,\r\n arancelCero,\r\n categoriasProfesores,\r\n nacionalidadPaisId: dto.nacionalidadPaisId,\r\n domicilioPaisId: dto.domicilioPaisId,\r\n trabajoPaisId: dto.trabajoPaisId,\r\n });\r\n\r\n this.fetchUserPhoto(id);\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El usuario no existe');\r\n history.push('/pages/users');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del usuario');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchDatasList = () => {\r\n fetchFormDatas({\r\n onSuccess: ({ paises, escalafonDocente, materias }) => {\r\n const mapPaises = paises.map(p => ({\r\n value: p.id, label: p.nombre,\r\n }));\r\n\r\n this.setState({\r\n paises: mapPaises,\r\n escalafon: escalafonDocente,\r\n materias,\r\n });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n };\r\n\r\n handleSubmit = (values) => {\r\n const { photoName, id } = values;\r\n if (!photoName && id) {\r\n createWarningMessage('Debe ingresar una foto');\r\n\r\n return;\r\n }\r\n\r\n const {\r\n nacionalidadPaisId,\r\n domicilioPaisId,\r\n trabajoPaisId,\r\n } = this.state;\r\n\r\n const data = {\r\n ...values,\r\n nacionalidadPaisId,\r\n domicilioPaisId,\r\n trabajoPaisId,\r\n };\r\n\r\n saveUser(data, {\r\n onSuccess: () => {\r\n createSuccessMessage('Usuario guardado exitosamente');\r\n const { history, showProfile, editProfile } = this.props;\r\n localStorage.setItem('editProfile', editProfile);\r\n if (editProfile) {\r\n history.push('/pages/student-subjects/inscription/form');\r\n return;\r\n }\r\n\r\n if (!showProfile) {\r\n history.push('/pages/users');\r\n }\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el usuario');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchUserPhoto = (id) => {\r\n fetchPhoto({\r\n id,\r\n onSuccess: (photo) => {\r\n const { user } = this.state;\r\n this.setState({\r\n loading: false,\r\n user: {\r\n ...user,\r\n urlPhoto: window.URL.createObjectURL(photo),\r\n },\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n return;\r\n }\r\n\r\n createWarningMessage('Error al intentar cargar la foto');\r\n return;\r\n }\r\n\r\n createErrorMessage('Error al intentar cargar la foto');\r\n },\r\n });\r\n }\r\n\r\n handleSubmitFoto = (files) => {\r\n const { id } = this.props;\r\n savePhoto({\r\n id,\r\n files,\r\n onSuccess: (photoName) => {\r\n createSuccessMessage('Foto guardado exitosamente');\r\n const { user } = this.state;\r\n\r\n this.setState({\r\n user: {\r\n ...user,\r\n photoName,\r\n },\r\n });\r\n\r\n this.fetchUserPhoto(id);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la foto');\r\n }\r\n },\r\n });\r\n }\r\n\r\n resetPasswordHandler = () => {\r\n const {\r\n user,\r\n } = this.state;\r\n const userName = `${user.nombre} ${user.apellido}`;\r\n Confirm({\r\n title: 'Restablecer contraseña',\r\n question: `Estás seguro que deseas restablecer la contraseña para ${userName}?`,\r\n yesLabel: 'Si, Restablecer contraseña',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n resetUserPassword(user.email,\r\n {\r\n onSuccess: () => {\r\n const title = 'Contraseña restablecida exitosamente!';\r\n const msg = 'Se ha enviado un correo al usuario con información de su nueva contraseña.';\r\n createSuccessMessage(title, msg);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El usuario no existe');\r\n } else {\r\n createErrorMessage('Error al intentar restablecer la contraseña');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n const { user } = this.state;\r\n this.setState({\r\n [idKey]: value.value,\r\n user: {\r\n ...user,\r\n [objectKey]: value,\r\n },\r\n });\r\n }\r\n\r\n handleAddCategoriasProfesores = () => {\r\n const { categoriasProfesores } = this.state;\r\n\r\n const index = categoriasProfesores.length === 0\r\n ? 0\r\n : (Math.max(...categoriasProfesores.map(item => item.index)) + 1);\r\n\r\n this.setState(prevState => ({\r\n categoriasProfesores: [\r\n ...prevState.categoriasProfesores,\r\n {\r\n id: 0,\r\n index,\r\n escalafon: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n materia: {\r\n value: 0,\r\n label: '',\r\n parentId: 0,\r\n item: null,\r\n },\r\n notas: '',\r\n removed: false,\r\n },\r\n ],\r\n }));\r\n };\r\n\r\n handleRemoveCategoriasProfesores = (index) => {\r\n const { categoriasProfesores = [] } = this.state;\r\n const newArray = categoriasProfesores.map(h => ({\r\n ...h,\r\n removed: h.removed || h.index === index,\r\n }));\r\n\r\n this.setState({ categoriasProfesores: newArray });\r\n };\r\n\r\n handleChangeText = (e, index) => {\r\n const { categoriasProfesores } = this.state;\r\n const newCategoriasProfesores = [...categoriasProfesores];\r\n\r\n const value = e.target.type === 'number' ? Number(e.target.value) : `${e.target.value}`.trim();\r\n\r\n newCategoriasProfesores[index] = {\r\n ...newCategoriasProfesores[index],\r\n ...{\r\n [e.target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({\r\n categoriasProfesores: newCategoriasProfesores,\r\n });\r\n };\r\n\r\n handleChangeSelect = ({ option, name, index }) => {\r\n this.setState({ loading: true });\r\n\r\n const { categoriasProfesores } = this.state;\r\n const newCategoriasProfesores = [...categoriasProfesores];\r\n const data = {\r\n [name]: option,\r\n index,\r\n };\r\n\r\n newCategoriasProfesores[index] = {\r\n ...newCategoriasProfesores[index],\r\n ...data,\r\n };\r\n\r\n this.setState({\r\n categoriasProfesores: newCategoriasProfesores,\r\n loading: false,\r\n });\r\n };\r\n\r\n handleRadioChanges = (key, value) => {\r\n this.setState({ [key]: value });\r\n }\r\n\r\n getRolName = () => {\r\n const { user } = this.state;\r\n\r\n const currentUser = getCurrentUser();\r\n\r\n const Student = 0;\r\n const Teacher = 1;\r\n const Employee = 2;\r\n const Admin = 3;\r\n\r\n if (user.esAlumno) {\r\n return currentUser.roles.filter(r => r.role === Student).map(role => role.title);\r\n }\r\n\r\n if (user.esProfesor) {\r\n return currentUser.roles.filter(r => r.role === Teacher).map(role => role.title);\r\n }\r\n\r\n if (user.esFuncionario) {\r\n return currentUser.roles.filter(r => r.role === Employee).map(role => role.title);\r\n }\r\n\r\n if (user.esAdmin) {\r\n return currentUser.roles.filter(r => r.role === Admin).map(role => role.title);\r\n }\r\n\r\n return 'Usuario';\r\n }\r\n\r\n render() {\r\n const {\r\n user,\r\n categoriasProfesores = [],\r\n paises,\r\n escalafon,\r\n materias,\r\n loading,\r\n arancelCero,\r\n } = this.state;\r\n const {\r\n id,\r\n history,\r\n showProfile,\r\n } = this.props;\r\n\r\n if (loading || !user || !paises) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n {id ? 'Editar' : 'Nueva'} Ficha del {this.getRolName()}\r\n

\r\n

\r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la información de la Ficha del {this.getRolName()}\r\n

\r\n

\r\n \r\n Debe actualizar la ficha antes de inscribirse a las materias\r\n \r\n

\r\n \r\n
\r\n \r\n (\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nEditUserContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n showProfile: PropTypes.bool,\r\n editProfile: PropTypes.bool,\r\n};\r\nEditUserContainer.defaultProps = {\r\n showProfile: false,\r\n editProfile: false,\r\n};\r\n\r\nexport default EditUserContainer;\r\n","import { urlStudents } from '../../api/urls';\r\nimport {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n apiDownloadPost,\r\n} from '../../api/index';\r\n\r\nexport function fetchStudents(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlStudents}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function reporteInscriptos(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlStudents}/reporte_inscriptos`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function reporteAlumnosFormData(params) {\r\n return apiGet(`${urlStudents}/reporte_alumnos`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function reporteAlumnos(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlStudents}/reporte_alumnos`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function reporteAcademicStatusStudent(id = '', params) {\r\n return apiGet(`${urlStudents}/reporte-academic-status-student/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function downloadAcademicStatusStudent(id = '', params) {\r\n return apiDownloadPost(`${urlStudents}/download-reporte-academic-status-student/${id}`)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Reporte Estado Academico.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (params && params.onSuccess) params.onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function downloadStudents(params) {\r\n const filters = params.filters || {};\r\n return apiDownloadPost(`${urlStudents}/reporte_alumnos_download`, filters)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Alumnos.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (params && params.onSuccess) params.onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function downloadStudentsInscriptos(params) {\r\n const filters = params.filters || {};\r\n return apiDownloadPost(`${urlStudents}/reporte_inscriptos_download`, filters)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Alumnos-Inscriptos.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (params && params.onSuccess) params.onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchSelectStudentValues(callback) {\r\n return apiGet(`${urlStudents}/select_values`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchSelectStudentValuesPorCarrera(idCarrera, callback) {\r\n return apiGet(`${urlStudents}/select_values_por_carrera/${idCarrera}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function fetchStudent(id, callback) {\r\n return apiGet(`${urlStudents}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveStudent(user, callback) {\r\n return apiPost(`${urlStudents}`, user)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function deleteStudent(id, callback) {\r\n return apiDelete(`${urlStudents}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllMallas(params) {\r\n return apiGet(`${urlStudents}/mallas`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n fetchStudents,\r\n deleteStudent,\r\n} from '../../redux/actions/studentsActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\n\r\nclass StudentsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n };\r\n this.columns = [\r\n {\r\n key: 'numeroLegajo',\r\n name: '# Legajo',\r\n width: '80px',\r\n search: true,\r\n type: 'number',\r\n },\r\n {\r\n key: 'numeroDocumento',\r\n name: '# Documento',\r\n search: true,\r\n type: 'number',\r\n width: '110px',\r\n },\r\n { key: 'nombre', name: 'Nombre', search: true },\r\n { key: 'apellido', name: 'Apellido', search: true },\r\n { key: 'malla', name: 'Malla', search: true },\r\n { key: 'carrera', name: 'Carrera', search: true },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'viewAcademicStatus',\r\n icon: ,\r\n callback: (student) => {\r\n this.handleViewAcademicStatusStudent(student);\r\n },\r\n },\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (student) => {\r\n this.editStudent(student);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (student) => {\r\n this.handleDeleteStudent(student);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updateStudentsTable(page, pageSize);\r\n }\r\n\r\n updateStudentsTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n fetchStudents({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteStudent = (student) => {\r\n const name = `${student.nombre} ${student.apellido}`;\r\n Confirm({\r\n title: 'Borrar alumno',\r\n question: `Estás seguro que deseas eliminar a ${name}?`,\r\n yesLabel: 'Si, Borrar alumno',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n deleteStudent(student.id,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Alumno borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateStudentsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El alumno no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar el alumno');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleViewAcademicStatusStudent = (student) => {\r\n const { history } = this.props;\r\n history.push(`/pages/reporte-alumnos/academic-status/${student.id}`);\r\n };\r\n\r\n editStudent = (student) => {\r\n const { history } = this.props;\r\n history.push(`/pages/students/edit/${student.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

Alumnos del Sistema

\r\n
\r\n \r\n Agregar nuevo alumno\r\n \r\n
\r\n \r\n
\r\n \r\n {loading ?

Cargando...

\r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(StudentsContainer);\r\n","import {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n apiDownloadPost,\r\n} from '../../api/index';\r\nimport { urlStudentSubjects } from '../../api/urls';\r\n\r\nexport function fetchStudentSubjects(showAll, params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n const endpoint = showAll ? 'all' : 'all-my-subjects';\r\n return apiPost(`${urlStudentSubjects}/${endpoint}`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchStudentsBySubject({ subjectId, onSuccess, onError }) {\r\n return apiGet(`${urlStudentSubjects}/inscription-students/${subjectId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchMySubject({ id, onSuccess, onError }) {\r\n return apiGet(`${urlStudentSubjects}/my/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\nexport function fetchStudentSubject({ id, onSuccess, onError }) {\r\n return apiGet(`${urlStudentSubjects}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function saveStudentSubject(data, callback) {\r\n return apiPost(`${urlStudentSubjects}`, data)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveStudentSubjects(data, callback) {\r\n return apiPost(`${urlStudentSubjects}/save-inscription`, data)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function moveStudentSection(data, { onSuccess, onError }) {\r\n return apiPost(`${urlStudentSubjects}/move-inscription`, data)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function deleteStudentSubject(id, { onSuccess, onError }) {\r\n return apiDelete(`${urlStudentSubjects}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllMallas(params) {\r\n return apiGet(`${urlStudentSubjects}/active-mallas`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllSemesters(params) {\r\n return apiGet(`${urlStudentSubjects}/active-semesters`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllSubjects(params) {\r\n return apiGet(`${urlStudentSubjects}/subjects`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getFormDatas(params) {\r\n const method = params.new ? 'new-inscription-form-data' : 'inscription-form-data';\r\n return apiGet(`${urlStudentSubjects}/${method}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getInscriptionAllSubjects({ onSuccess, onError, mallaId }) {\r\n return apiGet(`${urlStudentSubjects}/inscription-all-subjects/${mallaId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllSubjectsBySemesters(params) {\r\n return apiGet(`${urlStudentSubjects}/subjects_by_semesters/${params.perfilAlumnoId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function actualizarNotas(inscripcion, callback) {\r\n return apiPost(`${urlStudentSubjects}/actualizar_notas`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function reporteAlumnosPorMateria(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlStudentSubjects}/reporte_alumnos_por_materia`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function descargarReporteAlumnosPorMaterias(params) {\r\n const filters = params.filters || {};\r\n return apiDownloadPost(`${urlStudentSubjects}/reporte_alumnos_por_materia_download`, filters)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Reporte de Asistencia y PP.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (params && params.onSuccess) params.onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function obtenerMisDerechos({\r\n pageInfo = ({ page: 1, pageSize: 1000 }),\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiPost(`${urlStudentSubjects}/mis_derechos_a_examenes`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function addToFavorites(inscripcion, callback) {\r\n return apiPost(`${urlStudentSubjects}/add_subject_dashboard`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n","import {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n apiDownload,\r\n apiPut,\r\n} from '../../api/index';\r\nimport { urlMateriasPeriodo } from '../../api/urls';\r\n\r\nexport function filter({ pageInfo = { page: 1, pageSize: 15 }, onSuccess, onError }) {\r\n return apiPost(`${urlMateriasPeriodo}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function filterHomework({\r\n materiaPeriodoId,\r\n pageInfo = { page: 1, pageSize: 15 },\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiPost(`${urlMateriasPeriodo}/${materiaPeriodoId}/homework/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function filterMyHomework({\r\n subjectId,\r\n pageInfo = { page: 1, pageSize: 15 },\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiPost(`${urlMateriasPeriodo}/${subjectId}/homework/my`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function getHomework({ id, onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/homework/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function get({ id, onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function getPlanning({\r\n id, page, onSuccess, onError,\r\n}) {\r\n return apiGet(`${urlMateriasPeriodo}/planning/${id}/page-${page}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function save(obj, callback) {\r\n return apiPost(`${urlMateriasPeriodo}`, obj)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveHomework({ paylaod, onSuccess, onError }) {\r\n return apiPost(`${urlMateriasPeriodo}/homework`, paylaod)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function changeUtilizaPorcentajePesoMateria({ payload, onSuccess, onError }) {\r\n return apiPut(`${urlMateriasPeriodo}/uses-percent-weight`, payload.id, payload)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function publishSubject({\r\n id, subject, onSuccess, onError,\r\n}) {\r\n return apiPut(`${urlMateriasPeriodo}/publish`, id, subject)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function stampSubject({\r\n id, subject, onSuccess, onError,\r\n}) {\r\n return apiPut(`${urlMateriasPeriodo}/stamp`, id, subject)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function updateScoreHomework(scoreStudent, callback) {\r\n return apiPost(`${urlMateriasPeriodo}/homework/update-score`, scoreStudent)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function savePlanning({\r\n page, paylaod, onSuccess, onError,\r\n}) {\r\n return apiPost(`${urlMateriasPeriodo}/planning/${page}`, paylaod)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchPlanningFormData({ onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/planning/form-data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function remove(id, callback) {\r\n return apiDelete(`${urlMateriasPeriodo}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function removeHomework(id, callback) {\r\n return apiDelete(`${urlMateriasPeriodo}/homework/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchHomeworkFormDatas({ onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/homework/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function fetchFormDatas({ onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchSubjectsByMeshId({ meshId, onSuccess, onError }) {\r\n return apiGet(`${urlMateriasPeriodo}/subjects/${meshId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchSubjectsScheduleBySubjectPeriodId({\r\n subjectId, onSuccess, onError,\r\n}) {\r\n return apiGet(`${urlMateriasPeriodo}/subjects-schedule/${subjectId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchSubjectsObjectivesBySubjectPeriodId({\r\n planningId, onSuccess, onError,\r\n}) {\r\n return apiGet(`${urlMateriasPeriodo}/subjects-objectives/${planningId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function AllSubjectsDashboardByStudent(params) {\r\n return apiGet(`${urlMateriasPeriodo}/materias-tablero-alumno`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getSubjectStudents(params) {\r\n const filters = params ? params.filters || {} : {};\r\n return apiPut(`${urlMateriasPeriodo}/alumnos-materia`, params.id, filters)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function downloadSubjectStudents({ id, onSuccess, onError }) {\r\n return apiDownload(`${urlMateriasPeriodo}/alumnos-materia-download/${id}`)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Alumnos.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (onSuccess) onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function downloadSubjectStudentsScore({ id, onSuccess, onError }) {\r\n return apiDownload(`${urlMateriasPeriodo}/alumnos-materia-notas-download/${id}`)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Alumnos.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (onSuccess) onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Container,\r\n Badge,\r\n} from 'reactstrap';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport {\r\n filterMyHomework,\r\n} from '../../../redux/actions/materiaPeriodoActions';\r\nimport { createErrorMessage } from '../../../helpers/notification';\r\n\r\nclass HomeworkContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n materiaPeriodoId: PropTypes.string.isRequired,\r\n utilizaPorcentajePesoMateria: PropTypes.bool.isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 10 },\r\n };\r\n\r\n this.columns = utilizaPorcentajePesoMateria => [\r\n {\r\n key: 'id',\r\n name: '#',\r\n width: '85px',\r\n format: ({ id, tareaMateriaId }) => `${id || tareaMateriaId}`,\r\n },\r\n {\r\n key: 'tarea', name: 'Tarea', width: '85px', search: false,\r\n },\r\n {\r\n key: 'tipoTarea',\r\n name: 'Tipo Tarea',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${row.tipoTarea.label}`,\r\n },\r\n {\r\n key: 'puntajeObtenido',\r\n name: 'Puntaje Obtenido',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${row.puntajeObtenido}`,\r\n },\r\n {\r\n key: 'puntajeTotal',\r\n name: 'Puntaje Total',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${row.puntajeTotal}`,\r\n },\r\n {\r\n key: 'porcentajePesoMateria',\r\n visible: utilizaPorcentajePesoMateria,\r\n name: 'Porcentaje Peso Materia',\r\n width: '85px',\r\n className: 'text-center',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updateTable(page, pageSize);\r\n }\r\n\r\n updateTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n const { materiaPeriodoId: subjectId } = this.props;\r\n filterMyHomework({\r\n subjectId,\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ items, totalItemsCount }) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de tareas');\r\n },\r\n });\r\n }\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n format = value => (\r\n

\r\n \r\n {value}\r\n \r\n

\r\n );\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const {\r\n utilizaPorcentajePesoMateria,\r\n } = this.props;\r\n\r\n const {\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(HomeworkContainer);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Badge,\r\n Col,\r\n Row,\r\n} from 'reactstrap';\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\n\r\nconst HorariosTable = ({\r\n items = [],\r\n profesores = [],\r\n codigoClassroom = '',\r\n onChangeText,\r\n materiaPeriodo = {},\r\n esAlumno = false,\r\n}) => {\r\n const format = escalafon => (\r\n

\r\n \r\n {escalafon.value === 0 ? '' : 'Prof. '}{escalafon.label}\r\n \r\n

\r\n );\r\n\r\n const { preRequisitos = [] } = materiaPeriodo;\r\n const horasSemanales = [\r\n {\r\n name: <>TEÓRICAS: Hs., value: materiaPeriodo.horasTeoriaSemanal,\r\n },\r\n { name: <>PRÁ CTICAS: Hs., value: materiaPeriodo.horasPracticaSemanal },\r\n { name: <>LABORATORIO. Hs., value: materiaPeriodo.horasLaboratorioSemanal },\r\n { name: <>TOTAL:, value: materiaPeriodo.totalHorasSemanal },\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 {profesores.map(({\r\n id,\r\n profesor,\r\n escalafon,\r\n }, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DOCENTESCATEGORÍA
\r\n
\r\n {`${index + 1}.- ${profesor}`}\r\n
\r\n
\r\n
\r\n {format(escalafon)}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horasSemanales.map(({\r\n name,\r\n value,\r\n }, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
HORAS SEMANALES:
\r\n
\r\n {name}\r\n
\r\n
\r\n
\r\n {value}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.map(({\r\n id,\r\n dia,\r\n tipoActividadAcademicaHorario,\r\n horaInicio,\r\n horaFin,\r\n }) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
HORARIO DE CLASES: DÍA/HORA
\r\n
\r\n {tipoActividadAcademicaHorario.label}\r\n
\r\n
\r\n
\r\n {dia.label}: {horaInicio}-{horaFin}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n esAlumno || !materiaPeriodo.canEditarPlaneamiento ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {preRequisitos.map(({\r\n materia, semestreNro,\r\n }) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n CODIGO DEL CLASSROOM: \r\n {codigoClassroom}\r\n
\r\n
\r\n
\r\n CODIGO DEL CLASSROOM:\r\n
\r\n \r\n
\r\n
\r\n
PRE-REQUISITOS:
\r\n
\r\n {materia}\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nHorariosTable.propTypes = {\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n codigoClassroom: PropTypes.string,\r\n onChangeText: PropTypes.func.isRequired,\r\n esAlumno: PropTypes.bool,\r\n};\r\n\r\nHorariosTable.defaultProps = {\r\n meta: {},\r\n codigoClassroom: '',\r\n esAlumno: false,\r\n};\r\n\r\nexport default HorariosTable;\r\n","import { urlAssistances } from '../../api/urls';\r\nimport {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n} from '../../api/index';\r\n\r\nexport function fetchAll({\r\n subjectPeriodId,\r\n pageInfo = ({ page: 1, pageSize: 15 }),\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiPost(`${urlAssistances}/${subjectPeriodId}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchMy({\r\n subjectPeriodId,\r\n pageInfo = ({ page: 1, pageSize: 15 }),\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiPost(`${urlAssistances}/${subjectPeriodId}/my`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetch({ id, onSuccess, onError }) {\r\n return apiGet(`${urlAssistances}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas({ subjectPeriodId, onSuccess, onError }) {\r\n return apiGet(`${urlAssistances}/form-data/${subjectPeriodId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function saveAssistance({ payload, onSuccess, onError }) {\r\n return apiPost(`${urlAssistances}`, payload)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function updatePresenceStundent({\r\n assistanceId, payload, onSuccess, onError,\r\n}) {\r\n return apiPost(`${urlAssistances}/${assistanceId}/update-presence`, payload)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function deleteAssistance(id, callback) {\r\n return apiDelete(`${urlAssistances}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Badge,\r\n Container,\r\n} from 'reactstrap';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport TooltipItem from '../../../shared/components/TooltipItem';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport {\r\n fetchMy,\r\n} from '../../../redux/actions/assistanceActions';\r\nimport {\r\n dateMMFormat,\r\n dateDDFormat,\r\n} from '../../../helpers/dateFormat';\r\nimport {\r\n createErrorMessage,\r\n} from '../../../helpers/notification';\r\n\r\nclass AssistanceContainer extends PureComponent {\r\n static propTypes = {\r\n subjectPeriodId: PropTypes.number.isRequired,\r\n loadAssistance: PropTypes.bool.isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n loadingAssists: false,\r\n items: [],\r\n assists: [],\r\n studentAssists: [],\r\n filters: { id: 10 },\r\n showForm: false,\r\n students: [],\r\n currentStudentId: 0,\r\n };\r\n\r\n this.columns = ({ assists, studentAssists, canEditAttendances = true }) => {\r\n const cols = [];\r\n\r\n const groupByAssistance = assists.map(({ id, date, reference }) => ({ assistanceId: id, date, reference }));\r\n\r\n const assistanceByStudents = studentAssists\r\n .map(({ assistanceId, studentId, present }) => ({ assistanceId, studentId, present }));\r\n const assistanceLength = groupByAssistance.length;\r\n const attendancePerc = [];\r\n\r\n studentAssists\r\n .map(({ studentId, present }) => ({ studentId, present }))\r\n .reduce((res, { studentId, present }) => {\r\n if (!res[studentId]) {\r\n res[studentId] = { studentId, ok: 0 };\r\n attendancePerc.push(res[studentId]);\r\n }\r\n\r\n res[studentId].ok += present ? 1 : 0;\r\n\r\n return res;\r\n }, {});\r\n\r\n const assistanceHeaders = !canEditAttendances\r\n ? []\r\n : groupByAssistance.map(a => ({\r\n key: `assistance${a.assistanceId}`,\r\n name: (\r\n
\r\n
{dateDDFormat(a.date)}{a.reference ? `-${a.reference}` : ''}
\r\n \r\n
\r\n ),\r\n width: '75px',\r\n className: 'text-center',\r\n format: ({ studentId }) => {\r\n const assistanceByStudent = assistanceByStudents\r\n .find(as => as.assistanceId === a.assistanceId && as.studentId === studentId);\r\n\r\n if (!assistanceByStudent || assistanceByStudent.present === null) {\r\n return ​➖;\r\n }\r\n\r\n if (assistanceByStudent.present === false) {\r\n return (\r\n ​❌\r\n );\r\n }\r\n\r\n return (\r\n ✔️\r\n );\r\n },\r\n }));\r\n\r\n return [\r\n ...cols,\r\n ...[\r\n {\r\n key: 'assistPerc',\r\n name: '% Asistencia',\r\n editable: false,\r\n width: '110px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ studentId: id, assistPerc = 0 }) => (\r\n \r\n {\r\n canEditAttendances\r\n ? assistPerc\r\n : attendancePerc.filter(({ studentId }) => id === studentId)\r\n .map(({ ok }) => Math.round((ok / assistanceLength) * 100))[0]\r\n || 0\r\n }\r\n \r\n ),\r\n },\r\n ],\r\n ...assistanceHeaders,\r\n ];\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n loadAssistance,\r\n } = this.props;\r\n\r\n if (!loadAssistance) {\r\n this.setState({\r\n loading: false,\r\n });\r\n return;\r\n }\r\n\r\n this.refreshTable();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { loadAssistance } = this.props;\r\n\r\n if (loadAssistance === prevProps.loadAssistance) {\r\n return;\r\n }\r\n\r\n if (loadAssistance) {\r\n this.refreshTable();\r\n }\r\n }\r\n\r\n refreshTable = (criteria = {}) => {\r\n const {\r\n page = 1, pageSize = 25, totalItemsCount = 0, filters = {},\r\n } = criteria;\r\n\r\n const state = {\r\n filters: filters || { logContent: [] },\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n };\r\n\r\n this.fetchTable({ ...state });\r\n }\r\n\r\n fetchTable = ({ page, pageSize, filters }) => {\r\n const {\r\n subjectPeriodId,\r\n } = this.props;\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n\r\n fetchMy({\r\n subjectPeriodId,\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ pageInfo, assists, studentAssists }) => {\r\n const { items, totalItemsCount } = pageInfo;\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n assists,\r\n studentAssists,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias por periodo');\r\n },\r\n });\r\n }\r\n\r\n handleHideForm = () => {\r\n this.setState({\r\n showForm: false,\r\n });\r\n\r\n this.refreshTable();\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.refreshTable({ page, pageSize, filters });\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.refreshTable({ page: 1, pageSize, values });\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize, filters } = this.state;\r\n const { autoHideSearch } = filters;\r\n this.refreshTable({ page: 1, pageSize, filters: { autoHideSearch } });\r\n };\r\n\r\n nextPage = () => {\r\n const { students = [], currentStudentId } = this.state;\r\n\r\n const index = students.findIndex(s => s.studentId === currentStudentId);\r\n const newIndex = index + 1 === students.length ? 0 : index + 1;\r\n\r\n const student = students[newIndex];\r\n\r\n this.setState({ currentStudentId: student.studentId });\r\n };\r\n\r\n previousPage = () => {\r\n const { students = [], currentStudentId } = this.state;\r\n\r\n const index = students.findIndex(s => s.studentId === currentStudentId);\r\n const { studentId } = students[index === 0 ? students.length - 1 : index - 1];\r\n\r\n this.setState({ currentStudentId: studentId });\r\n };\r\n\r\n assistanceButtons = ({\r\n assistanceId,\r\n currentStudentId,\r\n assistanceValue,\r\n onPreviousPage,\r\n onNextPage,\r\n onPresent,\r\n onAbsent,\r\n pointerStudent,\r\n }) => {\r\n const { loadingAssists } = this.state;\r\n if (loadingAssists) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{pointerStudent}
\r\n \r\n {assistanceValue.description}\r\n \r\n
\r\n onPresent({ assistanceId, studentId: currentStudentId })}\r\n >\r\n \r\n \r\n onAbsent({ assistanceId, studentId: currentStudentId })}\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n dataTable = () => {\r\n const {\r\n showForm,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n assists,\r\n studentAssists,\r\n } = this.state;\r\n\r\n if (showForm) {\r\n return null;\r\n }\r\n\r\n return (\r\n this.getGridActions(key, row)}\r\n itemsToShow={items.length}\r\n page={page}\r\n pageSize={pageSize}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {this.dataTable()}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxAssistanceContainer = reduxForm({\r\n form: 'AssistanceContainer',\r\n enableReinitialize: true,\r\n})(AssistanceContainer);\r\n\r\nexport default setPropsAsInitialValues(ReduxAssistanceContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Nav,\r\n NavItem,\r\n TabPane,\r\n TabContent,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\n\r\nimport {\r\n createErrorMessage,\r\n // createWarningMessage,\r\n} from '../../helpers/notification';\r\nimport {\r\n fetchMySubject,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport Homework from './Tasks';\r\nimport HorariosTable from '../Profesor/PlaneamientoForm/components/HorariosTable';\r\nimport Assistance from './Assistance/index';\r\n\r\nclass StudentDataContainer extends PureComponent {\r\n static propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n activeTab: '1',\r\n materiaPeriodo: null,\r\n loadAssistance: false,\r\n };\r\n\r\n this.inputStyle = {\r\n fontSize: '18px',\r\n height: '36px',\r\n color: 'greenyellow',\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n backgroundColor: '#232329',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getMateriaPeriodo();\r\n }\r\n\r\n getMateriaPeriodo = () => {\r\n const { id } = this.props;\r\n this.setState({ loading: true });\r\n fetchMySubject({\r\n id,\r\n onSuccess: (materiaPeriodo) => {\r\n this.setState({\r\n materiaPeriodo, loading: false,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n materiaPeriodo: {}, loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos de la materia');\r\n },\r\n });\r\n }\r\n\r\n toggle = (tab) => {\r\n const { activeTab } = this.state;\r\n if (activeTab !== tab) {\r\n if (tab === '2') {\r\n this.setState({\r\n activeTab: tab,\r\n loadAssistance: true,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n activeTab: tab,\r\n loadAssistance: false,\r\n });\r\n }\r\n };\r\n\r\n goBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n format = value => (\r\n \r\n {value}{!Number.isInteger(value) ? '' : '%'}\r\n \r\n );\r\n\r\n render() {\r\n const {\r\n materiaPeriodo,\r\n loading,\r\n activeTab,\r\n loadAssistance,\r\n } = this.state;\r\n\r\n if (loading || !materiaPeriodo) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n {materiaPeriodo.materia}\r\n

{materiaPeriodo.seccion}

\r\n \r\n\r\n
\r\n \r\n
\r\n
Carrera:{' '}
\r\n
{materiaPeriodo.carrera}
\r\n
\r\n \r\n \r\n
\r\n
Semestre:{' '}
\r\n
{materiaPeriodo.semestre}
\r\n
\r\n \r\n \r\n
\r\n
Año:{' '}
\r\n
{materiaPeriodo.anho}
\r\n
\r\n \r\n \r\n
\r\n
Horas Semanales
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.format('PP:')}{' '}\r\n {this.format(Math.round(materiaPeriodo.porcentajePP))}\r\n
\r\n \r\n \r\n
\r\n {this.format('Asistencias:')}{' '}\r\n {this.format(Math.round(materiaPeriodo.porcentajeAsistencia))}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Volver\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(StudentDataContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n Form,\r\n Col,\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Alert,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n AllSubjectsDashboardByStudent,\r\n} from '../../redux/actions/materiaPeriodoActions';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\n\r\nimport { createErrorMessage } from '../../helpers/notification';\r\nimport {\r\n dateDDMMYYFormat,\r\n dateDDMMYYHHMMFormat,\r\n} from '../../helpers/dateFormat';\r\nimport {\r\n EstadoMateriaPeriodo,\r\n} from '../../constants/enums';\r\n\r\nclass StudentsDashboardContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n items: [],\r\n };\r\n\r\n this.colors = [\r\n {\r\n value: 0, color: 'secondary',\r\n },\r\n {\r\n value: 1, color: 'info',\r\n },\r\n {\r\n value: 2, color: 'success',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.loadFormData(page, pageSize);\r\n }\r\n\r\n loadFormData = () => {\r\n AllSubjectsDashboardByStudent({\r\n onSuccess: (items) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias');\r\n },\r\n });\r\n }\r\n\r\n verMateria = (id) => {\r\n const { history } = this.props;\r\n history.push(`/pages/student-subjects/${id}`);\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.loadFormData(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n handleSubmitCard = (e) => {\r\n e.preventDefault();\r\n }\r\n\r\n getColor = ({ value }) => {\r\n const item = this.colors.find(c => c.value === value);\r\n if (!item) {\r\n return this.colors[0].color;\r\n }\r\n\r\n return item.color;\r\n };\r\n\r\n showEstadoMateriaPeriodoData = ({ estado, rendimientoAlumno }) => {\r\n if (![EstadoMateriaPeriodo.Publicado.value, EstadoMateriaPeriodo.Sellado.value].includes(estado.value)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {EstadoMateriaPeriodo.Publicado.label}: \r\n \r\n {rendimientoAlumno ? dateDDMMYYHHMMFormat(rendimientoAlumno.fechaPublicado) : null}\r\n \r\n
\r\n {\r\n EstadoMateriaPeriodo.Sellado.value === estado.value\r\n ? (\r\n
\r\n {EstadoMateriaPeriodo.Sellado.label}: \r\n \r\n {rendimientoAlumno ? dateDDMMYYHHMMFormat(rendimientoAlumno.fechaSellado) : null}\r\n \r\n
\r\n )\r\n : null\r\n }\r\n
\r\n Fecha Expiración: \r\n \r\n {rendimientoAlumno ? dateDDMMYYFormat(rendimientoAlumno.fechaExpiracion) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {(!items || !items.length) && (\r\n

\r\n \r\n
\r\n No tienes materias marcadas para ver en el Tablero.\r\n
\r\n
\r\n Puedes marcar las estrellas{' '}\r\n \r\n {\r\n ' en tu listado de \"Mis Materias\" para mostrarlas en el Tablero.'\r\n }\r\n
\r\n
\r\n

\r\n )\r\n }\r\n {items && items.length && (\r\n \r\n \r\n
\r\n
\r\n

\r\n Tablero{' / Lista de materias favoritas '}\r\n \r\n

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

Estados:

\r\n \r\n Preliminar\r\n \r\n \r\n Publicado\r\n \r\n \r\n Sellado\r\n \r\n
\r\n \r\n
\r\n \r\n {items.map(g => (\r\n \r\n
\r\n this.verMateria(g.id)}\r\n className=\"link-card card-subject pb-0\"\r\n >\r\n \r\n \r\n \r\n {g.seccion}\r\n \r\n \r\n # {g.id}\r\n \r\n {' '}\r\n \r\n Cod {g.codigoMateria}\r\n \r\n \r\n
\r\n

\r\n {g.materia}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n {g.carrera}\r\n \r\n \r\n {g.semestreNroOrden}{' º Semestre '}{g.anho}\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n Asistencia: \r\n \r\n {Math.round(g.porcentajeAsistencia)} %\r\n \r\n
\r\n
\r\n PP: \r\n \r\n {Math.round(g.porcentajePP)} %\r\n \r\n
\r\n
\r\n \r\n
\r\n {this.showEstadoMateriaPeriodoData(g)}\r\n\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
\r\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 withRouter(StudentsDashboardContainer);\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.usuario || !attrs.usuario.value) {\r\n errors.usuario = 'Debe seleccioanr el alumno';\r\n }\r\n if (!attrs.malla || !attrs.malla.value) {\r\n errors.malla = 'Debe seleccioanr la malla';\r\n }\r\n if (!(attrs.numeroLegajo && attrs.numeroLegajo > 0)) {\r\n errors.numeroLegajo = 'El número de legajo no es correcto';\r\n }\r\n\r\n if (!attrs.fechaIngreso) {\r\n errors.fechaIngreso = 'Debe ingresar la fecha de ingreso';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport { Card, CardBody, Col } from 'reactstrap';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport renderDatePickerField from '../../../shared/components/form/DatePicker';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass StudentForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n users: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n mallas: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n }\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n users,\r\n mallas,\r\n } = this.props;\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
Datos del alumno
\r\n
\r\n\r\n
\r\n Número de Legajo\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Alumno\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Malla - Carrera\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Fecha de ingreso\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst StudentFormForm = reduxForm({\r\n form: 'StudentFormForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(StudentForm);\r\n\r\nexport default setPropsAsInitialValues(StudentFormForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport StudentForm from './StudentForm';\r\nimport {\r\n fetchStudent,\r\n saveStudent,\r\n fetchAllMallas,\r\n} from '../../../redux/actions/studentsActions';\r\nimport { fetchAllUsers } from '../../../redux/actions/usersActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\n\r\nclass EditStudentContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loaded: false };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchUserList();\r\n this.fetchMallaList();\r\n this.fetchCurrentStudent();\r\n }\r\n\r\n fetchCurrentStudent = () => {\r\n const { id, history } = this.props;\r\n if (id) {\r\n fetchStudent(id,\r\n {\r\n onSuccess: (dto) => {\r\n const {\r\n mallaId,\r\n malla,\r\n carrera,\r\n usuarioId,\r\n nombre,\r\n apellido,\r\n } = dto;\r\n const student = {\r\n ...dto,\r\n malla: {\r\n value: mallaId,\r\n label: `${malla} - ${carrera}`,\r\n },\r\n usuario: {\r\n value: usuarioId,\r\n label: `${nombre} ${apellido}`,\r\n },\r\n };\r\n this.setState({ student, loaded: true });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El alumno no existe');\r\n history.push('/pages/students');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del alumno');\r\n }\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n student: {\r\n id: 0,\r\n numeroLegajo: 0,\r\n },\r\n });\r\n this.setState({ loaded: true });\r\n }\r\n }\r\n\r\n fetchUserList = () => {\r\n fetchAllUsers({\r\n onSuccess: (users) => {\r\n this.setState({ users });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos de usuarios');\r\n },\r\n });\r\n }\r\n\r\n fetchMallaList = () => {\r\n fetchAllMallas({\r\n onSuccess: (mallas) => {\r\n this.setState({ mallas });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos de mallas');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const { malla, usuario, numeroLegajo } = values;\r\n const { value: mallaId } = malla;\r\n const { value: usuarioId } = usuario;\r\n const params = {\r\n ...values,\r\n usuarioId,\r\n mallaId,\r\n numeroLegajo: +numeroLegajo,\r\n };\r\n const { history } = this.props;\r\n saveStudent(params,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Alumno guardado exitosamente');\r\n history.push('/pages/students');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el alumno');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n student,\r\n loaded,\r\n users,\r\n mallas,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n {id ? 'Editar' : 'Nuevo'} alumno\r\n

\r\n

\r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la información del alumno\r\n

\r\n \r\n
\r\n \r\n \r\n {!(loaded && users && mallas)\r\n ? (

Cargando...

)\r\n : (\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nEditStudentContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default EditStudentContainer;\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.student || !attrs.student.perfilAlumnoId) {\r\n errors.usuario = 'Debe seleccioanr el alumno';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n Row,\r\n Container,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass InscriptionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onChangeStudent: PropTypes.func.isRequired,\r\n onInscriptionChanges: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n viewPageAs: PropTypes.number,\r\n students: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n subjects: PropTypes.arrayOf(PropTypes.shape({})),\r\n student: PropTypes.shape({}),\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n student: {},\r\n subjects: [],\r\n viewPageAs: 0,\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n student,\r\n students,\r\n subjects,\r\n onChangeStudent,\r\n onInscriptionChanges,\r\n viewPageAs,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
Inscripción a materias
\r\n
\r\n\r\n
\r\n Alumno\r\n
\r\n {(viewPageAs === 2 || viewPageAs === 3) && (\r\n onChangeStudent(v.value)}\r\n />\r\n )}\r\n {(viewPageAs === 0) && (\r\n \r\n )}\r\n
\r\n
\r\n\r\n \r\n \r\n {subjects && subjects.map(g => (\r\n \r\n \r\n \r\n
\r\n

{g.nombre}

\r\n
\r\n {g.materias.map(m => (\r\n
\r\n \r\n {m.nombre}\r\n  \r\n {m.horarios.map(({\r\n id,\r\n dia,\r\n horaInicio,\r\n horaFin,\r\n }) => (\r\n \r\n {dia.label.substring(0, 3)}.: {horaInicio}-{horaFin}\r\n  \r\n
\r\n ))}\r\n
\r\n )}\r\n value={m.inscripto ? 'checked' : ''}\r\n defaultChecked={m.inscripto}\r\n onChange={v => onInscriptionChanges(m.materiaPeriodoId, v)}\r\n />\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Guardar\r\n \r\n { localStorage.setItem('editProfile', false); onBack(); }}\r\n >Cancelar - Volver\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst InscriptionFormForm = reduxForm({\r\n form: 'InscriptionFormForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(InscriptionForm);\r\n\r\nexport default setPropsAsInitialValues(InscriptionFormForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport InscriptionForm from './InscriptionForm';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport {\r\n fetchStudent,\r\n fetchSelectStudentValues,\r\n} from '../../../redux/actions/studentsActions';\r\nimport {\r\n fetchAllSubjectsBySemesters,\r\n saveStudentSubjects,\r\n} from '../../../redux/actions/studentSubjectsActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport { SidebarProps } from '../../../shared/prop-types/ReducerProps';\r\n\r\nclass InscriptionContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loaded: false, materiasModificadas: [] };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchStudentList();\r\n const { sidebar: { viewPageAs } } = this.props;\r\n if (viewPageAs === 0) {\r\n this.fetchCurrentStudent();\r\n }\r\n }\r\n\r\n fetchCurrentStudent = () => {\r\n this.fetchStudentData(0);\r\n this.fetchSubjectList(0);\r\n }\r\n\r\n fetchStudentData = (perfilAlumnoId) => {\r\n const { history } = this.props;\r\n fetchStudent(perfilAlumnoId, {\r\n onSuccess: (dto) => {\r\n const {\r\n id,\r\n numeroLegajo,\r\n nombre,\r\n apellido,\r\n } = dto;\r\n const student = {\r\n ...dto,\r\n perfilAlumnoId,\r\n value: id,\r\n label: `${numeroLegajo}: ${nombre} ${apellido}`,\r\n };\r\n this.setState({ student, loaded: true });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El alumno no existe');\r\n history.push('/pages/student-subjects');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del alumno');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchStudentList = () => {\r\n fetchSelectStudentValues({\r\n onSuccess: (students) => {\r\n this.setState({ students, loaded: true });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos de alumnos');\r\n },\r\n });\r\n }\r\n\r\n fetchSubjectList = (perfilAlumnoId) => {\r\n fetchAllSubjectsBySemesters({\r\n perfilAlumnoId,\r\n onSuccess: (subjects) => {\r\n this.setState({ subjects });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar las materias');\r\n },\r\n });\r\n }\r\n\r\n onInscriptionChanges = (id, evt) => {\r\n if (evt.target) {\r\n const { materiasModificadas } = this.state;\r\n const subject = materiasModificadas.find(i => i.materiaPeriodoId === id);\r\n if (!subject) {\r\n materiasModificadas.push({\r\n materiaPeriodoId: id,\r\n inscripto: evt.target.checked,\r\n });\r\n this.setState({ materiasModificadas });\r\n } else {\r\n subject.inscripto = evt.target.checked;\r\n this.setState({ materiasModificadas });\r\n }\r\n }\r\n }\r\n\r\n handleSave = (values) => {\r\n const { student: { value: perfilAlumnoId }, conforme } = values;\r\n const { materiasModificadas } = this.state;\r\n const params = { materiasModificadas, perfilAlumnoId, conforme };\r\n const { history } = this.props;\r\n\r\n this.setState({ loaded: false });\r\n\r\n saveStudentSubjects(params, {\r\n onSuccess: ({ message = [] }) => {\r\n this.setState({ loaded: true });\r\n\r\n localStorage.setItem('editProfile', false);\r\n if (message.length) {\r\n const success = message.filter(m => m.success)\r\n .map((m, index) =>
  • {m.success}
  • );\r\n\r\n const error = message.filter(m => m.error)\r\n .map((m, index) =>
  • {m.error}
  • );\r\n\r\n if (success.length) {\r\n createSuccessMessage(
      {success}
    );\r\n }\r\n\r\n if (error.length === 0) {\r\n history.push('/pages/student-subjects');\r\n return;\r\n }\r\n\r\n createWarningMessage(
      {error}
    );\r\n\r\n this.fetchStudentData(perfilAlumnoId);\r\n this.fetchSubjectList(perfilAlumnoId);\r\n\r\n return;\r\n }\r\n\r\n createSuccessMessage('Inscripción guardada exitosamente');\r\n history.push('/pages/student-subjects');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la inscripción');\r\n }\r\n\r\n this.setState({ loaded: true });\r\n },\r\n });\r\n };\r\n\r\n handleSubmit = (values) => {\r\n const editProfile = localStorage.getItem('editProfile') === 'true';\r\n if (!editProfile) {\r\n this.handleSave({\r\n ...values,\r\n conforme: false,\r\n });\r\n return;\r\n }\r\n\r\n Confirm({\r\n title: 'Manifiesto de Conformidad',\r\n question: `\r\n ¿Declaro bajo fe de juramento interiorizarme de todos los Reglamentos institucionales\r\n y me comprometo a respetarlos y a acatar las sanciones disciplinarias respectivas, si así no lo hiciere?\r\n `,\r\n yesLabel: 'Sí, Acepto',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n this.handleSave({\r\n ...values,\r\n conforme: true,\r\n });\r\n },\r\n });\r\n }\r\n\r\n onChangeStudent = (id) => {\r\n this.fetchStudentData(id);\r\n this.fetchSubjectList(id);\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const { sidebar: { viewPageAs } } = this.props;\r\n const {\r\n student,\r\n loaded,\r\n students = [],\r\n subjects = [],\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Inscripción a materias\r\n

    \r\n

    \r\n {id ? 'Modifica ' : 'Ingresa '}\r\n la información de materias del alumno\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(loaded && student && students.length && subjects.length)\r\n ? \r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nInscriptionContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n sidebar: SidebarProps.isRequired,\r\n};\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(InscriptionContainer));\r\n","import { apiGet, apiPost, apiDelete } from '../../api/index';\r\nimport { urlPeriodos } from '../../api/urls';\r\n\r\nexport function filter(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlPeriodos}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function get(id, callback) {\r\n return apiGet(`${urlPeriodos}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function save(obj, callback) {\r\n return apiPost(`${urlPeriodos}`, obj)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function remove(id, callback) {\r\n return apiDelete(`${urlPeriodos}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(params) {\r\n return apiGet(`${urlPeriodos}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchEditSubjectsFormData(periodoId, params) {\r\n return apiGet(`${urlPeriodos}/form_data_edit_subjects/${periodoId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function fetchAllSubjectsBySemesters(params) {\r\n return apiGet(`${urlPeriodos}/subjects_by_semesters/${params.periodoId}/${params.carreraId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function saveSubjects(data, callback) {\r\n return apiPost(`${urlPeriodos}/save_subjects`, data)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport {\r\n fetchStudentSubjects,\r\n deleteStudentSubject,\r\n addToFavorites,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport { fetchFormDatas } from '../../redux/actions/periodoActions';\r\nimport { SidebarProps } from '../../shared/prop-types/ReducerProps';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport {\r\n createErrorMessage,\r\n createWarningMessage,\r\n createSuccessMessage,\r\n} from '../../helpers/notification';\r\nimport { getCurrentUser } from '../../helpers/storage';\r\nimport { Roles } from '../../constants/enums';\r\n\r\nclass StudentSubjectsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n const user = getCurrentUser();\r\n // const adminInscripcion = user.esFuncionario || user.esAdmin;\r\n const adminInscripcion = user.esAdmin;\r\n this.state = {\r\n adminInscripcion,\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n periodos: [],\r\n };\r\n this.columns = [\r\n {\r\n key: 'mostrarEnTablero',\r\n name: 'Tablero',\r\n width: '80px',\r\n search: false,\r\n visible: this.showStarIcon(user),\r\n icon: {\r\n callback: row => (this.onAddToFavoritesSubmit(row)),\r\n component: row => (\r\n \r\n ),\r\n },\r\n },\r\n {\r\n key: 'nombreAlumno',\r\n name: 'Alumno',\r\n search: false,\r\n visible: this.showNombre(user),\r\n },\r\n {\r\n key: 'nombre',\r\n name: 'Nombre del alumno',\r\n search: this.showNombre(user),\r\n visible: false,\r\n },\r\n {\r\n key: 'apellido',\r\n name: 'Apellido del alumno',\r\n search: this.showNombre(user),\r\n visible: false,\r\n },\r\n {\r\n key: 'codigoMateria',\r\n name: 'Codigo Materia',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'periodo',\r\n name: 'Periodo',\r\n search: true,\r\n visible: true,\r\n className: 'text-center',\r\n width: '260px',\r\n type: 'select',\r\n searchProps: {\r\n options: this.getPeriodos,\r\n },\r\n format: row => `${row.periodo ? row.periodo.label : '-'}`,\r\n },\r\n {\r\n key: 'nombreMateria',\r\n name: 'Materia',\r\n format: row => `${row.codigoMateria} - ${row.nombreMateria}-${row.seccion}`,\r\n search: false,\r\n width: '300px',\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'malla',\r\n name: 'Malla',\r\n width: '160px',\r\n search: true,\r\n format: row => row.nombreMalla,\r\n },\r\n {\r\n key: 'carrera',\r\n name: 'Carrera',\r\n width: '160px',\r\n search: true,\r\n visible: false,\r\n format: row => row.nombreCarrera,\r\n },\r\n {\r\n key: 'numeroSemestre',\r\n name: 'Semestre',\r\n type: 'number',\r\n search: true,\r\n format: row => `${row.numeroSemestre}º`,\r\n width: '70px',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n width: '110px',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n width: '80px',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'tareasPendientes',\r\n name: 'Tareas',\r\n type: 'number',\r\n search: false,\r\n format: ({ id, cantidadTareas = 0 }) => {\r\n if (!id) {\r\n return <>;\r\n }\r\n\r\n return (\r\n

    \r\n 0 ? 'primary' : 'secondary'}`}\r\n to={`/pages/student-tasks/${id}`}\r\n >\r\n {cantidadTareas}\r\n \r\n

    \r\n );\r\n },\r\n width: '70px',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '85px',\r\n visible: true,\r\n className: 'text-center',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList({ periodo: {} });\r\n }\r\n\r\n fetchDatasList = (filters) => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchFormDatas({\r\n onSuccess: ({ periodos }) => {\r\n this.setState({\r\n periodos,\r\n loading: false,\r\n });\r\n\r\n const { page, pageSize } = this.state;\r\n this.updateSubjectsTable(page, pageSize, filters);\r\n },\r\n onError: (error) => {\r\n console.log(error);\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n getViewPageAs = () => {\r\n const { sidebar: { viewPageAs } } = this.props;\r\n return viewPageAs;\r\n }\r\n\r\n showStarIcon = (user) => {\r\n const viewAsAlumno = this.getViewPageAs() === Roles.Alumno;\r\n return (user.esAlumno && !user.esAdmin) || (user.esAlumno && user.esAdmin && viewAsAlumno);\r\n }\r\n\r\n showNombre = (user) => {\r\n const viewAsAllowedUser = [Roles.Admin, Roles.Funcionario].includes(this.getViewPageAs());\r\n return (user.esAdmin || user.esFuncionario) && viewAsAllowedUser;\r\n }\r\n\r\n updateSubjectsTable = (page, pageSize, filters = { periodo: {}, numeroSemestre: 0 }) => {\r\n const {\r\n periodo = { value: 0, label: '-' },\r\n numeroSemestre = 0,\r\n } = filters;\r\n\r\n const params = {\r\n ...filters,\r\n numeroSemestre: Number(numeroSemestre),\r\n periodoId: periodo.value,\r\n };\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: params,\r\n });\r\n\r\n const { sidebar: { viewPageAs } } = this.props;\r\n fetchStudentSubjects(\r\n viewPageAs !== 0,\r\n {\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: params,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n enableInscription: pageInfo.enableInscription,\r\n });\r\n },\r\n onError: (error) => {\r\n if (error && error.type === 'warning') {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar cargar la lista de materias');\r\n }\r\n\r\n this.setState({ items: [], loading: false });\r\n },\r\n },\r\n );\r\n }\r\n\r\n handleDeleteSubject = (inscription) => {\r\n const name = `${inscription.codigoMateria}- ${inscription.nombreMateria}`;\r\n Confirm({\r\n title: 'Borrar inscripción',\r\n question: `Estás seguro que deseas eliminar la inscripción a ${name}?`,\r\n yesLabel: 'Si, Borrar inscripción',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n deleteStudentSubject(inscription.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Inscripción borrada exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateSubjectsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar borrar la inscripción');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n editStudentSubject = (student) => {\r\n const { history } = this.props;\r\n history.push(`/pages/student-subjects/edit/${student.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateSubjectsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key, obj) => {\r\n const { adminInscripcion } = this.state;\r\n const { enableInscription } = obj;\r\n if (!(key === 'actions')) return null;\r\n const title = enableInscription ? '(Periodo cerrado)' : '';\r\n let disabledCss = '';\r\n\r\n if (!enableInscription) {\r\n disabledCss = adminInscripcion ? 'semi-disabled' : 'disabled';\r\n }\r\n\r\n const actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (student) => {\r\n if (enableInscription || adminInscripcion) this.editStudentSubject(student);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (student) => {\r\n if (enableInscription || adminInscripcion) this.handleDeleteSubject(student);\r\n },\r\n },\r\n ];\r\n\r\n if (!enableInscription) {\r\n const infoCss = adminInscripcion ? 'fa fa-warning' : 'fa fa-lock';\r\n actions.push({\r\n key: 'lock-icon',\r\n icon: ,\r\n callback: () => false,\r\n });\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n onAddToFavoritesSubmit = (inscription) => {\r\n if (inscription) {\r\n addToFavorites(inscription.id, {\r\n onSuccess: () => {\r\n const { items } = this.state;\r\n\r\n const newState = items.map(item => (\r\n item.id === inscription.id ? { ...item, mostrarEnTablero: !inscription.mostrarEnTablero } : item\r\n ));\r\n\r\n this.setState({\r\n items: newState,\r\n });\r\n\r\n createSuccessMessage(\r\n `Materia ${(!inscription.mostrarEnTablero ? 'agregada al' : 'quitada del')} tablero exitosamente`,\r\n );\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar quitar la materia del tablero ');\r\n }\r\n },\r\n });\r\n }\r\n };\r\n\r\n getPeriodos = () => {\r\n const { periodos = [] } = this.state;\r\n\r\n return periodos;\r\n };\r\n\r\n getButtonInscription = ({ viewPageAs, enableInscription, adminInscripcion }) => {\r\n if (viewPageAs === 0 && enableInscription) {\r\n return (\r\n \r\n Inscribase Aquí\r\n \r\n );\r\n }\r\n\r\n if (adminInscripcion) {\r\n return (\r\n \r\n Nueva inscripción\r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n enableInscription,\r\n adminInscripcion,\r\n } = this.state;\r\n const { sidebar: { viewPageAs } } = this.props;\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    Inscripciones a materias

    \r\n
    \r\n {\r\n this.getButtonInscription({ viewPageAs, enableInscription, adminInscripcion })\r\n }\r\n
    \r\n \r\n
    \r\n \r\n this.getGridActions(key, obj)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nStudentSubjectsContainer.propTypes = {\r\n sidebar: SidebarProps.isRequired,\r\n};\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(StudentSubjectsContainer));\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n\r\n if (!attrs.alumno || !attrs.alumno.value) {\r\n errors.alumno = 'Debe seleccioanr el alumno';\r\n }\r\n if (!attrs.malla || !attrs.malla.value) {\r\n errors.malla = 'Debe seleccioanr la malla';\r\n }\r\n if (!attrs.semestre || !attrs.semestre.value) {\r\n errors.semestre = 'Debe ingresar un semestre';\r\n }\r\n if (!attrs.materia || !attrs.materia.value) {\r\n errors.materia = 'Debe ingresar una materia';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport { Card, CardBody, Col } from 'reactstrap';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass InscriptionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n mallas: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n semesters: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n subjects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n alumnos: PropTypes.arrayOf(PropTypes.shape({})),\r\n nombreAlumno: PropTypes.string,\r\n apellidoAlumno: PropTypes.string,\r\n numeroLegajo: PropTypes.number,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n nombreAlumno: '',\r\n apellidoAlumno: '',\r\n numeroLegajo: 0,\r\n alumnos: [],\r\n }\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n mallas = [],\r\n semesters = [],\r\n subjects = [],\r\n onFilterChanges,\r\n nombreAlumno,\r\n apellidoAlumno,\r\n numeroLegajo,\r\n alumnos = [],\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Datos de la inscripción
    \r\n
    \r\n {numeroLegajo > 0\r\n && (\r\n
    \r\n Alumno\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n {numeroLegajo <= 0 && (\r\n
    \r\n Alumno\r\n
    \r\n onFilterChanges('alumno', 'perfilAlumnoId', v)}\r\n />\r\n
    \r\n
    \r\n )}\r\n
    \r\n Malla\r\n
    \r\n onFilterChanges('malla', 'mallaId', v)}\r\n />\r\n
    \r\n
    \r\n
    \r\n Semestre\r\n
    \r\n onFilterChanges('semestre', 'semestreId', v)}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n Materia\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst InscriptionFormForm = reduxForm({\r\n form: 'InscriptionFormForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(InscriptionForm);\r\n\r\nexport default setPropsAsInitialValues(InscriptionFormForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport InscriptionForm from './InscriptionForm';\r\nimport {\r\n fetchStudentSubject,\r\n saveStudentSubject,\r\n getFormDatas,\r\n getInscriptionAllSubjects,\r\n} from '../../../redux/actions/studentSubjectsActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass SubjectsInscriptionContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mallas: [],\r\n semesters: [],\r\n students: [],\r\n subjects: [],\r\n };\r\n this.filterSubjects = this.filterSubjects.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormData();\r\n this.fetchCurrentStudentSubject();\r\n }\r\n\r\n fetchCurrentStudentSubject = () => {\r\n const { id, history } = this.props;\r\n if (!id) {\r\n this.setState({ studentSubject: { id: 0 } });\r\n return;\r\n }\r\n\r\n fetchStudentSubject({\r\n id,\r\n onSuccess: (dto) => {\r\n this.fetchAllSubjects(dto.mallaId);\r\n\r\n const studentSubject = {\r\n ...dto,\r\n malla: {\r\n value: dto.mallaId,\r\n label: `${dto.mallaNombre}`,\r\n },\r\n semestre: {\r\n value: dto.semestreId,\r\n label: `${dto.semestreNombre}`,\r\n },\r\n materia: {\r\n value: dto.materiaId,\r\n label: `${dto.materiaCodigo} - ${dto.materiaNombre}`,\r\n },\r\n alumno: {\r\n value: dto.perfilAlumnoId,\r\n label: `${dto.numeroLegajo}: ${dto.nombreAlumno} ${dto.apellidoAlumno}`,\r\n },\r\n };\r\n\r\n this.setState({ studentSubject });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La inscripción a esta materia no existe');\r\n history.push('/pages/student-subjects');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la inscripción');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchFormData = () => {\r\n const { id } = this.props;\r\n getFormDatas({\r\n new: !(id > 0),\r\n onSuccess: (viewModel) => {\r\n this.setState({ ...viewModel });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos de mallas');\r\n },\r\n });\r\n }\r\n\r\n fetchAllSubjects = (mallaId = 0) => {\r\n getInscriptionAllSubjects({\r\n mallaId,\r\n onSuccess: ({ subjects = [] }) => {\r\n this.setState({\r\n subjects,\r\n });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos de mallas');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const {\r\n malla,\r\n semestre,\r\n materia,\r\n alumno,\r\n } = values;\r\n\r\n const { value: mallaId } = malla;\r\n const { value: semestreId } = semestre;\r\n const { value: materiaPeriodoId } = materia;\r\n const { value: perfilAlumnoId } = alumno;\r\n const params = {\r\n ...values,\r\n semestreId,\r\n mallaId,\r\n materiaPeriodoId,\r\n perfilAlumnoId,\r\n };\r\n const { history } = this.props;\r\n saveStudentSubject(\r\n params,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Inscripción guardada exitosamente');\r\n history.push('/pages/student-subjects');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la inscripción');\r\n }\r\n },\r\n },\r\n );\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n const { studentSubject } = this.state;\r\n\r\n if (objectKey === 'malla') {\r\n this.fetchAllSubjects(value.value || 0);\r\n }\r\n\r\n this.setState({\r\n [idKey]: value.value,\r\n studentSubject: { ...studentSubject, [objectKey]: value },\r\n });\r\n }\r\n\r\n filterSubjects = () => {\r\n const { mallaId = 0, semestreId = 0, subjects } = this.state;\r\n if (!subjects) return [];\r\n\r\n return subjects\r\n .filter(s => s.mallaId === mallaId || mallaId === 0)\r\n .filter(s => s.semestreId === semestreId || semestreId === 0)\r\n .map(({\r\n id, materiaCodigo, materia, seccion,\r\n }) => ({\r\n value: id,\r\n label: `${materiaCodigo} - ${materia} - ${seccion}`,\r\n }));\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n\r\n const {\r\n studentSubject,\r\n mallas = [],\r\n semesters = [],\r\n students = [],\r\n } = this.state;\r\n\r\n const subjects = this.filterSubjects();\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} inscripción\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la información de la inscripción\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(mallas && semesters && subjects && studentSubject)\r\n ? ()\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSubjectsInscriptionContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default SubjectsInscriptionContainer;\r\n","import {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n apiPut,\r\n apiDownloadPost,\r\n} from '../../api/index';\r\n\r\nimport { urlExams } from '../../api/urls';\r\n\r\nexport function fetchExams(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlExams}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchExam(id, callback) {\r\n return apiGet(`${urlExams}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchExamPrintPreview(id, type, callback) {\r\n const url = type === null\r\n ? `${urlExams}/report/${id}`\r\n : `${urlExams}/report/${id}/${type}`;\r\n\r\n return apiGet(url)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveExam(exam, callback) {\r\n return apiPost(`${urlExams}`, exam)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function deleteExam(id, callback) {\r\n return apiDelete(`${urlExams}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function stampExam(id, exam, callback) {\r\n return apiPut(urlExams, id, exam)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function openExam(id, exam, callback) {\r\n return apiPut(`${urlExams}/open`, id, exam)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(anhoLectivoId, params) {\r\n return apiGet(`${urlExams}/form_data/${anhoLectivoId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function getExamenesPorCarrera(params) {\r\n return apiGet(`${urlExams}/por_carrera/${params.id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function downloadAcademicStatusStudent({ id, materiaName }, params) {\r\n return apiDownloadPost(`${urlExams}/download-score-report/${id}`)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = `${materiaName}.xlsx`;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (params && params.onSuccess) params.onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Badge,\r\n} from 'reactstrap';\r\nimport { SidebarProps } from '../../shared/prop-types/ReducerProps';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n fetchExams,\r\n deleteExam,\r\n stampExam,\r\n downloadAcademicStatusStudent,\r\n fetchFormDatas,\r\n} from '../../redux/actions/examActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport {\r\n dateDDMMYYHHMMFormat,\r\n} from '../../helpers/dateFormat';\r\nimport {\r\n getCurrentUser, tableFilters,\r\n} from '../../helpers/storage';\r\n\r\nclass ExamsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.tblFilters = tableFilters('tbl-exams');\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n filters: {\r\n estado: [],\r\n periodo: [],\r\n },\r\n loading: true,\r\n items: [],\r\n currentUser: getCurrentUser(),\r\n estadoExamen: [],\r\n periodosExamen: [],\r\n };\r\n\r\n this.columns = () => [\r\n {\r\n key: 'id',\r\n name: '#',\r\n search: false,\r\n },\r\n {\r\n key: 'profesor',\r\n name: 'Profesor',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'alumno',\r\n name: 'Alumno',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'documento',\r\n name: 'Nº Documento',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'notasObservaciones',\r\n name: 'Notas / Obs.',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'fecha',\r\n name: 'Fecha',\r\n search: false,\r\n type: 'date',\r\n width: '130px',\r\n format: row => dateDDMMYYHHMMFormat(row.fecha),\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n className: 'text-left',\r\n search: true,\r\n format: ({\r\n id,\r\n materia,\r\n fecha,\r\n estado,\r\n }) => (\r\n \r\n {\r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n key: 'periodo',\r\n name: 'Periodo',\r\n search: true,\r\n type: 'select',\r\n searchProps: {\r\n options: this.getPeriodosExamen,\r\n isMulti: true,\r\n },\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'profesor',\r\n name: 'Profesor',\r\n search: false,\r\n },\r\n {\r\n key: 'cantidadInscriptos',\r\n name: 'Inscriptos',\r\n search: false,\r\n className: 'text-center',\r\n format: ({ id, cantidadInscriptos }) => (\r\n \r\n {\r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n key: 'estado',\r\n name: 'Estado',\r\n search: true,\r\n type: 'select',\r\n searchProps: {\r\n options: this.getStates,\r\n isMulti: true,\r\n },\r\n className: 'text-center',\r\n format: ({ id, estado, fecha }) => (\r\n \r\n {\r\n \r\n }\r\n \r\n ),\r\n },\r\n {\r\n key: 'modificado',\r\n name: 'Modificado',\r\n search: false,\r\n type: 'date',\r\n format: row => dateDDMMYYHHMMFormat(row.modificado),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '90px',\r\n },\r\n ];\r\n\r\n this.actions = (row, addButton) => {\r\n const disabled = [0, 3].includes(row.estado.value) ? '' : 'disabled';\r\n const showEdit = addButton ? 'edit' : 'check-square-o';\r\n const titleEdit = addButton ? 'Editar' : 'Editar nota';\r\n\r\n\r\n const actions = [\r\n {\r\n key: disabled ? 'eye' : 'edit',\r\n icon: (\r\n \r\n ),\r\n callback: ![0, 1, 3].includes(row.estado.value) ? null : (exam) => {\r\n if ([0, 1, 3].includes(exam.estado.value)) {\r\n this.editExam(exam);\r\n }\r\n },\r\n },\r\n {\r\n key: disabled || !addButton ? '' : 'stump',\r\n visible: false,\r\n icon: ,\r\n callback: disabled ? null : (exam) => {\r\n if ([0, 3].includes(exam.estado.value)) {\r\n this.handleStampExam(exam);\r\n }\r\n },\r\n },\r\n {\r\n key: row.estado.value >= 0 && addButton ? 'print' : '',\r\n visible: false,\r\n icon: ,\r\n callback: (exam) => {\r\n if (exam.estado.value >= 0) {\r\n this.handleShowPreviewExam(exam);\r\n }\r\n },\r\n },\r\n {\r\n key: disabled || !addButton ? '' : 'delete',\r\n icon: ,\r\n callback: disabled ? null : (exam) => {\r\n if (exam.estado.value === 0) {\r\n this.handleDeleteExam(exam);\r\n }\r\n },\r\n },\r\n ];\r\n\r\n return actions.filter(a => a.visible !== false);\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const tbl = this.tblFilters.get('tbl-exams');\r\n\r\n const {\r\n page, pageSize, totalItemsCount,\r\n } = this.state;\r\n\r\n const state = {\r\n filters: tbl.filters || {},\r\n page: tbl.page || page,\r\n pageSize: tbl.pageSize || pageSize,\r\n totalItemsCount: tbl.totalItemsCount || totalItemsCount,\r\n };\r\n\r\n this.fetchDatasList();\r\n\r\n this.updateExamsTable({ ...state });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {\r\n page, pageSize, totalItemsCount, filters,\r\n } = this.state;\r\n const state = { filters };\r\n\r\n // Typical usage (don't forget to compare props):\r\n if (page !== prevState.page) {\r\n state.page = page;\r\n }\r\n\r\n if (pageSize !== prevState.pageSize) {\r\n state.pageSize = pageSize;\r\n }\r\n\r\n if (totalItemsCount !== prevState.totalItemsCount) {\r\n state.totalItemsCount = totalItemsCount;\r\n }\r\n\r\n this.tblFilters.set(state);\r\n }\r\n\r\n fetchDatasList = (anhoLectivoId = 0) => {\r\n this.setState({ loading: true });\r\n fetchFormDatas(anhoLectivoId, {\r\n onSuccess: ({\r\n periodosExamen,\r\n estadoExamen,\r\n }) => this.setState({\r\n loading: false,\r\n periodosExamen,\r\n estadoExamen,\r\n }),\r\n onError: () => {\r\n this.setState({ loading: false });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n updateExamsTable = ({\r\n page = 1,\r\n pageSize = 25,\r\n filters = {},\r\n }) => {\r\n const viewPageAs = this.getViewPageAs();\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: {\r\n ...filters,\r\n viewPageAs,\r\n estado: filters.estado || [],\r\n periodo: filters.periodo || [],\r\n },\r\n });\r\n\r\n\r\n fetchExams({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: {\r\n ...filters,\r\n viewPageAs,\r\n estado: filters.estado || [],\r\n periodo: filters.periodo || [],\r\n },\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de exámenes');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteExam = (examen) => {\r\n const {\r\n materia,\r\n fecha,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n\r\n Confirm({\r\n title: 'Borrar examen',\r\n question: `¿Estás seguro que deseas eliminar el examen ${materia} del ${dateFormated}?.`,\r\n yesLabel: 'Si, Borrar examen',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n deleteExam(examen.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Examen borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateExamsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar el examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleStampExam = (examen) => {\r\n const {\r\n materia,\r\n fecha,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n\r\n Confirm({\r\n title: 'Sellar examen',\r\n question: `¿Estás seguro que deseas sellar el examen ${materia} del ${dateFormated}?\r\nUna vez sellado ya no será editable.`,\r\n yesLabel: 'Si, Sellar examen',\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n onConfirm: () => {\r\n stampExam(examen.id, examen, {\r\n onSuccess: () => {\r\n createSuccessMessage('Examen sellado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateExamsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar sellar el examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleShowPreviewExam = (examen) => {\r\n const { history } = this.props;\r\n const {\r\n id,\r\n materia,\r\n fecha,\r\n nroActa,\r\n estado,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n\r\n const [materiaName, carreraName] = materia\r\n .replace('(', '-')\r\n .replace(')', '')\r\n .split('-')\r\n .map(it => it.trim());\r\n\r\n const confirmData = {\r\n title: `Imprimir Examen ${materiaName} ${carreraName}`,\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n };\r\n\r\n if (estado.value === 1) {\r\n const question = `¿Imprimir el acta o planilla de calificaciones del examen ${materia} del ${dateFormated}\r\n Acta Nº ${nroActa}?`;\r\n\r\n confirmData.question = question;\r\n confirmData.yesLabel = 'Imprimir Acta';\r\n confirmData.otherLabel = 'Descargar Acta';\r\n\r\n confirmData.onConfirm = () => {\r\n history.push(`/pages/exams/show-report/${id}`);\r\n };\r\n confirmData.onOther = () => {\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent({ id: examen.id, materiaName }, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Archivo descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar descargar la planilla de calificaciones del examen');\r\n }\r\n },\r\n });\r\n };\r\n }\r\n\r\n if (estado.value === 0) {\r\n const question = `¿Imprimir planilla de calificaciones del examen ${materia} del ${dateFormated}\r\n Acta Nº ${nroActa}?`;\r\n\r\n confirmData.question = question;\r\n confirmData.yesLabel = 'Descargar Acta';\r\n confirmData.onConfirm = () => {\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent({ id: examen.id, materiaName }, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Archivo descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar descargar la planilla de calificaciones del examen');\r\n }\r\n },\r\n });\r\n };\r\n }\r\n\r\n Confirm(confirmData);\r\n };\r\n\r\n editExam = (exam) => {\r\n const { history } = this.props;\r\n history.push(`/pages/exams/edit/${exam.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateExamsTable({ page, pageSize, filters });\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateExamsTable({ page: 1, pageSize, filters: values });\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize, filters } = this.state;\r\n const { autoHideSearch } = filters;\r\n\r\n this.updateExamsTable({\r\n page: 1,\r\n pageSize,\r\n filters: {\r\n estado: [],\r\n periodo: [],\r\n autoHideSearch,\r\n },\r\n });\r\n };\r\n\r\n getGridActions = (key, row) => {\r\n if (key !== 'actions') {\r\n return undefined;\r\n }\r\n\r\n const { currentUser } = this.state;\r\n\r\n const addButton = currentUser.esAdmin || currentUser.esFuncionario;\r\n\r\n const actions = {\r\n actions: this.actions(row, addButton).filter(a => a.key),\r\n };\r\n\r\n return actions[key];\r\n }\r\n\r\n getSubjectColor = ({ fecha, estado }) => {\r\n if (estado === 1) {\r\n return 'success';\r\n }\r\n\r\n if (estado === 3) {\r\n return 'danger';\r\n }\r\n\r\n if (new Date(fecha) > new Date()) {\r\n return 'info';\r\n }\r\n\r\n return 'secondary';\r\n };\r\n\r\n getLabelEstados = () => (\r\n \r\n \r\n
    \r\n

    Estados:

    \r\n \r\n Activo expirado\r\n \r\n \r\n Activo\r\n \r\n \r\n Sellado\r\n \r\n \r\n Inconsistencia de datos\r\n \r\n
    \r\n \r\n
    \r\n );\r\n\r\n getStates = () => {\r\n const { estadoExamen } = this.state;\r\n return estadoExamen;\r\n };\r\n\r\n getPeriodosExamen = () => {\r\n const { periodosExamen } = this.state;\r\n return periodosExamen;\r\n };\r\n\r\n getViewPageAs = () => {\r\n const { sidebar: { viewPageAs } } = this.props;\r\n return viewPageAs;\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n currentUser,\r\n } = this.state;\r\n\r\n const addButton = currentUser.esAdmin || currentUser.esFuncionario;\r\n\r\n return (\r\n \r\n {addButton ? (\r\n \r\n \r\n

    Lista de exámenes

    \r\n
    \r\n \r\n Agregar nuevo examen\r\n \r\n
    \r\n \r\n
    \r\n ) : null\r\n }\r\n {this.getLabelEstados()}\r\n \r\n {\r\n loading\r\n ? \r\n : (\r\n this.getGridActions(key, row)}\r\n itemsToShow={items.length}\r\n page={page}\r\n pageSize={pageSize}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nExamsContainer.propTypes = {\r\n sidebar: SidebarProps.isRequired,\r\n};\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(ExamsContainer));\r\n","import { apiGet, apiPost, apiDelete } from '../../api/index';\r\nimport { urlInscripcionExamen } from '../../api/urls';\r\n\r\n\r\nexport function getFormData({\r\n idExamen,\r\n loadStudents,\r\n onSuccess,\r\n onError,\r\n}) {\r\n return apiGet(`${urlInscripcionExamen}/form_data${idExamen ? `/${idExamen}/${loadStudents}` : ''}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function getInscripcionExamen(id, callback) {\r\n return apiGet(`${urlInscripcionExamen}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function saveInscripcionExamen(inscripcion, callback) {\r\n return apiPost(`${urlInscripcionExamen}/inscribir`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveInscripcionesExamen(inscripcion, callback) {\r\n return apiPost(`${urlInscripcionExamen}`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveMiInscripcion(inscripcion, callback) {\r\n return apiPost(`${urlInscripcionExamen}/inscribirme`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function actualizarNotasProfesor(inscripcion, callback) {\r\n return apiPost(`${urlInscripcionExamen}/update-score`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function deleteInscripcionExamen(id, callback) {\r\n return apiDelete(`${urlInscripcionExamen}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchMyExams(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlInscripcionExamen}/my-exams`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col, Container, Row, Badge,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n deleteExam,\r\n} from '../../redux/actions/examActions';\r\nimport {\r\n fetchMyExams,\r\n getFormData,\r\n} from '../../redux/actions/inscripcionExamenActions';\r\nimport {\r\n obtenerMisDerechos,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\nimport { Calificaciones } from '../../constants/enums';\r\nimport TooltipItem from '../../shared/components/TooltipItem';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { dateMMYYFormat } from '../../helpers/dateFormat';\r\n\r\nclass ExamsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n items: [],\r\n derechos: [],\r\n filters: { id: 20 },\r\n estadoExamen: [],\r\n };\r\n this.columns = [\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n search: true,\r\n format: ({\r\n id, estadoExamen, codMateria, materia,\r\n }) => this.getLabelEstado({ id, estadoExamen, materia: `${codMateria}-${materia}` }),\r\n },\r\n { key: 'carrera', name: 'Carrera', search: true },\r\n {\r\n key: 'estadoExamen',\r\n name: 'Estado',\r\n search: true,\r\n visible: false,\r\n type: 'select',\r\n searchProps: {\r\n options: this.getStates,\r\n isMulti: true,\r\n },\r\n },\r\n {\r\n key: 'semestre',\r\n name: 'Semestre',\r\n search: false,\r\n format: row => `${row.semestre}º`,\r\n },\r\n {\r\n key: 'fechaExamen',\r\n name: 'Fecha Examen',\r\n search: false,\r\n type: 'date',\r\n width: '110px',\r\n format: row => dateMMYYFormat(row.fechaExamen),\r\n },\r\n {\r\n key: 'fechaInscripcion',\r\n name: 'Inscripción',\r\n search: false,\r\n type: 'date',\r\n width: '110px',\r\n format: row => dateMMYYFormat(row.fechaInscripcion),\r\n },\r\n {\r\n key: 'esRecuperatorio',\r\n name: 'Instancia',\r\n search: false,\r\n className: 'text-center',\r\n format: ({ id, instancia }) => {\r\n let color = 'danger';\r\n if (instancia.value === 1) {\r\n color = 'info';\r\n }\r\n\r\n if (instancia.value === 0) {\r\n color = 'success';\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 { key: 'porcentajePP', name: 'Porcentaje PP', search: false },\r\n { key: 'porcentajePF', name: 'Porcentaje PF', search: false },\r\n { key: 'porcentajePC', name: 'Porcentaje PC', search: false },\r\n {\r\n key: 'calificacion',\r\n name: 'Calificación',\r\n search: false,\r\n className: 'text-center',\r\n format: ({ id, calificacion }) => this.showScore({\r\n id,\r\n calificacion: Calificaciones.find(c => c.value === calificacion) || {},\r\n }),\r\n },\r\n // { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.fetchMyExams(page, pageSize);\r\n this.loadMisDerechos();\r\n this.fetchFormData();\r\n }\r\n\r\n fetchMyExams = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n fetchMyExams({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ items, totalItemsCount }) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de exámenes');\r\n },\r\n });\r\n }\r\n\r\n loadMisDerechos = () => {\r\n this.setState({ loading: true });\r\n obtenerMisDerechos({\r\n pageInfo: {\r\n page: 1,\r\n pageSize: 1,\r\n },\r\n onSuccess: ({ items }) => {\r\n this.setState({\r\n loading: false,\r\n derechos: items,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de exámenes disponibles');\r\n },\r\n });\r\n };\r\n\r\n fetchFormData = () => {\r\n this.setState({ loading: true });\r\n getFormData({\r\n onSuccess: ({\r\n estadoExamen,\r\n }) => this.setState({\r\n loading: false,\r\n estadoExamen,\r\n }),\r\n onError: () => {\r\n this.setState({ loading: false });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteExam = (examen) => {\r\n const name = `${examen.materia.codigo}- ${examen.materia.nombre}`;\r\n Confirm({\r\n title: 'Borrar examen',\r\n question: `Estás seguro que deseas eliminar el examen ${name}?`,\r\n yesLabel: 'Si, Borrar examen',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n this.setState({ loading: true });\r\n\r\n deleteExam(examen.id, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Examen borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.fetchMyExams(page, pageSize);\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar el examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.fetchMyExams(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.fetchMyExams(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.fetchMyExams(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n showScore = ({ id, calificacion }) => (\r\n \r\n {\r\n \r\n }\r\n \r\n );\r\n\r\n getLabelEstado = ({ id, materia, estadoExamen = {} }) => (\r\n \r\n \r\n \r\n );\r\n\r\n getLabelEstados = () => (\r\n \r\n \r\n
    \r\n

    Estados:

    \r\n \r\n Activo\r\n \r\n \r\n Sellado\r\n \r\n
    \r\n \r\n
    \r\n );\r\n\r\n getStates = () => {\r\n const { estadoExamen } = this.state;\r\n return estadoExamen;\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n derechos = [],\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    Mis exámenes

    \r\n {\r\n derechos.length > 0 && (\r\n
    \r\n \r\n Inscripción a examen\r\n \r\n
    \r\n )\r\n }\r\n \r\n
    \r\n {this.getLabelEstados()}\r\n \r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ExamsContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Col,\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Badge,\r\n} from 'reactstrap';\r\nimport {\r\n obtenerMisDerechos,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport {\r\n saveMiInscripcion,\r\n} from '../../redux/actions/inscripcionExamenActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { dateTimeFormat } from '../../helpers/dateFormat';\r\n\r\nclass StudentExamInscriptionContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n items: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.loadFormData(page, pageSize);\r\n }\r\n\r\n loadFormData = () => {\r\n this.setState({ loading: true });\r\n obtenerMisDerechos({\r\n onSuccess: (result) => {\r\n this.setState({\r\n loading: false,\r\n items: result.items,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de exámenes disponibles');\r\n },\r\n });\r\n }\r\n\r\n inscribirme = (examen) => {\r\n const { materia, inscripto } = examen;\r\n if (inscripto) return;\r\n Confirm({\r\n title: 'Inscripción a examen',\r\n question: `Estás seguro que deseas inscribirte al examen de \"${materia}\"?`,\r\n yesLabel: 'Si, Inscribirme',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n this.setState({ loading: true });\r\n\r\n const { examenId, studentId } = examen;\r\n const params = {\r\n examenId,\r\n id: 0,\r\n perfilAlumnoId: studentId,\r\n calificacion: 0,\r\n };\r\n\r\n saveMiInscripcion(params, {\r\n onSuccess: () => {\r\n createSuccessMessage('Inscripción realizada exitosamente');\r\n this.loadFormData();\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar inscribirse al examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.loadFormData(1, pageSize, {});\r\n };\r\n\r\n onBack = () => {\r\n const { history } = this.props;\r\n history.push('/pages/student-exams');\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getDate = date => new Date(date).toLocaleDateString('en-GB');\r\n\r\n getInstanciaColor = ({ value }) => {\r\n if (value === 1) {\r\n return 'info';\r\n }\r\n\r\n if (value === 0) {\r\n return 'success';\r\n }\r\n\r\n return 'danger';\r\n }\r\n\r\n getParametroColor = ({\r\n value,\r\n item: { pp, asis },\r\n parametro,\r\n }) => {\r\n if (value === 3 && parametro === 'PP' && pp) {\r\n return 'danger';\r\n }\r\n\r\n if (value === 3 && parametro === 'Asistencia' && asis) {\r\n return 'danger';\r\n }\r\n\r\n return 'primary';\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n loading && ()\r\n }\r\n {\r\n !loading && (\r\n \r\n \r\n
    \r\n
    \r\n

    Lista de mis exámenes

    \r\n
    \r\n \r\n \r\n {items.length && items.map(g => (\r\n \r\n this.inscribirme(g)}\r\n className={`link-card ${g.inscripto ? 'disabled' : ''}`}\r\n >\r\n \r\n \r\n \r\n \r\n # {g.examenId}\r\n \r\n {` ${g.materia}`}\r\n \r\n
    \r\n \r\n {g.malla}\r\n {g.semestre}º Semestre\r\n \r\n \r\n \r\n Fecha\r\n {': '}\r\n \r\n {new Date(g.fechaExamen).toLocaleDateString('en-GB')}\r\n \r\n \r\n \r\n Límite\r\n {': '}\r\n \r\n {dateTimeFormat(g.fechaLimiteInscripcionExamen)}\r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n Examen:{' '}\r\n \r\n {g.instancia.label}\r\n \r\n \r\n \r\n \r\n \r\n Asistencia:{' '}\r\n \r\n \r\n {' '}{g.porcentajeAsistencia}\r\n \r\n %\r\n \r\n \r\n \r\n \r\n PP:{' '}\r\n \r\n {' '}{g.porcentajePP}\r\n \r\n %\r\n \r\n \r\n \r\n \r\n \r\n {\r\n `Inscripto Materia: ${this.getDate(g.fechaInscripcionMateria)}`\r\n }\r\n \r\n \r\n {g.inscripto\r\n ? `Inscripto Examen: ${this.getDate(g.fechaInscripcion)}`\r\n : ''\r\n }\r\n \r\n \r\n {\r\n g.instancia.value === 3 ? (\r\n \r\n {g.instancia.item.motivo}\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n ))}\r\n {!items.length && (\r\n \r\n

    \r\n No tienes exámenes pendientes\r\n

    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Cancelar - Volver\r\n \r\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 withRouter(StudentExamInscriptionContainer);\r\n","import { Calificaciones } from '../../../../constants/enums';\r\n\r\nconst validatePercentage = (value = 0) => parseFloat(value) < 0 || parseFloat(value) > 100;\r\n\r\nconst validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n\r\n if (!attrs.alumnoObj || !attrs.alumnoObj.value) {\r\n errors.alumnoObj = 'Debe seleccionar el alumno';\r\n }\r\n if (!attrs.fechaInscripcion) {\r\n errors.fechaInscripcion = 'Debe ingresar la fecha';\r\n }\r\n\r\n if (validatePercentage(attrs.porcentajeAsistencia)) {\r\n errors.porcentajeAsistencia = 'Debe ingresar valor en el rango 0 - 100';\r\n }\r\n if (validatePercentage(attrs.porcentajePP)) {\r\n errors.porcentajePP = 'Debe ingresar valor en el rango 0 - 100';\r\n }\r\n if (validatePercentage(attrs.porcentajePF)) {\r\n errors.porcentajePF = 'Debe ingresar valor en el rango 0 - 100';\r\n }\r\n if (validatePercentage(attrs.porcentajePC)) {\r\n errors.porcentajePC = 'Debe ingresar valor en el rango 0 - 100';\r\n }\r\n\r\n if (\r\n !attrs.calificacionObj\r\n || !Number.isInteger(attrs.calificacionObj.value)\r\n || !Calificaciones.some(ca => ca.value === attrs.calificacionObj.value)) {\r\n errors.calificacionObj = 'Valor requerido';\r\n }\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport { Card, CardBody, Col } from 'reactstrap';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport DatePicker from '../../../../shared/components/form/DatePicker';\r\nimport validate from './validate';\r\nimport { Calificaciones } from '../../../../constants/enums';\r\n\r\nclass InscriptionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n id: PropTypes.number,\r\n alumnoObj: PropTypes.shape({}),\r\n examen: PropTypes.shape({}).isRequired,\r\n alumnos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n id: 0,\r\n submitting: false,\r\n alumnoObj: {},\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n examen,\r\n alumnoObj,\r\n alumnos,\r\n } = this.props;\r\n\r\n const { label: nombreAlumno } = alumnoObj;\r\n const { materia } = examen;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    {materia} - Datos de la inscripción o nota de examen
    \r\n
    \r\n \r\n \r\n {id <= 0 && (\r\n
    \r\n Alumno\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n {id && (\r\n
    \r\n Alumno\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n
    \r\n Fecha de inscripcion\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Porcentaje de asistencia\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Porcentaje PP\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Porcentaje PF\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Porcentaje PC\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Calificación\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxInscriptionForm = reduxForm({\r\n form: 'InscriptionForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(InscriptionForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxInscriptionForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport InscriptionForm from './InscriptionForm';\r\nimport {\r\n saveInscripcionExamen,\r\n getInscripcionExamen,\r\n getFormData,\r\n} from '../../../../redux/actions/inscripcionExamenActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport { Calificaciones } from '../../../../constants/enums';\r\n\r\nclass InscriptionFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.handleOnStudentChange = this.handleOnStudentChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormDatas();\r\n }\r\n\r\n fetchFormDatas = () => {\r\n const { idExamen } = this.props;\r\n\r\n getFormData({\r\n idExamen,\r\n loadStudents: true,\r\n onSuccess: ({ examen, alumnos }) => {\r\n this.setState({\r\n examen, alumnos,\r\n });\r\n\r\n this.fetchInscriptionExamen();\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n fetchInscriptionExamen = () => {\r\n const { id, history } = this.props;\r\n if (!id) {\r\n const { examen: { fecha } } = this.state;\r\n this.setState({\r\n inscripcion: {\r\n id: 0,\r\n fechaInscripcion: fecha.toLocaleString(),\r\n porcentajeAsistencia: 0,\r\n porcentajePP: 0,\r\n porcentajePF: 0,\r\n porcentajePC: 0,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n getInscripcionExamen(id, {\r\n onSuccess: (dto) => {\r\n const {\r\n usuarioId,\r\n studentId,\r\n nombre,\r\n apellido,\r\n anioInscripcion,\r\n calificacion,\r\n } = dto;\r\n\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n\r\n const inscripcion = {\r\n ...dto,\r\n alumnoObj: {\r\n value: studentId,\r\n parentId: usuarioId,\r\n label: `${usuarioId}/${anioInscripcion}: ${nombre} ${apellido}`,\r\n },\r\n calificacionObj,\r\n };\r\n this.setState({ inscripcion });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La inscripción a examen no existe');\r\n history.goBack();\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la inscripción.');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const {\r\n id,\r\n alumnoObj: { value: perfilAlumnoId, parentId: usuarioId },\r\n fechaInscripcion,\r\n porcentajeAsistencia,\r\n porcentajePP,\r\n porcentajePF,\r\n porcentajePC,\r\n calificacionObj: { value: calificacion },\r\n } = values;\r\n\r\n const { examen: { id: examenId } } = this.state;\r\n\r\n const params = {\r\n id,\r\n examenId,\r\n usuarioId,\r\n perfilAlumnoId,\r\n fechaInscripcion,\r\n porcentajeAsistencia: +porcentajeAsistencia,\r\n porcentajePP: +porcentajePP,\r\n porcentajePF: +porcentajePF,\r\n porcentajePC: +porcentajePC,\r\n calificacion,\r\n };\r\n\r\n saveInscripcionExamen(params, {\r\n onSuccess: () => {\r\n const { history } = this.props;\r\n createSuccessMessage('Inscripción a examen guardado exitosamente');\r\n history.goBack();\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la inscripción examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnStudentChange = (value) => {\r\n const { inscripcion } = this.state;\r\n this.setState({\r\n inscripcion: {\r\n ...inscripcion,\r\n alumno: value,\r\n usuarioId: value.parentId,\r\n perfilAlumnoId: value.id,\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n examen,\r\n inscripcion,\r\n alumnos,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} inscripción y/o nota\r\n

    \r\n

    \r\n Edita o ingresa la información de la inscripción o notas del alumno\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(alumnos)\r\n ? ()\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nInscriptionFormContainer.propTypes = {\r\n idExamen: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default InscriptionFormContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card, CardBody, Row, Col, Container, Badge, Label,\r\n} from 'reactstrap';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport renderCheckBoxField from '../../../../shared/components/form/CheckBox';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass AddInscriptionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onStudentEnrollmentChanges: PropTypes.func.isRequired,\r\n handleFilterChangeText: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool,\r\n alumnoObj: PropTypes.shape({}),\r\n examen: PropTypes.shape({}).isRequired,\r\n alumnos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n filterValue: PropTypes.string,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n loading: false,\r\n alumnoObj: {},\r\n filterValue: '*',\r\n }\r\n\r\n getShowQuantities = () => (\r\n [{\r\n value: 1,\r\n description: 'Cantidad',\r\n checked: true,\r\n }]\r\n );\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n loading,\r\n onStudentEnrollmentChanges,\r\n handleFilterChangeText,\r\n onBack,\r\n alumnos = [],\r\n filterValue,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n {(\r\n <>\r\n \r\n
    \r\n
    \r\n No Inscriptos:\r\n \r\n {alumnos.filter(a => !a.selected).length}\r\n \r\n
    \r\n
    \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n Filtrar alumnos:\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 ? \r\n : (\r\n
    \r\n \r\n \r\n {alumnos.map(s => (\r\n \r\n \r\n onStudentEnrollmentChanges(v, s)}\r\n />\r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxAddInscriptionForm = reduxForm({\r\n form: 'AddInscriptionForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(AddInscriptionForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxAddInscriptionForm);\r\n","const debounce = (mainFunction, delay) => {\r\n // Declare a variable called 'timer' to store the timer ID\r\n let timer;\r\n\r\n // Return an anonymous function that takes in any number of arguments\r\n return (...args) => {\r\n // Clear the previous timer to prevent the execution of 'mainFunction'\r\n clearTimeout(timer);\r\n\r\n // Set a new timer that will execute 'mainFunction' after the specified delay\r\n timer = setTimeout(() => {\r\n mainFunction(...args);\r\n }, delay);\r\n };\r\n};\r\n\r\nexport default debounce;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col, Container, Row, Badge,\r\n} from 'reactstrap';\r\nimport AddInscriptionForm from './AddInscriptionForm';\r\nimport {\r\n saveInscripcionesExamen,\r\n getFormData,\r\n} from '../../../../redux/actions/inscripcionExamenActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport Confirm from '../../../../shared/components/Confirm';\r\nimport debounce from '../../../../helpers/debounce';\r\n\r\nclass AddInscriptionFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n filterValue: '',\r\n sortColumn: 'name',\r\n sortType: 'desc',\r\n inscripcion: null,\r\n alumnos: [],\r\n editedStudentEnrollments: [],\r\n };\r\n\r\n this.handleOnStudentChange = this.handleOnStudentChange.bind(this);\r\n this.debouncedHandleFilterChangeText = debounce(this.handleFilterChangeText, 500);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormDatas({});\r\n }\r\n\r\n fetchFormDatas = ({ loadStudents = false, filterValue = '' }) => {\r\n const { idExamen } = this.props;\r\n getFormData({\r\n idExamen,\r\n loadStudents,\r\n onSuccess: ({ examen, alumnos = [] }) => {\r\n if (loadStudents) {\r\n this.setState({\r\n examen,\r\n alumnos,\r\n loading: false,\r\n filterValue,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n examen,\r\n alumnos,\r\n loading: false,\r\n filterValue,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const { examen: { id: examenId } } = this.state;\r\n\r\n const { alumnos = [] } = values;\r\n\r\n const inscripcionExamenSaves = alumnos\r\n .filter(a => a.selected)\r\n .map(a => ({\r\n examenId,\r\n id: 0,\r\n selected: a.selected,\r\n perfilAlumnoId: a.student,\r\n usuarioId: a.user,\r\n }));\r\n\r\n const alumnosToShow = alumnos\r\n .filter(a => a.selected)\r\n .map(({ doc, name }) => (\r\n
    \r\n \r\n {doc}\r\n \r\n {' '}{name}\r\n
    \r\n ));\r\n\r\n if (inscripcionExamenSaves.length === 0) {\r\n return;\r\n }\r\n\r\n Confirm({\r\n title: 'Agregar alumnos a examen',\r\n question: (\r\n \r\n {`¿Estás seguro que deseas agregar estos alumnos(${inscripcionExamenSaves.length}) al examen?.`}\r\n
    \r\n {alumnosToShow}\r\n
    \r\n
    ),\r\n yesLabel: 'Si, agregar alumnos',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n saveInscripcionesExamen({\r\n examenId,\r\n inscripcionExamenSaves,\r\n }, {\r\n onSuccess: () => {\r\n const { history } = this.props;\r\n createSuccessMessage('Inscripciones a examen guardado exitosamente');\r\n\r\n history.push(`/pages/exams/edit/${examenId}`);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la inscripción examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnStudentChange = (value) => {\r\n const { inscripcion } = this.state;\r\n this.setState({\r\n inscripcion: {\r\n ...inscripcion,\r\n alumno: value,\r\n usuarioId: value.user,\r\n perfilAlumnoId: value.student,\r\n },\r\n });\r\n }\r\n\r\n onStudentEnrollmentChanges = (evt, student) => {\r\n if (!evt.currentTarget) {\r\n return false;\r\n }\r\n\r\n const id = student.student;\r\n\r\n const {\r\n editedStudentEnrollments,\r\n alumnos,\r\n } = this.state;\r\n\r\n const newAlumnos = [...alumnos];\r\n\r\n const elementsIndex = newAlumnos.findIndex(s => s.student === id);\r\n newAlumnos[elementsIndex] = {\r\n ...newAlumnos[elementsIndex],\r\n selected: !newAlumnos[elementsIndex].selected,\r\n changed: true,\r\n };\r\n\r\n const studentEnrollment = editedStudentEnrollments.find(i => i.studentId === id);\r\n if (!studentEnrollment) {\r\n this.setState({\r\n alumnos: newAlumnos,\r\n editedStudentEnrollments: [\r\n ...editedStudentEnrollments, {\r\n studentId: id,\r\n selected: evt.target.checked,\r\n },\r\n ],\r\n });\r\n } else {\r\n studentEnrollment.selected = evt.target.checked;\r\n this.setState({\r\n alumnos: newAlumnos,\r\n editedStudentEnrollments,\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n handleFilterChangeText = ({ target: { value } }) => {\r\n const { loading } = this.state;\r\n if (loading) {\r\n this.setState({\r\n filterValue: value,\r\n });\r\n return;\r\n }\r\n\r\n const { alumnos = [] } = this.state;\r\n if (alumnos.length === 0 && value) {\r\n this.fetchFormDatas({ loadStudents: true, filterValue: value });\r\n return;\r\n }\r\n\r\n this.setState({\r\n filterValue: value,\r\n });\r\n };\r\n\r\n transformText = (value = '') => value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLowerCase();\r\n\r\n getAlumnos = () => {\r\n const {\r\n filterValue = '',\r\n sortColumn,\r\n sortType,\r\n alumnos = [],\r\n } = this.state;\r\n\r\n const filter = this.transformText(filterValue);\r\n\r\n const result = alumnos\r\n .filter(tma => (\r\n this.transformText(tma.doc).includes(filter)\r\n || this.transformText(tma.name).includes(filter)\r\n || this.transformText(tma.email).includes(filter)\r\n ))\r\n .sort((a, b) => (\r\n sortType !== 'asc' ? a[sortColumn].localeCompare(b[sortColumn]) : b[sortColumn].localeCompare(a[sortColumn])\r\n ));\r\n\r\n return result;\r\n };\r\n\r\n onShowOnlyEnrolledChanges = (evt) => {\r\n if (!evt.currentTarget) {\r\n return false;\r\n }\r\n\r\n this.fetchFormDatas();\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const { history } = this.props;\r\n const {\r\n examen = {},\r\n inscripcion,\r\n loading,\r\n filterValue,\r\n } = this.state;\r\n\r\n const { materia = '' } = examen;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Seleccionar los alumnos a ser inscriptos al examen {materia}\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!materia && }\r\n {materia && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAddInscriptionFormContainer.propTypes = {\r\n idExamen: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default AddInscriptionFormContainer;\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.materia || !attrs.materia.value) {\r\n errors.materia = 'Debe seleccionar una materia';\r\n }\r\n\r\n if (!attrs.interventor || !attrs.interventor.value) {\r\n errors.interventor = 'Debe seleccionar un interventor';\r\n }\r\n\r\n if (attrs.interventorAuxiliar && attrs.interventorAuxiliar.value === attrs.interventor.value) {\r\n // errors.interventor = 'Ya seleccionó a este funcionario este como el interventor principal'\r\n }\r\n\r\n if (!attrs.fecha) {\r\n errors.fecha = 'Debe ingresar la fecha del examen';\r\n }\r\n\r\n if (!attrs.fechaLimiteInscripcion) {\r\n errors.fechaLimiteInscripcion = 'Debe ingresar la fecha límite inscripción';\r\n }\r\n\r\n if (!attrs.periodo || !attrs.periodo.value) {\r\n errors.periodo = 'Debe ingresar el periodo';\r\n }\r\n\r\n if (!attrs.nroActa) {\r\n errors.nroActa = 'Debe ingresar el número de acta';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card, CardBody, Col, Row, Badge,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\n\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport TooltipItem from '../../../shared/components/TooltipItem';\r\nimport validate from './validate';\r\nimport {\r\n Calificaciones,\r\n InstanciaExamen,\r\n EstadoExamen,\r\n} from '../../../constants/enums';\r\nimport { dateFormat, dateDDMMYYFormat } from '../../../helpers/dateFormat';\r\n\r\nimport {\r\n stampExam,\r\n openExam,\r\n downloadAcademicStatusStudent,\r\n} from '../../../redux/actions/examActions';\r\n\r\nclass ExamForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n onSubjectChanges: PropTypes.func.isRequired,\r\n handleDeleteInscription: PropTypes.func.isRequired,\r\n handleActualizarNotasProfesor: PropTypes.func.isRequired,\r\n handleChangeText: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n id: PropTypes.number,\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n periodosExamen: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n instanciasExamen: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n periodosLectivos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n inscriptos: PropTypes.arrayOf(PropTypes.shape({})),\r\n history: PropTypes.shape({}).isRequired,\r\n nroActa: PropTypes.string,\r\n notasObservaciones: PropTypes.string,\r\n fecha: PropTypes.string.isRequired,\r\n fechaLimiteInscripcion: PropTypes.string.isRequired,\r\n carrera: PropTypes.shape({}),\r\n periodo: PropTypes.shape({}),\r\n periodoLectivo: PropTypes.shape({}),\r\n materia: PropTypes.shape({}),\r\n interventor: PropTypes.shape({}),\r\n interventorAuxiliar: PropTypes.shape({}),\r\n estado: PropTypes.shape({}),\r\n }\r\n\r\n static defaultProps = {\r\n id: 0,\r\n submitting: false,\r\n nroActa: '',\r\n notasObservaciones: '',\r\n periodoLectivo: {},\r\n estado: {},\r\n periodo: {},\r\n interventorAuxiliar: {},\r\n interventor: {},\r\n materia: {},\r\n carrera: {},\r\n inscriptos: [],\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.editExamInscription = this.editExamInscription.bind(this);\r\n this.addExamInscription = this.addExamInscription.bind(this);\r\n this.deleteExamInscription = this.deleteExamInscription.bind(this);\r\n\r\n this.state = {\r\n loading: false,\r\n currentUser: JSON.parse(localStorage.getItem('currentUser')) || {},\r\n inscriptos: props.inscriptos,\r\n };\r\n\r\n this.inputStyle = (row, key = '') => {\r\n let color = 'greenyellow';\r\n\r\n if (row.esInconsistente) {\r\n const value = row[key];\r\n\r\n if (key === 'porcentajeAsistencia' && value !== row.asistenciaMateria) {\r\n color = 'red';\r\n }\r\n\r\n if (key === 'porcentajePP' && value !== row.ppMateria) {\r\n color = 'red';\r\n }\r\n }\r\n\r\n return {\r\n fontSize: '18px',\r\n width: '80px',\r\n height: '30px',\r\n color,\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n // backgroundColor: '#232329',\r\n };\r\n };\r\n\r\n this.scoreInputStyle = {\r\n fontSize: '20px',\r\n height: '30px',\r\n color: 'cyan',\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n // backgroundColor: '#232329',\r\n };\r\n\r\n this.columns = ({ canEdit, addButton }) => [\r\n /* {\r\n key: 'numeroLegajo',\r\n name: '# Legajo',\r\n width: '80px',\r\n search: false,\r\n type: 'number',\r\n }, */\r\n {\r\n key: 'numeroDocumento',\r\n name: '#Documento',\r\n search: false,\r\n type: 'number',\r\n width: '100px',\r\n },\r\n {\r\n key: 'alumno',\r\n name: 'Alumno',\r\n search: false,\r\n format: row => (`${row.apellido}, ${row.nombre}`.trim()),\r\n },\r\n {\r\n key: 'fecha',\r\n name: Inscripción,\r\n search: false,\r\n // className: 'text-center',\r\n format: ({ fechaInscripcion, usuarioInscripcion }) => (\r\n `${dateDDMMYYFormat(fechaInscripcion)} - ${usuarioInscripcion}`\r\n ),\r\n },\r\n {\r\n key: 'esRecuperatorio',\r\n name: 'Instancia',\r\n search: false,\r\n className: 'text-center',\r\n format: ({ id, instancia }) => {\r\n let color = 'danger';\r\n if (instancia.value === 1) {\r\n color = 'info';\r\n }\r\n\r\n if (instancia.value === 0) {\r\n color = 'success';\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 key: 'asistenciaMateria',\r\n name: '% Asis. - PP Materia',\r\n search: false,\r\n editable: false,\r\n className: 'text-center',\r\n format: ({\r\n id, esInconsistente, asistenciaMateria, porcentajeAsistencia, ppMateria, porcentajePP,\r\n }) => {\r\n const asistencia = esInconsistente ? asistenciaMateria : porcentajeAsistencia;\r\n const pp = esInconsistente ? ppMateria : porcentajePP;\r\n return (\r\n \r\n \r\n -\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n search: false,\r\n editable: canEdit,\r\n className: 'text-center',\r\n inputStyle: (row, key) => this.inputStyle(row, key),\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n },\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n search: false,\r\n editable: canEdit,\r\n className: 'text-center',\r\n inputStyle: (row, key) => this.inputStyle(row, key),\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n },\r\n {\r\n key: 'porcentajePF',\r\n name: '% PF',\r\n search: false,\r\n editable: canEdit,\r\n className: 'text-center',\r\n inputStyle: (row, key) => this.inputStyle(row, key),\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n },\r\n {\r\n key: 'porcentajePC',\r\n name: '% PC',\r\n search: false,\r\n editable: false,\r\n className: 'text-center',\r\n inputStyle: (row, key) => this.inputStyle(row, key),\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n format: ({ id, porcentajePC, calificacion }) => {\r\n const score = Calificaciones.find(c => c.value === calificacion) || {};\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n key: 'calificacion',\r\n name: Calificación,\r\n search: false,\r\n editable: false,\r\n type: 'number',\r\n className: 'text-center',\r\n inputStyle: () => this.scoreInputStyle,\r\n min: '0',\r\n max: '5',\r\n step: '1',\r\n format: ({ id, calificacion }) => this.showScore({\r\n id,\r\n calificacion: Calificaciones.find(c => c.value === calificacion) || {},\r\n }),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '85px',\r\n visible: addButton && canEdit,\r\n },\r\n ];\r\n this.actions = ({ addButton }) => [\r\n {\r\n key: addButton ? 'edit' : '',\r\n icon: ,\r\n callback: (inscription) => {\r\n this.editExamInscription(inscription);\r\n },\r\n },\r\n {\r\n key: addButton ? 'delete' : '',\r\n icon: ,\r\n callback: (inscription) => {\r\n this.deleteExamInscription(inscription);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n showScore = ({ id, calificacion }) => (\r\n \r\n {\r\n \r\n }\r\n \r\n );\r\n\r\n autoguardarNota = (row, key, value) => {\r\n const { inscriptos } = this.state;\r\n const trow = inscriptos.find(r => r.id === row.id);\r\n\r\n if (!trow) return;\r\n trow[key] = +value;\r\n\r\n const {\r\n id: inscripcionId, porcentajeAsistencia, porcentajePC, porcentajePF, porcentajePP, calificacion,\r\n } = {\r\n ...row,\r\n [key]: +value,\r\n };\r\n\r\n const { handleActualizarNotasProfesor } = this.props;\r\n\r\n handleActualizarNotasProfesor({\r\n inscripcionId, porcentajeAsistencia, porcentajePC, porcentajePF, porcentajePP, calificacion,\r\n });\r\n };\r\n\r\n editExamInscription = (inscription) => {\r\n if (inscription) {\r\n const { id, history } = this.props;\r\n history.push(`/pages/exams/inscription/${id}/${inscription.id}`);\r\n }\r\n };\r\n\r\n addExamInscription = () => {\r\n const { id, history } = this.props;\r\n history.push(`/pages/exams/inscription/${id}`);\r\n };\r\n\r\n deleteExamInscription = (inscription) => {\r\n if (inscription) {\r\n const { handleDeleteInscription } = this.props;\r\n handleDeleteInscription(inscription);\r\n }\r\n };\r\n\r\n getGridActions = (key) => {\r\n const { estado = { value: 0 } } = this.props;\r\n const { currentUser } = this.state;\r\n const addButton = currentUser.esAdmin || currentUser.esFuncionario;\r\n\r\n const actions = {\r\n actions: this.actions({ addButton, esProfesor: currentUser.esProfesor }).filter(a => a.key),\r\n };\r\n\r\n return estado.value === 0 && actions[key];\r\n }\r\n\r\n handleShowPreviewRecuperatorioExam = ({ id, estado }) => {\r\n const { history } = this.props;\r\n if (estado.value === 1) {\r\n history.push(`/pages/exams/show-recuperatorio-report/${id}`);\r\n }\r\n };\r\n\r\n handleDownloadRespaldoDocente = ({ id, materia }) => {\r\n const [materiaName] = materia.label\r\n .replace('(', '-')\r\n .replace(')', '')\r\n .split('-')\r\n .map(it => it.trim());\r\n\r\n\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent({ id, materiaName }, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Archivo descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar descargar la planilla de calificaciones del examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleShowPreviewExam = (examen) => {\r\n const { history } = this.props;\r\n const {\r\n id,\r\n materia,\r\n fecha,\r\n nroActa,\r\n estado,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n const [materiaName, carreraName] = materia.label\r\n .replace('(', '-')\r\n .replace(')', '')\r\n .split('-')\r\n .map(it => it.trim());\r\n\r\n\r\n const confirmData = {\r\n title: `Imprimir Examen ${materiaName} ${carreraName}`,\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n };\r\n\r\n if (estado.value === 1) {\r\n const question = (\r\n <>\r\n ¿{`Imprimir el acta o planilla de calificaciones del examen \r\n ${materia.label} del ${dateFormated} Acta N`}º{` ${nroActa}?`\r\n }\r\n \r\n );\r\n\r\n confirmData.question = question;\r\n confirmData.yesLabel = 'Imprimir Acta';\r\n confirmData.otherLabel = 'Descargar Acta';\r\n\r\n confirmData.onConfirm = () => {\r\n history.push(`/pages/exams/show-report/${id}`);\r\n };\r\n confirmData.onOther = () => {\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent({ id: examen.id, materiaName }, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Archivo descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar descargar la planilla de calificaciones del examen');\r\n }\r\n },\r\n });\r\n };\r\n }\r\n\r\n if (estado.value === EstadoExamen.Activo.value) {\r\n const question = (\r\n <>\r\n ¿{`Imprimir planilla de calificaciones del examen\r\n ${materia.label} del ${dateFormated} Acta N`}º{` ${nroActa}?`\r\n }\r\n \r\n );\r\n\r\n confirmData.question = question;\r\n confirmData.yesLabel = 'Descargar Acta';\r\n confirmData.onConfirm = () => {\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent({ id: examen.id, materiaName }, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Archivo descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar descargar la planilla de calificaciones del examen');\r\n }\r\n },\r\n });\r\n };\r\n }\r\n\r\n Confirm(confirmData);\r\n };\r\n\r\n handleStampExam = (examen) => {\r\n const {\r\n materia,\r\n fecha,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n\r\n Confirm({\r\n title: 'Sellar examen',\r\n question: (\r\n <>\r\n ¿Estás seguro que deseas sellar el examen {materia.label} del {dateFormated}?\r\n
    Una vez sellado ya no será editable.
    \r\n \r\n ),\r\n yesLabel: 'Si, Sellar examen',\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n onConfirm: () => {\r\n stampExam(examen.id, examen, {\r\n onSuccess: () => {\r\n const { history } = this.props;\r\n history.push('/pages/exams');\r\n createSuccessMessage('Examen sellado exitosamente');\r\n history.push(`/pages/exams/edit/${examen.id}`);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar sellar el examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleOpenExam = (examen) => {\r\n const {\r\n materia,\r\n fecha,\r\n } = examen;\r\n\r\n const style = { dateStyle: 'short' };\r\n const dateFormated = new Intl.DateTimeFormat('en-GB', style).format(new Date(fecha));\r\n\r\n Confirm({\r\n title: 'Abrir examen',\r\n question: (\r\n <>\r\n ¿Estás seguro que deseas abrir el examen {materia.label} del {dateFormated}?\r\n
    Esto permitirá editar las calificaciones.
    \r\n \r\n ),\r\n yesLabel: 'Si, Abrir examen',\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n onConfirm: () => {\r\n openExam(examen.id, examen, {\r\n onSuccess: () => {\r\n const { history } = this.props;\r\n history.push('/pages/exams');\r\n createSuccessMessage('Examen abierto exitosamente');\r\n history.push(`/pages/exams/edit/${examen.id}`);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar abrir el examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n printFinalButton = () => {\r\n const {\r\n id,\r\n estado,\r\n history,\r\n instanciasExamen = [],\r\n } = this.props;\r\n\r\n if (!id || ![EstadoExamen.Activo.value, EstadoExamen.Inconsistente.value].includes(estado.value)) {\r\n return null;\r\n }\r\n\r\n return instanciasExamen.filter(i => i.value === InstanciaExamen.Final)\r\n .map(i => (\r\n history.push(`/pages/exams/show-final-report/${id}`)}\r\n >\r\n \r\n {' '}\r\n Imprimir Acta {i.label}\r\n \r\n ));\r\n }\r\n\r\n stumpButton = () => {\r\n const {\r\n id,\r\n materia,\r\n fecha,\r\n estado,\r\n } = this.props;\r\n\r\n if (!id || ![EstadoExamen.Activo.value, EstadoExamen.Inconsistente.value].includes(estado.value)) {\r\n return null;\r\n }\r\n\r\n return (\r\n this.handleStampExam({\r\n id,\r\n materia,\r\n fecha,\r\n estado,\r\n })}\r\n >\r\n \r\n {' '}\r\n Sellar examen\r\n \r\n );\r\n }\r\n\r\n openButton = () => {\r\n const {\r\n currentUser,\r\n } = this.state;\r\n\r\n if (!currentUser.esAdminRoot) {\r\n return null;\r\n }\r\n\r\n const {\r\n id,\r\n materia,\r\n fecha,\r\n estado,\r\n } = this.props;\r\n\r\n if (!id || ![EstadoExamen.Sellado.value].includes(estado.value)) {\r\n return null;\r\n }\r\n\r\n return (\r\n this.handleOpenExam({\r\n id,\r\n materia,\r\n fecha,\r\n estado,\r\n })}\r\n >\r\n \r\n {' '}\r\n Abrir examen\r\n \r\n );\r\n }\r\n\r\n printAllButton = () => {\r\n const {\r\n id,\r\n history,\r\n } = this.props;\r\n\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n return (\r\n history.push(`/pages/exams/show-all-report/${id}`)}\r\n >\r\n \r\n {' '}\r\n Imprimir Lista Inscriptos\r\n \r\n );\r\n }\r\n\r\n printRecuperatorioButton = () => {\r\n const {\r\n id,\r\n estado,\r\n history,\r\n instanciasExamen = [],\r\n inscriptos = [],\r\n } = this.props;\r\n\r\n if (!id || estado.value !== 1) {\r\n return null;\r\n }\r\n\r\n const existsRecuperatorio = inscriptos.some(({ instancia }) => instancia.value === InstanciaExamen.Recuperatorio);\r\n if (!existsRecuperatorio) {\r\n return null;\r\n }\r\n\r\n return instanciasExamen.filter(i => i.value === InstanciaExamen.Recuperatorio)\r\n .map(i => (\r\n history.push(`/pages/exams/show-recuperatorio-report/${id}`)}\r\n >\r\n \r\n {' '}\r\n Imprimir Acta {i.label}\r\n \r\n ));\r\n }\r\n\r\n descargarRespaldoDocenteButton = () => {\r\n const {\r\n id,\r\n estado,\r\n nroActa,\r\n fecha,\r\n materia = {},\r\n } = this.props;\r\n\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n return (\r\n this.handleDownloadRespaldoDocente({\r\n id,\r\n materia,\r\n fecha,\r\n nroActa,\r\n estado,\r\n })}\r\n >\r\n \r\n {' '}\r\n Descargar Respaldo Docente\r\n \r\n );\r\n }\r\n\r\n getLabelEstados = () => (\r\n \r\n \r\n
    \r\n

    Estados:

    \r\n \r\n Activo expirado\r\n \r\n \r\n Activo\r\n \r\n \r\n Sellado\r\n \r\n \r\n Inconsistencia de datos\r\n \r\n
    \r\n \r\n
    \r\n );\r\n\r\n render() {\r\n const {\r\n currentUser,\r\n loading,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const {\r\n id,\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n profesores = [],\r\n materias,\r\n carreras,\r\n onFilterChanges,\r\n onSubjectChanges,\r\n handleChangeText,\r\n periodosLectivos,\r\n periodosExamen,\r\n estado,\r\n nroActa,\r\n notasObservaciones,\r\n fecha,\r\n fechaLimiteInscripcion,\r\n carrera = {},\r\n periodo = {},\r\n periodoLectivo = {},\r\n materia = {},\r\n interventor = {},\r\n interventorAuxiliar = {},\r\n inscriptos,\r\n } = this.props;\r\n\r\n const addButton = currentUser.esAdmin || currentUser.esFuncionario;\r\n\r\n const canEdit = estado.value === 0 && addButton;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    Datos del examen
    \r\n
    \r\n \r\n \r\n
    \r\n Carrera\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n onFilterChanges('carrera', 'carreraId', v)}\r\n />\r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Periodo Lectivo\r\n
    \r\n {canEdit\r\n ? (\r\n onFilterChanges('periodoLectivo', 'periodoLectivoId', v)}\r\n />\r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Materia\r\n
    \r\n {canEdit\r\n ? (\r\n onSubjectChanges('materia', 'materiaPeriodoId', v)}\r\n />\r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Interventor 1\r\n
    \r\n {canEdit\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Profesor a cargo\r\n
    \r\n {canEdit\r\n ? (\r\n onFilterChanges('profesor', 'profesorId', v)}\r\n />\r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Interventor 2\r\n
    \r\n {canEdit\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n Fecha de examen\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n (canEdit ? value : this.format(value))}\r\n onBlur={({ target }) => handleChangeText({ target })}\r\n />\r\n\r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n Fecha Límite Inscripción\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n (canEdit ? value : this.format(value))}\r\n onBlur={({ target }) => handleChangeText({ target })}\r\n />\r\n )\r\n : (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Periodo del examen\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Número de acta\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Notas / Observaciones\r\n
    \r\n {\r\n canEdit\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {canEdit && (\r\n Guardar\r\n \r\n )}\r\n Cancelar - Volver\r\n \r\n {this.stumpButton()}\r\n {this.openButton()}\r\n {this.printFinalButton()}\r\n {this.printRecuperatorioButton()}\r\n {this.descargarRespaldoDocenteButton()}\r\n {this.printAllButton()}\r\n
    \r\n
    \r\n {id && (\r\n
    \r\n {canEdit && (\r\n <>\r\n this.addExamInscription()}\r\n >\r\n Agregar/Quitar Alumnos\r\n \r\n \r\n )}\r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n initialValues={{}}\r\n enableReinitialize\r\n />\r\n
    \r\n )}\r\n
    \r\n {canEdit && (\r\n Guardar\r\n \r\n )}\r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxExamForm = reduxForm({\r\n form: 'ExamForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(ExamForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxExamForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport ExamForm from './ExamForm';\r\nimport {\r\n fetchExam,\r\n saveExam,\r\n fetchFormDatas,\r\n} from '../../../redux/actions/examActions';\r\nimport {\r\n deleteInscripcionExamen,\r\n actualizarNotasProfesor,\r\n} from '../../../redux/actions/inscripcionExamenActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport { dateTimeString } from '../../../helpers/dateFormat';\r\n\r\nclass ExamFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n exam: {},\r\n inscriptos: [],\r\n instanciasExamen: [],\r\n loading: true,\r\n };\r\n\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n this.handleOnSubjectChange = this.handleOnSubjectChange.bind(this);\r\n this.handleDeleteInscription = this.handleDeleteInscription.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCurrentExam();\r\n }\r\n\r\n fetchCurrentExam = () => {\r\n const { id, history } = this.props;\r\n\r\n if (!id) {\r\n this.setState({\r\n exam: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n fechaLimiteInscripcion: new Date().toISOString(),\r\n estado: { value: 0 },\r\n },\r\n inscriptos: [],\r\n });\r\n\r\n this.fetchDatasList();\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchExam(id, {\r\n onSuccess: (dto) => {\r\n const { materia } = dto;\r\n const { interventor, interventorAuxiliar } = dto;\r\n const exam = {\r\n ...dto,\r\n interventor: {\r\n value: dto.interventorId,\r\n label: `${interventor}`,\r\n },\r\n profesor: {\r\n value: dto.profesorId,\r\n label: `${dto.profesor}`,\r\n },\r\n interventorAuxiliar: {\r\n value: dto.interventorAuxiliarId,\r\n label: `${interventorAuxiliar}`,\r\n },\r\n materia: {\r\n value: dto.materiaPeriodoId,\r\n label: `${materia}`,\r\n },\r\n carrera: {\r\n value: dto.carreraId,\r\n label: dto.carrera,\r\n },\r\n periodo: {\r\n value: dto.periodo,\r\n label: dto.periodo,\r\n },\r\n periodoLectivo: {\r\n value: dto.periodoLectivoId,\r\n label: dto.periodoLectivo,\r\n },\r\n };\r\n\r\n const { inscriptos } = dto;\r\n if (exam.inscriptos) {\r\n delete exam.inscriptos;\r\n }\r\n\r\n this.setState({\r\n exam,\r\n inscriptos,\r\n loading: false,\r\n });\r\n\r\n this.fetchDatasList(dto.periodoLectivoId);\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n history.push('/pages/exams');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchDatasList = (anhoLectivoId = 0) => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchFormDatas(anhoLectivoId, {\r\n onSuccess: ({\r\n carreras,\r\n materias,\r\n profesores,\r\n periodosLectivos,\r\n periodosExamen,\r\n instanciasExamen,\r\n }) => this.setState({\r\n carreras,\r\n materias,\r\n profesores,\r\n periodosLectivos,\r\n periodosExamen,\r\n instanciasExamen,\r\n loading: false,\r\n }),\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const {\r\n id,\r\n materia,\r\n interventor,\r\n profesor,\r\n interventorAuxiliar,\r\n fecha,\r\n fechaLimiteInscripcion,\r\n notasObservaciones,\r\n aula,\r\n nroActa,\r\n } = values;\r\n\r\n const { value: materiaPeriodoId } = materia;\r\n const { value: interventorId } = interventor;\r\n const { value: profesorId } = profesor;\r\n const { periodo: { label: periodo } } = values;\r\n const { value: interventorAuxiliarId } = (interventorAuxiliar || {});\r\n\r\n const params = {\r\n id,\r\n fecha: dateTimeString(fecha),\r\n fechaLimiteInscripcion: dateTimeString(fechaLimiteInscripcion),\r\n materiaPeriodoId,\r\n interventorId,\r\n profesorId,\r\n interventorAuxiliarId,\r\n periodo,\r\n notasObservaciones,\r\n aula,\r\n nroActa,\r\n };\r\n\r\n const { history } = this.props;\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n saveExam(params, {\r\n onSuccess: () => {\r\n createSuccessMessage('Examen guardado exitosamente');\r\n history.push('/pages/exams');\r\n },\r\n onError: (error = {}) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleDeleteInscription = (inscription) => {\r\n const name = `${inscription.nombre} ${inscription.apellido}`;\r\n Confirm({\r\n title: 'Borrar inscripción de examen',\r\n question: `Estás seguro que deseas eliminar la inscripción de ${name}?`,\r\n yesLabel: 'Si, Borrar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n deleteInscripcionExamen(inscription.id, {\r\n onSuccess: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n createSuccessMessage('Examen borrado exitosamente');\r\n this.fetchCurrentExam();\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n if (error && error.status === 404) {\r\n createErrorMessage('La inscripción de examen no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar la inscripción examen');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleActualizarNotasProfesor = ({\r\n inscripcionId, porcentajeAsistencia, porcentajePC, porcentajePF, porcentajePP, calificacion,\r\n }) => {\r\n actualizarNotasProfesor({\r\n inscripcionId, porcentajeAsistencia, porcentajePC, porcentajePF, porcentajePP, calificacion,\r\n }, {\r\n onSuccess: (inscription) => {\r\n const { inscriptos } = this.state;\r\n\r\n const newInscriptos = [...inscriptos];\r\n const elementsIndex = newInscriptos.findIndex(s => s.id === inscription.id);\r\n\r\n newInscriptos[elementsIndex] = inscription;\r\n\r\n this.setState({\r\n inscriptos: newInscriptos,\r\n });\r\n\r\n createSuccessMessage('Asistencia y/o notas guardada(s) exitosamente.');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la asistencia y/o nota.');\r\n }\r\n },\r\n });\r\n };\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n const { exam } = this.state;\r\n if (idKey === 'carreraId') {\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n\r\n materiaPeriodoId: 0,\r\n materia: { value: 0, label: '-' },\r\n\r\n periodoLectivoId: 0,\r\n periodoLectivo: { value: 0, label: '-' },\r\n\r\n interventorId: 0,\r\n interventor: { value: 0, label: '-' },\r\n\r\n profesorId: 0,\r\n profesor: { value: 0, label: '-' },\r\n },\r\n });\r\n return;\r\n }\r\n\r\n if (idKey === 'periodoLectivoId') {\r\n if (value.value > 0) {\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n\r\n materiaPeriodoId: 0,\r\n materia: { value: 0, label: '-' },\r\n\r\n interventorId: 0,\r\n interventor: { value: 0, label: '-' },\r\n\r\n profesorId: 0,\r\n profesor: { value: 0, label: '-' },\r\n },\r\n });\r\n\r\n this.fetchDatasList(value.value);\r\n return;\r\n }\r\n\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n materiaPeriodoId: 0,\r\n materia: { value: 0, label: '-' },\r\n\r\n periodoLectivoId: 0,\r\n periodoLectivo: { value: 0, label: '-' },\r\n\r\n interventorId: 0,\r\n interventor: { value: 0, label: '-' },\r\n\r\n profesorId: 0,\r\n profesor: { value: 0, label: '-' },\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n },\r\n });\r\n }\r\n\r\n filtrarMaterias = (carreraId) => {\r\n const { materias } = this.state;\r\n if (!materias || !carreraId) {\r\n return [];\r\n }\r\n\r\n return materias.filter(m => m.parentId === carreraId);\r\n }\r\n\r\n handleOnSubjectChange = (objectKey, idKey, value) => {\r\n const { exam } = this.state;\r\n const profesorName = value.nombre ? `${value.nombre} ${value.apellido}` : '';\r\n let { interventorId, interventor } = exam;\r\n\r\n if (!interventorId) {\r\n interventorId = value.usuarioId;\r\n interventor = { value: interventorId, label: profesorName };\r\n } else {\r\n interventorId = 0;\r\n interventor = { value: interventorId, label: profesorName };\r\n }\r\n\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n profesor: { value: value.usuarioId, label: profesorName },\r\n interventor,\r\n interventorId,\r\n },\r\n });\r\n }\r\n\r\n handleChangeText = ({\r\n target,\r\n }) => {\r\n const value = target.type === 'number'\r\n ? Number(target.value)\r\n : `${target.value}`.trim();\r\n\r\n this.setState(prev => ({\r\n exam: {\r\n ...prev.exam,\r\n ...{\r\n [target.name]: value,\r\n },\r\n },\r\n }));\r\n };\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n exam,\r\n profesores,\r\n carreras = [],\r\n periodosLectivos,\r\n periodosExamen,\r\n instanciasExamen = [],\r\n inscriptos,\r\n loading,\r\n } = this.state;\r\n\r\n if (!exam || carreras.length === 0 || loading) {\r\n return ;\r\n }\r\n\r\n const materias = this.filtrarMaterias(exam.carreraId);\r\n const { estado } = exam;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id && estado.value === 0 && 'Editar'}{!id && 'Nuevo'}{id && estado.value !== 0 && 'Ver'} examen\r\n

    \r\n

    \r\n {id ? '' : ''}\r\n {id && estado.value === 0 && 'Modificar '}{!id && 'Ingresa '}{id && estado.value !== 0 && 'Ver '}\r\n la información del examen\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(profesores)\r\n ? ()\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nExamFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default ExamFormContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport '../../../scss/component/print-styles.scss';\r\nimport { fetchExamPrintPreview } from '../../../redux/actions/examActions';\r\nimport { createErrorMessage } from '../../../helpers/notification';\r\nimport { dateFormat, timeFormat } from '../../../helpers/dateFormat';\r\nimport {\r\n Calificaciones, InstanciaExamen,\r\n} from '../../../constants/enums';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass PreviewFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCurrentExam(InstanciaExamen.Final);\r\n }\r\n\r\n fetchCurrentExam = (instanciaExamen) => {\r\n const { id, history } = this.props;\r\n if (!id) {\r\n this.setState({\r\n exam: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n },\r\n });\r\n\r\n this.fetchDatasList();\r\n return;\r\n }\r\n\r\n fetchExamPrintPreview(id, instanciaExamen, {\r\n onSuccess: (exam) => {\r\n this.setState({ exam });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n history.push('/pages/exams');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n getCalificacionText = (calificacion) => {\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n return calificacionObj.value ? calificacionObj.desciption : '-';\r\n }\r\n\r\n getObservacion = (calificacion) => {\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n return !calificacionObj.value ? calificacionObj.desciption : '';\r\n }\r\n\r\n render() {\r\n const { exam } = this.state;\r\n if (!exam) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n {`ACTA ${exam.nroActa}`}\r\n \r\n \r\n CARRERA DE INGENIERÍA {exam.carrera.toUpperCase()}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {`EXAMEN ${exam.periodo}`.toUpperCase()} \r\n \r\n \r\n \r\n

    \r\n

    \r\n
    \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n ASIGNATURA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.materia}`.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SEMESTRE:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.semestre}`.toUpperCase().replace('SEMESTRE', '').trimEnd()}\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n PROFESOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.profesor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n INTERVENTOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.interventor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n FECHA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${dateFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n HORA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${timeFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {/* */}\r\n
    \r\n

    {`ACTA ${exam.nroActa}`}

    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n \r\n ALUMNOS\r\n \r\n \r\n

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exam.inscriptos.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {` ${this.getObservacion(item.calificacion)}`}\r\n \r\n

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

    \r\n CALIFICACIÓN\r\n

    \r\n
    \r\n

    \r\n OBSERVACIÓN\r\n

    \r\n
    \r\n

    NÚM.

    \r\n
    \r\n

    LETRAS

    \r\n
    \r\n

    \r\n {`${index + 1}. ${item.apellido}, ${item.nombre}`}\r\n

    \r\n
    \r\n

    \r\n \r\n {` ${item.calificacion || '-'}`}\r\n \r\n

    \r\n
    \r\n

    \r\n \r\n {` ${this.getCalificacionText(item.calificacion)}`}\r\n \r\n

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

    .....................

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

    .....................

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

    .....................

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

    Interventor

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

    Profesor

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

    Decano

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n
    page-footer-space
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nPreviewFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default PreviewFormContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport '../../../scss/component/print-styles.scss';\r\nimport { fetchExamPrintPreview } from '../../../redux/actions/examActions';\r\nimport { createErrorMessage } from '../../../helpers/notification';\r\nimport { dateFormat, timeFormat } from '../../../helpers/dateFormat';\r\nimport {\r\n Calificaciones, InstanciaExamen,\r\n} from '../../../constants/enums';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass PreviewFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCurrentExam(InstanciaExamen.Recuperatorio);\r\n }\r\n\r\n fetchCurrentExam = (instanciaExamen) => {\r\n const { id, history } = this.props;\r\n if (!id) {\r\n this.setState({\r\n exam: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n reportTitle: '',\r\n },\r\n });\r\n\r\n this.fetchDatasList();\r\n return;\r\n }\r\n\r\n fetchExamPrintPreview(id, instanciaExamen, {\r\n onSuccess: (exam) => {\r\n const { inscriptos = [] } = exam;\r\n const reportTitle = inscriptos.map(i => i.instancia.label)[0];\r\n\r\n this.setState({\r\n exam: {\r\n ...exam,\r\n reportTitle,\r\n },\r\n });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n history.push('/pages/exams');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n getCalificacionText = (calificacion) => {\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n return calificacionObj.desciption;\r\n }\r\n\r\n getValue = (value) => {\r\n const number = Number(value);\r\n if (number === 0) {\r\n return 0;\r\n }\r\n\r\n if (!number) {\r\n return '-';\r\n }\r\n\r\n return number;\r\n }\r\n\r\n getObservacion = (calificacion) => {\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n return calificacionObj.value === 0 ? calificacionObj.desciption : '';\r\n }\r\n\r\n render() {\r\n const { exam } = this.state;\r\n if (!exam) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n {`ACTA ${exam.nroActa}`}\r\n \r\n \r\n CARRERA DE INGENIERÍA {exam.carrera}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {`EXAMEN ${exam.reportTitle}`.toUpperCase()} \r\n \r\n \r\n \r\n

    \r\n

    \r\n
    \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n ASIGNATURA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.materia}`.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SEMESTRE:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.semestre}`.toUpperCase().replace('SEMESTRE', '').trimEnd()}\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n PROFESOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.profesor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n INTERVENTOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.interventor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n FECHA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${dateFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n HORA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${timeFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {/* */}\r\n
    \r\n

    {`ACTA ${exam.nroActa}`}

    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n \r\n ALUMNOS\r\n \r\n \r\n

    \r\n \r\n
    \r\n \r\n \r\n {exam.inscriptos.map((item, index) => (\r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {` ${this.getObservacion(item.calificacion)}`}\r\n \r\n

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

    \r\n PC\r\n

    \r\n
    \r\n

    \r\n OBSERVACIÓN\r\n

    \r\n
    \r\n

    \r\n {`${index + 1}. ${item.apellido}, ${item.nombre}`}\r\n

    \r\n
    \r\n

    \r\n \r\n {` ${this.getValue(item.porcentajePF)}`}\r\n \r\n

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

    .....................

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

    {' '}

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

    .....................

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

    Interventor

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

    {' '}

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

    Profesor

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n
    page-footer-space
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nPreviewFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default PreviewFormContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport '../../../scss/component/print-styles.scss';\r\nimport { fetchExamPrintPreview } from '../../../redux/actions/examActions';\r\nimport { createErrorMessage } from '../../../helpers/notification';\r\nimport { dateFormat, timeFormat } from '../../../helpers/dateFormat';\r\nimport {\r\n Calificaciones,\r\n} from '../../../constants/enums';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass PreviewFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCurrentExam();\r\n }\r\n\r\n fetchCurrentExam = () => {\r\n const { id, history } = this.props;\r\n if (!id) {\r\n this.setState({\r\n exam: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n },\r\n });\r\n\r\n this.fetchDatasList();\r\n return;\r\n }\r\n\r\n fetchExamPrintPreview(id, null, {\r\n onSuccess: (exam) => {\r\n this.setState({ exam });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El examen no existe');\r\n history.push('/pages/exams');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del examen');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnPrint = () => {\r\n this.setState({\r\n print: true,\r\n });\r\n\r\n setTimeout(() => {\r\n window.print();\r\n this.setState({\r\n print: false,\r\n });\r\n }, 75);\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n getCalificacionText = (calificacion) => {\r\n const calificacionObj = Calificaciones.find(c => c.value === calificacion) || {};\r\n return calificacionObj.desciption;\r\n }\r\n\r\n render() {\r\n const { exam, print = false } = this.state;\r\n if (!exam) {\r\n return ;\r\n }\r\n\r\n const ciLabel = <>C.I. Nº;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n\r\n \r\n CARRERA DE INGENIERÍA {exam.carrera}\r\n \r\n

    \r\n \r\n \r\n \r\n LISTA DE INSCRIPTOS\r\n \r\n \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n {`EXAMEN ${exam.periodo}`.toUpperCase()} \r\n \r\n \r\n \r\n

    \r\n

    \r\n
    \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n ASIGNATURA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.materia}`.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SEMESTRE:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.semestre}`.toUpperCase().replace('SEMESTRE', '').trimEnd()}\r\n \r\n \r\n \r\n \r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n PROFESOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.profesor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n INTERVENTOR:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${exam.interventor}`.toUpperCase()}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n FECHA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${dateFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n HORA:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {` ${timeFormat(exam.fecha)}`}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {/* */}\r\n
    \r\n

    {`ACTA ${exam.nroActa}`}

    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n \r\n ALUMNOS\r\n \r\n \r\n

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {exam.inscriptos.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n \r\n {` ${item.instancia.label || '-'}`}\r\n \r\n

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

    \r\n {ciLabel}\r\n

    \r\n
    \r\n

    \r\n ASISTENCIA\r\n

    \r\n
    \r\n

    PP

    \r\n
    \r\n

    \r\n INSTANCIA\r\n

    \r\n
    \r\n

    \r\n {`${index + 1}. ${item.apellido}, ${item.nombre}`}\r\n

    \r\n
    \r\n

    \r\n \r\n {item.numeroDocumento}\r\n \r\n

    \r\n
    \r\n

    \r\n \r\n {` ${item.porcentajeAsistencia || 0}`}\r\n \r\n

    \r\n
    \r\n

    \r\n \r\n {` ${item.porcentajePP || 0}`}\r\n \r\n

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

    .....................

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

    .....................

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

    .....................

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

    Interventor

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

    Profesor

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

    Decano

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n
    page-footer-space
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nPreviewFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default PreviewFormContainer;\r\n","import React from 'react';\nimport { Card, CardBody, Col } from 'reactstrap';\n\nconst ExampleCard = () => (\n \n \n \n
    \n
    Informacion de la materias
    \n
    Facultad de Ingenieria
    \n
    \n

    materias...

    \n
    \n
    \n \n);\n\nexport default ExampleCard;\n","import React from 'react';\nimport { Col, Container, Row } from 'reactstrap';\nimport ExampleCard from './components/ExampleCard';\n\nconst MateriasPage = () => (\n \n \n \n

    Materias

    \n \n
    \n \n \n \n \n \n \n
    \n);\n\nexport default MateriasPage;\n","import React from 'react';\nimport { Card, CardBody, Col } from 'reactstrap';\n\nconst ExampleCard = () => (\n \n \n \n
    \n
    Malla
    \n
    Facultad de Ingenieria
    \n
    \n

    Página en Construcción!

    \n
    \n
    \n \n);\n\nexport default ExampleCard;\n","import React from 'react';\nimport { Col, Container, Row } from 'reactstrap';\nimport ExampleCard from './components/ExampleCard';\n\nconst MallaPage = () => (\n \n \n \n

    Mallas

    \n \n
    \n \n \n \n
    \n);\n\nexport default MallaPage;\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Badge,\r\n UncontrolledPopover,\r\n PopoverHeader,\r\n PopoverBody,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n filter,\r\n remove,\r\n} from '../../redux/actions/materiaPeriodoActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\n\r\nclass MateriaPeriodoContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 10 },\r\n };\r\n this.columns = [\r\n { key: 'id', name: '#', width: '85px' },\r\n { key: 'anho', name: 'Periodo', width: '85px' },\r\n { key: 'malla', name: 'Malla', search: true },\r\n {\r\n key: 'semestreNroOrden',\r\n name: 'Semestre',\r\n width: '85px',\r\n format: row => `${row.semestreNroOrden}º`,\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n search: true,\r\n format: ({ codigoMateria, materia, seccion }) => (\r\n
    {codigoMateria}{` ${materia} ${seccion}`}
    \r\n ),\r\n },\r\n {\r\n key: 'codigoMateria', name: 'Código Materia', search: true, visible: false,\r\n },\r\n {\r\n key: 'profesores',\r\n name: 'Profesor(es)',\r\n format: row => row.profesores.map(m => (\r\n
    \r\n {m.role === 'Asistente' ? 'Aux:' : 'Enc:'} {m.nombre} {m.apellido}\r\n
    \r\n )),\r\n },\r\n {\r\n key: 'cantidadInscriptos',\r\n name: 'Alumnos inscriptos',\r\n search: false,\r\n className: 'text-center',\r\n width: '150px',\r\n format: row => (

    {row.cantidadInscriptos}

    ),\r\n },\r\n {\r\n key: 'tieneHorario',\r\n name: 'Horario',\r\n search: false,\r\n className: 'text-center',\r\n width: '100px',\r\n format: row => (\r\n

    \r\n \r\n {row.tieneHorario ? 'Si' : 'No'}\r\n \r\n

    \r\n ),\r\n },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (record) => {\r\n this.edit(record);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: row => (\r\n <>\r\n \r\n \r\n No se puede borrar la materia\r\n Hay alumnos inscriptos en la materia.\r\n \r\n \r\n ),\r\n callback: (record) => {\r\n if (!record.cantidadInscriptos) {\r\n this.handleDeleteAction(record);\r\n }\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updateExamsTable(page, pageSize);\r\n }\r\n\r\n updateExamsTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n filter({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ items, totalItemsCount }) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias por periodo');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteAction = (record) => {\r\n const name = `${record.materia}`;\r\n Confirm({\r\n title: 'Borrar materia por periodo',\r\n question: `Estás seguro que deseas eliminar esta materia \"${name}\" del periodo?`,\r\n yesLabel: 'Si, Borrar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n remove(record.id,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Materia borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateExamsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La matria para este periodo no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar materia del periodo');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n edit = (record) => {\r\n const { history } = this.props;\r\n history.push(`/pages/subjects-periods/edit/${record.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateExamsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateExamsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateExamsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Lista de materias por periodo

    \r\n
    \r\n \r\n Agregar nueva materia a periodo\r\n \r\n
    \r\n \r\n
    \r\n \r\n {loading ?

    Cargando...

    \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(MateriaPeriodoContainer);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\n\r\nconst ObjetivosMateriaTable = ({\r\n materiaPeriodo,\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n items,\r\n}) => {\r\n const isNew = items.some(o => !o.deleted && o.id === 0);\r\n return (\r\n
    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n
    \r\n \r\n \r\n onAddItemArray({ name: fields.name })}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \r\n \r\n \r\n
    \r\n ) : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((objetivo, index) => {\r\n if (!items[index]) {\r\n return null;\r\n }\r\n return (\r\n 0 && isNew)) ? 'hidden' : ''}\r\n >\r\n \r\n\r\n \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n \r\n ) : null\r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n
    #Objetivo{' '}
    \r\n
    \r\n

    {items[index].index + 1}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n />\r\n
    \r\n
    \r\n
    \r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nObjetivosMateriaTable.propTypes = {\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nObjetivosMateriaTable.defaultProps = {\r\n meta: {},\r\n};\r\n\r\nexport default ObjetivosMateriaTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\n\r\nconst CronogramaClasesTable = ({\r\n materiaPeriodo,\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n onChangeSelect,\r\n items,\r\n profesores,\r\n}) => {\r\n const isNew = items.some(o => !o.deleted && o.id === 0);\r\n return (\r\n
    \r\n \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n
    \r\n \r\n \r\n onAddItemArray({ name: fields.name })}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \r\n \r\n \r\n
    \r\n ) : null\r\n }\r\n \r\n \r\n \r\n \r\n {fields.map((objetivo, index) => {\r\n if (!items[index]) {\r\n return null;\r\n }\r\n\r\n return (\r\n 0 && isNew)) ? 'hidden' : ''}\r\n >\r\n \r\n
    \r\n

    #{index + 1}

    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Fecha:\r\n
    \r\n \r\n onChangeText({\r\n target: { name: `${objetivo}.fecha`, value: newValue }, name: fields.name, index,\r\n })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Profesor:\r\n
    \r\n onChangeSelect({\r\n option: props,\r\n name: fields.name,\r\n target: { name: `${objetivo}.profesorMateria` },\r\n index,\r\n })}\r\n options={profesores}\r\n component={renderSelectField}\r\n isDisabled={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n
    \r\n Unidad:\r\n
    \r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Contenido:\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nCronogramaClasesTable.propTypes = {\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nCronogramaClasesTable.defaultProps = {\r\n meta: {},\r\n};\r\n\r\nexport default CronogramaClasesTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\n\r\nconst PracticaLaboratorioTable = ({\r\n materiaPeriodo,\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n onChangeSelect,\r\n items,\r\n profesores,\r\n}) => {\r\n const isNew = items.some(o => !o.deleted && o.id === 0);\r\n return (\r\n
    \r\n \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n \r\n \r\n
    \r\n \r\n \r\n onAddItemArray({ name: fields.name })}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n ) : null\r\n }\r\n \r\n \r\n \r\n \r\n {fields.map((objetivo, index) => {\r\n if (!items[index]) {\r\n return null;\r\n }\r\n\r\n return (\r\n 0 && isNew)) ? 'hidden' : ''}\r\n >\r\n \r\n
    \r\n

    #{index + 1}

    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n Profesor\r\n
    \r\n onChangeSelect({\r\n option: props,\r\n name: fields.name,\r\n target: { name: `${objetivo}.profesorMateria` },\r\n index,\r\n })}\r\n options={profesores}\r\n component={renderSelectField}\r\n isDisabled={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Duración\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n Actividad\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Descripción\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Material de apoyo\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nPracticaLaboratorioTable.propTypes = {\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nPracticaLaboratorioTable.defaultProps = {\r\n meta: {},\r\n};\r\n\r\nexport default PracticaLaboratorioTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\n\r\nconst ProyectoTrabajoPracticoTable = ({\r\n materiaPeriodo,\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n onChangeSelect,\r\n items,\r\n profesores,\r\n duracionActividad,\r\n}) => {\r\n const isNew = items.some(o => !o.deleted && o.id === 0);\r\n return (\r\n
    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n \r\n \r\n
    \r\n \r\n \r\n onAddItemArray({ name: fields.name })}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n ) : null\r\n }\r\n \r\n \r\n \r\n {fields.map((objetivo, index) => {\r\n if (!items[index]) {\r\n return null;\r\n }\r\n\r\n return (\r\n 0 && isNew)) ? 'hidden' : ''}\r\n >\r\n \r\n
    \r\n

    #{index + 1}

    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n Profesor\r\n
    \r\n onChangeSelect({\r\n option: props,\r\n name: fields.name,\r\n target: { name: `${objetivo}.profesorMateria` },\r\n index,\r\n })}\r\n options={profesores}\r\n component={renderSelectField}\r\n isDisabled={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Duración\r\n
    \r\n onChangeSelect({\r\n option: props, name: fields.name, target: { name: `${objetivo}.duracion` }, index,\r\n })}\r\n options={duracionActividad}\r\n component={renderSelectField}\r\n isDisabled={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n Actividad\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Descripción\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n Evaluación\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nProyectoTrabajoPracticoTable.propTypes = {\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n duracionActividad: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nProyectoTrabajoPracticoTable.defaultProps = {\r\n meta: {},\r\n};\r\n\r\nexport default ProyectoTrabajoPracticoTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\n\r\nconst ActividadComplementariaTable = ({\r\n materiaPeriodo,\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n onChangeText,\r\n items,\r\n}) => {\r\n const isNew = items.some(o => !o.deleted && o.id === 0);\r\n return (\r\n
    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n \r\n \r\n
    \r\n \r\n \r\n onAddItemArray({ name: fields.name })}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n ) : null\r\n }\r\n \r\n \r\n \r\n {fields.map((objetivo, index) => {\r\n if (!items[index]) {\r\n return null;\r\n }\r\n\r\n return (\r\n 0 && isNew)) ? 'hidden' : ''}\r\n >\r\n \r\n
    \r\n

    #{index + 1}

    \r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n \r\n
    \r\n Descripción de la Actividad\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Beneficiarios\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Fechas\r\n
    \r\n onChangeText({ target, name: fields.name, index })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Cantidad de Horas\r\n
    \r\n Number(val)}\r\n onChange={({ target }) => onChangeText({\r\n target: {\r\n type: target.type,\r\n value: Number(target.value),\r\n name: target.name,\r\n },\r\n name: fields.name,\r\n index,\r\n })}\r\n disabled={!materiaPeriodo.canEditarPlaneamiento}\r\n readOnly={!materiaPeriodo.canEditarPlaneamiento}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n\r\n {\r\n materiaPeriodo.canEditarPlaneamiento ? (\r\n
    \r\n ) : null\r\n }\r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n
    \r\n onDeleteItemArray({ name: fields.name, index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nActividadComplementariaTable.propTypes = {\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nActividadComplementariaTable.defaultProps = {\r\n meta: {},\r\n};\r\n\r\nexport default ActividadComplementariaTable;\r\n","const validate = (attrs = {\r\n materiaPeriodo: {},\r\n contribucionMateria: '',\r\n fundamentacionMateria: '',\r\n valoresContemplados: '',\r\n metodologiaEnsenhanza: '',\r\n estrategiasEvauacion: '',\r\n objetivosMaterias: [],\r\n bibliografiaBasica: '',\r\n cronogramaClases: [],\r\n practicasLaboratorios: [],\r\n proyectosTrabajosPracticos: [],\r\n profesores: [],\r\n}) => {\r\n const errors = {};\r\n\r\n if (attrs.materiaPeriodo && !attrs.materiaPeriodo.canEditarPlaneamiento) {\r\n return errors;\r\n }\r\n\r\n if (!attrs.contribucionMateria) {\r\n errors.contribucionMateria = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.fundamentacionMateria) {\r\n errors.fundamentacionMateria = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.valoresContemplados) {\r\n errors.valoresContemplados = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.metodologiaEnsenhanza) {\r\n errors.metodologiaEnsenhanza = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.estrategiasEvauacion) {\r\n errors.estrategiasEvauacion = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.bibliografiaBasica) {\r\n errors.bibliografiaBasica = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!attrs.objetivosMaterias || !attrs.objetivosMaterias.length) {\r\n errors.objetivosMaterias = { _error: 'Debe agregar un objetivo' };\r\n } else {\r\n errors.objetivosMaterias = [];\r\n attrs.objetivosMaterias.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n\r\n if (!obj.objetivo) {\r\n error.objetivo = 'Debe ingresar el objetivo';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.objetivosMaterias[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (!attrs.cronogramaClases || !attrs.cronogramaClases.length) {\r\n errors.cronogramaClases = { _error: 'Debe agregar un cronograma' };\r\n } else {\r\n errors.cronogramaClases = [];\r\n attrs.cronogramaClases.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n\r\n if (!obj.contenidos) {\r\n error.contenidos = 'Debe ingresar los contenidos';\r\n }\r\n if (!obj.fecha) {\r\n error.fecha = 'Debe ingresar una fecha valida';\r\n }\r\n\r\n if (!obj.profesorMateria || !obj.profesorMateria.value) {\r\n error.profesorMateria = 'Debe seleccionar un profesor';\r\n } else if (!(attrs.profesores || []).some(p => p.id === obj.profesorMateria.value)) {\r\n error.profesorMateria = 'Debe seleccionar el profesor encaregado o auxiliar';\r\n }\r\n\r\n if (!obj.unidad) {\r\n error.unidad = 'Debe ingresar la unidad';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.cronogramaClases[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (attrs.practicasLaboratorios && attrs.practicasLaboratorios.length) {\r\n errors.practicasLaboratorios = [];\r\n attrs.practicasLaboratorios.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n if (!obj.actividad) {\r\n error.actividad = 'Debe ingresar la actividad';\r\n }\r\n if (!obj.descripcion) {\r\n error.descripcion = 'Debe ingresar la descripcion';\r\n }\r\n\r\n if (!obj.profesorMateria || !obj.profesorMateria.value) {\r\n error.profesorMateria = 'Debe seleccionar un profesor';\r\n } else if (!(attrs.profesores || []).some(p => p.id === obj.profesorMateria.value)) {\r\n error.profesorMateria = 'Debe seleccionar el profesor encaregado o auxiliar';\r\n }\r\n\r\n if (!obj.duracion) {\r\n error.duracion = 'Debe seleccionar una duracion';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.practicasLaboratorios[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (attrs.proyectosTrabajosPracticos && attrs.proyectosTrabajosPracticos.length) {\r\n errors.proyectosTrabajosPracticos = [];\r\n attrs.proyectosTrabajosPracticos.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n if (!obj.actividad) {\r\n error.actividad = 'Debe ingresar la actividad';\r\n }\r\n if (!obj.descripcion) {\r\n error.descripcion = 'Debe ingresar la descripcion';\r\n }\r\n if (!obj.evaluacion) {\r\n error.evaluacion = 'Debe ingresar una fecha valida';\r\n }\r\n\r\n if (!obj.profesorMateria || !obj.profesorMateria.value) {\r\n error.profesorMateria = 'Debe seleccionar un profesor';\r\n } else if (!(attrs.profesores || []).some(p => p.id === obj.profesorMateria.value)) {\r\n error.profesorMateria = 'Debe seleccionar el profesor encaregado o auxiliar';\r\n }\r\n\r\n if (!obj.duracion || !obj.duracion.value) {\r\n error.duracion = 'Debe seleccionar una duracion';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.proyectosTrabajosPracticos[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (attrs.actividadesComplementarias && attrs.actividadesComplementarias.length) {\r\n errors.actividadesComplementarias = [];\r\n attrs.actividadesComplementarias.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n if (!obj.descripcionActividad) {\r\n error.descripcionActividad = 'Debe ingresar la actividad';\r\n }\r\n if (!obj.beneficiarios) {\r\n error.beneficiarios = 'Debe ingresar los beneficiarios';\r\n }\r\n if (!obj.fechas) {\r\n error.fechas = 'Debe ingresar las fechas';\r\n }\r\n if (!obj.cantidadHoras) {\r\n error.cantidadHoras = 'Debe ingresar la cantidad de horas';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.actividadesComplementarias[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (Object.keys(errors).length) {\r\n // console.log(errors);\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Row,\r\n Col,\r\n Button,\r\n ButtonToolbar,\r\n Badge,\r\n Dropdown, DropdownToggle, DropdownMenu, DropdownItem,\r\n} from 'reactstrap';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport ObjetivosMateriaTable from './ObjetivosMateriaTable';\r\nimport CronogramaClasesTable from './CronogramaClasesTable';\r\nimport PracticaLaboratorioTable from './PracticaLaboratorioTable';\r\nimport ProyectoTrabajoPracticoTable from './ProyectoTrabajoPracticoTable';\r\nimport ActividadComplementariaTable from './ActividadComplementariaTable';\r\nimport HorariosTable from './HorariosTable';\r\n\r\nimport Confirm from '../../../../shared/components/Confirm';\r\n\r\nimport validate from '../validate';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport { dateTimeFormat } from '../../../../helpers/dateFormat';\r\n\r\nclass PlaneamientoForm extends PureComponent {\r\n static propTypes = {\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n }),\r\n page: PropTypes.number.isRequired,\r\n changed: PropTypes.bool.isRequired,\r\n setPage: PropTypes.func.isRequired,\r\n previousPage: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n onCopyLastPlanning: PropTypes.func.isRequired,\r\n onDownload: PropTypes.func.isRequired,\r\n\r\n onAddItemArray: PropTypes.func.isRequired,\r\n onDeleteItemArray: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool.isRequired,\r\n loadingPage: PropTypes.bool.isRequired,\r\n createPlanning: PropTypes.bool.isRequired,\r\n canEditarPlaneamiento: PropTypes.bool.isRequired,\r\n finEditarPlaneamiento: PropTypes.string.isRequired,\r\n codigoClassroom: PropTypes.string,\r\n\r\n horasLaboratorioSemanal: PropTypes.number.isRequired,\r\n horasPracticaSemanal: PropTypes.number.isRequired,\r\n horasTeoriaSemanal: PropTypes.number.isRequired,\r\n totalHorasSemanal: PropTypes.number.isRequired,\r\n\r\n filters: PropTypes.shape({}),\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n oldPlannings: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n\r\n objetivosMaterias: PropTypes.arrayOf(PropTypes.shape({})),\r\n cronogramaClases: PropTypes.arrayOf(PropTypes.shape({})),\r\n practicasLaboratorios: PropTypes.arrayOf(PropTypes.shape({})),\r\n proyectosTrabajosPracticos: PropTypes.arrayOf(PropTypes.shape({})),\r\n actividadesComplementarias: PropTypes.arrayOf(PropTypes.shape({})),\r\n preRequisitos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n\r\n horarios: PropTypes.arrayOf(PropTypes.shape({})),\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})),\r\n duracionActividad: PropTypes.arrayOf(PropTypes.shape({})),\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n meta: {},\r\n filters: {},\r\n objetivosMaterias: [],\r\n cronogramaClases: [],\r\n practicasLaboratorios: [],\r\n proyectosTrabajosPracticos: [],\r\n actividadesComplementarias: [],\r\n duracionActividad: [],\r\n\r\n codigoClassroom: '',\r\n horarios: [],\r\n profesores: [],\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dropdownOpen: false,\r\n };\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({ dropdownOpen: !prevState.dropdownOpen }));\r\n };\r\n\r\n buttonToolbar = ({ previousPage, nextPage, submitting }) => {\r\n if (nextPage) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n setPage = (step) => {\r\n const {\r\n changed, page, setPage, onSubmit,\r\n } = this.props;\r\n\r\n if (page === step) {\r\n return;\r\n }\r\n\r\n if (changed) {\r\n Confirm({\r\n title: 'Hay cambios sin guardar',\r\n question: (<>¿Deseas guardar los cambios antes de continuar?.),\r\n yesLabel: 'Si, guardar',\r\n noLabel: 'No, continuar',\r\n onConfirm: () => {\r\n onSubmit(this.props);\r\n },\r\n onCancel: () => {\r\n setPage(step);\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n setPage(step);\r\n };\r\n\r\n step = ({ step, title }) => {\r\n const { page } = this.props;\r\n return (\r\n this.setPage(step)}\r\n className={\r\n `wizard__step${page === step ? ' wizard__step--active' : ''}`\r\n }\r\n >\r\n

    {title}

    \r\n \r\n );\r\n };\r\n\r\n createPlanning = () => {\r\n const {\r\n createPlanning,\r\n loadingPage,\r\n canEditarPlaneamiento,\r\n finEditarPlaneamiento,\r\n handleSubmit,\r\n onSubmit,\r\n onCopyLastPlanning,\r\n oldPlannings,\r\n } = this.props;\r\n\r\n const {\r\n dropdownOpen,\r\n } = this.state;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n

    \r\n \r\n <>Fecha Límite cargar planeamiento\r\n \r\n {' '}\r\n \r\n <>{finEditarPlaneamiento && dateTimeFormat(finEditarPlaneamiento)}\r\n \r\n

    \r\n \r\n {\r\n createPlanning && canEditarPlaneamiento ? (\r\n \r\n
    \r\n
    \r\n \r\n \r\n Crear Planeamiento\r\n \r\n \r\n onSubmit({\r\n ...this.props,\r\n oldMateriaPeriodo: null,\r\n isNew: true,\r\n })}\r\n >\r\n Crear Nuevo Planeamiento\r\n \r\n {oldPlannings.map(old => (\r\n onCopyLastPlanning({\r\n ...this.props,\r\n oldMateriaPeriodoId: old.id,\r\n isNew: true,\r\n })}\r\n >\r\n Copiar Planeamiento {old.anho}/{old.seccion}\r\n \r\n ))}\r\n \r\n \r\n
    \r\n \r\n \r\n ) : null\r\n }\r\n
    \r\n );\r\n };\r\n\r\n showPlanning = ({ page, createPlanning, listProfesores }) => {\r\n if (createPlanning) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n {this.step({ step: 1, title: <>Identificación })}\r\n {this.step({\r\n step: 2, title: <>Fundamentación / Contribución,\r\n })}\r\n {this.step({ step: 3, title: <>Objetivos })}\r\n\r\n {this.step({\r\n step: 4,\r\n title: <>Valores / Metodología / Estrategias,\r\n })}\r\n {this.step({ step: 5, title: <>Cronograma de clases })}\r\n {this.step({ step: 6, title: <>Cuadro de prácticas de laboratorios })}\r\n\r\n {this.step({ step: 7, title: <>Proyectos o/y trabajos prácticos })}\r\n {this.step({ step: 8, title: <>Actividades complementarias })}\r\n {this.step({\r\n step: 9,\r\n title: <>Bibliografía básica / complementaria,\r\n })}\r\n
    \r\n \r\n \r\n
    \r\n {this.page1(page)}\r\n {this.page2(page)}\r\n {this.page3(page)}\r\n {this.page4(page)}\r\n\r\n {this.page5(page, listProfesores)}\r\n {this.page6(page, listProfesores)}\r\n {this.page7(page, listProfesores)}\r\n\r\n {this.page8(page)}\r\n {this.page9(page)}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n page1 = (page) => {\r\n if (page !== 1) {\r\n return null;\r\n }\r\n\r\n const {\r\n materiaPeriodo,\r\n codigoClassroom,\r\n horarios = [],\r\n profesores = [],\r\n handleSubmit,\r\n previousPage,\r\n submitting,\r\n loadingPage,\r\n onChangeText,\r\n horasLaboratorioSemanal,\r\n horasPracticaSemanal,\r\n horasTeoriaSemanal,\r\n totalHorasSemanal,\r\n preRequisitos = [],\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page2 = (page) => {\r\n if (page !== 2) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n submitting,\r\n handleSubmit,\r\n previousPage,\r\n loadingPage,\r\n materiaPeriodo,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n II- Fundamentación de la materia :\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n III- Contribución de la materia a la carrera :\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page3 = (page) => {\r\n if (page !== 3) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n materiaPeriodo,\r\n objetivosMaterias,\r\n handleSubmit,\r\n previousPage,\r\n submitting,\r\n loadingPage,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n IV. Objetivos de la materia\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page4 = (page) => {\r\n if (page !== 4) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n loadingPage,\r\n handleSubmit,\r\n previousPage,\r\n submitting,\r\n materiaPeriodo,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n V - Valores contemplados\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n VI - Metodología de la enseñanza\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n VII - Estrategias de evauación\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page5 = (page, listProfesores) => {\r\n if (page !== 5) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n onChangeSelect,\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n materiaPeriodo,\r\n cronogramaClases = [],\r\n loadingPage,\r\n handleSubmit,\r\n previousPage,\r\n submitting,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n VIII - Cronograma de clases teóricas y prácticas\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n \r\n
    \r\n );\r\n };\r\n\r\n page6 = (page, listProfesores) => {\r\n if (page !== 6) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n onChangeSelect,\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n materiaPeriodo,\r\n\r\n practicasLaboratorios = [],\r\n duracionActividad = [],\r\n loadingPage,\r\n previousPage,\r\n submitting,\r\n handleSubmit,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n IX - Cuadro de prácticas de laboratorios\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page7 = (page, listProfesores) => {\r\n if (page !== 7) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n onChangeSelect,\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n materiaPeriodo,\r\n\r\n proyectosTrabajosPracticos = [],\r\n duracionActividad = [],\r\n loadingPage,\r\n previousPage,\r\n submitting,\r\n handleSubmit,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n X - Elaboración de proyectos o/y trabajos prácticos\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page8 = (page) => {\r\n if (page !== 8) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n onChangeSelect,\r\n onAddItemArray,\r\n onDeleteItemArray,\r\n materiaPeriodo,\r\n\r\n actividadesComplementarias = [],\r\n loadingPage,\r\n previousPage,\r\n submitting,\r\n handleSubmit,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n XI- Actividades complementarias (Extensión, Investigación)\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n page9 = (page) => {\r\n if (page !== 9) {\r\n return null;\r\n }\r\n\r\n const {\r\n onChangeText,\r\n loadingPage,\r\n previousPage,\r\n submitting,\r\n handleSubmit,\r\n materiaPeriodo,\r\n } = this.props;\r\n\r\n if (loadingPage) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n XII - Bibliografía básica\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n XIII - Bibliografía complementaria\r\n \r\n
    \r\n
    \r\n
    \r\n onChangeText(v)}\r\n />\r\n
    \r\n
    \r\n \r\n {this.buttonToolbar({ previousPage, submitting })}\r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n horarios = [],\r\n profesores = [],\r\n page,\r\n createPlanning,\r\n onDownload,\r\n } = this.props;\r\n\r\n if (loading || horarios.length === -1) {\r\n return ;\r\n }\r\n\r\n const listProfesores = profesores.map(({ id, profesor }) => ({\r\n value: id,\r\n label: profesor,\r\n }));\r\n\r\n return (\r\n \r\n \r\n
    \r\n

    \r\n Datos del planeamiento\r\n

    \r\n {\r\n !createPlanning ? (\r\n \r\n  \r\n Descargar planeamiento\r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n {this.createPlanning()}\r\n {this.showPlanning({ page, createPlanning, listProfesores })}\r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxPlaneamientoForm = reduxForm({\r\n form: 'PlaneamientoForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(PlaneamientoForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxPlaneamientoForm);\r\n","import {\r\n apiGet,\r\n apiPost,\r\n apiDownload,\r\n} from '../../api/index';\r\nimport { urlPlanning } from '../../api/urls';\r\n\r\nexport function getPlanning({\r\n id, page, onSuccess, onError,\r\n}) {\r\n return apiGet(`${urlPlanning}/${id}/page-${page}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\nexport function listOldPlannings({\r\n materiaMallaId, onSuccess, onError,\r\n}) {\r\n return apiGet(`${urlPlanning}/list-old-plannings/${materiaMallaId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function savePlanning({\r\n page, paylaod, onSuccess, onError,\r\n}) {\r\n return apiPost(`${urlPlanning}/${page}`, paylaod)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchPlanningFormData({ onSuccess, onError }) {\r\n return apiGet(`${urlPlanning}/form-data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (onSuccess) onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function download({ id, onSuccess, onError }) {\r\n return apiDownload(`${urlPlanning}/download/${id}`)\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = 'Planeamiento.xlsx';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n if (onSuccess) onSuccess(blob);\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\nimport Form from './components/form';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport {\r\n savePlanning,\r\n getPlanning,\r\n listOldPlannings,\r\n fetchPlanningFormData,\r\n download,\r\n} from '../../../redux/actions/planningActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass IndexContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleDownload.bind(this);\r\n\r\n this.state = {\r\n page: 1,\r\n changed: false,\r\n loading: false,\r\n loadingPage: false,\r\n duracionActividad: [],\r\n oldPlannings: [],\r\n createPlanning: false,\r\n planning: {\r\n objetivosMaterias: [],\r\n cronogramaClases: [],\r\n practicasLaboratorios: [],\r\n proyectosTrabajosPracticos: [],\r\n actividadesComplementarias: [],\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormData();\r\n this.fetchCurrentRecord(1);\r\n }\r\n\r\n setPlanning(planning) {\r\n const {\r\n objetivosMaterias = [],\r\n cronogramaClases = [],\r\n practicasLaboratorios = [],\r\n proyectosTrabajosPracticos = [],\r\n actividadesComplementarias = [],\r\n profesores = [],\r\n } = planning;\r\n\r\n const { planning: oldPlanning } = this.state;\r\n\r\n this.setState({\r\n planning: {\r\n ...planning,\r\n profesores: profesores.length === 0 ? oldPlanning.profesores : profesores,\r\n objetivosMaterias: objetivosMaterias.map((h, index) => ({ ...h, index })),\r\n cronogramaClases: cronogramaClases.map((h, index) => ({ ...h, index })),\r\n practicasLaboratorios: practicasLaboratorios.map((h, index) => ({ ...h, index })),\r\n proyectosTrabajosPracticos: proyectosTrabajosPracticos.map((h, index) => ({ ...h, index })),\r\n actividadesComplementarias: actividadesComplementarias.map((h, index) => ({ ...h, index })),\r\n },\r\n loadingPage: false,\r\n changed: false,\r\n });\r\n }\r\n\r\n handleDownload = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n const { planningId } = this.props;\r\n\r\n download({\r\n id: planningId,\r\n onSuccess: () => this.setState({\r\n loading: false,\r\n }),\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n\r\n createErrorMessage('Error al intentar descargar el planeamiento');\r\n },\r\n });\r\n }\r\n\r\n fetchCurrentRecord = (page) => {\r\n const { planningId } = this.props;\r\n\r\n if (!planningId) {\r\n this.setState({\r\n planning: {\r\n materiaPeriodoId: 0,\r\n objetivosMaterias: [],\r\n cronogramaClases: [],\r\n practicasLaboratorios: [],\r\n proyectosTrabajosPracticos: [],\r\n actividadesComplementarias: [],\r\n horarios: [],\r\n profesores: [],\r\n },\r\n changed: false,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n getPlanning({\r\n id: planningId,\r\n page,\r\n onSuccess: (planning) => {\r\n // {materiaPeriodoId, materiaMallaId, finEditarPlaneamiento, canEditarPlaneamiento}\r\n const createPlanning = Object.keys(planning).length === 4;\r\n this.fetchOldPlannings(planning.materiaMallaId);\r\n\r\n this.setPlanning(planning);\r\n this.setState({\r\n loading: false,\r\n page,\r\n createPlanning,\r\n changed: false,\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n page,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createErrorMessage('La planeamiento no existe');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del planeamiento');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchOldPlannings = (materiaMallaId) => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n if (!materiaMallaId) {\r\n this.setState({\r\n loading: false,\r\n oldPlannings: [],\r\n });\r\n return;\r\n }\r\n\r\n listOldPlannings({\r\n materiaMallaId,\r\n onSuccess: (oldPlannings = []) => {\r\n this.setState({\r\n oldPlannings,\r\n loading: false,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n oldPlannings: [],\r\n });\r\n\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n fetchFormData = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n fetchPlanningFormData({\r\n onSuccess: ({ DuracionActividad }) => {\r\n this.setState({\r\n duracionActividad: DuracionActividad,\r\n loading: false,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleAddItemArray = ({ name }) => {\r\n const { planning } = this.state;\r\n const items = planning[name];\r\n\r\n const newIndex = items.length === 0\r\n ? 0\r\n : (Math.max(...items.map(({ index }) => index)) + 1);\r\n\r\n this.setState({\r\n changed: true,\r\n planning: {\r\n ...planning,\r\n [name]: [\r\n ...items,\r\n {\r\n id: 0,\r\n index: newIndex,\r\n },\r\n ],\r\n },\r\n });\r\n }\r\n\r\n handleDeleteItemArray = ({ name, index }) => {\r\n const { planning } = this.state;\r\n const items = planning[name];\r\n\r\n const newArray = items.map(h => ({\r\n ...h,\r\n deleted: h.deleted || h.index === index,\r\n }));\r\n\r\n this.setState({\r\n changed: true,\r\n planning: {\r\n ...planning,\r\n [name]: newArray,\r\n },\r\n });\r\n }\r\n\r\n handleChangeText = ({ name, target, index = null }) => {\r\n const value = target.type === 'number'\r\n ? Number(target.value)\r\n : `${target.value}`.trim();\r\n\r\n if (Number.isInteger(index)) {\r\n const { planning } = this.state;\r\n const items = planning[name];\r\n\r\n const newArray = [...items];\r\n newArray[index] = {\r\n ...newArray[index],\r\n ...{\r\n [target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({\r\n changed: true,\r\n planning: {\r\n ...planning,\r\n [name]: newArray,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState(prev => ({\r\n changed: true,\r\n planning: {\r\n ...prev.planning,\r\n ...{\r\n [target.name]: value,\r\n },\r\n },\r\n }));\r\n };\r\n\r\n handleChangeSelect = ({\r\n option, name, target, index,\r\n }) => {\r\n const { planning } = this.state;\r\n const items = planning[name];\r\n\r\n const newArray = [...items];\r\n const data = {\r\n [target.name.split('.')[1]]: option,\r\n index,\r\n };\r\n\r\n newArray[index] = {\r\n ...newArray[index],\r\n ...data,\r\n };\r\n\r\n this.setState(prev => ({\r\n changed: true,\r\n planning: {\r\n ...prev.planning,\r\n ...{\r\n [name]: newArray,\r\n },\r\n },\r\n }));\r\n };\r\n\r\n setPage = (page) => {\r\n this.fetchCurrentRecord(page);\r\n }\r\n\r\n nextPage = () => {\r\n const { page } = this.state;\r\n this.setPage(page + 1 < 10 ? page + 1 : 1);\r\n };\r\n\r\n previousPage = () => {\r\n const { page } = this.state;\r\n this.setPage(page - 1 > 0 ? page - 1 : 9);\r\n };\r\n\r\n handleCopyLastPlanning = (values) => {\r\n this.handleSubmit(values);\r\n };\r\n\r\n handleSubmit = (values) => {\r\n if (!values) {\r\n console.log(values);\r\n\r\n return;\r\n }\r\n\r\n const { materiaPeriodo } = this.props;\r\n const { changed, createPlanning, oldPlannings } = this.state;\r\n\r\n if (!createPlanning && (!materiaPeriodo.canEditarPlaneamiento || !changed)) {\r\n this.nextPage();\r\n return;\r\n }\r\n\r\n const { oldMateriaPeriodoId, isNew = false } = values;\r\n\r\n const oldPlanning = oldPlannings.find(o => o.id === oldMateriaPeriodoId);\r\n\r\n if (!isNew) {\r\n this.setState({\r\n loadingPage: true,\r\n });\r\n\r\n const {\r\n page,\r\n cronogramaClases = [],\r\n practicasLaboratorios = [],\r\n } = values;\r\n\r\n const { planningId: materiaPeriodoId } = this.props;\r\n\r\n savePlanning({\r\n page: `page${createPlanning ? 1 : page}`,\r\n paylaod: {\r\n ...values,\r\n materiaPeriodoId,\r\n cronogramaClases: cronogramaClases.map(({\r\n contenidos,\r\n deleted,\r\n fecha,\r\n id,\r\n profesorMateria,\r\n unidad,\r\n }) => ({\r\n materiaPeriodoId,\r\n contenidos,\r\n deleted,\r\n fecha: !fecha || fecha === '0001-01-01' ? null : fecha,\r\n id,\r\n profesorMateria,\r\n unidad,\r\n })),\r\n practicasLaboratorios: practicasLaboratorios.map(pl => ({\r\n ...pl,\r\n materiaPeriodoId,\r\n })),\r\n },\r\n onSuccess: () => {\r\n this.nextPage();\r\n\r\n createSuccessMessage('Datos de planeamiento guardado exitosamente');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else if (error.errors) {\r\n Object.entries(error.errors).flatMap(([, message]) => createWarningMessage(message));\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el planeamiento');\r\n }\r\n\r\n this.setState({\r\n loadingPage: false,\r\n });\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n Confirm({\r\n title: oldMateriaPeriodoId ? 'Copiar Planeamiento' : 'Crear Planeamiento',\r\n question: (\r\n <>\r\n ¿Deseas\r\n {oldMateriaPeriodoId ? ' copiar el' : ' crear un nuevo'} planeamiento\r\n {oldPlanning ? ` ${oldPlanning.anho}/${oldPlanning.seccion}` : ''}?.\r\n \r\n ),\r\n yesLabel: oldMateriaPeriodoId ? 'Si, Copiar' : 'Si, Crear',\r\n noLabel: 'No',\r\n color: 'primary',\r\n onConfirm: () => {\r\n this.setState({\r\n loadingPage: true,\r\n });\r\n\r\n const {\r\n page,\r\n cronogramaClases = [],\r\n practicasLaboratorios = [],\r\n } = values;\r\n\r\n const { planningId: materiaPeriodoId } = this.props;\r\n\r\n savePlanning({\r\n page: `page${createPlanning ? 1 : page}`,\r\n paylaod: {\r\n ...values,\r\n materiaPeriodoId,\r\n cronogramaClases: cronogramaClases.map(({\r\n contenidos,\r\n deleted,\r\n fecha,\r\n id,\r\n profesorMateria,\r\n unidad,\r\n }) => ({\r\n materiaPeriodoId,\r\n contenidos,\r\n deleted,\r\n fecha: !fecha || fecha === '0001-01-01' ? null : fecha,\r\n id,\r\n profesorMateria,\r\n unidad,\r\n })),\r\n practicasLaboratorios: practicasLaboratorios.map(pl => ({\r\n ...pl,\r\n materiaPeriodoId,\r\n })),\r\n },\r\n onSuccess: () => {\r\n this.nextPage();\r\n\r\n createSuccessMessage('Datos de planeamiento guardado exitosamente');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else if (error.errors) {\r\n Object.entries(error.errors).flatMap(([, message]) => createWarningMessage(message));\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el planeamiento');\r\n }\r\n\r\n this.setState({\r\n loadingPage: false,\r\n });\r\n },\r\n });\r\n },\r\n onCancel: () => {\r\n //\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n materiaPeriodo,\r\n } = this.props;\r\n\r\n const {\r\n planning,\r\n loading,\r\n loadingPage,\r\n duracionActividad,\r\n page,\r\n changed,\r\n createPlanning,\r\n oldPlannings,\r\n } = this.state;\r\n\r\n if (loading || !planning || !materiaPeriodo || duracionActividad.length === 0) {\r\n return (\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\r\nIndexContainer.propTypes = {\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n planningId: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default IndexContainer;\r\n","const validate = (attrs = {\r\n horarios: [],\r\n}) => {\r\n const errors = {};\r\n\r\n if (!attrs.malla || !attrs.malla.value) {\r\n errors.malla = 'Debe seleccionar una malla';\r\n }\r\n\r\n if (!attrs.periodo || !attrs.periodo.value) {\r\n errors.periodo = 'Debe seleccionar un periodo';\r\n }\r\n\r\n if (!attrs.materia || !attrs.materia.value) {\r\n errors.materia = 'Debe seleccionar una materia';\r\n }\r\n\r\n if (!attrs.profesor || !attrs.profesor.value) {\r\n errors.profesor = 'Debe seleccionar un profesor';\r\n }\r\n\r\n if (attrs.horarios && attrs.horarios.length) {\r\n errors.horarios = [];\r\n attrs.horarios.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n\r\n if (!obj.tipoActividadAcademicaHorario || !obj.tipoActividadAcademicaHorario.value) {\r\n error.tipoActividadAcademicaHorario = 'Debe ingresar el tipo de actividad academica';\r\n }\r\n if (!obj.profesor || !obj.profesor.value) {\r\n error.profesor = 'Debe seleccionar un profesor';\r\n } else {\r\n const {\r\n profesor, profesorAuxiliar1, profesorAuxiliar2, profesorAuxiliar3,\r\n } = attrs;\r\n const profesorsAvailable = [\r\n profesor || {},\r\n profesorAuxiliar1 || {},\r\n profesorAuxiliar2 || {},\r\n profesorAuxiliar3 || {},\r\n ];\r\n\r\n if (!profesorsAvailable.some(p => p.value && p.value === obj.profesor.value)) {\r\n error.profesor = 'Debe seleccionar el profesor encaregado o auxiliar';\r\n }\r\n }\r\n if (!obj.dia || !obj.dia.value) {\r\n error.dia = 'Debe seleccionar un dia';\r\n }\r\n if (!obj.horaInicio) {\r\n error.horaInicio = 'Debe ingresar la hora';\r\n }\r\n if (!obj.horaFin) {\r\n error.horaFin = 'Debe ingresar la hora';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.horarios[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (Object.keys(errors).length) {\r\n console.error(errors);\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Badge,\r\n Card,\r\n CardBody,\r\n Col,\r\n Button,\r\n Row,\r\n Container,\r\n Nav,\r\n NavItem,\r\n TabPane,\r\n TabContent,\r\n} from 'reactstrap';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport PlaneamientoForm from '../../Profesor/PlaneamientoForm/index';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass MateriaPeriodoForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n onGetAlumnosMateria: PropTypes.func.isRequired,\r\n onDownloadAlumnosMateriaNotas: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n\r\n onAddSubjectsSchedule: PropTypes.func.isRequired,\r\n onDeleteSubjectSchedule: PropTypes.func.isRequired,\r\n\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool.isRequired,\r\n editarAsistencias: PropTypes.bool.isRequired,\r\n\r\n tipoActividadAcademicaHorarios: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n malla: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n periodo: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n materia: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n\r\n profesor: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar1: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar2: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar3: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n\r\n mallas: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n periodos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n diasSemana: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n\r\n filters: PropTypes.shape({}).isRequired,\r\n horarios: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n loadingAlumnosMateria: PropTypes.bool.isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n totalItemsCount: PropTypes.number.isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeTab: '1',\r\n };\r\n\r\n this.columns = ({\r\n calculatePPFromTasks,\r\n canEditTask,\r\n }) => {\r\n const cols = [\r\n {\r\n key: 'numeroDocumento',\r\n name: <>Nº documento,\r\n width: '120px',\r\n search: true,\r\n },\r\n {\r\n key: 'apellidoAlumno',\r\n name: 'Apellido',\r\n visible: false,\r\n search: true,\r\n },\r\n {\r\n key: 'nombreAlumno',\r\n name: 'Nombre',\r\n search: true,\r\n format: row => `${row.apellidoAlumno}, ${row.nombreAlumno}`.trim(),\r\n },\r\n { key: 'email', name: 'E-Mail' },\r\n ];\r\n\r\n return [\r\n ...cols,\r\n ...[\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n editable: !calculatePPFromTasks && canEditTask,\r\n type: 'number',\r\n min: 0,\r\n max: 100,\r\n width: '100px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajePP }) => (\r\n \r\n {porcentajePP}\r\n \r\n ),\r\n },\r\n {\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n width: '110px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajeAsistencia }) => (\r\n \r\n {Math.round(porcentajeAsistencia)}\r\n \r\n ),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '100px',\r\n visible: false,\r\n },\r\n ],\r\n ];\r\n };\r\n\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (inscription) => {\r\n this.editarNotas(inscription);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n getOptionsTipoActividadAcademica = (tipoActividadAcademica) => {\r\n const { tipoActividadAcademicaHorarios } = this.props;\r\n\r\n return tipoActividadAcademicaHorarios.filter(taa => taa.value === tipoActividadAcademica);\r\n }\r\n\r\n toggle = (tab) => {\r\n const { onGetAlumnosMateria } = this.props;\r\n const { activeTab } = this.state;\r\n if (activeTab !== tab) {\r\n this.setState({ activeTab: tab });\r\n if (tab === '2') {\r\n onGetAlumnosMateria();\r\n }\r\n }\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getProfesoresMateria = () => {\r\n const {\r\n profesor, profesorAuxiliar1, profesorAuxiliar2, profesorAuxiliar3,\r\n } = this.props;\r\n\r\n return [\r\n profesor || {},\r\n profesorAuxiliar1 || {},\r\n profesorAuxiliar2 || {},\r\n profesorAuxiliar3 || {},\r\n ].filter(p => p.value);\r\n }\r\n\r\n renderHorarios = ({\r\n fields = [],\r\n tipoActividadAcademicaHorarios = [],\r\n diasSemana = [],\r\n horarios = [],\r\n }) => {\r\n const {\r\n onAddSubjectsSchedule, onDeleteSubjectSchedule, onChangeText, onChangeSelect,\r\n } = this.props;\r\n\r\n const profesoresMateria = this.getProfesoresMateria();\r\n\r\n const showBtnAdd = () => {\r\n if (profesoresMateria.length === 0) {\r\n return (\r\n \r\n
    \r\n

    \r\n \r\n Debe seleccionar un profesor (Encargado o Auxiliar) para agregar los horarios.\r\n \r\n

    \r\n
    \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n onAddSubjectsSchedule()}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\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

    Horario de clases

    \r\n \r\n {showBtnAdd()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((horario, index) => {\r\n if (!horarios[index]) {\r\n return null;\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
    #Tipo ActividadProfesorDíaAulaHora InicioHora Fin{' '}
    \r\n
    \r\n

    {index + 1}

    \r\n onChangeSelect({ option: props, name: 'tipoActividadAcademicaHorario', index })\r\n }\r\n options={tipoActividadAcademicaHorarios}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeSelect({ option: props, name: 'profesor', index })}\r\n options={profesoresMateria}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeSelect({ option: props, name: 'dia', index })}\r\n options={diasSemana}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n onDeleteSubjectSchedule({ index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n planeamientoForm = () => {\r\n const { materiaPeriodo } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.props;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onFilterChanges,\r\n onBack,\r\n onDownloadAlumnosMateriaNotas,\r\n profesores,\r\n materias,\r\n periodos,\r\n mallas,\r\n diasSemana,\r\n horarios,\r\n tipoActividadAcademicaHorarios,\r\n editarAsistencias,\r\n materiaPeriodo,\r\n loadingAlumnosMateria,\r\n items,\r\n totalItemsCount,\r\n filters,\r\n } = this.props;\r\n\r\n const {\r\n activeTab,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    Datos de la materia por periodo
    \r\n
    \r\n \r\n \r\n
    \r\n Malla\r\n
    \r\n onFilterChanges('malla', 'mallaId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Periodo\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Materia\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Profesor Encargado\r\n
    \r\n onFilterChanges('profesor', 'profesorId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar1', 'profesorAuxiliar1Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar2', 'profesorAuxiliar2Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar3', 'profesorAuxiliar3Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {' '}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Sección\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n loadingAlumnosMateria ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n <>\r\n \r\n
    \r\n \r\n  \r\n Descargar lista\r\n \r\n
    \r\n \r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n itemsToShow={items.length}\r\n page={1}\r\n pageSize={totalItemsCount}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {this.planeamientoForm()}\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxMateriaPeriodoForm = reduxForm({\r\n form: 'MateriaPeriodoForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(MateriaPeriodoForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxMateriaPeriodoForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\nimport MateriaPeriodoForm from './MateriaPeriodoForm';\r\nimport {\r\n get,\r\n save,\r\n fetchFormDatas,\r\n fetchSubjectsByMeshId,\r\n fetchSubjectsScheduleBySubjectPeriodId,\r\n getSubjectStudents,\r\n downloadSubjectStudentsScore,\r\n} from '../../../redux/actions/materiaPeriodoActions';\r\n\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass MateriaPeriodoContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n mallas: [],\r\n materias: [],\r\n periodos: [],\r\n profesores: [],\r\n tipoActividadAcademicaHorarios: [],\r\n diasSemana: [],\r\n materiaPeriodo: null,\r\n loading: false,\r\n horarios: [],\r\n horarioChanged: 0,\r\n\r\n loadingAlumnosMateria: false,\r\n items: [],\r\n totalItemsCount: 0,\r\n filters: {\r\n page: 1,\r\n pageSize: 20,\r\n numeroDocumento: '',\r\n nombreAlumno: '',\r\n apellidoAlumno: '',\r\n },\r\n };\r\n\r\n this.downloadAlumnosMateriaNotas.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n this.updateSubjectsScheduleTable();\r\n }\r\n\r\n downloadAlumnosMateriaNotas = () => {\r\n const { id } = this.props;\r\n this.setState({ loadingAlumnosMateria: true });\r\n downloadSubjectStudentsScore({\r\n id,\r\n onSuccess: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createSuccessMessage('Lista descargada exitosamente');\r\n },\r\n onError: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createErrorMessage('Error al intentar descargar la lista de calificaciones alumnos');\r\n },\r\n });\r\n }\r\n\r\n fetchCurrentRecord = () => {\r\n const { id, history } = this.props;\r\n const state = {};\r\n\r\n if (!id) {\r\n this.setState({\r\n materiaPeriodo: {\r\n id: 0,\r\n date: new Date().toISOString(),\r\n mallaId: null,\r\n malla: { value: 0, label: '-' },\r\n periodoId: null,\r\n periodo: { value: 0, label: '-' },\r\n materia: { value: 0, label: '-' },\r\n materiaMalla: { value: 0, label: '-' },\r\n profesorAuxiliar1: { value: 0, label: '-' },\r\n profesorAuxiliar2: { value: 0, label: '-' },\r\n profesorAuxiliar3: { value: 0, label: '-' },\r\n utilizaPorcentajePesoMateria: false,\r\n ...state,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n get({\r\n id,\r\n onSuccess: (materiaPeriodo) => {\r\n this.setState({\r\n materiaPeriodo: {\r\n ...materiaPeriodo,\r\n ...state,\r\n },\r\n });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia periodo no existe');\r\n history.push('/pages/subjects-periods');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la materia periodo');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchDatasList = () => {\r\n fetchFormDatas({\r\n onSuccess: ({\r\n mallas,\r\n periodos,\r\n profesores,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n }) => {\r\n const state = {\r\n mallas,\r\n periodos,\r\n profesores,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n };\r\n\r\n this.setState(state);\r\n this.fetchCurrentRecord();\r\n },\r\n onError: () => createErrorMessage('Error al intentar cargar los datos requeridos'),\r\n });\r\n }\r\n\r\n updateAlumnosMateria = (page, pageSize, filters) => {\r\n const { id } = this.props;\r\n\r\n this.setState({\r\n loadingAlumnosMateria: true,\r\n filters: filters || {},\r\n });\r\n\r\n getSubjectStudents({\r\n filters,\r\n id,\r\n onSuccess: ({ materias: items }) => {\r\n this.setState({\r\n loadingAlumnosMateria: false,\r\n items,\r\n totalItemsCount: items.length,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n items: [],\r\n loadingAlumnosMateria: false,\r\n });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n handleAddSubjectsSchedule = () => {\r\n const { horarios = [] } = this.state;\r\n\r\n const newIndex = horarios.length === 0 ? 0 : (Math.max(...horarios.map(({ index }) => index)) + 1);\r\n\r\n this.setState({\r\n horarios: [\r\n ...horarios,\r\n {\r\n id: 0,\r\n index: newIndex,\r\n materiaPeriodo: '',\r\n profesor: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n dia: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n horaInicio: '00:00',\r\n horaFin: '00:00',\r\n aula: '',\r\n tipoActividadAcademicaHorario: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n\r\n handleDeleteSubjectSchedule = ({ index }) => {\r\n const { horarios = [] } = this.state;\r\n const newArray = horarios.map(h => ({\r\n ...h,\r\n deleted: h.deleted || h.index === index,\r\n }));\r\n\r\n this.setState({ horarios: newArray });\r\n }\r\n\r\n fetchSubjects = (meshId) => {\r\n fetchSubjectsByMeshId({\r\n meshId,\r\n onSuccess: (materias) => {\r\n this.setState({ materias });\r\n },\r\n onError: () => createErrorMessage('Error al intentar cargar las materias'),\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n if (!values) return;\r\n\r\n const {\r\n id,\r\n materia: { value: materiaId },\r\n profesor: { value: profesorId },\r\n malla: { value: mallaId },\r\n materiaMalla: { value: materiaMallaId },\r\n periodo: { value: periodoId },\r\n profesorAuxiliar1,\r\n profesorAuxiliar2,\r\n profesorAuxiliar3,\r\n horarios,\r\n utilizaPorcentajePesoMateria,\r\n editarAsistencias,\r\n seccion,\r\n } = values;\r\n\r\n const params = {\r\n id,\r\n mallaId,\r\n materiaMallaId,\r\n materiaId,\r\n profesorId,\r\n periodoId,\r\n profesorAuxiliar1Id: profesorAuxiliar1 ? profesorAuxiliar1.value : 0,\r\n profesorAuxiliar2Id: profesorAuxiliar2 ? profesorAuxiliar2.value : 0,\r\n profesorAuxiliar3Id: profesorAuxiliar3 ? profesorAuxiliar3.value : 0,\r\n horarios,\r\n utilizaPorcentajePesoMateria,\r\n editarAsistencias,\r\n seccion,\r\n };\r\n\r\n save(params, {\r\n onSuccess: () => {\r\n createSuccessMessage('Materia por periodo guardada exitosamente');\r\n\r\n const { history } = this.props;\r\n history.push('/pages/subjects-periods');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la materia periodo');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChanges = (objectKey, idKey, item) => {\r\n let { materiaPeriodo } = this.state;\r\n\r\n materiaPeriodo = {\r\n ...materiaPeriodo,\r\n [idKey]: item.value,\r\n [objectKey]: item,\r\n };\r\n\r\n const {\r\n malla: { value: mallaId },\r\n } = materiaPeriodo;\r\n\r\n this.setState({ materiaPeriodo });\r\n\r\n if (mallaId) {\r\n this.fetchSubjects(mallaId);\r\n }\r\n }\r\n\r\n updateSubjectsScheduleTable = () => {\r\n const { id } = this.props;\r\n\r\n if (!id) {\r\n this.setState({\r\n horarios: [],\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchSubjectsScheduleBySubjectPeriodId({\r\n subjectId: id,\r\n onSuccess: (horarios) => {\r\n this.setState({\r\n loading: false,\r\n horarios: horarios.map((h, index) => ({ ...h, index })),\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({ horarios: [], loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('La horario de clases no existe');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del horario de clases');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleChangeText = (e, index) => {\r\n const { horarios } = this.state;\r\n\r\n const value = e.target.type === 'number' ? Number(e.target.value) : `${e.target.value}`.trim();\r\n\r\n const newHorarios = [...horarios];\r\n newHorarios[index] = {\r\n ...newHorarios[index],\r\n ...{\r\n [e.target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({ horarios: newHorarios });\r\n };\r\n\r\n handleChangeSelect = ({ option, name, index }) => {\r\n this.setState({ loading: true });\r\n\r\n const { horarios } = this.state;\r\n const newHorarios = [...horarios];\r\n const data = {\r\n [name]: option,\r\n index,\r\n };\r\n\r\n newHorarios[index] = {\r\n ...newHorarios[index],\r\n ...data,\r\n };\r\n\r\n this.setState({\r\n horarios: newHorarios,\r\n loading: false,\r\n horarioChanged: new Date().getTime(),\r\n });\r\n };\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n\r\n const {\r\n materiaPeriodo,\r\n materias,\r\n profesores,\r\n mallas,\r\n periodos,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n loading,\r\n horarios,\r\n horarioChanged,\r\n loadingAlumnosMateria,\r\n items,\r\n filters,\r\n totalItemsCount,\r\n } = this.state;\r\n\r\n const showForm = profesores && mallas && materiaPeriodo && tipoActividadAcademicaHorarios.length;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} materia periodo\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la materia periodo\r\n

    \r\n \r\n
    \r\n \r\n \r\n {\r\n !showForm || loading\r\n ? ()\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nMateriaPeriodoContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default MateriaPeriodoContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Col,\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Badge,\r\n Alert,\r\n} from 'reactstrap';\r\nimport { getAllSubjectsDashboard } from '../../redux/actions/professorActions';\r\nimport { createErrorMessage } from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\n\r\nimport {\r\n dateDDMMYYFormat,\r\n dateDDMMYYHHMMFormat,\r\n} from '../../helpers/dateFormat';\r\nimport {\r\n EstadoMateriaPeriodo,\r\n} from '../../constants/enums';\r\n\r\nclass ProfesorDashboardContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n items: [],\r\n };\r\n\r\n this.colors = [\r\n {\r\n value: 0, color: 'secondary',\r\n },\r\n {\r\n value: 1, color: 'info',\r\n },\r\n {\r\n value: 2, color: 'success',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.loadFormData();\r\n }\r\n\r\n loadFormData = () => {\r\n getAllSubjectsDashboard({\r\n onSuccess: (items) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias');\r\n },\r\n });\r\n }\r\n\r\n verMateria = (id) => {\r\n const { history } = this.props;\r\n history.push(`/pages/profesor-subjects/${id}`);\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n this.loadFormData();\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getColor = ({ value }) => {\r\n const item = this.colors.find(c => c.value === value);\r\n if (!item) {\r\n return this.colors[0].color;\r\n }\r\n\r\n return item.color;\r\n };\r\n\r\n showEstadoMateriaPeriodoData = ({ estado, rendimientoAlumno }) => {\r\n if (![EstadoMateriaPeriodo.Publicado.value, EstadoMateriaPeriodo.Sellado.value].includes(estado.value)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n {EstadoMateriaPeriodo.Publicado.label}: \r\n \r\n {dateDDMMYYHHMMFormat(rendimientoAlumno.fechaPublicado)}\r\n \r\n
    \r\n {\r\n EstadoMateriaPeriodo.Sellado.value === estado.value\r\n ? (\r\n
    \r\n {EstadoMateriaPeriodo.Sellado.label}: \r\n \r\n {dateDDMMYYHHMMFormat(rendimientoAlumno.fechaSellado)}\r\n \r\n
    \r\n )\r\n : null\r\n }\r\n
    \r\n Fecha Expiración: \r\n \r\n {dateDDMMYYFormat(rendimientoAlumno.fechaExpiracion)}\r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {(!items || !items.length) && (\r\n

    \r\n \r\n
    \r\n No tienes materias marcadas para ver en el Tablero.\r\n
    \r\n
    \r\n Puedes marcar las estrellas{' '}\r\n \r\n {\r\n ' en tu listado de \"Mis Materias\" para mostrarlas en el Tablero.'\r\n }\r\n
    \r\n
    \r\n

    \r\n )\r\n }\r\n {items && items.length && (\r\n \r\n \r\n
    \r\n
    \r\n

    \r\n Tablero {' / Lista de materias favoritas '}\r\n \r\n

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

    Estados:

    \r\n \r\n Preliminar\r\n \r\n \r\n Publicado\r\n \r\n \r\n Sellado\r\n \r\n
    \r\n \r\n
    \r\n \r\n {items.map(g => (\r\n \r\n this.verMateria(g.id)}\r\n className=\"link-card card-subject pb-0\"\r\n >\r\n \r\n \r\n \r\n {g.seccion}\r\n \r\n \r\n # {g.id}\r\n \r\n {' '}\r\n \r\n Cod {g.codigoMateria}\r\n \r\n \r\n
    \r\n

    \r\n {g.materia}\r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n {g.malla}\r\n \r\n \r\n {g.semestreNroOrden}{' º Semestre '}{g.anho}\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n Alumnos:\r\n \r\n {g.cantidadInscriptos}\r\n \r\n
    \r\n
    {' '}
    \r\n \r\n \r\n
    \r\n\r\n {this.showEstadoMateriaPeriodoData(g)}\r\n\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    \r\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 withRouter(ProfesorDashboardContainer);\r\n","import {\r\n apiGet,\r\n apiPost,\r\n} from '../../api/index';\r\nimport { urlProfessors } from '../../api/urls';\r\n\r\nexport function getSubjects(showAll, params) {\r\n return apiPost(`${urlProfessors}/subjects/${showAll}`, params.pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getAllSubjectsDashboard(params) {\r\n return apiGet(`${urlProfessors}/all_subjects_dashboard`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function addToFavorites(inscripcion, callback) {\r\n return apiPost(`${urlProfessors}/add_subject_dashboard`, inscripcion)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch(async (error) => {\r\n if (callback && callback.onError) callback.onError(await error.json());\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Badge,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\n\r\nimport {\r\n getSubjects,\r\n addToFavorites,\r\n} from '../../redux/actions/professorActions';\r\nimport { fetchFormDatas } from '../../redux/actions/periodoActions';\r\nimport { SidebarProps } from '../../shared/prop-types/ReducerProps';\r\n\r\nimport {\r\n createErrorMessage,\r\n createWarningMessage,\r\n createSuccessMessage,\r\n} from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { Roles } from '../../constants/enums';\r\n\r\nclass ProfesorSubjectsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n const user = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n periodos: [],\r\n };\r\n this.columns = [\r\n {\r\n key: 'mostrarEnTablero',\r\n name: 'Tablero',\r\n width: '80px',\r\n search: false,\r\n visible: this.showStarIcon(user),\r\n icon: {\r\n callback: row => (this.onAddToFavoritesSubmit(row)),\r\n component: row => (\r\n \r\n ),\r\n },\r\n },\r\n {\r\n key: 'profesor',\r\n name: 'Profesor',\r\n search: this.showNombre(user),\r\n visible: this.showNombre(user),\r\n },\r\n {\r\n key: 'codigoMateria',\r\n name: 'Codigo Materia',\r\n search: true,\r\n visible: false,\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n format: row => `${row.codigoMateria} - ${row.materia} - ${row.seccion}`,\r\n search: true,\r\n width: '300px',\r\n },\r\n {\r\n key: 'periodo',\r\n name: 'Periodo',\r\n search: true,\r\n visible: true,\r\n className: 'text-center',\r\n width: '200px',\r\n type: 'select',\r\n searchProps: {\r\n options: this.getPeriodos,\r\n },\r\n format: row => `${row.periodo ? row.periodo : '-'}`,\r\n },\r\n {\r\n key: 'malla',\r\n name: 'Malla',\r\n width: '190px',\r\n className: 'text-center',\r\n search: true,\r\n format: row => row.malla,\r\n },\r\n {\r\n key: 'carrera',\r\n name: 'Carrera',\r\n search: true,\r\n format: row => row.carrera,\r\n },\r\n {\r\n key: 'numeroSemestre',\r\n name: 'Semestre',\r\n type: 'number',\r\n search: true,\r\n format: row => `${row.semestreNroOrden}º`,\r\n width: '70px',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'cantidadInscriptos',\r\n name: 'Alumnos',\r\n type: 'number',\r\n search: false,\r\n format: row => (\r\n
    \r\n 0 ? 'primary' : 'secondary'}\r\n pill\r\n >\r\n {row.cantidadInscriptos}\r\n \r\n
    \r\n ),\r\n width: '70px',\r\n className: 'text-center',\r\n },\r\n { key: 'actions', name: 'Acción', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (row) => {\r\n this.editRow(row);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n }\r\n\r\n getViewPageAs = () => {\r\n const { sidebar: { viewPageAs } } = this.props;\r\n return viewPageAs;\r\n }\r\n\r\n showStarIcon = (user) => {\r\n const viewAsProfesor = this.getViewPageAs() === Roles.Profesor;\r\n return (user.esProfesor && !user.esAdmin) || (user.esProfesor && user.esAdmin && viewAsProfesor);\r\n }\r\n\r\n showNombre = (user) => {\r\n const viewAsAdmin = this.getViewPageAs() === Roles.Admin;\r\n return user.esAdmin && viewAsAdmin;\r\n }\r\n\r\n updateSubjectsTable = (page, pageSize, filters = {}) => {\r\n const {\r\n periodo = { value: 0, label: '-' },\r\n numeroSemestre = 0,\r\n } = filters;\r\n\r\n const params = {\r\n ...filters,\r\n numeroSemestre: Number(numeroSemestre),\r\n periodoId: periodo.value,\r\n };\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: params,\r\n });\r\n\r\n const { sidebar: { viewPageAs } } = this.props;\r\n\r\n getSubjects(\r\n viewPageAs !== 0,\r\n {\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: params,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias');\r\n },\r\n },\r\n );\r\n }\r\n\r\n fetchDatasList = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchFormDatas({\r\n onSuccess: ({ periodos }) => {\r\n this.setState({\r\n periodos,\r\n loading: false,\r\n });\r\n\r\n const { page, pageSize } = this.state;\r\n this.updateSubjectsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n console.log(error);\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n editRow = (row) => {\r\n const { history } = this.props;\r\n history.push(`/pages/profesor-subjects/${row.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateSubjectsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, {});\r\n };\r\n\r\n onAddToFavoritesSubmit = (row) => {\r\n if (row) {\r\n addToFavorites(row.id, {\r\n onSuccess: () => {\r\n const { items } = this.state;\r\n\r\n const newState = items.map(item => (\r\n item.id === row.id ? { ...item, mostrarEnTablero: !row.mostrarEnTablero } : item\r\n ));\r\n\r\n this.setState({\r\n items: newState,\r\n });\r\n\r\n createSuccessMessage(\r\n `Materia ${(!row.mostrarEnTablero ? 'agregada al' : 'quitada del')} tablero exitosamente`,\r\n );\r\n },\r\n onError: async (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar quitar la materia del tablero ');\r\n }\r\n },\r\n });\r\n }\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getPeriodos = () => {\r\n const { periodos = [] } = this.state;\r\n\r\n return periodos;\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n return (\r\n \r\n \r\n \r\n

    Materias asignadas

    \r\n \r\n
    \r\n \r\n {loading ? \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nProfesorSubjectsContainer.propTypes = {\r\n sidebar: SidebarProps.isRequired,\r\n};\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(ProfesorSubjectsContainer));\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass ToggleButtonField extends PureComponent {\r\n static propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n // defaultChecked: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n ]).isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n // defaultChecked: false,\r\n disabled: false,\r\n };\r\n\r\n componentDidMount() {\r\n // const { onChange, defaultChecked } = this.props;\r\n // onChange(defaultChecked);\r\n }\r\n\r\n render() {\r\n const {\r\n name, disabled, value, onChange,\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n \r\n onChange(!value)}\r\n >Toggle\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst renderToggleButtonField = (props) => {\r\n const { input, defaultChecked, disabled } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nrenderToggleButtonField.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func,\r\n name: PropTypes.string,\r\n }).isRequired,\r\n defaultChecked: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n};\r\n\r\nrenderToggleButtonField.defaultProps = {\r\n defaultChecked: null,\r\n disabled: false,\r\n};\r\n\r\nexport default renderToggleButtonField;\r\n","const validate = ({\r\n descripcion = '', puntajeTotal = 0, fechaEntrega = '', tipoTarea = { value: 0, label: '-' },\r\n}) => {\r\n const errors = {};\r\n\r\n if (!descripcion) {\r\n errors.descripcion = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!puntajeTotal || puntajeTotal <= 0) {\r\n errors.puntajeTotal = 'Debe ingresar un valor';\r\n }\r\n\r\n if (!tipoTarea || !tipoTarea.value) {\r\n errors.tipoTarea = 'Debe ingresar un tipo de tarea';\r\n }\r\n\r\n if (!fechaEntrega) {\r\n errors.fechaEntrega = 'Debe ingresar una fecha';\r\n }\r\n\r\n if (!fechaEntrega) {\r\n errors.fechaEntrega = 'Debe ingresar una fecha';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\n\r\nconst StudentsScoresTable = ({\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onChangeText,\r\n onSort,\r\n items,\r\n puntajeTotal,\r\n editScore,\r\n sortColumn,\r\n sortType,\r\n}) => {\r\n const inputStyle = {\r\n fontSize: '16px',\r\n height: '28px',\r\n color: 'greenyellow',\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n };\r\n\r\n const readOnlyFields = true;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n onSort({ sortColumn: 'nombre', sortType })}\r\n scope=\"col col-3\"\r\n >\r\n Nombre{' '}\r\n \r\n \r\n onSort({ sortColumn: 'apellido', sortType })}\r\n scope=\"col col-3\"\r\n >\r\n Apellido{' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((tarea, index) => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n ))}\r\n \r\n
    Número de documentoPuntaje Obtenido
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const puntajeObtenido = items[index] && items[index].puntajeObtenido;\r\n const value = Number(target.value);\r\n\r\n if (value !== puntajeObtenido) {\r\n onChangeText({\r\n target,\r\n name: fields.name,\r\n numeroDocumento: items[index] && items[index].numeroDocumento,\r\n });\r\n }\r\n }}\r\n parse={value => Number(value)}\r\n readOnly={editScore}\r\n disabled={editScore}\r\n />\r\n
    \r\n
    \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nStudentsScoresTable.propTypes = {\r\n onChangeText: PropTypes.func.isRequired,\r\n onSort: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n puntajeTotal: PropTypes.number,\r\n sortColumn: PropTypes.string,\r\n sortType: PropTypes.string,\r\n editScore: PropTypes.bool.isRequired,\r\n};\r\n\r\nStudentsScoresTable.defaultProps = {\r\n meta: {},\r\n puntajeTotal: 0,\r\n sortColumn: 'nombre',\r\n sortType: 'asc',\r\n};\r\n\r\nexport default StudentsScoresTable;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n Row,\r\n FormGroup,\r\n Badge,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\nimport StudentsScoresTable from './StudentsScoresTable';\r\nimport {\r\n dateFormat,\r\n dateTimeFormat,\r\n} from '../../../../helpers/dateFormat';\r\n\r\nclass HomeworkForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n handleChangeText: PropTypes.func.isRequired,\r\n handleSort: PropTypes.func.isRequired,\r\n handleFilterChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n\r\n showSpinner: PropTypes.func.isRequired,\r\n\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool.isRequired,\r\n tareaMateriaAlumnos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n puntajeTotal: PropTypes.number.isRequired,\r\n descripcion: PropTypes.string.isRequired,\r\n tipoTarea: PropTypes.shape({}),\r\n tiposTareas: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n canEdit: PropTypes.bool,\r\n filterValue: PropTypes.string,\r\n sortColumn: PropTypes.string.isRequired,\r\n sortType: PropTypes.string.isRequired,\r\n utilizaPorcentajePesoMateria: PropTypes.bool.isRequired,\r\n finCalificarTareas: PropTypes.string.isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n canEdit: true,\r\n filterValue: '',\r\n tipoTarea: { value: 0, label: '-' },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n format = (date = '') => {\r\n if (date) {\r\n return dateFormat(date.split('T')[0]);\r\n }\r\n\r\n return '';\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n showSpinner,\r\n } = this.props;\r\n\r\n if (loading) {\r\n return showSpinner();\r\n }\r\n\r\n const {\r\n handleSubmit,\r\n handleChangeText,\r\n handleSort,\r\n handleFilterChangeText,\r\n onChangeSelect,\r\n submitting,\r\n onBack,\r\n puntajeTotal,\r\n tiposTareas = [],\r\n descripcion = '',\r\n tipoTarea,\r\n canEdit,\r\n tareaMateriaAlumnos,\r\n filterValue,\r\n utilizaPorcentajePesoMateria,\r\n finCalificarTareas,\r\n sortColumn,\r\n sortType,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n {canEdit ? (\r\n Guardar\r\n \r\n ) : null\r\n }\r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    Datos de la tarea
    \r\n
    \r\n \r\n {!canEdit && finCalificarTareas ? (\r\n \r\n
    \r\n

    \r\n \r\n Fecha Límite Calificar Tareas {dateTimeFormat(finCalificarTareas)}\r\n \r\n

    \r\n
    \r\n \r\n ) : null\r\n }\r\n \r\n
    \r\n Tarea\r\n
    \r\n handleChangeText({ target })}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Tipo Tarea\r\n
    \r\n onChangeSelect({ option: props, name: 'tipoTarea' })\r\n }\r\n options={tiposTareas}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Puntaje Total\r\n
    \r\n Number(val)}\r\n onBlur={({ target }) => handleChangeText({ target })}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n {tipoTarea.value !== 2 ? (\r\n \r\n
    \r\n Porcentaje Peso Materia\r\n
    \r\n (utilizaPorcentajePesoMateria ? value : '')}\r\n parse={val => Number(val)}\r\n onBlur={({ target }) => handleChangeText({ target })}\r\n />\r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n \r\n
    \r\n Fecha Entrega\r\n
    \r\n (canEdit ? value : this.format(value))}\r\n onBlur={({ target }) => handleChangeText({ target })}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Filtrar alumnos:\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n {canEdit ? (\r\n Guardar\r\n \r\n ) : null\r\n }\r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxHomeworkForm = reduxForm({\r\n form: 'HomeworkForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(HomeworkForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxHomeworkForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\nimport Form from './form';\r\nimport {\r\n getHomework,\r\n saveHomework,\r\n fetchHomeworkFormDatas,\r\n updateScoreHomework,\r\n} from '../../../../redux/actions/materiaPeriodoActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport debounce from '../../../../helpers/debounce';\r\n\r\nclass HomeworkContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n tarea: {\r\n descripcion: '',\r\n tareaMateriaAlumnos: [],\r\n tipoTarea: { value: 0, label: '-' },\r\n },\r\n tiposTareas: [],\r\n loading: false,\r\n filterValue: '',\r\n sortColumn: 'apellido',\r\n sortType: 'desc',\r\n };\r\n\r\n this.debouncedAutoSaveScore = debounce(this.autoSaveScore, 500);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n }\r\n\r\n fetchDatasList = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchHomeworkFormDatas({\r\n onSuccess: ({ TipoTarea = [] }) => {\r\n const { id } = this.props;\r\n const { tarea = {} } = this.state;\r\n\r\n this.setState({\r\n tiposTareas: TipoTarea,\r\n loading: false,\r\n tarea: {\r\n ...tarea,\r\n tipoTarea: TipoTarea.find(({ value }) => value === 1),\r\n },\r\n });\r\n\r\n this.fetchCurrentRecord(id);\r\n },\r\n onError: () => {\r\n this.setState({\r\n tiposTareas: [],\r\n loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n fetchCurrentRecord = (id) => {\r\n this.setState({ loading: true });\r\n\r\n if (!id) {\r\n const { tarea = {} } = this.state;\r\n this.setState({\r\n loading: false,\r\n tarea: {\r\n ...tarea,\r\n id: 0,\r\n descripcion: '',\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n getHomework({\r\n id,\r\n onSuccess: (tarea) => {\r\n const { fechaEntrega } = tarea;\r\n this.setState({\r\n loading: false,\r\n tarea: {\r\n ...tarea,\r\n ...{\r\n fechaEntrega: fechaEntrega.split('T')[0],\r\n },\r\n },\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n\r\n if (error && error.status === 404) {\r\n createErrorMessage('La tarea de clase no existe');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la tarea de clase');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n if (!values) return;\r\n\r\n this.setState({ loading: true });\r\n\r\n const {\r\n id,\r\n materiaPeriodoId,\r\n descripcion,\r\n fechaEntrega,\r\n tipoTarea: { value: tipoTarea },\r\n puntajeTotal,\r\n porcentajePesoMateria,\r\n deleted,\r\n } = values;\r\n\r\n const { utilizaPorcentajePesoMateria } = this.props;\r\n\r\n saveHomework({\r\n paylaod: {\r\n id,\r\n materiaPeriodoId,\r\n descripcion,\r\n fechaEntrega,\r\n tipoTarea,\r\n puntajeTotal,\r\n porcentajePesoMateria: utilizaPorcentajePesoMateria ? (porcentajePesoMateria || 0) : 0,\r\n deleted,\r\n },\r\n onSuccess: (tareaId) => {\r\n this.setState({ loading: false });\r\n\r\n this.fetchCurrentRecord(tareaId);\r\n createSuccessMessage('Tarea de clase guardada exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la tarea de clase');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { onHideForm } = this.props;\r\n onHideForm();\r\n }\r\n\r\n handleChangeText = ({\r\n name,\r\n target,\r\n numeroDocumento,\r\n }) => {\r\n const value = target.type === 'number'\r\n ? Number(target.value)\r\n : `${target.value}`.trim();\r\n\r\n if (numeroDocumento) {\r\n const { tarea } = this.state;\r\n const items = tarea[name];\r\n\r\n const newArray = [...items];\r\n const index = newArray.findIndex(item => item.numeroDocumento === numeroDocumento);\r\n\r\n newArray[index] = {\r\n ...newArray[index],\r\n ...{\r\n [target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({\r\n tarea: {\r\n ...tarea,\r\n [name]: newArray,\r\n },\r\n });\r\n\r\n this.debouncedAutoSaveScore(newArray[index]);\r\n\r\n return;\r\n }\r\n\r\n this.setState(prev => ({\r\n tarea: {\r\n ...prev.tarea,\r\n ...{\r\n [target.name]: value,\r\n },\r\n },\r\n }));\r\n };\r\n\r\n handleChangeSelect = ({ option, name }) => {\r\n const { tarea } = this.state;\r\n\r\n const newState = {\r\n ...tarea,\r\n [name]: option,\r\n };\r\n\r\n if (option.value === 2) {\r\n newState.puntajeTotal = 1;\r\n newState.porcentajePesoMateria = '';\r\n }\r\n\r\n this.setState({ tarea: newState });\r\n };\r\n\r\n handleSort = ({ sortColumn, sortType }) => {\r\n this.setState({\r\n sortColumn,\r\n sortType: sortType === 'desc' ? 'asc' : 'desc',\r\n });\r\n };\r\n\r\n handleFilterChangeText = ({ target: { value } }) => {\r\n this.setState({ filterValue: value });\r\n };\r\n\r\n transformText = (value = '') => value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLowerCase();\r\n\r\n getTareaMateriaAlumnos = () => {\r\n const {\r\n filterValue = '',\r\n sortColumn,\r\n sortType,\r\n tarea: { tareaMateriaAlumnos = [] },\r\n } = this.state;\r\n\r\n const filter = this.transformText(filterValue);\r\n\r\n const result = tareaMateriaAlumnos\r\n .filter(tma => (\r\n this.transformText(tma.numeroDocumento).includes(filter)\r\n || this.transformText(tma.nombre).includes(filter)\r\n || this.transformText(tma.apellido).includes(filter)\r\n ))\r\n .sort((a, b) => (\r\n sortType !== 'asc' ? a[sortColumn].localeCompare(b[sortColumn]) : b[sortColumn].localeCompare(a[sortColumn])\r\n ));\r\n\r\n return result;\r\n };\r\n\r\n autoSaveScore = (row) => {\r\n if (!row) return;\r\n\r\n const {\r\n id,\r\n inscripcionMateriaId,\r\n puntajeObtenido,\r\n tareaMateriaId,\r\n } = row;\r\n\r\n updateScoreHomework({\r\n id,\r\n inscripcionMateriaId,\r\n puntajeObtenido,\r\n tareaMateriaId,\r\n }, {\r\n onSuccess: () => {\r\n createSuccessMessage('Puntaje actualizado exitosamente.');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el puntaje.');\r\n }\r\n },\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n id,\r\n materiaPeriodoId,\r\n utilizaPorcentajePesoMateria,\r\n } = this.props;\r\n\r\n const {\r\n tarea,\r\n tiposTareas = [],\r\n loading,\r\n filterValue,\r\n sortColumn,\r\n sortType,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} tarea de clase\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n tarea de clase\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 );\r\n }\r\n}\r\n\r\nHomeworkContainer.propTypes = {\r\n id: PropTypes.number.isRequired,\r\n materiaPeriodoId: PropTypes.number.isRequired,\r\n utilizaPorcentajePesoMateria: PropTypes.bool.isRequired,\r\n finCalificarTareas: PropTypes.string.isRequired,\r\n onHideForm: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default HomeworkContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Badge,\r\n UncontrolledPopover,\r\n PopoverHeader,\r\n PopoverBody,\r\n} from 'reactstrap';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport renderToggleButtonField from '../../../shared/components/form/ToggleButton';\r\n\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport {\r\n filterHomework,\r\n removeHomework,\r\n} from '../../../redux/actions/materiaPeriodoActions';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport {\r\n dateFormat,\r\n dateTimeFormat,\r\n} from '../../../helpers/dateFormat';\r\nimport { createErrorMessage, createSuccessMessage } from '../../../helpers/notification';\r\nimport HomeworkForm from './HomeworkForm/index';\r\n\r\nclass HomeworkContainer extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n materiaPeriodoId: PropTypes.number.isRequired,\r\n utilizaPorcentajePesoMateria: PropTypes.bool.isRequired,\r\n finCalificarTareas: PropTypes.string.isRequired,\r\n canEdit: PropTypes.bool.isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 10 },\r\n showForm: false,\r\n recordId: 0,\r\n };\r\n\r\n this.handleSubmit.bind(this);\r\n\r\n this.checkBoxLabelStyle = {\r\n marginTop: '0px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n };\r\n\r\n this.columns = utilizaPorcentajePesoMateria => [\r\n { key: 'id', name: '#', width: '85px' },\r\n {\r\n key: 'descripcion', name: 'Tarea', width: '85px', search: true,\r\n },\r\n {\r\n key: 'tipoTarea',\r\n name: 'Tipo Tarea',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${row.tipoTarea.label}`,\r\n },\r\n {\r\n key: 'puntajeTotal',\r\n name: 'Puntaje Total',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${row.puntajeTotal}`,\r\n },\r\n {\r\n key: 'porcentajePesoMateria',\r\n name: 'Porcentaje Peso Materia',\r\n width: '85px',\r\n className: 'text-center',\r\n format: row => `${utilizaPorcentajePesoMateria ? row.porcentajePesoMateria : 'Sin Peso'}`,\r\n },\r\n {\r\n key: 'fechaEntrega',\r\n name: 'Fecha Entrega',\r\n search: false,\r\n className: 'text-center',\r\n width: '150px',\r\n format: row => dateFormat(row.fechaEntrega),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '85px',\r\n className: 'text-center',\r\n },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (record) => {\r\n this.edit(record);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n visible: false,\r\n icon: row => (\r\n <>\r\n \r\n \r\n No se puede borrar la tarea\r\n Hay alumnos que entregaron la tarea.\r\n \r\n \r\n ),\r\n callback: (record) => {\r\n if (!record.cantidadInscriptos) {\r\n this.handleDeleteAction(record);\r\n }\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updateTable(page, pageSize);\r\n }\r\n\r\n updateTable = (page, pageSize, filters) => {\r\n const {\r\n materiaPeriodoId,\r\n } = this.props;\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n\r\n filterHomework({\r\n materiaPeriodoId,\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ items, totalItemsCount }) => {\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias por periodo');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteAction = (record) => {\r\n const name = `${record.descripcion}`;\r\n Confirm({\r\n title: 'Borrar tarea de clase',\r\n question: `Estás seguro que deseas eliminar esta tarea \"${name}\"?`,\r\n yesLabel: 'Si, Borrar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n removeHomework(record.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Tarea borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La tarea no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar tarea');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleHideForm = () => {\r\n this.setState({\r\n showForm: false,\r\n recordId: 0,\r\n });\r\n\r\n this.onDataTableClearFilters();\r\n };\r\n\r\n edit = (record) => {\r\n this.setState({\r\n showForm: true,\r\n recordId: record.id,\r\n });\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize, filters } = this.state;\r\n const { autoHideSearch } = filters;\r\n this.updateTable(1, pageSize, { autoHideSearch });\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n handleSubmit = () => {\r\n const { handleSubmit } = this.props;\r\n const { utilizaPorcentajePesoMateria } = this.state;\r\n\r\n handleSubmit({ utilizaPorcentajePesoMateria });\r\n };\r\n\r\n handleChangeChecked = (utilizaPorcentajePesoMateria) => {\r\n if (utilizaPorcentajePesoMateria === undefined) {\r\n return;\r\n }\r\n\r\n this.setState({ utilizaPorcentajePesoMateria });\r\n\r\n const { handleSubmit } = this.props;\r\n\r\n handleSubmit({ utilizaPorcentajePesoMateria });\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.state;\r\n\r\n const {\r\n finCalificarTareas,\r\n } = this.props;\r\n\r\n if (loading || !finCalificarTareas) {\r\n return ;\r\n }\r\n\r\n const {\r\n materiaPeriodoId,\r\n utilizaPorcentajePesoMateria,\r\n canEdit,\r\n } = this.props;\r\n\r\n const {\r\n showForm,\r\n recordId,\r\n } = this.state;\r\n\r\n if (showForm) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const {\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n if (!dateTimeFormat(finCalificarTareas)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n \r\n {`Fecha Límite Calificar Tareas ${dateTimeFormat(finCalificarTareas)}`}\r\n \r\n

    \r\n {canEdit ? (\r\n this.edit({ id: 0 })}\r\n >\r\n Agregar Nueva Tarea\r\n \r\n ) : null\r\n }\r\n \r\n \r\n
    \r\n {\r\n canEdit ? (\r\n \r\n \r\n \r\n Utiliza Porcentaje Peso\r\n \r\n

    No

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

    Si

    \r\n
    \r\n \r\n \r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n
    \r\n \r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n itemsToShow={items.length}\r\n page={page}\r\n pageSize={pageSize}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst ReduxHomeworkContainer = reduxForm({\r\n form: 'HomeworkContainer',\r\n // validate,\r\n enableReinitialize: true,\r\n})(HomeworkContainer);\r\n\r\nexport default setPropsAsInitialValues(ReduxHomeworkContainer);\r\n","const validate = ({ date = '' }) => {\r\n const errors = {};\r\n\r\n if (!date) {\r\n errors.date = 'Debe ingresar una fecha';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n Field,\r\n} from 'redux-form';\r\n\r\nimport renderToggleButtonField from '../../../shared/components/form/ToggleButton';\r\n\r\nconst AssistValues = [\r\n {\r\n value: null, label: '​➖', description: '-', color: 'secondary',\r\n },\r\n {\r\n value: true, label: '✔️', description: 'Presente', color: 'success',\r\n },\r\n {\r\n value: false, label: '​❌', description: 'Ausente', color: 'danger',\r\n },\r\n];\r\n\r\nconst StudentAssistancesTable = ({\r\n fields = {},\r\n meta: { error, submitFailed },\r\n onChangeChecked,\r\n onSort,\r\n items,\r\n present,\r\n editScore,\r\n sortColumn,\r\n sortType,\r\n}) => {\r\n const checkBoxLabelStyle = {\r\n marginTop: '0px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n };\r\n\r\n const thStyle = {\r\n padding: '0.07rem',\r\n };\r\n\r\n if (!thStyle) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n onSort({ sortColumn: 'name', sortType })}\r\n scope=\"col col-3\"\r\n >\r\n Nombre{' '}\r\n \r\n \r\n onSort({ sortColumn: 'surname', sortType })}\r\n scope=\"col col-3\"\r\n >\r\n Apellido{' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((student, index) => {\r\n const [assistanceValue = {}] = AssistValues.filter(a => items[index] && a.value === items[index].present);\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
    Número de documentoPresente
    \r\n {items[index] && items[index].doc}\r\n \r\n {items[index] && items[index].name}\r\n \r\n {items[index] && items[index].surname}\r\n \r\n
    \r\n \r\n {\r\n !editScore\r\n ? (​{assistanceValue.label})\r\n : (\r\n {\r\n onChangeChecked({\r\n name: fields.name,\r\n target: { name: `${student}.present`, checked },\r\n doc: items[index] && items[index].doc,\r\n });\r\n }\r\n }\r\n readOnly={!editScore}\r\n disabled={editScore}\r\n />\r\n )\r\n }\r\n
    \r\n \r\n
    \r\n {\r\n submitFailed && error && (\r\n \r\n {error}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nStudentAssistancesTable.propTypes = {\r\n onChangeChecked: PropTypes.func.isRequired,\r\n onSort: PropTypes.func.isRequired,\r\n fields: PropTypes.shape({}).isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n meta: PropTypes.shape({}),\r\n present: PropTypes.bool,\r\n sortColumn: PropTypes.string,\r\n sortType: PropTypes.string,\r\n editScore: PropTypes.bool.isRequired,\r\n};\r\n\r\nStudentAssistancesTable.defaultProps = {\r\n meta: {},\r\n present: null,\r\n sortColumn: 'name',\r\n sortType: 'asc',\r\n};\r\n\r\nexport default StudentAssistancesTable;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n} from 'reactstrap';\r\n\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\nimport StudentAssistancesTable from './studentAssistancesTable';\r\nimport {\r\n dateFormat,\r\n} from '../../../helpers/dateFormat';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass AssistanceForm extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n format = (date = '') => {\r\n if (date) {\r\n return dateFormat(date.split('T')[0]);\r\n }\r\n\r\n return '';\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.props;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const {\r\n handleSubmit,\r\n onChangeChecked,\r\n handleSort,\r\n handleFilterChangeText,\r\n handleChangeText,\r\n submitting,\r\n onBack,\r\n logContents,\r\n canEdit,\r\n students,\r\n id,\r\n date,\r\n room,\r\n reference,\r\n filterValue,\r\n sortColumn,\r\n sortType,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n
    \r\n {canEdit ? (\r\n Guardar\r\n \r\n ) : null\r\n }\r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    Datos de la asistencia{id ? ` #${id}` : ''}
    \r\n
    \r\n \r\n \r\n
    \r\n Registro Contenido\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Fecha\r\n
    \r\n (canEdit ? value : this.format(value))}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Aula\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Referencia\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Filtrar alumnos:\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n
    \r\n {canEdit ? (\r\n Guardar\r\n \r\n ) : null\r\n }\r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst ReduxAssistanceForm = reduxForm({\r\n form: 'AssistanceForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(AssistanceForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxAssistanceForm);\r\n\r\nAssistanceForm.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onChangeChecked: PropTypes.func.isRequired,\r\n handleSort: PropTypes.func.isRequired,\r\n handleFilterChangeText: PropTypes.func.isRequired,\r\n handleChangeText: PropTypes.func.isRequired,\r\n\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool.isRequired,\r\n students: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n logContents: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n logContent: PropTypes.shape({}),\r\n id: PropTypes.number,\r\n date: PropTypes.string,\r\n room: PropTypes.string,\r\n reference: PropTypes.string,\r\n\r\n canEdit: PropTypes.bool,\r\n filterValue: PropTypes.string,\r\n sortColumn: PropTypes.string.isRequired,\r\n sortType: PropTypes.string.isRequired,\r\n};\r\n\r\nAssistanceForm.defaultProps = {\r\n submitting: false,\r\n canEdit: true,\r\n filterValue: '',\r\n id: 0,\r\n logContent: null,\r\n reference: null,\r\n date: '',\r\n room: '',\r\n};\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\nimport Form from './form';\r\nimport {\r\n fetch,\r\n saveAssistance,\r\n updatePresenceStundent,\r\n} from '../../../redux/actions/assistanceActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport debounce from '../../../helpers/debounce';\r\n\r\nclass AssistanceFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n assistance: {\r\n reference: '',\r\n date: '',\r\n room: '',\r\n logContent: { value: 0 },\r\n students: [],\r\n },\r\n loading: false,\r\n filterValue: '',\r\n sortColumn: 'surname',\r\n sortType: 'desc',\r\n };\r\n\r\n this.debouncedAutoSavePresent = debounce(this.autoSavePresent, 500);\r\n }\r\n\r\n componentDidMount() {\r\n const { id } = this.props;\r\n this.getAssistance({ id });\r\n }\r\n\r\n getAssistance = ({ id }) => {\r\n if (!id) {\r\n this.setState({\r\n assistance: {},\r\n loading: false,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetch({\r\n id,\r\n onSuccess: ({\r\n date, room, reference, logContent, canEdit, endHomework, students = [],\r\n }) => {\r\n this.setState({\r\n assistance: {\r\n id,\r\n date: date.split('T')[0],\r\n room,\r\n reference,\r\n logContent,\r\n endHomework,\r\n canEdit,\r\n students,\r\n },\r\n loading: false,\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n assistance: {},\r\n loading: false,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createWarningMessage('La asistencia no existe');\r\n return;\r\n }\r\n\r\n createErrorMessage('Error al intentar cargar los datos de la asistencia');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values = {}) => {\r\n if (!Object.entries(values).length) return;\r\n\r\n this.setState({ loading: true });\r\n const {\r\n id,\r\n logContent = { value: null },\r\n room,\r\n reference,\r\n date,\r\n present = false,\r\n } = values;\r\n\r\n const { subjectPeriodId } = this.props;\r\n\r\n saveAssistance({\r\n payload: {\r\n id,\r\n subjectPeriodId,\r\n logContentId: logContent && logContent.value,\r\n room,\r\n reference,\r\n date,\r\n present,\r\n },\r\n onSuccess: ({ payload = {} }) => {\r\n this.setState({\r\n ...payload,\r\n loading: false,\r\n });\r\n this.handleOnBack();\r\n createSuccessMessage('Asistencia guardado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la asistencia');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { onHideForm } = this.props;\r\n onHideForm();\r\n }\r\n\r\n handleChangeChecked = ({\r\n name,\r\n target = {},\r\n doc,\r\n }) => {\r\n if (target.checked === undefined) {\r\n return;\r\n }\r\n\r\n const value = target.checked;\r\n if (doc) {\r\n const { assistance } = this.state;\r\n const items = assistance[name];\r\n\r\n const newArray = [...items];\r\n const index = newArray.findIndex(item => item.doc === doc);\r\n\r\n newArray[index] = {\r\n ...newArray[index],\r\n ...{\r\n [target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({\r\n assistance: {\r\n ...assistance,\r\n [name]: newArray,\r\n },\r\n });\r\n\r\n this.debouncedAutoSavePresent({ ...newArray[index], assistanceId: assistance.id });\r\n return;\r\n }\r\n\r\n this.setState(prev => ({\r\n assistance: {\r\n ...prev.assistance,\r\n ...{\r\n [target.name]: value,\r\n },\r\n },\r\n }));\r\n };\r\n\r\n handleSort = ({ sortColumn, sortType }) => {\r\n this.setState({\r\n sortColumn,\r\n sortType: sortType === 'desc' ? 'asc' : 'desc',\r\n });\r\n };\r\n\r\n handleFilterChangeText = ({ target: { value } }) => {\r\n this.setState({ filterValue: value });\r\n };\r\n\r\n handleChangeText = ({ target: { name, value } }) => {\r\n const { assistance } = this.state;\r\n this.setState({\r\n assistance: {\r\n ...assistance,\r\n [name]: value,\r\n },\r\n });\r\n };\r\n\r\n transformText = (value = '') => value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLowerCase();\r\n\r\n getStudents = () => {\r\n const {\r\n filterValue = '',\r\n sortColumn,\r\n sortType,\r\n assistance: { students = [] },\r\n } = this.state;\r\n\r\n const filter = this.transformText(filterValue);\r\n const result = students\r\n .filter(tma => (\r\n this.transformText(tma.doc).includes(filter)\r\n || this.transformText(tma.name).includes(filter)\r\n || this.transformText(tma.surname).includes(filter)\r\n ))\r\n .sort((a, b) => (sortType !== 'asc'\r\n ? a[sortColumn].localeCompare(b[sortColumn])\r\n : b[sortColumn].localeCompare(a[sortColumn])\r\n ));\r\n\r\n return result;\r\n };\r\n\r\n autoSavePresent = (row = {}) => {\r\n const {\r\n assistanceId,\r\n studentId,\r\n present,\r\n } = row;\r\n\r\n if (!assistanceId || present == null) return;\r\n\r\n updatePresenceStundent({\r\n assistanceId,\r\n payload: {\r\n assistanceId,\r\n studentId,\r\n present,\r\n },\r\n onSuccess: () => {\r\n createSuccessMessage('Asistencia actualizado exitosamente.');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la asistencia.');\r\n }\r\n },\r\n });\r\n };\r\n\r\n assistanceForm = () => {\r\n const {\r\n id,\r\n logContents,\r\n endHomework,\r\n } = this.props;\r\n\r\n const {\r\n assistance,\r\n loading,\r\n filterValue,\r\n sortColumn,\r\n sortType,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} asistencia\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n asistencia\r\n

    \r\n \r\n
    \r\n \r\n \r\n {this.assistanceForm()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAssistanceFormContainer.propTypes = {\r\n id: PropTypes.number.isRequired,\r\n subjectPeriodId: PropTypes.number.isRequired,\r\n endHomework: PropTypes.string.isRequired,\r\n logContents: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n onHideForm: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AssistanceFormContainer;\r\n","import React, { Fragment } from 'react';\r\nimport { Provider } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Modal } from 'reactstrap';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\n\r\nimport store from '../../App/store';\r\n\r\nimport { ThemeProps } from '../../../shared/prop-types/ReducerProps';\r\nimport Form from './form';\r\n\r\nconst FormModal = (props) => {\r\n const {\r\n id,\r\n subjectPeriodId,\r\n onHideForm,\r\n logContents,\r\n title,\r\n onConfirm,\r\n onCancel = () => {\r\n },\r\n color,\r\n } = props;\r\n\r\n const { theme } = store.getState();\r\n\r\n const modalClass = 'modal-dialog--header';\r\n\r\n const customUI = ({ onClose }) => (\r\n \r\n
    \r\n

    {title}

    \r\n
    \r\n
    \r\n \r\n \r\n { onCancel(); onClose(); onHideForm(); }}\r\n handleSubmit={values => onConfirm({ ...values, onClose })}\r\n />\r\n \r\n \r\n
    \r\n \r\n );\r\n\r\n customUI.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n };\r\n\r\n return confirmAlert({\r\n customUI,\r\n });\r\n};\r\n\r\nFormModal.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n theme: ThemeProps.isRequired,\r\n id: PropTypes.number.isRequired,\r\n subjectPeriodId: PropTypes.number.isRequired,\r\n onHideForm: PropTypes.func.isRequired,\r\n logContents: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n label: PropTypes.string,\r\n })).isRequired,\r\n // onConfirm: PropTypes.func.isRequired,\r\n // onCancel: PropTypes.func.isRequired,\r\n};\r\n\r\nFormModal.defaultProps = {\r\n yesLabel: 'Guardar',\r\n noLabel: 'Cancelar',\r\n};\r\n\r\nexport default FormModal;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Badge,\r\n Col,\r\n Container,\r\n Row,\r\n Popover,\r\n PopoverHeader,\r\n PopoverBody,\r\n} from 'reactstrap';\r\nimport setPropsAsInitialValues from '../../helpers/setPropsAsInitialValues';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport TooltipItem from '../../shared/components/TooltipItem';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport {\r\n fetch,\r\n updatePresenceStundent,\r\n fetchAll,\r\n fetchFormDatas,\r\n deleteAssistance,\r\n} from '../../redux/actions/assistanceActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport {\r\n dateFormat,\r\n dateMMFormat,\r\n dateDDFormat,\r\n dateTimeFormat,\r\n} from '../../helpers/dateFormat';\r\nimport {\r\n createErrorMessage, createSuccessMessage, createWarningMessage,\r\n} from '../../helpers/notification';\r\nimport AssistanceForm from './Form';\r\nimport AssistanceFormModal from './Form/formModal';\r\n\r\nconst AssistValues = [\r\n {\r\n value: null, label: '​➖', description: '-', color: 'secondary',\r\n },\r\n {\r\n value: true, label: '✔️', description: 'Presente', color: 'success',\r\n },\r\n {\r\n value: false, label: '​❌', description: 'Ausente', color: 'danger',\r\n },\r\n];\r\n\r\nfunction OwnerPopover({\r\n assistanceId,\r\n date,\r\n canEdit,\r\n reference,\r\n onGetAssistance,\r\n onGetCurrentStudent,\r\n onNextPage,\r\n onPreviousPage,\r\n onPresent,\r\n onAbsent,\r\n onClose,\r\n}) {\r\n if (!canEdit) {\r\n return null;\r\n }\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [assistance, setAssistance] = React.useState(false);\r\n const toggle = () => setOpen(!open);\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {`#${assistanceId}, ${dateFormat(date)}, Ref:`}\r\n {\r\n {reference || ''}\r\n }\r\n
    \r\n {\r\n setOpen(false);\r\n setAssistance(false);\r\n onClose();\r\n }}\r\n >\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n onGetCurrentStudent({\r\n assistance,\r\n assistanceId,\r\n date,\r\n reference,\r\n setAssistance,\r\n onGetAssistance,\r\n onPreviousPage,\r\n onNextPage,\r\n onPresent,\r\n onAbsent,\r\n })\r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nOwnerPopover.propTypes = {\r\n assistanceId: PropTypes.number.isRequired,\r\n date: PropTypes.string.isRequired,\r\n canEdit: PropTypes.bool.isRequired,\r\n reference: PropTypes.string.isRequired,\r\n onGetAssistance: PropTypes.func.isRequired,\r\n onGetCurrentStudent: PropTypes.func.isRequired,\r\n onNextPage: PropTypes.func.isRequired,\r\n onPreviousPage: PropTypes.func.isRequired,\r\n onPresent: PropTypes.func.isRequired,\r\n onAbsent: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nclass AssistanceContainer extends PureComponent {\r\n static propTypes = {\r\n subjectPeriodId: PropTypes.number.isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n loadingAssists: false,\r\n items: [],\r\n assists: [],\r\n studentAssists: [],\r\n filters: { id: 10 },\r\n showForm: false,\r\n showFormModal: false,\r\n logContents: [],\r\n endHomework: '',\r\n canEdit: false,\r\n editAssistance: false,\r\n id: 0,\r\n students: [],\r\n currentStudentId: 0,\r\n };\r\n\r\n this.columns = ({\r\n assists, studentAssists, canEditTask, editAssistance,\r\n }) => {\r\n const cols = [\r\n {\r\n key: 'doc',\r\n name: 'Nº doc',\r\n width: '100px',\r\n search: true,\r\n },\r\n {\r\n key: 'surname',\r\n name: 'Apellido',\r\n visible: false,\r\n search: true,\r\n },\r\n {\r\n key: 'name',\r\n name: 'Nombre',\r\n search: true,\r\n width: '300px',\r\n format: ({ surname, name }) => (\r\n \r\n {`${surname}, ${name}`.trim()}\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const groupByAssistance = assists.map(({ id, date, reference }) => ({ assistanceId: id, date, reference }));\r\n\r\n const assistanceByStudents = studentAssists\r\n .map(({ assistanceId, studentId, present }) => ({ assistanceId, studentId, present }));\r\n const assistanceLength = groupByAssistance.length;\r\n const attendancePerc = [];\r\n\r\n studentAssists\r\n .map(({ studentId, present }) => ({ studentId, present }))\r\n .reduce((res, { studentId, present }) => {\r\n if (!res[studentId]) {\r\n res[studentId] = { studentId, ok: 0 };\r\n attendancePerc.push(res[studentId]);\r\n }\r\n\r\n res[studentId].ok += present ? 1 : 0;\r\n\r\n return res;\r\n }, {});\r\n\r\n const assistanceHeaders = groupByAssistance.map(a => ({\r\n key: `assistance${a.assistanceId}`,\r\n name: (\r\n
    \r\n
    {dateDDFormat(a.date)}
    \r\n \r\n \r\n \r\n \r\n
    \r\n ),\r\n width: '75px',\r\n className: 'text-center',\r\n format: ({ studentId }) => {\r\n const assistanceByStudent = assistanceByStudents\r\n .find(as => as.assistanceId === a.assistanceId && as.studentId === studentId);\r\n\r\n if (!assistanceByStudent || assistanceByStudent.present === null) {\r\n return ​➖;\r\n }\r\n\r\n if (assistanceByStudent.present === false) {\r\n return (\r\n ​❌\r\n );\r\n }\r\n\r\n return (\r\n ✔️\r\n );\r\n },\r\n }));\r\n\r\n return [\r\n ...cols,\r\n ...[\r\n {\r\n key: 'assistPerc',\r\n name: '% Asistencia',\r\n editable: false,\r\n width: '110px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ studentId: id, assistPerc = 0 }) => {\r\n if (editAssistance) {\r\n return (\r\n \r\n {assistPerc}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n attendancePerc.filter(({ studentId }) => id === studentId)\r\n .map(({ ok }) => Math.round((ok / assistanceLength) * 100))[0]\r\n || assistPerc\r\n }\r\n \r\n );\r\n },\r\n },\r\n ],\r\n ...assistanceHeaders,\r\n ];\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshTable();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {\r\n page, pageSize, totalItemsCount, filters,\r\n } = this.state;\r\n const state = { filters };\r\n\r\n // Typical usage (don't forget to compare props):\r\n if (page !== prevState.page) {\r\n state.page = page;\r\n }\r\n\r\n if (pageSize !== prevState.pageSize) {\r\n state.pageSize = pageSize;\r\n }\r\n\r\n if (totalItemsCount !== prevState.totalItemsCount) {\r\n state.totalItemsCount = totalItemsCount;\r\n }\r\n }\r\n\r\n handlePresent = ({ assistanceId, studentId }) => {\r\n if (!assistanceId || !studentId) {\r\n return;\r\n }\r\n\r\n this.setState({ loadingAssists: true });\r\n\r\n const { students } = this.state;\r\n\r\n updatePresenceStundent({\r\n assistanceId,\r\n payload: {\r\n assistanceId, studentId, present: true,\r\n },\r\n onSuccess: ({ payload = {} }) => {\r\n createSuccessMessage('Asistencia tomada éxitosamente');\r\n\r\n const newArray = [...students];\r\n const index = newArray.findIndex(item => item.studentId === studentId);\r\n\r\n newArray[index] = {\r\n ...newArray[index],\r\n present: payload.present || false,\r\n };\r\n\r\n this.setState({\r\n students: newArray,\r\n loadingAssists: false,\r\n });\r\n\r\n this.nextPage();\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loadingAssists: false,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createWarningMessage('La asistencia no existe');\r\n return;\r\n }\r\n\r\n createErrorMessage('Error al intentar cargar los datos de la asistencia');\r\n },\r\n });\r\n }\r\n\r\n handleAbsent = ({ assistanceId, studentId }) => {\r\n if (!assistanceId || !studentId) {\r\n return;\r\n }\r\n\r\n this.setState({ loadingAssists: true });\r\n\r\n const { students } = this.state;\r\n\r\n updatePresenceStundent({\r\n assistanceId,\r\n payload: {\r\n assistanceId, studentId, present: false,\r\n },\r\n onSuccess: ({ present }) => {\r\n createSuccessMessage('Asistencia tomada éxitosamente');\r\n\r\n const newArray = [...students];\r\n const index = newArray.findIndex(item => item.studentId === studentId);\r\n\r\n newArray[index] = {\r\n ...newArray[index],\r\n present,\r\n };\r\n\r\n this.setState({\r\n students: newArray,\r\n loadingAssists: false,\r\n });\r\n\r\n this.nextPage();\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loadingAssists: false,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createWarningMessage('La asistencia no existe');\r\n return;\r\n }\r\n\r\n createErrorMessage('Error al intentar cargar los datos de la asistencia');\r\n },\r\n });\r\n }\r\n\r\n getAssistance = ({ id }) => {\r\n if (!id) {\r\n this.setState({\r\n students: [],\r\n loading: false,\r\n currentStudentId: 0,\r\n });\r\n\r\n return;\r\n }\r\n\r\n fetch({\r\n id,\r\n onSuccess: ({\r\n students = [],\r\n }) => {\r\n this.setState({\r\n students,\r\n loading: false,\r\n currentStudentId: 0,\r\n });\r\n if (students.length) {\r\n this.nextPage();\r\n return;\r\n }\r\n\r\n createWarningMessage('La asistencia no tiene alumnos');\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n students: [],\r\n loading: false,\r\n currentStudentId: 0,\r\n });\r\n\r\n if (error && error.status === 404) {\r\n createWarningMessage('La asistencia no existe');\r\n return;\r\n }\r\n\r\n createErrorMessage('Error al intentar cargar los datos de la asistencia');\r\n },\r\n });\r\n }\r\n\r\n refreshTable = (criteria = {}) => {\r\n const {\r\n page = 1, pageSize = 25, totalItemsCount = 0, filters = {},\r\n } = criteria;\r\n\r\n const state = {\r\n filters: filters || { logContent: [] },\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n };\r\n\r\n this.refreshFormDatas();\r\n\r\n this.fetchTable({ ...state });\r\n }\r\n\r\n refreshFormDatas = () => {\r\n const { subjectPeriodId } = this.props;\r\n\r\n this.setState({ loading: true });\r\n fetchFormDatas({\r\n subjectPeriodId,\r\n onSuccess: ({\r\n logContents,\r\n endHomework,\r\n canEdit,\r\n editAssistance,\r\n }) => this.setState({\r\n loading: false,\r\n logContents,\r\n endHomework,\r\n canEdit,\r\n editAssistance,\r\n }),\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n logContents: [],\r\n endHomework: '',\r\n canEdit: false,\r\n editAssistance: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n fetchTable = ({ page, pageSize, filters }) => {\r\n const {\r\n subjectPeriodId,\r\n } = this.props;\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n\r\n fetchAll({\r\n subjectPeriodId,\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: ({ pageInfo, assists, studentAssists }) => {\r\n const { items, totalItemsCount } = pageInfo;\r\n this.setState({\r\n loading: false,\r\n items,\r\n totalItemsCount,\r\n assists,\r\n studentAssists,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de materias por periodo');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteAction = (record) => {\r\n const { page, pageSize } = this.state;\r\n this.refreshTable({ page, pageSize });\r\n\r\n const name = `#${record.id}, ${dateFormat(record.date)}, Ref:${record.reference || ''}`;\r\n Confirm({\r\n title: 'Borrar asistencia',\r\n question: `Estás seguro que deseas eliminar esta asistencia \"${name}\"?`,\r\n yesLabel: 'Si, Borrar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n deleteAssistance(record.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Asistencia borrada exitosamente');\r\n this.refreshTable({ page, pageSize });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La asistencia no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar asistencia');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleHideForm = () => {\r\n this.setState({\r\n showForm: false,\r\n showFormModal: false,\r\n });\r\n\r\n this.refreshTable();\r\n };\r\n\r\n editAssistance = ({ id = 0 }) => {\r\n this.refreshFormDatas();\r\n if (id === 0) {\r\n this.setState({\r\n id, showFormModal: true, showForm: false,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n id, showForm: true, showFormModal: false,\r\n });\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.refreshTable({ page, pageSize, filters });\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.refreshTable({ page: 1, pageSize, filters: values });\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize, filters } = this.state;\r\n const { autoHideSearch } = filters;\r\n this.refreshTable({ page: 1, pageSize, filters: { autoHideSearch } });\r\n };\r\n\r\n nextPage = () => {\r\n const { students = [], currentStudentId } = this.state;\r\n\r\n const index = students.findIndex(s => s.studentId === currentStudentId);\r\n const newIndex = index + 1 === students.length ? 0 : index + 1;\r\n\r\n const student = students[newIndex];\r\n\r\n this.setState({ currentStudentId: student.studentId });\r\n };\r\n\r\n previousPage = () => {\r\n const { students = [], currentStudentId } = this.state;\r\n\r\n const index = students.findIndex(s => s.studentId === currentStudentId);\r\n const { studentId } = students[index === 0 ? students.length - 1 : index - 1];\r\n\r\n this.setState({ currentStudentId: studentId });\r\n };\r\n\r\n getCurrentStudent = ({\r\n assistance,\r\n assistanceId,\r\n date,\r\n reference,\r\n setAssistance,\r\n onGetAssistance,\r\n onPreviousPage,\r\n onNextPage,\r\n onPresent,\r\n onAbsent,\r\n }) => {\r\n const { students = [], currentStudentId } = this.state;\r\n const studentIndex = students.findIndex(s => s.studentId === currentStudentId);\r\n\r\n if (!assistance) {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n {\r\n setAssistance(true);\r\n onGetAssistance({ id: assistanceId });\r\n }}\r\n style={{ marginBottom: '0' }}\r\n >\r\n Tomar asistencia\r\n \r\n
    \r\n
    \r\n {\r\n this.editAssistance({ id: assistanceId });\r\n }}\r\n style={{ marginBottom: '0' }}\r\n >\r\n Editar asistencia\r\n \r\n
    \r\n
    \r\n {\r\n this.handleDeleteAction({\r\n id: assistanceId,\r\n date,\r\n reference,\r\n });\r\n }}\r\n style={{ marginBottom: '0' }}\r\n >\r\n Borrar asistencia\r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n if (studentIndex === -1) {\r\n return <>;\r\n }\r\n\r\n const {\r\n doc, name, surname, present = false,\r\n } = students[studentIndex];\r\n\r\n const [assistanceValue] = AssistValues.filter(a => a.value === present);\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    Nº documento: {doc}
    \r\n
    {surname}
    \r\n
    {name}
    \r\n \r\n \r\n \r\n {\r\n this.assistanceButtons({\r\n assistanceId,\r\n currentStudentId,\r\n assistanceValue,\r\n onPreviousPage,\r\n onNextPage,\r\n onPresent,\r\n onAbsent,\r\n pointerStudent: `${studentIndex + 1}/${students.length}`,\r\n })\r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n assistanceButtons = ({\r\n assistanceId,\r\n currentStudentId,\r\n assistanceValue,\r\n onPreviousPage,\r\n onNextPage,\r\n onPresent,\r\n onAbsent,\r\n pointerStudent,\r\n }) => {\r\n const { loadingAssists } = this.state;\r\n if (loadingAssists) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    {pointerStudent}
    \r\n \r\n {assistanceValue.description}\r\n \r\n
    \r\n onPresent({ assistanceId, studentId: currentStudentId })}\r\n >\r\n \r\n \r\n onAbsent({ assistanceId, studentId: currentStudentId })}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n addButton = () => {\r\n const {\r\n showForm, showFormModal, endHomework, canEdit,\r\n } = this.state;\r\n\r\n if (showForm || showFormModal) {\r\n return null;\r\n }\r\n\r\n if (!canEdit && endHomework) {\r\n return (\r\n \r\n
    \r\n

    \r\n \r\n Fecha Límite Calificar Tareas Y Tomar Asistencias {dateTimeFormat(endHomework)}\r\n \r\n

    \r\n
    \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n this.editAssistance({ id: 0 })}\r\n >\r\n Agregar Nueva Asistencia\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n studentAssistanceForm = () => {\r\n const {\r\n id, logContents, endHomework, showForm, canEdit,\r\n } = this.state;\r\n\r\n const { subjectPeriodId } = this.props;\r\n if (!subjectPeriodId || !showForm) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n studentAssistanceFormModal = () => {\r\n const {\r\n id, logContents, showFormModal,\r\n } = this.state;\r\n\r\n const { subjectPeriodId } = this.props;\r\n if (!subjectPeriodId || !showFormModal) {\r\n return null;\r\n }\r\n const show = false;\r\n if (show) {\r\n AssistanceFormModal({\r\n title: Nueva Asistencia,\r\n id,\r\n subjectPeriodId,\r\n logContents,\r\n onHideForm: this.handleHideForm,\r\n color: 'primary',\r\n onValueChanges: (key, value) => {\r\n console.log(key, value);\r\n const { currentInscription } = this.state;\r\n this.setState({ currentInscription: { ...currentInscription, [key]: +value } });\r\n },\r\n onConfirm: (value) => {\r\n console.log(value);\r\n },\r\n });\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n dataTable = () => {\r\n const {\r\n showForm,\r\n showFormModal,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n assists,\r\n studentAssists,\r\n canEdit,\r\n editAssistance,\r\n } = this.state;\r\n\r\n if (showForm || showFormModal) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n this.getGridActions(key, row)}\r\n itemsToShow={items.length}\r\n page={page}\r\n pageSize={pageSize}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n loading,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {this.addButton()}\r\n {this.studentAssistanceForm()}\r\n {this.studentAssistanceFormModal()}\r\n {this.dataTable()}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxAssistanceContainer = reduxForm({\r\n form: 'AssistanceContainer',\r\n enableReinitialize: true,\r\n})(AssistanceContainer);\r\n\r\nexport default setPropsAsInitialValues(ReduxAssistanceContainer);\r\n","import React from 'react';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport {\r\n Button,\r\n ButtonToolbar,\r\n Modal,\r\n Col,\r\n} from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\n\r\nconst EditarNotasDialog = ({\r\n inscripcionMateria,\r\n onConfirm,\r\n onValueChanges,\r\n}) => {\r\n const color = 'form';\r\n const modalClass = 'modal-dialog--header';\r\n const {\r\n fechaInscripcion,\r\n nombreAlumno,\r\n apellidoAlumno,\r\n porcentajeAsistencia = 0,\r\n porcentajePP = 0,\r\n } = inscripcionMateria;\r\n const inscripcion = moment(fechaInscripcion);\r\n\r\n const customUI = ({ onClose }) => {\r\n const validate = (values) => {\r\n const attrs = values || {};\r\n if (attrs.porcentajeAsistencia < 0 || attrs.porcentajeAsistencia > 100) {\r\n return 'Debe ingresar un porcentaje válido(0-100)';\r\n }\r\n if (attrs.porcentajePP < 0 || attrs.porcentajePP > 100) {\r\n return 'Debe ingresar un porcentaje válido(0-100)';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n let errors = {\r\n porcentajeAsistencia: '',\r\n porcentajePP: '',\r\n };\r\n\r\n const handleChange = (event) => {\r\n event.persist();\r\n const values = { [event.target.name]: +event.currentTarget.value };\r\n errors = { ...errors, [event.target.name]: validate(values) };\r\n\r\n onValueChanges(event.target.name, +event.currentTarget.value);\r\n\r\n document.getElementById('lblPorcentajeAsistencia').textContent = errors.porcentajeAsistencia;\r\n\r\n document.getElementById('lblPorcentajePP').textContent = errors.porcentajePP;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n

    Editar Asistencia / Notas

    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n Alumno\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Fecha de inscripcion\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n Porcentaje de asistencia\r\n
    \r\n \r\n .\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Porcentaje PP\r\n
    \r\n \r\n .\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {!errors.porcentajePP\r\n && (\r\n {\r\n onConfirm();\r\n onClose();\r\n }}\r\n >\r\n Guardar\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n customUI.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n };\r\n\r\n confirmAlert({\r\n customUI,\r\n });\r\n};\r\n\r\nEditarNotasDialog.propTypes = {\r\n inscripcionMateria: PropTypes.shape({}).isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n onValueChanges: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default EditarNotasDialog;\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Spinner,\r\n Nav,\r\n NavItem,\r\n TabPane,\r\n TabContent,\r\n Button,\r\n Badge,\r\n} from 'reactstrap';\r\nimport TooltipItem from '../../shared/components/TooltipItem';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport {\r\n get,\r\n getSubjectStudents,\r\n downloadSubjectStudents,\r\n downloadSubjectStudentsScore,\r\n changeUtilizaPorcentajePesoMateria,\r\n stampSubject,\r\n publishSubject,\r\n} from '../../redux/actions/materiaPeriodoActions';\r\n\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../helpers/notification';\r\nimport {\r\n actualizarNotas,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport PlaneamientoForm from './PlaneamientoForm/index';\r\nimport Homework from '../MateriasPeriodo/Homework/index';\r\nimport StudentAssistance from '../Assistance';\r\n\r\nimport EditarNotasDialog from './EditarNotasDialog';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport {\r\n EstadoMateriaPeriodo,\r\n} from '../../constants/enums';\r\n\r\nclass ProfessorDataContainer extends PureComponent {\r\n static propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n loadingAlumnosMateria: true,\r\n items: [],\r\n tareas: [],\r\n filters: {\r\n page: 1,\r\n pageSize: 20,\r\n numeroDocumento: '',\r\n nombreAlumno: '',\r\n apellidoAlumno: '',\r\n },\r\n activeTab: '1',\r\n currentInscription: {},\r\n materiaPeriodo: null,\r\n };\r\n\r\n this.inputStyle = {\r\n fontSize: '18px',\r\n color: 'greenyellow',\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n backgroundColor: 'transparent',\r\n };\r\n\r\n this.columnsStudents = [\r\n {\r\n key: 'numeroDocumento',\r\n name: 'Nº documento',\r\n width: '130px',\r\n search: true,\r\n },\r\n {\r\n key: 'apellidoAlumno',\r\n name: 'Apellido',\r\n search: true,\r\n },\r\n {\r\n key: 'nombreAlumno',\r\n name: 'Nombre',\r\n search: true,\r\n },\r\n { key: 'phoneNumber', name: 'Teléfono' },\r\n { key: 'email', name: 'E-Mail' },\r\n ];\r\n\r\n this.columns = ({\r\n calculatePPFromTasks,\r\n tareas,\r\n canEditTask,\r\n canEditAttendances,\r\n showAssistPercentageInScores,\r\n }) => {\r\n const cols = [\r\n {\r\n key: 'numeroDocumento',\r\n name: 'Nº documento',\r\n width: '120px',\r\n search: true,\r\n },\r\n {\r\n key: 'apellidoAlumno',\r\n name: 'Apellido',\r\n visible: false,\r\n search: true,\r\n },\r\n {\r\n key: 'nombreAlumno',\r\n name: 'Nombre',\r\n search: true,\r\n format: row => `${row.apellidoAlumno}, ${row.nombreAlumno}`.trim(),\r\n },\r\n ];\r\n\r\n const scores = tareas.map(t => ({\r\n key: `tareas${t.id}`,\r\n name: t.tipoTarea.value !== 2\r\n ? `Tarea #${t.id} ${t.utilizaPorcentajePesoMateria ? `(${t.porcentajePesoMateria})%` : ''}`\r\n : (\r\n \r\n {\r\n \r\n }\r\n \r\n ),\r\n width: '126px',\r\n className: 'text-center',\r\n format: ({ calificaciones = [] }) => (\r\n <>\r\n {calificaciones.filter(c => c.tareaId === t.id).map(c => c.puntaje)[0] || 0}\r\n {'/'}\r\n {t.puntajeTotal}\r\n \r\n ),\r\n }));\r\n\r\n return [\r\n ...cols,\r\n ...scores,\r\n ...[\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n editable: !calculatePPFromTasks && canEditTask,\r\n type: 'number',\r\n min: 0,\r\n max: 100,\r\n width: '100px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajePP }) => (\r\n \r\n {porcentajePP}\r\n \r\n ),\r\n },\r\n {\r\n visible: showAssistPercentageInScores,\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n editable: canEditAttendances && !canEditTask,\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n width: '110px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajeAsistencia }) => (\r\n \r\n {Math.round(porcentajeAsistencia)}\r\n \r\n ),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '100px',\r\n visible: false,\r\n },\r\n ],\r\n ];\r\n };\r\n\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (inscription) => {\r\n this.editarNotas(inscription);\r\n },\r\n },\r\n ];\r\n this.downloadAlumnosMateria.bind(this);\r\n this.downloadAlumnosMateriaNotas.bind(this);\r\n this.editarNotas.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshTables();\r\n }\r\n\r\n refreshTables = () => {\r\n this.updateMateriaPeriodo();\r\n this.updateAlumnosMateria();\r\n }\r\n\r\n toggle = (tab) => {\r\n const { activeTab } = this.state;\r\n if (activeTab !== tab) {\r\n this.setState({ activeTab: tab });\r\n if (tab === '4') {\r\n this.updateAlumnosMateria();\r\n return;\r\n }\r\n\r\n if (tab === '3') {\r\n this.updateAlumnosMateria();\r\n }\r\n }\r\n };\r\n\r\n handleChangeUtilizaPorcentajePesoMateria = (values) => {\r\n const { id } = this.props;\r\n\r\n const { utilizaPorcentajePesoMateria } = values;\r\n\r\n changeUtilizaPorcentajePesoMateria({\r\n payload: {\r\n id: Number(id),\r\n allow: utilizaPorcentajePesoMateria,\r\n },\r\n onSuccess: () => {\r\n this.refreshTables();\r\n createSuccessMessage('Materia actualizada exitosamente.');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar actualizar la materia');\r\n }\r\n this.refreshTables();\r\n },\r\n });\r\n };\r\n\r\n updateMateriaPeriodo = () => {\r\n const { id } = this.props;\r\n this.setState({ loading: true });\r\n get({\r\n id,\r\n onSuccess: (materiaPeriodo) => {\r\n this.setState({\r\n materiaPeriodo, loading: false,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n items: [],\r\n tareas: [],\r\n loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos de la materia');\r\n },\r\n });\r\n }\r\n\r\n editarNotas = (inscription) => {\r\n this.setState({ currentInscription: inscription });\r\n EditarNotasDialog({\r\n inscripcionMateria: inscription,\r\n onValueChanges: (key, value) => {\r\n const { currentInscription } = this.state;\r\n this.setState({ currentInscription: { ...currentInscription, [key]: +value } });\r\n },\r\n onConfirm: () => {\r\n const { currentInscription } = this.state;\r\n actualizarNotas(currentInscription, {\r\n onSuccess: () => {\r\n createSuccessMessage('Asistencia y/o notas guardada(s) exitosamente.');\r\n const { pageSize, filters } = this.state;\r\n this.updateAlumnosMateria(1, pageSize, filters);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la asistencia y/o nota.');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n autoguardarNota = (row, key, value) => {\r\n const { items } = this.state;\r\n const trow = items.find(r => r.id === row.id);\r\n\r\n if (!trow) return;\r\n trow[key] = +value;\r\n actualizarNotas({ ...row, [key]: +value }, {\r\n onSuccess: () => {\r\n createSuccessMessage('Asistencia y/o notas guardada(s) exitosamente.');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la asistencia y/o nota.');\r\n }\r\n },\r\n });\r\n };\r\n\r\n goBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n updateAlumnosMateria = (page, pageSize, filters) => {\r\n const { id } = this.props;\r\n\r\n this.setState({\r\n loadingAlumnosMateria: true,\r\n filters: filters || {},\r\n });\r\n\r\n getSubjectStudents({\r\n filters,\r\n id,\r\n onSuccess: ({ materias: items, tareas }) => {\r\n this.setState({\r\n loadingAlumnosMateria: false,\r\n items,\r\n tareas,\r\n totalItemsCount: items.length,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n items: [],\r\n tareas: [],\r\n loadingAlumnosMateria: false,\r\n });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n downloadAlumnosMateria = () => {\r\n const { id } = this.props;\r\n this.setState({ loadingAlumnosMateria: true });\r\n downloadSubjectStudents({\r\n id,\r\n onSuccess: () => {\r\n createSuccessMessage('Lista descargada exitosamente');\r\n this.setState({ loadingAlumnosMateria: false });\r\n },\r\n onError: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createErrorMessage('Error al intentar descargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n downloadAlumnosMateriaNotas = () => {\r\n const { id } = this.props;\r\n this.setState({ loadingAlumnosMateria: true });\r\n downloadSubjectStudentsScore({\r\n id,\r\n onSuccess: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createSuccessMessage('Lista descargada exitosamente');\r\n },\r\n onError: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createErrorMessage('Error al intentar descargar la lista de calificaciones alumnos');\r\n },\r\n });\r\n }\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateAlumnosMateria(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize, filters } = this.state;\r\n const { autoHideSearch } = filters;\r\n this.updateAlumnosMateria(1, pageSize, { autoHideSearch });\r\n };\r\n\r\n planeamientoForm = () => {\r\n const { materiaPeriodo } = this.state;\r\n return (\r\n \r\n );\r\n };\r\n\r\n getStutus = (estado = {}) => {\r\n let color = 'secondary';\r\n\r\n if (estado.value === EstadoMateriaPeriodo.Publicado.value) {\r\n color = 'info';\r\n }\r\n\r\n if (estado.value === EstadoMateriaPeriodo.Sellado.value) {\r\n color = 'success';\r\n }\r\n\r\n return (\r\n \r\n {estado.label}\r\n \r\n );\r\n };\r\n\r\n changeStatus = ({ materiaPeriodo = {} }) => {\r\n if (materiaPeriodo.estado === undefined) {\r\n return null;\r\n }\r\n\r\n let button = <>;\r\n if (materiaPeriodo.estado.value === EstadoMateriaPeriodo.Preliminar.value) {\r\n button = (\r\n this.handlePublishSubject(materiaPeriodo)}\r\n >\r\n Publicar\r\n \r\n );\r\n }\r\n\r\n if (materiaPeriodo.estado.value === EstadoMateriaPeriodo.Publicado.value) {\r\n button = (\r\n this.handleStampSubject(materiaPeriodo)}\r\n >\r\n Sellar\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n

    Estado:

    \r\n {this.getStutus(materiaPeriodo.estado)}\r\n {button}\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n handlePublishSubject = (materiaPeriodo) => {\r\n const {\r\n materiaMalla,\r\n } = materiaPeriodo;\r\n\r\n Confirm({\r\n title: 'Publicar materia',\r\n question: `¿Estás seguro que deseas publicar la materia ${materiaMalla.label}?\r\nUna vez publicado ya no será editable.`,\r\n yesLabel: 'Si, Publicar materia',\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n onConfirm: () => {\r\n publishSubject({\r\n id: materiaPeriodo.id,\r\n subject: materiaPeriodo,\r\n onSuccess: () => {\r\n createSuccessMessage('Materia publicada exitosamente');\r\n this.refreshTables();\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar publicar la materia');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleStampSubject = (materiaPeriodo) => {\r\n const {\r\n materiaMalla,\r\n } = materiaPeriodo;\r\n\r\n Confirm({\r\n title: 'Sellar materia',\r\n question: `¿Estás seguro que deseas sellar la materia ${materiaMalla.label}?\r\nUna vez sellado ya no será editable.`,\r\n yesLabel: 'Si, Sellar materia',\r\n noLabel: 'No, Volver',\r\n color: 'success',\r\n onConfirm: () => {\r\n stampSubject({\r\n id: materiaPeriodo.id,\r\n subject: materiaPeriodo,\r\n onSuccess: () => {\r\n createSuccessMessage('Materia sellada exitosamente');\r\n this.refreshTables();\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia no existe');\r\n } else if (error && error.status === 400) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Error al intentar sellar la materia');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n showTabStudentAssistance = ({ id, editarAsistencias }) => {\r\n if (editarAsistencias) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n materiaPeriodo,\r\n loading,\r\n loadingAlumnosMateria,\r\n items,\r\n tareas,\r\n totalItemsCount,\r\n filters,\r\n activeTab,\r\n } = this.state;\r\n\r\n if (loading || !materiaPeriodo) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Plan semestral de clases\r\n

    \r\n

    \r\n {materiaPeriodo.materia.label}{' - '}\r\n

    {materiaPeriodo.seccion}

    \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    Carrera:{' '}
    \r\n
    {materiaPeriodo.carrera}
    \r\n
    \r\n \r\n \r\n
    \r\n
    Semestre:{' '}
    \r\n
    {materiaPeriodo.semestre}
    \r\n
    \r\n \r\n \r\n
    \r\n
    Año:{' '}
    \r\n
    {materiaPeriodo.anho}
    \r\n
    \r\n \r\n \r\n
    \r\n
    Horas Semanales
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n {this.changeStatus({ materiaPeriodo })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n loadingAlumnosMateria ? (\r\n \r\n

    \r\n \r\n

    \r\n \r\n )\r\n : (\r\n <>\r\n \r\n
    \r\n \r\n  \r\n Descargar lista\r\n \r\n
    \r\n \r\n\r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n itemsToShow={items.length}\r\n page={1}\r\n pageSize={totalItemsCount}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.planeamientoForm()}\r\n \r\n \r\n \r\n \r\n {\r\n loadingAlumnosMateria ? (\r\n \r\n

    \r\n \r\n

    \r\n \r\n )\r\n : (\r\n <>\r\n \r\n
    \r\n \r\n  \r\n Descargar lista\r\n \r\n
    \r\n \r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n itemsToShow={items.length}\r\n page={1}\r\n pageSize={totalItemsCount}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n {this.showTabStudentAssistance(materiaPeriodo)}\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n Volver\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ProfessorDataContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n reporteInscriptos,\r\n downloadStudentsInscriptos,\r\n} from '../../redux/actions/studentsActions';\r\nimport { fetchFormDatas } from '../../redux/actions/periodoActions';\r\nimport { createErrorMessage } from '../../helpers/notification';\r\n\r\nclass StudentsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: {\r\n id: 20,\r\n periodo: { value: 0, label: '-' },\r\n },\r\n periods: [],\r\n };\r\n this.columns = [\r\n {\r\n key: 'periodo',\r\n name: 'Periodo',\r\n className: 'text-center',\r\n search: true,\r\n width: '200px',\r\n type: 'select',\r\n searchProps: {\r\n options: this.getPeriods,\r\n },\r\n format: row => `${row.periodo ? row.periodo.label : '-'}`,\r\n },\r\n {\r\n key: 'malla',\r\n name: 'Malla',\r\n search: true,\r\n },\r\n {\r\n key: 'carrera',\r\n name: 'Carrera',\r\n search: true,\r\n },\r\n {\r\n key: 'numeroLegajo',\r\n name: '# Legajo',\r\n width: '110px',\r\n search: true,\r\n type: 'number',\r\n },\r\n {\r\n key: 'numeroDocumento',\r\n name: '# Documento',\r\n search: true,\r\n type: 'number',\r\n width: '130px',\r\n },\r\n {\r\n key: 'nombre',\r\n name: 'Nombre',\r\n search: true,\r\n },\r\n {\r\n key: 'apellido',\r\n name: 'Apellido',\r\n search: true,\r\n },\r\n {\r\n key: 'cantidadDeMateriasActuales',\r\n name: 'Cantidad de materias',\r\n type: 'number',\r\n width: '150px',\r\n className: 'text-center',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n }\r\n\r\n fetchDatasList = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchFormDatas({\r\n onSuccess: ({ periodos }) => {\r\n this.setState({\r\n periods: periodos,\r\n loading: false,\r\n });\r\n\r\n const { page, pageSize } = this.state;\r\n this.updateStudentsTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n console.log(error);\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n updateStudentsTable = (page, pageSize, filters = {}) => {\r\n const { periodo = {} } = filters;\r\n\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: {\r\n ...filters,\r\n periodoId: periodo.value,\r\n },\r\n });\r\n reporteInscriptos({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: {\r\n ...filters,\r\n periodoId: periodo.value,\r\n },\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n editStudent = (student) => {\r\n const { history } = this.props;\r\n history.push(`/pages/students/edit/${student.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, {});\r\n };\r\n\r\n getPeriods = () => {\r\n const { periods } = this.state;\r\n\r\n return periods || [];\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n downloadAlumnos = () => {\r\n const { filters } = this.state;\r\n downloadStudentsInscriptos({\r\n filters: filters || {},\r\n onError: () => {\r\n createErrorMessage('Error al intentar descargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Reporte de alumnos

    \r\n \r\n
    \r\n {items.length && (\r\n \r\n \r\n \r\n  \r\n Descargar lista\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n {loading ?

    Cargando...

    \r\n : (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(StudentsContainer);\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n\r\n if (!attrs.materia || !attrs.materia.value) {\r\n errors.materia = 'Debe seleccionar una materia';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport { Card, CardBody, Col } from 'reactstrap';\r\nimport renderSelectField from '../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass StudentSubjectFilterForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n onFilter: PropTypes.func.isRequired,\r\n periodos: PropTypes.arrayOf(PropTypes.shape({})),\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})),\r\n materias: PropTypes.arrayOf(PropTypes.shape({})),\r\n semestres: PropTypes.arrayOf(PropTypes.shape({})),\r\n }\r\n\r\n static defaultProps = {\r\n periodos: [],\r\n carreras: [],\r\n materias: [],\r\n semestres: [],\r\n }\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateExamsTable(1, pageSize, {});\r\n };\r\n\r\n render() {\r\n const {\r\n handleSubmit,\r\n materias,\r\n carreras,\r\n periodos,\r\n semestres,\r\n onFilterChanges,\r\n onFilter,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n Periodo\r\n
    \r\n onFilterChanges('periodo', 'periodoId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Carrera\r\n
    \r\n onFilterChanges('carrera', 'carreraId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Semestre\r\n
    \r\n onFilterChanges('semestre', 'semestreId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Materia\r\n
    \r\n onFilterChanges('materia', 'materiaId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Filtrar\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxStudentFilterForm = reduxForm({\r\n form: 'StudentFilterForm',\r\n enableReinitialize: true,\r\n validate,\r\n})(StudentSubjectFilterForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxStudentFilterForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport StudentSubjectFilterForm from './FilterForm';\r\nimport {\r\n reporteAlumnosFormData,\r\n} from '../../redux/actions/studentsActions';\r\nimport {\r\n reporteAlumnosPorMateria,\r\n descargarReporteAlumnosPorMaterias,\r\n} from '../../redux/actions/studentSubjectsActions';\r\nimport { createErrorMessage } from '../../helpers/notification';\r\n\r\nclass StudentsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n this.descargarReporteAlumnosPorMaterias.bind(this);\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 0 },\r\n };\r\n this.columns = [\r\n { key: 'numeroDocumento', name: 'C.I. Nº', width: '120px' },\r\n { key: 'apellido', name: 'Apellido', width: '15%' },\r\n { key: 'nombre', name: 'Nombre', width: '15%' },\r\n { key: 'phoneNumber', name: 'Teléfono', width: '10%' },\r\n { key: 'email', name: 'Correo', width: '15%' },\r\n { key: 'nombreMateria', name: 'Materia' },\r\n {\r\n key: 'fechaIngreso',\r\n className: 'text-center',\r\n name: 'Año Ingreso',\r\n width: '130px',\r\n format: row => new Date(row.fechaIngreso).getFullYear(),\r\n },\r\n { key: 'nombreCarrera', name: 'Carrera' },\r\n {\r\n key: 'numeroSemestre',\r\n name: 'Semestre',\r\n width: '90px',\r\n format: row => `${row.numeroSemestre}º`,\r\n },\r\n {\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n type: 'number',\r\n width: '120px',\r\n\r\n },\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n type: 'number',\r\n width: '120px',\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.fetchFormData(page, pageSize);\r\n }\r\n\r\n fetchFormData = () => {\r\n reporteAlumnosFormData({\r\n onSuccess: (formData) => {\r\n const { materias } = formData;\r\n const distinctMaterias = materias.filter((v, index, self) => self.map(x => x.label).indexOf(v.label) === index);\r\n this.setState({\r\n ...formData,\r\n todasLasMaterias: materias,\r\n materias: distinctMaterias,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar los datos del formulario');\r\n },\r\n });\r\n }\r\n\r\n updateStudentsTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n reporteAlumnosPorMateria({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n if (objectKey === 'periodo' || objectKey === 'carrera') {\r\n const { carreraId, periodoId, todasLasMaterias } = this.state;\r\n let materias = todasLasMaterias.filter(m => (!carreraId || m.carreraId === carreraId)\r\n && (!periodoId || m.periodoId === periodoId));\r\n\r\n // Filter distinct and use MateriaId\r\n materias = materias.filter((v, index, self) => self.map(x => x.label).indexOf(v.label) === index)\r\n .map(x => ({ label: x.label, value: x.materiaId }));\r\n this.setState({\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n materias,\r\n });\r\n } else {\r\n this.setState({\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n });\r\n }\r\n\r\n const { filters } = this.state;\r\n filters[idKey] = value.value;\r\n\r\n this.setState({\r\n filters,\r\n });\r\n }\r\n\r\n handleOnFilter = () => {\r\n const { page, pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n descargarReporteAlumnosPorMaterias = () => {\r\n const { filters } = this.state;\r\n descargarReporteAlumnosPorMaterias({\r\n filters: filters || {},\r\n onError: () => {\r\n createErrorMessage('Error al intentar descargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Reporte de Asistencias y Pruebas Parciales

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {items.length && (\r\n \r\n  \r\n Descargar lista\r\n \r\n )}\r\n \r\n \r\n \r\n {loading ?

    Esperando su búsqueda...

    \r\n : (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(StudentsContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport { Card, CardBody, Col } from 'reactstrap';\r\nimport renderSelectField from '../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../helpers/setPropsAsInitialValues';\r\n\r\nclass StudentFilterForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n onFilter: PropTypes.func.isRequired,\r\n periodos: PropTypes.arrayOf(PropTypes.shape({})),\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})),\r\n materias: PropTypes.arrayOf(PropTypes.shape({})),\r\n semestres: PropTypes.arrayOf(PropTypes.shape({})),\r\n }\r\n\r\n static defaultProps = {\r\n periodos: [],\r\n carreras: [],\r\n materias: [],\r\n semestres: [],\r\n }\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateExamsTable(1, pageSize, {});\r\n };\r\n\r\n render() {\r\n const {\r\n handleSubmit,\r\n materias,\r\n carreras,\r\n periodos,\r\n semestres,\r\n onFilterChanges,\r\n onFilter,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n Periodo\r\n
    \r\n onFilterChanges('periodo', 'periodoId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Carrera\r\n
    \r\n onFilterChanges('carrera', 'carreraId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Semestre\r\n
    \r\n onFilterChanges('semestre', 'semestreId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Materia\r\n
    \r\n onFilterChanges('materia', 'materiaId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Filtrar\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxStudentFilterForm = reduxForm({\r\n form: 'StudentFilterForm',\r\n enableReinitialize: true,\r\n})(StudentFilterForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxStudentFilterForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport StudentFilterForm from './FilterForm';\r\nimport {\r\n reporteAlumnosFormData,\r\n reporteAlumnos,\r\n downloadStudents,\r\n} from '../../redux/actions/studentsActions';\r\nimport { createErrorMessage } from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { dateDDMMYYFormat } from '../../helpers/dateFormat';\r\nimport {\r\n Generos,\r\n} from '../../constants/enums';\r\n\r\nclass StudentsContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n this.downloadAlumnos.bind(this);\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 0 },\r\n };\r\n this.columns = [\r\n { key: 'numeroDocumento', name: 'C.I. Nº', width: '120px' },\r\n { key: 'apellido', name: 'Apellido' },\r\n { key: 'nombre', name: 'Nombre' },\r\n { key: 'edad', name: 'Edad' },\r\n { key: 'nacionalidad', name: 'Nacionalidad' },\r\n {\r\n key: 'arancelCero',\r\n name: 'Arancel Cero',\r\n type: 'number',\r\n className: 'text-center',\r\n format: row => (row.arancelCero ? 'Si' : 'No'),\r\n },\r\n {\r\n key: 'fechaFinArancelCero',\r\n name: 'Fin Arancel Cero',\r\n type: 'number',\r\n className: 'text-center',\r\n format: row => (row.arancelCero ? dateDDMMYYFormat(row.fechaFinArancelCero) : ''),\r\n },\r\n { key: 'phoneNumber', name: 'Teléfono' },\r\n { key: 'email', name: 'Correo' },\r\n {\r\n key: 'genero',\r\n name: 'Género',\r\n format: row => (Generos[row.genero] ? Generos[row.genero].label : ''),\r\n },\r\n {\r\n key: 'fechaIngreso',\r\n name: 'Año Ingreso',\r\n type: 'number',\r\n format: row => new Date(row.fechaIngreso).getFullYear(),\r\n },\r\n { key: 'carrera', name: 'Carrera' },\r\n {\r\n key: 'semestre',\r\n name: 'Semestre',\r\n format: row => `${row.semestre}º`,\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.fetchFormData(page, pageSize);\r\n this.setState({\r\n loading: false,\r\n });\r\n }\r\n\r\n fetchFormData = () => {\r\n reporteAlumnosFormData({\r\n onSuccess: (formData) => {\r\n const { materias } = formData;\r\n // Filter distinct and use MateriaId\r\n const distinctMaterias = materias\r\n .filter((v, index, self) => self.map(x => x.label).indexOf(v.label) === index)\r\n .map(x => ({ label: x.label, value: x.materiaId }));\r\n this.setState({\r\n ...formData,\r\n todasLasMaterias: materias,\r\n materias: distinctMaterias,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar los datos del formulario');\r\n },\r\n });\r\n }\r\n\r\n updateStudentsTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n reporteAlumnos({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n if (objectKey === 'periodo' || objectKey === 'carrera') {\r\n const { carreraId, periodoId, todasLasMaterias } = this.state;\r\n let materias = todasLasMaterias.filter(m => (!carreraId || m.carreraId === carreraId)\r\n && (!periodoId || m.periodoId === periodoId));\r\n materias = materias.filter((v, index, self) => self.map(x => x.label).indexOf(v.label) === index);\r\n this.setState({\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n materias,\r\n });\r\n } else {\r\n this.setState({\r\n [idKey]: value.value,\r\n [objectKey]: value,\r\n });\r\n }\r\n const { filters } = this.state;\r\n filters[idKey] = value.value;\r\n\r\n this.setState({\r\n filters,\r\n });\r\n }\r\n\r\n handleOnFilter = () => {\r\n const { page, pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateStudentsTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateStudentsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n downloadAlumnos = () => {\r\n const { filters } = this.state;\r\n downloadStudents({\r\n filters: filters || {},\r\n onError: () => {\r\n createErrorMessage('Error al intentar descargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    Reporte de alumnos

    \r\n \r\n
    \r\n \r\n \r\n \r\n {items.length && (\r\n \r\n \r\n \r\n  \r\n Descargar lista\r\n \r\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 withRouter(StudentsContainer);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Container,\r\n Col,\r\n Row,\r\n Table,\r\n} from 'reactstrap';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport { Calificaciones } from '../../../constants/enums';\r\nimport { dateFormat } from '../../../helpers/dateFormat';\r\n\r\nclass AcademicStatusForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n nombre: PropTypes.string.isRequired,\r\n apellido: PropTypes.string.isRequired,\r\n fechaIngreso: PropTypes.string.isRequired,\r\n numeroDocumento: PropTypes.string.isRequired,\r\n direccion: PropTypes.string.isRequired,\r\n calificacionesSemestres: PropTypes.arrayOf(PropTypes.shape({})),\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n calificacionesSemestres: [],\r\n }\r\n\r\n getScoreName = (score) => {\r\n const scoreEnum = Calificaciones.find(c => c.value === score) || {};\r\n return (scoreEnum.label || '-').split(':').pop().trim();\r\n };\r\n\r\n getScoreSubject = semester => semester.calificacionesMaterias.map(subject => (\r\n <>\r\n \r\n \r\n {subject.materiaCodigo}\r\n \r\n \r\n {subject.materia}\r\n \r\n \r\n {this.getScoreDetails(subject)}\r\n \r\n ));\r\n\r\n getScoreDetails = subject => subject.calificaciones.map(score => (\r\n \r\n \r\n {score.calificacion ? score.calificacion : '-'}\r\n \r\n \r\n {this.getScoreName(score.calificacion)}\r\n \r\n \r\n {score.nroActa}\r\n \r\n \r\n {dateFormat(score.fechaExamen)}\r\n \r\n \r\n {score.periodo}\r\n \r\n \r\n ));\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n numeroDocumento,\r\n nombre,\r\n apellido,\r\n fechaIngreso,\r\n direccion,\r\n calificacionesSemestres,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    Datos personales
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Nombres y Apellidos:{`${nombre} ${apellido}`}
    Documento Número:\r\n {\r\n numeroDocumento && parseInt(numeroDocumento, 10)\r\n ? new Intl.NumberFormat('es-PY').format(parseInt(numeroDocumento, 10))\r\n : numeroDocumento\r\n }\r\n
    Domicilio:{direccion}
    \r\n Fecha de Examen de Ingreso:\r\n \r\n {new Date(fechaIngreso).getFullYear()}\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n

    DATOS ACADEMICOS

    \r\n
    \r\n \r\n
    \r\n \r\n {calificacionesSemestres.map(se => (\r\n \r\n \r\n \r\n
    \r\n

    {se.semestre}

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.getScoreSubject(se)}\r\n \r\n
    \r\n Cod.\r\n \r\n Asignatura\r\n \r\n Nº\r\n \r\n Letras\r\n \r\n Acta Nº\r\n \r\n Fecha\r\n \r\n Obs.\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Descargar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst rdxForm = reduxForm({\r\n form: 'rdxForm',\r\n enableReinitialize: true,\r\n})(AcademicStatusForm);\r\n\r\nexport default setPropsAsInitialValues(rdxForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport StudentForm from './AcademicStatusForm';\r\nimport {\r\n reporteAcademicStatusStudent,\r\n downloadAcademicStatusStudent,\r\n} from '../../../redux/actions/studentsActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\n\r\nclass AcademicStatusContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCurrentStudent();\r\n }\r\n\r\n fetchCurrentStudent = () => {\r\n const { id = '', history } = this.props;\r\n reporteAcademicStatusStudent(id, {\r\n onSuccess: (student) => {\r\n this.setState({ student, loading: false });\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('El alumno no existe');\r\n history.goBack();\r\n } else {\r\n createErrorMessage('Error al intentar cargar el estado académico del alumno');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const { id } = values;\r\n this.setState({ loading: true });\r\n downloadAcademicStatusStudent(id, {\r\n onSuccess: () => {\r\n this.setState({ loading: false });\r\n createSuccessMessage('Reporte descargado exitosamente');\r\n },\r\n onError: (error) => {\r\n this.setState({ loading: false });\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar descargar el reporte');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n render() {\r\n const { history } = this.props;\r\n const {\r\n student,\r\n loading,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Estado académico alumno\r\n

    \r\n

    \r\n La información del alumno de examenes sellados\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
    \r\n );\r\n }\r\n}\r\n\r\nAcademicStatusContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default AcademicStatusContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Badge,\r\n} from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n filter,\r\n remove,\r\n} from '../../redux/actions/periodoActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\nimport LoadingSpinner from '../../shared/components/LoadingSpinner';\r\nimport { dateFormat } from '../../helpers/dateFormat';\r\n\r\nclass PeriodosContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n };\r\n this.columns = [\r\n {\r\n key: 'anho',\r\n name: 'Año',\r\n search: false,\r\n width: '80px',\r\n format: ({ anho: value, activo }) => this.columnStyle({ value, activo }),\r\n },\r\n {\r\n key: 'nombre',\r\n name: 'Nombre',\r\n search: false,\r\n format: ({ nombre: value, activo }) => this.columnStyle({ value, activo }),\r\n },\r\n {\r\n key: 'inicioClases',\r\n name: 'Inicio de clases',\r\n search: false,\r\n type: 'date',\r\n format: ({ inicioClases, activo }) => this.columnStyle({ value: dateFormat(inicioClases), activo }),\r\n },\r\n {\r\n key: 'finClases',\r\n name: 'Fin de clases',\r\n search: false,\r\n type: 'date',\r\n format: ({ finClases, activo }) => this.columnStyle({ value: dateFormat(finClases), activo }),\r\n },\r\n {\r\n key: 'inicioPeriodoInscripcion',\r\n name: 'Inicio de inscripciones',\r\n search: false,\r\n type: 'date',\r\n format: ({ inicioPeriodoInscripcion, activo }) => this.columnStyle({\r\n value: dateFormat(inicioPeriodoInscripcion),\r\n activo,\r\n }),\r\n },\r\n {\r\n key: 'finPeriodoInscripcion',\r\n name: 'Fin de inscripciones',\r\n search: false,\r\n type: 'date',\r\n format: ({ finPeriodoInscripcion, activo }) => this.columnStyle({\r\n value: dateFormat(finPeriodoInscripcion),\r\n activo,\r\n }),\r\n },\r\n {\r\n key: 'finCalificarTareas',\r\n name: 'Límite para calificar tareas',\r\n search: false,\r\n type: 'date',\r\n format: ({ finCalificarTareas, activo }) => this.columnStyle({ value: dateFormat(finCalificarTareas), activo }),\r\n },\r\n {\r\n key: 'finEditarPlaneamiento',\r\n name: 'Límite para editar planeamiento',\r\n search: false,\r\n type: 'date',\r\n format: ({\r\n finEditarPlaneamiento, activo,\r\n }) => this.columnStyle({\r\n value: dateFormat(finEditarPlaneamiento),\r\n activo,\r\n }),\r\n },\r\n {\r\n key: 'esSemestrePar',\r\n name: 'Es semestre par',\r\n search: false,\r\n format: ({ esSemestrePar, activo }) => this.columnStyle({ value: (esSemestrePar ? 'Si' : 'No'), activo }),\r\n },\r\n {\r\n key: 'activo',\r\n name: 'Activo',\r\n search: false,\r\n format: ({ activo }) => this.columnStyle({ value: (activo ? 'Si' : 'No'), activo }),\r\n },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (periodo) => {\r\n this.editPeriodo(periodo);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (periodo) => {\r\n this.handleDeletePeriodo(periodo);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updatePeriodosTable(page, pageSize);\r\n }\r\n\r\n updatePeriodosTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n filter({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de periodos');\r\n },\r\n });\r\n }\r\n\r\n handleDeletePeriodo = (periodo) => {\r\n const name = `${periodo.materia.codigo}- ${periodo.materia.nombre}`;\r\n Confirm({\r\n title: 'Borrar periodo',\r\n question: `Estás seguro que deseas eliminar el periodo ${name}?`,\r\n yesLabel: 'Si, Borrar periodo',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n remove(periodo.id,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Periodo borrado exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updatePeriodosTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El periodo no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar el periodo');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n editPeriodo = (periodo) => {\r\n const { history } = this.props;\r\n history.push(`/pages/periodos/edit/${periodo.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updatePeriodosTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updatePeriodosTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updatePeriodosTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n columnStyle = ({ activo, value }) => {\r\n if (!activo) {\r\n return value;\r\n }\r\n\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Lista de periodos

    \r\n
    \r\n \r\n Agregar nuevo periodo\r\n \r\n
    \r\n \r\n
    \r\n \r\n {loading ? \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(PeriodosContainer);\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n\r\n if (!attrs.nombre) {\r\n errors.nombre = 'Debe ingresar un nombre para el periodo';\r\n }\r\n\r\n if (!attrs.anhoLectivo || !attrs.anhoLectivo.value) {\r\n errors.anhoLectivo = 'Debe seleccionar el año lectivo';\r\n }\r\n\r\n if (!attrs.inicioClases) {\r\n errors.inicioClases = 'Debe seleccionar la fecha de inicio de clases';\r\n }\r\n\r\n if (!attrs.finClases) {\r\n errors.finClases = 'Debe seleccionar la fecha de fin de clases';\r\n }\r\n\r\n if (!attrs.inicioPeriodoInscripcion) {\r\n errors.inicioPeriodoInscripcion = 'Debe seleccionar la fecha de inicio de inscripciones';\r\n }\r\n\r\n if (!attrs.finPeriodoInscripcion) {\r\n errors.finPeriodoInscripcion = 'Debe seleccionar la fecha de fin de inscripciones';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n Row,\r\n FormGroup,\r\n Label,\r\n Badge,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport DatePicker from '../../../shared/components/form/DatePicker';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport validate from './validate';\r\n\r\nclass PeriodoForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n handleDeleteMateriaPeriodo: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n id: PropTypes.number,\r\n esSemestrePar: PropTypes.bool,\r\n activo: PropTypes.bool,\r\n aniosLectivos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})),\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})),\r\n history: PropTypes.shape({}).isRequired,\r\n anhoLectivo: PropTypes.shape({}),\r\n }\r\n\r\n static defaultProps = {\r\n id: 0,\r\n submitting: false,\r\n esSemestrePar: false,\r\n activo: false,\r\n materias: [],\r\n carreras: [],\r\n anhoLectivo: {},\r\n }\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.editMateriaPeriodo = this.editMateriaPeriodo.bind(this);\r\n this.deleteMateriaPeriodo = this.deleteMateriaPeriodo.bind(this);\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n filters: { id: 20 },\r\n carreraId: 0,\r\n };\r\n this.columns = [\r\n // { key: 'codigo', name: 'Codigo', search: false },\r\n // { key: 'anho', name: 'Periodo', width: '85px' },\r\n {\r\n key: 'semestreNroOrden',\r\n name: 'Semestre',\r\n search: false,\r\n width: '120px',\r\n className: 'text-center',\r\n format: row => (\r\n
    \r\n \r\n {` ${row.semestreNroOrden}º`}\r\n \r\n
    \r\n ),\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n search: false,\r\n format: row => `${row.codigoMateria} - ${row.materia} - ${row.seccion}`,\r\n },\r\n {\r\n key: 'malla',\r\n name: 'Malla',\r\n search: false,\r\n },\r\n {\r\n key: 'profesores',\r\n name: 'Profesor(es)',\r\n format: row => row.profesores.map(m => (\r\n
    \r\n
    \r\n \r\n {m.role === 'Asistente' ? 'Aux' : 'Enc'}\r\n \r\n
    \r\n : {m.nombre} {m.apellido}\r\n
    \r\n )),\r\n },\r\n {\r\n key: 'tieneHorario',\r\n name: 'Horario',\r\n search: false,\r\n className: 'text-center',\r\n width: '100px',\r\n format: row => (\r\n

    \r\n \r\n {row.tieneHorario ? 'Si' : 'No'}\r\n \r\n

    \r\n ),\r\n },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (materiaPeriodo) => {\r\n this.editMateriaPeriodo(materiaPeriodo);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (materiaPeriodo) => {\r\n this.deleteMateriaPeriodo(materiaPeriodo);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n\r\n agregarOquitarMaterias = (periodo) => {\r\n if (periodo) {\r\n const { id, history } = this.props;\r\n history.push(`/pages/periodos/edit/${id}/materias`);\r\n }\r\n };\r\n\r\n\r\n editMateriaPeriodo = (materiaPeriodo) => {\r\n if (materiaPeriodo) {\r\n const { id, history } = this.props;\r\n history.push(`/pages/periodos/subjects/edit/${id}/${materiaPeriodo.id}`);\r\n }\r\n };\r\n\r\n deleteMateriaPeriodo = (materiaPeriodo) => {\r\n if (materiaPeriodo) {\r\n const { handleDeleteMateriaPeriodo } = this.props;\r\n handleDeleteMateriaPeriodo(materiaPeriodo);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, {});\r\n };\r\n\r\n onCarreraChanges = (carrera) => {\r\n this.setState({\r\n carreraId: carrera.value,\r\n });\r\n };\r\n\r\n filterMaterias = () => {\r\n const { materias } = this.props;\r\n const { carreraId } = this.state;\r\n\r\n return materias.filter(m => m.carreraId === carreraId || carreraId === 0);\r\n };\r\n\r\n getCarreras = () => {\r\n const { carreras } = this.props;\r\n return [\r\n ...[{ value: 0, label: 'Todas' }],\r\n ...carreras,\r\n ];\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n aniosLectivos,\r\n esSemestrePar,\r\n activo,\r\n } = this.props;\r\n\r\n const {\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    Datos del periodo
    \r\n
    \r\n \r\n \r\n
    \r\n Nombre\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Año lectivo\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n\r\n \r\n\r\n
    \r\n Semestre par?\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n Activo?\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n Fecha de inicio de clases\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n Fecha de fin de clases\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n Inicio de inscripciones\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n Fin de inscripciones\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Límite calificar tareas\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n Límite editar planeamiento\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n {id && (\r\n
    \r\n \r\n \r\n this.agregarOquitarMaterias({ id })}\r\n >\r\n Agregar / Quitar Materias\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n
    \r\n )}\r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxPeriodoForm = reduxForm({\r\n form: 'PeriodoForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(PeriodoForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxPeriodoForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport PeriodoForm from './PeriodoForm';\r\nimport {\r\n get,\r\n save,\r\n fetchFormDatas,\r\n} from '../../../redux/actions/periodoActions';\r\nimport {\r\n remove as removeMateriaPeriodo,\r\n} from '../../../redux/actions/materiaPeriodoActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport Confirm from '../../../shared/components/Confirm';\r\nimport LoadingSpinner from '../../../shared/components/LoadingSpinner';\r\nimport { dateTimeString } from '../../../helpers/dateFormat';\r\n\r\nclass PeriodoFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n };\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n this.handleOnSubjectChange = this.handleOnSubjectChange.bind(this);\r\n this.handleDeleteMateriaPeriodo = this.handleDeleteMateriaPeriodo.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n this.fetchCurrentRecord();\r\n }\r\n\r\n fetchCurrentRecord = () => {\r\n const { id, history } = this.props;\r\n this.setState({\r\n loading: true,\r\n });\r\n if (id) {\r\n get(id, {\r\n onSuccess: (dto) => {\r\n const periodo = {\r\n ...dto,\r\n anhoLectivo: {\r\n value: dto.anhoLectivoId,\r\n label: `${dto.anho}`,\r\n },\r\n };\r\n\r\n this.setState({ periodo, loading: false });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El periodo no existe');\r\n history.push('/pages/periodos');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del periodo');\r\n }\r\n\r\n this.setState({\r\n loading: false,\r\n });\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n periodo: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n },\r\n loading: false,\r\n });\r\n }\r\n }\r\n\r\n fetchDatasList = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n fetchFormDatas({\r\n onSuccess: (d) => {\r\n this.setState({\r\n aniosLectivos: d.aniosLectivos,\r\n carreras: d.carreras,\r\n loading: false,\r\n });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n this.setState({\r\n loading: false,\r\n });\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n const {\r\n anhoLectivo: { value: anhoLectivoId },\r\n finCalificarTareas,\r\n finEditarPlaneamiento,\r\n } = values;\r\n\r\n const params = {\r\n ...values,\r\n finCalificarTareas: dateTimeString(finCalificarTareas),\r\n finEditarPlaneamiento: dateTimeString(finEditarPlaneamiento),\r\n anhoLectivoId,\r\n };\r\n const { history } = this.props;\r\n save(params, {\r\n onSuccess: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n createSuccessMessage('Periodo guardado exitosamente');\r\n history.push('/pages/periodos');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar el periodo');\r\n }\r\n this.setState({\r\n loading: false,\r\n });\r\n },\r\n });\r\n }\r\n\r\n handleDeleteMateriaPeriodo = (materiaPeriodo) => {\r\n const name = `${materiaPeriodo.materia}`;\r\n Confirm({\r\n title: 'Quitar materia de periodo',\r\n question: `Estás seguro que deseas quitar la materia ${name} de este periodo?`,\r\n yesLabel: 'Si, Quitar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n removeMateriaPeriodo(materiaPeriodo.id,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Materia quitada exitosamente');\r\n this.fetchDatasList();\r\n this.fetchCurrentRecord();\r\n this.setState({\r\n loading: false,\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({\r\n loading: false,\r\n });\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia no existe');\r\n } else {\r\n createErrorMessage('Error al intentar quitar la materia del periodo');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n const { periodo } = this.state;\r\n this.setState({\r\n [idKey]: value.value,\r\n periodo: { ...periodo, [objectKey]: value },\r\n });\r\n }\r\n\r\n handleOnSubjectChange = (objectKey, idKey, value) => {\r\n const { periodo } = this.state;\r\n const profesor = `${value.nombre} ${value.apellido}`;\r\n let { interventorId, interventor } = periodo;\r\n\r\n if (!interventorId) {\r\n interventorId = value.usuarioId;\r\n interventor = { value: interventorId, label: profesor };\r\n }\r\n this.setState({\r\n [idKey]: value.value,\r\n periodo: {\r\n ...periodo,\r\n [objectKey]: value,\r\n profesor,\r\n interventor,\r\n interventorId,\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n periodo,\r\n aniosLectivos,\r\n carreras,\r\n loading,\r\n } = this.state;\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nuevo'} periodo\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la información del periodo\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!aniosLectivos && loading\r\n ? \r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nPeriodoFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default PeriodoFormContainer;\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n if (!attrs.student || !attrs.student.perfilAlumnoId) {\r\n errors.usuario = 'Debe seleccioanr el alumno';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card,\r\n CardBody,\r\n Col,\r\n Row,\r\n Container,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\nimport renderCheckBoxField from '../../../../shared/components/form/CheckBox';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass InscriptionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onMateriaPeriodoChanges: PropTypes.func.isRequired,\r\n onCarreraChanges: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})),\r\n subjects: PropTypes.arrayOf(PropTypes.shape({})),\r\n anho: PropTypes.number.isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n carreras: [],\r\n subjects: [],\r\n }\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n anho,\r\n carreras,\r\n subjects = [],\r\n onMateriaPeriodoChanges,\r\n onCarreraChanges,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Materias del periodo
    \r\n
    \r\n \r\n \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n Periodo\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Carrera\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n {subjects.map(g => (\r\n \r\n \r\n \r\n
    \r\n

    {g.nombre}

    \r\n
    \r\n {g.materias.map(m => (\r\n
    \r\n onMateriaPeriodoChanges(m.materiaMallaId, v)}\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n ))}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst InscriptionFormForm = reduxForm({\r\n form: 'InscriptionFormForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(InscriptionForm);\r\n\r\nexport default setPropsAsInitialValues(InscriptionFormForm);\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport EditarMateriasForm from './EditarMateriasForm';\r\nimport {\r\n fetchAllSubjectsBySemesters,\r\n saveSubjects,\r\n fetchEditSubjectsFormData,\r\n} from '../../../../redux/actions/periodoActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\nimport { SidebarProps } from '../../../../shared/prop-types/ReducerProps';\r\n\r\nclass InscriptionContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loaded: false,\r\n materiasModificadas: [],\r\n carrera: { value: 0, label: 'Todos' },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormData();\r\n this.fetchSubjectList(0);\r\n }\r\n\r\n fetchFormData = () => {\r\n const { history, id: periodoId } = this.props;\r\n fetchEditSubjectsFormData(periodoId, {\r\n onSuccess: (formData) => {\r\n const { carreras } = formData;\r\n carreras.push({ value: 0, label: 'Todos' });\r\n this.setState({\r\n ...formData,\r\n carreras,\r\n loaded: true,\r\n });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El periodo no existe');\r\n history.push('/pages/periodo-subjects');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del periodo');\r\n }\r\n },\r\n });\r\n }\r\n\r\n fetchSubjectList = (carreraId) => {\r\n const { id: periodoId } = this.props;\r\n this.setState({ loaded: false });\r\n fetchAllSubjectsBySemesters({\r\n periodoId,\r\n carreraId,\r\n onSuccess: (subjects) => {\r\n this.setState({ subjects, loaded: true });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar las materias');\r\n this.setState({ loaded: false });\r\n },\r\n });\r\n }\r\n\r\n\r\n onMateriaPeriodoChanges = (id, evt) => {\r\n if (evt.target) {\r\n const { materiasModificadas } = this.state;\r\n const subject = materiasModificadas.find(i => i.materiaMallaId === id);\r\n if (!subject) {\r\n materiasModificadas.push({\r\n materiaMallaId: id,\r\n selected: evt.target.checked,\r\n });\r\n this.setState({ materiasModificadas });\r\n } else {\r\n subject.selected = evt.target.checked;\r\n this.setState({ materiasModificadas });\r\n }\r\n }\r\n }\r\n\r\n handleSubmit = () => {\r\n const { id: periodoId } = this.props;\r\n const { materiasModificadas } = this.state;\r\n const params = { materiasModificadas, periodoId: +periodoId };\r\n const { history } = this.props;\r\n saveSubjects(params,\r\n {\r\n onSuccess: () => {\r\n createSuccessMessage('Materias del periodo guardado exitosamente');\r\n history.push(`/pages/periodos/edit/${periodoId}`);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar las materias del periodo');\r\n }\r\n },\r\n });\r\n }\r\n\r\n onCarreraChanges = (carrera) => {\r\n this.setState({ carrera });\r\n this.fetchSubjectList(carrera.value);\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n periodo,\r\n loaded,\r\n subjects,\r\n carrera,\r\n carreras,\r\n } = this.state;\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Materias del periodo\r\n

    \r\n

    \r\n {id ? 'Modifica ' : 'Ingresa '}\r\n la información de materias del periodo\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(loaded && subjects && periodo)\r\n ? (

    Cargando...

    )\r\n : (\r\n \r\n )\r\n }\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nInscriptionContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n sidebar: SidebarProps.isRequired,\r\n};\r\n\r\nexport default withRouter(connect(state => ({\r\n sidebar: state.sidebar,\r\n}))(InscriptionContainer));\r\n","const validate = (attrs = {\r\n horarios: [],\r\n}) => {\r\n const errors = {};\r\n\r\n if (!attrs.malla || !attrs.malla.value) {\r\n errors.malla = 'Debe seleccionar una malla';\r\n }\r\n\r\n if (!attrs.materia || !attrs.materia.value) {\r\n errors.materia = 'Debe seleccionar una materia';\r\n }\r\n\r\n if (!attrs.profesor || !attrs.profesor.value) {\r\n errors.profesor = 'Debe seleccionar un profesor';\r\n }\r\n\r\n if (!attrs.periodo || !attrs.periodo.value) {\r\n errors.periodo = 'Debe seleccionar un periodo';\r\n }\r\n\r\n if (attrs.horarios && attrs.horarios.length) {\r\n errors.horarios = [];\r\n attrs.horarios.filter(o => !o.deleted).forEach((obj, index) => {\r\n const error = {};\r\n\r\n if (!obj.tipoActividadAcademicaHorario || !obj.tipoActividadAcademicaHorario.value) {\r\n error.tipoActividadAcademicaHorario = 'Debe ingresar el tipo de actividad academica';\r\n }\r\n if (!obj.profesor || !obj.profesor.value) {\r\n error.profesor = 'Debe seleccionar un profesor';\r\n } else {\r\n const {\r\n profesor, profesorAuxiliar1, profesorAuxiliar2, profesorAuxiliar3,\r\n } = attrs;\r\n const profesorsAvailable = [\r\n profesor || {},\r\n profesorAuxiliar1 || {},\r\n profesorAuxiliar2 || {},\r\n profesorAuxiliar3 || {},\r\n ];\r\n\r\n if (!profesorsAvailable.some(p => p.value && p.value === obj.profesor.value)) {\r\n error.profesor = 'Debe seleccionar el profesor encaregado o auxiliar';\r\n }\r\n }\r\n if (!obj.dia || !obj.dia.value) {\r\n error.dia = 'Debe seleccionar un dia';\r\n }\r\n if (!obj.horaInicio) {\r\n error.horaInicio = 'Debe ingresar la hora';\r\n }\r\n if (!obj.horaFin) {\r\n error.horaFin = 'Debe ingresar la hora';\r\n }\r\n\r\n if (Object.keys(error).length) {\r\n errors.horarios[index] = error;\r\n }\r\n });\r\n }\r\n\r\n if (Object.keys(errors).length) {\r\n console.error(errors);\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n FieldArray,\r\n} from 'redux-form';\r\nimport {\r\n Badge,\r\n Container,\r\n Card,\r\n CardBody,\r\n Col,\r\n Button,\r\n Row,\r\n TabPane,\r\n TabContent,\r\n Nav,\r\n NavItem,\r\n} from 'reactstrap';\r\n\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport renderCheckBoxField from '../../../../shared/components/form/CheckBox';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport DataTable from '../../../../shared/components/DataTable';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\nimport PlaneamientoForm from '../../../Profesor/PlaneamientoForm/index';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validate';\r\n\r\nclass MateriaPeriodoForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onFilterChanges: PropTypes.func.isRequired,\r\n onChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n onGetAlumnosMateria: PropTypes.func.isRequired,\r\n onDownloadAlumnosMateriaNotas: PropTypes.func.isRequired,\r\n\r\n onAddSubjectsSchedule: PropTypes.func.isRequired,\r\n onDeleteSubjectSchedule: PropTypes.func.isRequired,\r\n\r\n onBack: PropTypes.func.isRequired,\r\n\r\n loading: PropTypes.bool.isRequired,\r\n editarAsistencias: PropTypes.bool.isRequired,\r\n tipoActividadAcademicaHorarios: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n\r\n submitting: PropTypes.bool,\r\n profesores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n materiaPeriodo: PropTypes.shape({}).isRequired,\r\n\r\n diasSemana: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n\r\n filters: PropTypes.shape({}).isRequired,\r\n horarios: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n loadingAlumnosMateria: PropTypes.bool.isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n totalItemsCount: PropTypes.number.isRequired,\r\n\r\n profesor: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar1: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar2: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n profesorAuxiliar3: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeTab: '1',\r\n };\r\n\r\n this.columns = ({\r\n calculatePPFromTasks,\r\n canEditTask,\r\n }) => {\r\n const cols = [\r\n {\r\n key: 'numeroDocumento',\r\n name: 'Nro documento',\r\n width: '120px',\r\n search: true,\r\n },\r\n {\r\n key: 'apellidoAlumno',\r\n name: 'Apellido',\r\n visible: false,\r\n search: true,\r\n },\r\n {\r\n key: 'nombreAlumno',\r\n name: 'Nombre',\r\n search: true,\r\n format: row => `${row.apellidoAlumno}, ${row.nombreAlumno}`.trim(),\r\n },\r\n { key: 'email', name: 'E-Mail' },\r\n ];\r\n\r\n return [\r\n ...cols,\r\n ...[\r\n {\r\n key: 'porcentajePP',\r\n name: '% PP',\r\n editable: !calculatePPFromTasks && canEditTask,\r\n type: 'number',\r\n min: 0,\r\n max: 100,\r\n width: '100px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajePP }) => (\r\n \r\n {porcentajePP}\r\n \r\n ),\r\n },\r\n {\r\n key: 'porcentajeAsistencia',\r\n name: '% Asistencia',\r\n type: 'number',\r\n min: '0',\r\n max: '100',\r\n width: '110px',\r\n className: 'text-center',\r\n inputStyle: () => this.inputStyle,\r\n format: ({ porcentajeAsistencia }) => (\r\n \r\n {Math.round(porcentajeAsistencia)}\r\n \r\n ),\r\n },\r\n {\r\n key: 'actions',\r\n name: 'Accion',\r\n width: '100px',\r\n visible: false,\r\n },\r\n ],\r\n ];\r\n };\r\n\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (inscription) => {\r\n this.editarNotas(inscription);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { onGetAlumnosMateria, filters: { pageSize } } = this.props;\r\n onGetAlumnosMateria(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { onGetAlumnosMateria, filters = { pageSize: 250 } } = this.props;\r\n onGetAlumnosMateria(1, filters.pageSize, filters);\r\n };\r\n\r\n toggle = (tab) => {\r\n const { onGetAlumnosMateria } = this.props;\r\n const { activeTab } = this.state;\r\n if (activeTab !== tab) {\r\n this.setState({ activeTab: tab });\r\n if (tab === '2') {\r\n onGetAlumnosMateria();\r\n }\r\n }\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n getProfesoresMateria = () => {\r\n const {\r\n profesor, profesorAuxiliar1, profesorAuxiliar2, profesorAuxiliar3,\r\n } = this.props;\r\n\r\n return [\r\n profesor || {},\r\n profesorAuxiliar1 || {},\r\n profesorAuxiliar2 || {},\r\n profesorAuxiliar3 || {},\r\n ].filter(p => p.value);\r\n }\r\n\r\n renderHorarios = ({\r\n fields = [],\r\n tipoActividadAcademicaHorarios = [],\r\n diasSemana = [],\r\n horarios = [],\r\n }) => {\r\n const {\r\n onAddSubjectsSchedule, onDeleteSubjectSchedule, onChangeText, onChangeSelect,\r\n } = this.props;\r\n\r\n const profesoresMateria = this.getProfesoresMateria();\r\n\r\n const showBtnAdd = () => {\r\n if (profesoresMateria.length === 0) {\r\n return (\r\n \r\n
    \r\n

    \r\n \r\n Debe seleccionar un profesor (Encargado o Auxiliar) para agregar los horarios.\r\n \r\n

    \r\n
    \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n onAddSubjectsSchedule()}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n {' '}\r\n Agregar\r\n \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

    Horario de clases

    \r\n \r\n {showBtnAdd()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fields.map((horario, index) => {\r\n if (!horarios[index]) {\r\n return null;\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
    #Tipo ActividadProfesorDíaAulaHora InicioHora Fin{' '}
    \r\n
    \r\n

    {index + 1}

    \r\n onChangeSelect({\r\n option: props, name: 'tipoActividadAcademicaHorario', index,\r\n })}\r\n options={tipoActividadAcademicaHorarios}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeSelect({ option: props, name: 'profesor', index })}\r\n options={profesoresMateria}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeSelect({ option: props, name: 'dia', index })}\r\n options={diasSemana}\r\n component={renderSelectField}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n
    \r\n onChangeText(v, index)}\r\n />\r\n
    \r\n
    \r\n onDeleteSubjectSchedule({ index })}\r\n size=\"sm\"\r\n outline\r\n color=\"danger\"\r\n style={{ marginBottom: '0px' }}\r\n className=\"font-weight-bold\"\r\n >\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n planeamientoForm = () => {\r\n const { materiaPeriodo } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n moveSection = () => {\r\n const { materiaPeriodo, history } = this.props;\r\n history.push(`/pages/periodos/subjects/edit/${materiaPeriodo.periodoId}/${materiaPeriodo.id}/move-section`);\r\n };\r\n\r\n render() {\r\n const { loading } = this.props;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onFilterChanges,\r\n onBack,\r\n onDownloadAlumnosMateriaNotas,\r\n profesores,\r\n materias,\r\n materiaPeriodo,\r\n horarios,\r\n diasSemana,\r\n tipoActividadAcademicaHorarios,\r\n editarAsistencias,\r\n loadingAlumnosMateria,\r\n items,\r\n totalItemsCount,\r\n filters,\r\n } = this.props;\r\n\r\n const { malla, periodo } = materiaPeriodo;\r\n\r\n const {\r\n activeTab,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    Datos de la materia por periodo
    \r\n
    \r\n \r\n \r\n
    \r\n Malla\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Periodo\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Materia\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Profesor Encargado\r\n
    \r\n onFilterChanges('profesor', 'profesorId', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar1', 'profesorAuxiliar1Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar2', 'profesorAuxiliar2Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Profesor Auxiliar\r\n
    \r\n onFilterChanges('profesorAuxiliar3', 'profesorAuxiliar3Id', v)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {' '}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Sección\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n {' '}\r\n Mover alumnos\r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n\r\n {/* */\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n loadingAlumnosMateria ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n <>\r\n \r\n
    \r\n \r\n  \r\n Descargar lista\r\n \r\n
    \r\n \r\n this.getGridActions(key)}\r\n onAutoSave={this.autoguardarNota}\r\n itemsToShow={items.length}\r\n page={1}\r\n pageSize={totalItemsCount}\r\n autoHideSearch={filters.autoHideSearch}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {this.planeamientoForm()}\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxMateriaPeriodoForm = reduxForm({\r\n form: 'MateriaPeriodoForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(MateriaPeriodoForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxMateriaPeriodoForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Spinner,\r\n} from 'reactstrap';\r\nimport MateriaPeriodoForm from './MateriaPeriodoForm';\r\nimport {\r\n get,\r\n save,\r\n fetchFormDatas,\r\n fetchSubjectsScheduleBySubjectPeriodId,\r\n downloadSubjectStudentsScore,\r\n getSubjectStudents,\r\n} from '../../../../redux/actions/materiaPeriodoActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\n\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\n\r\nclass MateriaPeriodoContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tipoActividadAcademicaHorarios: [],\r\n diasSemana: [],\r\n loading: false,\r\n horarios: [],\r\n horarioChanged: 0,\r\n loadingAlumnosMateria: false,\r\n items: [],\r\n totalItemsCount: 0,\r\n filters: {\r\n page: 1,\r\n pageSize: 20,\r\n numeroDocumento: '',\r\n nombreAlumno: '',\r\n apellidoAlumno: '',\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n this.updateSubjectsScheduleTable();\r\n }\r\n\r\n downloadAlumnosMateriaNotas = () => {\r\n const { id } = this.props;\r\n this.setState({ loadingAlumnosMateria: true });\r\n downloadSubjectStudentsScore({\r\n id,\r\n onSuccess: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createSuccessMessage('Lista descargada exitosamente');\r\n },\r\n onError: () => {\r\n this.setState({ loadingAlumnosMateria: false });\r\n createErrorMessage('Error al intentar descargar la lista de calificaciones alumnos');\r\n },\r\n });\r\n }\r\n\r\n updateAlumnosMateria = (page, pageSize, filters) => {\r\n const { id } = this.props;\r\n\r\n this.setState({\r\n loadingAlumnosMateria: true,\r\n filters: filters || {},\r\n });\r\n\r\n getSubjectStudents({\r\n filters,\r\n id,\r\n onSuccess: ({ materias: items }) => {\r\n this.setState({\r\n loadingAlumnosMateria: false,\r\n items,\r\n totalItemsCount: items.length,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n items: [],\r\n loadingAlumnosMateria: false,\r\n });\r\n createErrorMessage('Error al intentar cargar la lista de alumnos');\r\n },\r\n });\r\n }\r\n\r\n fetchCurrentRecord = () => {\r\n const { id, idPeriodo, history } = this.props;\r\n if (id) {\r\n get({\r\n id,\r\n onSuccess: (dto) => {\r\n this.setState({ materiaPeriodo: dto });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia periodo no existe');\r\n history.push(`/pages/periodos/edit/${idPeriodo}`);\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la materia periodo');\r\n }\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n materiaPeriodo: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n utilizaPorcentajePesoMateria: false,\r\n },\r\n });\r\n }\r\n }\r\n\r\n fetchDatasList = () => {\r\n fetchFormDatas({\r\n onSuccess: ({\r\n mallas,\r\n materias,\r\n periodos,\r\n profesores,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n }) => {\r\n this.setState({\r\n mallas,\r\n materias,\r\n periodos,\r\n profesores,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n });\r\n\r\n this.fetchCurrentRecord();\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n if (!values) return;\r\n const {\r\n id,\r\n materia,\r\n profesor,\r\n profesorAuxiliar1,\r\n profesorAuxiliar2,\r\n profesorAuxiliar3,\r\n materiaMallaId,\r\n malla,\r\n periodoId,\r\n horarios,\r\n utilizaPorcentajePesoMateria,\r\n editarAsistencias,\r\n seccion,\r\n } = values;\r\n // const { value: materiaPeriodoId } = materia;\r\n const { value: mallaId } = malla;\r\n const { value: materiaId } = materia;\r\n const { value: profesorId } = profesor;\r\n const { value: profesorAuxiliar1Id } = profesorAuxiliar1 || {};\r\n const { value: profesorAuxiliar2Id } = profesorAuxiliar2 || {};\r\n const { value: profesorAuxiliar3Id } = profesorAuxiliar3 || {};\r\n\r\n const params = {\r\n // ...values,\r\n id,\r\n materiaMallaId,\r\n mallaId,\r\n materiaId,\r\n profesorId,\r\n periodoId,\r\n profesorAuxiliar1Id,\r\n profesorAuxiliar2Id,\r\n profesorAuxiliar3Id,\r\n horarios,\r\n utilizaPorcentajePesoMateria,\r\n editarAsistencias,\r\n seccion,\r\n };\r\n const { history, idPeriodo } = this.props;\r\n save(params, {\r\n onSuccess: () => {\r\n createSuccessMessage('Materia por periodo guardada exitosamente');\r\n history.push(`/pages/periodos/edit/${idPeriodo}`);\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la materia periodo');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleAddSubjectsSchedule = () => {\r\n const { horarios = [] } = this.state;\r\n\r\n const newIndex = horarios.length === 0 ? 0 : (Math.max(...horarios.map(({ index }) => index)) + 1);\r\n\r\n this.setState({\r\n horarios: [\r\n ...horarios,\r\n {\r\n id: 0,\r\n index: newIndex,\r\n materiaPeriodo: '',\r\n profesor: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n dia: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n horaInicio: '00:00',\r\n horaFin: '00:00',\r\n aula: '',\r\n tipoActividadAcademicaHorario: {\r\n value: 0,\r\n label: '-',\r\n parentId: 0,\r\n item: null,\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n\r\n handleDeleteSubjectSchedule = ({ index }) => {\r\n const { horarios = [] } = this.state;\r\n const newArray = horarios.map(h => ({\r\n ...h,\r\n deleted: h.deleted || h.index === index,\r\n }));\r\n\r\n this.setState({ horarios: newArray });\r\n }\r\n\r\n updateSubjectsScheduleTable = () => {\r\n const { id } = this.props;\r\n\r\n if (!id) {\r\n this.setState({\r\n horarios: [],\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchSubjectsScheduleBySubjectPeriodId({\r\n subjectId: id,\r\n onSuccess: (horarios) => {\r\n this.setState({\r\n loading: false,\r\n horarios: horarios.map((h, index) => ({ ...h, index })),\r\n });\r\n },\r\n onError: (error) => {\r\n this.setState({ horarios: [], loading: false });\r\n if (error && error.status === 404) {\r\n createErrorMessage('La horario de clases no existe');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos del horario de clases');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleChangeText = (e, index) => {\r\n const { horarios } = this.state;\r\n\r\n const value = e.target.type === 'number' ? Number(e.target.value) : `${e.target.value}`.trim();\r\n\r\n const newHorarios = [...horarios];\r\n newHorarios[index] = {\r\n ...newHorarios[index],\r\n ...{\r\n [e.target.name.split('.')[1]]: value,\r\n },\r\n };\r\n\r\n this.setState({ horarios: newHorarios });\r\n };\r\n\r\n handleChangeSelect = ({ option, name, index }) => {\r\n this.setState({ loading: true });\r\n\r\n const { horarios } = this.state;\r\n const newHorarios = [...horarios];\r\n const data = {\r\n [name]: option,\r\n index,\r\n };\r\n\r\n newHorarios[index] = {\r\n ...newHorarios[index],\r\n ...data,\r\n };\r\n\r\n this.setState({\r\n horarios: newHorarios,\r\n loading: false,\r\n horarioChanged: new Date().getTime(),\r\n });\r\n };\r\n\r\n handleOnFilterChanges = (objectKey, idKey, item) => {\r\n const { materiaPeriodo } = this.state;\r\n\r\n this.setState({\r\n materiaPeriodo: {\r\n ...materiaPeriodo,\r\n [idKey]: item.value,\r\n [objectKey]: item,\r\n },\r\n });\r\n }\r\n\r\n showSpinner = () => (\r\n
    \r\n \r\n
    \r\n );\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n materiaPeriodo,\r\n profesores,\r\n mallas,\r\n periodos,\r\n materias,\r\n tipoActividadAcademicaHorarios,\r\n diasSemana,\r\n loading,\r\n horarios,\r\n horarioChanged,\r\n\r\n loadingAlumnosMateria,\r\n items,\r\n filters = { pageSize: 250 },\r\n totalItemsCount,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} materia periodo\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la materia periodo\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(profesores && materiaPeriodo)\r\n ? \r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nMateriaPeriodoContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n idPeriodo: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default MateriaPeriodoContainer;\r\n","const validate = (attrs = {}) => {\r\n const errors = {};\r\n if (!attrs.section || !attrs.section.value) {\r\n errors.section = 'Debe seleccionar una sección';\r\n }\r\n\r\n if (\r\n !attrs.editedStudentEnrollments\r\n || !attrs.editedStudentEnrollments.length\r\n || !attrs.editedStudentEnrollments.some(e => e.selected)) {\r\n errors.checkAll = 'Debe seleccionar un alumno';\r\n }\r\n\r\n if (Object.keys(errors).length) {\r\n console.error(errors);\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card, CardBody, Row, Col, Container, Badge, Label,\r\n} from 'reactstrap';\r\nimport TextBox from '../../../../shared/components/form/TextBox';\r\nimport renderCheckBoxField from '../../../../shared/components/form/CheckBox';\r\nimport renderSelectField from '../../../../shared/components/form/Select';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport setPropsAsInitialValues from '../../../../helpers/setPropsAsInitialValues';\r\nimport validate from './validateMoveSection';\r\n\r\nclass MoveSectionForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n onStudentEnrollmentChanges: PropTypes.func.isRequired,\r\n onCheckAllChanges: PropTypes.func.isRequired,\r\n handleFilterChangeText: PropTypes.func.isRequired,\r\n onChangeSelect: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n loading: PropTypes.bool,\r\n alumnoObj: PropTypes.shape({}),\r\n students: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n sections: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n filterValue: PropTypes.string,\r\n checkAll: PropTypes.bool,\r\n }\r\n\r\n static defaultProps = {\r\n submitting: false,\r\n loading: false,\r\n alumnoObj: {},\r\n filterValue: '*',\r\n checkAll: false,\r\n }\r\n\r\n groupBy = (xs, key) => xs.reduce((obj, x) => {\r\n const rv = obj;\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n\r\n\r\n getShowQuantities = () => (\r\n [{\r\n value: 1,\r\n description: 'Cantidad',\r\n checked: true,\r\n }]\r\n );\r\n\r\n getYears = (students) => {\r\n const datas = Object.entries(this.groupBy(students, 'year')).map(([year, data]) => ({ year, count: data.length }));\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n Años:\r\n {datas.map(data => (\r\n <>\r\n {data.year}:\r\n \r\n {data.count}\r\n \r\n {', '}\r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n loading,\r\n onStudentEnrollmentChanges,\r\n onCheckAllChanges,\r\n handleFilterChangeText,\r\n onChangeSelect,\r\n onBack,\r\n students = [],\r\n sections = [],\r\n filterValue,\r\n checkAll,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n {(\r\n <>\r\n \r\n
    \r\n
    \r\n Todos:\r\n \r\n {students.length}\r\n \r\n {' '}\r\n Seleccionado:\r\n \r\n {students.filter(a => a.selected).length}\r\n \r\n {' '}\r\n No Seleccionado:\r\n \r\n {students.filter(a => !a.selected).length}\r\n \r\n
    \r\n
    \r\n \r\n \r\n )}\r\n {this.getYears(students)}\r\n \r\n \r\n \r\n \r\n Filtrar alumnos:\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 ? \r\n : (\r\n
    \r\n \r\n \r\n \r\n
    \r\n Sección\r\n
    \r\n onChangeSelect(props)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n onCheckAllChanges(v)}\r\n />\r\n \r\n \r\n \r\n \r\n {students.map(s => (\r\n \r\n \r\n onStudentEnrollmentChanges(v, s)}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxAddInscriptionForm = reduxForm({\r\n form: 'MoveSectionForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(MoveSectionForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxAddInscriptionForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col, Container, Row, Badge,\r\n} from 'reactstrap';\r\nimport MoveSectionForm from './MoveSectionForm';\r\nimport {\r\n fetchStudentsBySubject,\r\n moveStudentSection,\r\n} from '../../../../redux/actions/studentSubjectsActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../../helpers/notification';\r\nimport LoadingSpinner from '../../../../shared/components/LoadingSpinner';\r\nimport Confirm from '../../../../shared/components/Confirm';\r\nimport debounce from '../../../../helpers/debounce';\r\n\r\nclass MoveSectionFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n filterValue: '',\r\n sortColumn: 'name',\r\n sortType: 'desc',\r\n inscripcion: null,\r\n students: [],\r\n sections: [],\r\n editedStudentEnrollments: [],\r\n checkAll: false,\r\n section: { value: 0 },\r\n };\r\n\r\n this.handleOnStudentChange = this.handleOnStudentChange.bind(this);\r\n this.debouncedHandleFilterChangeText = debounce(this.handleFilterChangeText, 500);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchFormDatas({});\r\n }\r\n\r\n fetchFormDatas = ({ filterValue = '' }) => {\r\n const { id: subjectId } = this.props;\r\n fetchStudentsBySubject({\r\n subjectId,\r\n onSuccess: ({ students = [], sections = [] }) => {\r\n this.setState({\r\n students,\r\n sections: sections.filter(s => s.value !== Number(subjectId)),\r\n loading: false,\r\n filterValue,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({\r\n loading: false,\r\n });\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const { section } = this.state;\r\n\r\n const { students = [] } = values;\r\n\r\n const inscripcionToMove = students\r\n .filter(a => a.selected)\r\n .map(a => ({\r\n inscriptionId: a.inscriptionId,\r\n }));\r\n\r\n if (inscripcionToMove.length === 0) {\r\n return;\r\n }\r\n\r\n const alumnosToShow = students\r\n .filter(a => a.selected)\r\n .map(({ doc, name }) => {\r\n const fullName = name.split(', ');\r\n const [firstName] = fullName[0].split(' ');\r\n const [lastName] = fullName[1].split(' ');\r\n\r\n return (\r\n
    \r\n \r\n {doc}\r\n \r\n {` ${firstName}, ${lastName}`}\r\n
    \r\n );\r\n });\r\n\r\n Confirm({\r\n title: 'Mover alumnos a sección',\r\n question: (\r\n \r\n {\r\n `¿Estás seguro que deseas mover estos alumnos(${inscripcionToMove.length}) la sección `\r\n }\r\n\r\n \r\n {section.label}\r\n \r\n ?.\r\n
    \r\n {alumnosToShow}\r\n
    \r\n
    ),\r\n yesLabel: 'Si, mover alumnos',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n moveStudentSection({\r\n subjectId: section.value,\r\n students: inscripcionToMove,\r\n }, {\r\n onSuccess: () => {\r\n createSuccessMessage('Los alumnos fueron cambiados de sección exitosamente');\r\n\r\n this.handleOnBack();\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar mover de sección');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n }\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnStudentChange = (value) => {\r\n this.setState({ section: value });\r\n }\r\n\r\n onCheckAllChanges = (evt) => {\r\n if (!evt.currentTarget) {\r\n return false;\r\n }\r\n\r\n const checkAll = evt.target.checked;\r\n\r\n const {\r\n editedStudentEnrollments,\r\n students,\r\n } = this.state;\r\n\r\n const newAlumnos = [...students];\r\n\r\n newAlumnos.forEach((stundent, index) => {\r\n newAlumnos[index] = {\r\n ...newAlumnos[index],\r\n selected: checkAll,\r\n changed: true,\r\n };\r\n\r\n const studentEnrollment = editedStudentEnrollments.find(i => i.studentId === stundent.studentId);\r\n if (!studentEnrollment) {\r\n const newData = {\r\n studentId: stundent.studentId,\r\n selected: checkAll,\r\n };\r\n\r\n editedStudentEnrollments[index] = {\r\n ...editedStudentEnrollments[index],\r\n ...newData,\r\n };\r\n }\r\n });\r\n\r\n this.setState({\r\n students: newAlumnos,\r\n editedStudentEnrollments,\r\n checkAll,\r\n });\r\n\r\n return true;\r\n }\r\n\r\n handleChangeSelect = section => this.setState({ section });\r\n\r\n onStudentEnrollmentChanges = (evt, student) => {\r\n if (!evt.currentTarget) {\r\n return false;\r\n }\r\n\r\n const id = student.inscriptionId;\r\n\r\n const {\r\n editedStudentEnrollments,\r\n students,\r\n } = this.state;\r\n\r\n const newAlumnos = [...students];\r\n\r\n const elementsIndex = newAlumnos.findIndex(s => s.inscriptionId === id);\r\n newAlumnos[elementsIndex] = {\r\n ...newAlumnos[elementsIndex],\r\n selected: !newAlumnos[elementsIndex].selected,\r\n changed: true,\r\n };\r\n\r\n const studentEnrollment = editedStudentEnrollments.find(i => i.inscriptionId === id);\r\n if (!studentEnrollment) {\r\n this.setState({\r\n students: newAlumnos,\r\n editedStudentEnrollments: [\r\n ...editedStudentEnrollments, {\r\n inscriptionId: id,\r\n selected: evt.target.checked,\r\n },\r\n ],\r\n });\r\n } else {\r\n studentEnrollment.selected = evt.target.checked;\r\n this.setState({\r\n students: newAlumnos,\r\n editedStudentEnrollments,\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n handleFilterChangeText = ({ target: { value } }) => {\r\n const { loading } = this.state;\r\n if (loading) {\r\n this.setState({\r\n filterValue: value,\r\n });\r\n return;\r\n }\r\n\r\n const { students = [] } = this.state;\r\n if (students.length === 0 && value) {\r\n this.fetchFormDatas({ loadStudents: true, filterValue: value });\r\n return;\r\n }\r\n\r\n this.setState({\r\n filterValue: value,\r\n });\r\n };\r\n\r\n transformText = (value = '') => `${value}`.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLowerCase();\r\n\r\n getAlumnos = () => {\r\n const {\r\n filterValue = '',\r\n sortColumn,\r\n sortType,\r\n students = [],\r\n } = this.state;\r\n\r\n const filter = this.transformText(filterValue);\r\n\r\n const result = students\r\n .filter(tma => (\r\n this.transformText(`${tma.doc}/${tma.year}`).includes(filter)\r\n || this.transformText(tma.name).includes(filter)\r\n || this.transformText(tma.email).includes(filter)\r\n ))\r\n .sort((a, b) => (\r\n sortType !== 'asc' ? a[sortColumn].localeCompare(b[sortColumn]) : b[sortColumn].localeCompare(a[sortColumn])\r\n ));\r\n\r\n return result;\r\n };\r\n\r\n onShowOnlyEnrolledChanges = (evt) => {\r\n if (!evt.currentTarget) {\r\n return false;\r\n }\r\n\r\n this.fetchFormDatas();\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const { history } = this.props;\r\n const {\r\n inscripcion,\r\n loading,\r\n filterValue,\r\n checkAll,\r\n editedStudentEnrollments = [],\r\n sections = [],\r\n section,\r\n } = this.state;\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n Seleccionar los alumnos de materia a ser movidos a otra sección\r\n

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nMoveSectionFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n idPeriodo: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default MoveSectionFormContainer;\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport {\r\n filter,\r\n remove,\r\n} from '../../redux/actions/mallaActions';\r\nimport Confirm from '../../shared/components/Confirm';\r\nimport { createErrorMessage, createSuccessMessage } from '../../helpers/notification';\r\n\r\nclass MallasContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n items: [],\r\n filters: { id: 20 },\r\n };\r\n this.columns = [\r\n {\r\n key: 'id',\r\n name: '# ',\r\n search: false,\r\n width: '80px',\r\n },\r\n {\r\n key: 'nombre',\r\n name: 'Nombre',\r\n search: false,\r\n },\r\n {\r\n key: 'carrera',\r\n name: 'Carrera',\r\n search: true,\r\n },\r\n {\r\n key: 'fechaVigencia',\r\n name: 'Fecha Vigencia',\r\n search: true,\r\n type: 'date',\r\n format: (row) => {\r\n const style = { dateStyle: 'short', timeStyle: 'medium' };\r\n return new Intl.DateTimeFormat('en-GB', style).format(new Date(row.fechaVigencia));\r\n },\r\n },\r\n {\r\n key: 'usarPorDefecto',\r\n name: 'Usar Por Defecto',\r\n search: false,\r\n format: row => (row.usarPorDefecto ? 'Si' : 'No'),\r\n },\r\n {\r\n key: 'activo',\r\n name: 'Activo',\r\n search: false,\r\n format: row => (row.activo ? 'Si' : 'No'),\r\n },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (malla) => {\r\n this.editMalla(malla);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (malla) => {\r\n this.handleDeleteMalla(malla);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n const { page, pageSize } = this.state;\r\n this.updateMallasTable(page, pageSize);\r\n }\r\n\r\n updateMallasTable = (page, pageSize, filters) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters: filters || {},\r\n });\r\n filter({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de mallas');\r\n },\r\n });\r\n }\r\n\r\n handleDeleteMalla = (malla) => {\r\n const name = `${malla.nombre} - ${malla.carrera}`;\r\n Confirm({\r\n title: 'Borrar malla',\r\n question: `Estás seguro que deseas eliminar la malla ${name}?`,\r\n yesLabel: 'Si, Borrar malla',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n remove(malla.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Malla borrada exitosamente');\r\n const { page, pageSize } = this.state;\r\n this.updateMallasTable(page, pageSize);\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El malla no existe');\r\n } else {\r\n createErrorMessage('Error al intentar borrar la malla');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n editMalla = (malla) => {\r\n const { history } = this.props;\r\n history.push(`/pages/mallas/edit/${malla.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateMallasTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateMallasTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateMallasTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Lista de mallas

    \r\n {false && (\r\n
    \r\n \r\n Agregar nueva malla\r\n \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n {loading ?

    Cargando...

    \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(MallasContainer);\r\n","import { apiGet, apiPost, apiDelete } from '../../api/index';\r\nimport { urlMallas } from '../../api/urls';\r\n\r\nexport function filter(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlMallas}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function get(id, callback) {\r\n return apiGet(`${urlMallas}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function save(obj, callback) {\r\n return apiPost(`${urlMallas}`, obj)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function remove(id, callback) {\r\n return apiDelete(`${urlMallas}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(params) {\r\n return apiGet(`${urlMallas}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchEditSubjectsFormData(periodoId, params) {\r\n return apiGet(`${urlMallas}/form_data_edit_subjects/${periodoId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\n\r\nexport function fetchAllSubjectsBySemesters(params) {\r\n return apiGet(`${urlMallas}/subjects_by_semesters/${params.periodoId}/${params.carreraId}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function saveSubjects(data, callback) {\r\n return apiPost(`${urlMallas}/save_subjects`, data)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Button, ButtonToolbar, Modal } from 'reactstrap';\r\nimport classNames from 'classnames';\r\nimport { RTLProps } from '../../prop-types/ReducerProps';\r\n\r\nclass ModalComponent extends PureComponent {\r\n static propTypes = {\r\n title: PropTypes.string,\r\n message: PropTypes.string,\r\n color: PropTypes.string.isRequired,\r\n colored: PropTypes.bool,\r\n header: PropTypes.bool,\r\n btn: PropTypes.string.isRequired,\r\n rtl: RTLProps.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n title: '',\r\n message: '',\r\n colored: false,\r\n header: false,\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n modal: false,\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n getIcon = (color) => {\r\n switch (color) {\r\n case 'primary':\r\n return ;\r\n case 'success':\r\n return ;\r\n case 'warning':\r\n return ;\r\n case 'danger':\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n }\r\n\r\n toggle() {\r\n this.setState(prevState => ({ modal: !prevState.modal }));\r\n }\r\n\r\n render() {\r\n const {\r\n color, btn, title, message, colored, header, rtl,\r\n } = this.props;\r\n const { modal } = this.state;\r\n\r\n const modalClass = classNames({\r\n 'modal-dialog--colored': colored,\r\n 'modal-dialog--header': header,\r\n });\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {message}\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 connect(state => ({\r\n rtl: state.rtl,\r\n}))(ModalComponent);\r\n","const validate = (values) => {\r\n const attrs = values || {};\r\n const errors = {};\r\n\r\n if (!attrs.nombre) {\r\n errors.nombre = 'Debe ingresar un nombre para la malla';\r\n }\r\n\r\n if (!attrs.carrera || !attrs.carrera.value) {\r\n errors.carrera = 'Debe seleccionar la carrera';\r\n }\r\n\r\n if (!attrs.fechaVigencia) {\r\n errors.fechaVigencia = 'Debe seleccionar la fecha de vigencia';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n Field,\r\n reduxForm,\r\n} from 'redux-form';\r\nimport {\r\n Card, CardBody, Col, Badge,\r\n} from 'reactstrap';\r\nimport renderSelectField from '../../../shared/components/form/Select';\r\nimport setPropsAsInitialValues from '../../../helpers/setPropsAsInitialValues';\r\nimport renderCheckBoxField from '../../../shared/components/form/CheckBox';\r\nimport DataTable from '../../../shared/components/DataTable';\r\nimport TextBox from '../../../shared/components/form/TextBox';\r\nimport DatePicker from '../../../shared/components/form/DatePicker';\r\nimport ModalForm from '../../../shared/components/form/Modal';\r\n// import MallaEditarMateria from './MateriaMalla/MateriaMallaForm';\r\n\r\nimport validate from './validate';\r\n\r\nclass MallaForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onBack: PropTypes.func.isRequired,\r\n handleDeleteMateriaMalla: PropTypes.func.isRequired,\r\n submitting: PropTypes.bool,\r\n\r\n id: PropTypes.number,\r\n carreras: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n materias: PropTypes.arrayOf(PropTypes.shape({})),\r\n carrera: PropTypes.shape({}),\r\n usarPorDefecto: PropTypes.bool,\r\n activo: PropTypes.bool,\r\n\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n static defaultProps = {\r\n id: 0,\r\n submitting: false,\r\n materias: [],\r\n carrera: {},\r\n usarPorDefecto: false,\r\n activo: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.editMateriaMalla = this.editMateriaMalla.bind(this);\r\n this.deleteMateriaMalla = this.deleteMateriaMalla.bind(this);\r\n\r\n this.state = {\r\n page: 1,\r\n pageSize: 100,\r\n totalItemsCount: 0,\r\n filters: { id: 20 },\r\n modal: true,\r\n };\r\n\r\n this.columns = [\r\n {\r\n key: 'semestreNroOrden',\r\n name: 'Semestre',\r\n search: false,\r\n width: '120px',\r\n className: 'text-center',\r\n format: row => (\r\n
    \r\n \r\n {` ${row.semestreNroOrden}º`}\r\n \r\n
    \r\n ),\r\n },\r\n {\r\n key: 'materia',\r\n name: 'Materia',\r\n search: false,\r\n format: row => `${row.codigoMateria} - ${row.materia}`,\r\n },\r\n {\r\n key: 'areaConocimiento',\r\n name: 'Area Conocimiento',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'horasLaboratorioSemestral',\r\n name: 'Horas Laboratorio Semestral',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'horasPracticaSemestral',\r\n name: 'Horas Practica Semestral',\r\n className: 'text-center',\r\n },\r\n {\r\n key: 'horasTeoriaSemestral',\r\n name: 'Horas Teoria Semestral',\r\n className: 'text-center',\r\n },\r\n { key: 'actions', name: 'Accion', width: '85px' },\r\n ];\r\n this.actions = [\r\n {\r\n key: 'edit',\r\n icon: ,\r\n callback: (materiaMalla) => {\r\n this.editMateriaMalla(materiaMalla);\r\n },\r\n },\r\n {\r\n key: 'delete',\r\n icon: ,\r\n callback: (materiaMalla) => {\r\n this.deleteMateriaMalla(materiaMalla);\r\n },\r\n },\r\n ];\r\n }\r\n\r\n agregarOquitarMaterias = (malla) => {\r\n if (malla) {\r\n const { id, history } = this.props;\r\n history.push(`/pages/mallas/edit/${id}/materias`);\r\n }\r\n };\r\n\r\n editMateriaMalla = (materiaMalla) => {\r\n if (materiaMalla) {\r\n const { id, history } = this.props;\r\n console.log(materiaMalla);\r\n this.setState({ modal: true });\r\n\r\n if (id === 111) {\r\n history.push(`/pages/mallas/subjects/edit/${id}/${materiaMalla.id}`);\r\n }\r\n }\r\n };\r\n\r\n deleteMateriaMalla = (materiaMalla) => {\r\n if (materiaMalla) {\r\n const { handleDeleteMateriaMalla } = this.props;\r\n handleDeleteMateriaMalla(materiaMalla);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, values);\r\n }\r\n };\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateSubjectsTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n handleOkModal = (e) => {\r\n console.log(e);\r\n\r\n this.toggle();\r\n }\r\n\r\n handleCancelModal = (e) => {\r\n console.log(e);\r\n\r\n this.toggle();\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({ modal: !prevState.modal }));\r\n }\r\n\r\n render() {\r\n const {\r\n submitting,\r\n handleSubmit,\r\n onBack,\r\n id,\r\n carreras,\r\n materias,\r\n usarPorDefecto,\r\n activo,\r\n } = this.props;\r\n\r\n const {\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n modal,\r\n } = this.state;\r\n\r\n const canAddMateriaMalla = false;\r\n\r\n return (\r\n \r\n \r\n \r\n {canAddMateriaMalla && (\r\n \r\n {''}\r\n \r\n )}\r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    Datos de la Malla
    \r\n
    \r\n \r\n \r\n
    \r\n Nombre\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n Carrera\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n\r\n \r\n\r\n
    \r\n Fecha Vigencia\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n {' '}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n {' '}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n {id && canAddMateriaMalla && (\r\n
    \r\n this.agregarOquitarMaterias({ id })}\r\n >\r\n Agregar / Quitar Materias\r\n \r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n
    \r\n )}\r\n
    \r\n Guardar\r\n \r\n Cancelar - Volver\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ReduxMallaForm = reduxForm({\r\n form: 'MallaForm',\r\n validate,\r\n enableReinitialize: true,\r\n})(MallaForm);\r\n\r\nexport default setPropsAsInitialValues(ReduxMallaForm);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n} from 'reactstrap';\r\n\r\nimport MallaForm from './MallaForm';\r\nimport {\r\n get,\r\n save,\r\n fetchFormDatas,\r\n} from '../../../redux/actions/mallaActions';\r\nimport {\r\n remove as removeMateriaMalla,\r\n} from '../../../redux/actions/materiaMallaActions';\r\nimport {\r\n createErrorMessage,\r\n createSuccessMessage,\r\n createWarningMessage,\r\n} from '../../../helpers/notification';\r\nimport Confirm from '../../../shared/components/Confirm';\r\n\r\nclass MallaFormContainer extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.handleOnFilterChange = this.handleOnFilterChange.bind(this);\r\n this.handleOnSubjectChange = this.handleOnSubjectChange.bind(this);\r\n this.handleDeleteMateriaMalla = this.handleDeleteMateriaMalla.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n this.fetchCurrentRecord();\r\n }\r\n\r\n fetchCurrentRecord = () => {\r\n const { id, history } = this.props;\r\n if (id) {\r\n get(id, {\r\n onSuccess: (dto) => {\r\n const malla = {\r\n ...dto,\r\n carrera: {\r\n value: dto.carreraId,\r\n label: dto.carrera,\r\n },\r\n };\r\n\r\n this.setState({ malla });\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('El malla no existe');\r\n history.push('/pages/mallas');\r\n } else {\r\n createErrorMessage('Error al intentar cargar los datos de la malla');\r\n }\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n malla: {\r\n id: 0,\r\n fecha: new Date().toISOString(),\r\n },\r\n });\r\n }\r\n }\r\n\r\n fetchDatasList = () => {\r\n fetchFormDatas({\r\n onSuccess: (d) => {\r\n this.setState({\r\n carreras: d.carreras,\r\n });\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n handleSubmit = (values) => {\r\n const { carrera: { value: carreraId } } = values;\r\n const params = {\r\n ...values,\r\n carreraId,\r\n };\r\n\r\n const { history } = this.props;\r\n save(params, {\r\n onSuccess: () => {\r\n createSuccessMessage('Malla guardada exitosamente');\r\n history.push('/pages/mallas');\r\n },\r\n onError: (error) => {\r\n if (error.message) {\r\n createWarningMessage(error.message);\r\n } else {\r\n createErrorMessage('Ocurió un error al intentar guardar la malla');\r\n }\r\n },\r\n });\r\n }\r\n\r\n handleDeleteMateriaMalla = (materiaMalla) => {\r\n const name = `${materiaMalla.materia}`;\r\n Confirm({\r\n title: 'Quitar materia de malla',\r\n question: `Estás seguro que deseas quitar la materia ${name} de esta malla?`,\r\n yesLabel: 'Si, Quitar',\r\n noLabel: 'No, Volver',\r\n onConfirm: () => {\r\n removeMateriaMalla(materiaMalla.id, {\r\n onSuccess: () => {\r\n createSuccessMessage('Materia quitada exitosamente');\r\n this.fetchDatasList();\r\n this.fetchCurrentRecord();\r\n },\r\n onError: (error) => {\r\n if (error && error.status === 404) {\r\n createErrorMessage('La materia no existe');\r\n } else {\r\n createErrorMessage('Error al intentar quitar la materia de la malla');\r\n }\r\n },\r\n });\r\n },\r\n });\r\n };\r\n\r\n handleOnBack = () => {\r\n const { history } = this.props;\r\n history.goBack();\r\n }\r\n\r\n handleOnFilterChange = (objectKey, idKey, value) => {\r\n const { malla } = this.state;\r\n this.setState({\r\n [idKey]: value.value,\r\n malla: { ...malla, [objectKey]: value },\r\n });\r\n }\r\n\r\n handleOnSubjectChange = (objectKey, idKey, value) => {\r\n const { malla } = this.state;\r\n const profesor = `${value.nombre} ${value.apellido}`;\r\n let { interventorId, interventor } = malla;\r\n\r\n if (!interventorId) {\r\n interventorId = value.usuarioId;\r\n interventor = { value: interventorId, label: profesor };\r\n }\r\n this.setState({\r\n [idKey]: value.value,\r\n malla: {\r\n ...malla,\r\n [objectKey]: value,\r\n profesor,\r\n interventor,\r\n interventorId,\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { id, history } = this.props;\r\n const {\r\n malla,\r\n carreras,\r\n } = this.state;\r\n return (\r\n \r\n \r\n \r\n

    \r\n {id ? 'Editar' : 'Nueva'} malla\r\n

    \r\n

    \r\n {id ? 'Modificar ' : 'Ingresa '}\r\n la información de la malla\r\n

    \r\n \r\n
    \r\n \r\n \r\n {!(carreras)\r\n ? (

    Cargando...

    )\r\n : (\r\n \r\n )\r\n }\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nMallaFormContainer.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default MallaFormContainer;\r\n","import {\r\n apiGet,\r\n apiPost,\r\n apiDelete,\r\n apiPut,\r\n} from '../../api/index';\r\nimport { urlMallas } from '../../api/urls';\r\n\r\nexport function filter(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlMallas}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function get(id, callback) {\r\n return apiGet(`${urlMallas}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function save(obj, callback) {\r\n return apiPost(`${urlMallas}`, obj)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function remove(id, callback) {\r\n return apiDelete(`${urlMallas}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(params) {\r\n return apiGet(`${urlMallas}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getProfesorSubjects(params) {\r\n return apiGet(`${urlMallas}/materias_profesor/0`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function AllSubjectsDashboardByStudent(params) {\r\n return apiGet(`${urlMallas}/materias-tablero-alumno`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function getSubjectStudents(params) {\r\n const filters = params ? params.filters || {} : {};\r\n return apiPut(`${urlMallas}/alumnos-materia`, params.id, filters)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Container, Row } from 'reactstrap';\r\nimport DataTable from '../../shared/components/DataTable';\r\nimport { fetchAllUAuditLog, fetchFormDatas } from '../../redux/actions/usersActions';\r\nimport { createErrorMessage } from '../../helpers/notification';\r\n\r\nclass AuditLogContainer extends PureComponent {\r\n static propTypes = {\r\n history: PropTypes.shape({}).isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n page: 1,\r\n pageSize: 25,\r\n totalItemsCount: 0,\r\n loading: true,\r\n auditTypes: [],\r\n items: [],\r\n filters: { id: 20 },\r\n };\r\n\r\n this.columns = [\r\n {\r\n key: 'id', name: '#', width: '60px', search: true, type: 'number',\r\n },\r\n {\r\n key: 'usuario', name: 'Usuario', search: true, width: '80px',\r\n },\r\n {\r\n key: 'tipo',\r\n name: 'Tipo',\r\n search: true,\r\n type: 'select',\r\n searchProps: {\r\n options: this.getAuditTypes,\r\n },\r\n },\r\n {\r\n key: 'fecha',\r\n name: 'Fecha',\r\n search: true,\r\n type: 'date',\r\n format: (row) => {\r\n const style = { dateStyle: 'short', timeStyle: 'medium' };\r\n return new Intl.DateTimeFormat('en-GB', style).format(new Date(row.fecha));\r\n },\r\n },\r\n {\r\n key: 'nombreTabla', name: 'Tabla', search: true,\r\n },\r\n {\r\n key: 'clavePrimaria', name: 'Clave Primaria', search: false,\r\n },\r\n {\r\n key: 'columnasAfectadas', name: 'Columnas Afectadas', search: false,\r\n },\r\n {\r\n key: 'valoresAnteriores', name: 'Valores Anteriores', search: false,\r\n },\r\n {\r\n key: 'valoresNuevos', name: 'Valores Nuevos', search: false,\r\n },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchDatasList();\r\n }\r\n\r\n updateTable = (page, pageSize, filters = {}) => {\r\n this.setState({\r\n loading: true,\r\n page,\r\n pageSize,\r\n filters,\r\n });\r\n fetchAllUAuditLog({\r\n pageInfo: {\r\n page,\r\n pageSize,\r\n filters,\r\n },\r\n onSuccess: (pageInfo) => {\r\n this.setState({\r\n loading: false,\r\n items: pageInfo.items,\r\n totalItemsCount: pageInfo.totalItemsCount,\r\n });\r\n },\r\n onError: () => {\r\n this.setState({ items: [], loading: false });\r\n createErrorMessage('Error al intentar cargar la lista de cambios');\r\n },\r\n });\r\n }\r\n\r\n fetchDatasList = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n fetchFormDatas({\r\n onSuccess: (data) => {\r\n this.setState({\r\n auditTypes: data.auditTypes,\r\n loading: false,\r\n });\r\n const { page, pageSize } = this.state;\r\n this.updateTable(page, pageSize);\r\n },\r\n onError: () => {\r\n createErrorMessage('Error al intentar cargar los datos requeridos');\r\n },\r\n });\r\n }\r\n\r\n getAuditTypes = () => {\r\n const { auditTypes } = this.state;\r\n\r\n return auditTypes || [];\r\n };\r\n\r\n showData = (data) => {\r\n const { history } = this.props;\r\n history.push(`/pages/users/show_audit_log/${data.id}`);\r\n };\r\n\r\n onChangePage = (page) => {\r\n if (page) {\r\n const { pageSize, filters } = this.state;\r\n this.updateTable(page, pageSize, filters);\r\n }\r\n };\r\n\r\n onDataTableSubmit = (values) => {\r\n if (values) {\r\n const { pageSize } = this.state;\r\n\r\n this.updateTable(1, pageSize, { ...values, tipo: values.tipo ? values.tipo.value : 0 });\r\n }\r\n };\r\n\r\n\r\n onDataTableClearFilters = () => {\r\n const { pageSize } = this.state;\r\n this.updateTable(1, pageSize, {});\r\n };\r\n\r\n getGridActions = (key) => {\r\n const actions = {\r\n actions: this.actions,\r\n };\r\n return actions[key];\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n items,\r\n page,\r\n pageSize,\r\n totalItemsCount,\r\n filters,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n

    Auditoría de cambios

    \r\n \r\n
    \r\n \r\n {loading ?

    Cargando...

    \r\n : (\r\n this.getGridActions(key)}\r\n onSubmit={this.onDataTableSubmit}\r\n onClearFilters={this.onDataTableClearFilters}\r\n initialValues={filters}\r\n enableReinitialize\r\n />\r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AuditLogContainer);\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport Layout from '../Layout/index';\r\nimport Bottombar from '../Layout/bottombar/Bottombar';\r\n\r\nimport MainWrapper from './MainWrapper';\r\n\r\nimport LogIn from '../LogIn/index';\r\nimport FirstLogIn from '../FirstLogIn/index';\r\nimport UsersContainer from '../Users/index';\r\nimport EditUser from '../Users/Edit/index';\r\nimport StudentsContainer from '../Students/Index';\r\nimport StudentData from '../Students/StudentData';\r\nimport StudentsDashboard from '../Students/Dashboard';\r\nimport EditStudent from '../Students/Edit/index';\r\nimport InscriptionForm from '../StudentSubjects/InscriptionForm/index';\r\nimport StudentSubjects from '../StudentSubjects';\r\nimport SubjectInscription from '../StudentSubjects/Inscription';\r\nimport ExamsContainer from '../Exams';\r\nimport MyExamsContainer from '../Exams/StudentExams';\r\nimport StudentExamInscription from '../Exams/StudentExamInscription';\r\n\r\nimport ExamInscription from '../Exams/ExamForm/InscripcionExamen';\r\nimport ExamAddInscription from '../Exams/ExamForm/InscripcionExamen/AddIndex';\r\n\r\nimport ExamForm from '../Exams/ExamForm';\r\nimport ShowFinalReport from '../Exams/ExamForm/ShowFinalReport';\r\nimport ShowRecuperatorioReport from '../Exams/ExamForm/ShowRecuperatorioReport';\r\nimport ShowAllReport from '../Exams/ExamForm/ShowAllReport';\r\nimport ExamplePageOne from '../Example/index';\r\nimport ExamplePageTwo from '../ExampleTwo/index';\r\n\r\nimport MateriasPeriodo from '../MateriasPeriodo';\r\nimport MateriaPeriodoForm from '../MateriasPeriodo/EditForm';\r\n\r\nimport ProfesorDashboard from '../Profesor/Dashboard';\r\nimport ProfesorSubjects from '../Profesor/index';\r\n\r\nimport AlumnosMateriaProfesor from '../Profesor/ProfessorData';\r\nimport ReporteInscripcion from '../ReporteInscripcion';\r\nimport ReporteAlumnosPorMaterias from '../ReporteAlumnosPorMateria';\r\nimport ReporteAlumnos from '../ReporteAlumnos';\r\nimport ReporteAcademicStatus from '../ReporteAlumnos/AcademicStatus/index';\r\n\r\nimport PeriodoContainer from '../Periodos';\r\nimport PeriodoForm from '../Periodos/PeriodoForm';\r\nimport PeriodoEditarMaterias from '../Periodos/PeriodoForm/EditarMaterias';\r\nimport PeriodoEditarMateria from '../Periodos/PeriodoForm/MateriaPeriodo';\r\nimport MoveSection from '../Periodos/PeriodoForm/MateriaPeriodo/MoveSectionIndex';\r\n\r\nimport MallaContainer from '../Mallas';\r\nimport MallaForm from '../Mallas/MallaForm';\r\n\r\nimport AuditLogContainer from '../AuditLog';\r\nimport { getCurrentUser } from '../../helpers/storage';\r\n\r\nconst getUrlId = (props) => {\r\n const { match: { params: { id } } } = props;\r\n return id;\r\n};\r\nconst getUrlIdDetail = (props) => {\r\n const { match: { params: { idDetail } } } = props;\r\n return idDetail;\r\n};\r\n\r\nconst Pages = () => (\r\n \r\n \r\n } />\r\n } />\r\n \r\n }\r\n />\r\n \r\n }\r\n />\r\n \r\n } />\r\n } />\r\n\r\n \r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n \r\n }\r\n />\r\n\r\n \r\n } />\r\n } />\r\n\r\n }\r\n />\r\n }\r\n />\r\n\r\n }\r\n />\r\n\r\n }\r\n />\r\n \r\n \r\n \r\n } />\r\n }\r\n />\r\n \r\n } />\r\n } />\r\n \r\n }\r\n />\r\n \r\n }\r\n />\r\n }\r\n />\r\n\r\n \r\n } />\r\n } />\r\n { /* */}\r\n { /* } */}\r\n { /* /> */}\r\n\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n);\r\n\r\nconst { publicSettings = {} } = getCurrentUser();\r\n\r\nconst wrappedRoutes = props => (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n);\r\n\r\nconst Router = props => (\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 Router;\r\n","import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport App from './containers/App/App';\r\n\r\nrender(\r\n ,\r\n document.getElementById('root'),\r\n);\r\n","import {\r\n apiGet, apiPost, apiDelete, apiUploadPost, apiDownload,\r\n} from '../../api/index';\r\nimport { urlUsers } from '../../api/urls';\r\n\r\nexport const CREATE_NEW_USER = 'CREATE_NEW_USER';\r\nexport const SET_USER_VALUE = 'SET_USER_VALUE';\r\nexport const FETCH_USER = 'FETCH_USER';\r\nexport const FETCH_USER_LOADING = 'FETCH_USER_LOADING';\r\nexport const FETCH_USER_SUCCESS = 'FETCH_USER_SUCCESS';\r\nexport const FETCH_USER_FAILED = 'FETCH_USER_FAILED';\r\n\r\nexport const POST_USER_LOADING = 'POST_USER_LOADING';\r\nexport const POST_USER_SUCCESS = 'POST_USER_SUCCESS';\r\nexport const POST_USER_FAILED = 'POST_USER_FAILED';\r\n\r\nexport const setUserValue = values => ({ type: SET_USER_VALUE, payload: values });\r\nexport const fetchUserLoading = () => ({ type: FETCH_USER_LOADING });\r\nexport const fetchUserSuccess = user => ({ type: FETCH_USER_SUCCESS, payload: user });\r\nexport const fetchUserFailed = error => ({ type: FETCH_USER_FAILED, payload: error });\r\n// export const createNewUser = () => ({ type: CREATE_NEW_USER });\r\n\r\nexport const postUserLoading = () => ({ type: POST_USER_LOADING });\r\nexport const postUserSuccess = user => ({ type: POST_USER_SUCCESS, payload: user });\r\nexport const postUserFailed = error => ({ type: POST_USER_FAILED, payload: error });\r\n\r\nexport function fetchUser(id, callback) {\r\n return apiGet(`${urlUsers}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function saveUser(user, callback) {\r\n return apiPost(`${urlUsers}`, user)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function savePhoto({\r\n id, files, onSuccess, onError,\r\n}) {\r\n return apiUploadPost(`${urlUsers}/${id}/photo`, files)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function fetchPhoto({ id, onSuccess, onError }) {\r\n return apiDownload(`${urlUsers}/${id}/photo`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n\r\n if (onSuccess) onSuccess(res);\r\n\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (onError) onError(error);\r\n });\r\n}\r\n\r\nexport function deleteUser(id, callback) {\r\n return apiDelete(`${urlUsers}/${id}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function resetUserPassword(email, callback) {\r\n return apiGet(`${urlUsers}/reset_password/${email}`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (callback && callback.onSuccess) callback.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(params) {\r\n return apiGet(`${urlUsers}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","// import { useHistory } from 'react-router-dom';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { apiGet, apiPost } from '../../api/index';\r\nimport { urlUsers } from '../../api/urls';\r\n\r\nconst currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\n// const history = useHistory();\r\n\r\nexport const SET_LOGIN_VALUE = 'SET_LOGIN_VALUE';\r\nexport const LOGIN_LOADING = 'LOGIN_LOADING';\r\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\r\nexport const LOGIN_FAILED = 'LOGIN_FAILED';\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const CHANGE_USER_VIEW_AS = 'CHANGE_USER_VIEW_AS';\r\n\r\nexport const loginLoading = () => ({ type: LOGIN_LOADING });\r\nexport const loginSuccess = user => ({ type: LOGIN_SUCCESS, payload: user });\r\nexport const loginFailed = error => ({ type: LOGIN_FAILED, payload: error });\r\n\r\nexport const userLoggedOut = () => ({ type: LOGOUT });\r\nexport const resetView = () => ({ type: CHANGE_USER_VIEW_AS, value: 0 });\r\n\r\nconst getLoginData = () => JSON.parse(localStorage.getItem('currentUser')) || {};\r\n\r\nconst storeUserLogin = (user) => {\r\n const loginData = { ...user, isAuthenticated: true };\r\n localStorage.setItem('currentUser', JSON.stringify(loginData));\r\n currentUserSubject.next(loginData);\r\n return loginData;\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n // Clear the login data\r\n localStorage.removeItem('currentUser');\r\n currentUserSubject.next(null);\r\n dispatch(userLoggedOut());\r\n dispatch(resetView());\r\n};\r\n\r\nexport function login(data, callback) {\r\n return (dispatch) => {\r\n dispatch(loginLoading());\r\n apiPost(`${urlUsers}/login`, data)\r\n .then((response) => {\r\n if (response.error) {\r\n throw (response.error);\r\n }\r\n\r\n storeUserLogin(response);\r\n if (response.firstLogin && callback && callback.onFirstLogin) {\r\n callback.onFirstLogin(response);\r\n } else if (callback && callback.onSuccess) {\r\n dispatch(loginSuccess(getLoginData()));\r\n callback.onSuccess(response);\r\n }\r\n return response;\r\n })\r\n .catch((error) => {\r\n dispatch(loginFailed(error));\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function firstLogin(values, callback) {\r\n return (dispatch) => {\r\n dispatch(loginLoading());\r\n const currentUser = JSON.parse(localStorage.getItem('currentUser')) || {};\r\n const data = { ...values, email: currentUser.email };\r\n apiPost(`${urlUsers}/set_new_password`, data)\r\n .then((response) => {\r\n if (response.error) {\r\n throw (response.error);\r\n }\r\n storeUserLogin(response);\r\n dispatch(loginSuccess(getLoginData()));\r\n if (callback && callback.onSuccess) callback.onSuccess(response);\r\n return response;\r\n })\r\n .catch((error) => {\r\n dispatch(loginFailed(error));\r\n if (callback && callback.onError) callback.onError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function verifyUserToken(callback) {\r\n return (dispatch) => {\r\n // dispatch(loginLoading());\r\n apiGet(`${urlUsers}/get_login_status`)\r\n .then((response) => {\r\n if (response.error) {\r\n throw (response.error);\r\n }\r\n dispatch(loginSuccess(getLoginData()));\r\n if (callback && callback.onSuccess) callback.onSuccess(response);\r\n return response;\r\n })\r\n .catch((error) => {\r\n dispatch(logout(error));\r\n if (callback && callback.onError) callback.onError(error);\r\n // throw error;\r\n });\r\n };\r\n}\r\n","export const CHANGE_SIDEBAR_VISIBILITY = 'CHANGE_SIDEBAR_VISIBILITY';\r\nexport const CHANGE_MOBILE_SIDEBAR_VISIBILITY = 'CHANGE_MOBILE_SIDEBAR_VISIBILITY';\r\nexport const CHANGE_USER_VIEW_AS = 'CHANGE_USER_VIEW_AS';\r\n\r\nexport function changeSidebarVisibility() {\r\n return {\r\n type: CHANGE_SIDEBAR_VISIBILITY,\r\n };\r\n}\r\n\r\nexport function changeMobileSidebarVisibility() {\r\n return {\r\n type: CHANGE_MOBILE_SIDEBAR_VISIBILITY,\r\n };\r\n}\r\n\r\nexport function changeUserViewAs(userType) {\r\n return {\r\n type: CHANGE_USER_VIEW_AS,\r\n value: userType,\r\n };\r\n}\r\n","import { apiPost, apiGet } from '../../api/index';\r\nimport { urlUsers } from '../../api/urls';\r\n\r\nexport const FETCH_USERS_LOADING = 'FETCH_USERS_LOADING';\r\nexport const FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS';\r\nexport const FETCH_USERS_FAILED = 'FETCH_USERS_FAILED';\r\n\r\nexport const fetchUsersLoading = () => ({ type: FETCH_USERS_LOADING });\r\nexport const fetchUsersSuccess = users => ({ type: FETCH_USERS_SUCCESS, payload: users });\r\nexport const fetchUsersFailed = error => ({ type: FETCH_USERS_FAILED, payload: error });\r\n\r\nexport function fetchUsers(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlUsers}/all`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllUsers(params) {\r\n return apiGet(`${urlUsers}/all`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchAllUAuditLog(params) {\r\n const pageInfo = params && params.pageInfo\r\n ? params.pageInfo\r\n : { page: 1, pageSize: 15 };\r\n return apiPost(`${urlUsers}/all_auditlog`, pageInfo)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n\r\nexport function fetchFormDatas(params) {\r\n return apiGet(`${urlUsers}/form_data`)\r\n .then((res) => {\r\n if (res.error) {\r\n throw (res.error);\r\n }\r\n if (params && params.onSuccess) params.onSuccess(res);\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (params && params.onError) params.onError(error);\r\n });\r\n}\r\n","import {\r\n CHANGE_THEME_TO_DARK,\r\n CHANGE_THEME_TO_LIGHT,\r\n} from '../actions/themeActions';\r\n\r\nconst initialState = {\r\n className: 'theme-dark',\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case CHANGE_THEME_TO_DARK:\r\n return { className: 'theme-dark' };\r\n case CHANGE_THEME_TO_LIGHT:\r\n return { className: 'theme-light' };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n CHANGE_SIDEBAR_VISIBILITY,\r\n CHANGE_MOBILE_SIDEBAR_VISIBILITY,\r\n CHANGE_USER_VIEW_AS,\r\n} from '../actions/sidebarActions';\r\n\r\nconst user = JSON.parse(localStorage.getItem('currentUser')) || {};\r\nconst viewPageAs = Number(localStorage.getItem('viewPageAs') || '0');\r\nlet defaultView = 0;\r\nif (user.esAlumno) {\r\n defaultView = 0;\r\n} else if (user.esProfesor) {\r\n defaultView = 1;\r\n} else if (user.esFuncionario) {\r\n defaultView = 2;\r\n} else if (user.esFuncionario) {\r\n defaultView = 3;\r\n}\r\n\r\nconst initialState = {\r\n show: false,\r\n collapse: false,\r\n viewPageAs: user.isAuthenticated ? viewPageAs || defaultView : defaultView,\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case CHANGE_SIDEBAR_VISIBILITY:\r\n return { ...state, collapse: !state.collapse };\r\n case CHANGE_MOBILE_SIDEBAR_VISIBILITY:\r\n return { ...state, show: !state.show };\r\n case CHANGE_USER_VIEW_AS:\r\n localStorage.setItem('viewPageAs', action.value);\r\n return { ...state, viewPageAs: action.value };\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const CHANGE_DIRECTION_TO_LTR = 'CHANGE_DIRECTION_TO_LTR';\nexport const CHANGE_DIRECTION_TO_RTL = 'CHANGE_DIRECTION_TO_RTL';\n\nexport function changeDirectionToLTR() {\n return {\n type: CHANGE_DIRECTION_TO_LTR,\n };\n}\n\nexport function changeDirectionToRTL() {\n return {\n type: CHANGE_DIRECTION_TO_RTL,\n };\n}\n","import {\n CHANGE_DIRECTION_TO_LTR,\n CHANGE_DIRECTION_TO_RTL,\n} from '../actions/rtlActions';\n\nconst initialState = {\n direction: 'ltr',\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case CHANGE_DIRECTION_TO_LTR:\n return { direction: 'ltr' };\n case CHANGE_DIRECTION_TO_RTL:\n return { direction: 'rtl' };\n default:\n return state;\n }\n}\n","import {\r\n SET_LOGIN_VALUE,\r\n LOGIN_LOADING,\r\n LOGIN_SUCCESS,\r\n LOGIN_FAILED,\r\n LOGOUT,\r\n} from '../actions/loginActions';\r\n\r\nconst initialState = {\r\n loading: false,\r\n isAuthenticated: false,\r\n email: 'admin@uniedu.py',\r\n login: {\r\n email: 'admin@uniedu.py',\r\n },\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n switch (action.type) {\r\n case SET_LOGIN_VALUE:\r\n return { ...state, ...action.payload };\r\n case LOGIN_LOADING:\r\n return { ...state, loading: true };\r\n case LOGIN_SUCCESS:\r\n return { ...state, ...action.payload, loading: false };\r\n case LOGIN_FAILED:\r\n return { ...initialState };\r\n case LOGOUT:\r\n return { ...initialState };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const getLoginData = state => state.login;\r\nexport const getLoginStatus = state => state.login.loading;\r\nexport const getLoginError = state => state.login.error;\r\n","// import { handleActions } from 'redux-actions';\r\nimport {\r\n SET_USER_VALUE,\r\n FETCH_USER_LOADING,\r\n FETCH_USER_SUCCESS,\r\n FETCH_USER_FAILED,\r\n POST_USER_LOADING,\r\n POST_USER_SUCCESS,\r\n POST_USER_FAILED,\r\n CREATE_NEW_USER,\r\n} from '../actions/userActions';\r\n\r\nconst initialValue = {\r\n loading: false,\r\n};\r\n\r\n// const users = handleActions({\r\n// [SET_USER_VALUE]: (state, action) => ({ ...state, ...action.payload }),\r\n// [FETCH_USER]: (state, action) => ({ ...action.payload }),\r\n// }, initialValue);\r\n\r\n// export default users;\r\n\r\nexport default function (state = initialValue, action) {\r\n switch (action.type) {\r\n case CREATE_NEW_USER:\r\n return { ...initialValue };\r\n case SET_USER_VALUE:\r\n return { ...state, ...action.payload };\r\n // FETCH USER\r\n case FETCH_USER_LOADING:\r\n return { ...state, loading: true };\r\n case FETCH_USER_SUCCESS:\r\n return { ...state, loading: false, ...action.payload };\r\n case FETCH_USER_FAILED:\r\n return { ...state, loading: false, error: action.payload };\r\n // POST USER\r\n case POST_USER_LOADING:\r\n return { ...state, loading: true };\r\n case POST_USER_SUCCESS:\r\n return { ...state, loading: false, ...action.payload };\r\n case POST_USER_FAILED:\r\n return { ...state, loading: false, error: action.payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const getUser = state => state.user;\r\nexport const getUserStatus = state => state.user.loading;\r\nexport const getUserError = state => state.user.error;\r\n","import {\r\n FETCH_USERS_LOADING,\r\n FETCH_USERS_SUCCESS,\r\n FETCH_USERS_FAILED,\r\n} from '../actions/usersActions';\r\n\r\nconst initialValue = {\r\n loading: false,\r\n users: [],\r\n};\r\n\r\nexport default function (state = initialValue, action) {\r\n switch (action.type) {\r\n case FETCH_USERS_LOADING:\r\n return { ...state, loading: true };\r\n case FETCH_USERS_SUCCESS:\r\n return { ...state, loading: false, users: action.payload };\r\n case FETCH_USERS_FAILED:\r\n return { ...state, loading: false, error: action.payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const getUsers = state => state.users.users;\r\nexport const getUsersStatus = state => state.users.loading;\r\nexport const getUsersError = state => state.users.error;\r\n","import {\r\n combineReducers,\r\n createStore,\r\n applyMiddleware,\r\n} from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport * as reducers from '../../redux/reducers/index';\r\nimport { LOGOUT } from '../../redux/actions/loginActions';\r\n\r\nconst rootReducer = (state, action) => {\r\n const newState = action.type === LOGOUT\r\n ? {\r\n theme: state.theme,\r\n sidebar: state.sidebar,\r\n rtl: state.rtl,\r\n } : state;\r\n return combineReducers(reducers)(newState, action);\r\n};\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n {},\r\n // composeWithDevTools(applyMiddleware(promiseMiddleware)),\r\n composeWithDevTools(applyMiddleware(thunk)),\r\n);\r\n\r\nexport default store;\r\n","export const CHANGE_THEME_TO_DARK = 'CHANGE_THEME_TO_DARK';\r\nexport const CHANGE_THEME_TO_LIGHT = 'CHANGE_THEME_TO_LIGHT';\r\n\r\nexport function changeThemeToDark() {\r\n return {\r\n type: CHANGE_THEME_TO_DARK,\r\n };\r\n}\r\n\r\nexport function changeThemeToLight() {\r\n return {\r\n type: CHANGE_THEME_TO_LIGHT,\r\n };\r\n}\r\n"],"sourceRoot":""}