{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/services/tasks.js","webpack:///./src/config/kaizen-copilot-config.js","webpack:///./src/store/modules/kaizenCopilot.js","webpack:///./src/assets/svg/no-data-icon.svg","webpack:///./src/assets/svg/no-data-icon.svg?31ab","webpack:///./src/services/binaryDevelopments.js","webpack:///./src/assets/svg/info-circle-icon.svg","webpack:///./src/assets/svg/info-circle-icon.svg?1014","webpack:///./src/store/modules/objectDetection.js","webpack:///./src/store/modules/organizations.js","webpack:///./src/config/device-config.js","webpack:///./src/service/http/httpAuthFunction.js","webpack:///./src/service/http/httpCrudFunction.js","webpack:///./src/service/http/httpFunction.js","webpack:///./src/service/httpClient.js","webpack:///./src/router/routes/labeler.js","webpack:///./src/store/modules/telemetry.js","webpack:///./src/store/modules/fcm.js","webpack:///./src/store/modules/index.js","webpack:///./src/services/organization.js","webpack:///./src/router/routes/index.js","webpack:///./src/router/routes/user.js","webpack:///./src/store/modules/taskObjects.js","webpack:///./src/store/getters.js","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/index.js","webpack:///./src/router/routes sync nonrecursive \\.js$","webpack:///./src/services/taskObjectsMarking.js","webpack:///./src/config/step-time-config.js","webpack:///./src/store/modules/allTasks.js","webpack:///./src/services/virtualTasks.js","webpack:///./src/store/modules/virtualTasks.js","webpack:///./src/components/shared/Helpers/dateHelper.js","webpack:///./src/utils/device.js","webpack:///./src/assets/svg/grid-icon.svg","webpack:///./src/assets/svg/grid-icon.svg?a7bc","webpack:///./src/config/toast-config.js","webpack:///./src/App.vue","webpack:///./src/components/core/Loading.vue","webpack:///./src/components/core/Loading.vue?3baa","webpack:///./src/App.vue?6697","webpack:///./src/plugins/vue-tour-setup.js","webpack:///./src/components/shared/Components/CustomIcon.vue","webpack:///./src/assets/svg/index.js","webpack:///./src/components/shared/Components/CustomIcon.vue?2626","webpack:///./src/directives/clickOutside.js","webpack:///./src/config/custom-icons-config.js","webpack:///./src/directives/cdnDirectives.js","webpack:///./src/components/user-panel/pages/analytics/Charts/HighCharts.js","webpack:///./src/main.js","webpack:///./src/assets/svg/offline-internet-icon.svg","webpack:///./src/assets/svg/offline-internet-icon.svg?ed06","webpack:///./src/services/featureControl.js","webpack:///./src/store/modules/featureControl.js","webpack:///./src/utils/auth.js","webpack:///./src/services/device.js","webpack:///./src/config/training-status-config.js","webpack:///./src/services/auth.js","webpack:///./src/config/fcm-config.js","webpack:///./src/services/baseUrl.js","webpack:///./src/config/task-steps-objects.js","webpack:///./src/components/core/Loading.vue?cd5d","webpack:///./src/services/archivedCycle.js","webpack:///./src/store/modules/archivedCycles.js","webpack:///./src/constants/cdnConstants.js","webpack:///./src/router/routes/auth.js","webpack:///./src/components/admin-panel/pages/EventNotification/config.js","webpack:///./src/utils/fcm.js","webpack:///./src/services/telemetry.js","webpack:///./src/store/modules/users.js","webpack:///./src/services/user.js","webpack:///./src/config/long-running-task-config.js","webpack:///./src/store/modules/binaryDevelopments.js","webpack:///./src/services/fcm.js","webpack:///./src/store/mutation-types.js","webpack:///./src/router/index.js","webpack:///./src/assets/svg/region-icon.svg","webpack:///./src/assets/svg/region-icon.svg?7a3d","webpack:///./src/services/eventNotification.js","webpack:///./src/services/3dPlaneEquation.js","webpack:///./src/services/s3.js","webpack:///./src/services/barcode.js","webpack:///./src/App.vue?ee6e","webpack:///./src/config/firebase-config.js","webpack:///./src/config/task-edit-modes-config.js","webpack:///./src/utils/task.js","webpack:///./src/utils/barcode.js","webpack:///./src/store/modules/barcode.js","webpack:///./src/services/config.js","webpack:///./src/utils/upload.js","webpack:///./src/service/http/httpRequestConfig.js","webpack:///./src/config/drawer-items-config.js","webpack:///./src/config/features-config.js","webpack:///./src/utils/error.js","webpack:///./src/config/auth-config.js","webpack:///./src/store/modules/auth.js","webpack:///./src/store/modules/mainProcess.js","webpack:///./src/store/modules/annotation.js","webpack:///./src/config/color-config.js","webpack:///./src/router/routes/admin.js","webpack:///./src/config/video-type-config.js","webpack:///./src/assets/svg sync nonrecursive \\.svg$","webpack:///./src/store/modules sync nonrecursive \\.js$","webpack:///./src/services/remoteDevices.js","webpack:///./src/store/modules/remoteDevice.js","webpack:///./src/services/awsLambdaToken.js","webpack:///./src/store/modules/awsLambdaToken.js","webpack:///./src/services/videos.js","webpack:///./src/mixins/msalHelper.js","webpack:///./src/services/index.js","webpack:///./src/config/date-format-config.js","webpack:///./src/services/modelTypes.js","webpack:///./src/config/cycle-type-config.js","webpack:///./src/store/modules/roles.js","webpack:///./src/services/modelVersions.js","webpack:///./src/store/modules/modelVersions.js","webpack:///./src/utils/videos.js","webpack:///./src/store/modules/videos.js","webpack:///./src/assets/svg/deployment-icon.svg","webpack:///./src/assets/svg/deployment-icon.svg?1c38","webpack:///./src/store/modules/devices.js","webpack:///./src/config/roles-config.js","webpack:///./src/utils/modelTypes.js","webpack:///./src/components/shared/Helpers/arrayHelper.js","webpack:///./src/store/modules/modelTypes.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","fetchTasks","async","spinner","ApiHelper","fetchOrganizationTasks","queryParam","fetchAllTaskAdminPanel","query","cloneTasks","payload","post","fetchTrainedTasksByStatus","status","fetchTaskDetailsNew","taskId","historyId","url","fetchTaskDetails","addTask","fetchTaskStatus","updateTask","patch","deleteTask","is_deleted","fetchTaskObjects","fetchTaskPlaneObjects","addTaskObject","addPlaneObject","put","id","deletePlaneObject","remove","createNewPlane","updateTaskObject","objectId","deleteTaskObject","fetchTaskObjectRules","createTaskObjectRules","deleteTaskObjectRules","params","deleteMultipleObjects","updateTaskObjectDetectionRule","ruleId","updateTrainedTask","stopTrainingOfTask","updateCloneTask","getTaskStaticObjectList","getProjectorRegions","getTaskStepMediaObjects","patchTaskLastUpdate","createRectificationSteps","fetchedRectificationSteps","deleteRectificationStep","kaizenOptions","retrievalAugmentedOptions","extras","examples","items","limitations","state","messages","currentKaizenOption","selectedSheet","kaizenExtras","getters","currentMessageIndex","isRetrievalAugmented","kaizenExamples","kaizenLimitations","actions","addMessage","commit","types","SET_MESSAGES","addMessageToSpecificIndex","is_advisor","temp","caption","setCurrentKaizenOption","SET_CURRENT_KAIZEN_OPTION","setSelectedSheet","SET_SELECTED_SHEET","updateKaizenExamples","deepClone","SET_KAIZEN_EXTRAS","mutations","width","height","viewBox","_createElementVNode","fill","_hoisted_2","_createElementBlock","_hoisted_1","_hoisted_3","__exports__","render","getPreviousReleases","apiHelper","currentPage","downloadBinaries","running_environment","branch","version_number","isLatestBranch","getLatestDeployment","env","getLatestDeployableBranch","deleteBranchFromAWS","moveBranchToDev","version","environment","abandonBranch","xmlns","class","_hoisted_4","toast","useToast","loadingImages","imagesForAnnotation","totalImagesForAnnotation","prevPageLastImageObj","prevGroups","prevPolygons","dispatch","SET_ANNOTATION_IMAGES_LOADING","TaskObjectService","getObjects","SET_IMAGES_FOR_ANNOTATION","results","SET_TOTAL_ANNOTATION_IMAGES","count","setAnnotationImagesList","setAnnotationImagesListCount","setListLastImageObject","obj","at","SET_PREV_PAGE_LAST_IMAGE_OBJ","setPrevGroups","SET_PREV_GROUPS","setPrevPolygons","SET_PREV_POLYGONS","resetAnnotationImagesList","logoUrl","organizations","isLoadingOrganizations","organizationList","organizationCount","currentOrgPage","SET_IS_LOADING_ORGANIZATIONS","list","httpClient","SET_ORGANIZATION_LIST","searchValue","OrganizationService","getPaginatedOrganizations","log","map","org","logoImage","Org_name","SET_ORG_TOTAL_COUNT","SET_ORG_PAGINATED_LIST","context","requestData","JSON","stringify","addNewOrganization","handlePageChange","SET_ORG_PAGE","resData","updateOrganization","deleteOrganization","response","getData","switchOrganization","success","devices","device_status","web_rtc_stream_offer","device_setting","discover_devices_opcua","unsubscribe","subscribe","login","baseUrl","hostUrl","config","alert","successMessage","errorMessage","store","axios","catch","non_field_errors","register","email","axiosInstance","keys","forEach","_error$response3","_error$response","_error$response2","msg","startTraining","res","_error$response4","detail","delete","_error$response5","upload","showError","_e$response","_e$response2","_e$response3","values","join","getHostUrl","hostURL","localStorage","getItem","setItem","configuration","host","CRUD","httpFunction","AUTH","logout","clear","this","$router","path","component","children","meta","authorize","roles","labeler","props","selectedCycleType","cycleTypes","isFetchingCycles","isFetchingTrace","showCompareAnalytics","dateRangeForComparison","dateHelper","_getDate","isFetchingAnalyticsForComparison","isFetchingMetaData","metaData","setSelectedCycleType","SET_SELECTED_CYCLE_TYPE","setIsFetchingCycles","SET_IS_FETCHING_CYCLES","setIsFetchingMetaData","SET_IS_FETCHING_META_DATA","TelemetryService","fetchMetaData","SET_META_DATA","setIsFetchingTrace","SET_IS_FETCHING_TRACE","setShowCompareAnalytics","SHOW_COMPARE_ANALYTICS","setDateRangeForComparison","SET_DATE_RANGE_FOR_COMPARISON","setIsFetchingAnalyticsForComparison","SET_IS_FETCHING_ANALYTICS_FOR_COMPARISON","fcmToken","SET_FCM_TOKEN","token","requireModule","require","fileName","moduleName","camelCase","replace","default","getAllDepartmentsOfOrg","orgName","createDepartment","departName","switchUser","userEmail","getAuthConfig","createKaizenBucket","requireRoute","routes","route","user","org_user","support_user","analytics_user","doc_user","SET_TASK_OBJECT_LIST","taskObjectList","setTaskObjectList","currentRoute","routerConfig","routeDetail","getTaskId","getSidebarState","sidebar","getTheme","theme","currentObject","isTourRunning","prevMetaData","totalFrames","toggleSpinner","changeRoute","changeRouteConfig","setTaskId","updateSidebarState","updateTheme","setCurrentObject","startTour","stopTour","resetState","setPrevMetaData","setTotalFrames","turnOnSpinner","turnOffSpinner","self","openSidebar","closeSidebar","updateSidebar","setLightTheme","setDarkTheme","createStore","prevRouter","nextRoute","webpackContext","req","webpackContextResolve","task","page","pageSize","ordering","getObjectsPaginated","getProjectorObject","saveCreatedRegions","getProjectorRegionCoordinates","updateRegions","updateProjectorRegions","updateProjectorRegionsJson","deleteRegions","copyRegions","setTaskStaticImage","bulkDeleteAnnotations","initialStepTime","avgCycleTime","stepAvgTime","allTasks","trainedTasks","selectedTask","isTask3d","modelChoice","taskName","taskDetails","taskStepsCount","isTaskStarred","isMultiProcessTask","processToStepListMap","taskJson","isAddingTranslation","isDeletingTranslation","isTranslation","isTranslationEdit","translatedTaskName","translationDetails","translationLanguage","processesTranslation","selectedLang","negativeSteps","taskProcesses","newTask","taskString","isTaskEdit","processes","currentEditMode","editModes","modes","prevStepsJson","updatedJsonPayload","resJsonForAddDeletePhase","resJsonForRenamePhase","taskUpdateConfirmModal","isFetchingTasks","isFetchingTaskDetails","isFetchingTaskStatus","isAddingTask","isUpdatingTaskFields","similarSteps","showSimilarStepsModal","isUpdatingSimilarSteps","taskObjects","taskObjectRules","indexToStepsMapping","stepsToIndexMapping","isSavingObjectDetectionRule","showStepTimeModal","stepTime","isUpdatingStepTime","isStepTimeExist","showTaskParamsModal","isUpdatingTaskParams","taskParameters","isUpdateTaskFromAdmin","taskOrganization","showRegionDefinitionModal","showAssociateRegionModal","taskStaticObjectsList","taskPlaneObjectsList","taskRegionMarkingImgUrl","optionalSteps","stepToAttributesMapping","mergeStepsDict","subStepToStepMapping","showModelVersionsModal","taskAssociatedModelVersion","isUpdatingAssociateModelVersion","stepsJsonData","subStepTimesJson","showAnnotationObjectsModal","annotationObjectJson","currentAnnotationObjectMode","objectAnnotationModes","objectWarnings","idToObjectMapping","objectToIdMapping","objectDetectionRuleUpdatedData","stepsTranslationMapping","showODSetupModal","stepsAssociationIds","Set","showProjectorRegionModal","planeObjectsList","taskStaticAnnotationImage","maxCycleTime","Number","MAX_SAFE_INTEGER","showUploadMediaModal","taskStepsMediaObject","rectificationSteps","taskCreatedAt","isAddBackgroundTimeToStepTimeEnabled","isMissedStepsSelected","isStepsSelectedForInterventions","idToEntityIdMapping","step","steps","processIndex","newSteps","stepsTranslation","substeps","stepIndex","newSubsteps","substepsTranslation","stepsCount","_state$taskProcesses$","substepsCount","_state$taskProcesses$2","outLierLimit","syncIdToEntityIdMapping","SYNC_ID_TO_ENTITY_ID_MAPPING","setIsMissedStepsSelected","SET_MISSED_STEP_SELECTED","setIsStepsSelectedForInterventions","SET_STEP_SELECTED_FOR_INTERVENTIONS","SET_IS_FETCHING_TASKS","TaskService","SET_TASKS","trainedStatus","tasks","SET_TRAINED_TASKS","setSelectedTask","SET_SELECTED_TASK","setTasks","setTaskDetail","task_detail","SET_TASK_DETAILS","setIsTaskStarred","SET_IS_TASK_STARRED","setTaskOrganization","organization","SET_TASK_ORGANIZATION","clearTaskDetails","SET_TASK_NAME","SET_TASK_PROCESSES","SET_NEGATIVE_STEPS","SET_TRANSLATION_DETAILS","SET_TRANSLATION_LANGUAGE","SET_SELECTED_LANGUAGE","resetTaskCreatedAt","SET_TASK_CREATED_AT","setIsAddBackgroundTimeToStepTimeEnabled","SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED","SET_IS_FETCHING_TASK_DETAILS","translation","translation_name","ss","stepsAvgTime","starred","optional_steps","model_choice","model_version","steps_data_json","sub_step_times","annotation_image_id","maximum_cycle_time","created_at","add_background_time_to_step_time","similar_steps","parse","getTaskParameters","SET_TASK_STEPS_COUNT","SET_TASK_JSON","SET_SIMILAR_STEPS","SET_OPTIONAL_STEPS","SET_TASK_ASSOCIATE_MODEL_VERSION","SET_STEPS_JSON_DATA","SET_MODEL_CHOICE","SET_MAX_CYCLE_TIME","SET_TASK_PARAMETERS","tempSAT","SET_STEP_TIME","SET_IS_STEP_TIME_EXIST","tempSST","isTranslationNotExist","SET_TASK_STATIC_IMAGE_ID","setStepsJsonData","item","validateColor","outline_color","getRandomColor","objectData","regionsObjects","filter","is_static","idsMap","getIdToObjectMapping","objMap","getObjectToIdMapping","SET_TASK_OBJECTS","SET_TASK_STATIC_OBJECTS","SET_ID_TO_OBJ_MAPPING","SET_OBJ_TO_ID_MAPPING","objectIndex","findIndex","SET_TASK_OBJECT_RULES","setTaskNameAndProcess","getTaskNameAndProcess","SET_IS_MULTI_PROCESS_TASK","SET_PROCESS_TO_STEP_LIST_MAP","getProcessToStepsMap","setIndexToStepsMapping","indexToStepMapping","getIndexToStepMapping","SET_INDEX_TO_STEPS_MAPPING","setStepsToIndexMapping","getStepToIndexMapping","SET_STEPS_TO_INDEX_MAPPING","setsubstepsToStepMapping","substepsToStepMapping","getSubstepToStepMapping","SET_SUB_STEP_TO_STEP_MAPPING","setTranslatedTaskName","SET_TRANSLATED_TASK_NAME","setStepToAttributesMapping","index","process","_","substepIndex","isNegative","includes","isOptional","SET_STEP_TO_ATTRIBUTES_MAPPING","handleChangeNegativeStepChange","handleChangeOptionalStepChange","markedStep","isNegUpdated","updatedAttributeSteps","sort","isOptUpdated","updateNegativeSteps","updateOptionalSteps","setSelectedLanguage","SET_PROCESS","SET_NEW_TASK","SET_UPDATED_JSON_PAYLOAD","setNewTask","setTaskUpdateConfirmModal","SET_TASK_UPDATE_CONFIRM_MODAL","setProcesses","setProcessesTranslation","SET_PROCESS_TRANSLATION","addProcess","updateProcess","updateProcessTranslation","removeProcess","addStep","_processSteps$at","processSteps","info","updateStep","updateStepTranslation","removeStep","moveStep","direction","stepsLastIndex","destinationIndex","getDestinationIndex","addSubstep","updateSubstep","substep","updateSubstepTranslation","removeSubstep","moveSubstep","substepsLastIndex","resetTranslationState","resetProcessState","SET_TASK_STRING","SET_IS_TASK_EDIT","SET_MERGE_STEPS_DICTIONARY","SET_CURRENT_EDIT_MODE","cancelTranslation","SET_IS_TRANSLATION_EDIT","SET_IS_TRANSLATION","closeProjectorModal","SET_SHOW_PROJECTOR_REGION_MODAL","upsertTranslation","initializeTranslation","language","checkIfEmpty","isDuplicateProcess","isDuplicateStep","isDuplicateSubstep","isStepAndSubstepSame","SET_IS_ADDING_TRANSLATION","translatedTaskString","getTaskString","translationName","dataPayload","SET_IS_DELETING_TRANSLATION","changeSelectedLanguage","details","setCurrentEditMode","upsertTask","validateForSpecialCharacters","checkIfTaskExist","checkIfSubstepsExists","validateStepAndSubstepCharacters","hasNoProcess","hasNoSteps","hasMorethanTwoProcess","startTaskModification","SET_IS_ADDING_TASK","getStepsCount","Organization","SET_IS_FETCHING_TASK_STATUS","taskStatus","devicesRunningSelectedTask","DeviceService","getDevicesRunningSelectedTask","_res","_error","isTaskBeingPerformed","isTaskBeingTrained","addDelete","SET_PREV_STEPS_JSON","getPrevStepsJson","oldTaskDetails","getTaskUpdatePayload","sendTaskUpdateNotification","getUpdatedTasksList","updateTaskParametersFields","_Object$keys","updatedParams","taksParamsKeys","payloadKeys","telemetryParams","trainingParams","updatedTaskParameters","getUpdatedTaskJson","updateTaskFields","SET_IS_UPDATING_TASK_FIELDS","updateSimilarStepsModalState","SET_SHOW_SIMILAR_STEPS_MODAL","similarStepsJson","SET_IS_UPDATING_SIMILAR_STEPS","updateSimilarStepsFileS3","SET_IS_UPDATING_TASK_PARAMS","taskParams","substepTimes","updatedData","SET_IS_SAVING_OBJECT_DETECTION_RULE","ids","split","remaining_objects","_obj$non_static_objec","_obj$static_object","non_static_object","toString","static_object","updatedRules","updateTaskObjectRules","createStepsJsonData","json","changeAvgCycleTime","changeStepAvgTime","time","convertStepTimeValuesToNumber","SET_IS_UPDATING_STEP_TIME","SET_SHOW_STEP_TIME_MODAL","changeSubStepTimes","SET_SUB_STEP_TIMES_JSON_DATA","setSubStepTimesJsonData","setSubStepTimesJsonFile","resetStepTimeState","moveToMergeStepPhase","jsonForRenamePhase","getTaskUpdateJson","tempUpdatedJson","merge","SET_RES_JSON_FOR_RENAME_PHASE","moveToRenamePhaseFromMerge","editMode","rename","moveToRenamePhaseFromAddDelete","jsonForAddDeletePhase","SET_RES_JSON_FOR_ADD_DELETE_PHASE","moveToAddDeletePhase","setTaskParameters","showModal","modalType","toggleLoading","setUpdateTaskFromAdmin","SET_UPDATE_TASK_FROM_ADMIN","SET_PLANE_OBJECTS","setTaskImageMarkingUrl","SET_TASK_REGION_MARK_IMAGE_URL","setMergeStepsDict","setStepTranslations","getTranslatedSteps","SET_STEPS_TRANSLATION_MAPPING","SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION","SHOW_MODEL_VERSIONS_MODAL","changeAnnotationObjectTab","CURR_OBJ_ANNOTATION_MODE","setAnnotationObjectJson","initAnnotationObjectsJson","SET_ANNOTATION_OBJ_JSON","handleShowAnnotationObjectModal","SHOW_ANNOTATION_OBJECTS_MODAL","changeAnnotationStepsObjects","currentmode","setObjectWarning","SET_HAS_OBJECT_WARNING","setStepsAssociationIds","rootGetters","associateBarcodes","tempIds","step_id","add","rule","barcode","step_index","optional_step","neg_step","SET_STEPS_ASSOCIATION_IDS","model_type","is3dSupport","DepthRegionService","isTaskSupport3D","is_3d","SET_IS3D_TASK","setModelChoice","setMaxCycleTime","SET_TASK_STEP_MEDIA_OBJ","SET_RECTIFICATION_STEPS","SET_SHOW_TASK_PARAMS_MODAL","SET_SHOW_REGION_DEFINE_MODAL","SET_SHOW_ASSOCIATE_REGIONS_MODAL","SET_OBJECT_DETECTION_RULE_UPDATE_DATA","SET_SHOW_OD_SETUP_MODAL","SET_SHOW_UPLOAD_MEDIA_MODAL","fetchVirtualTasks","parentTaskId","queryParams","virtualTasks","selectedVirtualTask","virtualTaskNegativeSteps","virtualTaskOptionalSteps","virtualTaskIndexToStepMap","isParentOfVirtualTasks","setSelectedVirtualTask","SET_SELECTED_VIRTUAL_TASK","VirtualTaskService","SET_VIRTUAL_TASKS","SET_IS_PARENT_OF_VIRTUAL_TASKS","SET_VIRTUAL_TASK_NEGATIVE_STEPS","SET_VIRTUAL_TASK_OPTIONAL_STEPS","SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP","resetVirtualTaskStates","defaultFormat","getLocalDate","date","Date","toISOString","format","dateTimeFormat","_date","dayjs","reformatDate","toLocaleDateString","unshift","pop","formatDate","dateString","dateDifference","date1","date2","unit","isDecimal","d1","d2","diff","getFormattedDate","date_value","year","getFullYear","month","getMonth","dt","getDate","formattedDate","getTimeFromDate","timeFormat","hoursToAdd","subtractDays","daysToAdd","subtract","subtractMonths","getTodayStartTime","currentTime","startOfToday","startOf","getDeviceSerialNumToDisplayNameMap","reduce","Serial_number","display_name","getDeviceDisplayNameToSerialNumMap","getDeviceIdToNameMap","Device","getDeviceIdToSerialNumMap","getSortedDevice","_sort","a","b","label","getSortedDeviceForTag","_sort$filter","sortedDevices","stroke","position","closeOnClick","pauseOnFocusLoss","pauseOnHover","draggable","draggablePercent","showCloseButtonOnHover","hideProgressBar","closeButton","icon","rtl","transition","maxToasts","newestOnTop","containerClassName","$options","getSpinner","_createBlock","_component_Loading","_createVNode","_component_router_view","role","_toDisplayString","$props","loadingTip","__default__","String","color","components","Loading","provide","showToast","isDev","firebaseProject","loading","sessionCheckDuration","sessionUpdateDuration","sessionTerminateDuration","computed","$store","mounted","$self","body","classList","customInterval","unmounted","methods","browser","getBrowserInfo","browser_version","setLocal","end_time","userAgent","navigator","browsers","keyword","versionMatch","match","RegExp","setInterval","sessionId","getLocal","sessionEnd","sessionUser","currentUser","hasFocus","timeExceeded","updateSession","createSession","limit","now","getTime","old","install","Vue","options","mixin","created","_component_icon","style","_normalizeStyle","_ctx","_withCtx","_resolveDynamicComponent","CustomIcons","filePath","word","toUpperCase","defineComponent","Icon","setup","el","binding","onClick","contains","addEventListener","_clickOutside","beforeUnmount","removeEventListener","icons","getAssetUrl","assetPath","ASSETS","beforeMount","tagName","toLowerCase","backgroundImage","H","Legend","getAllItems","allItems","chart","series","seriesOptions","userOptions","pick","showInLegend","defined","linkedTo","concat","legendItems","legendType","fireEvent","Highcharts","SeriesLabelModule","HighchartsMore","ExportingModule","ExportDataModule","AccessibilityModule","BoostModule","XrangeModule","TimelineChartConfig","app","createApp","App","emitter","mitt","globalOptions","globalProperties","$customIcons","customIcons","$messaging","firebaseMessaging","VOtpInput","use","VueTelInput","Toast","toastOption","Vue3VideoPlayer","Vue3Tour","VueTourSetup","Antd","VueKonva","router","contextmenu","VueFlatPickr","CustomIcon","directive","clickOutside","cdnDirectives","HighchartsVue","mount","fetchAllFeatures","createFeature","suppressFeature","fetchAllFeatureSubscriptions","createFeatureSubscription","deleteSubscriptionFeature","features","featureSubscriptions","featureControlService","featureName","ADD_FEATURE","feature_id","DELETE_FEATURE","GET_FEATURES","Feature","organization_id","subscribed_feature_id","setFeatureSubscription","SET_FEATURE_SUBSCRIPTIONS","setUserDetails","poc","is_policy_accepted","is_otp_verified","require_otp","refresh","session_key","username","admin","SAVE_USER","SAVE_USER_EMAIL","SAVE_TOKEN","SAVE_REFRESH_TOKEN","SAVE_ORGANIZATION","SAVE_ROLE","SET_POC_FLAG","SET_POLICY_FLAG","SET_OTP_FLAG","SET_REQUIRE_OTP","setOTPVerificationStatus","setOTPStatus","setEmailForResendVerification","SET_EMAIL","setAzureToken","SET_AZURE_LOGIN","removeAzureToken","removeItem","getAzureLoginStatus","isUserAssignedToOrg","is_admin","validUserName","validNamePattern","test","fieldName","field","charAt","fetchAllDevicesOfOrg","fetchAllDepartmentLessDevices","Type","assignDeviceToDepartment","deviceID","getAllOrganizations","getDeviceInfo","updateDevice","serialNumber","updateDevicePatch","fetchDeviceSettings","getActiveDevicesOfOrg","getSettingsOfActiveDevices","getStatusOfActiveDevices","updateDeviceSettings","deviceSettingId","updateAllDeviceSettingsInOrg","updateDeviceSetting","deviceId","fetchBlurRegions","saveBlurRegions","deleteBlurRegion","updateBlurRegions","updateProjectorStatus","getDeviceDetails","deviceSerialNumber","setFetchAnalytics","updateCurrentScreen","getDeviecesStats","getTaskDevices","getTagsDevices","getActiveDeviceStatus","getConfig","getMonitoringStatus","getDeviceSettingOfActiveDevice","getDeviceScreenshots","getDeviceScreenshotsIntervals","deleteDevice","new_task","in_annotation","training","failed","trained","signIn","signUp","resendOtp","resendVerificationEmail","sendVerificationEmailAdmin","verifyEmail","setOTPMethod","sendOTP","verifyOTP","getPermissions","acceptPolicy","azureSignIn","azureRefreshToken","refreshJWTToken","azureSignUp","forgotPassword","changePassword","RequestChangePassword","RequestChangeEmail","VerifyEmailChange","UpdateWorkStationUserPassword","AddOrgAdmin","RegisterAWSUser","errorData","RegisterNewAWSMarketplaceUser","headers","FetchOrganizations","SwitchOrganizationByUser","AddUserToMultipleOrgs","GetUserLinkedOrgByUserId","GetOrganizationUsers","RemoveUserFromMultipleOrgs","vapidKey","validRoutesName","testHostUrl","prodHostUrl","localHostUrl","annotation","verification","fetchArchivedCycles","createArchivedCycles","restoreArchivedCycles","fetchedCycle","archivedCycles","showAddModelArchivedCycleModal","ArchivedCycleService","SET_ARCHIVED_CYCLE_LIST","filteredCycles","cycle","device","FILTER_ARCHIVED_CYCLE_LIST","setShowAddModelArchivedCycleModal","SET_SHOW_ADD_MODEL_ARCHIVED_CYCLE","mappedCycles","start_datetime","end_datetime","CDN_URL","FUNDAMENTALS","VIDEO_URL","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","eventTypes","columns","title","dataIndex","align","eventTypeOptions","unsubscribeToChannel","fcm","topic","tokens","action","DeviceConfig","FCMService","subscribeToChannel","teardownFCM","auth","messaging","handleMessage","onMessage","getTraceVideos","getTraceVideosV2","fetchCyclesDetails","fetchCyclesDetailsV2","fetchTopFivePercentile","getTraceCycleRecordData","archiveCycle","cycleId","revertCycle","addTimeStampTags","getTimeStampTags","task_record","taskRecordId","removeTimeStampTags","pendingUserList","GET_PENDING_USERS","roleId","approveResponse","orgResponse","allUsers","allRoles","addNewRole","deleteUser","getRoleUsers","switchedUsers","updateUser","verifyUser","is_email_verified","getLockedUsersList","removeUserLock","imageDetector","cloneTask","trimVideo","queues","longRunningTask","devQueue","statuses","started","finished","releases","isLoading","latestBranchId","latestDate","latestDeployment","totalResult","latestRetroGuiDevBranch","SET_IS_LOADING","BinaryDeploymentServices","start_time","objectKey","objDate","latestBranchDate","SET_RELEASES","SET_RELEASES_COUNT","SET_LATEST_DATE","SET_LATEST_BRANCH_ID","record","open","link","show","currentState","SET_LATEST_DEPLOYMENT","SET_LATEST_RETRO_GUI_BRANCH_DEV","delete_record","setCurrentPage","pageNumber","SET_CURRENT_PAGE_RELEASES","URL","sendMessageToRabbitMQ","sendMessageToSQS","SAVE_HOSTURL","LOGOUT","SAVE_ACCESS_TOKEN","SET_MSAL_INSTANCE","SET_DEVICES_DATA","SET_FRAME_STEP_SIZE","SET_IS_SAVING_ANNOATION","SET_IS_SUBSTEPS_CHANGED","SET_STEP_TO_NEGATIVE_MAPPING","SET_ORGANIZATIONS","SET_TEMPORARY_USER_INFO","SET_WEBSOCKET_CONNECTION","GET_ROLES","ADD_ROLE","GET_ORGANIZATION_USERS","SET_TASK_CROP_PARAMS","RESET_DEVICE_STATE","SET_DEVICES","SET_ACTIVE_DEVICES","SET_TASK_TAGS","SYNC_TASK_TAGS","SET_MONITORING_STATUS","SET_DEVICE_TASKS","SET_STARRED_DEVICE","SET_IS_FETCHING_DEVICES","SET_DEVICE_SERIAL_NUM_TO_DISPLAY_NAME_MAP","SET_DISPLAY_NAME_TO_DEVICE_SERIAL_NUM_MAP","SET_DEVICE_ID_TO_NAME_MAP","SET_DEVICE_ID_TO_DEVICE_SERIAL_NUM_MAP","SET_DEVICE_FOR_DETAIL","SET_ALL_DEVICES","SET_BARCODES","SET_CREATING_BARCODES","SET_DELETING_BARCODES","SET_IS_FETCHING_BARCODES","SET_IS_FETCHING_ASSOCIATE_BARCODES","SET_ASSOCIATE_BARCODES","SET_ADD_ASSOCIATE_BARCODES","SET_UPDATE_ASSOCIATE_BARCODES","SET_UPSERTING_ASSOCIATE_BARCODES","SET_IS_REMOVING_ASSOCIATED_BARCODE","SET_VIDEOS_LIST","SET_VIDEOS_COUNT","SET_IS_FETCHING_VIDEOS","SET_SELECTED_VIDEO_TYPE","SET_ORGANIZATION_TAGS","SET_USER_POOL_CONFIG","SET_IS_FETCHING_CONFIG","SET_CREATING_AWS_TOKEN","ADD_FEATURE_SUBSCRIPTION","DELETE_FEATURE_SUBSCRIPTION","SET_BRANCH_TO_MOVE","SET_RECORD_TO_DELETE","SET_MODEL_VERSIONS_LIST","SET_IS_FETCHING_MODEL_VERSIONS","SET_IS_UPDATING_MODEL_VERSION","SET_IS_DELETING_MODEL_VERSION","SET_SHOW_UPLOAD_MODEL_BUTTON","SET_REMOTE_CAMS_LIST","SET_IS_FETCHING_CAMS_LIST","SET_SHOW_REMOTE_CAM_MODAL","SET_REMOTE_CAM_MODAL_LOADER","SET_SERIAL_NUMBER","SET_RTC_CONNECTION","SET_DATA_CHANNEL","SET_DATA_CHANNEL_PC","SET_ANSWER_SEARCHING","SET_ANSWER_SEARCHING_DC","SET_DATA_CHANNEL_ICE","SET_SESSION_ID","SET_SESSION_ID_DC","SET_RTC_CONFIGURATION","SET_IS_EDIT_REMOTE_DEVICE","SET_TASK_CREATED_AT_DATE","SET_MODEL_TYPES","SET_IS_FETCHING_MODEL_TYPES","SET_SHOW_ADD_MODEL_TYPE_MODAL","SET_IS_ADDING_MODEL_TYPE","SET_MODEL_TYPE_TO_BE_EDITED","SET_ERGONOMICS_VIDEOS_LIST","SET_ERGONOMICS_VIDEOS_COUNT","SET_ERGONOMICS_LOADING","SET_SELECTED_ERGONOMICS_RECORD","SET_CURRENT_ERGONOMICS_RECORD_PAGE","SET_IS_FETCHING_JSON","SET_REBA_FRAMES_DATA","SET_REBA_ANGLES_DATA","SET_RULA_FRAMES_DATA","SET_OWAS_FRAMES_DATA","SET_LOAD_PERCENTAGE_DATA","SET_LOAD_TIMESTAMPS_DATA","createRouter","history","createWebHistory","getOTPAuthValues","isOtpSetup","redirectToAccuratePath","next","isLoginOrSignup","to","some","isValidRole","location","beforeEach","from","isTokenSet","isAzureLogin","azureLogin","matched","createEventNotification","fetchEventNotifications","getEventNotification","updateEventNotification","deleteEventNotification","getRecipients","eventType","sendEmail","calculatePlaneEquation","planeId","getDepthVideoFrames","task_id","generateDepthVideoFrames","resetDepthVideoFrames","getZeroDepthVideoFrames","getOverlayImage","uploadFile","readFile","deleteFile","uploadImage","generatePresignedUrl","bucket_name","object_path","file","getPresignedPostURL","verifyGetPresignedUrl","files","downloadFilesToZip","responseType","getFolderPresignedUrls","fetchBarcodes","createBarcode","createCustomBarcode","updateCustomBarcode","deleteBarcode","barcodeId","fetchAssociateBarcodes","createAssociateBarcodes","updateAssociateBarcodes","removeAssociatedBarcode","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","initializeApp","getMessaging","taskCreationCardTitle","nextPrevButtonMap","taskUpdateJsonPhaseConfig","isObject","constructor","taskDetail","text_lines","trim","line","getSubstepList","flag","every","invalidChars","Array","isArray","tempProcesses","size","acc","subStepsSet","has","processData","element","processName","stepName","jsonForMergePhase","getMergeStepJson","train_status","trainingStatuses","isInferenceRunning","AreStepsNameRenamed","_updatedJsonPayload$","_Object$keys2","_updatedJsonPayload$2","addDeleteStepsKeys","stepsJson","renamedStepsKeys","getStepDataDefaultFormat","step_data_default_format","objects_present","detect_always","boolean_expr","rule_types","step_relations","key_steps","before_anchor","after_anchor","getRenamedSubsteps","_updatedJsonPayload$3","_updatedJsonPayload$4","addDeleteJson","renameJson","addDeleteJsonSubsteps","renamedJsonSubsteps","renamedStepsDict","renamedsteps","getListToUpdateMetaFile","_updatedJsonPayload$5","mergeJson","isSubstepsRenamed","dict","newUpdateJsonList","updated_json","getTaskNameAndStepDetails","_newStepDetails$shift","newStepDetails","updatedTaskDetailsWhenMerge","_Object$values","taskDetailsArray","mergeSteps","filterDetails","mstep","updatedTaskString","mergeStepsCount","initSubStepTimeJson","_Object$keys3","indexToStepMappig","entries","updateSubstepTimesJsonOnEdit","_updatedJsonPayload$6","_Object$values2","newStepsToIndexMap","mergeStepsJson","renameStepsObj","mergeKeys","mergedSteps","updatedSubstepTime","factor","currMergedSteps","mergeStepTimeSum","lastStep","updateStepDataJsonOnEdit","_updatedJsonPayload$7","_Object$values3","defaultStepFormat","updatedStepDataJSON","newStepDataJSON","stepBeforeRename","oldTaskname","oldStepDetails","taskPayload","old_task_name","is_task_updated","is_update_meta_files","updatedStepsIds","getUpdatedStepsIndexes","updateTaskParams","getUpdatedTaskParams","getUpdatedRequiredSteps","updatedSteps","required_steps","updated_dict","deleted_steps","updated_steps","processIdx","newIndex","movedStep","find","st","required_steps_for_end","required_steps_for_start","tempProcess","tempStep","getFileUploadPayload","blob","Blob","FormData","bucket","append","getFileDeletePayload","file_path","S3Service","_Object","_process$steps","prevSubStepsLength","processSubSteps","rules","prevRules","typeP","labelText","secondMax","isBeingLabled","getPayloadToUpdateCloneTaskBop","parent_task","getSortedTask","taskList","stepsMapping","updateAttribute","formattedDict","mergingStep","subRes","elm","setOldTaskDetails","hasDefaultProcess","prev","arr","assign","getStepsList","text","firstLangDetails","secondLangDetails","_getStepsList","defaultLangSteps","translationLangSteps","_step$substeps","translatedSubStep","objects","steps_json_data","verification_data","idx","object_name","verify","substepIdx","static_obj","rule_type_name","rule_type","region","stepObj","minimum_cycle_time","min_percentage_of_steps_required_to_end_cycle","verify_threshold","temporal_smoothness","training_params","cycle_calculation_params","telemetry_params","0","getStepsData","newStepsToIndexMapping","oldStepsMap","newStepsMap","oldSteps","renamedSteps","newRenamedSteps","removeStepIndexes","modifiedStepDict","newStepsIndexes","newStepIndex","oldStepIndex","isSameIndex","oldstep","changedSteps","sp","updateStepsIndexes","source","destination","new_steps","oldIndex","resTelemetryParams","getEmailBody","removedSteps","addedSteps","_removedSteps","_addedSteps","sendNotificationEmail","recipients","subject","EvenNotificationService","taskUpdatePayload","deleted_steps_index","new_steps_index","newSubstepsList","oldSubstepsList","getUpdateAssociateBarcode","allBarcodes","barcode_id","getBarcodesDictionary","barcodes","barcode_value","getRemoveAssociatedBarcodes","removeId","filteredAssociatedBarcodes","allBarcode","isFetchingBarcodes","isCreatingBarcode","isDeletingBarcode","isFetchingAssociateBarcodes","isUpsertingAssociateBarcodes","isRemovingAssociatedBarcode","BarcodeService","x","updatedAssociatedBarcodes","getAuth","header","Accept","Authorization","SessionKey","getUploadConfig","onUploadProgress","calculateUploadingSpeed","initialStartTime","bitsUploaded","estimated_time","time_started","loaded","total","uploadedBytes","elapsed","currentSpeed","toFixed","Math","floor","last_update_time","formatSizeUnits","bytes","withUnit","remainingEstimatedTime","previousBitsUploaded","progressEvent","isSlowSpeed","percent","parseInt","round","totalBits","objectKeys","progressText","networkType","connection","effectiveType","progress","cancelToken","disabled","path_finder","featureLabels","handleError","customErrorHandler","localStorageItems","itemsToKeep","removeUnwantedLocalStorageItems","AuthService","refreshToken","access","userOrganizations","sidebarItems","rootState","barItems","allSidebarItems","_rolesDrawerItems$sta","rolesDrawerItems","featuresExistInOrg","featureControl","_item$Feature","_item$Feature2","suppressed","allFeatures","isPolicyAccepted","accessToken","msalInstance","organizationUsers","msalConfig","clientId","authority","cache","cacheLocation","PublicClientApplication","sessionStorage","userInfo","emit","OTP","user_id","persistUserInfoTemporary","clearState","cookie","Tawk_API","endChat","terms_and_conditions_accepted","removePolicyFlag","resp","lastname","userToken","fcmstore","poc_flag","policy_flag","otp_flag","frameStepSize","isSavingAnnoation","isSubstepsChanged","webSocketConnection","setFrameStepSize","setIsSavingAnnoation","setIsSubstepsChanged","setWebSocketConnection","letters","random","hexRegex","Training","Trace","fetchAllRemoteDevices","addNewRemoteDevice","updateRemoteCamDevice","updateRemoteCamDetails","deleteRemoteCam","camId","remoteCamsList","isFetchingCamsList","showRemoteCamModal","remoteCamModalLoader","isEditRemoteDevice","updateRemoteCamModalState","updateRemoteCamModalLoader","RemoteDeviceService","tempRemoteCamsList","camDeviceIndex","camDevice","updatedCamsList","setIsEditRemoteDevice","fetchUserPoolConfig","createAwsLambdaToken","userPoolConfig","isFetchingConfig","isCreatingToken","AwsService","fetchVideos","createEntityForVideo","fetchOrganizationTags","createOrganizationTag","deleteOrganizationTag","addNewComment","entity_id","updateTaskRecord","deleteComment","increaseCommentCount","taskRecord","no_of_comments","decreaseCommentCount","updatedComments","getCommentsForEntity","getPresignedUrl","getVideoMetaData","scopes","baseURL","validateToken","authData","validate","tenantId","account","idTokenClaims","tid","audience","applicationId","aud","logoutAzureUser","RedirectUserPasswordExpired","tokenPromise","interceptors","originalRequest","tokenResponse","acquireTokenSilent","isTokenValid","access_token","reload","dateFormat","createModelType","fetchModelTypes","updateModelType","modelTypeId","createModelFiles","updateModelFiles","deleteModelFIles","getModelTypesById","UserService","getModelVersionList","createModelVersion","deleteModelVersion","modelVersionId","deleteFlag","updateModelVersion","modelVersionsList","isFetchingModelVersions","isUpdatingModelVersion","isDeletingModelVersion","showUploadModelButton","ModelVersionService","prevMVList","currentMVList","mv","updatedModelVersions","modelVersion","clearModelVersionsList","getQueryParams","sortBy","datetime_start","datetime_end","videoList","isFetchingVideos","videosCount","videoTypes","selectedVideoType","organizationTags","tagIdToNameMap","tag_name","VideosService","addNewTag","newTag","removeTag","tagId","rest","video_list","v","isThumbnailExist","updateVideoItem","video","itemIndex","setVideosList","setVideosCount","setSelectedVideoType","selectedTaskForDetail","taskCropParams","activeDevices","isFetchingDevices","deviceSerialNumToDisplayNameMap","deviceDisplayNameToSerialNumMap","deviceIdToNameMap","deviceIdToSerialNumMap","cachedMonitoringStatuses","allDevices","selectedDeviceTasks","taskTags","startedDevice","cachedActiveDevices","isDataExist","eachTag","tag_value","setDeviceForDetail","setTaskCropParams","resetDeviceState","active","workstation_user","roleLabels","createNewModelType","ModelTypeService","deleteModelFiles","modelFileIds","compareTwoArrays","arr1","arr2","added","obj2","obj1","removed","modified","modelTypes","isFetchingModelTypes","showAddModelTypeModal","isAddingModelType","modelTypeToBeEdited","setShowAddModelTypeModal","addNewModelTypeAndFiles","modelTypePayload","newModelType","modelFiles","modelFilesPayload","f","handleEditModelType","modelToBeEdited","setModelToBeEdited","modelTypeApiCalls","newModelFiles","prevModelType","model_files","prevModelFiles","isModelTypeChanged","isEdit"],"mappings":"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AvL,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,GACjBC,EACA4B,EAAUhC,GAEV,MAAMC,EAASmC,qBACf,OAAOE,EACLvC,EACAiC,EACA/B,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJ,WACEL,EACA5S,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,6BACjBC,EAAe,QACfiC,EAAOrC,GAEP,MAAMC,EAASmC,qBACf,aAAaE,EACXvC,EACA5S,EACAkV,EACApC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJc,cACEnB,EACA5S,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,6BACjBC,EAAe,SAEf,MAAMH,EAASmC,qBACf,OAAOE,EACLvC,EACA5S,EACA6S,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJlK,IACE6J,EACA5J,EACAhJ,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,6BACjBC,EAAe,SAEf,MAAMH,EAASmC,qBACf,OAAOE,EACLvC,EACA5J,EACAhJ,EACA6S,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAGJzK,MACEoK,EACA5J,EACAhJ,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,6BACjBC,EAAe,QACf4B,EAAUhC,GAEV,MAAMC,EAASmC,qBACf,OAAOE,EACLvC,EACA5J,EACAhJ,EACA6U,EACA/B,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAGJkB,OACEvB,EACA5J,EACA3B,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,6BACjBC,EAAe,SAEf,MAAMH,EAASmC,qBACf,OAAOE,EACLvC,EACA5J,EACA6J,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJoB,OACEzB,EACA5S,EACA2G,EACAU,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,8BACjBC,EAAe,SAEf,MAAMH,EAASmC,qBAA8BtO,GAC7C,OAAOyO,EACLxC,EACA5S,EACA6S,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJN,MACEC,EACA5S,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,0BACjBC,EAAe,SAEf,MAAMH,EAASmC,iBACf,OAAOI,EACLzC,EACA5S,EACA6S,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJK,SACEV,EACA5S,EACAqH,GAAU,EACV0J,GAAM,EACNgC,GAAQ,EACRC,EAAiB,+BACjBC,EAAe,SAEf,MAAMH,EAASmC,iBACf,OAAOI,EACLzC,EACA5S,EACA6S,EACAC,EACAzL,EACA0J,EACAgC,EACAC,EACAC,IAIJqC,SACER,aAAaS,QACbC,KAAKC,QAAQ3U,KAAK,a,oDC9PtB,uBAEe,cACb,CACE4U,KAAM,WACNvQ,KAAM,iBACNwQ,UAAWA,IAAM,gDACjBC,SAAU,CACR,CACEF,KAAM,QACNvQ,KAAM,kBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMC,WAE5B,CACEN,KAAM,UACNvQ,KAAM,kBACNwQ,UAAWA,IACT,qFAGFE,KAAM,CAAEC,UAAW,CAACC,OAAMC,WAE5B,CACEN,KAAM,yCACNvQ,KAAM,cACN8Q,OAAO,EACPN,UAAWA,IACT,uJACFE,KAAM,CAAEC,UAAW,CAACC,OAAMC,e,oCC9BlC,2DAKA,MAAMlL,EAAQ,CACZoL,kBAAmBC,OAAW,cAC9BA,WAAYA,OACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,sBAAsB,EACtBC,uBAAwB,CAACC,OAAWC,WAAYD,OAAWC,YAC3DC,kCAAkC,EAClCC,oBAAoB,EACpBC,SAAU,IAGNzL,EAAU,CACdgL,WAAYrL,GAASA,EAAMqL,WAC3BD,kBAAmBpL,GAASA,EAAMoL,kBAClCE,iBAAkBtL,GAASA,EAAMsL,iBACjCC,gBAAiBvL,GAASA,EAAMuL,gBAChCC,qBAAsBxL,GAASA,EAAMwL,qBACrCC,uBAAwBzL,GAASA,EAAMyL,uBACvCG,iCAAkC5L,GAChCA,EAAM4L,iCACRC,mBAAoB7L,GAASA,EAAM6L,mBACnCC,SAAU9L,GAASA,EAAM8L,UAGrBpL,EAAU,CACdqL,sBAAqB,OAAEnL,GAAU9D,GAC/B8D,EAAOC,OAAMmL,wBAAyBlP,IAGxCmP,qBAAoB,OAAErL,GAAU9D,GAC9B8D,EAAOC,OAAMqL,uBAAwBpP,IAGvCqP,uBAAsB,OAAEvL,GAAU9D,GAChC8D,EAAOC,OAAMuL,0BAA2BtP,IAG1C,mBAAkB,OAAC8D,GAAS9D,GAC1B8D,EAAOC,OAAMuL,2BAA2B,GACxC,MAAOrS,EAAO7E,SAAcmX,OAAiBC,cACzCxP,GAEJ8D,EAAOC,OAAMuL,2BAA2B,GACpCrS,EACFiC,QAAQiK,IAAI,CAAClM,UAGf6G,EAAOC,OAAM0L,cAAerX,IAG9BsX,oBAAmB,OAAE5L,GAAU9D,GAC7B8D,EAAOC,OAAM4L,sBAAuB3P,IAGtC4P,yBAAwB,OAAE9L,GAAU9D,GAClC8D,EAAOC,OAAM8L,uBAAwB7P,IAEvC8P,2BAA0B,OAAEhM,GAAU9D,GACpC8D,EAAOC,OAAMgM,8BAA+B/P,IAE9CgQ,qCAAoC,OAAElM,GAAU9D,GAC9C8D,EAAOC,OAAMkM,yCAA0CjQ,KAIrD4E,EAAY,CAChB,CAACb,OAAMmL,yBAAyBhM,EAAOlD,GACrCkD,EAAMoL,kBAAoBtO,GAE5B,CAAC+D,OAAMqL,wBAAwBlM,EAAOlD,GACpCkD,EAAMsL,iBAAmBxO,GAE3B,CAAC+D,OAAMuL,2BAA2BpM,EAAOlD,GACvCkD,EAAM6L,mBAAqB/O,GAE7B,CAAC+D,OAAM0L,eAAevM,EAAOlD,GAC3BkD,EAAM8L,SAAWhP,GAEnB,CAAC+D,OAAM4L,uBAAuBzM,EAAOlD,GACnCkD,EAAMuL,gBAAkBzO,GAE1B,CAAC+D,OAAM8L,wBAAwB3M,EAAOlD,GACpCkD,EAAMwL,qBAAuB1O,GAE/B,CAAC+D,OAAMgM,+BAA+B7M,EAAOlD,GAC3CkD,EAAMyL,uBAAyB3O,GAEjC,CAAC+D,OAAMkM,0CAA0C/M,EAAOlD,GACtDkD,EAAM4L,iCAAmC9O,IAI9B,cACbkD,QACAK,UACAK,UACAgB,c,oCCtGF,uBAEA,MAAMrB,EAAU,CACd2M,SAAWhN,GAAUA,EAAMgN,UAGvBtM,EAAU,CACd,mBAAkB,OAAEE,GAAU9D,GAC5B8D,EAAOC,OAAMoM,cAAenQ,GAC5BkN,aAAaE,QAAQ,WAAYpN,KAI/B4E,EAAY,CAChB,CAACb,OAAMoM,eAAejN,EAAOkN,GAC3BlN,EAAMgN,SAAWE,IAIflN,EAAQ,CACZgN,SAAUhD,aAAaC,QAAQ,aAGlB,cACbjK,QACAK,UACAK,UACAgB,c,oCC3BF,gCAEA,MAAMyL,EAAgBC,UAChBnX,EAAU,GAEhBkX,EAAcxE,OAAOC,QAAQyE,IAE3B,GAAiB,eAAbA,EAA2B,OAE/B,MAAMC,EAAaC,IAAUF,EAASG,QAAQ,eAAgB,KAC9DvX,EAAQqX,GAAcH,EAAcE,GAAUI,UAGjCxX,gB,sDCbf,4BAGAqG,eAAeoR,EAAuBC,EAASpR,GAAU,GACvD,aAAagG,OAAUvH,IACrB,gBAAkB2S,EAAU,eAC5BpR,GAIJD,eAAesK,EAAmB9J,GAChC,aAAayF,OAAUxF,KAAK,gBAAiBD,GAG/CR,eAAe0K,EAAmB2G,EAAS7Q,GACzC,aAAayF,OAAU7E,MAAM,gBAAgBiQ,KAAY7Q,GAG3DR,eAAe2K,EAAmB0G,GAChC,aAAapL,OAAUnE,OAAO,gBAAgBuP,MAGhDrR,eAAesR,EAAiBD,EAASE,EAAYtR,GAAU,GAC7D,aAAagG,OAAUxF,KAAK,gBAAkB4Q,EAAU,eAAgB,CACtEtT,KAAMwT,IAIVvR,eAAe8K,EAAmBtK,GAChC,aAAayF,OAAU7E,MACrB,mCACAZ,GACA,GAIJ,MAAMgR,EAAaxR,MAAOyR,EAAWxR,GAAU,UAChCgG,OAAU7E,MACrB,oCAAoCqQ,KACpCxR,EACAyR,kBAIJ1R,eAAe2R,EAAmBnR,GAChC,aAAayF,OAAUxF,KAAK,oCAAqCD,GAGnER,eAAe0J,EAA0BpJ,EAAOL,GAAU,GACxD,aAAagG,OAAUvH,IACrB,kCAAoC4B,EACpCL,GAIW,QACbmR,yBACAE,mBACAxG,qBACA6G,qBACAH,aACA9H,4BACAY,qBACAI,qBACAC,uB,qDChEF,MAAMiH,EAAed,UACfe,EAAS,GAEfD,EAAavF,OAAOC,QAASyE,IAE3B,GAAiB,eAAbA,EACF,OAEF,MAAMe,EAAQF,EAAab,GAAUI,QACrCU,EAAOnY,QAAQoY,KAGFD,gB,oCCZf,uBAEe,cACb,CACEvD,KAAM,QACNvQ,KAAM,cACNwQ,UAAWA,IAAM,gDACjBC,SAAU,CACR,CACEF,KAAM,OACNvQ,KAAM,OACNwQ,UAAWA,IACT,gDAGFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,YAExC,CACE1D,KAAM,OACNvQ,KAAM,OACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,UACNvQ,KAAM,mBACNwQ,UAAWA,IACT,uJACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,SACNvQ,KAAM,sBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,QACNvQ,KAAM,cACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,SACNvQ,KAAM,eACNwQ,UAAWA,IACT,iIACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,SACNvQ,KAAM,iBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,QACNvQ,KAAM,QACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,UACNvQ,KAAM,SACNwQ,UAAWA,IACT,iIACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,eACtDzD,SAAU,CACR,CACEF,KAAM,GACNvQ,KAAM,UACNwQ,UAAWA,IACT,2GACFE,KAAM,CACJC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAGlD,CACE3D,KAAM,MACNvQ,KAAM,eACNwQ,UAAWA,IACT,gDAGFE,KAAM,CACJC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,kBAKtD,CACE3D,KAAM,MACNvQ,KAAM,MACNwQ,UAAWA,IACT,gDAGFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,UACNvQ,KAAM,UACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,YACNvQ,KAAM,YACNwQ,UAAWA,IACT,2GACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMuD,eACNvD,OAAMsD,gBAIZ,CACE3D,KAAM,iBACNvQ,KAAM,iBACNwQ,UAAWA,IACT,gDACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMuD,eACNvD,OAAMsD,gBAIZ,CACE3D,KAAM,kBACNvQ,KAAM,QACNwQ,UAAWA,IACT,qFACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMuD,eACNvD,OAAMsD,gBAIZ,CACE3D,KAAM,YACNvQ,KAAM,QACNwQ,UAAWA,IACT,qFACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMsD,gBAExC,CACE3D,KAAM,UACNvQ,KAAM,mBACNwQ,UAAWA,IACT,qFACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,cACNvQ,KAAM,eACNwQ,UAAWA,IACT,gDACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMwD,SACNxD,OAAMsD,gBAIZ,CACE3D,KAAM,eACNvQ,KAAM,mBACNwQ,UAAWA,IACT,gDACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMwD,SACNxD,OAAMsD,gBAIZ,CACE3D,KAAM,aACNvQ,KAAM,aACNwQ,UAAWA,IACT,qFACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,aACNvQ,KAAM,qBACNwQ,UAAWA,IACT,2GACFE,KAAM,CAAEC,UAAW,CAACC,OAAMoD,KAAMpD,OAAMqD,SAAUrD,OAAMsD,gBAExD,CACE3D,KAAM,eACNvQ,KAAM,eACNwQ,UAAWA,IACT,gDACFE,KAAM,CACJC,UAAW,CACTC,OAAMoD,KACNpD,OAAMqD,SACNrD,OAAMuD,eACNvD,OAAMsD,oB,oCC3NlB,aAAM1N,EAAQ,CACV6N,qBAAsB,wBAGpB1O,EAAQ,CACV2O,eAAgB,IAGdtO,EAAU,CACZsO,eAAiB3O,GAAUA,EAAM2O,gBAG/BjO,EAAU,CACZkO,mBAAkB,OAAChO,GAAS9D,GACxB8D,EAAOC,EAAM6N,qBAAsB5R,KAIrC4E,EAAY,CACd,CAACb,EAAM6N,sBAAsB1O,EAAOlD,GAChCkD,EAAM2O,eAAiB7R,IAIhB,cACXkD,QAAOK,UAASK,UAASgB,c,oECzBd,GACbmN,aAAa7O,GACX,OAAOA,EAAM6O,cAEfC,aAAa9O,GACX,OAAOA,EAAM+O,aAEfC,UAAUhP,GACR,OAAOA,EAAM7C,QAEf8R,gBAAgBjP,GACd,OAAOA,EAAMkP,SAEfC,SAASnP,GACP,OAAOA,EAAMoP,OAEfC,cAAcrP,GACZ,OAAOA,EAAMqP,eAEfC,cAActP,GACZ,OAAOA,EAAMsP,eAEfC,aAAavP,GACX,OAAOA,EAAMuP,cAEfC,YAAYxP,GACV,OAAOA,EAAMwP,cC1BF,GACbC,cAAczP,EAAO5E,GACnB4E,EAAMzD,QAAUnB,GAGlBsU,YAAY1P,EAAO5E,GACjB4E,EAAM6O,aAAezT,GAEvBuU,kBAAkB3P,EAAOnE,GACvBmE,EAAM+O,YAAc,IACflT,IAIP+T,UAAU5P,EAAO5E,GACf4E,EAAM7C,OAAS/B,GAGjByU,mBAAmB7P,EAAO5E,GACxB4E,EAAMkP,QAAU9T,GAGlB0U,YAAY9P,EAAO5E,GACjB4E,EAAMoP,MAAQhU,GAGhB2U,iBAAiB/P,EAAO4E,GACtB5E,EAAMqP,cAAgBzK,GAGxBoL,UAAUhQ,EAAO5E,GACf4E,EAAMsP,cAAgBlU,GAGxB6U,SAASjQ,EAAO5E,GACd4E,EAAMsP,cAAgBlU,GAGxB8U,WAAWlQ,GACTA,EAAM7C,OAAS,MAGjBgT,gBAAgBnQ,EAAO5E,GACrB4E,EAAMuP,aAAenU,GAGvBgV,eAAepQ,EAAO5E,GACpB4E,EAAMwP,YAAcpU,IC/CT,GACbiV,cAAc7J,GACZA,EAAQ5F,OAAO,iBAAiB,IAGlC0P,eAAe9J,GACbA,EAAQ5F,OAAO,iBAAiB,IAElC8O,YAAYlJ,EAASpL,GACnBoL,EAAQ5F,OAAO,cAAexF,IAEhCuU,kBAAkBnJ,EAAS3K,EAAQ0U,GACjC/J,EAAQ5F,OAAO,oBAAqB/E,EAAQ0U,IAE9CX,UAAUpJ,EAASpL,GACjBoL,EAAQ5F,OAAO,YAAaxF,IAE9BoV,YAAYhK,GACVA,EAAQ5F,OAAO,sBAAsB,IAEvC6P,aAAajK,GACXA,EAAQ5F,OAAO,sBAAsB,IAGvC8P,cAAclK,EAASpL,GACrBoL,EAAQ5F,OAAO,qBAAsBxF,IAGvCuV,cAAcnK,GACZA,EAAQ5F,OAAO,eAAe,IAEhCgQ,aAAapK,GACXA,EAAQ5F,OAAO,eAAe,IAEhCmP,iBAAiBvJ,EAAS5B,GACxB4B,EAAQ5F,OAAO,mBAAoBgE,IAErCoL,UAAUxJ,GACRA,EAAQ5F,OAAO,aAAa,IAE9BqP,SAASzJ,GACPA,EAAQ5F,OAAO,YAAY,IAE7BsP,WAAW1J,GACTA,EAAQ5F,OAAO,eAEjBuP,gBAAgB3J,EAASpL,GACvBoL,EAAQ5F,OAAO,kBAAmBxF,IAEpCgV,eAAe5J,EAASpL,GACtBoL,EAAQ5F,OAAO,iBAAkBxF,K,YC5CtByV,sBAAY,CACzB7Q,QACE,MAAO,CACLzD,SAAS,EACT2S,SAAS,EACTE,OAAO,EACPP,aAAc,GACdQ,cAAe,KACfC,eAAe,EACfP,YAAa,CACX+B,WAAY,KACZC,UAAW,MAEb5T,OAAQ,KACRoS,aAAc,KAEdC,YAAa,IAIjBnP,QAASA,EACTqB,UAAWA,EACXhB,QAASA,EAETzK,QAAS,IACJA,iB,uBC/BP,IAAIiQ,EAAM,CACT,aAAc,OACd,YAAa,OACb,aAAc,OACd,eAAgB,OAChB,YAAa,QAId,SAAS8K,EAAeC,GACvB,IAAI/S,EAAKgT,EAAsBD,GAC/B,OAAOpa,EAAoBqH,GAE5B,SAASgT,EAAsBD,GAC9B,IAAIpa,EAAoBgE,EAAEqL,EAAK+K,GAAM,CACpC,IAAI3Z,EAAI,IAAI0B,MAAM,uBAAyBiY,EAAM,KAEjD,MADA3Z,EAAE2B,KAAO,mBACH3B,EAEP,OAAO4O,EAAI+K,GAEZD,EAAerI,KAAO,WACrB,OAAOhT,OAAOgT,KAAKzC,IAEpB8K,EAAetZ,QAAUwZ,EACzB9Z,EAAOD,QAAU6Z,EACjBA,EAAe9S,GAAK,Q,kCC1BpB,gBAEA5B,eAAe8H,EAAWxF,EAAQrC,GAAU,GAC1C,MAAM,KAAE4U,EAAI,KAAEC,EAAO,EAAC,SAAEC,EAAQ,SAAEC,GAAa1S,EAC/C,aAAa2D,OAAUvH,IACrB,qDAAqDmW,EACrD5U,GAIJD,eAAeiV,EAAoB3S,EAAQrC,GAAU,GACnD,MAAM,KAAE4U,EAAI,KAAEC,EAAO,EAAC,SAAEC,EAAQ,SAAEC,GAAa1S,EAC/C,aAAa2D,OAAUvH,IACrB,2CAA2CmW,WAAcC,eAAkBC,cAAqBC,IAChG/U,GAIJD,eAAekV,EAAmB5S,EAAQrC,GAAU,GAClD,MAAM,KAAE4U,EAAI,KAAEC,EAAO,GAAMxS,EAC3B,aAAa2D,OAAUvH,IACrB,qDAAqDmW,WAAcC,IACnE7U,GAIJD,eAAemV,EAAmB3U,EAASP,GAAU,GACnD,aAAagG,OAAUxF,KACrB,iCACAD,EACAP,GAIJD,eAAeoV,EAA8B9S,EAAQrC,GAAU,GAC7D,MAAM,GAAE2B,GAAOU,EACf,aAAa2D,OAAUvH,IAAI,4BAA4BkD,KAAO3B,GAGhED,eAAeqV,EAAc7U,EAASP,GAAU,GAC9C,aAAagG,OAAU7E,MACrB,8CACAZ,EACAP,GAIJD,eAAesV,EAAuB9U,EAASP,GAAU,GACvD,aAAagG,OAAUtE,IACrB,mCACAnB,EACAP,GAIJD,eAAeuV,EAA2B/U,EAASoB,EAAI3B,GAAU,GAC/D,aAAagG,OAAU7E,MACrB,4BAA4BQ,KAC5BpB,EACAP,GAIJD,eAAewV,EAAclT,EAAQrC,GAAU,GAC7C,aAAagG,OAAUnE,OACrB,8CACA7B,EACAqC,GAIJtC,eAAeyV,EAAYjV,EAASP,GAAU,GAC5C,aAAagG,OAAU7E,MACrB,gCACAZ,EACAP,GAIJD,eAAe0V,EAAmBlV,EAASP,GAAU,GACnD,aAAagG,OAAUxF,KACrB,kDACAD,EACAP,GAIJD,eAAe2V,EAAsBnV,EAASP,GAAU,GACtD,aAAagG,OAAU7E,MACrB,wCACAZ,EACAP,GAIW,QACb6H,aACAoN,qBACAC,qBACAC,gCACAE,yBACAC,6BACAF,gBACAG,gBACAC,cACAC,qBACAC,wBACAV,wB,gKC3GK,MAAMW,EAAkB,CAAEC,aAAc,EAAGC,YAAa,I,oGCsD/D,MAAM3O,EAAQC,iBAER1D,EAAQ,CACZqS,SAAU,GACVC,aAAc,GACdC,aAAc,KACdC,UAAU,EACVC,YAAa,GACbC,SAAU,GACVC,YAAa,GACbC,eAAgB,EAChBC,eAAe,EACfC,oBAAoB,EACpBC,qBAAsB,GACtBC,SAAU,GACVC,qBAAqB,EACrBC,uBAAuB,EACvBC,eAAe,EACfC,mBAAmB,EACnBC,mBAAoB,GACpBC,mBAAoB,GACpBC,oBAAqB,GACrBC,qBAAsB,GACtBC,aAAc,UACdC,cAAe,GACfC,cAAe,GACfC,QAAS,GACTC,WAAY,GACZC,YAAY,EACZC,UAAW,GACXC,gBAAiB,GACjBC,UAAW,IAAKC,QAChBC,cAAe,GACfC,mBAAoB,GACpBC,yBAA0B,GAC1BC,sBAAuB,GACvBC,wBAAwB,EACxBC,iBAAiB,EACjBC,uBAAuB,EACvBC,sBAAsB,EACtBC,cAAc,EACdC,sBAAsB,EACtBC,aAAc,GACdC,uBAAuB,EACvBC,wBAAwB,EACxBC,YAAa,GACbC,gBAAiB,GACjBC,oBAAqB,GACrBC,oBAAqB,GACrBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,SAAU,IAAKpD,GACfqD,oBAAoB,EACpBC,iBAAiB,EACjBC,qBAAqB,EACrBC,sBAAsB,EACtBC,eAAgB,GAChBC,uBAAuB,EACvBC,iBAAkB7L,aAAaC,QAAQ,gBACvC6L,2BAA2B,EAC3BC,0BAA0B,EAC1BC,sBAAuB,GACvBC,qBAAsB,GACtBC,wBAAyB,GACzBC,cAAe,GACfC,wBAAyB,GACzBC,eAAgB,GAChBC,qBAAsB,GACtBC,wBAAwB,EACxBC,2BAA4B,KAC5BC,iCAAiC,EACjCC,cAAe,GACfC,iBAAkB,GAClBC,4BAA4B,EAC5BC,qBAAsB,GACtBC,4BAA6BC,OAAsB,cACnDC,eAAgB,GAChBC,kBAAmB,GACnBC,kBAAmB,GACnBC,+BAAgC,GAChCC,wBAAyB,GACzBC,kBAAkB,EAClBC,oBAAqB,IAAIC,IACzBC,0BAA0B,EAC1BC,iBAAkB,GAClBC,0BAA2B,KAC3BC,aAAcC,OAAOC,iBACrBC,sBAAsB,EACtBC,qBAAsB,GACtBC,mBAAoB,GACpBC,cAAe,KACfC,sCAAsC,EACtCC,uBAAuB,EACvBC,iCAAiC,EACjCC,oBAAqB,IAGjBhY,EAAU,CACdgS,SAAWrS,GAAUA,EAAMqS,SAC3BmC,gBAAkBxU,GAAUA,EAAMwU,gBAClCC,sBAAwBzU,GAAUA,EAAMyU,sBACxCC,qBAAuB1U,GAAUA,EAAM0U,qBACvCC,aAAe3U,GAAUA,EAAM2U,aAC/BC,qBAAuB5U,GAAUA,EAAM4U,qBACvCtC,aAAetS,GAAUA,EAAMsS,aAC/BC,aAAevS,GAAUA,EAAMuS,aAC/BC,SAAWxS,GAAUA,EAAMwS,SAC3BC,YAAczS,GAAUA,EAAMyS,YAC9BC,SAAW1S,GAAUA,EAAM0S,SAC3BC,YAAc3S,GAAUA,EAAM2S,YAC9BC,eAAiB5S,GAAUA,EAAM4S,eACjCC,cAAgB7S,GAAUA,EAAM6S,cAChCC,mBAAqB9S,GAAUA,EAAM8S,mBACrCC,qBAAuB/S,GAAUA,EAAM+S,qBACvCC,SAAWhT,GAAUA,EAAMgT,SAC3BC,oBAAsBjT,GAAUA,EAAMiT,oBACtCC,sBAAwBlT,GAAUA,EAAMkT,sBACxCC,cAAgBnT,GAAUA,EAAMmT,cAChCC,kBAAoBpT,GAAUA,EAAMoT,kBACpCC,mBAAqBrT,GAAUA,EAAMqT,mBACrCC,mBAAqBtT,GAAUA,EAAMsT,mBACrCC,oBAAsBvT,GAAUA,EAAMuT,oBACtCC,qBAAuBxT,GAAUA,EAAMwT,qBACvCC,aAAezT,GAAUA,EAAMyT,aAC/BC,cAAgB1T,GAAUA,EAAM0T,cAChCC,cAAgB3T,GAAUA,EAAM2T,cAChCC,QAAU5T,GAAUA,EAAM4T,QAC1BE,WAAa9T,GAAUA,EAAM8T,WAC7BC,UAAY/T,GAAUA,EAAM+T,UAC5BQ,uBAAyBvU,GAAUA,EAAMuU,uBACzCM,aAAe7U,GAAUA,EAAM6U,aAC/BC,sBAAwB9U,GAAUA,EAAM8U,sBACxCC,uBAAyB/U,GAAUA,EAAM+U,uBACzCC,YAAchV,GAAUA,EAAMgV,YAC9BC,gBAAkBjV,GAAUA,EAAMiV,gBAClCE,oBAAsBnV,GAAUA,EAAMmV,oBACtCC,4BAA8BpV,GAAUA,EAAMoV,4BAC9CC,kBAAoBrV,GAAUA,EAAMqV,kBACpCC,SAAWtV,GAAUA,EAAMsV,SAC3BnD,aAAenS,GAAUA,EAAMsV,SAASnD,aACxCC,YAAcpS,GAAWsY,GAAStY,EAAMsV,SAASlD,YAAYkG,IAAS,GACtE/C,mBAAqBvV,GAAUA,EAAMuV,mBACrCC,gBAAkBxV,GAAUA,EAAMwV,gBAClCC,oBAAsBzV,GAAUA,EAAMyV,oBACtCC,qBAAuB1V,GAAUA,EAAM0V,qBACvCC,eAAiB3V,GAAUA,EAAM2V,eACjCsC,cAAgBjY,GAAUA,EAAMiY,cAChCC,qCAAuClY,GACrCA,EAAMkY,qCACRC,sBAAwBnY,GAAUA,EAAMmY,sBACxCC,gCAAkCpY,GAChCA,EAAMoY,gCAERG,MAAQvY,GAAWwY,GACjBxY,EAAM2T,cAAc6E,GAAc,SAEpCC,SAAWzY,GAAWwY,GAAiBxY,EAAM+T,UAAUyE,GAAc,SAErEE,iBAAmB1Y,GAAWwY,GAC5BxY,EAAMwT,qBAAqBgF,GAAc,SAE3CG,SAAW3Y,GAAU,CAACwY,EAAcI,IAClC5Y,EAAM2T,cAAc6E,GAAc,SAASI,GAAW,YAExDC,YAAc7Y,GAAU,CAACwY,EAAcI,IACrC5Y,EAAM+T,UAAUyE,GAAc,SAASI,GAAW,YAEpDE,oBAAsB9Y,GAAU,CAACwY,EAAcI,IAC7C5Y,EAAMwT,qBAAqBgF,GAAc,SAASI,GAAW,YAE/DG,WAAa/Y,GAAWwY,IAAY,IAAAQ,EAAA,OACD,QADCA,EAClChZ,EAAM2T,cAAc6E,UAAa,IAAAQ,OAAA,EAAjCA,EAAmCT,MAAM7iB,QAE3CujB,cAAgBjZ,GAAU,CAACwY,EAAcI,KAAS,IAAAM,EAAA,OACf,QADeA,EAChDlZ,EAAM2T,cAAc6E,UAAa,IAAAU,GAAkB,QAAlBA,EAAjCA,EAAmCX,MAAMK,UAAU,IAAAM,OAAA,EAAnDA,EAAqDP,SAASjjB,QAEhEse,gBAAkBhU,GAAUA,EAAMgU,gBAClCC,UAAYjU,GAAUA,EAAMiU,UAC5BE,cAAgBnU,GAAUA,EAAMmU,cAChCC,mBAAqBpU,GAAUA,EAAMoU,mBACrCc,oBAAsBlV,GAAUA,EAAMkV,oBACtCU,sBAAwB5V,GAAUA,EAAM4V,sBACxCC,iBAAmB7V,GAAUA,EAAM6V,iBACnCC,0BAA4B9V,GAAUA,EAAM8V,0BAC5CC,yBAA2B/V,GAAUA,EAAM+V,yBAC3CC,sBAAwBhW,GAAUA,EAAMgW,sBACxCC,qBAAuBjW,GAAUA,EAAMiW,qBACvCC,wBAA0BlW,GAAUA,EAAMkW,wBAC1CC,cAAgBnW,GAAUA,EAAMmW,cAChCC,wBAA0BpW,GAAUA,EAAMoW,wBAC1CC,eAAiBrW,GAAUA,EAAMqW,eACjCC,qBAAuBtW,GAAUA,EAAMsW,qBACvCI,cAAgB1W,GAAUA,EAAM0W,cAChCC,iBAAmB3W,GAAUA,EAAM2W,iBACnCJ,uBAAyBvW,GAAUA,EAAMuW,uBACzCC,2BAA6BxW,GAAUA,EAAMwW,2BAC7CC,gCAAkCzW,GAChCA,EAAMyW,gCACRW,wBAA0BpX,GAAUA,EAAMoX,wBAC1CE,oBAAsBtX,GAAUA,EAAMsX,oBACtCV,2BAA6B5W,GAAUA,EAAM4W,2BAC7CE,4BAA8B9W,GAAUA,EAAM8W,4BAC9CD,qBAAuB7W,GAAUA,EAAM6W,qBACvCG,eAAiBhX,GAAUA,EAAMgX,eACjCC,kBAAoBjX,GAAUA,EAAMiX,kBACpCC,kBAAoBlX,GAAUA,EAAMkX,kBACpCG,iBAAmBrX,GAAUA,EAAMqX,iBACnCG,yBAA2BxX,GAAUA,EAAMwX,yBAC3CC,iBAAmBzX,GAAUA,EAAMyX,iBACnCC,0BAA4B1X,GAAUA,EAAM0X,0BAC5CyB,aAAenZ,GAAUA,EAAM2X,aAC/BG,qBAAuB9X,GAAUA,EAAM8X,qBACvCC,qBAAuB/X,GAAUA,EAAM+X,qBACvCC,mBAAqBhY,GAAUA,EAAMgY,mBACrCK,oBAAsBrY,GAAUA,EAAMqY,qBAElC3X,EAAU,CACd0Y,yBAAwB,OAAExY,GAAU9D,GAClC8D,EAAOC,OAAMwY,6BAA8Bvc,IAE7Cwc,0BAAyB,OAAE1Y,GAAU9D,GACnC8D,EAAOC,OAAM0Y,yBAA0Bzc,IAGzC0c,oCAAmC,OAAE5Y,GAAU9D,GAC7C8D,EAAOC,OAAM4Y,oCAAqC3c,IAGpD,mBAAkB,OAAE8D,IAClBA,EAAOC,OAAM6Y,uBAAuB,GACpC,MAAO3f,EAAO7E,SAAcykB,OAAYtd,YAAW,GACnDuE,EAAOC,OAAM6Y,uBAAuB,GAChC3f,EACFiC,QAAQiK,IAAI,CAAElM,UAGhB6G,EAAOC,OAAM+Y,UAAW1kB,IAG1B,uBAAsB,OAAE0L,GAAUiZ,GAEhC,MAAO9f,EAAO+f,SAAeH,OAAY3c,0BACvC6c,GACA,GAEE9f,EACFiC,QAAQiK,IAAI,CAAElM,UAGhB6G,EAAOC,OAAMkZ,kBAAmBD,IAGlCE,iBAAgB,OAAEpZ,EAAM,SAAEqD,GAAY9G,GACpCyD,EAAOC,OAAMoZ,kBAAmB9c,GAChC8G,EAAS,qBACTA,EAAS,yBACTA,EAAS,uBAGXiW,UAAS,OAAEtZ,GAAUkZ,GACnBlZ,EAAOC,OAAM+Y,UAAWE,IAG1BK,eAAc,OAAEvZ,GAAUwZ,GACxBxZ,EAAOC,OAAMwZ,iBAAkBD,IAGjCE,kBAAiB,OAAE1Z,GAAUxF,GAC3BwF,EAAOC,OAAM0Z,oBAAqBnf,IAGpCof,qBAAoB,OAAE5Z,GAAU6Z,GAC9B7Z,EAAOC,OAAM6Z,sBAAuBD,IAGtCE,kBAAiB,OAAE/Z,IACjBA,EAAOC,OAAMoZ,kBAAmB,MAChCrZ,EAAOC,OAAMwZ,iBAAkB,IAC/BzZ,EAAOC,OAAM+Z,cAAe,IAC5Bha,EAAOC,OAAMga,mBAAoB,IACjCja,EAAOC,OAAMia,mBAAoB,IACjCla,EAAOC,OAAMka,wBAAyB,IACtCna,EAAOC,OAAMma,yBAA0B,IACvCpa,EAAOC,OAAMoa,sBAAuB,YAGtCC,oBAAmB,OAAEta,IACnBA,EAAOC,OAAMsa,oBAAqB,OAGpCC,yCAAwC,OAAExa,GAAUxF,GAClDwF,EAAOC,OAAMwa,gDAAiDjgB,IAGhE,wBAAuB,OAAEwF,EAAM,SAAEqD,GAAYnH,GAC3C,IAAIK,EACFC,EAAY,KAES,kBAAZN,IACNK,SAAQC,YAAY,MAASN,GAEhCK,EAASL,EAEX8D,EAAOC,OAAMya,8BAA8B,GAC3C,MAAOvhB,EAAO7E,SAAcykB,OAAYzc,oBACtCC,GACA,EACAC,GAGF,GADAwD,EAAOC,OAAMya,8BAA8B,GACvCvhB,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAM,YACJqgB,EAAW,WACXrB,EAAU,SACV/F,EAAQ,YACRuI,EAAW,cACX7H,EAAa,iBACb8H,EACA3G,aAAc4G,EAAE,aAChBC,EAAY,QACZC,EAAO,eACPC,EAAc,aACdC,EAAY,cACZC,EAAa,gBACbC,EAAe,eACfC,EAAc,oBACdC,EAAmB,mBACnBC,EAAkB,WAClBC,EAAU,iCACVC,GACElnB,EACEmnB,EACU,kBAAPZ,EAA0B,OAAPA,EAAc,GAAKA,EAAM/U,KAAK4V,MAAMb,GAC1D9F,EAAiB4G,eAAkBrnB,GACnCwhB,EACuB,kBAApBqF,EACHrV,KAAK4V,MAAMP,GACXA,EACNnb,EAAOC,OAAMwZ,iBAAkBD,GAC/BxZ,EAAOC,OAAM2b,qBAAsBzD,GACnCnY,EAAOC,OAAM4b,cAAezJ,GAC5BpS,EAAOC,OAAMia,mBAAoBpH,GACjC9S,EAAOC,OAAM6b,kBAAmBL,GAChCzb,EAAOC,OAAM0Z,oBAAqBoB,GAClC/a,EAAOC,OAAM8b,mBAAoBf,GAAkC,IACnEhb,EAAOC,OAAM+b,iCAAkCd,GAC/Clb,EAAOC,OAAMgc,oBAAqBnG,GAClC9V,EAAOC,OAAMic,iBAAkBjB,GAC/Bjb,EAAOC,OAAMkc,mBAAoBb,GACjCtb,EAAOC,OAAMsa,oBAAqBgB,GAClCvb,EACEC,OAAMwa,gDACNe,GAGFxb,EAAOC,OAAMmc,oBAAqBrH,GAElC1R,EAAS,qBAAsBgY,GAE/B,MAAMgB,EAA2B,OAAjBvB,EAAwB,GAAKA,EACzC/lB,OAAOgT,KAAKsU,GAASvnB,OAAS,IAChCkL,EAAOC,OAAMqc,cAAeD,GAC5Brc,EAAOC,OAAMsc,wBAAwB,IAEvC,MAAMC,EAA6B,OAAnBpB,EAA0B,GAAKA,EAC/C/X,EAAS,0BAA2BmZ,IAC/B5B,GAAoB6B,eAAsB9B,GAC7CtX,EAAS,0BAETrD,EAAOC,OAAMka,wBAAyBQ,GACtC3a,EAAOC,OAAMma,yBAA0BQ,KAI3CxJ,oBAAmB,OAAEpR,GAAUqb,GAC7Brb,EAAOC,OAAMyc,yBAA0BrB,IAGzCsB,kBAAiB,OAAE3c,GAAU9D,GACvBA,GAAS8D,EAAOC,OAAMgc,oBAAqB/f,IAGjD,sBAAqB,OAAE8D,GAAUzD,GAC/B,MAAOpD,EAAO7E,SAAcykB,OAAY9b,iBAAiBV,GAAQ,GACjE,GAAIpD,EAAO,OACX,IAAK,MAAMyjB,KAAQtoB,EACjB,IAAKuoB,eAAcD,EAAKE,eAAgB,CACtCF,EAAKE,cAAgBC,iBACrB,MAAQzf,GAAIK,KAAaqf,GAAeJ,GACjCzjB,SAAe4f,OAAYrb,iBAChCC,EACAqf,GAGF,GAAI7jB,EAEF,YADAiC,QAAQiK,IAAI,8BAA+BlM,GAKjD,MAAM8jB,EAAiB3oB,EAAK4oB,OAAQziB,IAAsB,IAAhBA,EAAE0iB,WACtCC,EAASC,eAAqB/oB,GAC9BgpB,EAASC,eAAqBjpB,GACpC0L,EAAOC,OAAMud,iBAAkBlpB,GAC/B0L,EAAOC,OAAMwd,wBAAyBR,GACtCjd,EAAOC,OAAMyd,sBAAuB,IAAKN,IACzCpd,EAAOC,OAAM0d,sBAAuB,IAAKL,KAS3C,qBAAoB,OAAEtd,EAAM,MAAEZ,GAASlD,GACrC,MAAO/C,EAAO7E,SAAcykB,OAAY5b,cAAcjB,GAClD/C,EACFiC,QAAQiK,IAAI,8BAA+BlM,GAG7C6G,EAAOC,OAAMud,iBAAkB,IAAIpe,EAAMgV,YAAa9f,KAGxD,sBAAqB,OAAE0L,GAAU9D,GAC/B,MAAO/C,EAAO7E,SAAcykB,OAAY3b,eAAelB,GACnD/C,GACFiC,QAAQiK,IAAI,8BAA+BlM,IAK/C,yBAAwB,OAAE6G,GAAU1C,GAClC,MAAOnE,SAAe4f,OAAYxb,kBAAkBD,GAChDnE,GACFiC,QAAQiK,IAAI,8BAA+BlM,IAK/C,sBAAqB,OAAE6G,GAAU9D,GAC/B,MAAO/C,EAAO7E,SAAcykB,OAAYtb,eAAevB,GACnD/C,GACFiC,QAAQiK,IAAI,8BAA+BlM,IAK/C,wBAAuB,OAAE6G,EAAM,MAAEZ,GAASlD,GACxC,MAAM,SAAEyB,EAAQ,WAAEqf,GAAe9gB,GAE1B/C,SAAe4f,OAAYrb,iBAAiBC,EAAUqf,GAC7D,GAAI7jB,EAEF,YADAiC,QAAQiK,IAAI,8BAA+BlM,GAG7C,MAAMkH,EAAO,IAAIjB,EAAMgV,aACjBwJ,EAAcvd,EAAKwd,UAAW7Z,GAAQA,EAAI1G,KAAOK,GACvD0C,EAAKud,GAAeZ,EACpBhd,EAAOC,OAAMud,iBAAkBnd,IAGjC,wBAAuB,OAAEL,GAAUrC,GACjC,MAAOxE,SAAe4f,OAAYnb,iBAAiBD,GACnD,GAAIxE,EAEF,YADAiC,QAAQiK,IAAI,8BAA+BlM,GAG7C,MAAMkH,EAAO,IAAIjB,EAAMgV,aAAa8I,OAAQlZ,GAAQA,EAAI1G,KAAOK,GAC/DqC,EAAOC,OAAMud,iBAAkBnd,IAGjC,0BAAyB,OAAEL,GAAUzD,GACnC,MAAOpD,EAAO7E,SAAcykB,OAAYlb,qBAAqBtB,GAAQ,GACjEpD,GACJ6G,EAAOC,OAAM6d,sBAAuBxpB,IAGtCypB,uBAAsB,OAAE/d,GAAU9D,GAChC,MAAM,KAAEzC,EAAI,UAAE0Z,GAAc6K,eAAsB9hB,GAClD8D,EAAOC,OAAMge,2BAAoC,OAAT9K,QAAS,IAATA,OAAS,EAATA,EAAWre,QAAS,GAC5DkL,EAAOC,OAAMie,6BAA8BC,eAAqBhL,IAChEnT,EAAOC,OAAM+Z,cAAevgB,GAC5BuG,EAAOC,OAAMga,mBAAoB9G,IAGnCiL,wBAAuB,OAAEpe,EAAM,MAAEZ,IAC/B,MAAM,cAAE2T,GAAkB3T,EACpBif,EAAqBC,eAAsBvL,GACjD/S,EAAOC,OAAMse,2BAA4BF,IAG3CG,wBAAuB,OAAExe,EAAM,MAAEZ,IAC/B,MAAM,cAAE2T,GAAkB3T,EACpBmV,EAAsBkK,eAAsB1L,GAClD/S,EAAOC,OAAMye,2BAA4BnK,IAG3CoK,0BAAyB,OAAE3e,EAAM,MAAEZ,IACjC,MAAM,cAAE2T,GAAkB3T,EACpBwf,EAAwBC,eAAwB9L,GACtD/S,EAAOC,OAAM6e,6BAA8BF,IAG7CG,uBAAsB,OAAE/e,GAAU9D,GAChC8D,EAAOC,OAAM+e,yBAA0B9iB,IAGzC+iB,4BAA2B,OAAEjf,EAAM,MAAEZ,IACnC,MAAQ2T,cAAeI,EAAS,cAAEL,EAAa,cAAEyC,GAAkBnW,EAC7DiB,EAAO,GACb,IAAI6e,EAAQ,EACZ/L,EAAUnL,QAAQ,CAACmX,EAASvH,KAC1BuH,EAAQxH,MAAM3P,QAAQ,CAAC0P,EAAMM,KAC3BN,EAAKK,SAAS/P,QAAQ,CAACoX,EAAGC,KACxBhf,EAAK,GAAGuX,KAAgBI,KAAaqH,KAAkB,CACrDC,WAAYxM,EAAcyM,SAASL,GACnCM,WAAYjK,EAAcgK,SAASL,GACnCA,SAEFA,UAINlf,EAAOC,OAAMwf,+BAAgCpf,IAG/Cqf,gCAA+B,OAAE1f,EAAM,MAAEZ,GAASlD,GAChD,MAAQsZ,wBAAyBnV,GAASjB,GACpC,aAAEwY,EAAY,UAAEI,EAAS,aAAEqH,GAAiBnjB,EAClDmE,EAAK,GAAGuX,KAAgBI,KAAaqH,KAAgBC,YAClDjf,EAAK,GAAGuX,KAAgBI,KAAaqH,KAAgBC,WACxDtf,EAAOC,OAAMwf,+BAAgCpf,IAG/Csf,gCAA+B,OAAE3f,EAAM,MAAEZ,GAASlD,GAChD,MAAQsZ,wBAAyBnV,GAASjB,GACpC,aAAEwY,EAAY,UAAEI,EAAS,aAAEqH,GAAiBnjB,EAC5C0jB,EAAa,GAAGhI,KAAgBI,KAAaqH,IACnDhf,EAAKuf,GAAYJ,YAAcnf,EAAKuf,GAAYJ,WAChDxf,EAAOC,OAAMwf,+BAAgCpf,IAG/C,mBAAkB,OAAEL,EAAM,MAAEZ,IAC1B,MAAM,aACJuS,EAAY,wBACZ6D,EAAuB,cACvB1C,EAAa,cACbyC,GACEnW,EACJ,IAAIlD,EAAU,GACd,MAAM2jB,EACJC,eAAsBtK,EAAyB,gBAC/C1C,EAAciN,OAAO9W,KAAK,KACtB+W,EACJF,eAAsBtK,EAAyB,gBAC/CD,EAAcwK,OAAO9W,KAAK,KAE5B,GAAI4W,EAAc,CAChB,IAAII,EAAsBlrB,OAAOiU,OAAOwM,GACrC0H,OAAQxmB,GAAMA,EAAE4oB,YAChBha,IAAK5O,GAAMA,EAAEwoB,OAChBhjB,EAAQ,iBAAmB+jB,EAE7B,GAAID,EAAc,CAChB,IAAIE,EAAsBnrB,OAAOiU,OAAOwM,GACrC0H,OAAQxmB,GAAMA,EAAE8oB,YAChBla,IAAK5O,GAAMA,EAAEwoB,OAChBhjB,EAAQ,kBAAoBgkB,EAG9B,MAAO/mB,SAAe4f,OAAYlc,WAAW8U,EAAc,IACtDzV,IAED/C,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6mB,GAAgBhgB,EAAOC,OAAM8b,mBAAoBmE,GACjDL,GAAgB7f,EAAOC,OAAMia,mBAAoB+F,KAGnD,kBAAiB,SAAE5c,GAAY9G,GAC7B,MAAOpD,SAAe4f,OAAYhc,WAAWR,GACzCpD,EACFiC,QAAQiK,IAAI,CAAElM,iBAGVkK,EAAS,0BACTA,EAAS,iBAGjB8c,qBAAoB,OAAEngB,GAAU9D,GAC9B8D,EAAOC,OAAMoa,sBAAuBne,IAGtCoT,YAAW,OAAEtP,EAAM,SAAEqD,IACnBrD,EAAOC,OAAMmgB,YAAa,IAC1BpgB,EAAOC,OAAMogB,aAAc,IAC3BrgB,EAAOC,OAAMqgB,yBAA0B,IACvCjd,EAAS,oBACTA,EAAS,sBAGXkd,YAAW,OAAEvgB,GAAU9D,GACrB8D,EAAOC,OAAMogB,aAAcnkB,IAG7BskB,2BAA0B,OAAExgB,GAAU9D,GACpC8D,EAAOC,OAAMwgB,8BAA+BvkB,IAG9CwkB,cAAa,OAAE1gB,GAAU9D,GACvB8D,EAAOC,OAAMmgB,YAAalkB,IAG5BykB,yBAAwB,OAAE3gB,GAAU9D,GAClC8D,EAAOC,OAAM2gB,wBAAyB1kB,IAGxC2kB,YAAW,OAAE7gB,EAAM,MAAEZ,IACnB,MAAM+T,EAAY,IAAI/T,EAAM+T,WAC5BA,EAAU/d,KAAK,CACbqE,KAAM,GACNke,MAAO,KAET3X,EAAOC,OAAMmgB,YAAajN,IAG5B2N,eAAc,OAAE9gB,EAAM,MAAEZ,GAASlD,GAC/B,MAAM,aAAE0b,EAAY,QAAEuH,GAAYjjB,EAC5BiX,EAAY,IAAI/T,EAAM+T,WAC5BA,EAAUyE,GAAc,QAAUuH,EAClCnf,EAAOC,OAAMmgB,YAAajN,IAG5B4N,0BAAyB,OAAE/gB,EAAM,MAAEZ,GAASlD,GAC1C,MAAM,aAAE0b,EAAY,QAAEuH,GAAYjjB,EAC5BiX,EAAY,IAAI/T,EAAMwT,sBAC5BO,EAAUyE,GAAc,QAAUuH,EAClCnf,EAAOC,OAAM2gB,wBAAyBzN,IAGxC6N,eAAc,OAAEhhB,EAAM,MAAEZ,GAASlD,GAC/B,MAAM,aAAE0b,GAAiB1b,EACnBiX,EAAY/T,EAAM+T,UAAU+J,OAChC,CAACkC,EAAGF,IAAUA,IAAUtH,GAG1B5X,EAAOC,OAAMmgB,YAAajN,IAG5B8N,SAAQ,OAAEjhB,EAAM,MAAEZ,GAASlD,GAAS,IAAAglB,EAClC,MAAM,aAAEtJ,GAAiB1b,EACnBiX,EAAY,IAAI/T,EAAM+T,WACtBgO,EAAehO,EAAUyE,GAAc,SACrB,QAApBsJ,EAACC,EAAald,IAAI,UAAE,IAAAid,GAAnBA,EAAqBznB,OAAU0nB,EAAarsB,QAMjDqe,EAAUyE,GAAc,SAASxiB,KAAK,CACpCqE,KAAM,GACNse,SAAU,KAGZ/X,EAAOC,OAAMmgB,YAAajN,IAVxBtQ,EAAMue,KAAK,qCAAsC,CAC/CpoB,QAAS,OAYfqoB,YAAW,OAAErhB,EAAM,MAAEZ,GAASlD,GAC5B,MAAM,KAAEwb,EAAI,UAAEM,EAAS,aAAEJ,GAAiB1b,EACpCiX,EAAY,IAAI/T,EAAM+T,WACtBgO,EAAe,IAAIhO,EAAUyE,GAAc,UACjDuJ,EAAanJ,GAAW,QAAUN,EAClCvE,EAAUyE,GAAc,SAAWuJ,EACnCnhB,EAAOC,OAAMmgB,YAAajN,IAG5BmO,uBAAsB,OAAEthB,EAAM,MAAEZ,GAASlD,GACvC,MAAM,KAAEwb,EAAI,UAAEM,EAAS,aAAEJ,GAAiB1b,EACpCiX,EAAY,IAAI/T,EAAMwT,sBACtBuO,EAAe,IAAIhO,EAAUyE,GAAc,UACjDuJ,EAAanJ,GAAW,QAAUN,EAClCvE,EAAUyE,GAAc,SAAWuJ,EACnCnhB,EAAOC,OAAM2gB,wBAAyBzN,IAGxCoO,YAAW,OAAEvhB,EAAM,MAAEZ,GAASlD,GAC5B,MAAM,UAAE8b,EAAS,aAAEJ,GAAiB1b,EAC9BiX,EAAY,IAAI/T,EAAM+T,WACtBwE,EAAQxE,EAAUyE,GAAc,SAASsF,OAC7C,CAACkC,EAAGF,IAAUA,IAAUlH,GAE1B7E,EAAUyE,GAAc,SAAWD,EACnC3X,EAAOC,OAAMmgB,YAAajN,IAG5BqO,UAAS,OAAExhB,EAAM,MAAEZ,GAASlD,GAC1B,MAAM,aAAE0b,EAAY,UAAEI,EAAS,UAAEyJ,GAAcvlB,EACzCwlB,EAAiBtiB,EAAM+T,UAAUyE,GAAc,SAAS9iB,OAAS,EACvE,GACiB,IAAdkjB,GAAiC,OAAdyJ,GACnBzJ,IAAc0J,GAAgC,SAAdD,EAEjC,OAEF,MAAME,EAAmBC,eAAoB5J,EAAWyJ,GAClDtO,EAAY,IAAI/T,EAAM+T,WACtBwE,EAAQ,IAAIxE,EAAUyE,GAAc,UACpCvX,EAAOsX,EAAMK,GACnBL,EAAMK,GAAaL,EAAMgK,GACzBhK,EAAMgK,GAAoBthB,EAC1B8S,EAAUyE,GAAc,SAAWD,EACnC3X,EAAOC,OAAMmgB,YAAajN,IAG5B0O,YAAW,OAAE7hB,EAAM,MAAEZ,GAASlD,GAC5B,MAAM,UAAE8b,EAAS,aAAEJ,GAAiB1b,EAC9BiX,EAAY,IAAI/T,EAAM+T,WACtB4E,EAAW5E,EAAUyE,GAAc,SAASI,GAAW,YACxDD,EAAS9T,IAAI,KAAQ8T,EAASjjB,QAMnCqe,EAAUyE,GAAc,SAASI,GAAW,YAAY5iB,KAAK,IAC7D4K,EAAOC,OAAMmgB,YAAajN,IANxBtQ,EAAMue,KAAK,yCAA0C,CACnDpoB,QAAS,OAQf8oB,eAAc,OAAE9hB,EAAM,MAAEZ,GAASlD,GAC/B,MAAM,QAAE6lB,EAAO,aAAE1C,EAAY,UAAErH,EAAS,aAAEJ,GAAiB1b,EACrDiX,EAAY,IAAI/T,EAAM+T,WAC5BA,EAAUyE,GAAc,SAASI,GAAW,YAAYqH,GACtD0C,EACF/hB,EAAOC,OAAMmgB,YAAajN,IAG5B6O,0BAAyB,OAAEhiB,EAAM,MAAEZ,GAASlD,GAC1C,MAAM,QAAE6lB,EAAO,aAAE1C,EAAY,UAAErH,EAAS,aAAEJ,GAAiB1b,EACrDiX,EAAY,IAAI/T,EAAMwT,sBAC5BO,EAAUyE,GAAc,SAASI,GAAW,YAAYqH,GACtD0C,EACF/hB,EAAOC,OAAM2gB,wBAAyBzN,IAGxC8O,eAAc,OAAEjiB,EAAM,MAAEZ,GAASlD,GAC/B,MAAM,aAAEmjB,EAAY,UAAErH,EAAS,aAAEJ,GAAiB1b,EAC5CiX,EAAY,IAAI/T,EAAM+T,WAC5BA,EAAUyE,GAAc,SAASI,GAAW,YAAc7E,EACxDyE,GACA,SAASI,GAAW,YAAYkF,OAChC,CAACkC,EAAGF,IAAUA,IAAUG,GAE1Brf,EAAOC,OAAMmgB,YAAajN,IAG5B+O,aAAY,OAAEliB,EAAM,MAAEZ,GAASlD,GAC7B,MAAM,aAAE0b,EAAY,UAAEI,EAAS,aAAEqH,EAAY,UAAEoC,GAAcvlB,EACvDimB,EACJ/iB,EAAM+T,UAAUyE,GAAc,SAASI,GAAW,YAAYljB,OAAS,EACzE,GACoB,IAAjBuqB,GAAoC,OAAdoC,GACtBpC,IAAiB8C,GAAmC,SAAdV,EAEvC,OAEF,MAAME,EAAmBC,eAAoBvC,EAAcoC,GACrDtO,EAAY,IAAI/T,EAAM+T,WACtB4E,EAAW,IACZ5E,EAAUyE,GAAc,SAASI,GAAW,aAG3C3X,EAAO0X,EAASsH,GACtBtH,EAASsH,GAAgBtH,EAAS4J,GAClC5J,EAAS4J,GAAoBthB,EAC7B8S,EAAUyE,GAAc,SAASI,GAAW,YAAcD,EAC1D/X,EAAOC,OAAMmgB,YAAajN,IAG5BiP,uBAAsB,OAAEpiB,IACtBA,EAAOC,OAAM+e,yBAA0B,IACvChf,EAAOC,OAAMka,wBAAyB,IACtCna,EAAOC,OAAMma,yBAA0B,KAGzCiI,mBAAkB,OAAEriB,IAClBA,EAAOC,OAAM2gB,wBAAyB,IACtC5gB,EAAOC,OAAMmgB,YAAa,IAC1BpgB,EAAOC,OAAMogB,aAAc,IAC3BrgB,EAAOC,OAAMqiB,gBAAiB,IAC9BtiB,EAAOC,OAAMsiB,kBAAkB,GAC/BviB,EAAOC,OAAMqgB,yBAA0B,IACvCtgB,EAAOC,OAAMuiB,2BAA4B,IACzCxiB,EAAOC,OAAMwiB,sBAAuB,KAGtCC,mBAAkB,OAAE1iB,IAClBA,EAAOC,OAAM0iB,yBAAyB,GACtC3iB,EAAOC,OAAM2iB,oBAAoB,IAGnCC,qBAAoB,OAAE7iB,IACpBA,EAAOC,OAAM6iB,iCAAiC,IAGhDC,mBAAkB,OAAE/iB,EAAM,MAAEZ,EAAK,SAAEiE,IACjC,MAAM,mBAAEqP,GAAuBtT,EAC/B,GAAIsT,EAAoB,CACtB,MAAM,KAAEjZ,EAAI,UAAE0Z,GAAc6K,eAAsBtL,GAClDrP,EAAS,yBAA0B,WACnCrD,EAAOC,OAAM+e,yBAA0BvlB,GACvCuG,EAAOC,OAAM2gB,wBAAyBzN,GACtCnT,EAAOC,OAAM0iB,yBAAyB,OACjC,CACL,MAAMhI,EAAcqI,eAAsB5jB,GAC1CY,EAAOC,OAAM2gB,wBAAyBjG,GAExC3a,EAAOC,OAAM2iB,oBAAoB,IAGnC,sBAAqB,OAAE5iB,EAAM,MAAEZ,EAAK,SAAEiE,GAAY4f,GAChD,MAAM,qBAAErQ,EAAoB,aAAEjB,EAAY,mBAAEc,GAAuBrT,EACnE,GAAI8jB,eAAatQ,GAAuB,OACxC,GAAIuQ,eAAmBvQ,GAAuB,OAC9C,GAAIwQ,eAAgBxQ,GAAuB,OAC3C,GAAIyQ,eAAmBzQ,GAAuB,OAC9C,GAAI0Q,eAAqB1Q,GAAuB,OAChD5S,EAAOC,OAAMsjB,2BAA2B,GACxC,MAAMC,EAAuBC,eAC3B7Q,EACAH,GAEIiR,EAAkBT,EAClBU,EAAc,CAClBhJ,YAAa,GAAG6I,EAChB5I,iBAAkB8I,IAEbvqB,EAAO7E,SAAcykB,OAAYlc,WACtC8U,EACAgS,GACA,GAEF3jB,EAAOC,OAAMsjB,2BAA2B,GACpCpqB,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAMka,wBAAyBqJ,GACtCxjB,EAAOC,OAAMma,yBAA0B6I,GACvCjjB,EAAOC,OAAM+e,yBAA0B0E,GAEvCrgB,EAAS,yBAA0B4f,GACnC5f,EAAS,uBAGX,yBAAwB,OAAErD,EAAM,MAAEZ,EAAK,SAAEiE,IACvCrD,EAAOC,OAAM2jB,6BAA6B,GAC1C,MAAM,aAAEjS,GAAiBvS,GAClBjG,EAAO7E,SAAcykB,OAAYlc,WACtC8U,EACA,CAAEgJ,YAAa,OAAQC,iBAAkB,KACzC,GAEF5a,EAAOC,OAAM2jB,6BAA6B,GACtCzqB,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAM2jB,6BAA6B,GAC1C5jB,EAAOC,OAAM2iB,oBAAoB,GACjC5iB,EAAOC,OAAM0iB,yBAAyB,GACtCtf,EAAS,2BAGXwgB,wBAAuB,OAAE7jB,EAAM,MAAEZ,EAAK,SAAEiE,GAAY4f,GAClD,MAAM,YAAElR,EAAW,mBAAEW,GAAuBtT,EACtC0kB,EAAuB,YAAbb,EAAyBlR,EAAcW,EACvD1S,EAAOC,OAAMoa,sBAAuB4I,GACpC5f,EAAS,wBAAyBygB,IAGpCC,oBAAmB,OAAE/jB,GAAU9D,GAC7B8D,EAAOC,OAAMwiB,sBAAuBvmB,IAGtC8nB,YAAW,OAAEhkB,EAAM,MAAEZ,EAAK,SAAEiE,IAC1B,MAAM,QAAE2P,EAAO,UAAEG,EAAS,WAAED,GAAe9T,EAC3C,IAAI6kB,eAA6B7kB,KAC5B8T,IAAcgR,eAAiB9kB,MAChC8jB,eAAa/P,KACbgR,eAAsBhR,KACtBiR,eAAiCjR,KACjCgQ,eAAmBhQ,KACnBmQ,eAAqBnQ,KACrBiQ,eAAgBjQ,KAChBkQ,eAAmBlQ,KACnBkR,eAAalR,KACbmR,eAAWnR,KACXoR,eAAsBpR,GAI1B,OAHAnT,EAAOC,OAAMqiB,gBAAiBmB,eAActQ,EAAWH,IACnDE,EAAYsR,eAAsBplB,EAAOY,GACxCqD,EAAS,YACP,GAGT,eAAc,MAAEjE,EAAK,OAAEY,EAAM,SAAEqD,IAC7BrD,EAAOC,OAAMwkB,oBAAoB,GACjC,MAAM,QAAEzR,EAAO,WAAEC,GAAe7T,EAC1BlD,EAAU,CACd4V,SAAUkB,EACVwG,YAAavG,EACbkF,WAAYuM,eAActlB,GAC1BulB,aAAcvb,aAAaC,QAAQ,kBAG9BlQ,EAAO7E,SAAcykB,OAAYpc,QAAQT,GAAS,GAEzD,GADA8D,EAAOC,OAAMwkB,oBAAoB,GAC7BtrB,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAM+f,EAAQ,IAAI9Z,EAAMqS,SAAU,IAAKnd,IACvC+O,EAAS,qBACTrD,EAAO,YAAa1L,EAAKgJ,IACzB0C,EAAOC,OAAM+Y,UAAWE,GACxBlZ,EAAOC,OAAMoZ,kBAAmB/kB,EAAKgJ,KAGvC,gBAAe,MAAE8B,EAAK,OAAEY,IACtBA,EAAOC,OAAM2kB,6BAA6B,GAC1C,MAAM,YAAE7S,EAAW,aAAEJ,EAAY,SAAEG,GAAa1S,EAE1CylB,EAAa9L,OAAYnc,gBAAgB+U,GAAc,GACvDmT,EACJC,OAAcC,+BAA8B,EAAO,CACjDzU,KAAMoB,KAGHrJ,EAAK2c,SAAcpuB,QAAQ+C,IAAI,CACpCirB,EACAC,KAEK3rB,EAAO7E,GAAQgU,GACf4c,EAAQxe,GAAWue,EAG1B,GADAjlB,EAAOC,OAAM2kB,6BAA6B,GACtCzrB,GAAS+rB,EAEX,YADA9pB,QAAQiK,IAAI,CAAElM,QAAO+rB,WAGvB,GAAIC,eAAqBze,EAASoL,GAAW,OAC7C,GAAIsT,eAAmB9wB,EAAMwd,GAAW,OAExC9R,EAAOC,OAAMsiB,kBAAkB,GAC/B,MAAM,KAAE9oB,EAAI,UAAE0Z,GAAc6K,eAAsBjM,GAClD/R,EAAOC,OAAMogB,aAAc5mB,GAC3BuG,EAAOC,OAAMmgB,YAAajN,GAC1BnT,EAAOC,OAAMwiB,sBAAuBnP,OAAM+R,WAC1CrlB,EAAOC,OAAMqlB,oBAAqBC,eAAiBpS,KAGrDtW,YAAW,MAAEuC,EAAK,OAAEY,EAAM,SAAEqD,GAAYmiB,GACtC,OAAO,IAAI3uB,QAAQ6E,UACjBsE,EAAOC,OAAMwkB,oBAAoB,GACjC,MAAMvoB,EAAUupB,eAAqBrmB,EAAOomB,IAErCrsB,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNzV,GACA,GAEFwpB,eAA2BtmB,EAAOlD,EAASspB,GAE3CxlB,EAAOC,OAAMwkB,oBAAoB,GAC7BtrB,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAMwZ,iBAAkBvd,EAAQsd,aACvCxZ,EAAOC,OAAM+Z,cAAe9d,EAAQ4V,UACpC9R,EAAOC,OAAMoa,sBAAuB,WACpCra,EAAOC,OAAM+Y,UAAW2M,eAAoBvmB,IACxComB,IAAmBtpB,EAAQsd,aAC7BnW,EAAS,0BAA2BnH,EAAQkf,gBAC9C/X,EAAS,6BAA8BnH,GACvCmH,EAAS,qBACTvM,QAIJ8uB,4BAA2B,OAAE5lB,EAAM,MAAEZ,GAASlD,GAAS,IAAA2pB,EACrD,MAAMC,EAAgB,GAChBC,EAAiB,CACrB,2BACA,0BAEIC,EAAcjxB,OAAOgT,KAAK7L,GAKhC,GAJA6pB,EAAe/d,QAASlN,IAClBkrB,EAAYzG,SAASzkB,KACvBgrB,EAAchrB,GAAOgL,KAAK4V,MAAMxf,EAAQpB,OAEb,QAA3B+qB,EAAC9wB,OAAOgT,KAAK+d,UAAc,IAAAD,IAA1BA,EAA4B/wB,OAAQ,OACzC,MAAM,eAAEigB,GAAmB3V,EAC3B,IAAI,gBAAE6mB,EAAe,eAAEC,GAAmBnR,EAC1CkR,EAAkB,IAAKA,KAAoBH,GAC3C,MAAMK,EAAwB,CAC5BF,gBAAiBrlB,eAAUqlB,GAC3BC,eAAgBtlB,eAAUslB,IAE5BlmB,EAAOC,OAAMmc,oBAAqB+J,GAClC,MAAM/T,EAAWgU,eAAmBhnB,GACpCY,EAAOC,OAAM4b,cAAezJ,IAG9BiU,kBAAiB,OAAErmB,GAAU9D,GAC3B,OAAO,IAAIrF,QAAQ6E,MAAO5E,EAASC,KACjCiJ,EAAOC,OAAMqmB,6BAA6B,GAC1C,MAAOntB,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNzV,GACA,GAGF8D,EAAOC,OAAMqmB,6BAA6B,GACtCntB,IACFiC,QAAQiK,IAAI,CAAElM,UACdpC,KAEFD,OAIJyvB,8BAA6B,OAAEvmB,EAAM,SAAEqD,GAAYnH,GACjDmH,EAAS,yBAA0B,WACnCrD,EAAOC,OAAMumB,6BAA8BtqB,IAG7C,0BAAyB,OAAE8D,EAAM,MAAEZ,GAASqnB,GAC1CzmB,EAAOC,OAAMymB,+BAA+B,GAC5C,MAAMxqB,EAAU,CACd+X,aAAcwS,IAETttB,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNzV,GACA,SAEIyqB,eAAyBvnB,EAAOqnB,GACtCzmB,EAAOC,OAAMymB,+BAA+B,GACxCvtB,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAM6b,kBAAmBhW,KAAK4V,MAAM+K,IAC3CzmB,EAAOC,OAAMumB,8BAA8B,KAG7C,sBAAqB,OAAExmB,EAAM,MAAEZ,GAASlD,GACtC8D,EAAOC,OAAM2mB,6BAA6B,GAC1C,MAAM,WAAEC,EAAU,SAAEzU,EAAQ,aAAE0U,GAAiB5qB,EACzC6qB,EAAc,IACfF,EACHzL,eAAgB0L,IAEX3tB,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNoV,GACA,GAGF,OADA/mB,EAAOC,OAAM2mB,6BAA6B,GACtCztB,GACFiC,QAAQiK,IAAI,CAAElM,eACd0J,EAAM1J,MAAM,4CAGd0J,EAAM4D,QAAQ,iCACdzG,EAAOC,OAAM4b,cAAezJ,GAC5BpS,EAAOC,OAAMic,iBAAkB2K,EAAW5L,eAEnC,IAGT,4BAA2B,OAAEjb,GAAU9D,GACrC8D,EAAOC,OAAM+mB,qCAAqC,GAClD,MAAM,gBAAE3S,EAAe,aAAE1C,GAAiBvS,GACnCjG,EAAO7E,SAAcykB,OAAYjb,sBACtC6T,EACAzV,GACA,GAGF,OADA8D,EAAOC,OAAM+mB,qCAAqC,GAC9C7tB,GACFiC,QAAQiK,IAAIlM,GACL,UAEP6G,EAAOC,OAAM6d,sBAAuB,IAAIzJ,KAAoB/f,IACrD,IAIX,6BAA4B,OAAE0L,GAAUhC,GACtCgC,EAAOC,OAAM+mB,qCAAqC,GAClD,MAAM,gBAAE3S,GAAoBjV,GACrBjG,EAAOmP,SAAayQ,OAAYhb,sBAAsBC,GAAQ,GAErE,GADAgC,EAAOC,OAAM+mB,qCAAqC,GAC9C7tB,EAEF,OADAiC,QAAQiK,IAAIlM,GACL,QACF,CACL,IAAI8tB,EAAMjpB,EAAOipB,IAAIC,MAAM,KACvBC,EAAoB9S,EAAgB6I,OACrClZ,IAAG,IAAAojB,EAAAC,EAAA,QAEArjB,EAAI0T,MAAQ1Z,EAAO0Z,MACnBuP,EAAI1H,UACC,OAAHvb,QAAG,IAAHA,GAAsB,QAAnBojB,EAAHpjB,EAAKsjB,yBAAiB,IAAAF,OAAA,EAAtBA,EAAwBG,cACnB,OAAHvjB,QAAG,IAAHA,GAAkB,QAAfqjB,EAAHrjB,EAAKwjB,qBAAa,IAAAH,OAAA,EAAlBA,EAAoBE,gBAM9B,OADAvnB,EAAOC,OAAM6d,sBAAuB,IAAIqJ,IACjC,IAIX,qCAAoC,OAAEnnB,EAAM,MAAEZ,GAASlD,GACrD,MAAQoB,GAAIa,KAAWgI,GAAYjK,GAC7B,gBAAEmY,GAAoBjV,EAC5BY,EAAOC,OAAM+mB,qCAAqC,GAClD,MAAO7tB,EAAOmP,SAAayQ,OAAY7a,8BACrCC,EACAgI,GACA,GAGF,GADAnG,EAAOC,OAAM+mB,qCAAqC,GAC9C7tB,EAEF,OADAiC,QAAQiK,IAAIlM,GACL,QACF,CACL,MAAMsuB,EAAeC,eAAsBrT,EAAiBnY,GAE5D,OADA8D,EAAOC,OAAM6d,sBAAuB2J,GAC7B,IAIXE,qBAAoB,MAAEvoB,EAAK,SAAEiE,GAAYnH,GACvC,OAAO,IAAIrF,QAAQ6E,UACjB,MAAMksB,EAAO9hB,KAAKC,UAAU7J,IACrB/C,EAAO7E,SAAcykB,OAAYlc,WACtCuC,EAAMuS,aACN,CAAEwJ,gBAAiByM,IACnB,GAEEzuB,IACFiC,QAAQiK,IAAI,qCACZvO,GAAQ,IAEV,MAAMgf,EAAgBhQ,KAAK4V,MAAMpnB,EAAK6mB,iBACtC9X,EAAS,mBAAoByS,GAC7Bhf,GAAQ,MAIZ+wB,oBAAmB,OAAE7nB,EAAM,MAAEZ,GAASlD,GACpC,MAAM,SAAEwY,GAAatV,EACrBsV,EAASnD,aAAerV,EACxB8D,EAAOC,OAAMqc,cAAe,IAAK5H,KAGnCoT,mBAAkB,OAAE9nB,EAAM,MAAEZ,GAASlD,GACnC,MAAM,SAAEwY,GAAatV,GACf,KAAEsY,EAAI,KAAEqQ,GAAS7rB,EACvBwY,EAASlD,YAAc,IAAKkD,EAASlD,YAAa,CAACkG,GAAOqQ,GAC1D/nB,EAAOC,OAAMqc,cAAe,IAAK5H,KAGnC,mBAAkB,OAAE1U,IAClB,IAAI,SAAE0U,GAAatV,EACnBsV,EAAWsT,eAA8BtT,GACzC1U,EAAOC,OAAMgoB,2BAA2B,GACxC,MAAM/rB,EAAU,CAAE4e,aAAcpG,IACzBvb,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNzV,GACA,GAEF8D,EAAOC,OAAMgoB,2BAA2B,GACpC9uB,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAMioB,0BAA0B,GACvCloB,EAAOC,OAAMsc,wBAAwB,KAGvC4L,oBAAmB,MAAE/oB,EAAK,OAAEY,GAAU9D,GACpC,IAAI,iBAAE6Z,GAAqB3W,EAC3B,MAAM,KAAEsY,EAAI,KAAEqQ,GAAS7rB,EACvB6Z,EAAmB,IACdA,EACH,CAAC2B,GAAOqQ,GAEV/nB,EAAOC,OAAMmoB,6BAA8BrS,IAG7CsS,yBAAwB,OAAEroB,EAAM,MAAEZ,GAASlD,GAEzC,MAAM0rB,EAAOU,eAAwBlpB,EAAOlD,GAC5C8D,EAAOC,OAAMmoB,6BAA8BR,IAG7C,uBAAsB,OAAE5nB,EAAM,SAAEqD,IAC9BrD,EAAOC,OAAMgoB,2BAA2B,GACxC,MAAM/rB,EAAU,CAAE4e,aAAc,KACzB3hB,SAAe4f,OAAYlc,WAChCuC,EAAMuS,aACNzV,GACA,GAEF8D,EAAOC,OAAMgoB,2BAA2B,GACpC9uB,EACFiC,QAAQiK,IAAI,CAAElM,UAGhBkK,EAAS,uBAGXklB,oBAAmB,OAAEvoB,IACnBA,EAAOC,OAAMioB,0BAA0B,GACvCloB,EAAOC,OAAMsc,wBAAwB,GACrCvc,EAAOC,OAAMqc,cAAe,IAAKhL,KAGnCkX,sBAAqB,OAAExoB,EAAM,MAAEZ,IAC7B,MAAM,UAAE+T,EAAS,mBAAEK,EAAkB,gBAAEJ,GAAoBhU,EACrDqpB,EAAqBC,eAAkBvV,EAAWC,GAClDuV,EAAkB,IAAInV,EAAoBiV,GAChDzoB,EAAOC,OAAMwiB,sBAAuBnP,OAAMsV,OAC1C5oB,EAAOC,OAAMqgB,yBAA0BqI,GACvC3oB,EAAOC,OAAM4oB,8BAA+BjoB,eAAUuS,KAGxD2V,4BAA2B,OAAE9oB,EAAM,MAAEZ,IACnC,MAAQsU,sBAAuBkU,EAAI,mBAAEpU,GAAuBpU,EACtDupB,EAAkBnV,EAAmB0J,OACxC0K,GAASA,EAAKmB,WAAazV,OAAM+R,WAEpCrlB,EAAOC,OAAMqgB,yBAA0BqI,GACvC3oB,EAAOC,OAAMwiB,sBAAuBnP,OAAM0V,QAC1ChpB,EAAOC,OAAMuiB,2BAA4B,IACrB,IAAhBoF,EAAK9yB,QAAckL,EAAOC,OAAMmgB,YAAawH,IAGnDqB,gCAA+B,OAAEjpB,EAAM,MAAEZ,IACvC,MAAM,UAAE+T,EAAS,mBAAEK,EAAkB,gBAAEJ,GAAoBhU,EACrD8pB,EAAwBR,eAAkBvV,EAAWC,GAC3DpT,EAAOC,OAAMwiB,sBAAuBnP,OAAM0V,QAC1ChpB,EAAOC,OAAMqgB,yBAA0B,IAClC9M,EACH0V,IAEFlpB,EAAOC,OAAMkpB,kCAAmCvoB,eAAUuS,KAG5DiW,sBAAqB,OAAEppB,EAAM,MAAEZ,IAC7B,MAAQqU,yBAA0BmU,GAASxoB,EAC3CY,EAAOC,OAAMwiB,sBAAuBnP,OAAM+R,WAC1CrlB,EAAOC,OAAMqgB,yBAA0B,IACnB,IAAhBsH,EAAK9yB,QAAckL,EAAOC,OAAMmgB,YAAawH,IAGnDyB,mBAAkB,OAAErpB,GAAU9D,GAC5B8D,EAAOC,OAAMmc,oBAAqBlgB,IAGpCotB,WAAU,OAAEtpB,GAAU9D,GACpB,MAAM,UAAEqtB,EAAS,MAAE/uB,GAAU0B,EAC7B8D,EAAOupB,EAAW/uB,IAGpBgvB,eAAc,OAAExpB,GAAU9D,GACxB,MAAM,KAAEzC,EAAI,MAAEe,GAAU0B,EACxB8D,EAAOvG,EAAMe,IAGfivB,wBAAuB,OAAEzpB,GAAU9D,GACjC8D,EAAOC,OAAMypB,2BAA4BxtB,IAG3C,gCAA+B,OAAE8D,GAAU1C,GACzC,MAAOnE,EAAO7E,SAAcykB,OAAYxa,wBAAwBjB,GAE5DnE,GACJ6G,EAAOC,OAAMwd,wBAAyBnpB,IAGxC,+BAA8B,OAAE0L,EAAM,MAAEZ,IACtC,MAAOjG,EAAO7E,SAAcykB,OAAY7b,sBACtCkC,EAAMuS,cAEJxY,GACJ6G,EAAOC,OAAM0pB,kBAAmBr1B,IAGlCs1B,wBAAuB,OAAE5pB,GAAUvD,GACjCuD,EAAOC,OAAM4pB,+BAAgCptB,IAG/CqtB,mBAAkB,OAAE9pB,GAAU9D,GAC5B8D,EAAOC,OAAMuiB,2BAA4BtmB,IAG3C6tB,qBAAoB,OAAE/pB,EAAM,MAAEZ,GAAS6jB,GACrC,MAAM,oBAAEtQ,EAAmB,YAAEZ,EAAW,mBAAEW,GAAuBtT,EAEjE,IAAIoX,EAA0B,GAE5BA,EADEyM,IAAatQ,EACWqX,eACxBjY,EACAW,GAGwBsX,eAAmBjY,GAE/C/R,EAAOC,OAAMgqB,8BAA+BzT,IAG9C,+BAA8B,MAAEpX,EAAK,OAAEY,GAAU9D,GAC/C,MAAM,aAAEyV,GAAiBvS,EACzBY,EAAOC,OAAMiqB,yCAAyC,GACtD,MAAO/wB,EAAOimB,SAAWrG,OAAYlc,WAAW8U,EAAc,CAC5DuJ,cAAehf,IAEjB,OAAI/C,GACF0J,EAAM1J,MAAM,kDACL,IAET0J,EAAMue,KACJ,mEAEFphB,EAAOC,OAAMiqB,yCAAyC,GACtDlqB,EAAOC,OAAM+b,iCAAkC9f,GAC/C8D,EAAOC,OAAMkqB,2BAA2B,IACjC,IAETC,2BAA0B,OAAEpqB,GAAU9D,GACpC8D,EAAOC,OAAMoqB,yBAA0BnuB,IAGzCouB,yBAAwB,OAAEtqB,EAAM,MAAEZ,IAChC,MAAMwoB,EAAO2C,eAA0BnrB,GACvCY,EAAOC,OAAMuqB,wBAAyB5C,IAGxC6C,iCAAgC,SAAEpnB,IAChCA,EAAS,2BACTA,EAAS,YAAa,CACpBkmB,UAAWtpB,OAAMyqB,8BACjBlwB,OAAO,KAIXmwB,8BAA6B,OAAE3qB,EAAM,MAAEZ,GAASlD,GAC9C,MAAM,UAAE8b,EAAS,IAAEld,EAAG,MAAEN,GAAU0B,GAC5B,4BAAEga,EAA2B,qBAAED,GAAyB7W,EAExDiB,EAAO,IAAK4V,GACZ2U,EAAc3U,EAAqBC,GACzC0U,EAAY5S,GAAWld,GAAON,EAC9BwF,EAAOC,OAAMuqB,wBAAyBnqB,IAGxCwqB,kBAAiB,OAAE7qB,EAAM,MAAEZ,GAASlD,GAClC,MAAM,KAAEwb,EAAI,IAAEvf,GAAQ+D,GAChB,eAAEka,GAAmBhX,EAC3BY,EAAOC,OAAM6qB,uBAAwB,IAAK1U,EAAgB,CAACsB,GAAOvf,KAkBpE4yB,wBAAuB,OAAE/qB,EAAM,MAAEZ,EAAK,YAAE4rB,IACtC,MAAM,YAAE5W,EAAW,gBAAEC,EAAe,cAAEkB,EAAa,cAAEzC,GACnD1T,GACI,kBAAE6rB,GAAsBD,EACxBE,EAAU,IAAIvU,IACpBvC,EACG8I,OAAQlZ,GAAwB,OAAhBA,EAAImnB,SACpBnjB,QAAS/N,GAAMixB,EAAQE,IAAInxB,EAAEkxB,UAChC9W,EAAgBrM,QAASqjB,GAASH,EAAQE,IAAIC,EAAK3T,OACnDuT,EAAkBjjB,QAASsjB,GAAYJ,EAAQE,IAAIE,EAAQC,aAC3DhW,EAAcvN,QAASwjB,GAAkBN,EAAQE,IAAII,IACrD1Y,EAAc9K,QAASyjB,GAAaP,EAAQE,IAAIK,IAChDzrB,EAAOC,OAAMyrB,0BAA2BR,IAE1C,8BAA6B,MAAE9rB,EAAK,OAAEY,GAAU9D,GAC9C,MAAM,aAAEyV,GAAiBvS,GACnB,GAAE9B,EAAE,WAAEquB,GAAezvB,EAC3B8D,EAAOC,OAAMiqB,yCAAyC,GACtD,MAAO/wB,EAAOimB,SAAWrG,OAAYlc,WAAW8U,EAAc,CAC5DuJ,cAAe5d,EACfquB,eAEF,OAAIxyB,GACF0J,EAAM1J,MAAM,kDACL,IAET0J,EAAMue,KACJ,mEAEFphB,EAAOC,OAAMiqB,yCAAyC,GACtDlqB,EAAOC,OAAM+b,iCAAkC1e,GAC/C0C,EAAOC,OAAMkqB,2BAA2B,IACjC,IAGT,wBAAuB,OAAEnqB,GAAUzD,GACjC,IAAIqvB,GAAc,EAClB,IAAKzyB,EAAO7E,SAAcu3B,OAAmBC,gBAAgBvvB,GACzDpD,IACFyyB,GAAc,GAEhBA,EAAkB,OAAJt3B,QAAI,IAAJA,OAAI,EAAJA,EAAMy3B,MACpB/rB,EAAOC,OAAM+rB,cAAeJ,IAE9BK,gBAAe,OAAEjsB,GAAU6R,GACzB7R,EAAOC,OAAMic,iBAAkBrK,IAEjCqa,iBAAgB,OAAElsB,GAAU6R,GAC1B7R,EAAOC,OAAMkc,mBAAoBtK,IAGnC,4BAA2B,OAAE7R,GAAUzD,GACrC,IAAKpD,EAAO7E,SAAcykB,OAAYta,wBAAwBlC,GAC1DpD,GACFiC,QAAQiK,IAAI,SAEdrF,EAAOC,OAAMksB,wBAAyB73B,EAAKA,OAG7C,2BAA0B,MAAE8K,IAC1B,MAAOjH,EAAK7D,SAAcykB,OAAYra,oBACpCU,EAAMuS,cAEJxZ,GACFiD,QAAQiK,IAAI,sBAIhB,gCAA+B,MAAEjG,GAASlD,GACxCd,QAAQiK,IAAInJ,GACZ,MAAO/D,EAAK7D,SAAcykB,OAAYpa,yBAAyBzC,GAC3D/D,GACFiD,QAAQiK,IAAI,sBAIhB,iCAAgC,OAAErF,IAChC,MAAO7H,EAAK7D,SAAcykB,OAAYna,0BACpCQ,EAAMuS,cAMR,OAJA3R,EAAOC,OAAMmsB,wBAAyB93B,GAClC6D,GACFiD,QAAQiK,IAAI,qBAEP/Q,GAGT,+BAA8B,OAAE0L,GAAU9D,GACxC,MAAO/D,EAAK7D,SAAcykB,OAAYla,wBAAwB3C,GAC1D/D,GACFiD,QAAQiK,IAAI,uBAKZvE,EAAY,CAChB,CAACb,OAAMmsB,yBAAyBhtB,EAAOlD,GACrCkD,EAAMgY,mBAAqBlb,GAE7B,CAAC+D,OAAMwY,8BAA8BrZ,EAAOlD,GAC1CkD,EAAMqY,oBAAoBvb,EAAQpB,KAAOoB,EAAQ1B,OAEnD,CAACyF,OAAM0Y,0BAA0BvZ,EAAOlD,GACtCkD,EAAMmY,sBAAwBrb,GAEhC,CAAC+D,OAAM4Y,qCAAqCzZ,EAAOlD,GACjDkD,EAAMoY,gCAAkCtb,GAE1C,CAAC+D,OAAM+Y,WAAW5Z,EAAOlD,GACvBkD,EAAMqS,SAAWvV,GAEnB,CAAC+D,OAAMkZ,mBAAmB/Z,EAAOlD,GAC/BkD,EAAMsS,aAAexV,GAEvB,CAAC+D,OAAMoZ,mBAAmBja,EAAOlD,GAC/BkD,EAAMuS,aAAezV,GAEvB,CAAC+D,OAAM+rB,eAAe5sB,EAAOlD,GAC3BkD,EAAMwS,SAAW1V,GAEnB,CAAC+D,OAAMic,kBAAkB9c,EAAOlD,GAC9BkD,EAAMyS,YAAc3V,GAEtB,CAAC+D,OAAM+Z,eAAe5a,EAAOlD,GAC3BkD,EAAM0S,SAAW5V,GAEnB,CAAC+D,OAAMwZ,kBAAkBra,EAAOlD,GAC9BkD,EAAM2S,YAAc7V,GAEtB,CAAC+D,OAAM2b,sBAAsBxc,EAAOlD,GAClCkD,EAAM4S,eAAiB9V,GAEzB,CAAC+D,OAAM0Z,qBAAqBva,EAAOlD,GACjCkD,EAAM6S,cAAgB/V,GAExB,CAAC+D,OAAMge,2BAA2B7e,EAAOlD,GACvCkD,EAAM8S,mBAAqBhW,GAE7B,CAAC+D,OAAMie,8BAA8B9e,EAAOlD,GAC1CkD,EAAM+S,qBAAuBjW,GAE/B,CAAC+D,OAAM4b,eAAezc,EAAOlD,GAC3BkD,EAAMgT,SAAWlW,GAEnB,CAAC+D,OAAMsjB,2BAA2BnkB,EAAOlD,GACvCkD,EAAMiT,oBAAsBnW,GAE9B,CAAC+D,OAAM2jB,6BAA6BxkB,EAAOlD,GACzCkD,EAAMkT,sBAAwBpW,GAEhC,CAAC+D,OAAM2iB,oBAAoBxjB,EAAOlD,GAChCkD,EAAMmT,cAAgBrW,GAExB,CAAC+D,OAAM0iB,yBAAyBvjB,EAAOlD,GACrCkD,EAAMoT,kBAAoBtW,GAE5B,CAAC+D,OAAM+e,0BAA0B5f,EAAOlD,GACtCkD,EAAMqT,mBAAqBvW,GAE7B,CAAC+D,OAAMka,yBAAyB/a,EAAOlD,GACrCkD,EAAMsT,mBAAqBxW,GAE7B,CAAC+D,OAAMma,0BAA0Bhb,EAAOlD,GACtCkD,EAAMuT,oBAAsBzW,GAE9B,CAAC+D,OAAM2gB,yBAAyBxhB,EAAOlD,GACrCkD,EAAMwT,qBAAuB1W,GAE/B,CAAC+D,OAAMoa,uBAAuBjb,EAAOlD,GACnCkD,EAAMyT,aAAe3W,GAEvB,CAAC+D,OAAMia,oBAAoB9a,EAAOlD,GAChCkD,EAAM0T,cAAgB5W,GAExB,CAAC+D,OAAMga,oBAAoB7a,EAAOlD,GAChCkD,EAAM2T,cAAgB7W,GAExB,CAAC+D,OAAMmgB,aAAahhB,EAAOlD,GACzBkD,EAAM+T,UAAYjX,GAEpB,CAAC+D,OAAMqlB,qBAAqBlmB,EAAOlD,GACjCkD,EAAMmU,cAAgBrX,GAExB,CAAC+D,OAAMwiB,uBAAuBrjB,EAAOlD,GACnCkD,EAAMgU,gBAAkBlX,GAE1B,CAAC+D,OAAMogB,cAAcjhB,EAAOlD,GAC1BkD,EAAM4T,QAAU9W,GAElB,CAAC+D,OAAMqiB,iBAAiBljB,EAAOlD,GAC7BkD,EAAM6T,WAAa/W,GAErB,CAAC+D,OAAMqgB,0BAA0BlhB,EAAOlD,GACtCkD,EAAMoU,mBAAqBtX,GAE7B,CAAC+D,OAAMkpB,mCAAmC/pB,EAAOlD,GAC/CkD,EAAMqU,yBAA2BvX,GAEnC,CAAC+D,OAAMwgB,+BAA+BrhB,EAAOlD,GAC3CkD,EAAMuU,uBAAyBzX,GAEjC,CAAC+D,OAAMsiB,kBAAkBnjB,EAAOlD,GAC9BkD,EAAM8T,WAAahX,GAErB,CAAC+D,OAAM6Y,uBAAuB1Z,EAAOlD,GACnCkD,EAAMwU,gBAAkB1X,GAE1B,CAAC+D,OAAMya,8BAA8Btb,EAAOlD,GAC1CkD,EAAMyU,sBAAwB3X,GAEhC,CAAC+D,OAAM2kB,6BAA6BxlB,EAAOlD,GACzCkD,EAAM0U,qBAAuB5X,GAE/B,CAAC+D,OAAMwkB,oBAAoBrlB,EAAOlD,GAChCkD,EAAM2U,aAAe7X,GAEvB,CAAC+D,OAAMqmB,6BAA6BlnB,EAAOlD,GACzCkD,EAAM4U,qBAAuB9X,GAE/B,CAAC+D,OAAM6b,mBAAmB1c,EAAOlD,GAC/BkD,EAAM6U,aAAe/X,GAEvB,CAAC+D,OAAMumB,8BAA8BpnB,EAAOlD,GAC1CkD,EAAM8U,sBAAwBhY,GAEhC,CAAC+D,OAAMymB,+BAA+BtnB,EAAOlD,GAC3CkD,EAAM+U,uBAAyBjY,GAEjC,CAAC+D,OAAMud,kBAAkBpe,EAAOlD,GAC9BkD,EAAMgV,YAAclY,GAEtB,CAAC+D,OAAM6d,uBAAuB1e,EAAOlD,GACnCkD,EAAMiV,gBAAkBnY,GAE1B,CAAC+D,OAAMse,4BAA4Bnf,EAAOlD,GACxCkD,EAAMkV,oBAAsBpY,GAE9B,CAAC+D,OAAMye,4BAA4Btf,EAAOlD,GACxCkD,EAAMmV,oBAAsBrY,GAE9B,CAAC+D,OAAM+mB,qCAAqC5nB,EAAOlD,GACjDkD,EAAMoV,4BAA8BtY,GAEtC,CAAC+D,OAAMioB,0BAA0B9oB,EAAOlD,GACtCkD,EAAMqV,kBAAoBvY,GAE5B,CAAC+D,OAAMqc,eAAeld,EAAOlD,GAC3BkD,EAAMsV,SAAWxY,GAEnB,CAAC+D,OAAMgoB,2BAA2B7oB,EAAOlD,GACvCkD,EAAMuV,mBAAqBzY,GAE7B,CAAC+D,OAAMsc,wBAAwBnd,EAAOlD,GACpCkD,EAAMwV,gBAAkB1Y,GAE1B,CAAC+D,OAAMosB,4BAA4BjtB,EAAOlD,GACxCkD,EAAMyV,oBAAsB3Y,GAE9B,CAAC+D,OAAM2mB,6BAA6BxnB,EAAOlD,GACzCkD,EAAM0V,qBAAuB5Y,GAE/B,CAAC+D,OAAMmc,qBAAqBhd,EAAOlD,GACjCkD,EAAM2V,eAAiB7Y,GAEzB,CAAC+D,OAAMypB,4BAA4BtqB,EAAOlD,GACxCkD,EAAM4V,sBAAwB9Y,GAEhC,CAAC+D,OAAM6Z,uBAAuB1a,EAAOlD,GACnCkD,EAAM6V,iBAAmB/Y,GAE3B,CAAC+D,OAAMqsB,8BAA8BltB,EAAOlD,GAC1CkD,EAAM8V,0BAA4BhZ,GAEpC,CAAC+D,OAAMssB,kCAAkCntB,EAAOlD,GAC9CkD,EAAM+V,yBAA2BjZ,GAEnC,CAAC+D,OAAMwd,yBAAyBre,EAAOlD,GACrCkD,EAAMgW,sBAAwBlZ,GAEhC,CAAC+D,OAAM4pB,gCAAgCzqB,EAAOlD,GAC5CkD,EAAMkW,wBAA0BpZ,GAElC,CAAC+D,OAAMwf,gCAAgCrgB,EAAOlD,GAC5CkD,EAAMoW,wBAA0BtZ,GAElC,CAAC+D,OAAM8b,oBAAoB3c,EAAOlD,GAChCkD,EAAMmW,cAAgBrZ,GAExB,CAAC+D,OAAM4oB,+BAA+BzpB,EAAOlD,GAC3CkD,EAAMsU,sBAAwBxX,GAEhC,CAAC+D,OAAMuiB,4BAA4BpjB,EAAOlD,GACxCkD,EAAMqW,eAAiBvZ,GAEzB,CAAC+D,OAAM6e,8BAA8B1f,EAAOlD,GAC1CkD,EAAMsW,qBAAuBxZ,GAE/B,CAAC+D,OAAMgc,qBAAqB7c,EAAOlD,GACjCkD,EAAM0W,cAAgB5Z,GAExB,CAAC+D,OAAMusB,uCAAuCptB,EAAOlD,GACnDkD,EAAMmX,+BAAiCra,GAEzC,CAAC+D,OAAMmoB,8BAA8BhpB,EAAOlD,GAC1CkD,EAAM2W,iBAAmB7Z,GAE3B,CAAC+D,OAAMkqB,2BAA2B/qB,EAAOlD,GACvCkD,EAAMuW,uBAAyBzZ,GAGjC,CAAC+D,OAAM+b,kCAAkC5c,EAAOlD,GAC9CkD,EAAMwW,2BAA6B1Z,GAErC,CAAC+D,OAAMiqB,yCAAyC9qB,EAAOlD,GACrDkD,EAAMyW,gCAAkC3Z,GAE1C,CAAC+D,OAAMyqB,+BAA+BtrB,EAAOlD,GAC3CkD,EAAM4W,2BAA6B9Z,GAErC,CAAC+D,OAAMoqB,0BAA0BjrB,EAAOlD,GACtCkD,EAAM8W,4BAA8Bha,GAEtC,CAAC+D,OAAMuqB,yBAAyBprB,EAAOlD,GACrCkD,EAAM6W,qBAAuB/Z,GAE/B,CAAC+D,OAAM6qB,wBAAwB1rB,EAAOlD,GACpCkD,EAAMgX,eAAiBla,GAEzB,CAAC+D,OAAMyd,uBAAuBte,EAAOlD,GACnCkD,EAAMiX,kBAAoBna,GAE5B,CAAC+D,OAAM0d,uBAAuBve,EAAOlD,GACnCkD,EAAMkX,kBAAoBpa,GAE5B,CAAC+D,OAAMgqB,+BAA+B7qB,EAAOlD,GAC3CkD,EAAMoX,wBAA0Bta,GAElC,CAAC+D,OAAMkqB,2BAA2B/qB,EAAOlD,GACvCkD,EAAMuW,uBAAyBzZ,GAGjC,CAAC+D,OAAM+b,kCAAkC5c,EAAOlD,GAC9CkD,EAAMwW,2BAA6B1Z,GAErC,CAAC+D,OAAMyrB,2BAA2BtsB,EAAOlD,GACvCkD,EAAMsX,oBAAsBxa,GAE9B,CAAC+D,OAAMwsB,yBAAyBrtB,EAAOlD,GACrCkD,EAAMqX,iBAAmBva,GAE3B,CAAC+D,OAAM6iB,iCAAiC1jB,EAAOlD,GAC7CkD,EAAMwX,yBAA2B1a,GAEnC,CAAC+D,OAAM0pB,mBAAmBvqB,EAAOlD,GAC/BkD,EAAMyX,iBAAmB3a,GAE3B,CAAC+D,OAAMyc,0BAA0Btd,EAAOlD,GACtCkD,EAAM0X,0BAA4B5a,GAEpC,CAAC+D,OAAMsa,qBAAqBnb,EAAOlD,GACjCkD,EAAMiY,cAAgBnb,GAExB,CAAC+D,OAAMwa,iDAAiDrb,EAAOlD,GAC7DkD,EAAMkY,qCAAuCpb,GAE/C,CAAC+D,OAAMkc,oBAAoB/c,EAAOlD,GAChCkD,EAAM2X,aAAe7a,GAEvB,CAAC+D,OAAMysB,6BAA6BttB,EAAOlD,GACzCkD,EAAM8X,qBAAuBhb,GAE/B,CAAC+D,OAAMksB,yBAAyB/sB,EAAOlD,GACrCkD,EAAM+X,qBAAuBjb,IAIlB,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,uECvyDF,MAAM6rB,EAAoBjxB,MACxBkxB,EACAjxB,GAAU,EACVkxB,EAAc,WAEDlrB,OAAUvH,IACrB,mCAAmCwyB,KACnCjxB,EACAkxB,GAIW,OACbF,qB,wBCVF,MAAMvtB,EAAQ,CACZ0tB,aAAc,GACdC,oBAAqB,KACrBC,yBAA0B,GAC1BC,yBAA0B,GAC1BC,0BAA2B,GAC3BC,wBAAwB,GAGpB1tB,EAAU,CACdqtB,aAAe1tB,GAAUA,EAAM0tB,aAC/BC,oBAAsB3tB,GAAUA,EAAM2tB,oBACtCC,yBAA2B5tB,GAAUA,EAAM4tB,yBAC3CC,yBAA2B7tB,GAAUA,EAAM6tB,yBAC3CC,0BAA4B9tB,GAAUA,EAAM8tB,0BAC5CC,uBAAyB/tB,GAAUA,EAAM+tB,wBAGrCrtB,EAAU,CACdstB,wBAAuB,OAAEptB,GAAUzD,GACjCyD,EAAOC,OAAMotB,0BAA2B9wB,IAG1C,yBAAwB,OAAEyD,GAAU4sB,GAClC,MAAOzzB,EAAO7E,SAAcg5B,EAAmBX,kBAC7CC,GACA,GAEEzzB,EACFiC,QAAQiK,IAAI,mCAGdrF,EAAOC,OAAMstB,kBAAmBj5B,GAChC0L,EAAOC,OAAMutB,+BAAgCl5B,EAAKQ,OAAS,KAG7D,+BAA8B,OAAEkL,GAAUzD,GACxC,MAAOpD,EAAO7E,SAAcykB,OAAYrc,iBAAiBH,GAAQ,GACjE,GAAIpD,EAEF,YADAiC,QAAQiK,IAAI,oCAAqClM,GAGnD,MAAM,YAAEqgB,EAAW,cAAE1G,EAAa,eAAEkI,GAAmB1mB,GAEjD,UAAE6e,GAAc6K,eAAsBxE,GACtC6E,EAAqBC,eAAsBnL,GAEjDnT,EAAOC,OAAMwtB,gCAAiC3a,GAC9C9S,EAAOC,OAAMytB,gCAAiC1S,GAC9Chb,EAAOC,OAAM0tB,mCAAoCtP,IAGnDuP,wBAAuB,OAAE5tB,IACvBA,EAAOC,OAAMwtB,gCAAiC,IAC9CztB,EAAOC,OAAMytB,gCAAiC,IAC9C1tB,EAAOC,OAAM0tB,mCAAoC,MAI/C7sB,EAAY,CAChB,CAACb,OAAMstB,mBAAmBnuB,EAAOlD,GAC/BkD,EAAM0tB,aAAe5wB,GAEvB,CAAC+D,OAAMotB,2BAA2BjuB,EAAOlD,GACvCkD,EAAM2tB,oBAAsB7wB,GAE9B,CAAC+D,OAAMwtB,iCAAiCruB,EAAOlD,GAC7CkD,EAAM4tB,yBAA2B9wB,GAEnC,CAAC+D,OAAMytB,iCAAiCtuB,EAAOlD,GAC7CkD,EAAM6tB,yBAA2B/wB,GAEnC,CAAC+D,OAAM0tB,oCAAoCvuB,EAAOlD,GAChDkD,EAAM8tB,0BAA4BhxB,GAEpC,CAAC+D,OAAMutB,gCAAgCpuB,EAAOlD,GAC5CkD,EAAM+tB,uBAAyBjxB,IAIpB,cACbkD,QACAK,UACAK,UACAgB,c,oCCzFF,qCAGA,MAAM+sB,EAAgB,qBAEP,QACbC,aAAaC,GAAO,IAAIC,MAAOC,cAAeC,EAASC,QACrD,MAAMC,EAAQ,GAAGC,IAAMN,GAAMG,OAAOA,GACpC,OAAOE,GAGTE,aAAaP,GACX,MAAM1tB,EAAO,IAAI2tB,KAAKD,GAAMQ,qBAAqBrH,MAAM,KAEvD,OADA7mB,EAAKmuB,QAAQnuB,EAAKouB,OACXpuB,EAAK4I,KAAK,MAGnBylB,WAAWC,EAAYT,EAASL,GAC9B,OAAKc,EACEN,IAAMM,GAAYT,OAAOA,GADR,IAI1BU,eAAeC,EAAOC,EAAOC,EAAMC,GAAY,GAC7C,MAAMC,EAAKZ,IAAMQ,GACXK,EAAKb,IAAMS,GACjB,OAAOG,EAAGE,KAAKD,EAAIH,EAAMC,IAG3BI,iBAAiBC,GACf,MAAMtB,EAAO,IAAIC,KAAKqB,GAEhBC,EAAOvB,EAAKwB,cAClB,IAAIC,EAAQzB,EAAK0B,WAAa,EAC1BC,EAAK3B,EAAK4B,UAEVD,EAAK,KACPA,EAAK,IAAMA,GAETF,EAAQ,KACVA,EAAQ,IAAMA,GAGhB,MAAMI,EAAgBN,EAAO,IAAME,EAAQ,IAAME,EACjD,OAAOE,GAGTC,gBAAgBlB,GACd,IAAKA,EAAY,MAAO,GACxB,MAAM5G,EAAiB,OAAV4G,QAAU,IAAVA,OAAU,EAAVA,EAAYzH,MAAM,KAAKuH,MAAM7hB,QAAQ,IAAK,IACvD,OAAOmb,GAAQsG,IAAMtG,EAAM+H,SAE7B/kB,SAASgjB,EAAO,IAAIC,MAClB,MAAM+B,EAAahC,EAAKxG,WAAWL,MAAM,OAAOuH,MAAMvH,MAAM,KAAK,GAAK,IACtE,OAAOmH,IAAMN,EAAKE,cAAeE,QAAgB/C,IAAI2E,EAAY,SAGnEC,aAAajC,EAAO,IAAIC,KAAQiC,EAAY,GAC1C,MAAMF,EAAahC,EAAKxG,WAAWL,MAAM,OAAOuH,MAAMvH,MAAM,KAAK,GAAK,IAEtE,OAAOmH,IAAMN,EAAKE,cAAeE,QAC9B/C,IAAI2E,EAAY,QAChBG,SAASD,EAAW,QAGzBE,eAAepC,EAAO,IAAIC,KAAQiC,EAAY,GAC5C,MAAMF,EAAahC,EAAKxG,WAAWL,MAAM,OAAOuH,MAAMvH,MAAM,KAAK,GAAK,IAEtE,OAAOmH,IAAMN,EAAKE,cAAeE,QAC9B/C,IAAI2E,EAAY,QAChBG,SAASD,EAAW,UAGzBG,oBACE,MAAMC,EAAc,IAAIrC,KAIlBsC,GAFJD,EAAY9I,WAAWL,MAAM,OAAOuH,MAAMvH,MAAM,KAAK,GAElCmH,IAAMgC,GAAaE,QAAQ,QAGhD,OAAOD,K,mVChFJ,MAAME,EAAsC9pB,GAC1CA,EAAQ+pB,OAAO,CAACnoB,EAAKvO,KAC1BuO,EAAIvO,EAAE22B,eAAiB32B,EAAE42B,cAAgB52B,EAAE22B,cACpCpoB,GACN,IAGQsoB,EAAsClqB,GAC1CA,EAAQ+pB,OAAO,CAACnoB,EAAKvO,KAC1BuO,EAAI,IAAGvO,EAAE42B,cAAgB52B,EAAE22B,gBAAmB32B,EAAE22B,cACzCpoB,GACN,IAGQuoB,EAAwBnqB,GAC5BA,EAAQ+pB,OAAO,CAACnoB,EAAKvO,KAC1BuO,EAAIvO,EAAE+2B,QAAU/2B,EAAE42B,cAAgB52B,EAAE22B,cAC7BpoB,GACN,IAEQyoB,EAA6BrqB,GACjCA,EAAQ+pB,OAAO,CAACnoB,EAAKvO,KAC1BuO,EAAIvO,EAAE+2B,QAAU/2B,EAAE22B,cACXpoB,GACN,IAGQ0oB,EAAmBtqB,IAAY,IAAAuqB,EAC1C,OACwC,QADxCA,EAAO,IAAIvqB,GACRqZ,KAAK,CAACmR,EAAGC,IAAMA,EAAEpW,QAAUmW,EAAEnW,gBAAQ,IAAAkW,OAAA,EADjCA,EAEH3rB,IAAKvL,IAAC,CACNS,MAAOT,EAAE42B,cAAgB52B,EAAE22B,cAC3BU,OAAQr3B,EAAEghB,QAAU,KAAO,KAAOhhB,EAAE42B,cAAgB52B,EAAE22B,mBAI/CW,EAAyB3qB,IAAY,IAAA4qB,EAChD,IAAIC,EAEsB,QAFTD,EAAG,IAAI5qB,GACrBqZ,KAAK,CAACmR,EAAGC,IAAMA,EAAEpW,QAAUmW,EAAEnW,SAC7BmC,OAAQnjB,GAAMA,EAAE+2B,eAAO,IAAAQ,OAAA,EAFNA,EAGhBhsB,IAAKvL,IACE,CACLS,MAAOT,EAAE+2B,OAAS/2B,EAAE+2B,OAAS/2B,EAAEuD,GAC/B8zB,OAAQr3B,EAAEghB,QAAU,KAAO,KAAOhhB,EAAE42B,cAAgB52B,EAAE22B,kBAG5D,OAAOa,I,qEC9CJxwB,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAAayB,MAAM,6BAA6B8uB,OAAO,Q,EAAOtwB,gCAA2pB,QAArpBnH,EAAE,omBAAomBoH,KAAK,OAAOqwB,OAAO,OAAO,YAAU,W,YAAhpBpwB,G,gDAAlGC,gCAAmwB,MAAnwBC,EAAAC,G,yBCCA,MAAMzI,EAAS,GAGT0I,EAA2B,IAAgB1I,EAAQ,CAAC,CAAC,SAAS2I,KAErD,gB,wICNA,GACbgwB,SAAU,YACVz4B,QAAS,IACT04B,cAAc,EACdC,kBAAkB,EAClBC,cAAc,EACdC,WAAW,EACXC,iBAAkB,GAClBC,wBAAwB,EACxBC,iBAAiB,EACjBC,YAAa,SACbC,MAAM,EACNC,KAAK,EACLC,WAAY,2BACZC,UAAW,EACXC,aAAa,EACbC,mBAAoB,mB,4MCfLC,EAAAC,Y,yBAAfC,yBAA6BC,EAAA,CAAA73B,IAAA,K,uCAC7B83B,yBAA2BC,I,aCDtBlwB,MAAM,e,GACJA,MAAM,uC,GACJA,MAAM,iBAAiBmwB,KAAK,U,GACzBnwB,MAAM,mB,wDAHlBtB,gCAQM,MARNC,EAQM,CAPJJ,gCAMM,MANNE,EAMM,CALJF,gCAIM,MAJNK,EAIM,CAHJL,gCAEO,OAFP0B,EAEOmwB,6BADFC,EAAAC,YAAU,SAOvB,MAAKC,EAAU,CACb3oB,MAAO,CACLknB,SAAU,CACR75B,KAAMu7B,OACNtmB,QAAS,SAEXomB,WAAY,CACVr7B,KAAMu7B,OACNtmB,QAAS,cAEXumB,MAAO,CACLx7B,KAAMu7B,OACNtmB,QAAS,W,kKCjBf,MAAMrL,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAE1E,Q,wBFAf,MAAMZ,EAAY4L,EAAQ,QAGX,OACb/S,KAAM,MACN45B,WAAY,CAAEC,WACdC,QAAS,CACP1wB,MAAOC,iBACPlC,YACA4yB,UAAWA,CAAC57B,EAAM4B,EAASR,EAAU,OACnC8J,iBAAWlL,GAAM4B,EAAS,CAAER,aAE9By6B,MAAOA,IACsC,YAApCC,EAAgB,iBAG3Bp/B,OACE,MAAO,CACLq/B,SAAS,EACTC,qBAAsB,IACtBC,sBAAuB,IACvBC,yBAA0B,OAG9BC,SAAU,CACRtB,aACE,OAAO3oB,KAAKkqB,OAAO50B,MAAMzD,UAG7Bs4B,UACE,IAAIC,EAAQpqB,KACZ3S,SAASg9B,KAAKC,UAAUhJ,IACtB,qBACA,iBACA,cACA,sBAGF8I,EAAMG,eAAeH,IAEvBI,YACEn9B,SAASg9B,KAAKC,UAAU52B,OACtB,qBACA,iBACA,cACA,uBAGJ+2B,QAAS,CACP,oBAAoB9mB,GAClB,MAAO+mB,EAASjyB,GAASuH,KAAK2qB,iBACxBnsB,QAAYtD,OAAW7I,KAC3B,0BACA,CAAEsR,KAAMA,EAAM+mB,QAASA,EAASE,gBAAiBnyB,IACjD,GACA,GACA,GAEU,UAAR+F,GACFlN,QAAQiK,IAAI,0BAEdyE,KAAK6qB,SAAS,YAAarsB,EAAIhL,IAC/BwM,KAAK6qB,SAAS,iBAAkBrsB,EAAIssB,UACpC9qB,KAAK6qB,SAAS,cAAersB,EAAImF,OAGnCgnB,iBACE,MAAMI,EAAYC,UAAUD,UACtBE,EAAW,CACf,CAAEt7B,KAAM,iBAAkBu7B,QAAS,OACnC,CAAEv7B,KAAM,kBAAmBu7B,QAAS,WACpC,CAAEv7B,KAAM,mBAAoBu7B,QAAS,kBACrC,CAAEv7B,KAAM,QAASu7B,QAAS,OAC1B,CAAEv7B,KAAM,QAASu7B,QAAS,SAC1B,CAAEv7B,KAAM,8BAA+Bu7B,QAAS,WAChD,CAAEv7B,KAAM,gBAAiBu7B,QAAS,UAClC,CAAEv7B,KAAM,eAAgBu7B,QAAS,WAGnC,IAAK,MAAMR,KAAWO,EAAU,CAC9B,MAAMC,EAAUR,EAAQQ,QACxB,GAAIH,EAAUtV,SAASyV,GAAU,CAC/B,MAAMC,EAAeJ,EAAUK,MAAM,IAAIC,OAAUH,EAAH,eAC1CzyB,EAAU0yB,EAAeA,EAAa,GAAK,kBAEjD,OADA75B,QAAQiK,IAAI9C,GACL,CAACiyB,EAAQ/6B,KAAM8I,IAI1B,MAAO,CAAC,UAAW,YAGrB,oBAAoBjF,GAClB,MAAMgL,QAAYtD,OAAWlI,MAC3B,0BACGQ,EAAH,IACA,IACA,GACA,GACA,GAEU,UAARgL,EAIJwB,KAAK6qB,SAAS,iBAAkBrsB,EAAIssB,UAHlCx5B,QAAQiK,IAAI,2BAMhBgvB,eAAe1kB,GACbylB,YAAY,KACV,MAAMC,EAAY1lB,EAAK2lB,SAAS,aAC1BC,EAAa5lB,EAAK2lB,SAAS,kBAC3BE,EAAc7lB,EAAK2lB,SAAS,eAC5BG,EAAc9lB,EAAK2lB,SAAS,MAI7BG,IAIDt+B,SAASu+B,WACNL,GAAaG,IAAgBC,EAIhC9lB,EAAKgmB,aAAaJ,EAAY5lB,EAAKkkB,wBAEnClkB,EAAKimB,cAAcP,IALnB1lB,EAAKkmB,cAAcJ,GACnBr6B,QAAQiK,IAAI,uBASZgwB,GACA1lB,EAAKgmB,aAAaJ,EAAY5lB,EAAKmkB,4BAEnCnkB,EAAKglB,SAAS,YAAa,MAC3Bv5B,QAAQiK,IAAI,4BAGfsK,EAAKikB,uBAGV0B,SAASx6B,GACP,MAAMN,EAAQ4O,aAAaC,QAAQvO,GACnC,IACE,OAAOgL,KAAK4V,MAAMlhB,GAClB,MAAOrC,GACP,OAAOqC,IAIXm6B,SAAS75B,EAAKN,GACZ4O,aAAaE,QAAQxO,EAAKN,IAG5Bm7B,aAAa5N,EAAM+N,GACjB,MAAMC,GAAM,IAAI/H,MAAOgI,UACjBC,EAAM,IAAIjI,KAAKjG,GAAMiO,UAErB7G,EAAO4G,EAAME,EACnB,OAAO9G,EAAO2G,K,UGnKpB,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAASr0B,KAErD,Q,sDCTA,GACby0B,QAAQC,EAAKC,GACXD,EAAIE,MAAM,CACRC,UACExsB,KAAKkqB,OAAO3wB,SAAS,mBAAoByG,W,uICH/C4oB,yBAIO6D,EAAA,CAJAC,MAAKC,4BAAA,CAAArD,MAAIsD,EAAAtD,S,CACHnpB,UAAS0sB,qBAClB,IAAqC,E,yBAArCjE,yBAAqCkE,qCAArBF,EAAAG,YAAYH,EAAAxE,W,kCCHlC,MAAM3lB,EAAgBC,UAEhBnX,EAAU,GAEhBkX,EAAcxE,OAAOC,QAAS8uB,IAC5B,GAAiB,eAAbA,EAA2B,OAE/B,MAAMrqB,EAAWqqB,EACdlqB,QAAQ,OAAQ,IAChBA,QAAQ,KAAM,IACdsa,MAAM,KACN5hB,IAAKyxB,GAAS,GAAGA,EAAK,GAAGC,gBAAgBD,EAAKv7B,MAAM,MACpDyN,KAAK,IAER5T,EAAQ,GAAGoX,GAAcF,EAAcuqB,GAAUjqB,UAGpCxX,QDLA4hC,+BAAgB,CAC7B5D,WAAY,CACV6D,aAEFC,MAAOA,KAAA,CACLN,gBAEFtsB,MAAO,CACL6oB,MAAO,CACLvmB,QAAS,QACTjV,KAAMu7B,QAERjB,KAAM,CACJrlB,QAAS,iBACTjV,KAAMu7B,WErBZ,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,KAErD,QCPA,GACbc,QAAQmD,EAAIC,GACV,MAAMC,EAAW5gC,IACV0gC,EAAGG,SAAS7gC,EAAEuB,SACjBo/B,EAAQ78B,SAGZrD,SAASqgC,iBAAiB,QAASF,GACnCF,EAAGK,cAAgBH,GAErBI,cAAcN,GACZjgC,SAASwgC,oBAAoB,QAASP,EAAGK,iB,+FCT9B1iC,G,oBAAAA,OAAOgT,KAAK6vB,GAAOnH,OAAO,CAACnoB,EAAKxN,KAC7CwN,EAAIxN,GAAOA,EACJwN,GACN,K,4DCHH,SAASuvB,GAAYC,GACnB,OACEA,EAAU5Q,MAAM,KAAKuJ,OAAO,CAACx2B,EAAGrF,IAAOqF,EAAIA,EAAErF,GAAK,GAAKmjC,SAAWD,EAIvD,QACbE,YAAYZ,EAAIC,GACd,MAAM56B,EAAMo7B,GAAYR,EAAQ78B,OAED,QAA7B48B,EAAGa,QAAQC,eACkB,UAA7Bd,EAAGa,QAAQC,cAEXd,EAAGl/B,IAAMuE,EAET26B,EAAGZ,MAAM2B,gBAAkB,OAAO17B,O,yNCfxC,SAAU27B,GACRA,EAAEC,OAAOrjC,UAAUsjC,YAAc,WAC/B,IAAIC,EAAW,GAwBf,OAvBAzuB,KAAK0uB,MAAMC,OAAOzwB,QAAQywB,IACxB,GAAKA,EAAL,CACA,IAAIC,EAAgBD,GAAUA,EAAOrC,QACjB,WAAhBqC,EAAO7gC,OACT6gC,EAAOrF,MAAQqF,EAAOE,YAAYvF,OAGlCqF,GACAL,EAAEQ,KACAF,EAAcG,cACbT,EAAEU,QAAQJ,EAAcK,gBAAYr/B,GACrC,KAGF6+B,EAAWA,EAASS,OAClBP,EAAOQ,cACyB,UAA7BP,EAAcQ,WAAyBT,EAAOnkC,KAAOmkC,QAK9DL,EAAEe,UAAUrvB,KAAM,mBAAoB,CAAEyuB,SAAUA,IAE3CA,IA1BX,CA4BGa,MAEYA,UAAU,ECWzBC,KAAkBD,MAClBE,KAAeF,MACfG,KAAgBH,MAChBI,KAAiBJ,MACjBK,KAAoBL,MACpBM,KAAYN,MACZO,KAAaC,IAEb,MAAMC,GAAMC,uBAAUC,GAETC,GAAUC,iBACjBC,GAAgB,CACpBx/B,KAAM,QAERm/B,GAAIzyB,OAAO+yB,iBAAiBH,QAAUA,GACtCH,GAAIzyB,OAAO+yB,iBAAiBC,aAAeC,EAC3CR,GAAIzyB,OAAO+yB,iBAAiBG,WAAaC,OAEzCV,GAAI5vB,UAAU,cAAeuwB,QAC7BX,GAAIY,IAAIC,OAAaR,IACrBL,GAAIY,IAAIjzB,QACRqyB,GAAIY,IAAIE,OAAOC,GACff,GAAIY,IAAII,KACRhB,GAAIY,IAAIK,KACRjB,GAAIY,IAAIM,GACRlB,GAAIY,IAAIO,QACRnB,GAAIY,IAAIQ,KACRpB,GAAIY,IAAIS,QACRrB,GAAIY,IAAIU,QACRtB,GAAIY,IAAIW,KACRvB,GAAItG,QAAQ,UAAWyG,IAEvBH,GAAI5vB,UAAU,aAAcoxB,GAC5BxB,GAAIyB,UAAU,gBAAiBC,GAC/B1B,GAAIyB,UAAU,MAAOE,IAErB3B,GAAIY,IAAIgB,MACR5B,GAAI6B,MAAM,S,oEChFLn5B,QAAQ,MAAMG,MAAM,6BAA6B3B,MAAM,QAAQC,OAAO,QAAQC,QAAQ,e,EAAcC,gCAAm3E,QAA72EnH,EAAE,22EAAy2E,S,GAAj3EqH,G,gDAAzGC,gCAAk+E,MAAl+EC,EAAAC,G,yBCCA,MAAMzI,EAAS,GAGT0I,EAA2B,IAAgB1I,EAAQ,CAAC,CAAC,SAAS2I,KAErD,gB,uECJf,MAAMk6B,EAAmBjgC,eACVE,OAAUxB,IAAI,2BAA4BuB,GAGnDigC,EAAgBlgC,MAAOQ,EAASP,GAAU,UACjCC,OAAUO,KAAK,2BAA4BD,EAASP,GAG7DkgC,EAAkBngC,MAAO4B,EAAIU,EAAS,GAAIrC,GAAU,UAC3CC,OAAU4B,OACrB,2BAA2BF,EAC3B3B,EACAqC,GAIE89B,EAA+BpgC,MAAOC,GAAU,UACvCC,OAAUxB,IAAI,sCAAuCuB,GAG9DogC,EAA4BrgC,MAAOQ,EAASP,GAAU,UAC7CC,OAAUO,KACrB,sCACAD,EACAP,GAIEqgC,EAA4BtgC,MAAO4B,EAAIU,EAAS,GAAIrC,GAAU,UACrDC,OAAU4B,OACrB,sCAAsCF,EACtC3B,EACAqC,GAIW,OACb29B,mBACAC,gBACAC,kBACAC,+BACAC,4BACAC,6BCzCF,MAAM58B,EAAQ,CACZ68B,SAAU,GACVC,qBAAsB,IAGlBz8B,EAAU,CACdw8B,SAAW78B,GAAUA,EAAM68B,SAC3BC,qBAAuB98B,GAAUA,EAAM88B,sBAGnCp8B,EAAU,CACd,qBAAoB,OAAEE,EAAM,SAAEqD,GAAYnH,GACxC,MAAO/D,EAAKmQ,SAAa6zB,EAAsBP,cAAc,CAC3DniC,KAAMyC,EAAQkgC,cAEZjkC,IAGJ6H,EAAOC,OAAMo8B,YAAa/zB,GAC1BjF,EAAS,oBAGX,qBAAoB,OAAErD,EAAM,SAAEqD,GAAYnH,GACxC,MAAO/D,EAAKmQ,SAAa6zB,EAAsBN,gBAC7C3/B,EAAQogC,YAENnkC,IAGJ6H,EAAOC,OAAMs8B,eAAgBj0B,GAC7BjF,EAAS,oBAGX,sBAAqB,OAAErD,IACrB,IACE,MAAO7H,EAAK8jC,SAAkBE,EAAsBR,mBACpD,GAAIxjC,EACF,OAEE8jC,GAAYA,EAASnnC,QAAU,GACjCkL,EAAOC,OAAMu8B,aAAcP,GAE7B,MAAOvlC,GACPsJ,EAAOC,OAAMu8B,aAAc,MAI/B,iCAAgC,OAAEx8B,EAAM,SAAEqD,GAAYnH,GACpD,MAAO/D,EAAKmQ,SAAa6zB,EAAsBJ,0BAA0B,CACvEU,QAASvgC,EAAQogC,WACjB3X,aAAczoB,EAAQwgC,kBAEpBvkC,GAGJkL,EAAS,+BAGX,iCAAgC,OAAErD,EAAM,SAAEqD,GAAYnH,GACpD,MAAO/D,EAAKmQ,SAAa6zB,EAAsBH,0BAC7C9/B,EAAQygC,uBAENxkC,GAGJkL,EAAS,+BAGX,kCAAiC,OAAErD,EAAM,SAAEqD,IACzC,IACE,MAAOlL,EAAK+jC,SACJC,EAAsBL,8BAA6B,GAC3D,GAAI3jC,EACF,OAEE+jC,GAAwBA,EAAqBpnC,QAAU,GACzDuO,EAAS,yBAA0B64B,GAErC,MAAOxlC,GACP2M,EAAS,yBAA0B,MAIvCu5B,wBAAuB,OAAE58B,GAAU9D,GACjC8D,EAAOC,OAAM48B,0BAA2B3gC,KAItC4E,EAAY,CAChB,CAACb,OAAMo8B,aAAaj9B,EAAOlD,GACzBkD,EAAM68B,SAAW,IAAI78B,EAAM68B,SAAU,IAAK//B,KAE5C,CAAC+D,OAAMs8B,gBAAgBn9B,EAAOlD,GAC5BkD,EAAM68B,SAAW,IAAI78B,EAAM68B,SAAU,IAAK//B,KAE5C,CAAC+D,OAAMu8B,cAAcp9B,EAAOlD,GAC1BkD,EAAM68B,SAAW,IAAI//B,IAQvB,CAAC+D,OAAM48B,2BAA2Bz9B,EAAOlD,GACvCkD,EAAM88B,qBAAuB,IAAIhgC,KAItB,cACbkD,QACAK,UACAK,UACAgB,c,oCCpHF,8UAGO,MAAMg8B,EAAiBphC,MAAOpH,EAAM0L,KACzC,MAAM,GACJ1C,EAAE,KACF7D,EAAI,MACJoO,EAAK,KACLirB,EAAI,MACJxmB,EAAK,aACLqY,EAAY,IACZoY,EAAG,mBACHC,EAAkB,gBAClBC,EAAe,YACfC,EAAW,QACXC,EAAO,YACPC,GACE9oC,EACE+oC,EAAWvK,IAASzoB,OAAMizB,MAAQ,eAAiB7jC,EACnD8L,EAAMutB,IAASzoB,OAAMizB,MAAQ,gBAAkB3Y,EAE/C0L,EAAc,IAAIrC,KACxB1yB,OAAO8N,aAAaE,QAAQ,KAAMhM,GAClChC,OAAO8N,aAAaE,QAAQ,OAAQ+zB,GACpC/hC,OAAO8N,aAAaE,QAAQ,QAASzB,GACrCvM,OAAO8N,aAAaE,QAAQ,OAAQwpB,GACpCx3B,OAAO8N,aAAaE,QAAQ,eAAgB/D,GAC5CjK,OAAO8N,aAAaE,QAAQ,QAASgD,GACrChR,OAAO8N,aAAaE,QAAQ,UAAW6zB,GACvC7hC,OAAO8N,aAAaE,QAAQ,YAAa+mB,GACzC/0B,OAAO8N,aAAaE,QAAQ,MAAOyzB,GACnCzhC,OAAO8N,aAAaE,QAAQ,mBAAoB0zB,GAEhD1hC,OAAO8N,aAAaE,QAAQ,eAAe,GAC3ChO,OAAO8N,aAAaE,QAAQ,aAAc2zB,GAC1C3hC,OAAO8N,aAAaE,QAAQ,aAAc8zB,GAE1Cp9B,EAAOC,OAAMs9B,UAAWF,GACxBr9B,EAAOC,OAAMu9B,gBAAiB31B,GAC9B7H,EAAOC,OAAMw9B,WAAYnxB,GACzBtM,EAAOC,OAAMy9B,mBAAoBP,GACjCn9B,EAAOC,OAAM09B,kBAAmBp4B,GAChCvF,EAAOC,OAAM29B,UAAW9K,GACxB9yB,EAAOC,OAAM49B,aAAcd,GAC3B/8B,EAAOC,OAAM69B,gBAAiBd,GAC9Bh9B,EAAOC,OAAM89B,aAAcd,GAC3Bj9B,EAAOC,OAAM+9B,iBAAiB,IAGnBC,EAA2BviC,UACtCJ,OAAO8N,aAAaE,QAAQ,cAAc,GAC1ChO,OAAO8N,aAAaE,QAAQ,eAAe,GAC3CtJ,EAAOC,OAAM+9B,iBAAiB,GAC9Bh+B,EAAOC,OAAM89B,cAAc,IAGhBG,EAAexiC,UAC1BJ,OAAO8N,aAAaE,QAAQ,cAAc,GAC1CtJ,EAAOC,OAAM89B,cAAc,IAGhBI,EAAgCziC,MAAOmM,EAAO7H,KACzDA,EAAOC,OAAMm+B,UAAWv2B,IAGbw2B,EAAgB3iC,MAAO4Q,EAAOtM,KACzC1E,OAAO8N,aAAaE,QAAQ,cAAc,GAC1CtJ,EAAOC,OAAMq+B,iBAAiB,IAGnBC,EAAmB7iC,UAC9BJ,OAAO8N,aAAao1B,WAAW,cAC/Bx+B,EAAOC,OAAMq+B,iBAAiB,IAGzB,SAASG,IACd,OAAOnjC,OAAO8N,aAAaC,QAAQ,cAG9B,MAAMq1B,EAAsBhjC,UACjC,MAAM,SAAEijC,EAAQ,aAAEha,EAAY,KAAEmO,GAASx+B,EACzC,OAAQqwB,IAAiBga,GAAY7L,IAASzoB,OAAMC,SAGzCs0B,EAAgBljC,MAAO0jB,EAAG3lB,KACrC,IAAIolC,EAAmB,IAAI1J,OAAO,oCAClC,GAAI0J,EAAiBC,KAAKrlC,GACxB,OAAO5C,QAAQC,UAEjB,MAAMioC,EAAY3f,EAAE4f,MAAMC,OAAO,GAAGjI,cAAgB5X,EAAE4f,MAAMxjC,MAAM,GAClE,MAAa,KAAT/B,EAAoB5C,QAAQE,OAAUgoC,EAAH,iBAChCloC,QAAQE,OACb,0E,sDC5FJ,iDAWA2E,eAAewjC,EAAqBnyB,EAASpR,GAAU,EAAMkxB,EAAc,IACzE,aAAajxB,OAAUxB,IACrB,qBAAqB2S,KACrBpR,EACAkxB,GAIJnxB,eAAeyjC,EAA8BtlB,EAAcle,GAAU,GACnE,IAAKxC,EAAO7E,SAAcsH,OAAUxB,IAClC,UAAYyf,EAAe,gCAC3Ble,GAGF,OADIrH,IAAMA,EAAOA,EAAK4oB,OAAO,EAAGkiB,UAAoB,wBAATA,IACpC,CAACjmC,EAAO7E,GAGjBoH,eAAe2jC,EACbxlB,EACAylB,EACApjC,EAAU,GACVP,GAAU,GAEV,aAAaC,OAAUkB,MACrB,UAAY+c,EAAe,gCAAkCylB,EAAW,IACxEpjC,EACAkR,iBACAzR,GAIJ,MAAM4jC,EAAsB7jC,MAAOC,GAAU,UAC9BC,OAAUxB,IAAI,gBAAiBuB,GAGxC6jC,EAAgB9jC,MAAOM,EAAOL,GAAU,UAC/BC,OAAUxB,IAAI,8BAAgC4B,EAAOL,GAG9D8jC,EAAe/jC,MAAOgkC,EAAcxjC,EAASP,GAAU,UAC9CC,OAAUkB,MAAM,UAAU4iC,KAAiBxjC,EAASP,GAG7DgkC,EAAoBjkC,MAAO4B,EAAIpB,EAASP,GAAU,UACzCC,OAAUkB,MAAM,wBAAwBQ,KAAOpB,EAASP,GAGjEikC,EAAsBlkC,MAAOC,GAAU,EAAMkxB,EAAc,WAClDjxB,OAAUxB,IAAI,yBAA0BuB,EAASkxB,GAG1DgT,EAAwBnkC,MAAOC,GAAU,EAAOkxB,EAAc,WACrDjxB,OAAUxB,IACrB,6BACAuB,EACAkxB,GAKEiT,EAA6BpkC,MACjCC,GAAU,EACVkxB,EAAc,WAEDjxB,OAAUxB,IACrB,gCACAuB,EACAkxB,GAIEkT,EAA2BrkC,MAAOC,GAAU,EAAOkxB,EAAc,WACxDjxB,OAAUxB,IAAI,wBAAyBuB,EAASkxB,GAGzDmT,EAAuBtkC,MAC3Bme,EACAomB,EACA/jC,EACAP,GAAU,UAEGC,OAAUkB,MACrB,UAAU+c,4BAAuComB,KACjD/jC,EACAP,GAIEukC,EAA+BxkC,MACnCme,EACA3d,EACAP,GAAU,UAEGC,OAAUkB,MACrB,UAAU+c,0CACV3d,EACAP,GAGEwkC,EAAsBzkC,MAC1B0kC,EACAvmB,EACA3d,EACAP,GAAU,UAEGC,OAAUkB,MACrB,UAAU+c,4BAAuCumB,KACjDlkC,EACAP,GAIEqpB,EAAgCtpB,MACpCC,GAAU,EACVkxB,EAAc,WAEDjxB,OAAUxB,IACrB,0CACAuB,EACAkxB,GAIJnxB,eAAe2kC,EAAiB/iC,EAAI3B,GAAU,GAC5C,aAAaC,OAAUxB,IACrB,uCAAuCkD,EACvC3B,GAIJ,MAAM2kC,EAAkB5kC,MAAOQ,EAASP,GAAU,UACnCC,OAAUO,KAAK,sBAAuBD,EAASP,GAGxD4kC,EAAmB7kC,MAAO4B,EAAI3B,GAAU,UAC/BC,OAAU4B,OACrB,kCAAkCF,EAClC3B,GAIE6kC,EAAoB9kC,MAAOQ,EAASP,GAAU,UACrCC,OAAUyB,IAAI,sBAAuBnB,EAASP,GAGvD8kC,EAAwB/kC,MAC5B0kC,EACAvmB,EACA3d,EACAP,GAAU,UAEGC,OAAUkB,MACrB,UAAU+c,4BAAuCumB,KACjDlkC,EACAP,GAIE+kC,EAAmBhlC,MACvBilC,EACA9mB,EACAle,GAAU,UAEGC,OAAUxB,IACrB,UAAUumC,oBACVhlC,GAIEilC,EAAoBllC,MAAOgkC,EAAc/jC,GAAU,UAC1CC,OAAUO,KACrB,8BAA8BujC,KAC9B/jC,GAIEklC,EAAsBnlC,MAC1B0kC,EACAvmB,EACA3d,EACAP,GAAU,UAEGC,OAAUkB,MACrB,UAAU+c,4BAAuCumB,KACjDlkC,EACAP,GAIEmlC,EAAmBplC,MAAOC,GAAU,EAAOkxB,EAAc,WAChDjxB,OAAUxB,IAAI,wBAAyBuB,EAASkxB,GAGzDkU,EAAiBrlC,MAAOa,EAAQZ,GAAU,UACjCC,OAAUxB,IAAI,2BAA2BmC,EAAUZ,GAG5DqlC,EAAiBtlC,MAAOa,EAAQZ,GAAU,UACjCC,OAAUxB,IAAI,+BAA+BmC,EAAUZ,GAGhEslC,EAAwBvlC,UAC5B,IACE,MAAM4K,QAAiBmB,IAAMrN,IAC3B,4EAA4EgP,aAAaC,QACvF,gBAEF63B,kBAGF,MAAO,CAAC,KAAM56B,EAAShS,MACvB,MAAO6E,GAEP,OADAiC,QAAQjC,MAAMA,GACP,CAACA,KAINgoC,EAAsBzlC,UAC1B,IACE,MAAM4K,QAAiBmB,IAAMrN,IAC3B,yEAAyEgP,aAAaC,QACpF,gBAEF63B,kBAGF,MAAO,CAAC,KAAM56B,EAAShS,MACvB,MAAO6E,GAEP,OADAiC,QAAQjC,MAAMA,GACP,CAACA,KAINioC,EAAiC1lC,MACrCgkC,EACA7lB,EACAle,GAAU,UAEGC,OAAUxB,IACrB,UAAUyf,qBAAgC6lB,KAC1C/jC,GAIE0lC,EAAuB3lC,MAAOC,GAAU,EAAOkxB,EAAc,WACpDjxB,OAAUxB,IACrB,8BACAuB,EACAkxB,GAIEyU,EAAgC5lC,MACpCC,GAAU,EACVkxB,EAAc,WAEDjxB,OAAUxB,IACrB,wCACAuB,EACAkxB,GAIE0U,EAAe7lC,MAAOgkC,EAAcxjC,EAASP,GAAU,UAC9CC,OAAU4B,OAAO,UAAUkiC,KAAiBxjC,EAASP,GAGrD,QACbujC,uBACAC,gCACAE,2BACAE,sBACAC,gBACAI,sBACAH,eACAI,wBACAC,6BACAC,2BACAG,+BACAF,uBACAG,sBACAnb,gCACAqb,mBACAC,kBACAC,mBACAC,oBACAC,wBACAC,mBACAE,oBACAC,sBACAC,mBACAG,wBACAG,iCACAC,uBACAC,gCACAC,eACAJ,sBACAxB,oBACAoB,iBACAC,mB,kCCtTa,QACbQ,SAAU,WACVC,cAAe,gBACfC,SAAU,WACVC,OAAQ,SACRC,QAAS,Y,oCCLX,4BAGA,MAAMx6B,EAAS85B,iBACI9zB,iBAEnB1R,eAAemmC,EAAO3lC,GACpB,aAAaN,OAAUO,KAAK,mBAAoBD,GAAS,EAAMkL,GAGjE1L,eAAeomC,EAAO5lC,GACpB,aAAaN,OAAUO,KACrB,mBACAD,GACA,EACAkR,kBAIJ1R,eAAeqmC,IACb,aAAanmC,OAAUxB,IAAI,uBAAuB,EAAMgT,kBAG1D1R,eAAesmC,EAAwB9lC,GACrC,aAAaN,OAAUO,KACrB,oCACAD,GACA,EACAkL,GAIJ1L,eAAeumC,EAA2B/lC,GACxC,aAAaN,OAAUO,KACrB,mCACAD,GACA,EACAkR,kBAIJ1R,eAAewmC,EAAY51B,EAAO3Q,GAAU,GAC1C,aAAaC,OAAUkB,MACrB,wBAAwBwP,EACxB8S,EACAzjB,EACAyL,GAIJ1L,eAAeymC,EAAajmC,GAC1B,aAAaN,OAAUkB,MACrB,4BACAZ,GACA,EACAkR,kBAIJ1R,eAAe0mC,IACb,aAAaxmC,OAAUxB,IAAI,0BAA0B,EAAMgT,kBAG7D1R,eAAe2mC,EAAUnmC,GACvB,aAAaN,OAAUO,KACrB,2BACAD,GACA,EACAkR,kBAGJ1R,eAAe4mC,IACb,aAAa1mC,OAAUxB,IACrB,2BACAglB,GACA,EACAhS,kBAIJ1R,eAAe6mC,EAAa16B,EAAO3L,GACjC,aAAaN,OAAUkB,MACrB,yBAAyB+K,KACzB3L,GACA,EACAkL,GAGJ1L,eAAe8mC,EAAYtmC,GACzB,aAAaN,OAAUO,KAAK,wBAAyBD,GAAS,EAAMkL,GAGtE1L,eAAe+mC,EAAkBvmC,GAC/B,aAAaN,OAAUO,KACrB,+BACAD,GACA,EACAkR,kBAIJ1R,eAAegnC,EAAgBxmC,GAC7B,aAAaN,OAAUO,KACrB,yBACAD,GACA,EACAkR,kBAGJ1R,eAAeinC,EAAYzmC,GACzB,aAAaN,OAAUO,KAAK,wBAAyBD,GAAS,EAAMkL,GAGtE1L,eAAekO,IACb,aAAahO,OAAUkB,MAAM,kBAAmBsiB,GAAG,EAAMhS,kBAG3D1R,eAAeknC,EAAe1mC,GAC5B,aAAaN,OAAUkB,MACrB,2BACAZ,GACA,EACAkL,GAIJ1L,eAAemnC,EAAe3mC,GAC5B,aAAaN,OAAUkB,MACrB,0BACAZ,GACA,EACAkL,GAIJ1L,eAAeonC,EAAsB5mC,GACnC,aAAaN,OAAUkB,MACrB,mCACAZ,GACA,EACAkR,kBAIJ1R,eAAeqnC,EAAmB7mC,GAChC,aAAaN,OAAUO,KACrB,gCACAD,GACA,EACAkR,kBAIJ1R,eAAesnC,EAAkB9mC,GAC/B,aAAaN,OAAUkB,MACrB,+BACAZ,GACA,EACAkR,kBAIJ1R,eAAeunC,EAA8B/mC,GAC3C,aAAaN,OAAUkB,MACrB,2CACAZ,GACA,EACAkR,kBAGJ1R,eAAewnC,EAAYhnC,GACzB,aAAaN,OAAUO,KACrB,mBACAD,GACA,EACAkR,kBAIJ1R,eAAeynC,EAAgBjnC,GAC7B,IACE,MAAO/C,EAAOmP,SAAa1M,OAAUO,KACnC,wCACAD,GACA,EACAglC,kBAGF,GAAI/nC,EAAO,KAAA+O,EACT,MAAMk7B,GACU,QAAdl7B,EAAA/O,EAAMmN,gBAAQ,IAAA4B,GAAM,QAANA,EAAdA,EAAgB5T,YAAI,IAAA4T,OAAA,EAApBA,EAAsB/O,QAAS,4BACjC,MAAO,CAACiqC,GAEV,MAAM9uC,EAAOgU,EAAIhC,SAEjB,MAAO,CAAC,KAAMhS,GACd,MAAO6E,GAAO,IAAAgP,EACd,MAAMi7B,GACU,QAAdj7B,EAAAhP,EAAMmN,gBAAQ,IAAA6B,GAAM,QAANA,EAAdA,EAAgB7T,YAAI,IAAA6T,OAAA,EAApBA,EAAsBhP,QAAS,4BACjC,MAAO,CAACiqC,IAIZ1nC,eAAe2nC,EAA8BnnC,GAC3C,IACE,MAGM,KAAE5H,SAAemT,MAAMtL,KAAQgL,QAAH,aAAwBjL,EAAS,CACjEonC,QAAS,CACP,eAAgB,uBAOpB,MAAO,CAAC,KAAMhvC,GACd,MAAO6E,GACP,MAAO,CAACA,IAIZuC,eAAe6nC,IACb,aAAa3nC,OAAUxB,IACrB,iCACA,EACA,KACAgT,kBAIJ1R,eAAe8nC,EAAyBtnC,GACtC,aAAaN,OAAUkB,MACrB,mCACAZ,GACA,GAIJR,eAAe+nC,EAAsBvnC,GACnC,aAAaN,OAAUO,KACrB,+BACAD,GACA,EACAkR,kBAIJ1R,eAAegoC,EAAyB1lC,GACtC,aAAapC,OAAUxB,IACrB,gCACA,EACA4D,EACAoP,kBAIJ1R,eAAeioC,EAAqB9pB,EAAcle,GAAU,GAC1D,aAAaC,OAAUxB,IACrB,2CAA2Cyf,EAC3Cle,GAIJD,eAAekoC,EAA2B5lC,GACxC,aAAapC,OAAU4B,OACrB,uCACA,EACAQ,EACAoP,kBAIW,QACby0B,SACAC,SACAS,eACAP,0BACAC,6BACAF,YACAG,cACAC,eACAE,YACAz4B,SACAk5B,wBACAF,iBACAC,iBACAE,qBACAC,oBACAZ,UACAE,iBACAW,gCACAT,cACAC,oBACAE,cACAO,cACAR,kBACAS,kBACAE,gCACAE,qBACAE,wBACAG,6BACAF,2BACAF,2BACAG,yB,oCCjTF,oEAAO,MAAME,EACX,0FAEWC,EAAkB,CAC7B,sBACA,eACA,UACA,iBACA,qB,sDCRa,QACbC,YAAa,gCACbC,YAAa,oCACbC,aAAc,2B,kCCHhB,kCAAO,MAAM9tB,EAAwB,CACnC+tB,WAAY,aACZC,aAAc,iB,oCCFhB,W,2DCEO,MAAMC,EAAsB1oC,MAAOC,GAAU,UACnCC,OAAUxB,IAAI,2BAA4BuB,GAG9C0oC,EAAuB3oC,eACrBE,OAAUO,KAAK,2BAA4BD,GAG7CooC,EAAwB5oC,eACtBE,OAAU4B,OAAO,4BAA4BF,G,gBCR5D,MAAM8B,EAAQ,CACZmlC,aAAa,GACbC,eAAgB,GAChBC,gCAAgC,GAG5BhlC,EAAU,CACdglC,+BAAiCrlC,GAAUA,EAAMqlC,+BACjDD,eAAiBplC,GAAUA,EAAMolC,gBAG7B1kC,EAAU,CACd,2BAA0B,OAAEE,IAC1B,MAAO7G,EAAO7E,SAAcowC,IACxBvrC,EACFiC,QAAQiK,IAAI,CAAElM,WAGhBiC,QAAQiK,IAAI,SAAU/Q,GACtB0L,EAAOC,OAAM0kC,wBAAyBrwC,KAGxC,4BAA2B,OAAE0L,EAAM,MAAEZ,GAAS41B,GAC5C,MAAM4P,EAAiBxlC,EAAMmlC,aAAarnB,OAAO2nB,GAC/CA,EAAMhrB,aAAaqe,cAAc3Y,SAASyV,IAC1C6P,EAAMt0B,KAAK2nB,cAAc3Y,SAASyV,IAClC6P,EAAMC,OAAO5M,cAAc3Y,SAASyV,IAEtCh1B,EAAOC,OAAM8kC,2BAA4BH,IAG3C,4BAA2B,OAAE5kC,GAAU9D,GACrC,MAAO/C,EAAO7E,SAAcowC,EAA0CxoC,GAClE/C,GACFiC,QAAQiK,IAAI,CAAElM,WAMlB,6BAA4B,OAAE6G,GAAU1C,GACtC,MAAOnE,EAAO7E,SAAcowC,EAA2CpnC,GACnEnE,GACFiC,QAAQiK,IAAI,CAAElM,WAMlB6rC,mCAAkC,OAAEhlC,GAAU9D,GAC5C8D,EAAOC,OAAMglC,kCAAmC/oC,KAI9C4E,EAAY,CAChB,CAACb,OAAMglC,mCAAmC7lC,EAAOlD,GAC/CkD,EAAMqlC,+BAAiCvoC,GAGzC,CAAC+D,OAAM8kC,4BAA4B3lC,EAAOlD,GACxC,IAAIgpC,EAAehpC,EAAQoJ,IAAIhR,IACtB,CACLgJ,GAAIhJ,EAAKgJ,GACTuc,aAAcvlB,EAAKulB,aACnBtJ,KAAMjc,EAAKic,KACXu0B,OAAQxwC,EAAKwwC,OACbK,eAAgB7wC,EAAK6wC,eACrBC,aAAc9wC,EAAK8wC,gBAGvBhmC,EAAMolC,eAAiBU,GAGzB,CAACjlC,OAAM0kC,yBAAyBvlC,EAAOlD,GACrC,IAAIgpC,EAAehpC,EAAQoJ,IAAIhR,IACtB,CACLgJ,GAAIhJ,EAAKgJ,GACTuc,aAAcvlB,EAAKulB,aACnBtJ,KAAMjc,EAAKic,KAAKuB,SAChBgzB,OAAQxwC,EAAKwwC,OAAOnU,cAAgBr8B,EAAKwwC,OAAOpU,cAChDyU,eAAgB7wC,EAAK6wC,eACrBC,aAAc9wC,EAAK8wC,gBAGvBhmC,EAAMolC,eAAiBU,EACvB9lC,EAAMmlC,aAAeW,IAIV,cACb9lC,MAAK,EACLK,UACAK,UACAgB,c,6DChGF,wCAAMukC,EAAUlmB,wCACH4Y,EAAS,CAIpBuN,aAAc,CACZC,UAAW,CACTC,EAAMH,EAAH,qCACHI,EAAMJ,EAAH,mCACHK,EAAML,EAAH,kCACHM,EAAMN,EAAH,+BACHO,EAAMP,EAAH,gDACHQ,EAAMR,EAAH,kCACHS,EAAMT,EAAH,gCACHU,EAAMV,EAAH,kCACHW,EAAMX,EAAH,2BACHY,GAAOZ,EAAH,4BACJa,GAAOb,EAAH,6CACJc,GAAOd,EAAH,yCACJe,GAAOf,EAAH,wCACJgB,GAAOhB,EAAH,8CACJiB,GAAOjB,EAAH,0CACJkB,GAAOlB,EAAH,iCACJmB,GAAOnB,EAAH,yC,sDCvBV,OAAe,cACb,CACEr7B,KAAM,SACNvQ,KAAM,QACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,UACNvQ,KAAM,SACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,kBACNvQ,KAAM,SACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,uBACNvQ,KAAM,4BACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,uBACNvQ,KAAM,qBACNwQ,UAAWA,IAAM,iDAOnB,CACED,KAAM,mBACNvQ,KAAM,kBACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,yBACNvQ,KAAM,iBACNwQ,UAAWA,IAAM,iDAEnB,CACED,KAAM,mBACNvQ,KAAM,kBACNwQ,UAAWA,IAAM,mD,oCC5CrB,sGAAO,MAAMw8B,EAAa,CACxB,cAAe,eAGJC,EAAU,CACrB,CACEC,MAAO,QACPC,UAAW,aACXC,MAAO,UAET,CACEF,MAAO,aACPC,UAAW,aACXC,MAAO,UAET,CACEF,MAAO,eACPC,UAAW,eACXC,MAAO,UAET,CACEF,MAAO,UACPC,UAAW,UACXC,MAAO,WAIEC,EAAmB,CAC9B,CAAE1V,MAAO,cAAe52B,MAAO,iB,oCC5BjC,kLAOO,MAqCDusC,EAAuBrrC,UAC3B,IAAI4Q,EAAQ9E,OAAMpI,MAAM4nC,IAAI56B,SAC5B,IAAKE,EAEH,YADAlR,QAAQiK,IAAI,oBAGd,MAAMnJ,EAAU,CACd+qC,QACAC,OAAQ,CAAC56B,GACT66B,OAAQC,OAAargC,cAGhB5N,SAAekuC,OAAWC,mBAAmBprC,GAChD/C,GACFiC,QAAQiK,IAAI,qDAoCHkiC,EAAcA,KACzB,MAAM1tB,EAAerS,OAAMpI,MAAMooC,KAAK3tB,aAChCotB,EAAQ,GAAGptB,KAAgButB,OAAa1gC,UAC9CqgC,EAAqBE,IASVQ,EAAYlN,OACZmN,EAAgBC,Q,oCC3G7B,gBAEA,MAAMC,EAAiBlsC,MAAOC,GAAU,EAAMkxB,UAC/BjxB,OAAUxB,IAAI,mBAAoBuB,EAASkxB,GAGpDgb,EAAmBnsC,MAAOC,GAAU,EAAMkxB,UACjCjxB,OAAUxB,IAAI,qBAAsBuB,EAASkxB,GAGtDib,EAAqBpsC,MAAOQ,EAASP,GAAU,UACtCC,OAAUO,KAAK,0BAA2BD,EAASP,GAG5DosC,EAAuBrsC,MAAOC,GAAU,EAAMkxB,UACrCjxB,OAAUxB,IAAI,4BAA6BuB,EAASkxB,GAG7DnhB,EAAgBhQ,MAAOmxB,EAAalxB,GAAU,UACrCC,OAAUxB,IACrB,mCACAuB,EACAkxB,GAIEmb,EAAyBtsC,MAAOC,GAAU,EAAMkxB,UACvCjxB,OAAUxB,IACrB,gCACAuB,EACAkxB,GAIEob,EAA0BvsC,MAAOmxB,EAAalxB,GAAU,UAC/CC,OAAUxB,IACrB,8CACAuB,EACAkxB,GAIEqb,EAAexsC,eACNE,OAAU4B,OAAO,oBAAoB2qC,MAG9CC,EAAc1sC,MAAO4B,EAAIpB,UAChBN,OAAUkB,MAAM,mBAAmBQ,EAAMpB,GAAS,GAG3DmsC,EAAmB3sC,eACVE,OAAUO,KACrB,0CACAD,GACA,GAIEosC,EAAmB5sC,eACVE,OAAUxB,IAAI,2CAA2C,EAAO,CAC3EmuC,YAAaC,IAIXC,EAAsB/sC,eACbE,OAAU4B,OACrB,qCAAqCF,GACrC,GAIW,QACbsqC,iBACAE,qBACAD,mBACAE,uBACAC,yBACAE,eACAD,0BACAv8B,gBACA08B,cACAC,mBACAC,mBACAG,wB,oCCnFF,+CAIA,MAAM5lC,EAAQC,iBAER1D,EAAQ,CACZspC,gBAAiB,IAGbjpC,EAAU,CACdipC,gBAAkBtpC,GAAUA,EAAMspC,iBAG9B5oC,EAAU,CACd,2BAA0B,OAAEE,IAC1B,MAAMsG,QAAiBtB,OAAW5K,IAChC,qDAEF4F,EAAOC,OAAM0oC,kBAAmBriC,IAElC,mBAAkB,OAAEtG,EAAM,SAAEqD,GAAYnH,GACtC,MAAM,MAAE2L,EAAK,OAAE+gC,GAAW1sC,EACpB2sC,QAAwB7jC,OAAW3H,IACvC,uBACA,GACAyI,KAAKC,UAAU,CAAE8B,QAAO+gC,YACxB,GACA,GACA,EACA,+BAEF,GAAwB,UAApBC,EAEF,OADAhmC,EAAM1J,MAAM,2BACL0vC,EAETxlC,EAAS,uBACT,MAAMylC,QAAoB9jC,OAAW3H,IACnC,WACA,kBACAyI,KAAKC,UAAU7J,IACf,GACA,GACA,GAEF,MAAoB,UAAhB4sC,GACFjmC,EAAM1J,MAAM,gDACL2vC,GAEA,YAKPhoC,EAAY,CAChB,CAACb,OAAM0oC,mBAAmBvpC,EAAOlD,GAC/BkD,EAAMspC,gBAAkB,IAAIxsC,KAIjB,cACbkD,QACAK,UACAK,UACAgB,c,sDChEF,gBAEA,MAAMioC,EAAWrtC,MACf8U,EACAxS,EAAS,CAAElD,IAAK,WAAYN,MAAO,IACnCmB,GAAU,UAEGgG,OAAUvH,IACrB,4DAA4DoW,GACzDxS,EAAOxD,MAAQ,IAAIwD,EAAOlD,OAAOkD,EAAOxD,QAAU,IACrDmB,GAIEqtC,EAAWttC,MAAOC,GAAU,UACnBgG,OAAUvH,IAAI,iBAAkBuB,GAGzCstC,EAAavtC,MAAOQ,EAASP,GAAU,UAC9BgG,OAAUxF,KAAK,iBAAkB,CAAE1C,KAAMyC,IAGlDgtC,EAAaxtC,MAAOyR,EAAWxR,GAAU,UAChCgG,OAAUnE,OAAO,yBAAyB2P,KAAcxR,GAGjEwtC,EAAeztC,MACnBo3B,EACAtiB,EACAxS,EAAS,CAAElD,IAAK,WAAYN,MAAO,IACnCmB,GAAU,UAEGgG,OAAUvH,IACrB,kEAAkE04B,8BAAiCtiB,KAChGxS,EAAOxD,MAAQ,IAAIwD,EAAOlD,OAAOkD,EAAOxD,QAAU,IACrDmB,GAGEytC,EAAgB1tC,MAAOC,GAAU,UACxBgG,OAAUvH,IACrB,sEACAuB,GAIE0tC,EAAa3tC,MAAOyR,EAAWjR,EAASP,GAAU,UACzCgG,OAAU7E,MACrB,yBAAyBqQ,KACzBjR,EACAP,GAIE2tC,EAAa5tC,MAAO4B,EAAI3B,GAAU,KACtC,MAAMO,EAAU,CACdqtC,mBAAmB,GAErB,aAAa5nC,OAAU7E,MACrB,oCAAoCQ,KACpCpB,EACAP,IAIE6tC,EAAqB9tC,MAAOC,GAAU,UAC7BgG,OAAUvH,IAAI,+BAAgCuB,GAGvD8tC,EAAiB/tC,MAAO4B,EAAI3B,GAAU,UAC7BgG,OAAUnE,OACrB,qCAAqCF,EACrC3B,GAIW,QACbotC,WACAC,WACAE,aACAC,eACAC,gBACAC,aACAC,aACAE,qBACAC,iBACAR,e,oCCrFF,sGAAO,MAAMnpC,EAAU,CACrBjD,WAAY,cACZ6sC,cAAe,6BACfC,UAAW,eACXC,UAAW,cAGAC,EAAS,CACpBC,gBAAiB,6BACjBC,SAAU,wBAGCC,EAAW,CACtBC,QAAS,UACTC,SAAU,a,oCCdZ,2DAMA,MAAMrnC,EAAQC,iBAER1D,EAAQ,CACZ+qC,SAAU,GACVC,WAAW,EACXC,eAAgB,GAChBC,WAAY,GACZC,iBAAkB,GAClB3oC,YAAa,EACb4oC,YAAa,EACbC,wBAAyB,IAGrBhrC,EAAU,CACd0qC,SAAW/qC,GAAUA,EAAM+qC,SAC3BC,UAAYhrC,GAAUA,EAAMgrC,UAC5BC,eAAiBjrC,GAAUA,EAAMirC,eACjCC,WAAalrC,GAAUA,EAAMkrC,WAC7BC,iBAAmBnrC,GAAUA,EAAMmrC,iBACnC3oC,YAAcxC,GAAUA,EAAMwC,YAC9B4oC,YAAcprC,GAAUA,EAAMorC,YAC9BC,wBAA0BrrC,GAAUA,EAAMqrC,yBAGtC3qC,EAAU,CACd,2BAA0B,OAAEE,IAC1BA,EAAOC,OAAMyqC,gBAAgB,GAC7B,MAAOvxC,EAAO7E,SAAcq2C,OAAyBjpC,oBACnDtC,EAAMwC,aAGR,GADA5B,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAMyK,EAAQtP,EAAKsP,MAEbumC,EAAW71C,EAAKoP,QAAQ4B,IAAK8xB,IAAE,IAChCA,EACHwT,WAAY9/B,OAAW4jB,WAAW0I,EAAGwT,YACrChW,SAAU9pB,OAAW4jB,WAAW0I,EAAGxC,aAGrC,IAAI0V,EAAalrC,EAAMkrC,WACnBD,EAAiBjrC,EAAMirC,eAE3B/1C,EAAKoP,QAAQsE,QAAShE,IACpB,MAAM6mC,EAAY,GAAG7mC,EAAIlC,uBAAuBkC,EAAIjC,SAC9C+oC,EAAU,IAAI9c,KAAKhqB,EAAI4wB,UACvBmW,EAAmBT,EAAWO,IAAc,IAAI7c,KAAK,cACvD8c,GAAWC,IACbV,EAAeQ,GAAa7mC,EAAI1G,GAChCgtC,EAAWO,GAAaC,KAI5B9qC,EAAOC,OAAM+qC,aAAcb,GAC3BnqC,EAAOC,OAAMgrC,mBAAoBrnC,GACjC5D,EAAOC,OAAMirC,gBAAiBZ,GAC9BtqC,EAAOC,OAAMkrC,qBAAsBd,IAGrC,wBAAuB,OAAErqC,EAAM,SAAEqD,GAAY+nC,GAC3C,IAAIf,EAAiBjrC,EAAMirC,eAC3B,MAAMpoC,EACJooC,EAAe,GAAGe,EAAOtpC,uBAAuBspC,EAAOrpC,YACvDqpC,EAAO9tC,GACT0C,EAAOC,OAAMyqC,gBAAgB,GAC7B,MAAOvxC,EAAO7E,SAAcq2C,OAAyB9oC,iBACnDupC,EAAOtpC,oBACPspC,EAAOrpC,OACPqpC,EAAOppC,eACPC,GAGF,GADAjC,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EAGF,OAFAiC,QAAQiK,IAAI,CAAElM,eACd0J,EAAM1J,MAAM,mCAGdmC,OAAO+vC,KAAK/2C,EAAKg3C,KAAM,WAGzB,2BAA0B,OAAEtrC,EAAM,SAAEqD,GAAYlB,GAC9CnC,EAAOC,OAAMyqC,gBAAgB,GAC7B,MAAOvxC,EAAO7E,SAAcq2C,OAAyBzoC,oBACnDC,GAGF,GADAnC,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EAGF,OAFAiC,QAAQiK,IAAI,CAAElM,eACd0J,EAAM1J,MAAM,mCAGd,MAAMoxC,EAAmB,CACvBgB,MAAM,EACNppC,IAAK7N,EAAKwN,oBACVS,QAASjO,EAAK0N,eACdD,OAAQzN,EAAKyN,OACb1F,OAAQ/H,EAAKk3C,cAEfxrC,EAAOC,OAAMwrC,sBAAuBlB,IAGtC,iCAAgC,OAAEvqC,IAChCA,EAAOC,OAAMyqC,gBAAgB,GAC7B,MACEvxC,EACA7E,SACQq2C,OAAyBvoC,4BAEnC,GADApC,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAMsxC,EAA0B,CAC9BtoC,IAAK7N,EAAKwN,oBACVS,QAASjO,EAAK0N,eACdD,OAAQzN,EAAKyN,OACb1F,OAAQ/H,EAAKk3C,cAEfxrC,EAAOC,OAAMyrC,gCAAiCjB,IAGhD,2BAA0B,OAAEzqC,EAAM,SAAEqD,GAAYsoC,GAC9C3rC,EAAOC,OAAMyqC,gBAAgB,GAC7BtvC,QAAQiK,IACN,cAAcsmC,EAAc7pC,uBAAuB6pC,EAAc5pC,UAAU4pC,EAAcruC,MAE3F,MAAOnE,EAAO7E,SAAcq2C,OAAyBtoC,oBACnDspC,EAAc7pC,oBACd6pC,EAAc5pC,OACd4pC,EAAcruC,IAEhB0C,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB0J,EAAM4D,QAAQnS,EAAK6/B,MACnB9wB,EAAS,yBAGX,uBAAsB,OAAErD,EAAM,SAAEqD,GAAYnH,GAC1C8D,EAAOC,OAAMyqC,gBAAgB,GAC7B,MAAOvxC,EAAO7E,SAAcq2C,OAAyBroC,gBACnDpG,EAAQqG,QACRrG,EAAQiG,KAGV,GADAnC,EAAOC,OAAMyqC,gBAAgB,GACzBvxC,EAGF,OAFAiC,QAAQiK,IAAI,CAAElM,eACd0J,EAAM1J,MAAM7E,EAAK6E,OAGnB0J,EAAM4D,QAAQnS,EAAK6/B,MACnB9wB,EAAS,wBAGXuoC,gBAAe,OAAE5rC,EAAM,SAAEqD,GAAYwoC,GACnC7rC,EAAOC,OAAM6rC,0BAA2BD,GACxCxoC,EAAS,yBAIPvC,EAAY,CAChB,CAACb,OAAM+qC,cAAc5rC,EAAOlD,GAC1BkD,EAAM+qC,SAAWjuC,GAEnB,CAAC+D,OAAMyqC,gBAAgBtrC,EAAOlD,GAC5BkD,EAAMgrC,UAAYluC,GAEpB,CAAC+D,OAAMkrC,sBAAsB/rC,EAAOlD,GAClCkD,EAAMirC,eAAiBnuC,GAEzB,CAAC+D,OAAMirC,iBAAiB9rC,EAAOlD,GAC7BkD,EAAMkrC,WAAapuC,GAErB,CAAC+D,OAAMwrC,uBAAuBrsC,EAAOlD,GACnCkD,EAAMmrC,iBAAmBruC,GAE3B,CAAC+D,OAAM6rC,2BAA2B1sC,EAAOlD,GACvCkD,EAAMwC,YAAc1F,GAEtB,CAAC+D,OAAMgrC,oBAAoB7rC,EAAOlD,GAChCkD,EAAMorC,YAActuC,GAEtB,CAAC+D,OAAMyrC,iCAAiCtsC,EAAOlD,GAC7CkD,EAAMqrC,wBAA0BvuC,IAIrB,cACbkD,QACAK,UACAK,UACAgB,c,oCC1MF,iDAQA,IAAIsG,EAAS,CACXk8B,QAAS,CACP,eAAgB,sBAQpB,MAAMn8B,EAAUD,OAAQ88B,YAElB+H,EACJ,wEAKIzE,EAAqB5rC,UACzB,IACEQ,EAAQsR,MAAQ,+BAChB,MAAM,KAAElZ,SAAemT,IAAMtL,KACxBgL,EAAH,+BACAjL,EACAkL,GAEF,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,KAIN4tC,EAAuBrrC,UAC3B,IACE,MAAM,KAAEpH,SAAemT,IAAMgB,OAAOsjC,EAAK7vC,GACzC,MAAO,CAAC,KAAM5H,GACd,MAAO6E,GACP,MAAO,CAACA,KAIN6yC,EAAwBtwC,UAC5B,IACE,MAAOvC,EAAOmP,SAAa1M,OAAUO,KACnC,8BACAD,GAGF,OADAd,QAAQiK,IAAIiD,EAAKnP,GACV,CAAC,KAAMmP,GACd,MAAOnP,GACP,MAAO,CAACA,KAIN8yC,EAAmBvwC,UACvB,IACE,MAAOvC,EAAOmP,SAAa1M,OAAUO,KACnC,8BACAD,GAGF,OADAd,QAAQiK,IAAIiD,EAAKnP,GACV,CAAC,KAAMmP,GACd,MAAOnP,GACP,MAAO,CAACA,KAIG,QACbmuC,qBACAP,uBACAiF,wBACAC,qB,oCC/Ea,QAEb1O,UAAW,YACXC,gBAAiB,kBACjBC,WAAY,aACZE,kBAAmB,oBACnBuO,aAAc,eACdtO,UAAW,YACXuO,OAAQ,SACRC,kBAAmB,oBACnBC,kBAAmB,oBACnB/N,gBAAiB,kBACjBP,aAAc,eACdC,gBAAiB,kBACjBI,UAAW,YACXV,mBAAoB,qBACpB4O,iBAAkB,+BAGlBC,oBAAqB,sBACrBC,wBAAyB,0BACzBC,wBAAyB,0BAGzBzzB,UAAW,WACXoT,wBAAyB,0BACzBjT,kBAAmB,oBACnBE,kBAAmB,oBACnB2S,cAAe,gBACfhS,cAAe,gBACfP,iBAAkB,mBAClBmC,qBAAsB,uBACtBjC,oBAAqB,sBACrBsE,0BAA2B,4BAC3BC,6BAA8B,+BAC9BrC,cAAe,gBACf3B,mBAAoB,qBACpBD,mBAAoB,qBACpByyB,6BAA8B,+BAC9BtsB,YAAa,cACbmD,0BAA2B,4BAC3BK,4BAA6B,8BAC7BhB,mBAAoB,qBACpBD,wBAAyB,0BACzB3D,yBAA0B,2BAC1B7E,wBAAyB,0BACzBC,yBAA0B,2BAC1BwG,wBAAyB,0BACzBvG,sBAAuB,wBACvBwjB,aAAc,eACdC,gBAAiB,kBACjB6O,kBAAmB,oBACnBC,wBAAyB,0BACzBtnB,oBAAqB,sBACrB7C,sBAAuB,wBACvBpC,aAAc,eACdkC,iBAAkB,mBAClBD,gBAAiB,kBACjBhC,yBAA0B,2BAC1B6I,kCAAmC,oCACnC1I,8BAA+B,gCAC/B3H,sBAAuB,wBACvBH,yBAA0B,2BAC1BE,oCAAqC,sCACrCJ,6BAA8B,+BAC9BiC,6BAA8B,+BAC9BkK,4BAA6B,8BAC7BH,mBAAoB,qBACpB6B,4BAA6B,8BAC7BxK,kBAAmB,oBACnB0K,6BAA8B,+BAC9BE,8BAA+B,gCAC/BnI,2BAA4B,6BAC5BG,2BAA4B,6BAC5BlB,iBAAkB,mBAClBmM,kBAAmB,oBACnB7L,sBAAuB,wBACvBkJ,oCAAqC,sCACrCkB,yBAA0B,2BAC1B5L,cAAe,gBACf2L,0BAA2B,4BAC3B1L,uBAAwB,yBACxB8P,2BAA4B,6BAC5BjQ,oBAAqB,sBACrBwK,4BAA6B,8BAC7B8C,2BAA4B,6BAC5B5P,sBAAuB,wBACvBwS,6BAA8B,+BAC9BC,iCAAkC,mCAClC9O,wBAAyB,0BACzBoM,+BAAgC,iCAChCpK,+BAAgC,iCAChC1D,mBAAoB,qBACpB8M,8BAA+B,gCAC/BrG,2BAA4B,6BAC5B1D,6BAA8B,+BAC9B7C,oBAAqB,sBACrBmM,6BAA8B,+BAC9B+B,0BAA2B,4BAC3BO,8BAA+B,gCAC/BL,yBAA0B,2BAC1BG,wBAAyB,0BACzBM,uBAAwB,yBACxB0B,sCACE,wCACF9O,sBAAuB,wBACvBC,sBAAuB,wBACvBsM,8BAA+B,gCAC/ByB,0BAA2B,4BAC3Be,wBAAyB,0BACzB3J,gCAAiC,kCACjCpG,yBAA0B,2BAC1BgQ,4BAA6B,8BAC7BP,wBAAyB,0BAGzBlnB,sBAAuB,wBACvBU,uBAAwB,yBACxBD,oBAAqB,sBACrBZ,6BAA8B,+BAC9BoB,aAAc,eAGd2mC,yBAA0B,2BAG1BC,UAAW,YACXC,SAAU,WAGVpE,kBAAmB,oBACnBqE,uBAAwB,yBAGxBC,qBAAsB,uBACtBC,mBAAoB,qBACpBC,YAAa,cACbC,mBAAoB,qBACpBC,cAAe,gBACfC,eAAgB,iBAChBC,sBAAuB,wBACvBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,wBAAyB,0BACzBC,0CACE,4CACFC,0CACE,4CACFC,0BAA2B,4BAC3BC,uCACE,yCACFC,sBAAuB,wBACvBC,gBAAiB,kBAGjBC,aAAc,eACdC,sBAAuB,wBACvBC,sBAAuB,wBACvBC,yBAA0B,2BAC1BC,mCAAoC,qCACpCC,uBAAwB,yBACxBC,2BAA4B,6BAC5BC,8BAA+B,gCAC/BC,iCAAkC,mCAClCC,mCAAoC,qCAGpCtjC,wBAAyB,0BACzBE,uBAAwB,yBACxBO,sBAAuB,wBACvBE,uBAAwB,yBACxBE,8BAA+B,gCAC/BE,yCACE,2CACFX,0BAA2B,4BAC3BG,cAAe,gBAGfgjC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,uBAAwB,yBACxBC,wBAAyB,0BACzBC,sBAAuB,wBAGvBC,qBAAsB,uBACtBC,uBAAwB,yBACxBC,uBAAwB,yBAGxB1S,aAAc,eACdH,YAAa,cACbE,eAAgB,iBAChBM,0BAA2B,4BAC3BsS,yBAA0B,2BAC1BC,4BAA6B,8BAG7B1E,eAAgB,iBAChBM,aAAc,eACdG,qBAAsB,uBACtBD,gBAAiB,kBACjBO,sBAAuB,wBACvBK,0BAA2B,4BAC3Bb,mBAAoB,qBACpBoE,mBAAoB,qBACpBC,qBAAsB,uBACtB5D,gCAAiC,kCAGjC6D,wBAAyB,0BACzBC,+BAAgC,iCAChCC,8BAA+B,gCAC/BC,8BAA+B,gCAC/B1zB,iCAAkC,2BAClCkO,wCAAyC,kCACzCylB,6BAA8B,+BAG9BtjC,cAAe,gBAEfujC,qBAAsB,uBACtBC,0BAA2B,4BAC3BC,0BAA2B,4BAC3BC,4BAA6B,8BAE7BC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,qBAAsB,uBACtBC,wBAAyB,0BACzBC,qBAAsB,uBACtBC,eAAgB,iBAChBC,kBAAmB,oBACnBC,sBAAuB,wBACvBC,0BAA2B,4BAG3BnjB,kBAAmB,oBACnBF,0BAA2B,4BAC3BI,gCAAiC,kCACjCC,gCAAiC,kCACjCC,mCAAoC,qCACpCgjB,yBAA0B,2BAC1Bl2B,gDAAiD,kDACjD+S,+BAAgC,iCAGhCojB,gBAAiB,kBACjBC,4BAA6B,8BAC7BC,8BAA+B,gCAC/BC,yBAA0B,2BAC1BC,4BAA6B,8BAG7BC,2BAA4B,6BAC5BC,4BAA6B,8BAC7BC,uBAAwB,yBACxBC,+BAAgC,iCAChCC,mCAAoC,qCACpCC,qBAAsB,uBACtBC,qBAAsB,uBACtBC,qBAAsB,uBACtBC,qBAAsB,uBACtBC,qBAAsB,uBACtBC,yBAA0B,2BAC1BC,yBAA0B,2BAG1B1xC,aAAc,eACdM,0BAA2B,4BAC3BE,mBAAoB,qBACpBG,kBAAmB,oBAGnB4C,0BAA2B,4BAC3BH,8BAA+B,gCAC/BK,4BAA6B,8BAC7BO,6BAA8B,+BAC9BE,gBAAiB,kBACjBE,kBAAmB,oBACnB4X,iBAAkB,mBAClBC,mBAAoB,qBACpB5B,oBAAqB,sBAGrB0qB,kCAAmC,oCACnCN,wBAAyB,0BACzBI,2BAA4B,+B,kCCjS9B,oDAKA,MAAM7J,EAAS2W,eAAa,CAC1BtkC,OAAQA,aACRukC,QAASC,mBAGX,SAASC,IACP,IACE,MAAMC,EAAansC,KAAK4V,MAAMlU,OAAM/H,QAAQwyC,YACtC/U,EAAcp3B,KAAK4V,MAAMlU,OAAM/H,QAAQy9B,aAE7C,MAAO,CAAE+U,aAAY/U,eACrB,MACA,MAAM+U,GAAa,EACb/U,GAAc,EACpB,MAAO,CAAE+U,aAAY/U,gBAoFzB,SAASgV,EAAuBpf,EAAMqf,GACpC,OAAQrf,GACN,KAAKzoB,OAAMizB,MACT,OAAO6U,EAAK,CAAE14C,KAAM,kBACtB,KAAK4Q,OAAMoD,KACX,KAAKpD,OAAMqD,SACX,KAAKrD,OAAMsD,aACT,OAAOwkC,EAAK,CAAE14C,KAAM,SACtB,KAAK4Q,OAAMC,QACT,OAAO6nC,EAAK,CAAE14C,KAAM,oBACtB,KAAK4Q,OAAMuD,eACT,OAAOukC,EAAK,CAAE14C,KAAM,cAEtB,KAAK4Q,OAAMwD,SACT,OAAOskC,EAAK,CAAE14C,KAAM,iBAEtB,QAEE,OADA+N,OAAMnE,SAAS,cACR8uC,EAAK,CAAEnoC,KAAM,YAuB1B,SAASooC,EAAgBC,GACvB,MAAO,CACL,SACA,UACA,kBACA,uBACA,iBAGA,mBACA,mBACAC,KAAM71C,GAAQ41C,EAAGroC,KAAKuV,SAAS9iB,IAGnC,SAAS81C,EAAYzf,GACnB,QAAK/9B,OAAOiU,OAAOqB,QAAOkV,SAASuT,KACjC1pB,aAAaE,QAAQ,cAAehO,OAAOk3C,SAASx7C,MACpDwQ,OAAMnE,SAAS,eACR,GAzIX63B,EAAOuX,WAAW,CAACJ,EAAIK,EAAMP,KAE3B,MAAMQ,EAAanrC,OAAM/H,QAAQkzC,WAC3B7f,EAAOtrB,OAAM/H,QAAQqzB,MACrB,WAAEmf,EAAU,YAAE/U,GAAgB8U,IAC9BY,EAAeprC,OAAM/H,QAAQozC,WAsBnC,IAnBG3V,GACD+U,GACAU,GACAN,EAAGroC,KAAKuV,SAAS,sBAEjBnW,aAAaS,QACbrC,OAAMnE,SAAS,cAAe,CAACgvC,EAAG54C,OAClC04C,KAGGC,EAAgBC,KAAOE,EAAYzf,IAAU6f,GAChDnrC,OAAMnE,SAAS,cAIb65B,GAAe+U,GAAcU,GAC/BnrC,OAAMnE,SAAS,eAIduvC,IACA1V,GACD+U,GACAU,GACAN,EAAGroC,KAAKuV,SAAS,iBAEjB,OAAO2yB,EAAuBpf,EAAMqf,GAatC,IATGS,GACDD,IACCV,IACAI,EAAGroC,KAAKuV,SAAS,kBACjB8yB,EAAGroC,KAAKuV,SAAS,mBAMjBqzB,IACA1V,GACDyV,GACAP,EAAgBC,KACfA,EAAGroC,KAAKuV,SAAS,oBACjB8yB,EAAGroC,KAAKuV,SAAS,iBAElB,OAAO2yB,EAAuBpf,EAAMqf,GAGtC,GAAgB,MAAZE,EAAGroC,KACL,OAAOkoC,EAAuBpf,EAAMqf,GAGtC,MAAM,UAAE/nC,GAAcioC,EAAGloC,KAEzB,IACG+yB,GACDyV,IACU,OAATvoC,QAAS,IAATA,MAAWmV,SAASuT,MACpBuf,EAAGroC,KAAKuV,SAAS,oBACjB8yB,EAAGroC,KAAKuV,SAAS,mBACjB8yB,EAAGroC,KAAKuV,SAAS,mBAElB,OAAO2yB,EAAuBpf,EAAMqf,GAEtC3qC,OAAMnE,SAAS,cAAe,CAACgvC,EAAGS,QAAQT,EAAGS,QAAQh+C,OAAS,IAAI2E,MAClE04C,MAsGajX,U,kEC1MV34B,QAAQ,MAAMG,MAAM,6BAA6B3B,MAAM,QAAQC,OAAO,QAAQC,QAAQ,e,EAAcC,gCAAmd,KAAhdC,KAAK,gBAAc,CAACD,gCAAwb,QAAlbnH,EAAE,mb,MAA/BqH,G,gDAAzGC,gCAAkkB,MAAlkBC,EAAAC,G,yBCCA,MAAMzI,EAAS,GAGT0I,EAA2B,IAAgB1I,EAAQ,CAAC,CAAC,SAAS2I,KAErD,gB,kCCNf,gBAEA/F,eAAeq3C,EAAwB72C,EAASP,GAAU,GACxD,aAAaC,OAAUO,KACrB,sCACAD,EACAP,GAIJD,eAAes3C,EAAwBh3C,EAAQ,GAAIL,GAAU,GAC3D,aAAaC,OAAUxB,IACrB,sCACAuB,EACAK,GAGJN,eAAeu3C,EAAqB31C,EAAI3B,GAAU,GAChD,aAAaC,OAAUxB,IACrB,sCAAsCkD,EACtC3B,GAIJD,eAAew3C,EAAwB51C,EAAIpB,EAASP,GAAU,GAC5D,aAAaC,OAAUkB,MACrB,sCAAsCQ,EACtCpB,EACAP,GAIJD,eAAey3C,EAAwB71C,EAAI3B,GAAU,GACnD,aAAaC,OAAU4B,OACrB,sCAAsCF,EACtC3B,GAIJD,eAAe03C,EAAcrmC,EAASsmC,EAAW13C,GAAU,GACzD,aAAaC,OAAUxB,IACrB,0CAA0C2S,KAAWsmC,IACrD13C,GAIJD,eAAe43C,EAAUp3C,EAASP,GAAU,GAC1C,aAAaC,OAAUO,KAAK,6BAA8BD,EAASP,GAGtD,QACbo3C,0BACAC,0BACAC,uBACAC,0BACAC,0BACAC,gBACAE,c,kCCzDF,gBAEA53C,eAAe63C,EAAuBC,EAASt3C,EAASP,GAAU,GAChE,aAAaC,OAAUyB,IACrB,qDAAqDm2C,KACrDt3C,EACAP,GAIJD,eAAe+3C,EAAoBC,EAAS/3C,GAAU,GACpD,aAAaC,OAAUxB,IACrB,iCAAiCs5C,KACjC/3C,GAIJD,eAAei4C,EAAyBD,EAASx3C,EAASP,GAAU,GAClE,aAAaC,OAAUO,KACrB,iCAAiCu3C,KACjCx3C,EACAP,GAIJD,eAAek4C,EAAsBF,EAASx3C,EAASP,GAAU,GAC/D,aAAaC,OAAUyB,IACrB,yCAAyCq2C,KACzCx3C,EACAP,GAIJD,eAAem4C,EAAwBH,EAAS/3C,GAAU,GACxD,aAAaC,OAAUxB,IACrB,sCAAsCs5C,KACtC/3C,GAIJD,eAAeowB,EAAgB4nB,EAAS/3C,GAAU,GAChD,aAAaC,OAAUxB,IAAI,2BAA2Bs5C,KAAY/3C,GAGpED,eAAeo4C,EAAgBJ,EAASF,EAAS73C,GAAU,GACzD,aAAaC,OAAUxB,IACrB,uCAAuCs5C,eAAqBF,IAC5D73C,GAIW,QACb43C,yBACAE,sBACAE,2BACA7nB,kBACAgoB,kBACAD,0BACAD,0B,kCC1DF,4BAGA,MAAMG,EAAar4C,MACjBQ,EACAP,GAAU,EACVyL,EAASgG,yBAEIzL,OAAUxF,KAAK,uBAAwBD,EAASP,EAASyL,GAGlE4sC,EAAWt4C,MAAOQ,EAASP,GAAU,UAC5BgG,OAAUxF,KAAK,qBAAsBD,EAASP,GAEvDs4C,EAAav4C,MAAOQ,EAASP,GAAU,UAC9BgG,OAAUxF,KAAK,uBAAwBD,EAASP,GAGzDu4C,EAAcx4C,MAAOQ,EAASP,GAAU,UAC/BgG,OAAUxF,KACrB,sCACAD,EACAP,GAIEw4C,EAAuBz4C,MAC3B04C,EACAC,EACAC,EAAO,GACP34C,GAAU,KAEV,MAAMO,EAAU,CACdk4C,cACAC,cACAC,QAEF,aAAa3yC,OAAUxF,KAAK,4BAA6BD,EAASP,IAE9D44C,EAAsB74C,MAAOQ,EAASP,GAAU,UACvCgG,OAAUxF,KACrB,mCACAD,EACAP,GAIE64C,EAAwB94C,MAAO04C,EAAaK,EAAO94C,GAAU,KACjE,MAAMO,EAAU,CACdk4C,cACAK,SAEF,aAAa9yC,OAAUxF,KACrB,mCACAD,EACAP,IAIE+4C,EAAqBh5C,MAAOQ,EAASP,GAAU,UACtCgG,OAAUxF,KACrB,iCACAD,EACAP,EACA,CAAE2nC,QAASl2B,iBAAgBk2B,QAASqR,aAAc,gBAIhDC,EAAyBl5C,MAAOQ,EAASP,GAAU,UAC1CgG,OAAUxF,KACrB,2CACAD,EACAP,GAIW,QACbo4C,aACAC,WACAC,aACAC,cACAC,uBACAI,sBACAC,wBACAE,qBACAE,2B,kCCrFF,gBAEA,MAAMC,EAAgBn5C,MAAOC,GAAU,UACxBC,OAAUxB,IAAI,mBAAoBuB,GAE3Cm5C,EAAgBp5C,MAAOC,GAAU,UACxBC,OAAUO,KAAK,mBAAoB,GAAIR,GAEhDo5C,EAAsBr5C,MAAOQ,EAASP,GAAU,UACvCC,OAAUyB,IACrB,iCACAnB,EACAP,GAGEq5C,EAAsBt5C,MAAOQ,EAASP,GAAU,UACvCC,OAAUkB,MACrB,gCACAZ,EACAP,GAGEs5C,EAAgBv5C,MAAOw5C,EAAWv5C,GAAU,UACnCC,OAAU4B,OAAO,mBAAmB03C,EAAav5C,GAE1Dw5C,EAAyBz5C,MAAOa,EAAQZ,GAAU,UACzCC,OAAUxB,IACrB,mCAAmCmC,EACnCZ,GAGEy5C,EAA0B15C,MAAOQ,EAASP,GAAU,UAC3CC,OAAUO,KAAK,6BAA8BD,EAASP,GAE/D05C,EAA0B35C,MAAO4B,EAAIpB,EAASP,GAAU,UAC/CC,OAAUkB,MACrB,6BAA6BQ,KAC7BpB,EACAP,GAIE25C,EAA0B55C,MAAO4B,EAAI3B,GAAU,UACtCC,OAAU4B,OAAO,8BAA8BF,KAAO3B,GAGtD,QACbk5C,gBACAC,gBACAG,gBACAE,yBACAC,0BACAC,0BACAC,0BACAP,sBACAC,wB,kCCvDF,W,kCCAA,4BAKA,MAAMO,EAAiB,CACrBC,OAAQ,0CACRC,WAAY,kCACZC,YAAa,sDACbC,UAAW,kBACXC,cAAe,8BACfC,kBAAmB,eACnBC,MAAO,4CACPC,cAAe,gBAYXlc,EAAMmc,eAAcT,GACpB9N,EAAYwO,eAAapc,GAEhB4N,U,kCC5Bf,wIAAO,MAAMn0B,EAAQ,CACnB+R,UAAW,aACX2D,OAAQ,SACRJ,MAAO,SAGIstB,EAAwB,CACnC,CAAC5iC,EAAM+R,WAAY,0CACnB,CAAC/R,EAAM0V,QAAS,2CAChB,CAAC1V,EAAMsV,OAAQ,iBAGJutB,EAAoB,CAC/B,CAAC7iC,EAAM+R,WAAY,OACnB,CAAC/R,EAAM0V,QAAS,QAGLotB,EAA4B,CACvC,CAAC9iC,EAAM+R,WAAY,4BACnB,CAAC/R,EAAM0V,QAAS,kBAChB,CAAC1V,EAAMsV,OAAQ,mB,6wDCPjB,MAAM/lB,EAAQC,iBAEDlC,EAAaoD,GAAQ8B,KAAK4V,MAAM5V,KAAKC,UAAU/B,IAE/CqyC,EAAYryC,QACftK,IAARsK,GAA6B,OAARA,GAAgBA,EAAIsyC,aAAevhD,OAE7C6sB,EAAsBA,CAAC1C,EAAOuC,IACvB,OAAdA,EAA2BvC,EAAQ,EAC3BA,EAAQ,EAGTlB,EAAyBu4B,IACpC,IAAKA,EAAY,OAEjB,MAAMhmC,EAAO,CACX9W,KAAM,GACN0Z,UAAW,IAGPqjC,EAAuB,OAAVD,QAAU,IAAVA,OAAU,EAAVA,EAAYrvB,MAAM,MAErC,GAA0B,IAAtBsvB,EAAW1hD,OACb,OAGFyb,EAAK9W,KAAO+8C,EAAW,GAAGtvB,MAAM,KAAK,GAAGuvB,OACxC,IAAI1+B,EAAW,GACXJ,EAAQ,GACRD,EAAO,GACX,IAAK,IAAIg/B,KAAQF,EACfE,EAAOA,EAAKD,OACQ,MAAhBC,EAAKzyC,IAAI,IAAkC,IAApB8T,EAASjjB,OAClC4iB,EAAOg/B,EAAKl7C,MAAM,GAAI,GACG,MAAhBk7C,EAAKzyC,IAAI,GAClB8T,EAAS3iB,KAAKshD,EAAKl7C,MAAM,GAAI,IACJ,MAAhBk7C,EAAKzyC,IAAI,IAAkC,IAApB8T,EAASjjB,QACzC6iB,EAAMviB,KAAK,CACTqE,KAAMie,EACNK,aAEFA,EAAW,GACXL,EAAOg/B,EAAKl7C,MAAM,GAAI,IACG,MAAhBk7C,EAAKzyC,IAAI,KAClB0T,EAAMviB,KAAK,CACTqE,KAAMie,EACNK,aAEFxH,EAAK4C,UAAU/d,KAAK,CAClBqE,KAAMi9C,EAAKl7C,MAAM,GAAI,GACrBmc,UAEFA,EAAQ,GACRI,EAAW,GACXL,EAAO,IAcX,OAXAC,EAAMviB,KAAK,CACTqE,KAAMie,EACNK,aAGGxH,EAAK4C,UAAUre,QAClByb,EAAK4C,UAAU/d,KAAK,CAClBqE,KAAM,WACNke,UAGGpH,GAGIomC,EAAkBJ,IAC7B,IAAKA,EAAY,OAEjB,MAAMC,EAAuB,OAAVD,QAAU,IAAVA,OAAU,EAAVA,EAAYrvB,MAAM,MAErC,GAA0B,IAAtBsvB,EAAW1hD,OACb,OAGF,IAAIijB,EAAW,GAEf,IAAK,IAAI2+B,KAAQF,EACfE,EAAOA,EAAKD,OACQ,MAAhBC,EAAKzyC,IAAI,IAAY8T,EAAS3iB,KAAKshD,EAAKl7C,MAAM,GAAI,IAGxD,OAAOuc,GAGIkM,EAAgC7kB,IAC3C,MAAM,QAAE4T,GAAY5T,EACpB,IAAImI,EACF,4DACF,QAAIyL,EAAQkiB,MAAM,uBAChBryB,EAAMue,KAAK,uBAAuBpO,MAAYzL,MACvC,IAKE2c,EAAoB9kB,IAC/B,MAAM,QAAE4T,EAAO,SAAEvB,GAAarS,EACxBw3C,GAAQnlC,EAASolC,MAAOzf,GAAOA,EAAGtlB,WAAakB,GACrD,QAAI4jC,IACF/zC,EAAMue,KAAK,uBAAuBpO,uBAC3B,IAKEkQ,EAAgB/P,IAC3B,MAAMyjC,GAAQzjC,EAAU0jC,MAAO13B,IAC7B,MAAM,KAAE1lB,EAAI,MAAEke,GAAUwH,EACxB,OACE1lB,GACAke,EAAMk/B,MAAOn/B,IACX,MAAM,KAAEje,EAAI,SAAEse,GAAaL,EAC3B,OAAOje,GAAQse,EAAS8+B,MAAO90B,GAAYA,OAIjD,QAAI60B,IACF/zC,EAAMue,KAAK,iCACJ,IAKE+C,EAAyBhR,IACpC,MAAMyjC,GAAQzjC,EAAU0jC,MACrB13B,GACCA,EAAQ1lB,MACR0lB,EAAQxH,MAAMk/B,MAAOn/B,GAASA,EAAKje,MAAQie,EAAKK,SAAS,KAE7D,QAAI6+B,IACF/zC,EAAMue,KAAK,4CAA6C,CACtDpoB,QAAS,OAEJ,IAIEorB,EAAoCjR,IAC/C,MAAM2jC,EAAe,SAErB,IAAK,MAAM33B,KAAWhM,EACpB,IAAK,MAAMuE,KAAQyH,EAAQxH,MAAO,CAChC,GAAID,EAAKje,MAAQq9C,EAAahY,KAAKpnB,EAAKje,MAOtC,OANAoJ,EAAMue,KACJ,cAAc1J,EAAKje,2CACnB,CACET,QAAS,OAGN,EAIT,GAAI0e,EAAKK,UAAYg/B,MAAMC,QAAQt/B,EAAKK,UACtC,IAAK,MAAMgK,KAAWrK,EAAKK,SACzB,GAAIgK,GAAW+0B,EAAahY,KAAK/c,GAO/B,OANAlf,EAAMue,KACJ,iBAAiBW,wCACjB,CACE/oB,QAAS,OAGN,EAMjB,OAAO,GAEImqB,EAAsBhQ,IACjC,MAAM8jC,EAAgB9jC,EAAU7N,IAAKhP,GAAMA,EAAEmD,MAC7C,OAAIw9C,EAAcniD,SAAW,IAAI6hB,IAAIsgC,GAAeC,OAClDr0C,EAAMue,KAAK,mCACJ,IAKEgC,EAAmBjQ,IAC9B,MAAMwE,EAAQxE,EACXsd,OAAO,CAAC0mB,EAAK/f,IAAO,IAAI+f,KAAQ/f,EAAGzf,OAAQ,IAC3CrS,IAAKoS,GAASA,EAAKje,KAAKg9C,QAC3B,OAAI9+B,EAAM7iB,SAAW,IAAI6hB,IAAIgB,GAAOu/B,OAClCr0C,EAAMue,KAAK,+BACJ,IAKEiC,EAAsBlQ,IACjC,MAAMikC,EAAc,IAAIzgC,IACxB,IAAK,IAAIwI,KAAWhM,EAClB,IAAK,IAAIuE,KAAQyH,EAAQxH,MACvB,IAAK,IAAIoK,KAAWrK,EAAKK,SAAU,CACjC,MAAML,GAAQ,GAAKqK,GAASmF,MAAM,KAAKje,KAAK,IAC5C,GAAa,KAATyO,GAAwB,MAATA,GAAgB0/B,EAAYC,IAAI3/B,GAEjD,OADA7U,EAAMue,KAAK,6BACJ,EAETg2B,EAAYhsB,IAAI1T,GAKtB,OAAO,GAGI4L,EAAwBnQ,IACnC,IAAIyjC,GAAO,EAgBX,OAfAzjC,EAAUnL,QAASmX,IACjB,MAAMm4B,EAAcxxC,KAAK4V,MAAM5V,KAAKC,UAAUoZ,EAAQxH,QACtD2/B,EAAYtvC,QAASuvC,IACnB,MAAM7/B,EAAO6/B,EAAQ99C,KAAK8tB,WACpBxP,EAAWw/B,EAAQx/B,SACzB,GAAIA,EAASwH,SAAS7H,GAGpB,OAFA7U,EAAMue,KAAK,8CACXw1B,GAAO,OAQNA,GAGIvyB,EAAgBlR,GACF,IAArBA,EAAUre,SACZ+N,EAAMue,KAAK,mDACJ,GAKEkD,EAAcnR,IACzB,MAAMyjC,EAAOzjC,EAAUm/B,KAAMnzB,GAAqC,IAAzBA,EAAQxH,MAAM7iB,QACvD,QAAI8hD,IACF/zC,EAAMue,KAAK,6CACJ,IAKEmD,EAAyBpR,GAChCA,EAAUre,OAAS,IACrB+N,EAAMue,KAAK,gDACJ,GAKEqC,EAAgBA,CAACtQ,EAAWrB,KACvC,IAAImB,EAAa,QAAUnB,EAAS2kC,OAapC,OAXAtjC,EAAUnL,QAASmX,IACjB,MAAQ1lB,KAAM+9C,EAAW,MAAE7/B,GAAUwH,EACrCxH,EAAM3P,QAAS0P,IACb,MAAQje,KAAMg+C,EAAQ,SAAE1/B,GAAaL,EACrCzE,GAAc,KAAOwkC,EAAW,IAChC1/B,EAAS/P,QAAS+Z,IAChB9O,GAAc,KAAO8O,EAAU,QAGnC9O,GAAc,KAAOukC,EAAc,MAE9BvkC,GAGIuR,EAAwBA,CAACplB,EAAOY,KAC3C,MAAM,mBAAEwT,EAAkB,eAAEiC,GAAmBrW,EACzCs4C,EAAoBC,GAAiBliC,GACrCkT,EAAkB,IACnBnV,EACH1N,KAAK4V,MAAM5V,KAAKC,UAAU2xC,KAE5B13C,EAAOC,OAAMqgB,yBAA0BqI,GAClCvpB,EAAM4V,uBACThV,EAAOC,OAAMwgB,+BAA+B,IAInCiE,EAAiBtlB,IAC5B,IAAIwE,EAAQ,EAMZ,OALAxE,EAAM+T,UAAUnL,QAASmX,IACvBA,EAAQxH,MAAM3P,QAAS0P,IACrB9T,GAAS8T,EAAKK,SAASjjB,WAGpB8O,GAGIwhB,EAAqBA,EAAGwyB,gBAAgB9lC,IAC/C8lC,IAAiBC,OAAiBnW,WACpC7+B,EAAMue,KACDtP,EAAH,4EAEK,GAKEqT,EAAuBA,CAACze,EAASoL,KAC5C,MAAMgmC,EAAqBpxC,EAAQ5R,OAAS,EAC5C,QAAIgjD,IACFj1C,EAAMue,KACDtP,EAAH,gFAEK,IAaLimC,EAAuBvkC,IAAuB,IAAAqS,EAAAmyB,EAAAC,EAAAC,EAClD,MAAMC,EAEL,QAFuBtyB,EAAG9wB,OAAOgT,KACX,QADeiwC,EACpCxkC,EAAmB,UAAE,IAAAwkC,OAAA,EAArBA,EAAuBI,kBACxB,IAAAvyB,OAAA,EAF0BA,EAExB5c,KAAK,KACFovC,EAAgE,QAAhDJ,EAAGljD,OAAOgT,KAA0B,QAAtBmwC,EAAC1kC,EAAmB,UAAE,IAAA0kC,OAAA,EAArBA,EAAuBE,kBAAU,IAAAH,OAAA,EAA7CA,EAA+ChvC,KACtE,KAEF,OAAIkvC,IAAuBE,GAIvBC,EAA2BA,KAC/B,MAAMC,EAA2B,CAC/BC,gBAAiB,GACjBC,eAAe,EACfC,aAAc,GACdC,WAAY,GACZC,eAAgB,CACd,kBAAmB,CACjBC,UAAW,GACXC,cAAe,GACfC,aAAc,IAEhB,mBAAoB,CAClBF,UAAW,GACXC,cAAe,GACfC,aAAc,MAIpB,OAAOR,GAGHS,EAAsBxlC,IAAuB,IAAAylC,EAAAC,EACjD,MAAMC,EAAqC,QAAxBF,EAAGzlC,EAAmB,UAAE,IAAAylC,OAAA,EAArBA,EAAuBb,UACvCgB,EAAkC,QAAxBF,EAAG1lC,EAAmB,UAAE,IAAA0lC,OAAA,EAArBA,EAAuBd,UAEpCiB,EAAwBtkD,OAAOiU,OAAOmwC,GAAe1oB,OACzD,CAACnoB,EAAK8uB,KACJ,MAAMrf,EAAWhjB,OAAOgT,KAAKqvB,GAC7B,MAAO,IAAI9uB,EAAKyP,IAElB,IAEIuhC,EAAsBvkD,OAAOiU,OAAOowC,GAAY3oB,OAAO,CAACnoB,EAAK8uB,KACjE,MAAMrf,EAAWhjB,OAAOgT,KAAKqvB,GAC7B,MAAO,IAAI9uB,EAAKyP,IACf,IAEH,IAAIwhC,EAAmB,GASvB,OARAF,EAAsBrxC,QAAQ,CAAC+P,EAAUmH,KACvC,MAAMs6B,EAAeF,EAAoBp6B,GACzCnH,EAAS/P,QAAQ,CAACtR,EAAG9B,KACf8B,IAAM8iD,EAAa5kD,KACrB2kD,EAAiBC,EAAa5kD,IAAM8B,OAInC6iD,GAGHE,EAA0BA,CAACr6C,EAAOoU,KAAuB,IAAAkmC,EAC7D,MAAM,eAAE1nC,GAAmB5S,EACrBu6C,EAAiC,QAAxBD,EAAGlmC,EAAmB,UAAE,IAAAkmC,OAAA,EAArBA,EAAuBtB,UACnCwB,EAC2D,IAA/D7kD,OAAOgT,KAAKixC,EAAmBxlC,IAAqB1e,OAChD+kD,EAAO,CACX,CAACvmC,OAAM,cAAetB,IAAmB0S,EAActlB,GACvD,CAACkU,OAAM,WACLykC,EAAoBvkC,IAAuBomC,EAC7C,CAACtmC,OAAM,UAA6C,IAAlCve,OAAOgT,KAAK4xC,GAAW7kD,QAErCglD,EAAoBtmC,EACvB0J,OAAO,EAAG6L,eAAkC,IAAnB8wB,EAAK9wB,IAC9BzjB,IAAI,EAAG8yC,YAAWrvB,eAAe,CAChC,CAACqtB,OAA0BrtB,KAAY,EACvCgxB,aAAc3B,KAElB,OAAO0B,GAGHE,EAA6B/mC,IAAe,IAAAgnC,EAChD,MAAMC,EAAiBjnC,EAAWiU,MAAM,MAClCpV,EAAyB,OAAdooC,QAAc,IAAdA,GAAuB,QAATD,EAAdC,EAAgB3kD,eAAO,IAAA0kD,GAAY,QAAZA,EAAvBA,EAAyB/yB,MAAM,YAAI,IAAA+yB,OAAA,EAAnCA,EAAqCxrB,MAEtD,OADAyrB,EAAezrB,MACR,CAAC3c,EAAUooC,EAAejxC,KAAK,QAGlCkxC,EAA8BA,CAAC1kC,EAAgB1D,KAAgB,IAAAqoC,EACnE,MAAMC,EAAmBtoC,EAAYmV,MAAM,MACrCozB,EAA0C,QAAhCF,EAAGrlD,OAAOiU,OAAOyM,UAAe,IAAA2kC,GAIxC,QAJwCA,EAA7BA,EACf3pB,OAAO,CAACnoB,EAAK8uB,KACb9uB,EAAM,IAAIA,KAAQ8uB,GACX9uB,GACN,WAAG,IAAA8xC,OAAA,EAJWA,EAKf90C,IAAKoS,GAASA,EAAO,KAEzB,IAAK4iC,EAAWxlD,OAAQ,OAAOid,EAC/B,MAAMwoC,EAAgBF,EAAiBn9B,OACpCxF,IAAU4iC,EAAWhI,KAAMkI,GAAUA,IAAU9iC,IAElD,MAAO,CACL+iC,kBAAmBF,EAActxC,KAAK,MACtCyxC,gBAAiBJ,EAAWxlD,SAInBwzB,EAA0BA,CAAClpB,EAAOu7C,KAAwB,IAAAC,EACrE,MAAM,YAAE7oC,GAAgB3S,EACxB,GAAqC,QAAjCw7C,EAAC7lD,OAAOgT,KAAK4yC,UAAoB,IAAAC,IAAhCA,EAAkC9lD,OAAQ,OAAO6lD,EAEtD,MAAM,KAAElhD,EAAI,UAAE0Z,GAAc6K,EAAsBjM,GAC5C8oC,EAAoBv8B,EAAsBnL,GAGhD,IAAI7K,EAAM+tC,EAASsE,GACf/5C,EAAU+5C,GACV70C,KAAK4V,MAAMi/B,GAUf,GARAryC,EAAMvT,OAAO+lD,QAAQxyC,GAAKmoB,OAAO,CAACnoB,EAAK8uB,KACrC,MAAM1f,EAAOmjC,EAAkBzjB,EAAG,IAC9ByjB,EAAkBzjB,EAAG,IACrB,aAEJ,OADA9uB,EAAIoP,GAAQ0f,EAAG,GACR9uB,GACN,KAEEA,EAAIrT,eAAe,cAAe,CACrC,MAAM0iB,EAAQ5iB,OAAOgT,KAAK8yC,GAAmB/lD,OAC7CwT,EAAI,cAAgBA,EAAIqP,EAAM7iB,QAAUwT,EAAIqP,EAAM7iB,QAAU,GAE9D,OAAOwT,GAGHyyC,EAA+BA,CAAC37C,EAAOoU,KAAuB,IAAAwnC,EAAAC,EAClE,MAAM,iBAAEllC,EAAgB,UAAE5C,GAAc/T,EACxC,IAAK2W,IAAqBhhB,OAAOgT,KAAKgO,GAAkBjhB,OAAQ,OAAO,KAEvE,MAAMomD,EAAqBz8B,EAAsBtL,GAC3CgoC,EAAsC,QAAxBH,EAAGxnC,EAAmB,UAAE,IAAAwnC,OAAA,EAArBA,EAAuB5C,UACxCgD,EAAiBpC,EAAmBxlC,GACpC6nC,EAAYtmD,OAAOgT,KAAKozC,GACxBG,EAA2C,QAAhCL,EAAGlmD,OAAOiU,OAAOmyC,UAAe,IAAAF,OAAA,EAA7BA,EAA+BxqB,OACjD,CAACnoB,EAAK8uB,IAAO,IAAI9uB,KAAQ8uB,GACzB,IAGImkB,EAAqBxmD,OAAO+lD,QAAQ/kC,GAAkB0a,OAC1D,CAACnoB,EAAK8uB,KACJ9uB,EAAI8uB,EAAG,IAAMpgB,OAAOogB,EAAG,IAChB9uB,GAET,IAGF,IAAIsf,EAAO,GACX,MAAM/P,EAAW9iB,OAAOgT,KAAKmzC,GAC7BrjC,EAAS7P,QAAS0P,IAChB,MAAMM,EAAYjjB,OAAOgT,KAAK6f,GAAM9yB,OACpC,GAAIihB,EAAiB9gB,eAAeyiB,GAClC,GAAI2jC,EAAUvmD,QAAmB,OAATumD,QAAS,IAATA,KAAW97B,SAAS7H,GAAO,CACjD,MAAM8jC,EAASD,EAAmB7jC,GAC5B+jC,EAAkBN,EAAezjC,GACjCgkC,EAAmBD,EAAgBhrB,OAAO,CAACnoB,EAAK8uB,IAC5C9uB,EAAO0O,OAAOukC,EAAmBnkB,IACxCokB,GACH5zB,EAAK5P,GAAa0jC,GAAoBD,EAAgB3mD,OAAS,QAC1C,OAAXwmD,QAAW,IAAXA,KAAa/7B,SAAS7H,KAChCkQ,EAAK5P,GAAaujC,EAAmB7jC,SAE9B3iB,OAAOgT,KAAKqzC,GAAgB77B,SAAS7H,GAC9CkQ,EAAK5P,GAAaujC,EAAmBH,EAAe1jC,IAChD6jC,EAAmBH,EAAe1jC,IAClC,EAEJkQ,EAAK5P,GAAa,IAGtB,MAAM2jC,EAAW5mD,OAAOgT,KAAK6f,GAAM9yB,OAInC,OAHA8yB,EAAK+zB,GAAYJ,EAAmB,cAChCA,EAAmB,cACnB,GACG3zB,GAGHg0B,EAA2BA,CAACx8C,EAAOoU,KAAuB,IAAAqoC,EAAAC,EAC9D,MAAM,cAAEhmC,EAAa,UAAE3C,EAAS,oBAAEmB,GAAwBlV,EAC1D,IAAK0W,IAAkB/gB,OAAOgT,KAAK+N,GAAehhB,OAAQ,OAAO,KAEjE,MAAMinD,EAAoBzD,IACpB4C,EAAqBz8B,EAAsBtL,GAC3CgoC,EAAsC,QAAxBU,EAAGroC,EAAmB,UAAE,IAAAqoC,OAAA,EAArBA,EAAuBzD,UACxCgD,EAAiBpC,EAAmBxlC,GACpC6nC,EAAYtmD,OAAOgT,KAAKozC,GACxBG,EAA2C,QAAhCQ,EAAG/mD,OAAOiU,OAAOmyC,UAAe,IAAAW,OAAA,EAA7BA,EAA+BrrB,OACjD,CAACnoB,EAAK8uB,IAAO,IAAI9uB,KAAQ8uB,GACzB,IAGI4kB,EAAsBjnD,OAAO+lD,QAAQhlC,GAAe2a,OACxD,CAACnoB,EAAK8uB,KACJ,MAAMqgB,EAAWnjC,EAAoB8iB,EAAG,IAExC,OADA9uB,EAAImvC,GAAYrgB,EAAG,GACZ9uB,GAET,IAGF,IAAI2zC,EAAkB,GACtB,MAAMpkC,EAAW9iB,OAAOgT,KAAKmzC,GAuB7B,OAtBArjC,EAAS7P,QAAS0P,IAChB,MAAMM,EAAYjjB,OAAOgT,KAAKk0C,GAAiBnnD,OAC/C,GAAIknD,EAAoB/mD,eAAeyiB,GAEjC2jC,EAAUvmD,QAAmB,OAATumD,QAAS,IAATA,KAAW97B,SAAS7H,GAC1CukC,EAAgBjkC,GAAa+jC,EAEV,OAAXT,QAAW,IAAXA,KAAa/7B,SAAS7H,KAC9BukC,EAAgBjkC,GAAagkC,EAAoBtkC,SAGhD,GAAI3iB,OAAOgT,KAAKqzC,GAAgB77B,SAAS7H,GAAO,CACnD,MAAMwkC,EAAmBd,EAAe1jC,GACxCukC,EAAgBjkC,GAAagkC,EAAoBE,GAC7CF,EAAoBE,GACpBH,OAGJE,EAAgBjkC,GAAa+jC,IAGjC3gD,QAAQiK,IAAI,mBAAoB42C,GACzBA,GAGIx2B,EAAuBA,CAACrmB,EAAOomB,KAC1C,MAAM,WACJvS,EAAU,QACVD,EAAO,aACPrB,EAAY,mBACZ6B,EAAkB,eAClBiC,GACErW,GACG+8C,EAAaC,GAClBpC,EAA0Bx0B,IACrBpG,EAAG86B,GAAkBF,EAA0B/mC,GAEtD,IAAIopC,EAAc,CAChBxiC,aAAcza,EAAM6V,iBACpBy+B,QAAS/hC,EACTG,SAAUkB,EACVwG,YAAavG,EACbkF,WAAYuM,EAActlB,GAC1B+nC,OAAQrnC,OAAQjD,WAChB8d,YAAa,KACbC,iBAAkB,GAClB0hC,cAAeH,EACfI,iBAAiB,GASnB,GANAF,EAAY,wBACVD,IAAmBlC,GACoB,IAAvCnlD,OAAOgT,KAAK0N,GAAgB3gB,OAE9BunD,EAAY,mBAAqBF,IAAgBnpC,EAE7Cje,OAAOgT,KAAK0N,GAAgB3gB,OAAQ,CACtC,MAAM,kBAAE2lD,EAAiB,gBAAEC,GAAoBP,EAC7C1kC,EACAxC,GAEFopC,EAAY,eAAiB5B,EAC7B4B,EAAY,cAAgBA,EAAY,cAAgB3B,EAG1D,MAAM,qBAAE8B,GAAyBH,EAC7BG,IACFH,EAAY,kBAAoB5C,EAC9Br6C,EACAoU,IAGJ6oC,EAAY,kBAAoBtB,EAC9B37C,EACAoU,GAGF6oC,EAAY,kBAAoBT,EAC9Bx8C,EACAoU,GAGF,MAAMipC,EAAkBC,GACtBt9C,EACAi9C,EAAY,gBAGdA,EAAY,uBAAyBI,EAAgB,iBACrDJ,EAAY,wBAA0BI,EAAgB,iBACtDJ,EAAY,mBAAqBI,EAAgB,aACjD,MAAME,EAAmBC,EAAqBx9C,EAAOq9C,GAErD,OADAJ,EAAc,IAAKA,KAAgBM,GAC5BN,GAGHQ,EAA0BA,CAACC,EAAcC,KAC7C,IAAIC,EAAe,GACnB,MAAM,cAAEC,EAAa,cAAEC,GAAkBJ,EACzC,IAAK,MAAOK,EAAYxlC,KAAU5iB,OAAO+lD,QAAQiC,GAAiB,CAChE,IAAIK,EAAW,KACf,IAAK,MAAMlnD,KAAKyhB,EAAO,CACrB,MAAM0lC,EAAYH,EAAcI,KAAMC,GAAOA,EAAG,KAAOrnD,GACnDmnD,EAAWD,EAAWC,EAAU,GAC1BJ,EAAc19B,SAASrpB,KAAIknD,EAAWlnD,GAC/B,OAAbknD,QAAkC1jD,IAAb0jD,IACvBJ,EAAaG,GACTH,EAAaG,GAAY/nD,KAAKgoD,GAC7BJ,EAAaG,GAAc,CAACC,IAEnCA,EAAW,MAGf,OAAOt3C,KAAKC,UAAUi3C,IAGxB,SAASJ,EAAqBx9C,EAAO09C,GACnC,MACE/nC,gBAAgB,gBAAEkR,IAChB7mB,EACJ,IAAI,uBAAEo+C,EAAsB,yBAAEC,GAA6Bx3B,EAC3D,MAAMjiB,EAAM,CACVy5C,yBAA0BZ,EACxBC,EACAW,GAEFD,uBAAwBX,EACtBC,EACAU,IAGJ,OAAOx5C,EAGF,MAAMgf,EAAyB5jB,IACpC,MAAM,cAAE2T,GAAkB3T,EAC1B,OAAO2T,EAAczN,IAAK6Z,IACxB,MAAMu+B,EAAc,CAClBjkD,KAAM,GACNke,MAAOwH,EAAQxH,MAAMrS,IAAKoS,IACxB,MAAMimC,EAAW,CACflkD,KAAM,GACNse,SAAUL,EAAKK,SAASzS,IAAK8Z,GAAM,KAErC,OAAOu+B,KAGX,OAAOD,KAILE,EAAuBA,CAACx+C,EAAOqN,EAAUmb,KAC7C,MAAM,SAAE9V,GAAa1S,EACrB,IAAIy+C,EAAO,IAAIC,KAAK,CAACl2B,GAAO,CAAEhwB,KAAM,4BAChCsE,EAAU,IAAI6hD,SAClB,MAAMC,EAAY50C,aAAaC,QAAQ,gBAAxB,YACTytB,EAAW,GAAGhlB,KAAYrF,IAIhC,OAHAvQ,EAAQ+hD,OAAO,OAAQJ,EAAM,GAAGpxC,GAChCvQ,EAAQ+hD,OAAO,SAAUD,GACzB9hD,EAAQ+hD,OAAO,YAAannB,GACrB56B,GAGHgiD,EAAuBA,CAAC9+C,EAAOqN,KACnC,MAAM,SAAEqF,GAAa1S,EACfya,EAAezQ,aAAaC,QAAQ,gBAC1C,MAAO,CACL20C,OAAWnkC,EAAH,YACRskC,UAAW,GAAGrsC,KAAYrF,IAC1BoN,iBAIS8M,EAA2BA,CAACvnB,EAAOwoB,IACvC,IAAI/wB,QAAQ6E,MAAO5E,EAASsoB,KACjC,MAAM3S,EAAW,oBACjB,GAAa,OAATmb,EAAe,CACjB,MAAM1rB,EAAUgiD,EAAqB9+C,EAAOqN,SACtC2xC,OAAUnK,WAAW/3C,GAAS,OAC/B,CACL,MAAMA,EAAU0hD,EAAqBx+C,EAAOqN,EAAUmb,SAChDw2B,OAAUrK,WAAW73C,GAAS,GAEtCpF,MAIS2lB,EAAyB9B,IAAgB,IAAA0jC,EACpD,MAAMzH,EACJ,CAAC,OAAQ,KAAM,MAAMr3B,SAAS5E,IACQ,KAAnB,QAAnB0jC,EAAAtpD,OAAO4lB,UAAY,IAAA0jC,GAAM,QAANA,EAAnBA,EAAqBt2C,YAAI,IAAAs2C,OAAA,EAAzBA,EAA2BvpD,QAE7B,OAAO8hD,GAGIt4B,EAAyBnL,IAAc,IAAAmrC,EAClD,MAAMn/B,EAAU,GAOhB,OALAhM,EAAUnL,QAAS1R,IACZ6oB,EAAQ,SACRA,EAAQ,SAAW,IAAIA,EAAQ,YAAa7oB,EAAEqhB,OAD5BwH,EAAQ,SAAW,IAAI7oB,EAAEqhB,SAIpC,OAAPwH,QAAO,IAAPA,GAAc,QAAPm/B,EAAPn/B,EAASxH,aAAK,IAAA2mC,OAAA,EAAdA,EACH7tB,OAAO,CAACnoB,EAAK8uB,IAAO,IAAI9uB,KAAQ8uB,EAAGrf,UAAW,IAC/C0Y,OAAO,CAACnoB,EAAK8uB,EAAIlY,KAChB5W,EAAI4W,GAASkY,EACN9uB,GACN,KAGMmW,EAAyBtL,IACpC,IAAI4E,EAAW,GAWf,OAVA5E,EAAUnL,QAASmX,IACjB,MAAMo/B,EAAqBxpD,OAAOiU,OAAO+O,GAAUjjB,OAC7C0pD,EAAkBr/B,EAAQxH,MAC7B8Y,OAAO,CAACnoB,EAAK8uB,IAAO,IAAI9uB,KAAQ8uB,EAAGrf,UAAW,IAC9C0Y,OAAO,CAACnoB,EAAK8uB,EAAIlY,KAChB5W,EAAI8uB,GAAMlY,EAAQq/B,EACXj2C,GACN,IACLyP,EAAW,IAAKA,KAAaymC,KAExBzmC,GAGI2P,GAAwBA,CAAC+2B,EAAOviD,KAC3C,MAAMwiD,EAAYD,EAAMvhC,OAAQmO,GAASA,EAAK/tB,KAAOpB,EAAQoB,IAC7D,MAAO,IAAIohD,EAAWxiD,IAGX8rB,GAAiCtT,IAC5C,MAAM,aAAEnD,EAAY,YAAEC,GAAgBkD,EAStC,OARAA,EAAS,gBAAkBsC,OAAOzF,GAClCmD,EAAS,eAAiB3f,OAAO+lD,QAAQtpC,GAAaif,OACpD,CAACnoB,GAAMxN,EAAKN,MACV8N,EAAIxN,GAAOkc,OAAOxc,GACX8N,GAET,IAEK,IAAKoM,IAGDgU,GAAoBA,CAACvV,EAAW4V,KAC3C,MAAM1oB,EAAO,GACb,MAA4C,mBAAxC+1C,OAA0BrtB,GAAuC1oB,GACrE8S,EAAUnL,QAASmX,IACjBA,EAAQxH,MAAM3P,QAAS0P,IACrB,MAAQje,KAAMg+C,EAAQ,SAAE1/B,GAAaL,EACrCrX,EAAKo3C,GAAY,CACf,CAACA,GAAW,CACVkH,MAAO,EACPjnC,KAAM+/B,EACNmH,UAAWnH,EACXoH,UAAW,EACXC,eAAe,IAInB/mC,EAAS/P,QAAS+Z,IAChB1hB,EAAKo3C,GAAU11B,GAAW,CACxB48B,MAAO,EACPjnC,KAAM+/B,EACNmH,UAAW78B,SAKZ,CAAEq2B,UAAW/3C,EAAM0oB,SAAUA,KAGzBxD,GAAoBpS,IAC/B,MAAM9S,EAAO,GAWb,OAVA8S,EAAUnL,QAASmX,IACjBA,EAAQxH,MAAM3P,QAAS0P,IACrB,MAAQje,KAAMg+C,EAAQ,SAAE1/B,GAAaL,EACrCrX,EAAKo3C,IAAY,EAEjB1/B,EAAS/P,QAAS+Z,IAChB1hB,EAAK0hB,IAAW,QAIf1hB,GAGI0+C,GAAiCA,CAACxuC,EAAMyuC,KACnD,IAAI3C,EAAc,CAChBxiC,aAActJ,EAAKoU,aAAalf,SAChC+T,YAAawlC,EAAYxlC,YACzBrB,WAAY6mC,EAAY7mC,WACxBrG,SAAUvB,EAAKuB,SACfwqC,cAAe/rC,EAAKuB,SACpB6I,YAAa,KACbC,iBAAkB,GAClB84B,QAASnjC,EAAKjT,GACdk/C,sBAAsB,EACtBrV,OAAQrnC,OAAQjD,YAElB,MAAMsW,EAAY6K,EAAsBghC,EAAYxlC,aAAa,aAC3DoO,EAAO7yB,OAAOiU,OAAOsK,QAAOhO,IAAKyjB,IAAQ,CAC7C,CAACqtB,OAA0BrtB,KAAY,EACvCgxB,aAAcrxB,GAAkBvV,EAAW4V,GAAUqvB,aAGvD,OADAiE,EAAY,kBAAoBz0B,EACzBy0B,GAGI12B,GAAuBvmB,IAClC,MAAM,SAAEqS,EAAQ,aAAEE,EAAY,QAAEqB,GAAY5T,EACtC8f,EAAQzN,EAASoM,UAAWpjB,GAAMA,EAAE6C,KAAOqU,GACjD,OAAIuN,GAAS,GACXzN,EAASyN,GAAO,YAAclM,EACvB,IAAIvB,IACCA,GAGHwtC,GAAiBC,GACrB,IAAIA,GACRn/B,KAAK,CAACmR,EAAGC,IAAMA,EAAEpW,QAAUmW,EAAEnW,SAC7BzV,IAAK8xB,IAAE,IACHA,EACH58B,MAAO48B,EAAG95B,GACV8zB,OAAQgG,EAAGrc,QAAU,KAAO,IAAMqc,EAAGtlB,YAI9BgO,GAAwBA,CAACq/B,EAAcC,IAC3CrqD,OAAOiU,OAAOm2C,GAClBjiC,OAAQxmB,GAAMA,EAAE0oD,IAChB95C,IAAK5O,GAAMA,EAAEwoB,OACba,OACA9W,KAAK,KAGG0uC,GAAoBliC,IAC/B,MAAM4pC,EAAgBtqD,OAAO+lD,QAAQrlC,GAAgBgb,OAAO,CAACnoB,EAAK8uB,KAChE,MAAOt8B,EAAK6c,GAASyf,GACdkoB,EAAalgC,GAAKtkB,EAAIosB,MAAM,KAEnC,OADA5e,EAAIg3C,GAAe,IAAI3nC,GAChBrP,GACN,IACH,MAAO,CAAE8vC,UAAWiH,EAAet2B,SAAUzV,OAAMsV,QAGxC/J,GAA2B1L,IACtC,IAAI4E,EAAW,GACXnU,EAAQ,EAYZ,OAXAuP,EAAUnL,QAASmX,IACjB,MAAMq/B,EAAkBr/B,EAAQxH,MAAM8Y,OAAO,CAACnoB,EAAK8uB,EAAIpf,KACrD,MAAM1S,EAAM8xB,EAAGrf,SAAS0Y,OAAO,CAAC8uB,EAAQC,KACtCD,EAAOC,GAAO57C,EAAQoU,EACfunC,GACN,IACH,MAAO,IAAKj3C,KAAQhD,IACnB,IACH1B,GAAgBub,EAAQxH,MAAM7iB,OAC9BijB,EAAW,IAAKA,KAAaymC,KAExBzmC,GAGI0nC,GAAqB1tC,IAChC,MAAM2tC,EAA6D,MAAzC3tC,EAAYmV,MAAM,MAAMuH,MAAMxqB,IAAI,GAC5D,IAAIgP,EAAalB,EAIjB,OAHK2tC,IACHzsC,GAAc,cAETA,GAGIkL,GAAwBhL,IACnCA,EAAYA,EAAU7N,IACnBhP,GAAMA,EAAEqhB,MAAM8Y,OAAO,CAACnoB,EAAKoP,IAAS,IAAIpP,KAAQoP,EAAKK,UAAW,IAAIjjB,QAEvE,IAAIoqB,EAAQ,EACRygC,EAAO,EACX,MAAMr3C,EAAM6K,EAAU7N,IAAKhP,IACzB,IAAIspD,EAAM,GACV,IAAK,IAAIhrD,EAAIsqB,EAAOtqB,EAAI0B,EAAIqpD,EAAM/qD,IAChCgrD,EAAIxqD,KAAKR,GACTsqB,IAGF,OADAygC,GAAQC,EAAI9qD,OACL8qD,IAET,OAAO7qD,OAAO8qD,OAAO,GAAIv3C,IAGrBw3C,GAAgBC,IACpB,IAAKA,EACH,OAEF,MAAMxvC,EAAO,CACX9W,KAAM,GACNke,MAAO,IAEH6+B,EAAiB,OAAJuJ,QAAI,IAAJA,OAAI,EAAJA,EAAM74B,MAAM,MAE/B3W,EAAK9W,KAAO+8C,EAAW,GAAGtvB,MAAM,KAAK,GACrC,IAAInP,EAAW,GACXL,EAAO,GACX,IAAK,IAAIg/B,KAAQF,EACfE,EAAOA,EAAKD,OAEiB,KAAzBC,EAAKA,EAAK5hD,OAAS,IAAgC,GAAnBijB,EAASjjB,OAC3C4iB,EAAOg/B,EAAKl7C,MAAM,GAAI,GACY,KAAzBk7C,EAAKA,EAAK5hD,OAAS,GAC5BijB,EAAS3iB,KAAKshD,EAAKl7C,MAAM,GAAI,IACK,KAAzBk7C,EAAKA,EAAK5hD,OAAS,IAAgC,GAAnBijB,EAASjjB,SAClDyb,EAAKoH,MAAMviB,KAAK,CACdqE,KAAMie,EACNK,aAEFA,EAAW,GACXL,EAAOg/B,EAAKl7C,MAAM,GAAI,IAO1B,OAJA+U,EAAKoH,MAAMviB,KAAK,CACdqE,KAAMie,EACNK,aAEKxH,GAGIyZ,GAAqBA,CAChCg2B,EACAC,EAAoB,QACjB,IAAAC,EACH,MAAMC,EAAiD,QAAjCD,EAAGJ,GAAaE,UAAiB,IAAAE,OAAA,EAA9BA,EAAgCvoC,MACzD,IAAIyoC,EAAuB,KACvBH,IACFG,EAAuBN,GAAaG,GAAmBtoC,OAEzD,MAAM3T,EAAM,GAaZ,OAXgB,OAAhBm8C,QAAgB,IAAhBA,KAAkBn4C,QAAQ,CAAC0P,EAAM9iB,KAAM,IAAAyrD,EACrCr8C,EAAI0T,EAAKje,MAAQ2mD,EACbA,EAAqBxrD,GAAG6E,KACxBie,EAAKje,KACI,QAAb4mD,EAAA3oC,EAAKK,gBAAQ,IAAAsoC,GAAbA,EAAer4C,QAAQ,CAAC+Z,EAASjsB,KAC/B,IAAIwqD,EAAoBF,EACpBA,EAAqBxrD,GAAGmjB,SAASjiB,GACjCisB,EACJ/d,EAAI+d,GAAWu+B,MAGZt8C,GAGIqZ,GAAwBkjC,GAC5BA,EAAQ9vB,OAAO,CAACnoB,EAAK8uB,KAC1B9uB,EAAI8uB,EAAG95B,IAAM85B,EAAG39B,KACT6O,GACN,IAGQiV,GAAwBgjC,GAC5BA,EAAQ9vB,OAAO,CAACnoB,EAAK8uB,KAC1B9uB,EAAI8uB,EAAG39B,MAAQ29B,EAAG95B,GACXgL,GACN,IAGQiiB,GAA6BnrB,IACxC,IAAIiB,EAAO,CACT,CAAC8V,OAAsB+tB,YAAa,GACpC,CAAC/tB,OAAsBguB,cAAe,IAExC,MAAM,qBACJhyB,EACA2D,cAAe0qC,EAAe,gBAC9BnsC,GACEjV,EACE+hB,EAAepsB,OAAOiU,OAAOmJ,GACnC,IAAIsuC,EAAoB,GAkFxB,OAhFA1rD,OAAOgT,KAAKsM,GAAiBrM,QAAS04C,IACpC,MAAMpsD,EAAO+f,EAAgBqsC,GACvBhpC,EAAOV,OAAO1iB,EAAKojB,MACnBipC,EAAcrsD,EAAKmF,KACnB+tB,EAAgBlzB,EAAKkzB,cACrBF,EAAoBhzB,EAAKgzB,kBAE3Bm5B,EAAkBxrD,eAAeyiB,GAC/B8P,EACFi5B,EAAkB/oC,GAAM8P,cAAgBm5B,EAC/Br5B,IACTm5B,EAAkB/oC,GAAM4P,kBAAoBq5B,GAG9CF,EAAkB/oC,GAAQ,CACxB8P,cAAeA,EAAgBm5B,EAAc,KAC7Cr5B,kBAAmBA,EAAoBq5B,EAAc,KACrDC,QAAQ,GAKVH,EAAkB/oC,GAAM8P,eACxBi5B,EAAkB/oC,GAAM4P,oBAExBm5B,EAAkB/oC,GAAM,WAAY,KAIxCrX,EAAK8V,OAAsBguB,cAAgBsc,EAE3C1rD,OAAOgT,KAAKoO,QAAuBnO,QAAStN,IAC1CymB,EAAanZ,QAAS+P,IACpBA,EAAS/P,QAASqX,IAChB,MAAMwhC,EAAaxhC,EAAakI,WAChC,GACEi5B,GACAA,EAAgBvrD,eAAe4rD,IAC/BnmD,IAASyb,OAAsB,eAC/BqqC,EAAgBK,GAAY5rD,eAAe,mBAC3C,CACA,IAAI6rD,EAAa,KACjB,GAAIN,EAAgBK,GAAY5rD,eAAe,aAAc,CAC3D,MAAM8rD,EAAiBhsD,OAAOgT,KAC5By4C,EAAgBK,GAAYG,WAC5B,GACF,GACER,EAAgBK,GAAY,aAC1BE,GACA9rD,eAAe,UACjB,CACA,MAAMgsD,EACJT,EAAgBK,GAAY,aAAaE,GAAgBE,OAC3DH,EAAaG,GAAkB,MAGnC5gD,EAAK3F,GAAM2kB,GAAgB,CACzBmI,cAAes5B,EACfx5B,kBAAmBk5B,EAAgBnhC,GAAc,yBAE9C,GAEH3kB,IAASyb,OAAsB,kBAC/B9V,EAAK3F,GAAMzF,eAAeoqB,GAE5B,CACA,MAAM6hC,EAAU,CACd15B,cAAe,KACfF,kBACE5sB,IAASyb,OAAsB,cAAgB,GAAK,MAEpDzb,IAASyb,OAAsB,kBACjC+qC,EAAQ,WAAY,GAGtB7gD,EAAK3F,GAAM2kB,GAAgB,IAAK6hC,UAKjC7gD,GAGIsb,GAAqB5J,IAChC,MAAM,mBACJuJ,EAAkB,mBAClB6lC,EAAkB,8CAClBC,EAA6C,iBAC7CC,EAAgB,oBAChBC,EAAmB,iCACnB9lC,GACEzJ,EACJ,IAAI,gBAAEwvC,EAAe,yBAAEC,GAA6BzvC,EAAYK,SAE5DqvC,EAAmB,CACrBnmC,mBAAoBA,EACpB6lC,mBAAoBA,EACpBG,oBAAqBA,EACrB9lC,iCAAkCA,GA6BpC,OAzBEimC,EADE1sD,OAAOgT,KAAKy5C,GAA0B1sD,OACrB,IACd2sD,KACAD,EACHJ,8CAA+CI,EAC7C,iDAEEA,EACE,iDAEF,KAIa,IACdC,EACHL,8CAA+C,KAC/C5D,uBAAwB,CAAEkE,EAAG,IAC7BjE,yBAA0B,CAAEiE,EAAG,CAAC,EAAG,KAIvCH,EAAkB,IACbA,EACHF,iBAAkBA,GAAsC,GAEnD,CACLp7B,gBAAiBrlB,EAAU6gD,GAC3Bv7B,eAAgBtlB,EAAU2gD,KAIxBI,GAAeA,CAACptC,EAAqBxC,KACzC,MAAMoB,EAAY6K,EAAsBjM,GAAaoB,UAC/CyuC,EAAyBnjC,EAAsBtL,GAC/CnP,EAAM,CACV69C,YAAattC,EACbutC,YAAaF,EACbG,SAAUhtD,OAAOgT,KAAKwM,GACtBsD,SAAU9iB,OAAOgT,KAAK65C,IAExB,OAAO59C,GAGI04C,GAAyBA,CAACt9C,EAAO2S,KAC5C,MAAM,oBAAEwC,EAAmB,oBAAEmC,EAAmB,mBAAElD,GAChDpU,GACI,YAAEyiD,EAAW,SAAEE,EAAQ,YAAED,EAAW,SAAEjqC,GAAa8pC,GACvDptC,EACAxC,GAEIwnC,EAAmBP,EAAmBxlC,GACtCwuC,EAAejtD,OAAOiU,OAAOuwC,GAC7B0I,EAAkBltD,OAAOgT,KAAKwxC,GAEpC,IAAI2I,EAAoBH,EACrB7kC,OAAQxF,IAAUG,EAAS0H,SAAS7H,KAAUsqC,EAAaziC,SAAS7H,IACpEpS,IAAKpP,GAAM2rD,EAAY3rD,IAEtBisD,EAAmB,GACnBC,EAAkB,GAEtBvqC,EAAS7P,QAAQ,CAAC0P,EAAM2qC,KACtB,MAAMC,EAAeT,EAAYnqC,GAEjC,GAAKqqC,EAASxiC,SAAS7H,GAkBb6qC,GAAYD,EAAcD,KAClCF,EAAiBzqC,GAAQ,CAACmqC,EAAYnqC,GAAOoqC,EAAYpqC,SAnB7B,CAE5B,GAAIuqC,EAAgB1iC,SAAS7H,GAAO,CAClC,MAAM8qC,EAAUjJ,EAAiB7hC,GACjCyqC,EAAiBzqC,GAAQ,CAACmqC,EAAYW,GAAUV,EAAYpqC,SACvD0qC,EAAgBhtD,KAAK0sD,EAAYpqC,IAGxC,MAAM+qC,EAAe5qC,EAASrc,MAAM6mD,EAAe,EAAGxqC,EAAS/iB,QAC/D2tD,EAAaz6C,QAAS06C,IACpB,GAAIX,EAASxiC,SAASmjC,GACpBP,EAAiBO,GAAM,CAACb,EAAYa,GAAKZ,EAAYY,SAChD,GAAIT,EAAgB1iC,SAASmjC,GAAK,CACvC,MAAMF,EAAUjJ,EAAiBmJ,GACjCP,EAAiBO,GAAM,CAACb,EAAYW,GAAUV,EAAYY,UAQlE,IAAIC,EAAqB,GACzB5tD,OAAOiU,OAAOm5C,GAAkBn6C,QAAQ,EAAE46C,EAAQC,MAChDF,EAAmBvtD,KAAK,CAACwtD,EAAQC,MAGnC,MAAM7+C,EAAM,CACVi5C,cAAeiF,EACfhF,cAAeyF,EACfG,UAAWV,GAEb,OAAOp+C,GAGHu+C,GAAcA,CAACQ,EAAU3F,SACZ1jD,IAAbqpD,EAA+B,EAC5BA,IAAa3F,EAGTh3B,GAAsBhnB,IACjC,MAAM,SAAEgT,EAAQ,eAAE2C,GAAmB3V,GAC/B,gBAAE6mB,EAAe,eAAEC,GAAmBnR,GACtC,mBAAEuG,EAAkB,mBAAE6lC,KAAuB6B,GACjD/8B,EACF,MAAO,IACF7T,EACHovC,yBAA0B,IAAKwB,GAC/BzB,gBAAiB,IAAKr7B,KAIpB+8B,GAAeA,CACnBppC,EACAtd,EACAuV,EACAoxC,EACAC,KAEA,MAAMC,EAAgBF,EACnB59C,IACE8xB,GACC,+FAA+FA,EAAGpf,iFAAiFof,EAAGqgB,sBAEzLxuC,KAAK,IACFo6C,EAAcF,EACjB79C,IACE8xB,GACC,+FAA+FA,EAAGpf,mFAAmFof,EAAGqgB,sBAE3LxuC,KAAK,IAER,MAAO,2LAA2L4Q,4DAAuEtd,8DAAmEuV,ycAAgdsxC,idAA6dC,kCAGrvCC,GAAwB5nD,MAC5Ba,EACAuV,EACA+H,EACA0pC,EACAL,EACAC,KAEA,MAAMjnD,EAAU,CACdqnD,WAAYA,EACZC,QAAS,4BAA4B1xC,EACrCqiB,KAAM8uB,GACJppC,EACAtd,EACAuV,EACAoxC,EACAC,KAIGhqD,SAAesqD,OAAwBnQ,UAAUp3C,GACpD/C,GACFiC,QAAQiK,IAAIlM,IAIHusB,GAA6BhqB,MACxC0D,EACAskD,EACAl+B,KAEA,MAAM,aAAE7T,EAAY,SAAEG,GAAa1S,GAC7B,oBAAEukD,EAAmB,gBAAEC,EAAe,YAAEpqC,GAC5CkqC,EACI7pC,EAAezQ,aAAaC,QAAQ,gBACpCgqC,EAAY5M,OAAW,gBACtBttC,EAAO7E,SAAcmvD,OAAwBrQ,cAClDv5B,EACAw5B,GAEF,GAAIl6C,EACFiC,QAAQiK,IAAIlM,QAGd,GAAI7E,EAAKivD,WAAWzuD,OAAQ,CAC1B,MAAM+uD,EAAkBlN,EAAen9B,GACjCsqC,EAAkBnN,EAAenxB,GACjC09B,EAAeS,EAAoBr+C,IAAK8xB,IAAE,CAC9Cpf,UAAWof,EACXqgB,SAAUqM,EAAgB1sB,MAEtB+rB,EAAaS,EAAgBt+C,IAAK8xB,IAAE,CACxCpf,UAAWof,EACXqgB,SAAUoM,EAAgBzsB,MAE5BksB,GACE3xC,EACAG,EACA+H,EACAvlB,EAAKivD,WACLL,EACAC,M,2FClzCC,MAAMY,EAA4BA,CACvCC,EACA/4B,EACA32B,KAEA,MAAM4qB,EAAQ+L,EAAkBpN,UAAWuZ,GAAOA,EAAG95B,KAAOhJ,EAAKgJ,IAC3DypB,EAAc,IACfzyB,EACHg3B,QAAS04B,EAAY1vD,EAAKg3B,SAC1B24B,WAAY3vD,EAAKg3B,SAGnB,OADAL,EAAkB/L,GAAS6H,EACpB,IAAIkE,IAEAi5B,EAAyBC,GAC7BA,EAAS1zB,OAAO,CAACnoB,EAAK8uB,KAC3B9uB,EAAI8uB,EAAG95B,IAAM85B,EAAGgtB,cACT97C,GACN,IAGQ+7C,EAA8BA,CAACp5B,EAAmBq5B,KAC7D,MAAMC,EAA6Bt5B,EAAkB/N,OAClDka,GAAOA,EAAG95B,KAAOgnD,GAEpB,OAAOC,GChBH1hD,EAAQC,iBAER1D,EAAQA,KAAA,CACZolD,WAAY,GACZR,YAAa,GACbS,oBAAoB,EACpBC,mBAAmB,EACnBC,mBAAmB,EACnB15B,kBAAmB,GACnB25B,6BAA6B,EAC7BC,8BAA8B,EAC9BC,6BAA6B,IAGzBrlD,EAAU,CACd+kD,WAAaplD,GAAUA,EAAMolD,WAC7BR,YAAc5kD,GAAUA,EAAM4kD,YAC9BS,mBAAqBrlD,GAAUA,EAAMqlD,mBACrCC,kBAAoBtlD,GAAUA,EAAMslD,kBACpCC,kBAAoBvlD,GAAUA,EAAMulD,kBACpC15B,kBAAoB7rB,GAAUA,EAAM6rB,kBACpC25B,4BAA8BxlD,GAAUA,EAAMwlD,4BAC9CC,6BAA+BzlD,GAAUA,EAAMylD,6BAC/CC,4BAA8B1lD,GAAUA,EAAM0lD,6BAG1ChlD,EAAU,CACd,wBAAuB,OAAEE,IACvBA,EAAOC,OAAMmuC,0BAA0B,GACvC,MAAOj1C,EAAO7E,SAAcywD,OAAelQ,gBAC3C70C,EAAOC,OAAMmuC,0BAA0B,GACnCj1C,EACFiC,QAAQiK,IAAI,CAAElM,UAIhB6G,EAAOC,OAAMguC,aAAc35C,IAE7B,8BAA6B,OAAE0L,GAAUzD,GACvCyD,EAAOC,OAAMouC,oCAAoC,GACjD,MAAOl1C,EAAO7E,SAAcywD,OAAe5P,uBAAuB54C,GAClEyD,EAAOC,OAAMouC,oCAAoC,GAC7Cl1C,EACFiC,QAAQiK,IAAI,CAAElM,UAGhB6G,EAAOC,OAAMquC,uBAAwBh6C,IAGvC,qBAAoB,MAAE8K,EAAK,OAAEY,IAC3B,MAAM,WAAEwkD,GAAeplD,EACvBY,EAAOC,OAAMiuC,uBAAuB,GACpC,MAAO/0C,EAAO7E,SAAcywD,OAAejQ,eAAc,GAEzD,OADA90C,EAAOC,OAAMiuC,uBAAuB,GAChC/0C,GACFiC,QAAQiK,IAAI,CAAElM,UACd0J,EAAM1J,MAAM,0BACL,IAET0J,EAAM4D,QAAQ,8BACdzG,EAAOC,OAAMguC,aAAc,IAAIuW,EAAYlwD,KACpC,IAGT,qBAAoB,MAAE8K,EAAK,OAAEY,GAAU9D,GACrC,MAAM,WAAEsoD,GAAeplD,EACvBY,EAAOC,OAAMkuC,uBAAuB,GACpC,MAAOh1C,EAAO7E,SAAcywD,OAAe9P,cAAc/4C,GAAS,GAElE,OADA8D,EAAOC,OAAMkuC,uBAAuB,GAChCh1C,GACFiC,QAAQiK,IAAI,CAAElM,UACd0J,EAAM1J,MAAM,6BACL,IAET0J,EAAM4D,QAAQ,gCACd+9C,EAAWxuD,OACTwuD,EAAW3mC,UAAWmnC,GAAMA,EAAE1nD,IAAMpB,GACpC,GAEF8D,EAAOC,OAAMguC,aAAcuW,IAEpB,IAGT,+BAA8B,MAAEplD,EAAK,OAAEY,GAAU9D,GAC/C,MAAM,kBAAE+uB,EAAiB,YAAE+4B,GAAgB5kD,EAC3CY,EAAOC,OAAMwuC,kCAAkC,GAC/C,MAAOt1C,EAAO7E,SAAcywD,OAAe3P,wBACzCl5C,GACA,GAGF,OADA8D,EAAOC,OAAMwuC,kCAAkC,GAC3Ct1C,GACFiC,QAAQiK,IAAI,CAAElM,WACP,IAET6G,EAAOC,OAAMquC,uBAAwB,IAChCrjB,EACH,IAAK32B,EAAMg3B,QAAS04B,EAAY1vD,EAAKg3B,SAAU24B,WAAY3vD,EAAKg3B,YAE3D,IAGT,+BAA8B,MAAElsB,EAAK,OAAEY,IAAU,GAAE1C,EAAE,QAAEpB,IACrD,MAAM,kBAAE+uB,EAAiB,YAAE+4B,GAAgB5kD,EAC3CY,EAAOC,OAAMwuC,kCAAkC,GAC/C,MAAOt1C,EAAO7E,SAAcywD,OAAe1P,wBACzC/3C,EACApB,GACA,GAGF,GADA8D,EAAOC,OAAMwuC,kCAAkC,GAC3Ct1C,EAEF,OADAiC,QAAQiK,IAAI,CAAElM,WACP,EAET,MAAM8rD,EAA4BlB,EAChCC,EACA/4B,EACA32B,GAGF,OADA0L,EAAOC,OAAMquC,uBAAwB2W,IAC9B,GAGT,+BAA8B,MAAE7lD,EAAK,OAAEY,GAAU1C,GAC/C,MAAM,kBAAE2tB,GAAsB7rB,EAC9BY,EAAOC,OAAMyuC,oCAAoC,GACjD,MAAOv1C,EAAO7E,SAAcywD,OAAezP,wBACzCh4C,GACA,GAGF,GADA0C,EAAOC,OAAMyuC,oCAAoC,GAC7Cv1C,EAGF,OAFAiC,QAAQiK,IAAIlM,GACZ0J,EAAM1J,MAAM,8BACL,EAET,MAAM8rD,EAA4BZ,EAChCp5B,EACA3tB,GAGF,OADA0C,EAAOC,OAAMquC,uBAAwB,IAAI2W,KAClC,IAILnkD,EAAY,CAChB,CAACb,OAAMguC,cAAc7uC,EAAOlD,GAC1BkD,EAAMolD,WAAatoD,EACnBkD,EAAM4kD,YAAcE,EAAsBhoD,IAE5C,CAAC+D,OAAMiuC,uBAAuB9uC,EAAOlD,GACnCkD,EAAMslD,kBAAoBxoD,GAE5B,CAAC+D,OAAMmuC,0BAA0BhvC,EAAOlD,GACtCkD,EAAMqlD,mBAAqBvoD,GAE7B,CAAC+D,OAAMouC,oCAAoCjvC,EAAOlD,GAChDkD,EAAMwlD,4BAA8B1oD,GAEtC,CAAC+D,OAAMquC,wBAAwBlvC,EAAOlD,GACpCkD,EAAM6rB,kBAAoB/uB,GAE5B,CAAC+D,OAAMwuC,kCAAkCrvC,EAAOlD,GAC9CkD,EAAMylD,6BAA+B3oD,GAEvC,CAAC+D,OAAMyuC,oCAAoCtvC,EAAOlD,GAChDkD,EAAM0lD,4BAA8B5oD,IAIzB,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,kCCzLF,gHAEA,MAAMokD,EAAUA,KACd,MAAM54C,EAAQlD,aAAaC,QAAQ,SACnC,MAAO,UAAYiD,GAGRc,EAAgBA,KAC3B,MAAM+3C,EAAS,CACb,eAAgB,mBAChBC,OAAQ,MACRC,cAAeH,IACfI,WAAYl8C,aAAaC,QAAQ,eAEnC,MAAO,CAAEi6B,QAAS6hB,IAGPI,EAAmBC,IAC9B,MAAML,EAAS,CACb,eAAgB,mBAChBC,OAAQ,MACRC,cAAeH,KAEjB,MAAO,CACL5hB,QAAS6hB,EACTK,qBAIStkB,EAAYA,KACvB,MAAMikB,EAAS,CAAE,eAAgB,mBAAoBC,OAAQ,OAC7D,MAAO,CAAE9hB,QAAS6hB,K,sTC/Bb,MAAMM,EAA0BA,CACrC1tD,EACA2tD,EACAC,KAEA,IAEIC,EAFAvsD,EAAQssD,EACRE,EAAeH,EAGnB,MAAM,OAAEI,EAAM,MAAEC,GAAUhuD,EAE1B,IAAIiuD,EAAgBF,EAASzsD,EAC7BA,EAAQysD,EAER,IAAIlxB,GAAW,IAAI5G,MAAOgI,UACtBiwB,GAAWrxB,EAAWixB,GAAgB,IAC1CA,EAAejxB,EAEf,IAAIsxB,GAAgBF,EAAgBC,GAASE,QAAQ,GAGjDp+B,GAAQg+B,EAAQC,GAAiBE,EAIrC,OAHID,IACFL,EAAoC,IAAnBQ,KAAKC,MAAMt+B,IAEvB,CACLu+B,iBAAkBT,EAClBD,eAAgBA,EAChBvsD,MAAOA,IAIJ,SAASktD,EAAgBC,EAAOC,GACrC,IAAI13B,EAAO,QACPy3B,GAAS,YACXA,GAASA,EAAQ,YAAYL,QAAQ,GACrCp3B,EAAO,MACEy3B,GAAS,SAClBA,GAASA,EAAQ,SAASL,QAAQ,GAClCp3B,EAAO,MACEy3B,GAAS,MAClBA,GAASA,EAAQ,MAAML,QAAQ,GAC/Bp3B,EAAO,MACEy3B,EAAQ,GACjBA,EAAQA,EACRz3B,EAAO,UACW,GAATy3B,GACTA,EAAQA,EACRz3B,EAAO,SAEPy3B,EAAQ,UAEV,IAAI7wD,EAAS8wD,EAAWD,EAAQz3B,EAAOy3B,EACvC,OAAO7wD,ECnDF,MAAMurC,EAAYA,KACvB,MAAMikB,EAAS,CAAE,eAAgB,mBAAoBC,OAAQ,OACvDh+C,EAAS,CAAEk8B,QAAS6hB,GAC1B,OAAO/9C,GAGIgG,EAAgBA,KAC3B,MAAMd,EAAQlD,aAAaC,QAAQ,SAC7Bm+B,EAAO,UAAYl7B,EACnB64C,EAAS,CACb,eAAgB,mBAChBC,OAAQ,MACRC,cAAe7d,EACf8d,WAAYl8C,aAAaC,QAAQ,eAE7BjC,EAAS,CAAEk8B,QAAS6hB,GAC1B,OAAO/9C,GAGIm+C,EAAmBvhD,IAC9B,MAAMsI,EAAQlD,aAAaC,QAAQ,SAC7Bm+B,EAAO,UAAYl7B,EACnB64C,EAAS,CACb,eAAgB,mBAChBC,OAAQ,MACRC,cAAe7d,EACf8d,WAAYl8C,aAAaC,QAAQ,eAEnC,IAEIq9C,EAFAb,GAAe,IAAI73B,MAAOgI,UAC1B2wB,EAAuB,EAG3B,MAAMv/C,EAAS,CACbk8B,QAAS6hB,EACTK,iBAAmBoB,IACjB,IAAK5iD,EAAK,OACVA,EAAI6iD,aAAc,EAElB,MAAM,iBACJP,EAAgB,eAChBV,EAAc,MACdvsD,GACEosD,EACFmB,EACAf,EACAc,GAEFd,EAAeS,EACfI,EAAyBd,GAErBc,EACJC,EAAuBttD,EAEvB,MAAM,OAAEysD,EAAM,MAAEC,GAAUa,EAC1B,IAAIE,EAAUC,SAASX,KAAKY,MAAgB,IAATlB,EAAgBC,IAC/CJ,EAAeY,EAAgBT,GAAQ,GACvCmB,EAAYV,EAAgBR,GAAO,GACnChG,EAAO,GAAG4F,SAAoBsB,KAElC,MAAMC,EAAanyD,OAAOgT,KAAK/D,GAC3BkjD,EAAW3nC,SAAS,kBAAiBvb,EAAImjD,aAAepH,GACxDmH,EAAW3nC,SAAS,iBACtBvb,EAAIojD,YAActyB,UAAUuyB,WAAWC,eACzCtjD,EAAIujD,SAAWT,IAWnB,OAPA1rD,QAAQiK,IAAI,cAAeqhD,GAC3B/sD,WAAW,KACTyB,QAAQiK,IAAI,4BACRrB,EAAIujD,SAAW,MAAKvjD,EAAI6iD,aAAc,IACzCH,GAA0B,KAEtB,OAAH1iD,QAAG,IAAHA,KAAKwjD,cAAapgD,EAAO,eAAiBpD,EAAIwjD,aAC3CpgD,GAGI28B,EAAc,gCAEdC,EAAc,oCACdC,EAAe,0B,qKClFb,GACb,CACExqC,KAAM,OACN44C,GAAI,aACJ1vC,MAAO,mBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,OACN44C,GAAI,GACJ1vC,MAAO,GACP8kD,UAAU,GAGZ,CACEhuD,KAAM,YACN44C,GAAI,kBACJ1vC,MAAO,2BACP8kD,UAAU,GAEZ,CACEhuD,KAAM,iBACN44C,GAAI,uBACJ1vC,MAAO,2BACP8kD,UAAU,GAEZ,CACEhuD,KAAM,QACN44C,GAAI,cACJ1vC,MAAO,8BACP8kD,UAAU,GAEZ,CACEhuD,KAAM,eACN44C,GAAI,qBACJ1vC,MAAO,kBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,aACN44C,GAAI,GACJ1vC,MAAO,GACP8kD,UAAU,GAEZ,CACEhuD,KAAM,UACN44C,GAAI,gBACJ1vC,MAAO,oCACP8kD,UAAU,GAEZ,CACEhuD,KAAM,MACN44C,GAAI,YACJ1vC,MAAO,sBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,UACN44C,GAAI,uBACJ1vC,MAAO,oCACP8kD,UAAU,GAGZ,CACEhuD,KAAM,QACN44C,GAAI,kBACJ1vC,MAAO,eACP8kD,UAAU,GAEZ,CACEhuD,KAAM,QACN44C,GAAI,GACJ1vC,MAAO,GACP8kD,UAAU,GAEZ,CACEhuD,KAAM,mBACN44C,GAAI,gBACJ1vC,MAAO,wBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,sBACN44C,GAAI,eACJ1vC,MAAO,qBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,qBACN44C,GAAI,mBACJ1vC,MAAO,wBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,cACN44C,GAAI,cACJ1vC,MAAO,wCACP8kD,UAAU,GAEZ,CACEhuD,KAAM,eACN44C,GAAI,eACJ1vC,MAAO,0BACP8kD,UAAU,GAIZ,CACEhuD,KAAM,gBACN44C,GAAI,uBACJ1vC,MAAO,kBAET,CACElJ,KAAM,YACN44C,GAAI,eACJ1vC,MAAO,gBAET,CACElJ,KAAM,QACN44C,GAAI,eACJ1vC,MAAO,2BAET,CACElJ,KAAM,gBACN44C,GAAI,uBACJ1vC,MAAO,gBAET,CACElJ,KAAM,cACN44C,GAAI,iBACJ1vC,MAAO,qCAET,CACElJ,KAAM,kBACN44C,GAAI,yBACJ1vC,MAAO,qCAET,CACElJ,KAAM,iBACN44C,GAAI,eACJ1vC,MAAO,mBAET,CACElJ,KAAM,UACN44C,GAAI,iBACJ1vC,MAAO,6BAET,CACElJ,KAAM,YACN44C,GAAI,mBACJ1vC,MAAO,qCAET,CACElJ,KAAM,qBACN44C,GAAI,uBACJ1vC,MAAO,oBAET,CACElJ,KAAM,cACN44C,GAAI,qBACJ1vC,MAAO,cAET,CACElJ,KAAM,WACN44C,GAAI,kBACJ1vC,MAAO,gBAET,CACElJ,KAAM,qBACN44C,GAAI,4BACJ1vC,MAAO,cAET,CACElJ,KAAM,qBACN44C,GAAI,wBACJ1vC,MAAO,gBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,cACN44C,GAAI,qBACJ1vC,MAAO,gBACP8kD,UAAU,GAEZ,CACEhuD,KAAM,cACN44C,GAAI,qBACJ1vC,MAAO,wBAET,CACElJ,KAAM,UACN44C,GAAI,iBACJ1vC,MAAO,wBAET,CACElJ,KAAM,mBACN44C,GAAI,mBACJ1vC,MAAO,wBAET,CACElJ,KAAM,kBACN44C,GAAI,yBACJ1vC,MAAO,6BAET,CACElJ,KAAM,qBACN44C,GAAI,4BACJ1vC,MAAO,2BAGT,CACElJ,KAAM,uBACN44C,GAAI,iBACJ1vC,MAAO,mBAET,CACElJ,KAAM,kBACN44C,GAAI,mBACJ1vC,MAAO,4BC1NJ,MAAMs5B,EAAW,CACtByrB,YAAa,4BAGFC,EAAgB,CAC3B,CAAC1rB,EAASyrB,aAAc,c,oDCH1B,MAAM7kD,EAAQC,iBAED8kD,EAAezuD,IAC1B,GAAsB,OAAb,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOkD,QAAgB,CACzBjB,QAAQiK,IAAIlM,GACZ,MAAOoO,GAAgBxS,OAAOiU,OAAO7P,EAAM7E,MAAM,GACjDuO,EAAM1J,MAAMoO,EAAc,CACxBvO,QAAS,MAGb,GAAsB,OAAb,OAALG,QAAK,IAALA,OAAK,EAALA,EAAOkD,QAAgB,CACzB,MAAOkL,GAAgBxS,OAAOiU,OAAO7P,EAAM7E,MAC3CuO,EAAM1J,MAAMoO,EAAc,CACxBvO,QAAS,QAKF6uD,EAAsB1uD,IACjC,MAAOoO,GAAgBxS,OAAOiU,OAAO7P,EAAM7E,MAC3CuO,EAAM1J,MAAMoO,EAAc,CACxBvO,QAAS,O,wCCvBN,MAAM8uD,EAAoB,CAC/B,KACA,OACA,OACA,eACA,QACA,YACA,UACA,MACA,mBACA,+BACA,qCACA,WACA,QACA,iBACA,YACA,cACA,aACA,UACA,WACA,cACA,cAGWC,EAAc,CACzB,UAAW,eAGAC,EAAkCA,KAC7CF,EAAkB9/C,QAAS4U,IACpBmrC,EAAYxoC,SAAS3C,IACxBxT,aAAao1B,WAAW5hB,M,4BCN9B,MAAM/Z,EAAQC,iBAEPpH,eAAe+mC,EAAkBvmC,GACtCd,QAAQiK,IAAI,oBAAqBnJ,GACjC,MAAO/C,EAAO7E,SAAc2zD,OAAYxlB,kBAAkBvmC,GAGrDR,eAAegnC,IACpB,MAAMwlB,EAAe9+C,aAAaC,QAAQ,WACpCnN,EAAU,CAAEihC,QAAS+qB,IACpB/uD,EAAO7E,SAAc2zD,OAAYvlB,gBAAgBxmC,GAGxD,OAFAkN,aAAaE,QAAQ,QAAShV,EAAK6zD,QACnC/+C,aAAaE,QAAQ,UAAWhV,EAAK6oC,SAC9B7oC,EAAK6zD,OAGd,MAAM1oD,EAAU,CACdgO,KAAOrO,GAAUA,EAAMqO,KACvBnB,MAAQlN,GAAUA,EAAMkN,MACxB6wB,QAAU/9B,GAAUA,EAAM+9B,QAC1BwV,WAAavzC,GAAUA,EAAMuzC,WAC7B94B,aAAeza,GAAUA,EAAMya,aAC/BuuC,kBAAoBhpD,GAAUA,EAAMgpD,kBACpCt1B,KAAO1zB,GAAUA,EAAM0zB,KACvBu1B,aAAcA,CAACjpD,EAAOK,EAAS6oD,EAAWt9B,KACxC,IAAIu9B,EAAWC,EAAgBtrC,OAAQN,IAAI,IAAA6rC,EAAA,OACb,QADaA,EACzCC,OAAiBtpD,EAAM0zB,aAAK,IAAA21B,OAAA,EAA5BA,EAA8BlpC,SAAS3C,EAAKnjB,QAE1CkvD,EAAqBL,EAAUM,eAAe1sB,qBAAqB52B,IACpEsX,IAAS,IAAAisC,EACwBC,EAAhC,GAAS,OAAJlsC,QAAI,IAAJA,GAAa,QAATisC,EAAJjsC,EAAM6f,eAAO,IAAAosB,IAAbA,EAAeE,WAClB,OAAOpB,EAAkB,OAAJ/qC,QAAI,IAAJA,GAAa,QAATksC,EAAJlsC,EAAM6f,eAAO,IAAAqsB,OAAA,EAAbA,EAAervD,QAItCuvD,EAAcj0D,OAAOiU,OAAO2+C,GAUhC,OATAY,EAAWA,EAASrrC,OAAQN,KAEb,OAAXosC,QAAW,IAAXA,KAAazpC,SAAS3C,EAAKnjB,QACR,OAAlBkvD,QAAkB,IAAlBA,MAAoBppC,SAAS3C,EAAKnjB,SAMhC8uD,GAETp/C,QAAU/J,GAAUA,EAAM+J,QAC1B4zB,IAAM39B,GAAUA,EAAM29B,IACtBksB,iBAAmB7pD,GAAUA,EAAM6pD,iBACnCC,YAAc9pD,GAAUA,EAAM8pD,YAC9BC,aAAe/pD,GAAUA,EAAM+pD,aAC/BtW,WAAazzC,GAAUA,EAAMyzC,WAC7BZ,WAAa7yC,GAAUA,EAAM6yC,WAC7BpqC,MAAQzI,GAAUA,EAAMyI,MACxBq1B,YAAc99B,GAAUA,EAAM89B,YAC9BksB,kBAAoBhqD,GAAUA,EAAMgqD,mBAGhCtpD,EAAU,CACd,0BAAyB,OAAEE,IACzB,MAAMqpD,EAAa,CACjB7hB,KAAM,CACJ8hB,SAAU,uCACVC,UAAW,mDAEbC,MAAO,CACLC,cAAe,iBAGnB,IAAIN,EAAe,IAAIO,OAAwBL,GAC/CrpD,EAAOC,OAAMosC,kBAAmB8c,IAGlC,mBAAkB,OAAEnpD,EAAM,SAAEqD,GAAYnH,GACtC,MAAO/C,EAAO7E,SAAc2zD,OAAYzlB,YAAYtmC,GACpD,GAAI/C,EAOF,OANA0J,EAAM1J,MAAMA,EAAMmN,SAAShS,KAAKgS,UAChCtG,EAAOC,OAAMksC,QACb/iC,aAAaS,QACb8/C,eAAe9/C,QACfT,aAAaE,QAAQ,cAAc,QACnCF,aAAaE,QAAQ,eAAe,GAItC,GAAsB,8BAAlBhV,EAAKgS,SAOP,OANA3M,WAAWkJ,EAAM4D,QAAQnS,EAAKgS,UAAW,KACzCtG,EAAOC,OAAMksC,QACb/iC,aAAaS,QACb8/C,eAAe9/C,QACfT,aAAaE,QAAQ,cAAc,QACnCF,aAAaE,QAAQ,eAAe,GAGpC,SAAUo1B,eAAoBpqC,GAC5B,OAAOuO,EAAM1J,MAAM,4CAGvB,IAAIywD,EAAW,IAAKt1D,EAAMuT,MAAO3L,EAAQmhC,UACrC/wB,EAAQpQ,EAAQoQ,MACpBtM,EAAOC,OAAM2sC,wBAAyB,CAAEtgC,QAAOhP,GAAIssD,EAAStsD,KAC5Dw/B,eAAe,IAAKxoC,EAAMuT,MAAO3L,EAAQmhC,UAAYr9B,SAK/Ci+B,eAAyBj+B,SACzBqD,EAAS,uBAGjB,mBAAkB,OAAErD,GAAU9D,GAC5B,MAAO/C,EAAO7E,SAAc2zD,OAAYtlB,YAAYzmC,GAChD/C,EACF0J,EAAM1J,MAAMA,EAAMmN,WAGpBzD,EAAM4D,QACJ,2EAEF9M,WAAW,IAAMuhC,OAAOtuB,QAAQ,CAAEnT,KAAM,UAAY,OAEtD,iBAAiB2lB,EAAGljB,GAClB,MAAO/C,SAAe8uD,OAAYnmB,OAAO5lC,GACzC,GAAI/C,EAAO,OAAOyuD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAErCzD,EAAM4D,QACJ,6EAEF9M,WAAW,IAAMuhC,OAAOtuB,QAAQ,CAAEnT,KAAM,UAAY,MAEtD,8BAA8B2lB,EAAGljB,GAC/B,MAAO/C,EAAO7E,SAAc2zD,OAAYjmB,wBAAwB9lC,GAChE,GAAI/C,EAAO,OAAOyuD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAErCzD,EAAM4D,QACJ,6EAGJ,kBAAkB2Y,EAAGljB,GACnB,MAAO/C,EAAO7E,SAAc2zD,OAAY/lB,YAAYhmC,GACpD,OAAI/C,GACF0J,EAAM1J,MAAM,2BACL,IAET0J,EAAM4D,QAAQnS,EAAKgS,SAAS,IAC5B3M,WAAW,IAAMuhC,OAAOtuB,QAAQ,CAAEnT,KAAM,UAAY,MAC7C,IAGT,iBAAgB,OAAEuG,EAAM,SAAEqD,GAAYnH,GAGpC,MAAO/C,EAAO7E,SAAc2zD,OAAYpmB,OAAO3lC,GAE/C,GAAI/C,EAGF,OAFAglC,eAA8BjiC,EAAQmhC,SAAUr9B,GAChD4nD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WACZ,EAET,SAAUo4B,eAAoBpqC,GAC5B,OAA8B,MAA1B6E,EAAMmN,SAASjK,OACVwG,EAAM1J,MAAM,6CAEdyuD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAG5B,IAAIsjD,EAAW,IAAKt1D,EAAMuT,MAAO3L,EAAQ2L,OACrCyE,EAAQpQ,EAAQoQ,MAUpB,OATAtM,EAAOC,OAAM2sC,wBAAyB,CAAEtgC,QAAOhP,GAAIssD,EAAStsD,WACtDw/B,eAAe,IAAK8sB,GAAY5pD,GAEtCA,EAAOC,OAAMq+B,iBAAiB,SAExBJ,eAAal+B,GAEnBg6B,aAAQ6vB,KAAK,sBAAsB,GAE9Bv1D,EAAK4oC,aAaV+qB,OAAY7lB,UACL9tC,UAbC2pC,eAAyBj+B,GAG1B1L,EAAKqqC,SAGRzD,OAAOtuB,QAAQ,CAAE5C,KAAM,YAFjB3G,EAAS,sBAKV/O,IAMX,oBAAmB,OAAE0L,GAAU9D,GAE7B,MAAO/C,EAAO7E,SAAc2zD,OAAY9lB,aAAajmC,GACrD,OAAI/C,EACKyuD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WAE5BzD,EAAM4D,QAAQnS,EAAKgS,WACZ,IAGT,iBAAgB,OAAEtG,EAAM,SAAEqD,GAAYnH,GACpC,GAA0B,GAAtBA,EAAQ4tD,IAAIh1D,OAEd,YADA+N,EAAM1J,MAAM,gCAGd,MAAOA,EAAO7E,SAAc2zD,OAAY5lB,UAAUnmC,GAClD,GAAI/C,EACF,OAAO0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,gBAI7B23B,eAAyBj+B,SACzBqD,EAAS,uBAOjB,0BAAyB,OAAErD,EAAM,SAAEqD,IACjC,IAAIrF,EAAS,CAAE+rD,QAAS3gD,aAAaC,QAAQ,OAC7C,MAAOlQ,EAAO7E,SAAc2zD,OAAYvkB,yBAAyB1lC,GACjE,GAAI7E,EACF0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,eAG5B,GAAmB,GAAfhS,EAAKQ,OAAa,CACpB,IAAIoH,EAAU,CACZ2d,aAAcvlB,EAAK,GAAGulB,cAExBxW,EAAS,qBAAsBnH,QAE/B8D,EAAOC,OAAM0sC,kBAAmBr4C,GAEhC8U,aAAao1B,WAAW,SACxBp1B,aAAao1B,WAAW,OAI5B,0BAAyB,OAAEx+B,GAAU9D,SAC7B+rD,OAAYzkB,yBAAyBtnC,GAE3CkN,aAAaE,QAAQ,eAAgBpN,EAAQ2d,cAC7CzQ,aAAaE,QAAQ,QAASlK,EAAM4qD,yBAAyB19C,OAC7DlD,aAAaE,QAAQ,KAAMlK,EAAM4qD,yBAAyB1sD,IAC1D0C,EAAOC,OAAMw9B,WAAYr+B,EAAM4qD,yBAAyB19C,OACxDtM,EAAOC,OAAM09B,kBAAmBzhC,EAAQ2d,cACxCqhB,OAAOtuB,QAAQ,CAAE5C,KAAM,MAAOtR,KAAK,KACjCsH,EAAOC,OAAM0sC,kBAAmB,OAIpC,6BAA4B,OAAE3sC,GAAU9D,SAChC+rD,OAAYxkB,sBAAsBvnC,IAG1C,kCAAiC,OAAE8D,GAAUhC,SACrCiqD,OAAYrkB,2BAA2B5lC,IAG/C,gBAAgBohB,GACd,MAAOjmB,EAAO7E,SAAc2zD,OAAYlmB,YACxC,GAAI5oC,EAAO,OAAO0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAE5CzD,EAAM4D,QAAQ,cAEhB,qBAAqB2Y,EAAGljB,GACtB,MAAO/C,EAAO7E,SAAc2zD,OAAYrlB,eAAe1mC,GACvD,GAAI/C,EAAO,OAAO0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAE5CzD,EAAM4D,QAAQnS,EAAKgS,UACnB40B,OAAOtuB,QAAQ,CAAEnT,KAAM,SAAW,MAGpC,qBAAqB2lB,EAAGljB,GACtB,MAAO/C,EAAO7E,SAAc2zD,OAAYplB,eAAe3mC,GACvD,GAAI/C,EAAO,OAAO0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,UAE5CzD,EAAM4D,QAAQnS,EAAKgS,UACnB40B,OAAOtuB,QAAQ,CAAEnT,KAAM,SAAW,MAGpC,4BAA4B2lB,EAAGljB,GAC7B,MAAO/C,EAAO7E,SAAc2zD,OAAYnlB,sBAAsB5mC,GAC9D,OAAI/C,GACF0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WACnB,IAGTzD,EAAM4D,QAAQnS,EAAKgS,WACZ,IAGT,yBAAyB8Y,EAAGljB,GAC1B,MAAO/C,EAAO7E,SAAc2zD,OAAYllB,mBAAmB7mC,GAC3D,OAAI/C,GACF0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WACnB,IAGTzD,EAAM4D,QAAQnS,EAAKgS,WACZ,IAET,wBAAwB8Y,EAAGljB,GACzB,MAAO/C,EAAO7E,SAAc2zD,OAAYjlB,kBAAkB9mC,GAC1D,OAAI/C,GACF0uD,EAAwB,OAAL1uD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WACnB,IAGTzD,EAAM4D,QAAQnS,EAAKgS,WACZ,IAET2jD,YAAW,OAAEjqD,IACPZ,EAAMuzC,YACRsV,OAAYr+C,SAEdzS,SAAS+yD,OACP,uFACF/yD,SAAS+yD,OACP,iEACFlqD,EAAOC,OAAMksC,QACb6b,IACA2B,eAAe9/C,QACf09B,iBACAn+B,aAAaE,QAAQ,cAAc,GACnCF,aAAaE,QAAQ,eAAe,GACpC4xB,OAAOtuB,QAAQ,CAAEnT,KAAM,WAEzB,kBAAiB,OAAEuG,IAUjB,GATAunC,iBAEAugB,EAAkB9/C,QAASovB,GAAOhuB,aAAao1B,WAAWpH,IAE1D6wB,OAAYr+C,SACZzS,SAAS+yD,OACP,uFACF/yD,SAAS+yD,OACP,iEACE5uD,OAAO6uD,SACT,IACE7uD,OAAO6uD,SAASC,UAChB,MAAOjxD,GACPiC,QAAQiK,IAAI,wCAAyClM,GAGzD6G,EAAOC,OAAMksC,QACb/iC,aAAaS,QACb8/C,eAAe9/C,QACfT,aAAaE,QAAQ,cAAc,GACnCF,aAAaE,QAAQ,eAAe,GACpCtJ,EAAOC,OAAMoM,cAAe,MAE5B6uB,OAAOtuB,QAAQ,CAAEnT,KAAM,WAIzB,mCAAkC,OAAEuG,IAClCk7B,OAAO9lC,KAAK,CAAEqE,KAAM,oBACpB6B,OAAOk3C,SAAW,oBAGpB,0BAAyB,MAAEpzC,EAAK,SAAEiE,IAChCA,EAAS,oBACT,MAAMnH,EAAU,CACdmuD,+BAA+B,IAE1BlxD,SAAe8uD,OAAY1lB,aAAanjC,EAAMyI,MAAO3L,GAC5D,GAAI/C,EAAO,OAAOyuD,EAAiB,OAALzuD,QAAK,IAALA,OAAK,EAALA,EAAOmN,WAGvC,8BACElL,QAAQiK,IAAI,sBACZ,MAAOlM,EAAO7E,SAAc2zD,OAAY3lB,iBACxC,MAAqB,QAAjBhuC,EAAKgS,UAOXgkD,kBAAiB,OAAEtqD,IACjBoJ,aAAao1B,WAAW,oBACxBx+B,EAAOC,OAAM69B,gBAAiB,OAGhC,4BAA2B,OAAE99B,IAC3B,IAAI6Z,EAAezQ,aAAaC,QAAQ,gBACpCkhD,QAAatC,OAAYtkB,qBAAqB9pB,GAClD7Z,EACEC,OAAM+sC,uBACNud,EAAK,GAAG7mD,QAAQ4B,IAAKhR,IAAI,CACvBgJ,GAAIhJ,EAAKmZ,KAAKnQ,GACd9C,MAAO,GAAGlG,EAAKmZ,KAAK4vB,YAAY/oC,EAAKmZ,KAAK+8C,iBAM5C1pD,EAAY,CAChB,CAACb,OAAM+sC,wBAAwB5tC,EAAOlD,GACpCkD,EAAMgqD,kBAAoB,IAAIltD,IAEhC,CAAC+D,OAAM0sC,mBAAmBvtC,EAAOqF,GAC/BrF,EAAMgpD,kBAAoB3jD,GAE5B,CAACxE,OAAM2sC,yBAAyBxtC,EAAOqrD,GACrCrrD,EAAM4qD,yBAA2BS,GAEnC,CAACxqD,OAAMw9B,YAAYr+B,EAAOkN,GACxBlN,EAAMkN,MAAQA,EACdlN,EAAMuzC,YAAa,GAErB,CAAC1yC,OAAMksC,QAAQ/sC,GACbA,EAAMqO,KAAO,KACbrO,EAAMkN,MAAQ,KACdlN,EAAMuzC,YAAa,EACnBvzC,EAAMya,aAAe,KACrBza,EAAM0zB,KAAO,KACb1zB,EAAM+J,QAAU,KAChB/J,EAAM6yC,YAAa,EACnB7yC,EAAM89B,aAAc,EACpB99B,EAAMyI,MAAQ,KACdzI,EAAMyzC,WAAa,KACnBzzC,EAAM+9B,QAAU,KAChButB,OAASrnD,SAAS,cAAe,OAEnC,CAACpD,OAAMs9B,WAAWn+B,EAAOqO,GACvBrO,EAAMqO,KAAOA,GAEf,CAACxN,OAAMu9B,iBAAiBp+B,EAAOyI,GAC7BzI,EAAMyI,MAAQA,GAEhB,CAAC5H,OAAM09B,mBAAmBv+B,EAAOya,GAC/Bza,EAAMya,aAAeA,GAEvB,CAAC5Z,OAAM29B,WAAWx+B,EAAO0zB,GACvB1zB,EAAM0zB,KAAOA,GAEf,CAAC7yB,OAAMisC,cAAc9sC,EAAO+J,GAC1B/J,EAAM+J,QAAUA,GAElB,CAAClJ,OAAM49B,cAAcz+B,EAAOurD,GAC1BvrD,EAAM29B,IAAM4tB,GAEd,CAAC1qD,OAAM69B,iBAAiB1+B,EAAOwrD,GAC7BxrD,EAAM6pD,iBAAmB2B,GAE3B,CAAC3qD,OAAMmsC,mBAAmBhtC,EAAOkN,GAC/BlD,aAAaE,QAAQ,cAAc,GACnClK,EAAMuzC,YAAa,GAErB,CAAC1yC,OAAMosC,mBAAmBjtC,EAAO+pD,GAC/B/pD,EAAM+pD,aAAeA,GAEvB,CAAClpD,OAAMq+B,iBAAiBl/B,EAAOyzC,GAC7BzzC,EAAMyzC,WAAaA,GAErB,CAAC5yC,OAAMm+B,WAAWh/B,EAAOyI,GACvBzI,EAAMyI,MAAQA,GAEhB,CAAC5H,OAAM89B,cAAc3+B,EAAOyrD,GAC1BzrD,EAAM6yC,WAAa4Y,GAErB,CAAC5qD,OAAM+9B,iBAAiB5+B,EAAOw3C,GAC7Bx3C,EAAM89B,YAAc0Z,GAEtB,CAAC32C,OAAMy9B,oBAAoBt+B,EAAOkN,GAChClN,EAAM+9B,QAAU7wB,IAmBpB,MAAMlN,EAAQ,CACZ4qD,yBAA0B,KAC1Bv8C,KAAMrE,aAAaC,QAAQ,QAC3BxB,MAAOuB,aAAaC,QAAQ,SAC5BiD,MAAOlD,aAAaC,QAAQ,SAC5BspC,aAAcvpC,aAAaC,QAAQ,SACnCwQ,aAAczQ,aAAaC,QAAQ,gBACnC++C,kBAAmB,GACnBt1B,KAAM1pB,aAAaC,QAAQ,QAC3BF,QAASC,aAAaC,QAAQ,WAC9B0zB,IAAK3zB,aAAaC,QAAQ,OAC1B4/C,iBAAkB7/C,aAAaC,QAAQ,oBACvC4oC,WAAY7oC,aAAaC,QAAQ,cACjC6zB,YAAa9zB,aAAaC,QAAQ,eAClCwpC,WAAYzpC,aAAaC,QAAQ,cACjC+/C,kBAAmB,IAGN,cACbhqD,MAAK,EACLK,QAAO,EACPK,UACAgB,c,kCC1hBF,OA6Ve,cACb1B,MAAO,GACPK,QAAS,GACTK,QAAS,GACTgB,UAAW,K,kCCjWb,uBAEA,MAAMrB,EAAU,CACdqrD,cAAgB1rD,GAAUA,EAAM0rD,cAChCC,kBAAoB3rD,GAAUA,EAAM2rD,kBACpCC,kBAAoB5rD,GAAUA,EAAM4rD,kBACpCC,oBAAsB7rD,GAAUA,EAAM6rD,qBAGlCnrD,EAAU,CACdorD,kBAAiB,OAAElrD,GAAU9D,GAC3B8D,EAAOC,OAAMssC,oBAAqBrwC,IAEpCivD,sBAAqB,OAAEnrD,GAAU9D,GAC/B8D,EAAOC,OAAMusC,wBAAyBtwC,IAExCkvD,sBAAqB,OAAEprD,GAAU9D,GAC/B8D,EAAOC,OAAMwsC,wBAAyBvwC,IAExCmvD,wBAAuB,OAAErrD,GAAU9D,GACjC8D,EAAOC,OAAM4sC,yBAA0B3wC,KAIrC4E,EAAY,CAChB,CAACb,OAAMssC,qBAAqBntC,EAAOlD,GACjCkD,EAAM0rD,cAAgB5uD,GAExB,CAAC+D,OAAMusC,yBAAyBptC,EAAOlD,GACrCkD,EAAM2rD,kBAAoB7uD,GAE5B,CAAC+D,OAAMwsC,yBAAyBrtC,EAAOlD,GACrCkD,EAAM4rD,kBAAoB9uD,GAE5B,CAAC+D,OAAM4sC,0BAA0BztC,EAAOlD,GACtCkD,EAAM6rD,oBAAsB/uD,IAK1BkD,EAAQ,CACZ0rD,cAAe,GACfC,mBAAmB,EACnBC,mBAAmB,EACnBC,oBAAqB,MAGR,cACb7rD,QACAK,UACAK,UACAgB,c,kCCnDK,SAASic,IACd,MAAMuuC,EAAU,mBAChB,IAAIl4B,EAAQ,IACZ,IAAK,IAAIx+B,EAAI,EAAGA,EAAI,EAAGA,IACrBw+B,GAASk4B,EAAQlF,KAAKC,MAAsB,GAAhBD,KAAKmF,WAEnC,OAAOn4B,EAGF,SAASvW,EAAcuW,GAC5B,MAAMo4B,EAAW,yBACf,OAAOA,EAAS1sB,KAAK1L,GAXzB,qE,kCCAA,uBAEe,cACb,CACEppB,KAAM,SACNvQ,KAAM,eACNwQ,UAAWA,IAAM,gDACjBC,SAAU,CACR,CACEF,KAAM,qBACNvQ,KAAM,qBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,gBACNvQ,KAAM,gBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,QACNvQ,KAAM,YACNwQ,UAAWA,IACT,2GACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,QACNvQ,KAAM,QACNwQ,UAAWA,IAAM,gDACjBE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,gBACNvQ,KAAM,gBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,UACNvQ,KAAM,cACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,kBACNvQ,KAAM,kBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,QACNvQ,KAAM,iBACNwQ,UAAWA,IAAM,qFACjBE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,UACNvQ,KAAM,UACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,YACNvQ,KAAM,YACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,gBACNvQ,KAAM,qBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,cACNvQ,KAAM,cACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,WACNvQ,KAAM,WACNwQ,UAAWA,IACT,qFACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,gCACNvQ,KAAM,cACN8Q,OAAO,EACPN,UAAWA,IACT,iIAGFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,cACNvQ,KAAM,cACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,UACNvQ,KAAM,UACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,YACNvQ,KAAM,mBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,kBACNvQ,KAAM,kBACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,iBACNvQ,KAAM,qBACNwQ,UAAWA,IACT,qFACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,cACNvQ,KAAM,cACNwQ,UAAWA,IACT,gDACFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,SAE5B,CACEtzB,KAAM,qBACNvQ,KAAM,qBACNwQ,UAAWA,IACT,gDAGFE,KAAM,CAAEC,UAAW,CAACC,OAAMizB,a,kCC5JnB,QACb,aAAc,GACdmuB,SAAU,OACVC,MAAO,U,qBCHT,IAAIpmD,EAAM,CACT,wBAAyB,OACzB,kBAAmB,QACnB,yBAA0B,OAC1B,qBAAsB,OACtB,8BAA+B,OAC/B,oBAAqB,QAItB,SAAS8K,EAAeC,GACvB,IAAI/S,EAAKgT,EAAsBD,GAC/B,OAAOpa,EAAoBqH,GAE5B,SAASgT,EAAsBD,GAC9B,IAAIpa,EAAoBgE,EAAEqL,EAAK+K,GAAM,CACpC,IAAI3Z,EAAI,IAAI0B,MAAM,uBAAyBiY,EAAM,KAEjD,MADA3Z,EAAE2B,KAAO,mBACH3B,EAEP,OAAO4O,EAAI+K,GAEZD,EAAerI,KAAO,WACrB,OAAOhT,OAAOgT,KAAKzC,IAEpB8K,EAAetZ,QAAUwZ,EACzB9Z,EAAOD,QAAU6Z,EACjBA,EAAe9S,GAAK,Q,qBC3BpB,IAAIgI,EAAM,CACT,gBAAiB,OACjB,kBAAmB,OACnB,sBAAuB,OACvB,YAAa,OACb,sBAAuB,OACvB,eAAgB,OAChB,0BAA2B,OAC3B,eAAgB,OAChB,WAAY,OACZ,sBAAuB,OACvB,aAAc,OACd,qBAAsB,OACtB,mBAAoB,OACpB,kBAAmB,OACnB,qBAAsB,OACtB,uBAAwB,OACxB,qBAAsB,OACtB,oBAAqB,OACrB,aAAc,OACd,mBAAoB,OACpB,iBAAkB,OAClB,aAAc,OACd,cAAe,OACf,oBAAqB,QAItB,SAAS8K,EAAeC,GACvB,IAAI/S,EAAKgT,EAAsBD,GAC/B,OAAOpa,EAAoBqH,GAE5B,SAASgT,EAAsBD,GAC9B,IAAIpa,EAAoBgE,EAAEqL,EAAK+K,GAAM,CACpC,IAAI3Z,EAAI,IAAI0B,MAAM,uBAAyBiY,EAAM,KAEjD,MADA3Z,EAAE2B,KAAO,mBACH3B,EAEP,OAAO4O,EAAI+K,GAEZD,EAAerI,KAAO,WACrB,OAAOhT,OAAOgT,KAAKzC,IAEpB8K,EAAetZ,QAAUwZ,EACzB9Z,EAAOD,QAAU6Z,EACjBA,EAAe9S,GAAK,Q,4FC3CpB5B,eAAeiwD,EAAsBhwD,GAAU,EAAMkxB,EAAc,IACjE,aAAajxB,OAAUxB,IAAI,qBAAsBuB,EAASkxB,GAG5DnxB,eAAekwD,EAAmBjwD,GAAU,EAAMO,GAChD,aAAaN,OAAUO,KAAK,qBAAsBD,EAASP,GAG7D,MAAMkwD,EAAwBnwD,MAAOQ,EAASP,GAAU,UACzCC,OAAUkB,MACrB,qBAAqBZ,EAAQoB,MAC7BpB,EACAP,GAIEmwD,EAAyBpwD,MAAOQ,EAASP,GAAU,KACvDP,QAAQiK,IAAI,oBAAqBnJ,EAAQoB,GAAIpB,SAChCN,OAAUkB,MACrB,qBAAqBZ,EAAQoB,MAC7BpB,EACAP,IAIEowD,EAAkBrwD,MAAOswD,EAAOrwD,GAAU,UACjCC,OAAU4B,OAAO,qBAAqBwuD,KAAUrwD,GAEhD,OACbgwD,wBACAC,qBACAC,wBACAC,yBACAC,mB,YC/BF,MAAMlpD,EAAQC,iBACR1D,EAAQ,CACZ6sD,eAAgB,GAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,sBAAsB,EACtBC,mBAAoB,MAGhB5sD,EAAU,CACdwsD,eAAgB7sD,GAASA,EAAM6sD,eAC/BC,mBAAoB9sD,GAASA,EAAM8sD,mBACnCC,mBAAoB/sD,GAASA,EAAM+sD,mBACnCC,qBAAsBhtD,GAASA,EAAMgtD,qBACrCC,mBAAoBjtD,GAASA,EAAMitD,oBAG/BvsD,EAAU,CACdwsD,2BAA0B,OAAEtsD,GAAU9D,GACpC8D,EAAOC,OAAM6vC,0BAA2B5zC,IAG1CqwD,4BAA2B,OAAEvsD,GAAU9D,GACrC8D,EAAOC,OAAM8vC,4BAA6B7zC,IAG5C,uBAAsB,OAAE8D,EAAM,MAAEZ,GAASlD,GACvC,MAAM,eAAE+vD,GAAmB7sD,GACpBjG,EAAO7E,SAAck4D,EAAoBZ,oBAC9C,EACA1vD,GAEE/C,EACF0J,EAAMue,KAAK,sBAGbphB,EAAOC,OAAM2vC,qBAAsB,IAAIqc,EAAgB33D,KAGzD,6BAA4B,MAAE8K,EAAK,OAAEY,GAAU9D,GAC7C,MAAMuwD,EAAqB,IAAIrtD,EAAM6sD,iBAC9B9yD,SAAeqzD,EAAoBX,sBAAsB3vD,GAChE,GAAI/C,EAEF,YADA0J,EAAMue,KAAK,+DAGbve,EAAM4D,QAAQ,iCAEd,MAAMimD,EAAiBD,EAAmB5uC,UACxC8uC,GAAaA,EAAUrvD,KAAOpB,EAAQoB,IAExCmvD,EAAmBC,GAAkBxwD,EAErC8D,EAAOC,OAAM2vC,qBAAsB6c,IAGrC,uBAAsB,MAAErtD,EAAK,OAAEY,GAAUgsD,GACvC,MAAMS,EAAqB,IAAIrtD,EAAM6sD,iBAC9B9yD,SAAeqzD,EAAoBT,gBAAgBC,GAC1D,GAAI7yD,EAEF,YADA0J,EAAMue,KAAK,uDAGbve,EAAM4D,QAAQ,6BAEd,MAAMmmD,EAAkBH,EAAmBvvC,OACzCyvC,GAAaA,EAAUrvD,IAAM0uD,GAE/B5wD,QAAQiK,IAAI,uBAAwBunD,GAEpC5sD,EAAOC,OAAM2vC,qBAAsBgd,IAGrC,8BAA6B,MAAExtD,EAAK,OAAEY,GAAU9D,GAC9C,MAAMuwD,EAAqB,IAAIrtD,EAAM6sD,iBAC9B9yD,SAAeqzD,EAAoBV,uBAAuB5vD,GACjE,GAAI/C,EAEF,YADA0J,EAAMue,KAAK,wDAGbve,EAAM4D,QAAQ,kCAEd,MAAMimD,EAAiBD,EAAmB5uC,UACxC8uC,GAAaA,EAAUrvD,KAAOpB,EAAQoB,IAExCmvD,EAAmBC,GAAkBxwD,EAErC8D,EAAOC,OAAM2vC,qBAAsB6c,IAGrC,wBAAuB,OAAEzsD,IACvBA,EAAOC,OAAM4vC,2BAA2B,GACxC,MAAO12C,EAAO7E,SAAck4D,EAAoBb,uBAC9C,GAEFvwD,QAAQiK,IAAI,CAAE/Q,SACd0L,EAAOC,OAAM4vC,2BAA2B,GACpC12C,EACF0J,EAAMue,KAAK,sDAGbphB,EAAOC,OAAM2vC,qBAAsBt7C,IAGrCu4D,uBAAsB,OAAE7sD,GAAU9D,GAChC8D,EAAOC,OAAMywC,0BAA2Bx0C,KAItC4E,EAAY,CAChB,CAACb,OAAM2vC,sBAAsBxwC,EAAOlD,GAClCkD,EAAM6sD,eAAiB/vD,GAEzB,CAAC+D,OAAM4vC,2BAA2BzwC,EAAOlD,GACvCkD,EAAM8sD,mBAAqBhwD,GAE7B,CAAC+D,OAAM6vC,2BAA2B1wC,EAAOlD,GACvCkD,EAAM+sD,mBAAqBjwD,GAE7B,CAAC+D,OAAM8vC,6BAA6B3wC,EAAOlD,GACzCkD,EAAMgtD,qBAAuBlwD,GAE/B,CAAC+D,OAAMywC,2BAA2BtxC,EAAOlD,GACvCkD,EAAMitD,mBAAqBnwD,IAIhB,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,iFCrIF,MAAMgsD,EAAsBpxD,MAAOC,GAAU,UAC9BC,OAAUxB,IAAI,oBAAqBuB,GAE5CoxD,EAAuBrxD,MAAOQ,EAAQP,GAAU,UACvCC,OAAUO,KAAK,oBAAqBD,EAASP,GAG7C,OACbmxD,sBACAC,wBCPF,MAAMlqD,EAAQC,iBAER1D,EAAQ,CACZ4tD,eAAgB,GAChBC,kBAAkB,EAClBC,iBAAiB,GAGbztD,EAAU,CACdutD,eAAiB5tD,GAAUA,EAAM4tD,eACjCC,iBAAmB7tD,GAAUA,EAAM6tD,iBACnCC,gBAAkB9tD,GAAUA,EAAM8tD,iBAG9BptD,EAAU,CACd,2BAA0B,OAAEE,IAC1BA,EAAOC,OAAMgvC,wBAAwB,GACrC,MAAO91C,EAAO7E,SAAc64D,EAAWL,sBACvC9sD,EAAOC,OAAMgvC,wBAAwB,GACjC91C,EACFiC,QAAQiK,IAAI,CAAElM,UAGhB6G,EAAOC,OAAM+uC,qBAAsB16C,IAGrC,4BAA2B,MAAC8K,EAAK,OAAEY,GAAQ9D,GACzC8D,EAAOC,OAAMivC,wBAAwB,GACrC,MAAO/1C,EAAO7E,SAAc64D,EAAWJ,qBAAqB7wD,GAAQ,GAEpE,OADA8D,EAAOC,OAAMivC,wBAAwB,GACjC/1C,GACFiC,QAAQiK,IAAI,CAAElM,UACd0J,EAAM1J,MAAM,2BACL,IAET0J,EAAM4D,QAAQ,gCACdzG,EAAOC,OAAM+uC,qBAAsB16C,IAC5B,KAILwM,EAAY,CAChB,CAACb,OAAM+uC,sBAAsB5vC,EAAOlD,GAClCkD,EAAM4tD,eAAiB9wD,GAEzB,CAAC+D,OAAMivC,wBAAwB9vC,EAAOlD,GACpCkD,EAAM8tD,gBAAkBhxD,GAE1B,CAAC+D,OAAMgvC,wBAAwB7vC,EAAOlD,GACpCkD,EAAM6tD,iBAAmB/wD,IAId,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,kCC7DF,gBAEA,MAAMssD,EAAc1xD,MAAOa,EAAQZ,GAAU,EAAMkxB,EAAc,WAClDlrB,OAAUvH,IACrB,4BAA4BmC,EAC5BZ,EACAkxB,GAIEwgC,EAAuB3xD,MAAOQ,EAASP,GAAU,KACrD,MAAOxC,EAAO7E,SAAcqN,OAAUxF,KACpC,uBACAD,EACAP,GAEF,OAAOrH,GAGHg5D,EAAwB5xD,MAAOC,GAAU,UAChCgG,OAAUvH,IAAI,gCAAiCuB,GAGxD4xD,EAAwB7xD,MAAOQ,EAASP,GAAU,UACzCgG,OAAUxF,KACrB,gCACAD,EACAP,GAIE6xD,EAAwB9xD,MAAO4B,EAAI3B,GAAU,UACpCgG,OAAUnE,OAAO,iCAAiCF,EAAM3B,GAGjE8xD,EAAgB/xD,MAAOQ,EAASP,GAAU,KAC9C,MAAOxC,EAAO7E,SAAcqN,OAAUxF,KACpC,+CAA+CD,EAAQwxD,UACvDxxD,EACAP,GAEF,OAAOrH,GAGHq5D,EAAmBjyD,MAAO4B,EAAIpB,EAASP,GAAU,KACrD,MAAM2M,QAAY3G,OAAU7E,MAC1B,4BAA4BQ,KAC5BpB,EACAP,GAEF,OAAO2M,GAGHslD,EAAgBlyD,MAAO4B,EAAI3B,GAAU,UAC5BgG,OAAUnE,OACrB,qCAAqCF,EACrC3B,GAIEkyD,EAAuBnyD,MAAOoyD,EAAYnyD,GAAU,KACxD,MAAM,GAAE2B,EAAE,eAAEywD,GAAmBD,EAC/B,aAAansD,OAAU7E,MACrB,4BAA4BQ,KAC5B,CACEywD,eAAgBA,EAAiB,GAEnCpyD,IAIEqyD,EAAuBtyD,MAAOoyD,EAAYnyD,GAAU,KACxD,MAAM,GAAE2B,EAAE,eAAEywD,GAAmBD,EACzBG,EAAkBF,EAAiB,GAAK,EAAI,EAAIA,EAAiB,EACvE,aAAapsD,OAAU7E,MACrB,4BAA4BQ,KAC5B,CACEywD,eAAgBE,GAElBtyD,IAIEuyD,EAAuBxyD,MAAO4B,EAAI3B,GAAU,KAChD,MAAOxC,EAAO7E,SAAcqN,OAAUvH,IACpC,+CAA+CkD,EAC/C3B,GAEF,IAAKxC,EAAO,OAAO7E,GAGR65D,EAAkBzyD,MAAOQ,EAASP,GAAU,UAC1CgG,OAAUxF,KAAK,4BAA6BD,EAASP,GAGvDyyD,EAAmB1yD,MAAOQ,EAASP,GAAU,UAC3CgG,OAAUxF,KACrB,kDACAD,EACAP,GAIW,QACbyxD,cACAC,uBACAI,gBACAE,mBACAC,gBACAC,uBACAG,uBACAE,uBACAC,kBACAC,mBACAd,wBACAC,wBACAC,0B,mHCpHK,MAAMnE,EAAa,CACxB7hB,KAAM,CACJ8hB,SAAU,uCACVC,UAAW,mDAEbC,MAAO,CACLC,cAAe,iBAINzxD,EAAU,CACrBq2D,OAAQ,CAAC,SAAU,UAAW,YAAa,U,qFCGtC,SAASnlD,IACd,IAAIC,EAAUC,aAAaC,QAAQ,WAKnC,OAJe,MAAXF,IACFC,aAAaE,QAAQ,UAAWyiC,OAAI/H,aACpC76B,EAAUC,aAAaC,QAAQ,YAE1BF,EAKT,MAAMmlD,EAAUplD,IACVigD,EAAe,IAAIO,OAAwBL,GAEjD3tD,eAAe6yD,EAAcC,GAC3B,IAOE,aANMC,IAASD,EAAStF,YAAa,CACnCwF,SAAUF,EAASG,QAAQC,cAAcC,IACzCC,SAAU,uCACVC,cAAeP,EAASG,QAAQC,cAAcI,IAC9CX,OAAQG,EAASH,UAEZ,EACP,MAAOl1D,GACP,OAAO,GAIJuC,eAAeuzD,IACpBznD,OAAMnE,SAAS,cAGV3H,eAAewzD,IACpB1nD,OAAMnE,SAAS,+BAGV,MAAMyE,EAAgBL,IAAM5M,OAAO,CACxCyzD,YAGF,IAAIa,EAAe,KAEnBzzD,eAAewsD,IAab,OAZKiH,IACHA,EAAezsB,+BACZhqC,KAAM4T,IACL6iD,EAAe,KACR7iD,IAER5E,MAAOvO,IACNg2D,EAAe,KACRt4D,QAAQE,OAAOoC,MAIrBg2D,EAuDTzzD,eAAetB,EACbqC,EACAd,GAAU,EACVkxB,EAAc,GACdzlB,EAASgG,kBAELzR,GAAS6L,OAAMnE,SAAS,iBAE5B,IACE,MAAM,KAAE/O,SAAewT,EAAc1N,IAAIqC,EAAK,CAC5CuB,OAAQ,IAAK6uB,MACVzlB,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBAIhC3H,eAAeS,EAAKM,EAAKP,EAASP,GAAU,EAAMyL,EAASgG,kBACrDzR,GAAS6L,OAAMnE,SAAS,iBAE5B,IACE,MAAM,KAAE/O,SAAewT,EAAc3L,KAAKM,EAAKP,EAAS,IACnDkL,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBAIhC3H,eAAe2B,EAAIZ,EAAKP,EAASP,GAAU,EAAMyL,EAASgG,kBACpDzR,GAAS6L,OAAMnE,SAAS,iBAE5B,IACE,MAAM,KAAE/O,SAAewT,EAAczK,IAAIZ,EAAKP,EAAS,IAClDkL,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBAIhC3H,eAAeoB,EAAML,EAAKP,EAASP,GAAU,EAAMyL,EAASgG,kBACtDzR,GAAS6L,OAAMnE,SAAS,iBAC5B,IACE,MAAM,KAAE/O,SAAewT,EAAchL,MAAML,EAAKP,EAAS,IACpDkL,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBAIhC3H,eAAe8B,EACbf,EACAd,GAAU,EACVkxB,EAAc,GACdzlB,EAASgG,kBAELzR,GAAS6L,OAAMnE,SAAS,iBAE5B,IACE,MAAM,KAAE/O,SAAewT,EAAcW,OAAOhM,EAAK,CAC/CuB,OAAQ,IAAK6uB,MACVzlB,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBAIhC3H,eAAeiN,EACblM,EACAP,EACAP,GAAU,EACVkxB,EAAc,GACdzlB,EAASm+C,kBAEL5pD,GAAS6L,OAAMnE,SAAS,iBAE5B,IACE,MAAM,KAAE/O,SAAewT,EAAc3L,KAAKM,EAAKP,EAAS,CACtD8B,OAAQ,IAAK6uB,MACVzlB,IAEL,MAAO,CAAC,KAAM9S,GACd,MAAO6E,GACP,MAAO,CAACA,GACR,QACIwC,GAAS6L,OAAMnE,SAAS,mBA5JhCyE,EAAcsnD,aAAa9oD,SAASm0B,IACjC8vB,GAASA,EACV7uD,UACE,MAAM,OACJ0L,EACAd,UAAU,OAAEjK,IACVlD,EACEk2D,EAAkBjoD,EAExB,GAAe,MAAX/K,EACF,IACE,MAAMiQ,QAAc47C,IAEpB,OADAmH,EAAgB/rB,QAAQ+hB,cAAgB,UAAU/4C,EAC3CxE,EAAcunD,GACrB,MAAOl2D,GACP,OAAOtC,QAAQE,OAAOoC,QAEnB,GAAe,MAAXkD,EACT6yD,SACK,GAAe,MAAX7yD,EACT4yD,EAAgB9F,QACX,GAAe,MAAX9sD,EAAgB,CACzB,IAAIizD,EACJ,IACE/wB,iBACA+wB,QAAsBnG,EAAaoG,mBAAmBv3D,GACtD,MAAMw3D,QAAqBjB,EAAce,GAGzC,GAFAjxB,kBAEKmxB,EACH,MAAM,IAAIp3D,MAAM,iBAElB,MAAOe,GAEP,YADA81D,EAAgB9F,GAMlB,GAFA1mB,+BAAkB,CAAEgtB,aAAcH,EAAcpG,cAE5CzqB,iBACF,OAAO32B,EAAcunD,GAAiB32D,KAAK,KACzC85C,SAASkd,WAGXT,EAAgB9F,GAIpB,OAAOtyD,QAAQE,OAAOoC,KAgHX,QAAEiB,MAAK+B,OAAMkB,MAAKP,QAAOU,SAAQmL,W,kCCxOhD,sGAAO,MAAMgnD,EAAa,aACb7/B,EAAa,WACb3B,EAAiB,uB,kCCF9B,gBAEA,MAAMyhC,EAAkBl0D,MAAOQ,EAASP,GAAU,UACnCC,OAAUO,KAAK,2BAA4BD,EAASP,GAG7Dk0D,EAAkBn0D,MAAOC,GAAU,UAC1BC,OAAUxB,IAAI,2BAA4BuB,GAGnDm0D,EAAkBp0D,MAAOq0D,EAAa7zD,EAASP,GAAU,UAChDC,OAAUkB,MACrB,2BAA2BizD,EAC3B7zD,EACAP,GAIEq0D,EAAmBt0D,MAAOQ,EAASP,GAAU,UACpCC,OAAUO,KAAK,2BAA4BD,EAASP,GAG7Ds0D,EAAmBv0D,MAAOQ,EAASP,GAAU,UACpCC,OAAUkB,MAAM,2BAA4BZ,EAASP,GAG9Du0D,EAAmBx0D,MAAOC,GAAU,EAAOG,EAAa,WAC/CF,OAAU4B,OACrB,2BACA7B,EACAG,GAIEq0D,EAAoBz0D,MAAO4B,EAAI3B,GAAU,UAChCC,OAAUxB,IAAI,4BAA4BkD,EAAM3B,GAGhD,QACbi0D,kBACAC,kBACAC,kBACAE,mBACAC,mBACAC,mBACAC,sB,kCC7Ca,QACb,aAAc,aACd,cAAe,cACf,aAAc,e,kCCHhB,mCAGA,MAAM/wD,EAAQ,CACZiL,MAAO,IAGH5K,EAAU,CACd4K,MAAQjL,GAAUA,EAAMiL,OAGpBvK,EAAU,CACd,kBAAiB,OAAEE,EAAM,SAAEqD,GAAYnH,GACrC,MAAO/C,EAAM7E,SAAc87D,OAAYnnB,WAAW,CAACxvC,KAAKyC,IACxD,OAAG/C,GACDiC,QAAQiK,IAAI,0BACL,IAETrF,EAAOC,OAAM8sC,SAAUz4C,GACvB+O,EAAS,eACF,IAGT,mBAAkB,OAAErD,IAClB,MAAO7G,EAAOkR,SAAe+lD,OAAYpnB,WACtC7vC,GACCkR,EAAMvV,QAAU,GAClBkL,EAAOC,OAAM6sC,UAAWziC,KAKxBvJ,EAAY,CAChB,CAACb,OAAM8sC,UAAU3tC,EAAOlD,GACtBkD,EAAMiL,MAAQ,IAAIjL,EAAMiL,MAAO,IAAKnO,KAEtC,CAAC+D,OAAM6sC,WAAW1tC,EAAOlD,GACvBkD,EAAMiL,MAAQ,IAAInO,KAIP,cACbkD,QACAK,UACAK,UACAgB,c,iFC3CF,MAAMuvD,EAAsB30D,MAAOmxB,EAAalxB,GAAU,UAC3CC,OAAUxB,IACrB,6BACAuB,EACAkxB,GAIEyjC,EAAqB50D,MAAOQ,EAASP,GAAU,UACtCC,OAAUO,KAAK,6BAA8BD,EAASP,GAG/D40D,EAAqB70D,MACzB80D,EACA70D,GAAU,EACV80D,UAEa70D,OAAUkB,MACrB,8BAA8B0zD,EAC9B,CAAExzD,WAAYyzD,GACd90D,GAIE+0D,EAAqBh1D,MAAO80D,EAAgBt0D,EAASP,GAAU,UACtDC,OAAUkB,MACrB,8BAA8B0zD,EAC9Bt0D,EACAP,GAIEk0D,EAAkBn0D,MAAOC,GAAU,UAC1BC,OAAUxB,IAAI,kCAAmCuB,GAGjD,OACb00D,sBACAC,qBACAI,qBACAH,qBACAV,mBCvCF,MAAMhtD,EAAQC,iBAER1D,EAAQA,KAAA,CACZuxD,kBAAmB,GACnBC,yBAAyB,EACzBC,wBAAwB,EACxBC,wBAAwB,EACxBC,uBAAuB,IAGnBtxD,EAAU,CACdkxD,kBAAoBvxD,GAAUA,EAAMuxD,kBACpCC,wBAA0BxxD,GAAUA,EAAMwxD,wBAC1CC,uBAAyBzxD,GAAUA,EAAMyxD,uBACzCC,uBAAyB1xD,GAAUA,EAAM0xD,uBACzCC,sBAAwB3xD,GAAUA,EAAM2xD,uBAGpCjxD,EAAU,CACd,8BAA6B,OAAEE,GAAUzD,GACvCyD,EAAOC,OAAMuvC,gCAAgC,GAC7C,MAAOr2C,EAAO7E,SAAc08D,EAAoBX,oBAC9C,CAAE9/C,KAAMhU,IACR,GAEFyD,EAAOC,OAAMuvC,gCAAgC,GACzCr2C,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAMsvC,wBAAyBj7C,GACtC0L,EAAOC,OAAM0vC,8BAA8B,KAG7C2gB,oBAAmB,MAAElxD,EAAK,OAAEY,GAAU9D,GACpC,OAAO,IAAIrF,QAAQ6E,MAAO5E,EAASsoB,KACjC,MAAM,kBAAEuxC,GAAsBvxD,GACvBjG,EAAO7E,SAAc08D,EAAoBV,mBAC9Cp0D,GAEE/C,EACFiC,QAAQiK,IAAI,CAAElM,WAGhB6G,EAAOC,OAAMsvC,wBAAyB,IAAIohB,EAAmBr8D,IAC7DwC,QAIJ,oBAAmB,MAAEsI,EAAK,OAAEY,GAAUorC,GACpC,MAAM,GAAE9tC,EAAE,WAAEN,GAAeouC,GACrB,kBAAEulB,GAAsBvxD,EAC9BY,EAAOC,OAAMyvC,+BAA+B,GAC5C,MAAMuhB,EAAa,IAAIN,GAEjBO,EAAgBP,EAAkBrrD,IAAK6rD,IACvCA,EAAG7zD,KAAOA,IAAI6zD,EAAGn0D,YAAcA,GAC5Bm0D,IAETnxD,EAAOC,OAAMsvC,wBAAyB2hB,GAEtC,MAAO/3D,EAAOimB,SAAW4xC,EAAoBT,mBAC3CjzD,GACA,GACCN,GAGH,GADAgD,EAAOC,OAAMyvC,+BAA+B,GACxCv2C,EAGF,OAFA6G,EAAOC,OAAMsvC,wBAAyB0hB,QACtCpuD,EAAM1J,MAAM,mCAKhB,0BAAyB,MAAEiG,EAAK,OAAEY,IAAU,eAAEwwD,EAAc,QAAEt0D,IAC5D,MAAM,kBAAEy0D,GAAsBvxD,EAC9BY,EAAOC,OAAMwvC,+BAA+B,GAC5C,MAAOt2C,EAAOmN,SAAkB0qD,EAAoBN,mBAClDF,EACAt0D,GACA,GAGF,GADA8D,EAAOC,OAAMwvC,+BAA+B,GACxCt2C,EAEF,OADAiC,QAAQiK,IAAI,0BAA2BlM,IAChC,EAET,MAAMi4D,EAAuBT,EAAkBrrD,IAAK+rD,GAC9CA,EAAa/zD,IAAMkzD,EACd,IAAKlqD,GACA+qD,GAGhB,OADArxD,EAAOC,OAAMsvC,wBAAyB6hB,IAC/B,GAGTE,wBAAuB,OAAEtxD,IACvBA,EAAOC,OAAMsvC,wBAAyB,IACtCvvC,EAAOC,OAAM0vC,8BAA8B,KAIzC7uC,EAAY,CAChB,CAACb,OAAMsvC,yBAAyBnwC,EAAOlD,GACrCkD,EAAMuxD,kBAAoBz0D,GAE5B,CAAC+D,OAAMuvC,gCAAgCpwC,EAAOlD,GAC5CkD,EAAMwxD,wBAA0B10D,GAElC,CAAC+D,OAAMwvC,+BAA+BrwC,EAAOlD,GAC3CkD,EAAMyxD,uBAAyB30D,GAEjC,CAAC+D,OAAMyvC,+BAA+BtwC,EAAOlD,GAC3CkD,EAAM0xD,uBAAyB50D,GAEjC,CAAC+D,OAAM0vC,8BAA8BvwC,EAAOlD,GAC1CkD,EAAM2xD,sBAAwB70D,IAInB,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,+EChIK,MAAMywD,EAAkBr1D,IAC7B,MAAM,KAAEsU,EAAI,KAAE5Y,EAAI,OAAE45D,EAAM,eAAEC,EAAc,aAAEC,GAAiBx1D,EACvD8B,EAAS,CAAEwS,QAMjB,OALI5Y,IAAMoG,EAAO,mBAAqBpG,GAClC65D,IAAgBzzD,EAAO,kBAAoByzD,GAC3CC,IAAc1zD,EAAO,gBAAkB0zD,GAC3C1zD,EAAO,YAAiBwzD,EAAH,iBACN,SAAXA,UAA0BxzD,EAAO0S,SAC9B1S,G,gBCHT,MAAMoB,EAAQ,CACZuyD,UAAW,GACXC,kBAAkB,EAClBC,YAAa,EACbC,kBACAC,kBAAmBD,OAAW,cAC9BE,iBAAkB,IAGdvyD,EAAU,CACdkyD,UAAYvyD,GAAUA,EAAMuyD,UAC5BC,iBAAmBxyD,GAAUA,EAAMwyD,iBACnCC,YAAczyD,GAAUA,EAAMyyD,YAC9BC,WAAa1yD,GAAUA,EAAM0yD,WAC7BC,kBAAoB3yD,GAAUA,EAAM2yD,kBACpCC,iBAAmB5yD,GAAUA,EAAM4yD,iBACnCC,eAAiB7yD,GACfA,EAAM4yD,iBAAiBvhC,OAAO,CAACnoB,EAAK8uB,KAClC9uB,EAAI8uB,EAAG95B,IAAM85B,EAAG86B,SACT5pD,GACN,KAGDxI,EAAU,CACd,6BAA4B,OAAEE,IAC5B,MAAO7G,EAAO7E,SAAc69D,OAAc7E,wBACtCn0D,EACFiC,QAAQiK,IAAI,CAAElM,UAGhB6G,EAAOC,OAAM8uC,sBAAuBz6C,IAGtC89D,WAAU,MAAEhzD,EAAK,OAAEY,GAAUqyD,GAC3BryD,EAAOC,OAAM8uC,sBAAuB,IAAI3vC,EAAM4yD,iBAAkBK,KAGlEC,WAAU,MAAElzD,EAAK,OAAEY,GAAUuyD,GAC3BvyD,EACEC,OAAM8uC,sBACN3vC,EAAM4yD,iBAAiB90C,OAAQka,GAAOA,EAAG95B,KAAOi1D,KAIpD,mBAAkB,OAAEvyD,EAAM,SAAEqD,IAAY,OAAE9G,KAAWi2D,IACnDxyD,EAAOC,OAAM4uC,wBAAwB,GACrC,MAAMhiB,EAAc0kC,EAAeiB,IAC5Br5D,EAAO7E,SAAc69D,OAAc/E,YACxC7wD,GACA,EACAswB,GAGF,GADA7sB,EAAOC,OAAM4uC,wBAAwB,GACjC11C,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAM,QAAEuK,EAAO,MAAEE,GAAUtP,EACrBm+D,EAAa/uD,EAAQ4B,IAAKotD,IAAC,IAC5BA,EACHC,kBAAkB,KAEpB3yD,EAAOC,OAAM0uC,gBAAiB8jB,GAC9BzyD,EAAOC,OAAM2uC,iBAAkBhrC,IAGjCgvD,iBAAgB,OAAE5yD,EAAM,MAAEZ,GAASyzD,GACjC,MAAMxyD,EAAO,IAAIjB,EAAMuyD,WACjBmB,EAAYzyD,EAAKwd,UAAW60C,GAAMA,EAAEp1D,KAAOu1D,EAAMv1D,IACvD+C,EAAKyyD,GAAa,IAAKD,GACvB7yD,EAAOC,OAAM0uC,gBAAiBtuC,IAGhC0yD,eAAc,OAAE/yD,GAAU9D,GACxB8D,EAAOC,OAAM0uC,gBAAiBzyC,IAEhC82D,gBAAe,OAAEhzD,GAAU9D,GACzB8D,EAAOC,OAAM2uC,iBAAkB1yC,IAGjC+2D,sBAAqB,OAAEjzD,GAAU9D,GAC/B8D,EAAOC,OAAM6uC,wBAAyB5yC,KAIpC4E,EAAY,CAChB,CAACb,OAAM8uC,uBAAuB3vC,EAAOlD,GACnCkD,EAAM4yD,iBAAmB91D,GAE3B,CAAC+D,OAAM0uC,iBAAiBvvC,EAAOlD,GAC7BkD,EAAMuyD,UAAYz1D,GAEpB,CAAC+D,OAAM2uC,kBAAkBxvC,EAAOlD,GAC9BkD,EAAMyyD,YAAc31D,GAEtB,CAAC+D,OAAM4uC,wBAAwBzvC,EAAOlD,GACpCkD,EAAMwyD,iBAAmB11D,GAE3B,CAAC+D,OAAM6uC,yBAAyB1vC,EAAOlD,GACrCkD,EAAM2yD,kBAAoB71D,GAE5B,CAAC+D,OAAM6uC,yBAAyB1vC,EAAOlD,GACrCkD,EAAM2yD,kBAAoB71D,IAIf,cACbkD,MAAK,EACLK,UACAK,UACAgB,c,kECnHGyB,QAAQ,MAAMG,MAAM,6BAA6B3B,MAAM,MAAMC,OAAO,MAAMC,QAAQ,e,EAAcC,gCAA+9E,KAA59EC,KAAK,gBAAc,CAACD,gCAAikD,QAA3jDnH,EAAE,0jDAAyjDmH,gCAAm4B,QAA73BnH,EAAE,83B,MAAhmDqH,G,gDAArGC,gCAA0kF,MAA1kFC,EAAAC,G,yBCCA,MAAMzI,EAAS,GAGT0I,EAA2B,IAAgB1I,EAAQ,CAAC,CAAC,SAAS2I,KAErD,gB,kCCNf,+CASA,MAAMrC,EAAQ,CACZ8zD,sBAAuB,GACvBC,eAAgB,GAChBzsD,QAAS,GACT0sD,cAAe,GACfC,mBAAmB,EACnBC,gCAAiC,GACjCC,gCAAiC,GACjCC,kBAAmB,GACnBC,uBAAwB,GACxBC,yBAA0B,GAC1BC,WAAY,GACZC,oBAAqB,GACrBC,SAAU,GACVC,cAAe,MAGXr0D,EAAU,CACdyzD,sBAAwB9zD,GAAUA,EAAM8zD,sBACxCC,eAAiB/zD,GAAUA,EAAM+zD,eACjCzsD,QAAUtH,GAAUA,EAAMsH,QAC1BqtD,oBAAsB30D,GAAUA,EAAMg0D,cACtCM,yBAA2Bt0D,GAAUA,EAAMs0D,yBAC3CL,kBAAoBj0D,GAAUA,EAAMi0D,kBACpCC,gCAAkCl0D,GAChCA,EAAMk0D,gCACRC,gCAAkCn0D,GAChCA,EAAMm0D,gCACRC,kBAAoBp0D,GAAUA,EAAMo0D,kBACpCC,uBAAyBr0D,GAAUA,EAAMq0D,uBACzCE,WAAav0D,GAAUA,EAAMu0D,WAC7BC,oBAAsBx0D,GAAUA,EAAMw0D,oBACtCC,SAAWz0D,GAAUA,EAAMy0D,UAGvB/zD,EAAU,CACd,wBAAuB,OAAEE,IACvB,MAAO7G,EAAO7E,SAAcywB,OAAckc,wBAC1C,IAAI9nC,EAKJ,OADA6G,EAAOC,OAAMmtC,mBAAoB94C,GAC1B,CAAC6E,EAAO7E,GAJb8G,QAAQiK,IAAIlM,IAOhB,sBAAqB,OAAE6G,GAAUzD,GAC/B,IAAKpE,EAAK7D,SAAcywB,OAAcic,eAAezkC,GAGrD,OADAyD,EAAOC,OAAMotC,cAAe/4C,GACrB,CAAC6D,EAAK7D,IAGf,kBAAiB,OAAE0L,GAAU1L,GAE3B,IAAI0/D,EAAc50D,EAAMy0D,SAASvW,KAC9B2W,GAAYA,EAAQC,WAAa5/D,EAAK4/D,WAErCF,GAGJh0D,EAAOC,OAAMqtC,eAAgBh5C,IAG/B,2BAA0B,OAAE0L,IAC1B,MAAO7G,EAAO7E,SAAcywB,OAAcoc,sBAC1C,IAAIhoC,EAKJ,OADA6G,EAAOC,OAAMstC,sBAAuBj5C,GAC7B,CAAC6E,EAAO7E,GAJb8G,QAAQiK,IAAIlM,IAMhBg7D,oBAAmB,OAAEn0D,GAAU9D,GAC7B8D,EAAOC,OAAM8tC,sBAAuB7xC,IAGtCk4D,mBAAkB,OAAEp0D,GAAU9D,GAC5B8D,EAAOC,OAAMgtC,qBAAsB/wC,IAGrCm4D,kBAAiB,OAAEr0D,IACjBA,EAAOC,OAAMitC,qBAGf,sBAAqB,OAAEltC,GAAUzD,GAC/B,IAAKpD,EAAO7E,SAAcywB,OAAcgc,eAAexkC,GACnDpD,EACFiC,QAAQiK,IAAIlM,GAGd6G,EAAOC,OAAMutC,iBAAkBl5C,IAGjC,sBAAqB,OAAE0L,GAAU9D,GAC/B,IAAIwK,EAAUtH,EAAMsH,QAAQpB,IAAKhR,GAC3BA,EAAKgJ,IAAMpB,EAAQoB,GACd,IAAKhJ,EAAMymB,QAAS7e,EAAQ6e,QAASu5C,QAAQ,GAE/ChgE,GAGT0L,EAAOC,OAAMktC,YAAazmC,IAG5B,qBAAoB,OAAE1G,GAAU+M,GAC9B/M,EAAOC,OAAMytC,yBAAyB,GACtC,MAAOv0C,EAAO7E,SAAcywB,OAAcma,qBACxCnyB,GACA,GAIF,GAFA/M,EAAOC,OAAMqsC,iBAAkBh4C,GAC/B0L,EAAOC,OAAMytC,yBAAyB,GAClCv0C,EAEF,YADAiC,QAAQiK,IAAI,CAAElM,UAGhB,MAAMuN,EAAUpS,EAAK4oB,OAClB4nB,GAA2B,wBAAhBA,EAAO1F,MAErBp/B,EAAOC,OAAMktC,YAAazmC,GAC1B1G,EACEC,OAAM0tC,0CACNnd,eAAmC9pB,IAErC1G,EACEC,OAAM2tC,0CACNhd,eAAmClqB,IAErC1G,EAAOC,OAAM4tC,0BAA2Bhd,eAAqBnqB,IAC7D1G,EACEC,OAAM6tC,uCACN/c,eAA0BrqB,MAK1B5F,EAAY,CAChB,CAACb,OAAMitC,oBAAoB9tC,GACxBA,EAAM8zD,sBAAwB,GAC5B9zD,EAAM+zD,eAAiB,GACvB/zD,EAAMsH,QAAU,GAChBtH,EAAMg0D,cAAgB,GACtBh0D,EAAMi0D,mBAAoB,EAC1Bj0D,EAAMk0D,gCAAkC,GACxCl0D,EAAMm0D,gCAAkC,GACxCn0D,EAAMo0D,kBAAoB,GAC1Bp0D,EAAMq0D,uBAAyB,GAC/Br0D,EAAMs0D,yBAA2B,GACjCt0D,EAAMu0D,WAAa,IAExB,CAAC1zD,OAAMotC,eAAejuC,EAAOlD,GAC3BkD,EAAMy0D,SAAW33D,GAEnB,CAAC+D,OAAMqtC,gBAAgBluC,EAAOlD,GAC5BkD,EAAMy0D,SAAW,IAAIz0D,EAAMy0D,SAAU33D,IAEvC,CAAC+D,OAAMstC,uBAAuBnuC,EAAOlD,GACnCkD,EAAMs0D,yBAA2Bx3D,GAEnC,CAAC+D,OAAMytC,yBAAyBtuC,EAAOlD,GACrCkD,EAAMu0D,WAAaz3D,GAErB,CAAC+D,OAAM8tC,uBAAuB3uC,EAAOlD,GACnCkD,EAAM8zD,sBAAwBh3D,GAEhC,CAAC+D,OAAMqsC,kBAAkBltC,EAAOlD,GAC9BkD,EAAMu0D,WAAaz3D,GAErB,CAAC+D,OAAMgtC,sBAAsB7tC,EAAOlD,GAClCkD,EAAM+zD,eAAiBj3D,GAEzB,CAAC+D,OAAMutC,kBAAkBpuC,EAAOlD,GAC9BkD,EAAMw0D,oBAAsB13D,GAE9B,CAAC+D,OAAMktC,aAAa/tC,EAAOlD,GACzBkD,EAAMsH,QAAUxK,GAElB,CAAC+D,OAAMmtC,oBAAoBhuC,EAAOlD,GAChCkD,EAAMg0D,cAAgBl3D,GAExB,CAAC+D,OAAMytC,yBAAyBtuC,EAAOlD,GACrCkD,EAAMi0D,kBAAoBn3D,GAE5B,CAAC+D,OAAM0tC,2CAA2CvuC,EAAOlD,GACvDkD,EAAMk0D,gCAAkCp3D,GAE1C,CAAC+D,OAAM2tC,2CAA2CxuC,EAAOlD,GACvDkD,EAAMm0D,gCAAkCr3D,GAE1C,CAAC+D,OAAM4tC,2BAA2BzuC,EAAOlD,GACvCkD,EAAMo0D,kBAAoBt3D,GAE5B,CAAC+D,OAAM6tC,wCAAwC1uC,EAAOlD,GACpDkD,EAAMq0D,uBAAyBv3D,IAIpB,cACbkD,QACAK,UACAK,UACAgB,c,kCCnNF,sGAAO,MAAMuJ,EAAQ,CACnBizB,MAAO,QACP7vB,KAAM,YACNC,SAAU,WACVpD,QAAS,UACTsD,eAAgB,iBAChB2mD,iBAAkB,mBAClB5mD,aAAc,eACdE,SAAU,YAGC2mD,EAAa,CACxB,CAACnqD,EAAMizB,OAAQ,cACf,CAACjzB,EAAMoD,MAAO,qBACd,CAACpD,EAAMqD,UAAW,oBAClB,CAACrD,EAAMC,SAAU,UACjB,CAACD,EAAMuD,gBAAiB,iBACxB,CAACvD,EAAMkqD,kBAAmB,mBAC1B,CAAClqD,EAAMsD,cAAe,eACtB,CAACtD,EAAMwD,UAAW,aAGP66C,EAAmB,CAC9B,CAACr+C,EAAMizB,OAAQ,CACb,gBACA,YACA,QACA,gBACA,cACA,iBACA,kBACA,UACA,YACA,qBACA,cACA,WACA,qBACA,cACA,UACA,mBACA,qBACA,cACA,kBACA,sBAEF,CAACjzB,EAAMoD,MAAO,CACZ,OACA,QACA,aACA,mBAEA,sBACA,qBACA,cACA,eAEA,OACA,YACA,iBACA,QACA,eACA,aACA,UACA,UACA,QACA,eACA,aACA,UACA,QACA,OAEF,CAACpD,EAAMqD,UAAW,CAChB,OACA,QACA,aACA,mBAEA,sBACA,qBACA,cACA,eAEA,OACA,YACA,iBACA,QACA,eACA,aACA,UACA,UACA,OAEF,CAACrD,EAAMC,SAAU,CAAC,kBAAmB,mBACrC,CAACD,EAAMuD,gBAAiB,CACtB,YACA,iBACA,QACA,gBAEF,CAACvD,EAAMsD,cAAe,CACpB,OACA,QACA,aACA,mBAEA,sBACA,qBACA,cACA,eAEA,OACA,YACA,iBACA,QACA,eACA,aACA,UACA,UACA,QACA,OAEF,CAACtD,EAAMwD,UAAW,CAChB,OACA,QACA,aACA,mBAEA,sBACA,qBACA,cACA,eAEA,OACA,YACA,iBACA,QACA,eACA,aACA,UACA,UACA,W,+EC1IG,MAAM4mD,EAAsBv4D,GAC1B,IAAIrF,QAAQ6E,UACjB,MAAOvC,EAAO7E,SAAcogE,OAAiB9E,gBAC3C1zD,GACA,GAEF,GAAI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","file":"js/app.f3182802.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0800eee8\":\"b229c942\",\"chunk-09d69a0a\":\"d4a85640\",\"chunk-0a68cf44\":\"f151dae5\",\"chunk-0d6342f6\":\"844b9ce5\",\"chunk-12d380b6\":\"2dd6ccf1\",\"chunk-1de7b1af\":\"88dd0867\",\"chunk-26a4820a\":\"831f6d07\",\"chunk-222e293c\":\"95f9b717\",\"chunk-569015ca\":\"3537a1ab\",\"chunk-286423ec\":\"f739b808\",\"chunk-2af7e0c9\":\"9d8937d8\",\"chunk-2d0a372b\":\"0e29a03f\",\"chunk-2d0b2974\":\"be6f95d0\",\"chunk-2d0d371f\":\"57783536\",\"chunk-2d0d7690\":\"c2a0d5c8\",\"chunk-2d0e88fd\":\"c4287f69\",\"chunk-2d213558\":\"0e535fe7\",\"chunk-2d2169a5\":\"e7249ba3\",\"chunk-2d221f5d\":\"02779977\",\"chunk-2d230c34\":\"94311862\",\"chunk-2ed70d78\":\"88f2a5f0\",\"chunk-3e85db8b\":\"cdc90979\",\"chunk-3f3ce8a5\":\"110801ad\",\"chunk-2f31744a\":\"2c823051\",\"chunk-4107a0a5\":\"57308054\",\"chunk-43b0c5bb\":\"a6fa3b8c\",\"chunk-48d775e7\":\"f1121057\",\"chunk-4b6fe31f\":\"bfb2bb07\",\"chunk-53cc7cb7\":\"d0be290d\",\"chunk-54f76104\":\"89609db1\",\"chunk-5913f911\":\"9541d8ca\",\"chunk-5f537b32\":\"5d0b795a\",\"chunk-70f53718\":\"ff0e53c7\",\"chunk-b200a74e\":\"0ec1b9bf\",\"chunk-6e937f70\":\"c67ffa4d\",\"chunk-79f218bb\":\"c3384e0a\",\"chunk-fdfbffd0\":\"e4a0c9e3\",\"chunk-83b06e1a\":\"709d27cd\",\"chunk-87bc6a30\":\"16bdac39\",\"chunk-923cc716\":\"d2ae0795\",\"chunk-9340a1d0\":\"5b028ce2\",\"chunk-51caf803\":\"7ec50288\",\"chunk-9e45e1e6\":\"30980979\",\"chunk-9fc3d1b6\":\"dfac2cab\",\"chunk-a0b91cd2\":\"55a81072\",\"chunk-a5d3f33c\":\"2ebc85af\",\"chunk-f6e36182\":\"3fd20dac\",\"chunk-10c94f90\":\"b2a3cca6\",\"chunk-79dbbe48\":\"0a7191a3\",\"chunk-2e6f123b\":\"bf323d6d\",\"chunk-2d229797\":\"7c70cc54\",\"chunk-ff897834\":\"1606f03d\",\"chunk-a8dd08e4\":\"7b1d7bcf\",\"chunk-b9d8b3bc\":\"18196e37\",\"chunk-d9b78f78\":\"8c385349\",\"chunk-df207106\":\"f8f859df\",\"chunk-7d84266a\":\"e92affef\",\"chunk-2d0b3de9\":\"655997ce\",\"chunk-f71edd88\":\"56cb61c3\",\"chunk-f74fc010\":\"9fc0c6ff\",\"chunk-f94ca68a\":\"706f08a5\",\"chunk-301d69c2\":\"55856171\",\"chunk-52e6a8dc\":\"88b871c3\",\"chunk-6edc27c4\":\"cd254f8d\",\"chunk-7f0c5fc6\":\"74cc4fe4\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0800eee8\":1,\"chunk-09d69a0a\":1,\"chunk-0a68cf44\":1,\"chunk-12d380b6\":1,\"chunk-26a4820a\":1,\"chunk-222e293c\":1,\"chunk-569015ca\":1,\"chunk-286423ec\":1,\"chunk-2af7e0c9\":1,\"chunk-2ed70d78\":1,\"chunk-3e85db8b\":1,\"chunk-2f31744a\":1,\"chunk-4107a0a5\":1,\"chunk-43b0c5bb\":1,\"chunk-48d775e7\":1,\"chunk-4b6fe31f\":1,\"chunk-53cc7cb7\":1,\"chunk-54f76104\":1,\"chunk-5913f911\":1,\"chunk-5f537b32\":1,\"chunk-70f53718\":1,\"chunk-b200a74e\":1,\"chunk-6e937f70\":1,\"chunk-79f218bb\":1,\"chunk-fdfbffd0\":1,\"chunk-83b06e1a\":1,\"chunk-87bc6a30\":1,\"chunk-51caf803\":1,\"chunk-9e45e1e6\":1,\"chunk-9fc3d1b6\":1,\"chunk-a0b91cd2\":1,\"chunk-a5d3f33c\":1,\"chunk-10c94f90\":1,\"chunk-79dbbe48\":1,\"chunk-2e6f123b\":1,\"chunk-a8dd08e4\":1,\"chunk-b9d8b3bc\":1,\"chunk-d9b78f78\":1,\"chunk-df207106\":1,\"chunk-7d84266a\":1,\"chunk-f71edd88\":1,\"chunk-f74fc010\":1,\"chunk-f94ca68a\":1,\"chunk-301d69c2\":1,\"chunk-52e6a8dc\":1,\"chunk-6edc27c4\":1,\"chunk-7f0c5fc6\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0800eee8\":\"1e93524f\",\"chunk-09d69a0a\":\"72d7369f\",\"chunk-0a68cf44\":\"d318fd9d\",\"chunk-0d6342f6\":\"31d6cfe0\",\"chunk-12d380b6\":\"520a9519\",\"chunk-1de7b1af\":\"31d6cfe0\",\"chunk-26a4820a\":\"9fbefb5c\",\"chunk-222e293c\":\"219d946e\",\"chunk-569015ca\":\"1e04fe70\",\"chunk-286423ec\":\"19b5736d\",\"chunk-2af7e0c9\":\"ad153c7b\",\"chunk-2d0a372b\":\"31d6cfe0\",\"chunk-2d0b2974\":\"31d6cfe0\",\"chunk-2d0d371f\":\"31d6cfe0\",\"chunk-2d0d7690\":\"31d6cfe0\",\"chunk-2d0e88fd\":\"31d6cfe0\",\"chunk-2d213558\":\"31d6cfe0\",\"chunk-2d2169a5\":\"31d6cfe0\",\"chunk-2d221f5d\":\"31d6cfe0\",\"chunk-2d230c34\":\"31d6cfe0\",\"chunk-2ed70d78\":\"a12dac01\",\"chunk-3e85db8b\":\"58b1c02c\",\"chunk-3f3ce8a5\":\"31d6cfe0\",\"chunk-2f31744a\":\"1aa8297c\",\"chunk-4107a0a5\":\"fcc60db5\",\"chunk-43b0c5bb\":\"fa35c702\",\"chunk-48d775e7\":\"82d74ec4\",\"chunk-4b6fe31f\":\"fcc40a81\",\"chunk-53cc7cb7\":\"a12dac01\",\"chunk-54f76104\":\"79e64ec0\",\"chunk-5913f911\":\"bb66df7e\",\"chunk-5f537b32\":\"395aab81\",\"chunk-70f53718\":\"944a3824\",\"chunk-b200a74e\":\"89d3dd6f\",\"chunk-6e937f70\":\"1cc2a3ee\",\"chunk-79f218bb\":\"c0ffdc5a\",\"chunk-fdfbffd0\":\"25519035\",\"chunk-83b06e1a\":\"3c79beb4\",\"chunk-87bc6a30\":\"eabd06e7\",\"chunk-923cc716\":\"31d6cfe0\",\"chunk-9340a1d0\":\"31d6cfe0\",\"chunk-51caf803\":\"e0a03181\",\"chunk-9e45e1e6\":\"00eeb5d8\",\"chunk-9fc3d1b6\":\"b502e723\",\"chunk-a0b91cd2\":\"8ffb48f1\",\"chunk-a5d3f33c\":\"03f72e06\",\"chunk-f6e36182\":\"31d6cfe0\",\"chunk-10c94f90\":\"c00a2ceb\",\"chunk-79dbbe48\":\"a3c1a1ca\",\"chunk-2e6f123b\":\"9bcd65f7\",\"chunk-2d229797\":\"31d6cfe0\",\"chunk-ff897834\":\"31d6cfe0\",\"chunk-a8dd08e4\":\"a0a11343\",\"chunk-b9d8b3bc\":\"5d87bd83\",\"chunk-d9b78f78\":\"1564066e\",\"chunk-df207106\":\"d6ef2f02\",\"chunk-7d84266a\":\"2888b0b8\",\"chunk-2d0b3de9\":\"31d6cfe0\",\"chunk-f71edd88\":\"080142f7\",\"chunk-f74fc010\":\"d1902979\",\"chunk-f94ca68a\":\"792379d5\",\"chunk-301d69c2\":\"d828ca75\",\"chunk-52e6a8dc\":\"2e234023\",\"chunk-6edc27c4\":\"ffcbc3bc\",\"chunk-7f0c5fc6\":\"8c5271f2\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import ApiHelper from './index';\r\n\r\nconst fetchTasks = async (spinner = true) => {\r\n return await ApiHelper.get('organization/task/', spinner);\r\n};\r\n\r\nconst fetchOrganizationTasks = async (queryParam, spinner = true) => {\r\n return await ApiHelper.get('organization/task/taskpage', spinner, queryParam);\r\n};\r\n\r\nconst fetchAllTaskAdminPanel = async (query, spinner) => {\r\n return await ApiHelper.get('organization/tasks/admin', spinner, query);\r\n};\r\n\r\nconst cloneTasks = async (payload, spinner = true) => {\r\n return await ApiHelper.post('generic/clone_task/', payload, spinner);\r\n};\r\n\r\nconst fetchTrainedTasksByStatus = async (status, spinner = true) => {\r\n return await ApiHelper.get(\r\n `organization/task/get_all_trained_tasks_of_organization?train_status=${status}`,\r\n spinner\r\n );\r\n};\r\n\r\nconst fetchTaskDetailsNew = async (\r\n taskId,\r\n spinner = true,\r\n historyId = null\r\n) => {\r\n const url = historyId\r\n ? `organization/task_history/${taskId}/?history_id=${historyId}`\r\n : `organization/task_history/${taskId}/`;\r\n\r\n return await ApiHelper.get(url, spinner);\r\n};\r\n\r\nconst fetchTaskDetails = async (taskId, spinner = true) => {\r\n return await ApiHelper.get(`organization/task/${taskId}/`, spinner);\r\n};\r\nconst addTask = async (payload, spinner = true) => {\r\n return await ApiHelper.post('organization/task/', payload, spinner);\r\n};\r\n\r\nconst fetchTaskStatus = async (taskId, spinner = true) => {\r\n return await ApiHelper.get(`organization/trained_task/${taskId}`, spinner);\r\n};\r\n\r\nconst updateTask = async (taskId, payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `organization/task/${taskId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteTask = async (taskId, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `organization/task/${taskId}/`,\r\n { is_deleted: true },\r\n spinner\r\n );\r\n};\r\n\r\nconst fetchTaskObjects = async (taskId, spinner) => {\r\n return await ApiHelper.get(\r\n `organization/task/list_task_objects/${taskId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst fetchTaskPlaneObjects = async (taskId, spinner) => {\r\n return await ApiHelper.get(\r\n `organization/task/list_plane_objects/${taskId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst addTaskObject = async (payload, spinner) => {\r\n return await ApiHelper.post(\r\n `organization/task/task_object/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst addPlaneObject = async (payload, spinner) => {\r\n return await ApiHelper.put(\r\n `organization/task/plane_objects/${payload.id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deletePlaneObject = async (id, spinner) => {\r\n return await ApiHelper.remove(\r\n `organization/task/plane_objects/${id}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst createNewPlane = async (payload, spinner) => {\r\n return await ApiHelper.post(\r\n `organization/task/plane_objects/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateTaskObject = async (objectId, payload, spinner = true) => {\r\n return ApiHelper.patch(\r\n `organization/task/task_object/${objectId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteTaskObject = async (objectId, spinner = true) => {\r\n return ApiHelper.remove(\r\n `organization/task/task_object/${objectId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst fetchTaskObjectRules = async (taskId, spinner) => {\r\n return await ApiHelper.get(\r\n `/organization/task/object_detection_rule/${taskId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst createTaskObjectRules = async (taskId, payload, spinner) => {\r\n return await ApiHelper.post(\r\n `/organization/task/object_detection_rule/${taskId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteTaskObjectRules = async (params, spinner) => {\r\n return await ApiHelper.remove(\r\n `/organization/task/object_detection_rule/delete/`,\r\n spinner,\r\n params\r\n );\r\n};\r\n\r\nconst deleteMultipleObjects = async (payload, spinner = false) => {\r\n return await ApiHelper.patch(\r\n 'organization/task/object_detection_rule/bulk_delete',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateTaskObjectDetectionRule = async (ruleId, payload, spinner) => {\r\n return await ApiHelper.patch(\r\n `/organization/task/object_detection_rule/${ruleId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateTrainedTask = async (id, payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `organization/trained_task/${id}`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst stopTrainingOfTask = async (payload, spinner = true) => {\r\n return await ApiHelper.put('organization/train/stop/', payload, spinner);\r\n};\r\n\r\nconst updateCloneTask = async (payload, spinner = true) => {\r\n return await ApiHelper.patch('/generic/clone_task/', payload, spinner);\r\n};\r\n\r\nconst getTaskStaticObjectList = async (id, spinner = false) => {\r\n return await ApiHelper.get(\r\n `organization/task/list_task_objects/${id}/?is_static=${true}`,\r\n spinner\r\n );\r\n};\r\n\r\nconst getProjectorRegions = async (id, spinner = false) => {\r\n return await ApiHelper.get(`generic/list_region_json/${id}/`, spinner);\r\n};\r\n\r\nconst getTaskStepMediaObjects = async (taskId, spinner = false) => {\r\n return await ApiHelper.get(\r\n `organization/task/s3_objects/${taskId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst patchTaskLastUpdate = async (taskId) => {\r\n return await ApiHelper.patch(`organization/task/last_update/${taskId}`);\r\n};\r\n\r\nconst createRectificationSteps = async (data) => {\r\n return await ApiHelper.post(`organization/rectification_steps/`, data);\r\n};\r\n\r\nconst fetchedRectificationSteps = async (taskId) => {\r\n return await ApiHelper.get(\r\n `organization/rectification_steps/?task=${taskId}`\r\n );\r\n};\r\n\r\nconst deleteRectificationStep = async (taskId) => {\r\n return await ApiHelper.remove(`organization/rectification_steps/${taskId}`);\r\n};\r\n\r\nexport default {\r\n fetchTasks,\r\n fetchTrainedTasksByStatus,\r\n fetchTaskDetails,\r\n fetchTaskDetailsNew,\r\n fetchTaskStatus,\r\n fetchTaskPlaneObjects,\r\n fetchTaskObjects,\r\n addTaskObject,\r\n updateTaskObject,\r\n deleteTaskObject,\r\n fetchTaskObjectRules,\r\n createTaskObjectRules,\r\n deleteTaskObjectRules,\r\n updateTaskObjectDetectionRule,\r\n addTask,\r\n updateTask,\r\n deleteTask,\r\n updateTrainedTask,\r\n fetchOrganizationTasks,\r\n fetchAllTaskAdminPanel,\r\n cloneTasks,\r\n updateCloneTask,\r\n addPlaneObject,\r\n createNewPlane,\r\n getTaskStaticObjectList,\r\n deletePlaneObject,\r\n stopTrainingOfTask,\r\n getProjectorRegions,\r\n deleteMultipleObjects,\r\n getTaskStepMediaObjects,\r\n patchTaskLastUpdate,\r\n createRectificationSteps,\r\n fetchedRectificationSteps,\r\n deleteRectificationStep,\r\n};\r\n","export const kaizenOptions = [\r\n 'Station Performance (single time period)',\r\n 'Station Performance (comparison of two time periods)',\r\n 'Line Performance',\r\n 'Ergonomics',\r\n 'IoT Infrastructure',\r\n 'Retrieval-Augmented Generation',\r\n];\r\n\r\nexport const retrievalAugmentedOptions = [\r\n 'Use semantic ranker for retrieval',\r\n 'Use query-contextual summaries instead of whole documents',\r\n 'Suggest follow-up questions',\r\n];\r\n\r\nexport const extras = {\r\n examples: {\r\n items: {\r\n [kaizenOptions[0]]: [\r\n 'What are some potential bottlenecks in this process?',\r\n 'What are the main sources of waste in this process?',\r\n 'What could be better standardized in this process?',\r\n 'How can I better train my operators?',\r\n 'How can we implement poka-yoke in this process?',\r\n 'What would it look like to divide this work into two stations?',\r\n ],\r\n [kaizenOptions[1]]: [\r\n 'What are some potential bottlenecks in this process?',\r\n 'What are the main sources of waste in this process?',\r\n 'What could be better standardized in this process?',\r\n 'How can I better train my operators?',\r\n 'How can we implement poka-yoke in this process?',\r\n 'What would it look like to divide this work into two stations?',\r\n ],\r\n [kaizenOptions[2]]: [\r\n 'Draw a Current State Map for this line.',\r\n 'Can you identify bottlenecks in the line?',\r\n 'Can you draw a spaghetti diagram for this line?',\r\n 'Perform a Value-Added Analysis for the entire line.',\r\n 'What would it look like to divide station 5 into two stations?',\r\n ],\r\n [kaizenOptions[3]]: [\r\n 'What are some potential bottlenecks in this process?',\r\n 'What are the main sources of waste in this process?',\r\n 'What could be better standardized in this process?',\r\n 'How can I better train my operators?',\r\n 'How can we implement poka-yoke in this process?',\r\n 'What would it look like to divide this work into two stations?',\r\n ],\r\n [kaizenOptions[4]]: [\r\n 'What are some potential bottlenecks in this process?',\r\n 'What are the main sources of waste in this process?',\r\n 'What could be better standardized in this process?',\r\n 'How can I better train my operators?',\r\n 'How can we implement poka-yoke in this process?',\r\n 'What would it look like to divide this work into two stations?',\r\n ],\r\n [kaizenOptions[5]]: [\r\n `Can you summarize these documents?`,\r\n `Repeat the paragraphs where \"quality issues\" are discussed.`,\r\n `Are there any common challenges identified in these documents?`,\r\n `Create a word cloud from these documents.`,\r\n `Explain the key topic in this document as if you're explaining to a 12 year old?`,\r\n ],\r\n },\r\n },\r\n limitations: [\r\n 'LeanGPT models are currently in their beta version, and may generate incorrect information from time to time.',\r\n ],\r\n};\r\n\r\nexport const tempMessages = [\r\n [\r\n {\r\n type: 'image',\r\n caption: 'Random user image 1',\r\n url:\r\n 'data:image/jpeg;base64,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',\r\n },\r\n {\r\n type: 'image',\r\n caption: 'Random user image 2',\r\n url:\r\n 'data:image/jpeg;base64,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',\r\n },\r\n ],\r\n [\r\n {\r\n type: 'video',\r\n caption: 'Random video 1',\r\n url:\r\n 'https://retrocausal-training.s3.amazonaws.com/Test%20rename%20task%20by%20mudassir%20V31/Videos/1.mkv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAYWFGI2RLHJZXL6EJ%2F20230329%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20230329T001543Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=eba80420dc26592843f24c21f802fe34cf493fd97c993c07daaca0a8aa379ec9',\r\n },\r\n {\r\n type: 'video',\r\n caption: 'Random video 2',\r\n url:\r\n 'https://retrocausal-training.s3.amazonaws.com/Test%20rename%20task%20by%20mudassir%20V31/Videos/1.mkv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAYWFGI2RLHJZXL6EJ%2F20230329%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20230329T001543Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=eba80420dc26592843f24c21f802fe34cf493fd97c993c07daaca0a8aa379ec9',\r\n },\r\n ],\r\n [\r\n {\r\n type: 'text',\r\n caption: 'Random text 1',\r\n },\r\n {\r\n type: 'text',\r\n caption: 'Random text 2',\r\n },\r\n ],\r\n [\r\n {\r\n type: 'text',\r\n caption: 'Random text 3',\r\n },\r\n {\r\n type: 'text',\r\n caption: 'Random text 4',\r\n },\r\n ],\r\n];\r\n","import { deepClone } from 'src/utils/task';\r\nimport types from '../mutation-types';\r\nimport {\r\n extras,\r\n kaizenOptions,\r\n retrievalAugmentedOptions,\r\n} from 'src/config/kaizen-copilot-config';\r\n\r\nconst state = {\r\n messages: [\r\n // [\r\n // {\r\n // type: 'text',\r\n // caption: `\r\n // Here are some insights on the **NETGEAR assembly** process:\r\n // **Cycle time**: The average cycle time observed during the period was 223 seconds, which is more than double the expected cycle time of 100 seconds. This indicates that there is room for improvement in the process to reduce cycle time and increase efficiency.\r\n // **Value-add percentage**: The worker was able to add value to the product only 30.22% of the time during each cycle. This indicates that there are some non-value adding activities that are taking up a significant amount of time in the process, which need to be identified and eliminated or reduced.\r\n // **Number of cycles**: The worker was only able to finish 31% of the expected number of cycles during the period. This indicates that the worker may be facing challenges such as lack of training, tools or resources, or may be encountering bottlenecks in the process, which are preventing them from completing the work as expected.\r\n // **Cycle time distribution**: The cycle time distribution has a significant number of cycles (41 out of 96) took more than 270 seconds to complete. This indicates that there may be some specific tasks or steps in the process that are taking a long time to complete, and may need to be analyzed and optimized to improve the overall cycle time and efficiency.\r\n // The most problematic steps in the NETGEAR assembly process are steps 6, 11, 13, 14, 15, and 16, which have a high percentage of steps missed and a large standard deviation of actual completion time.\r\n // `,\r\n // is_advisor: true,\r\n // },\r\n // ],\r\n // [\r\n // {\r\n // type: 'video',\r\n // caption: 'Step 6',\r\n // url: 'tighten_top_bottom_screws.mp4',\r\n // is_advisor: true,\r\n // },\r\n // ],\r\n // [\r\n // {\r\n // type: 'image',\r\n // caption: 'Standard deviation on the step timings:',\r\n // url: 'std_dev_single_duration.png',\r\n // is_advisor: true,\r\n // },\r\n // ],\r\n // [\r\n // {\r\n // type: 'link',\r\n // caption: 'Click on the link to see the file.',\r\n // links: [\r\n // {\r\n // label: 'Process_Capability_NETGEAR_Obj_V1.xls',\r\n // value: 'Process_Capability_NETGEAR_Obj_V1.pdf',\r\n // },\r\n // {\r\n // label: 'PVC_Amedeus_plant_6_July_2019.xls',\r\n // value: 'PVC_Amedeus_plant_6_July_2019.xls',\r\n // },\r\n // {\r\n // label: 'Power_cable_Kunal_February_2020.xls',\r\n // value: 'Power_cable_Kunal_February_2020.xls',\r\n // },\r\n // {\r\n // label: 'Recycling_plastic_cabling_v5_2019.xls',\r\n // value: 'Recycling_plastic_cabling_v5_2019.xls',\r\n // },\r\n // ],\r\n // is_advisor: true,\r\n // },\r\n // ],\r\n ],\r\n kaizenOptions,\r\n retrievalAugmentedOptions,\r\n currentKaizenOption: kaizenOptions[0],\r\n selectedSheet: null,\r\n kaizenExtras: extras,\r\n};\r\n\r\nconst getters = {\r\n messages: (state) => state.messages,\r\n currentMessageIndex: (state) => state.messages.length,\r\n kaizenOptions: (state) => state.kaizenOptions,\r\n retrievalAugmentedOptions: (state) => state.retrievalAugmentedOptions,\r\n currentKaizenOption: (state) => state.currentKaizenOption,\r\n selectedSheet: (state) => state.selectedSheet,\r\n isRetrievalAugmented: (state) =>\r\n state.kaizenOptions[5] === state.currentKaizenOption,\r\n kaizenExamples: (state) =>\r\n state.kaizenExtras.examples.items[state.currentKaizenOption],\r\n kaizenLimitations: (state) => state.kaizenExtras.limitations,\r\n};\r\n\r\nconst actions = {\r\n addMessage({ commit }, payload) {\r\n commit(types.SET_MESSAGES, [...state.messages, payload]);\r\n },\r\n\r\n addMessageToSpecificIndex({ commit }, payload) {\r\n const { is_advisor, currentMessageIndex, message } = payload;\r\n const temp = [...state.messages];\r\n\r\n if (!temp[currentMessageIndex]) {\r\n temp[currentMessageIndex] = [];\r\n }\r\n\r\n temp[currentMessageIndex] = [\r\n { type: 'text', caption: message, is_advisor },\r\n ];\r\n commit(types.SET_MESSAGES, temp);\r\n },\r\n\r\n setCurrentKaizenOption({ commit }, payload) {\r\n commit(types.SET_MESSAGES, []);\r\n commit(types.SET_CURRENT_KAIZEN_OPTION, payload);\r\n },\r\n\r\n setSelectedSheet({ commit }, payload) {\r\n commit(types.SET_SELECTED_SHEET, payload);\r\n },\r\n\r\n updateKaizenExamples({ commit, state }, payload) {\r\n const temp = deepClone(state.kaizenExtras);\r\n temp.examples.items[state.currentKaizenOption] = [...payload];\r\n commit(types.SET_KAIZEN_EXTRAS, temp);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_MESSAGES](state, payload) {\r\n state.messages = payload;\r\n },\r\n [types.SET_CURRENT_KAIZEN_OPTION](state, payload) {\r\n state.currentKaizenOption = payload;\r\n },\r\n [types.SET_SELECTED_SHEET](state, payload) {\r\n state.selectedSheet = payload;\r\n },\r\n [types.SET_KAIZEN_EXTRAS](state, payload) {\r\n state.kaizenExtras = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","","import { render } from \"./no-data-icon.svg?vue&type=template&id=086c5359\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import apiHelper from './index';\r\n\r\nconst getPreviousReleases = async currentPage => {\r\n return await apiHelper.get(\r\n `binary_deployment/previous_releases/?page=${currentPage}`\r\n );\r\n};\r\n\r\nconst downloadBinaries = async (\r\n running_environment,\r\n branch,\r\n version_number,\r\n isLatestBranch\r\n) => {\r\n return await apiHelper.get(\r\n `binary_deployment/download_binaries/?environment=${running_environment}&branch=${branch}&version=${version_number}&isLatestBranch=${isLatestBranch}`\r\n );\r\n};\r\n\r\nconst getLatestDeployment = async env => {\r\n return await apiHelper.get(`binary_deployment/${env}/latest_deployment/`);\r\n};\r\n\r\nconst getLatestDeployableBranch = async () => {\r\n return await apiHelper.get(`binary_deployment/get_latest_deployable_branch/`);\r\n};\r\n\r\nconst deleteBranchFromAWS = async (running_environment, branch, id) => {\r\n return await apiHelper.remove(\r\n `binary_deployment/delete_branch/?environment=${running_environment}&branch=${branch}&id=${id}`\r\n );\r\n};\r\n\r\nconst moveBranchToDev = async (version, env) => {\r\n return await apiHelper.patch(`binary_deployment/move_binaries_to_prod/`, {\r\n version: version,\r\n environment: env\r\n });\r\n};\r\n\r\nconst abandonBranch = async (version, payload) => {\r\n return await apiHelper.patch(`binary_deployment/${version}/`, payload);\r\n};\r\n\r\nexport default {\r\n getPreviousReleases,\r\n downloadBinaries,\r\n getLatestDeployment,\r\n getLatestDeployableBranch,\r\n deleteBranchFromAWS,\r\n moveBranchToDev,\r\n abandonBranch\r\n};\r\n","","import { render } from \"./info-circle-icon.svg?vue&type=template&id=7734ef01\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import types from '../mutation-types';\r\nimport TaskObjectService from 'src/services/taskObjectsMarking';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = {\r\n loadingImages: false,\r\n imagesForAnnotation: [],\r\n totalImagesForAnnotation: 0,\r\n prevPageLastImageObj: null,\r\n prevGroups: null,\r\n prevPolygons: null\r\n};\r\n\r\nconst getters = {\r\n loadingImages: state => state.loadingImages,\r\n imagesForAnnotation: state => state.imagesForAnnotation,\r\n totalImagesForAnnotation: state => state.totalImagesForAnnotation,\r\n prevPageLastImageObj: state => state.prevPageLastImageObj,\r\n prevGroups: state => state.prevGroups,\r\n prevPolygons: state => state.prevPolygons\r\n};\r\n\r\nconst actions = {\r\n async loadImagesForAnnotation({ commit, dispatch }, payload) {\r\n commit(types.SET_ANNOTATION_IMAGES_LOADING, true);\r\n const [error, data] = await TaskObjectService.getObjects(payload);\r\n commit(types.SET_ANNOTATION_IMAGES_LOADING, false);\r\n if (error) {\r\n toast.error('error in getting images');\r\n return;\r\n }\r\n commit(types.SET_IMAGES_FOR_ANNOTATION, [...data.results]);\r\n commit(types.SET_TOTAL_ANNOTATION_IMAGES, data.count);\r\n },\r\n setAnnotationImagesList({ commit }, payload) {\r\n commit(types.SET_IMAGES_FOR_ANNOTATION, [...payload]);\r\n },\r\n setAnnotationImagesListCount({ commit }, payload) {\r\n commit(types.SET_TOTAL_ANNOTATION_IMAGES, payload);\r\n },\r\n setListLastImageObject({ commit, state }) {\r\n const obj = state.imagesForAnnotation.at(-1);\r\n commit(types.SET_PREV_PAGE_LAST_IMAGE_OBJ, obj);\r\n },\r\n setPrevGroups({ commit }, payload) {\r\n commit(types.SET_PREV_GROUPS, payload);\r\n },\r\n setPrevPolygons({ commit }, payload) {\r\n commit(types.SET_PREV_POLYGONS, payload);\r\n },\r\n resetAnnotationImagesList({commit,dispatch}){\r\n dispatch('setAnnotationImagesList',[])\r\n dispatch('setAnnotationImagesListCount',0)\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_ANNOTATION_IMAGES_LOADING](state, payload) {\r\n state.loadingImages = payload;\r\n },\r\n [types.SET_IMAGES_FOR_ANNOTATION](state, payload) {\r\n state.imagesForAnnotation = payload;\r\n },\r\n [types.SET_TOTAL_ANNOTATION_IMAGES](state, payload) {\r\n state.totalImagesForAnnotation = payload;\r\n },\r\n [types.SET_PREV_PAGE_LAST_IMAGE_OBJ](state, payload) {\r\n state.prevPageLastImageObj = payload;\r\n },\r\n [types.SET_PREV_GROUPS](state, payload) {\r\n state.prevGroups = payload;\r\n },\r\n [types.SET_PREV_POLYGONS](state, payload) {\r\n state.prevPolygons = payload;\r\n }\r\n};\r\n\r\nexport default {\r\n getters,\r\n actions,\r\n mutations,\r\n state\r\n};\r\n","import types from '../mutation-types';\r\nimport httpClient from '../../service/httpClient';\r\nimport { useToast } from 'vue-toastification';\r\nimport OrganizationService from 'src/services/organization';\r\n\r\nconst toast = useToast();\r\nconst logoUrl = 'https://retrocausal-video-thumbnails.s3.us-east-2.amazonaws.com/logos/'\r\n\r\nconst state = {\r\n organizations: [],\r\n isLoadingOrganizations: false,\r\n organizationList: [],\r\n organizationCount: 0,\r\n currentOrgPage: 1,\r\n};\r\n\r\nconst getters = {\r\n organizations: state => state.organizations,\r\n isLoadingOrganizations: state => state.isLoadingOrganizations,\r\n currentOrgPage: state => state.currentOrgPage,\r\n organizationList: state => state.organizationList,\r\n organizationCount: state => state.organizationCount\r\n};\r\n\r\nconst actions = {\r\n async getOrganizations({ commit }) {\r\n commit(types.SET_IS_LOADING_ORGANIZATIONS, true);\r\n const list = await httpClient.get('organization/', false);\r\n commit(types.SET_IS_LOADING_ORGANIZATIONS, false);\r\n commit(types.SET_ORGANIZATION_LIST, list);\r\n },\r\n\r\n async getPaginatedOrganizations({ commit, state }, searchValue) {\r\n commit(types.SET_IS_LOADING_ORGANIZATIONS, true);\r\n const { currentOrgPage } = state;\r\n\r\n let query = `page=${currentOrgPage}`;\r\n if (searchValue)\r\n query += `&search=${searchValue}`;\r\n const [error, data] = await OrganizationService.getPaginatedOrganizations(query);\r\n\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const list = data.results.map(org => ({ ...org, logoImage: logoUrl + org.Org_name + '.jpg' }));\r\n commit(types.SET_ORG_TOTAL_COUNT, data.count);\r\n commit(types.SET_ORG_PAGINATED_LIST, list);\r\n return data;\r\n },\r\n\r\n async addNewOrg(context, payload) {\r\n const requestData = JSON.stringify(payload);\r\n return await OrganizationService.addNewOrganization(requestData)\r\n },\r\n\r\n handlePageChange({ commit }, payload) {\r\n commit(types.SET_ORG_PAGE, payload);\r\n },\r\n\r\n async updateSingleOrg(context, payload) {\r\n const { id, ...resData } = payload;\r\n const requestData = JSON.stringify(resData);\r\n const [error] = await OrganizationService.updateOrganization(id, requestData)\r\n if (error) {\r\n console.log('error: ', error)\r\n return 0\r\n }\r\n return 1\r\n },\r\n\r\n async deleteSingleOrg(context, payload) {\r\n const [error] = await OrganizationService.deleteOrganization(payload)\r\n if (error) {\r\n toast.error('Error occured while deleting the organization!');\r\n return;\r\n }\r\n },\r\n\r\n async refreshVideos({ commit, dispatch }, payload) {\r\n const url = `cloud_source_labeling/refresh_urls_for_trainig_videos/?Org_name=${payload}`;\r\n const response = await httpClient.getData(url);\r\n return response;\r\n },\r\n\r\n async switchOrganization({ commit }, payload) {\r\n const [error, data] = await OrganizationService.switchOrganization(payload);\r\n if (error) {\r\n toast.error(error?.response.data.error);\r\n return false;\r\n }\r\n toast.success('User switched successfully');\r\n return true;\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_ORGANIZATION_LIST](state, payload) {\r\n state.organizations = payload;\r\n },\r\n\r\n [types.SET_ORG_PAGINATED_LIST](state, payload) {\r\n state.organizationList = payload;\r\n },\r\n\r\n [types.SET_ORG_TOTAL_COUNT](state, payload) {\r\n state.organizationCount = payload;\r\n },\r\n\r\n [types.SET_IS_LOADING_ORGANIZATIONS](state, payload) {\r\n state.isLoadingOrganizations = payload;\r\n },\r\n\r\n [types.SET_ORG_PAGE](state, payload) {\r\n state.currentOrgPage = payload;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n};\r\n","export default {\r\n devices: 'devices',\r\n device_status: 'device_status',\r\n web_rtc_stream_offer: 'webrtc_stream_offer',\r\n device_setting: 'device_settings',\r\n discover_devices_opcua: 'discover_devices_opcua',\r\n unsubscribe: 'unsubscribe',\r\n subscribe: 'subscribe',\r\n};\r\n","import { axiosInstance } from 'src/services/index';\r\nimport store from '../../store/index';\r\nimport { useToast } from 'vue-toastification';\r\nimport * as configuration from './httpRequestConfig';\r\n\r\nexport function login(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n return axios\r\n .post(hostUrl + baseUrl, data, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n store.dispatch('turnOffSpinner');\r\n if (log) {\r\n // console.log(\"response\");\r\n // console.log(response);\r\n }\r\n return response;\r\n })\r\n .catch((error) => {\r\n if (alert) {\r\n useToast().error(error.response.data.non_field_errors[0]);\r\n }\r\n store.dispatch('turnOffSpinner');\r\n return 'error';\r\n });\r\n}\r\n\r\nexport function register(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n return axios\r\n .post(hostUrl + baseUrl, data, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage);\r\n }\r\n // \"Form Submitted!\"\r\n\r\n store.dispatch('turnOffSpinner');\r\n\r\n if (log) {\r\n // console.log(\"response\");\r\n // console.log(response);\r\n }\r\n return response;\r\n })\r\n .catch((error) => {\r\n if (alert) {\r\n if (error.response) {\r\n useToast().error(error.response.data.email[0]);\r\n } else if (error.request) {\r\n useToast().error(error.request);\r\n } else {\r\n useToast().error(error.message);\r\n }\r\n }\r\n store.dispatch('turnOffSpinner');\r\n return error;\r\n });\r\n}\r\n","import { axiosInstance } from 'src/services/index';\r\nimport store from './../../store/index';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nlet axios = axiosInstance;\r\n\r\nexport function get(\r\n baseUrl,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n return axios\r\n .get(hostUrl + baseUrl, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // turn response format into a list\r\n Object.keys(response).forEach((value, key) => {\r\n list.push({\r\n ...response[value],\r\n });\r\n });\r\n\r\n // return a list\r\n return list;\r\n })\r\n .catch((error) => {\r\n console.log('error', error.response);\r\n store.dispatch('turnOffSpinner');\r\n if (!error.response) return 'error';\r\n if (error.response.status === 403) return error.response.status;\r\n return 'error';\r\n });\r\n}\r\n\r\nexport function getData(\r\n baseUrl,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n return axios\r\n .get(hostUrl + baseUrl, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n // turn of the spinner\r\n if (spinner) {\r\n store.dispatch('turnOffSpinner');\r\n }\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((error) => {\r\n console.log('error', error.response);\r\n store.dispatch('turnOffSpinner');\r\n if (error.response.status === 403) return error.response.status;\r\n return 'error';\r\n });\r\n}\r\n\r\nexport function post(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n return axios\r\n .post(hostUrl + baseUrl, data, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage, { timeout: 3000 });\r\n }\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((error) => {\r\n store.dispatch('turnOffSpinner');\r\n if (alert) {\r\n if (error?.response?.data?.msg || error[0] || errorMessage) {\r\n console.log(\"error catch: \",error.response.data);\r\n useToast().error(\r\n error?.response?.data?.msg || error[0] || errorMessage,\r\n { timeout: 3000 }\r\n );\r\n } else if (error.request) {\r\n useToast().error(error.request, { timeout: 3000 });\r\n } else {\r\n useToast().error(error.message, { timeout: 3000 });\r\n }\r\n }\r\n return error?.response?.data || 'error';\r\n });\r\n}\r\n\r\n//==============================================================================\r\nexport function startTraining(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage\r\n) {\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n return axios\r\n .post(hostUrl + baseUrl, data, config)\r\n .then((res) => res.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage, { timeout: 3000 });\r\n }\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n console.log('response data');\r\n console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((err) => {\r\n useToast().error(err.response.data[0], { timeout: 3000 });\r\n store.dispatch('turnOffSpinner');\r\n return 'error';\r\n });\r\n}\r\n//==============================================================================\r\n\r\nexport function put(\r\n baseUrl,\r\n id,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n return axios\r\n .put(hostUrl + baseUrl + id, data, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage, { timeout: 3000 });\r\n }\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((error) => {\r\n if (alert) {\r\n useToast().error(errorMessage, { timeout: 3000 });\r\n }\r\n store.dispatch('turnOffSpinner');\r\n return 'error';\r\n });\r\n}\r\n\r\nexport function patch(\r\n baseUrl,\r\n id,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n return axios\r\n .patch(hostUrl + baseUrl + id, data, config)\r\n .then((response) => response.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage, { timeout: 3000 });\r\n }\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((error) => {\r\n console.log('error');\r\n if (alert) {\r\n useToast().error(error?.response?.data?.detail || errorMessage, {\r\n timeout: 3000,\r\n });\r\n }\r\n store.dispatch('turnOffSpinner');\r\n return 'error';\r\n });\r\n}\r\n\r\nexport function remove(\r\n baseUrl,\r\n id,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n const list = [];\r\n\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n return axios\r\n .delete(hostUrl + baseUrl + id, { ...config })\r\n .then((response) => response.data)\r\n .then((response) => {\r\n if (alert) {\r\n useToast().success(successMessage, { timeout: 3000 });\r\n }\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n // console.log(\"response data\");\r\n // console.log(response);\r\n }\r\n\r\n // return response\r\n return response;\r\n })\r\n .catch((error) => {\r\n if (alert) {\r\n useToast().error(error.response?.data?.detail || errorMessage, {\r\n timeout: 3000,\r\n });\r\n }\r\n store.dispatch('turnOffSpinner');\r\n return 'error';\r\n });\r\n}\r\n","import { axiosInstance } from 'src/services/index';\r\nimport store from './../../store/index';\r\nimport { useToast } from 'vue-toastification';\r\nlet axios = axiosInstance;\r\nexport function upload(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n) {\r\n // if spinner is true\r\n if (spinner) {\r\n store.dispatch('turnOnSpinner');\r\n }\r\n\r\n store.dispatch('turnOnSpinner');\r\n return axios\r\n .post(hostUrl + baseUrl, data, config)\r\n .then((response) => {\r\n // if (alert) {\r\n // useToast().success(successMessage);\r\n // }\r\n\r\n // turn of the spinner\r\n store.dispatch('turnOffSpinner');\r\n\r\n // if log is true\r\n if (log) {\r\n console.log('response data');\r\n console.log(response);\r\n }\r\n\r\n return response;\r\n })\r\n .catch((e) => showError(e, errorMessage, alert));\r\n}\r\n\r\nfunction showError(e, errorMessage, alert) {\r\n store.dispatch('turnOffSpinner');\r\n if (e.message && e.response?.status !== 409) {\r\n useToast().error(e.message);\r\n return 'error';\r\n }\r\n if (alert) {\r\n if (e.response?.status === 409 || e.response?.status === 404) {\r\n try {\r\n const msg =\r\n Object.keys(e.response.data)[0] +\r\n ': ' +\r\n Object.values(e.response.data)[0].join(',');\r\n useToast().error(msg);\r\n } catch (error) {\r\n useToast().error(errorMessage);\r\n }\r\n } else {\r\n useToast().error(errorMessage);\r\n }\r\n }\r\n return 'error';\r\n}\r\n","import * as AUTH from './http/httpAuthFunction';\r\nimport * as configuration from './http/httpRequestConfig';\r\nimport * as CRUD from './http/httpCrudFunction';\r\nimport * as httpFunction from './http/httpFunction';\r\n\r\nexport function getHostUrl() {\r\n var hostURL = localStorage.getItem('hostURL');\r\n if (hostURL == null) {\r\n localStorage.setItem('hostURL', configuration.prodHostUrl);\r\n hostURL = localStorage.getItem('hostURL');\r\n }\r\n // return configuration.testHostUrl;\r\n // return configuration.localHostUrl;\r\n return hostURL;\r\n}\r\n\r\nconst hostUrl = getHostUrl();\r\n\r\nexport default {\r\n get(\r\n baseUrl,\r\n spinner = true,\r\n log = true,\r\n alert = false,\r\n successMessage = '',\r\n errorMessage,\r\n host = hostUrl\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.get(\r\n baseUrl,\r\n host,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n getData(\r\n baseUrl,\r\n spinner = true,\r\n log = true,\r\n alert = false,\r\n successMessage = '',\r\n errorMessage,\r\n hostURL = hostUrl\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.getData(\r\n baseUrl,\r\n hostURL,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n async post(\r\n baseUrl,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data created successfully!',\r\n errorMessage = 'Error',\r\n host = hostUrl\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return await CRUD.post(\r\n baseUrl,\r\n data,\r\n host,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n startTraining(\r\n baseUrl,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data created successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.startTraining(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n put(\r\n baseUrl,\r\n id,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data updated successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.put(\r\n baseUrl,\r\n id,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n patch(\r\n baseUrl,\r\n id,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data updated successfully!',\r\n errorMessage = 'Error',\r\n hostURL = hostUrl\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.patch(\r\n baseUrl,\r\n id,\r\n data,\r\n hostURL,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n delete(\r\n baseUrl,\r\n id,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data deleted successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getAuthConfig();\r\n return CRUD.remove(\r\n baseUrl,\r\n id,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n upload(\r\n baseUrl,\r\n data,\r\n object,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Data uploaded successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getUploadConfig(object);\r\n return httpFunction.upload(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n login(\r\n baseUrl,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Logged in successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getConfig();\r\n return AUTH.login(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n register(\r\n baseUrl,\r\n data,\r\n spinner = true,\r\n log = true,\r\n alert = true,\r\n successMessage = 'Form submitted successfully!',\r\n errorMessage = 'Error'\r\n ) {\r\n const config = configuration.getConfig();\r\n return AUTH.register(\r\n baseUrl,\r\n data,\r\n hostUrl,\r\n config,\r\n spinner,\r\n log,\r\n alert,\r\n successMessage,\r\n errorMessage\r\n );\r\n },\r\n\r\n logout() {\r\n localStorage.clear();\r\n this.$router.push('/login');\r\n }\r\n};\r\n","import { roles } from 'src/config/roles-config.js';\r\n\r\nexport default [\r\n {\r\n path: '/labeler',\r\n name: 'Labeler Layout',\r\n component: () => import('src/components/core/LayoutV2.vue'),\r\n children: [\r\n {\r\n path: 'tasks',\r\n name: 'Tasks Requested',\r\n component: () =>\r\n import('src/components/labeler-panel/pages/tasks/Index.vue'),\r\n meta: { authorize: [roles.labeler] },\r\n },\r\n {\r\n path: 'setting',\r\n name: 'Profile Setting',\r\n component: () =>\r\n import(\r\n 'src/components/labeler-panel/pages/profile-setting/Index.vue'\r\n ),\r\n meta: { authorize: [roles.labeler] },\r\n },\r\n {\r\n path: 'videos/:organization/:taskName/:taskId',\r\n name: 'Videos List',\r\n props: true,\r\n component: () =>\r\n import('src/components/labeler-panel/pages/VideosList/Index.vue'),\r\n meta: { authorize: [roles.labeler] },\r\n },\r\n ],\r\n },\r\n];\r\n","import types from '../mutation-types';\r\nimport cycleTypes from '../../config/cycle-type-config';\r\nimport dateHelper from 'src/components/shared/Helpers/dateHelper';\r\nimport TelemetryService from \"@/services/telemetry\";\r\n\r\nconst state = {\r\n selectedCycleType: cycleTypes['All Cycles'],\r\n cycleTypes: cycleTypes,\r\n isFetchingCycles: false,\r\n isFetchingTrace: false,\r\n showCompareAnalytics: false,\r\n dateRangeForComparison: [dateHelper._getDate(), dateHelper._getDate()],\r\n isFetchingAnalyticsForComparison: false,\r\n isFetchingMetaData: false,\r\n metaData: [],\r\n};\r\n\r\nconst getters = {\r\n cycleTypes: state => state.cycleTypes,\r\n selectedCycleType: state => state.selectedCycleType,\r\n isFetchingCycles: state => state.isFetchingCycles,\r\n isFetchingTrace: state => state.isFetchingTrace,\r\n showCompareAnalytics: state => state.showCompareAnalytics,\r\n dateRangeForComparison: state => state.dateRangeForComparison,\r\n isFetchingAnalyticsForComparison: state =>\r\n state.isFetchingAnalyticsForComparison,\r\n isFetchingMetaData: state => state.isFetchingMetaData,\r\n metaData: state => state.metaData,\r\n};\r\n\r\nconst actions = {\r\n setSelectedCycleType({ commit }, payload) {\r\n commit(types.SET_SELECTED_CYCLE_TYPE, payload);\r\n },\r\n\r\n setIsFetchingCycles({ commit }, payload) {\r\n commit(types.SET_IS_FETCHING_CYCLES, payload);\r\n },\r\n\r\n setIsFetchingMetaData({ commit }, payload) {\r\n commit(types.SET_IS_FETCHING_META_DATA, payload);\r\n },\r\n\r\n async setMetaData({commit}, payload) {\r\n commit(types.SET_IS_FETCHING_META_DATA, true);\r\n const [error, data] = await TelemetryService.fetchMetaData(\r\n payload\r\n );\r\n commit(types.SET_IS_FETCHING_META_DATA, false);\r\n if (error) {\r\n console.log({error});\r\n return;\r\n }\r\n commit(types.SET_META_DATA, data);\r\n },\r\n\r\n setIsFetchingTrace({ commit }, payload) {\r\n commit(types.SET_IS_FETCHING_TRACE, payload);\r\n },\r\n\r\n setShowCompareAnalytics({ commit }, payload) {\r\n commit(types.SHOW_COMPARE_ANALYTICS, payload);\r\n },\r\n setDateRangeForComparison({ commit }, payload) {\r\n commit(types.SET_DATE_RANGE_FOR_COMPARISON, payload);\r\n },\r\n setIsFetchingAnalyticsForComparison({ commit }, payload) {\r\n commit(types.SET_IS_FETCHING_ANALYTICS_FOR_COMPARISON, payload);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_SELECTED_CYCLE_TYPE](state, payload) {\r\n state.selectedCycleType = payload;\r\n },\r\n [types.SET_IS_FETCHING_CYCLES](state, payload) {\r\n state.isFetchingCycles = payload;\r\n },\r\n [types.SET_IS_FETCHING_META_DATA](state, payload) {\r\n state.isFetchingMetaData = payload;\r\n },\r\n [types.SET_META_DATA](state, payload) {\r\n state.metaData = payload;\r\n },\r\n [types.SET_IS_FETCHING_TRACE](state, payload) {\r\n state.isFetchingTrace = payload;\r\n },\r\n [types.SHOW_COMPARE_ANALYTICS](state, payload) {\r\n state.showCompareAnalytics = payload;\r\n },\r\n [types.SET_DATE_RANGE_FOR_COMPARISON](state, payload) {\r\n state.dateRangeForComparison = payload;\r\n },\r\n [types.SET_IS_FETCHING_ANALYTICS_FOR_COMPARISON](state, payload) {\r\n state.isFetchingAnalyticsForComparison = payload;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n};\r\n","import types from '../mutation-types';\r\n\r\nconst getters = {\r\n fcmToken: (state) => state.fcmToken,\r\n};\r\n\r\nconst actions = {\r\n async setFCMToken({ commit }, payload) {\r\n commit(types.SET_FCM_TOKEN, payload);\r\n localStorage.setItem('fcmToken', payload);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_FCM_TOKEN](state, token) {\r\n state.fcmToken = token;\r\n },\r\n};\r\n\r\nconst state = {\r\n fcmToken: localStorage.getItem('fcmToken'),\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import camelCase from 'lodash.camelcase';\r\n// eslint-disable-next-line no-undef\r\nconst requireModule = require.context('.', false, /\\.js$/); // Get js files inside modules folder\r\nconst modules = {};\r\n\r\nrequireModule.keys().forEach(fileName => {\r\n // Avoid the index.js file\r\n if (fileName === './index.js') return;\r\n\r\n const moduleName = camelCase(fileName.replace(/(\\.\\/|\\.js)/g, ''));\r\n modules[moduleName] = requireModule(fileName).default;\r\n});\r\n\r\nexport default modules;\r\n","import apiHelper from './index';\r\nimport { getAuthConfig } from './config';\r\n\r\nasync function getAllDepartmentsOfOrg(orgName, spinner = true) {\r\n return await apiHelper.get(\r\n 'organization/' + orgName + '/department/',\r\n spinner\r\n );\r\n}\r\n\r\nasync function addNewOrganization(payload) {\r\n return await apiHelper.post('organization/', payload)\r\n}\r\n\r\nasync function updateOrganization(orgName, payload) {\r\n return await apiHelper.patch(`organization/${orgName}/`, payload)\r\n}\r\n\r\nasync function deleteOrganization(orgName) {\r\n return await apiHelper.remove(`organization/${orgName}/`)\r\n}\r\n\r\nasync function createDepartment(orgName, departName, spinner = true) {\r\n return await apiHelper.post('organization/' + orgName + '/department/', {\r\n name: departName\r\n });\r\n}\r\n\r\nasync function switchOrganization(payload) {\r\n return await apiHelper.patch(\r\n `organization/organization-switch`,\r\n payload,\r\n false\r\n );\r\n}\r\n\r\nconst switchUser = async (userEmail, spinner = true) => {\r\n return await apiHelper.patch(\r\n `organization/organization-switch/${userEmail}/`,\r\n spinner,\r\n getAuthConfig()\r\n );\r\n};\r\n\r\nasync function createKaizenBucket(payload) {\r\n return await apiHelper.post('organization/create_kaizen_bucket', payload);\r\n}\r\n\r\nasync function getPaginatedOrganizations(query, spinner = true) {\r\n return await apiHelper.get(\r\n 'organization/get_organizations?' + query,\r\n spinner\r\n );\r\n}\r\n\r\nexport default {\r\n getAllDepartmentsOfOrg,\r\n createDepartment,\r\n switchOrganization,\r\n createKaizenBucket,\r\n switchUser,\r\n getPaginatedOrganizations,\r\n addNewOrganization,\r\n updateOrganization,\r\n deleteOrganization\r\n};\r\n","const requireRoute = require.context('.', false, /\\.js$/); // Get js files inside routes folder\r\nconst routes = [];\r\n\r\nrequireRoute.keys().forEach((fileName) => {\r\n // Avoid the index.js file\r\n if (fileName === './index.js') {\r\n return;\r\n }\r\n const route = requireRoute(fileName).default;\r\n routes.push(...route);\r\n});\r\n\r\nexport default routes;\r\n","import { roles } from 'src/config/roles-config.js';\r\n\r\nexport default [\r\n {\r\n path: '/user',\r\n name: 'User Layout',\r\n component: () => import('src/components/core/LayoutV2.vue'),\r\n children: [\r\n {\r\n path: 'temp',\r\n name: 'Temp',\r\n component: () =>\r\n import(\r\n 'src/components/user-panel/pages/process/ObjectDetection/FileUploader.vue'\r\n ),\r\n meta: { authorize: [roles.user, roles.org_user] },\r\n },\r\n {\r\n path: 'home',\r\n name: 'Home',\r\n component: () =>\r\n import('src/components/user-panel/pages/home-page/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'process',\r\n name: 'Define Operation',\r\n component: () =>\r\n import('src/components/user-panel/pages/process/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'record',\r\n name: 'Record Training Set',\r\n component: () =>\r\n import('src/components/user-panel/pages/RecordData/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'train',\r\n name: 'Train Model',\r\n component: () =>\r\n import('src/components/user-panel/pages/train-model/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'deploy',\r\n name: 'Deploy Model',\r\n component: () =>\r\n import('src/components/user-panel/pages/DeployModel/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'models',\r\n name: 'Model Versions',\r\n component: () =>\r\n import('src/components/user-panel/pages/model-versions/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'tasks',\r\n name: 'Tasks',\r\n component: () =>\r\n import('src/components/user-panel/pages/tasks/TaskList'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'devices',\r\n name: 'Device',\r\n component: () =>\r\n import('src/components/user-panel/pages/devices/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n children: [\r\n {\r\n path: '',\r\n name: 'Devices',\r\n component: () =>\r\n import('src/components/user-panel/pages/devices/MainPage.vue'),\r\n meta: {\r\n authorize: [roles.user, roles.org_user, roles.support_user],\r\n },\r\n },\r\n {\r\n path: ':id',\r\n name: 'DeviceDetail',\r\n component: () =>\r\n import(\r\n 'src/components/user-panel/pages/devices/DeviceDetailPage/DeviceDetailPage.vue'\r\n ),\r\n meta: {\r\n authorize: [roles.user, roles.org_user, roles.support_user],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'opc',\r\n name: 'OPC',\r\n component: () =>\r\n import(\r\n 'src/components/user-panel/pages/IoT/OPCConnectionMenuBar.vue'\r\n ),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'cameras',\r\n name: 'Cameras',\r\n component: () =>\r\n import('src/components/user-panel/pages/RemoteDevices/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'analytics',\r\n name: 'Analytics',\r\n component: () =>\r\n import('src/components/user-panel/pages/analytics/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.analytics_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n {\r\n path: 'line-analytics',\r\n name: 'Line Analytics',\r\n component: () =>\r\n import('src/components/user-panel/pages/LineAnalytics/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.analytics_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n {\r\n path: 'trace/:traceId?',\r\n name: 'Trace',\r\n component: () =>\r\n import('src/components/user-panel/pages/trace/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.analytics_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n {\r\n path: 'org-users',\r\n name: 'Users',\r\n component: () =>\r\n import('src/components/user-panel/pages/Users/Index.vue'),\r\n meta: { authorize: [roles.user, roles.support_user] },\r\n },\r\n {\r\n path: 'setting',\r\n name: 'Profile Settings',\r\n component: () =>\r\n import('src/components/user-panel/pages/profile-setting/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'user-manual',\r\n name: 'User Manuals',\r\n component: () =>\r\n import('src/components/user-panel/pages/user-manuals/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.doc_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n {\r\n path: 'fundamentals',\r\n name: 'App Fundamentals',\r\n component: () =>\r\n import('src/components/user-panel/pages/app-fundamental/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.doc_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n {\r\n path: 'add-device',\r\n name: 'Add Device',\r\n component: () =>\r\n import('src/components/user-panel/pages/AddDevice/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'label-data',\r\n name: 'Label Training Set',\r\n component: () =>\r\n import('src/components/user-panel/pages/LabelData/Index.vue'),\r\n meta: { authorize: [roles.user, roles.org_user, roles.support_user] },\r\n },\r\n {\r\n path: 'issue-center',\r\n name: 'Issue Center',\r\n component: () =>\r\n import('src/components/user-panel/pages/obeya-room/Index.vue'),\r\n meta: {\r\n authorize: [\r\n roles.user,\r\n roles.org_user,\r\n roles.analytics_user,\r\n roles.support_user,\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n","const types = {\r\n SET_TASK_OBJECT_LIST: \"SET_TASK_OBJECT_LIST\"\r\n}\r\n\r\nconst state = {\r\n taskObjectList: []\r\n}\r\n\r\nconst getters = {\r\n taskObjectList: (state) => state.taskObjectList\r\n}\r\n\r\nconst actions = {\r\n setTaskObjectList({commit}, payload){\r\n commit(types.SET_TASK_OBJECT_LIST, payload)\r\n },\r\n}\r\n\r\nconst mutations = {\r\n [types.SET_TASK_OBJECT_LIST](state, payload){\r\n state.taskObjectList = payload\r\n }\r\n}\r\n\r\nexport default {\r\n state, getters, actions, mutations\r\n}","export default {\r\n currentRoute(state) {\r\n return state.currentRoute;\r\n },\r\n routerConfig(state) {\r\n return state.routeDetail;\r\n },\r\n getTaskId(state) {\r\n return state.taskId;\r\n },\r\n getSidebarState(state) {\r\n return state.sidebar;\r\n },\r\n getTheme(state) {\r\n return state.theme;\r\n },\r\n currentObject(state) {\r\n return state.currentObject;\r\n },\r\n isTourRunning(state) {\r\n return state.isTourRunning;\r\n },\r\n prevMetaData(state) {\r\n return state.prevMetaData;\r\n },\r\n totalFrames(state) {\r\n return state.totalFrames;\r\n },\r\n // frameStepSize(state) {\r\n // return state.frameStepSize;\r\n // },\r\n};\r\n","export default {\r\n toggleSpinner(state, value) {\r\n state.spinner = value;\r\n },\r\n\r\n changeRoute(state, value) {\r\n state.currentRoute = value;\r\n },\r\n changeRouteConfig(state, object) {\r\n state.routeDetail = {\r\n ...object,\r\n };\r\n },\r\n\r\n setTaskId(state, value) {\r\n state.taskId = value;\r\n },\r\n\r\n updateSidebarState(state, value) {\r\n state.sidebar = value;\r\n },\r\n\r\n updateTheme(state, value) {\r\n state.theme = value;\r\n },\r\n\r\n setCurrentObject(state, obj) {\r\n state.currentObject = obj;\r\n },\r\n\r\n startTour(state, value) {\r\n state.isTourRunning = value;\r\n },\r\n\r\n stopTour(state, value) {\r\n state.isTourRunning = value;\r\n },\r\n\r\n resetState(state) {\r\n state.taskId = null;\r\n },\r\n\r\n setPrevMetaData(state, value) {\r\n state.prevMetaData = value;\r\n },\r\n\r\n setTotalFrames(state, value) {\r\n state.totalFrames = value;\r\n },\r\n};\r\n","export default {\r\n turnOnSpinner(context) {\r\n context.commit('toggleSpinner', true);\r\n },\r\n\r\n turnOffSpinner(context) {\r\n context.commit('toggleSpinner', false);\r\n },\r\n changeRoute(context, value) {\r\n context.commit('changeRoute', value);\r\n },\r\n changeRouteConfig(context, object, self) {\r\n context.commit('changeRouteConfig', object, self);\r\n },\r\n setTaskId(context, value) {\r\n context.commit('setTaskId', value);\r\n },\r\n openSidebar(context) {\r\n context.commit('updateSidebarState', true);\r\n },\r\n closeSidebar(context) {\r\n context.commit('updateSidebarState', false);\r\n },\r\n\r\n updateSidebar(context, value) {\r\n context.commit('updateSidebarState', value);\r\n },\r\n\r\n setLightTheme(context) {\r\n context.commit('updateTheme', true);\r\n },\r\n setDarkTheme(context) {\r\n context.commit('updateTheme', false);\r\n },\r\n setCurrentObject(context, obj) {\r\n context.commit('setCurrentObject', obj);\r\n },\r\n startTour(context) {\r\n context.commit('startTour', true);\r\n },\r\n stopTour(context) {\r\n context.commit('stopTour', false);\r\n },\r\n resetState(context) {\r\n context.commit('resetState');\r\n },\r\n setPrevMetaData(context, value) {\r\n context.commit('setPrevMetaData', value);\r\n },\r\n setTotalFrames(context, value) {\r\n context.commit('setTotalFrames', value);\r\n },\r\n // setFrameStepSize(context, value) {\r\n // context.commit('setFrameStepSize', value);\r\n // },\r\n};\r\n","import { createStore } from 'vuex';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\nimport actions from './actions';\r\nimport modules from 'src/store/modules';\r\n\r\nexport default createStore({\r\n state() {\r\n return {\r\n spinner: false,\r\n sidebar: false,\r\n theme: true,\r\n currentRoute: [],\r\n currentObject: null,\r\n isTourRunning: false,\r\n routeDetail: {\r\n prevRouter: null,\r\n nextRoute: null,\r\n },\r\n taskId: null,\r\n prevMetaData: null,\r\n // frameStepSize: 10,\r\n totalFrames: 0,\r\n };\r\n },\r\n\r\n getters: getters,\r\n mutations: mutations,\r\n actions: actions,\r\n\r\n modules: {\r\n ...modules,\r\n },\r\n});\r\n","var map = {\n\t\"./admin.js\": \"ce1a\",\n\t\"./auth.js\": \"831c\",\n\t\"./index.js\": \"32bb\",\n\t\"./labeler.js\": \"2225\",\n\t\"./user.js\": \"33f5\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"445b\";","import apiHelper from './index';\r\n\r\nasync function getObjects(params, spinner = false) {\r\n const { task, page = 1, pageSize, ordering } = params;\r\n return await apiHelper.get(\r\n `organization/task/fetch_all_annotation_image_list/${task}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getObjectsPaginated(params, spinner = false) {\r\n const { task, page = 1, pageSize, ordering } = params;\r\n return await apiHelper.get(\r\n `organization/task/annotation_image_list/${task}/?page=${page}&page_size=${pageSize}&ordering=${ordering}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getProjectorObject(params, spinner = false) {\r\n const { task, page = 1 } = params;\r\n return await apiHelper.get(\r\n `organization/task/projector_annotation_image_list/${task}/?page=${page}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function saveCreatedRegions(payload, spinner = false) {\r\n return await apiHelper.post(\r\n 'organization/task/task_object/',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getProjectorRegionCoordinates(params, spinner = false) {\r\n const { id } = params;\r\n return await apiHelper.get(`generic/list_region_json/${id}/`, spinner);\r\n}\r\n\r\nasync function updateRegions(payload, spinner = false) {\r\n return await apiHelper.patch(\r\n 'organization/task/task_object/update_delete',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function updateProjectorRegions(payload, spinner = false) {\r\n return await apiHelper.put(\r\n 'generic/update_projector_region/',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function updateProjectorRegionsJson(payload, id, spinner = false) {\r\n return await apiHelper.patch(\r\n `generic/list_region_json/${id}/`,\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function deleteRegions(params, spinner = false) {\r\n return await apiHelper.remove(\r\n `organization/task/task_object/update_delete`,\r\n spinner,\r\n params\r\n );\r\n}\r\n\r\nasync function copyRegions(payload, spinner = false) {\r\n return await apiHelper.patch(\r\n 'generic/copy_projector_media/',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function setTaskStaticImage(payload, spinner = false) {\r\n return await apiHelper.post(\r\n 'organization/annotation_image/get_static_image/',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function bulkDeleteAnnotations(payload, spinner = false) {\r\n return await apiHelper.patch(\r\n 'organization/annotations/bulk-delete/',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nexport default {\r\n getObjects,\r\n getProjectorObject,\r\n saveCreatedRegions,\r\n getProjectorRegionCoordinates,\r\n updateProjectorRegions,\r\n updateProjectorRegionsJson,\r\n updateRegions,\r\n deleteRegions,\r\n copyRegions,\r\n setTaskStaticImage,\r\n bulkDeleteAnnotations,\r\n getObjectsPaginated\r\n};\r\n","export const initialStepTime = { avgCycleTime: 0, stepAvgTime: {} };\r\n","import { getRandomColor, validateColor } from 'src/config/color-config';\r\nimport { initialStepTime } from 'src/config/step-time-config.js';\r\nimport { modes } from 'src/config/task-edit-modes-config.js';\r\nimport { objectAnnotationModes } from 'src/config/task-steps-objects.js';\r\nimport DepthRegionService from 'src/services/3dPlaneEquation';\r\nimport DeviceService from 'src/services/device';\r\nimport TaskService from 'src/services/tasks';\r\nimport {\r\n checkIfEmpty,\r\n checkIfSubstepsExists,\r\n checkIfTaskExist,\r\n convertStepTimeValuesToNumber,\r\n deepClone,\r\n getDestinationIndex,\r\n getIdToObjectMapping,\r\n getIndexToStepMapping,\r\n getObjectToIdMapping,\r\n getPrevStepsJson,\r\n getProcessToStepsMap,\r\n getStepsCount,\r\n getStepToIndexMapping,\r\n getSubstepToStepMapping,\r\n getTaskNameAndProcess,\r\n getTaskParameters,\r\n getTaskString,\r\n getTaskUpdateJson,\r\n getTaskUpdatePayload,\r\n getTranslatedSteps,\r\n getUpdatedTaskJson,\r\n getUpdatedTasksList,\r\n hasMorethanTwoProcess,\r\n hasNoProcess,\r\n hasNoSteps,\r\n initAnnotationObjectsJson,\r\n initializeTranslation,\r\n isDuplicateProcess,\r\n isDuplicateStep,\r\n isDuplicateSubstep,\r\n isStepAndSubstepSame,\r\n isTaskBeingPerformed,\r\n isTaskBeingTrained,\r\n isTranslationNotExist,\r\n sendTaskUpdateNotification,\r\n setSubStepTimesJsonFile,\r\n startTaskModification,\r\n updatedAttributeSteps,\r\n updateSimilarStepsFileS3,\r\n updateTaskObjectRules,\r\n validateForSpecialCharacters,\r\n validateStepAndSubstepCharacters,\r\n} from 'src/utils/task';\r\nimport { useToast } from 'vue-toastification';\r\nimport types from '../mutation-types';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = {\r\n allTasks: [],\r\n trainedTasks: [],\r\n selectedTask: null,\r\n isTask3d: false,\r\n modelChoice: '',\r\n taskName: '',\r\n taskDetails: '',\r\n taskStepsCount: 0,\r\n isTaskStarred: false,\r\n isMultiProcessTask: false,\r\n processToStepListMap: {},\r\n taskJson: {},\r\n isAddingTranslation: false,\r\n isDeletingTranslation: false,\r\n isTranslation: false,\r\n isTranslationEdit: false,\r\n translatedTaskName: '',\r\n translationDetails: '',\r\n translationLanguage: '',\r\n processesTranslation: [],\r\n selectedLang: 'English',\r\n negativeSteps: [],\r\n taskProcesses: [],\r\n newTask: '',\r\n taskString: '',\r\n isTaskEdit: false,\r\n processes: [],\r\n currentEditMode: '',\r\n editModes: { ...modes },\r\n prevStepsJson: {},\r\n updatedJsonPayload: [],\r\n resJsonForAddDeletePhase: [],\r\n resJsonForRenamePhase: [],\r\n taskUpdateConfirmModal: false,\r\n isFetchingTasks: false,\r\n isFetchingTaskDetails: false,\r\n isFetchingTaskStatus: false,\r\n isAddingTask: false,\r\n isUpdatingTaskFields: false,\r\n similarSteps: {},\r\n showSimilarStepsModal: false,\r\n isUpdatingSimilarSteps: false,\r\n taskObjects: [],\r\n taskObjectRules: [],\r\n indexToStepsMapping: {},\r\n stepsToIndexMapping: {},\r\n isSavingObjectDetectionRule: false,\r\n showStepTimeModal: false,\r\n stepTime: { ...initialStepTime },\r\n isUpdatingStepTime: false,\r\n isStepTimeExist: false,\r\n showTaskParamsModal: false,\r\n isUpdatingTaskParams: false,\r\n taskParameters: {},\r\n isUpdateTaskFromAdmin: false,\r\n taskOrganization: localStorage.getItem('organization'),\r\n showRegionDefinitionModal: false,\r\n showAssociateRegionModal: false,\r\n taskStaticObjectsList: [],\r\n taskPlaneObjectsList: [],\r\n taskRegionMarkingImgUrl: '',\r\n optionalSteps: [],\r\n stepToAttributesMapping: {},\r\n mergeStepsDict: {},\r\n subStepToStepMapping: {},\r\n showModelVersionsModal: false,\r\n taskAssociatedModelVersion: null,\r\n isUpdatingAssociateModelVersion: false,\r\n stepsJsonData: {},\r\n subStepTimesJson: {},\r\n showAnnotationObjectsModal: false,\r\n annotationObjectJson: {},\r\n currentAnnotationObjectMode: objectAnnotationModes['annotation'],\r\n objectWarnings: {},\r\n idToObjectMapping: {},\r\n objectToIdMapping: {},\r\n objectDetectionRuleUpdatedData: [],\r\n stepsTranslationMapping: {},\r\n showODSetupModal: false,\r\n stepsAssociationIds: new Set(),\r\n showProjectorRegionModal: false,\r\n planeObjectsList: [],\r\n taskStaticAnnotationImage: null,\r\n maxCycleTime: Number.MAX_SAFE_INTEGER,\r\n showUploadMediaModal: false,\r\n taskStepsMediaObject: {},\r\n rectificationSteps: [],\r\n taskCreatedAt: null,\r\n isAddBackgroundTimeToStepTimeEnabled: false,\r\n isMissedStepsSelected: false,\r\n isStepsSelectedForInterventions: false,\r\n idToEntityIdMapping: {},\r\n};\r\n\r\nconst getters = {\r\n allTasks: (state) => state.allTasks,\r\n isFetchingTasks: (state) => state.isFetchingTasks,\r\n isFetchingTaskDetails: (state) => state.isFetchingTaskDetails,\r\n isFetchingTaskStatus: (state) => state.isFetchingTaskStatus,\r\n isAddingTask: (state) => state.isAddingTask,\r\n isUpdatingTaskFields: (state) => state.isUpdatingTaskFields,\r\n trainedTasks: (state) => state.trainedTasks,\r\n selectedTask: (state) => state.selectedTask,\r\n isTask3d: (state) => state.isTask3d,\r\n modelChoice: (state) => state.modelChoice,\r\n taskName: (state) => state.taskName,\r\n taskDetails: (state) => state.taskDetails,\r\n taskStepsCount: (state) => state.taskStepsCount,\r\n isTaskStarred: (state) => state.isTaskStarred,\r\n isMultiProcessTask: (state) => state.isMultiProcessTask,\r\n processToStepListMap: (state) => state.processToStepListMap,\r\n taskJson: (state) => state.taskJson,\r\n isAddingTranslation: (state) => state.isAddingTranslation,\r\n isDeletingTranslation: (state) => state.isDeletingTranslation,\r\n isTranslation: (state) => state.isTranslation,\r\n isTranslationEdit: (state) => state.isTranslationEdit,\r\n translatedTaskName: (state) => state.translatedTaskName,\r\n translationDetails: (state) => state.translationDetails,\r\n translationLanguage: (state) => state.translationLanguage,\r\n processesTranslation: (state) => state.processesTranslation,\r\n selectedLang: (state) => state.selectedLang,\r\n negativeSteps: (state) => state.negativeSteps,\r\n taskProcesses: (state) => state.taskProcesses,\r\n newTask: (state) => state.newTask,\r\n isTaskEdit: (state) => state.isTaskEdit,\r\n processes: (state) => state.processes,\r\n taskUpdateConfirmModal: (state) => state.taskUpdateConfirmModal,\r\n similarSteps: (state) => state.similarSteps,\r\n showSimilarStepsModal: (state) => state.showSimilarStepsModal,\r\n isUpdatingSimilarSteps: (state) => state.isUpdatingSimilarSteps,\r\n taskObjects: (state) => state.taskObjects,\r\n taskObjectRules: (state) => state.taskObjectRules,\r\n stepsToIndexMapping: (state) => state.stepsToIndexMapping,\r\n isSavingObjectDetectionRule: (state) => state.isSavingObjectDetectionRule,\r\n showStepTimeModal: (state) => state.showStepTimeModal,\r\n stepTime: (state) => state.stepTime,\r\n avgCycleTime: (state) => state.stepTime.avgCycleTime,\r\n stepAvgTime: (state) => (step) => state.stepTime.stepAvgTime[step] || '',\r\n isUpdatingStepTime: (state) => state.isUpdatingStepTime,\r\n isStepTimeExist: (state) => state.isStepTimeExist,\r\n showTaskParamsModal: (state) => state.showTaskParamsModal,\r\n isUpdatingTaskParams: (state) => state.isUpdatingTaskParams,\r\n taskParameters: (state) => state.taskParameters,\r\n taskCreatedAt: (state) => state.taskCreatedAt,\r\n isAddBackgroundTimeToStepTimeEnabled: (state) =>\r\n state.isAddBackgroundTimeToStepTimeEnabled,\r\n isMissedStepsSelected: (state) => state.isMissedStepsSelected,\r\n isStepsSelectedForInterventions: (state) =>\r\n state.isStepsSelectedForInterventions,\r\n\r\n steps: (state) => (processIndex) =>\r\n state.taskProcesses[processIndex]['steps'],\r\n\r\n newSteps: (state) => (processIndex) => state.processes[processIndex]['steps'],\r\n\r\n stepsTranslation: (state) => (processIndex) =>\r\n state.processesTranslation[processIndex]['steps'],\r\n\r\n substeps: (state) => (processIndex, stepIndex) =>\r\n state.taskProcesses[processIndex]['steps'][stepIndex]['substeps'],\r\n\r\n newSubsteps: (state) => (processIndex, stepIndex) =>\r\n state.processes[processIndex]['steps'][stepIndex]['substeps'],\r\n\r\n substepsTranslation: (state) => (processIndex, stepIndex) =>\r\n state.processesTranslation[processIndex]['steps'][stepIndex]['substeps'],\r\n\r\n stepsCount: (state) => (processIndex) =>\r\n state.taskProcesses[processIndex]?.steps.length,\r\n\r\n substepsCount: (state) => (processIndex, stepIndex) =>\r\n state.taskProcesses[processIndex]?.steps[stepIndex]?.substeps.length,\r\n\r\n currentEditMode: (state) => state.currentEditMode,\r\n editModes: (state) => state.editModes,\r\n prevStepsJson: (state) => state.prevStepsJson,\r\n updatedJsonPayload: (state) => state.updatedJsonPayload,\r\n indexToStepsMapping: (state) => state.indexToStepsMapping,\r\n isUpdateTaskFromAdmin: (state) => state.isUpdateTaskFromAdmin,\r\n taskOrganization: (state) => state.taskOrganization,\r\n showRegionDefinitionModal: (state) => state.showRegionDefinitionModal,\r\n showAssociateRegionModal: (state) => state.showAssociateRegionModal,\r\n taskStaticObjectsList: (state) => state.taskStaticObjectsList,\r\n taskPlaneObjectsList: (state) => state.taskPlaneObjectsList,\r\n taskRegionMarkingImgUrl: (state) => state.taskRegionMarkingImgUrl,\r\n optionalSteps: (state) => state.optionalSteps,\r\n stepToAttributesMapping: (state) => state.stepToAttributesMapping,\r\n mergeStepsDict: (state) => state.mergeStepsDict,\r\n subStepToStepMapping: (state) => state.subStepToStepMapping,\r\n stepsJsonData: (state) => state.stepsJsonData,\r\n subStepTimesJson: (state) => state.subStepTimesJson,\r\n showModelVersionsModal: (state) => state.showModelVersionsModal,\r\n taskAssociatedModelVersion: (state) => state.taskAssociatedModelVersion,\r\n isUpdatingAssociateModelVersion: (state) =>\r\n state.isUpdatingAssociateModelVersion,\r\n stepsTranslationMapping: (state) => state.stepsTranslationMapping,\r\n stepsAssociationIds: (state) => state.stepsAssociationIds,\r\n showAnnotationObjectsModal: (state) => state.showAnnotationObjectsModal,\r\n currentAnnotationObjectMode: (state) => state.currentAnnotationObjectMode,\r\n annotationObjectJson: (state) => state.annotationObjectJson,\r\n objectWarnings: (state) => state.objectWarnings,\r\n idToObjectMapping: (state) => state.idToObjectMapping,\r\n objectToIdMapping: (state) => state.objectToIdMapping,\r\n showODSetupModal: (state) => state.showODSetupModal,\r\n showProjectorRegionModal: (state) => state.showProjectorRegionModal,\r\n planeObjectsList: (state) => state.planeObjectsList,\r\n taskStaticAnnotationImage: (state) => state.taskStaticAnnotationImage,\r\n outLierLimit: (state) => state.maxCycleTime,\r\n showUploadMediaModal: (state) => state.showUploadMediaModal,\r\n taskStepsMediaObject: (state) => state.taskStepsMediaObject,\r\n rectificationSteps: (state) => state.rectificationSteps,\r\n idToEntityIdMapping: (state) => state.idToEntityIdMapping,\r\n};\r\nconst actions = {\r\n syncIdToEntityIdMapping({ commit }, payload) {\r\n commit(types.SYNC_ID_TO_ENTITY_ID_MAPPING, payload);\r\n },\r\n setIsMissedStepsSelected({ commit }, payload) {\r\n commit(types.SET_MISSED_STEP_SELECTED, payload);\r\n },\r\n\r\n setIsStepsSelectedForInterventions({ commit }, payload) {\r\n commit(types.SET_STEP_SELECTED_FOR_INTERVENTIONS, payload);\r\n },\r\n\r\n async getAllTasks({ commit }) {\r\n commit(types.SET_IS_FETCHING_TASKS, true);\r\n const [error, data] = await TaskService.fetchTasks(false);\r\n commit(types.SET_IS_FETCHING_TASKS, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_TASKS, data);\r\n },\r\n\r\n async getTrainedTasks({ commit }, trainedStatus) {\r\n // || trainingStatuses.trained\r\n const [error, tasks] = await TaskService.fetchTrainedTasksByStatus(\r\n trainedStatus,\r\n false\r\n );\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_TRAINED_TASKS, tasks);\r\n },\r\n\r\n setSelectedTask({ commit, dispatch }, taskId) {\r\n commit(types.SET_SELECTED_TASK, taskId);\r\n dispatch('resetProcessState');\r\n dispatch('resetTranslationState');\r\n dispatch('resetStepTimeState');\r\n },\r\n\r\n setTasks({ commit }, tasks) {\r\n commit(types.SET_TASKS, tasks);\r\n },\r\n\r\n setTaskDetail({ commit }, task_detail) {\r\n commit(types.SET_TASK_DETAILS, task_detail);\r\n },\r\n\r\n setIsTaskStarred({ commit }, value) {\r\n commit(types.SET_IS_TASK_STARRED, value);\r\n },\r\n\r\n setTaskOrganization({ commit }, organization) {\r\n commit(types.SET_TASK_ORGANIZATION, organization);\r\n },\r\n\r\n clearTaskDetails({ commit }) {\r\n commit(types.SET_SELECTED_TASK, null);\r\n commit(types.SET_TASK_DETAILS, '');\r\n commit(types.SET_TASK_NAME, '');\r\n commit(types.SET_TASK_PROCESSES, []);\r\n commit(types.SET_NEGATIVE_STEPS, []);\r\n commit(types.SET_TRANSLATION_DETAILS, '');\r\n commit(types.SET_TRANSLATION_LANGUAGE, '');\r\n commit(types.SET_SELECTED_LANGUAGE, 'English');\r\n },\r\n\r\n resetTaskCreatedAt({ commit }) {\r\n commit(types.SET_TASK_CREATED_AT, null);\r\n },\r\n\r\n setIsAddBackgroundTimeToStepTimeEnabled({ commit }, value) {\r\n commit(types.SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED, value);\r\n },\r\n\r\n async fetchTaskDetails({ commit, dispatch }, payload) {\r\n let taskId,\r\n historyId = null;\r\n\r\n if (typeof payload === 'object') {\r\n ({ taskId, historyId = null } = payload);\r\n } else {\r\n taskId = payload;\r\n }\r\n commit(types.SET_IS_FETCHING_TASK_DETAILS, true);\r\n const [error, data] = await TaskService.fetchTaskDetailsNew(\r\n taskId,\r\n false,\r\n historyId\r\n );\r\n commit(types.SET_IS_FETCHING_TASK_DETAILS, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const {\r\n task_detail,\r\n stepsCount,\r\n taskJson,\r\n translation,\r\n negativeSteps,\r\n translation_name,\r\n similarSteps: ss,\r\n stepsAvgTime,\r\n starred,\r\n optional_steps,\r\n model_choice,\r\n model_version,\r\n steps_data_json,\r\n sub_step_times,\r\n annotation_image_id,\r\n maximum_cycle_time,\r\n created_at,\r\n add_background_time_to_step_time,\r\n } = data;\r\n const similar_steps =\r\n typeof ss === 'object' ? (ss === null ? {} : ss) : JSON.parse(ss);\r\n const taskParameters = getTaskParameters(data);\r\n const stepsJsonData =\r\n typeof steps_data_json === 'string'\r\n ? JSON.parse(steps_data_json)\r\n : steps_data_json;\r\n commit(types.SET_TASK_DETAILS, task_detail);\r\n commit(types.SET_TASK_STEPS_COUNT, stepsCount);\r\n commit(types.SET_TASK_JSON, taskJson);\r\n commit(types.SET_NEGATIVE_STEPS, negativeSteps);\r\n commit(types.SET_SIMILAR_STEPS, similar_steps);\r\n commit(types.SET_IS_TASK_STARRED, starred);\r\n commit(types.SET_OPTIONAL_STEPS, optional_steps ? optional_steps : []);\r\n commit(types.SET_TASK_ASSOCIATE_MODEL_VERSION, model_version);\r\n commit(types.SET_STEPS_JSON_DATA, stepsJsonData);\r\n commit(types.SET_MODEL_CHOICE, model_choice);\r\n commit(types.SET_MAX_CYCLE_TIME, maximum_cycle_time);\r\n commit(types.SET_TASK_CREATED_AT, created_at);\r\n commit(\r\n types.SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED,\r\n add_background_time_to_step_time\r\n );\r\n\r\n commit(types.SET_TASK_PARAMETERS, taskParameters);\r\n // commit(types.SET_TASK_STATIC_IMAGE_ID, annotation_image_id);\r\n dispatch('setTaskStaticImage', annotation_image_id);\r\n\r\n const tempSAT = stepsAvgTime === null ? {} : stepsAvgTime;\r\n if (Object.keys(tempSAT).length > 0) {\r\n commit(types.SET_STEP_TIME, tempSAT);\r\n commit(types.SET_IS_STEP_TIME_EXIST, true);\r\n }\r\n const tempSST = sub_step_times === null ? {} : sub_step_times;\r\n dispatch('setSubStepTimesJsonData', tempSST);\r\n if (!translation_name || isTranslationNotExist(translation)) {\r\n dispatch('resetTranslationState');\r\n } else {\r\n commit(types.SET_TRANSLATION_DETAILS, translation);\r\n commit(types.SET_TRANSLATION_LANGUAGE, translation_name);\r\n }\r\n },\r\n\r\n setTaskStaticImage({ commit }, annotation_image_id) {\r\n commit(types.SET_TASK_STATIC_IMAGE_ID, annotation_image_id);\r\n },\r\n\r\n setStepsJsonData({ commit }, payload) {\r\n if (payload) commit(types.SET_STEPS_JSON_DATA, payload);\r\n },\r\n\r\n async getTaskObjects({ commit }, taskId) {\r\n const [error, data] = await TaskService.fetchTaskObjects(taskId, false);\r\n if (error) return;\r\n for (const item of data) {\r\n if (!validateColor(item.outline_color)) {\r\n item.outline_color = getRandomColor();\r\n const { id: objectId, ...objectData } = item;\r\n const [error] = await TaskService.updateTaskObject(\r\n objectId,\r\n objectData\r\n );\r\n\r\n if (error) {\r\n console.log('Error while updating object', error);\r\n return;\r\n }\r\n }\r\n }\r\n const regionsObjects = data.filter((t) => t.is_static === true);\r\n const idsMap = getIdToObjectMapping(data);\r\n const objMap = getObjectToIdMapping(data);\r\n commit(types.SET_TASK_OBJECTS, data);\r\n commit(types.SET_TASK_STATIC_OBJECTS, regionsObjects);\r\n commit(types.SET_ID_TO_OBJ_MAPPING, { ...idsMap });\r\n commit(types.SET_OBJ_TO_ID_MAPPING, { ...objMap });\r\n },\r\n\r\n // async getTaskPlaneObjects({ commit }, taskId) {\r\n // const [error, data] = await TaskService.fetchTaskPlaneObjects(taskId, false);\r\n // if (error) return;\r\n // commit(types.SET_PLANE_OBJECTS, data);\r\n // },\r\n\r\n async addTaskObject({ commit, state }, payload) {\r\n const [error, data] = await TaskService.addTaskObject(payload);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n commit(types.SET_TASK_OBJECTS, [...state.taskObjects, data]);\r\n },\r\n\r\n async addPlaneObject({ commit }, payload) {\r\n const [error, data] = await TaskService.addPlaneObject(payload);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n },\r\n\r\n async deletePlaneObject({ commit }, id) {\r\n const [error] = await TaskService.deletePlaneObject(id);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n },\r\n\r\n async createNewPlane({ commit }, payload) {\r\n const [error, data] = await TaskService.createNewPlane(payload);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n },\r\n\r\n async updateTaskObject({ commit, state }, payload) {\r\n const { objectId, objectData } = payload;\r\n\r\n const [error] = await TaskService.updateTaskObject(objectId, objectData);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n const temp = [...state.taskObjects];\r\n const objectIndex = temp.findIndex((obj) => obj.id === objectId);\r\n temp[objectIndex] = objectData;\r\n commit(types.SET_TASK_OBJECTS, temp);\r\n },\r\n\r\n async deleteTaskObject({ commit }, objectId) {\r\n const [error] = await TaskService.deleteTaskObject(objectId);\r\n if (error) {\r\n console.log('error while updating object', error);\r\n return;\r\n }\r\n const temp = [...state.taskObjects].filter((obj) => obj.id !== objectId);\r\n commit(types.SET_TASK_OBJECTS, temp);\r\n },\r\n\r\n async getTaskObjectRules({ commit }, taskId) {\r\n const [error, data] = await TaskService.fetchTaskObjectRules(taskId, false);\r\n if (error) return;\r\n commit(types.SET_TASK_OBJECT_RULES, data);\r\n },\r\n\r\n setTaskNameAndProcess({ commit }, payload) {\r\n const { name, processes } = getTaskNameAndProcess(payload);\r\n commit(types.SET_IS_MULTI_PROCESS_TASK, processes?.length > 1);\r\n commit(types.SET_PROCESS_TO_STEP_LIST_MAP, getProcessToStepsMap(processes));\r\n commit(types.SET_TASK_NAME, name);\r\n commit(types.SET_TASK_PROCESSES, processes);\r\n },\r\n\r\n setIndexToStepsMapping({ commit, state }) {\r\n const { taskProcesses } = state;\r\n const indexToStepMapping = getIndexToStepMapping(taskProcesses);\r\n commit(types.SET_INDEX_TO_STEPS_MAPPING, indexToStepMapping);\r\n },\r\n\r\n setStepsToIndexMapping({ commit, state }) {\r\n const { taskProcesses } = state;\r\n const stepsToIndexMapping = getStepToIndexMapping(taskProcesses);\r\n commit(types.SET_STEPS_TO_INDEX_MAPPING, stepsToIndexMapping);\r\n },\r\n\r\n setsubstepsToStepMapping({ commit, state }) {\r\n const { taskProcesses } = state;\r\n const substepsToStepMapping = getSubstepToStepMapping(taskProcesses);\r\n commit(types.SET_SUB_STEP_TO_STEP_MAPPING, substepsToStepMapping);\r\n },\r\n\r\n setTranslatedTaskName({ commit }, payload) {\r\n commit(types.SET_TRANSLATED_TASK_NAME, payload);\r\n },\r\n\r\n setStepToAttributesMapping({ commit, state }) {\r\n const { taskProcesses: processes, negativeSteps, optionalSteps } = state;\r\n const temp = {};\r\n let index = 0;\r\n processes.forEach((process, processIndex) => {\r\n process.steps.forEach((step, stepIndex) => {\r\n step.substeps.forEach((_, substepIndex) => {\r\n temp[`${processIndex}-${stepIndex}-${substepIndex}`] = {\r\n isNegative: negativeSteps.includes(index),\r\n isOptional: optionalSteps.includes(index),\r\n index,\r\n };\r\n index++;\r\n });\r\n });\r\n });\r\n commit(types.SET_STEP_TO_ATTRIBUTES_MAPPING, temp);\r\n },\r\n\r\n handleChangeNegativeStepChange({ commit, state }, payload) {\r\n const { stepToAttributesMapping: temp } = state;\r\n const { processIndex, stepIndex, substepIndex } = payload;\r\n temp[`${processIndex}-${stepIndex}-${substepIndex}`].isNegative =\r\n !temp[`${processIndex}-${stepIndex}-${substepIndex}`].isNegative;\r\n commit(types.SET_STEP_TO_ATTRIBUTES_MAPPING, temp);\r\n },\r\n\r\n handleChangeOptionalStepChange({ commit, state }, payload) {\r\n const { stepToAttributesMapping: temp } = state;\r\n const { processIndex, stepIndex, substepIndex } = payload;\r\n const markedStep = `${processIndex}-${stepIndex}-${substepIndex}`;\r\n temp[markedStep].isOptional = !temp[markedStep].isOptional;\r\n commit(types.SET_STEP_TO_ATTRIBUTES_MAPPING, temp);\r\n },\r\n\r\n async updateSteps({ commit, state }) {\r\n const {\r\n selectedTask,\r\n stepToAttributesMapping,\r\n negativeSteps,\r\n optionalSteps,\r\n } = state;\r\n let payload = {};\r\n const isNegUpdated =\r\n updatedAttributeSteps(stepToAttributesMapping, 'isNegative') !==\r\n negativeSteps.sort().join(',');\r\n const isOptUpdated =\r\n updatedAttributeSteps(stepToAttributesMapping, 'isOptional') !==\r\n optionalSteps.sort().join(',');\r\n\r\n if (isNegUpdated) {\r\n var updateNegativeSteps = Object.values(stepToAttributesMapping)\r\n .filter((e) => e.isNegative)\r\n .map((e) => e.index);\r\n payload['negativeSteps'] = updateNegativeSteps;\r\n }\r\n if (isOptUpdated) {\r\n var updateOptionalSteps = Object.values(stepToAttributesMapping)\r\n .filter((e) => e.isOptional)\r\n .map((e) => e.index);\r\n payload['optional_steps'] = updateOptionalSteps;\r\n }\r\n\r\n const [error] = await TaskService.updateTask(selectedTask, {\r\n ...payload,\r\n });\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n isOptUpdated && commit(types.SET_OPTIONAL_STEPS, updateOptionalSteps);\r\n isNegUpdated && commit(types.SET_NEGATIVE_STEPS, updateNegativeSteps);\r\n },\r\n\r\n async deleteTask({ dispatch }, taskId) {\r\n const [error] = await TaskService.deleteTask(taskId);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n await dispatch('clearTaskDetails');\r\n await dispatch('getAllTasks');\r\n },\r\n\r\n setSelectedLanguage({ commit }, payload) {\r\n commit(types.SET_SELECTED_LANGUAGE, payload);\r\n },\r\n\r\n resetState({ commit, dispatch }) {\r\n commit(types.SET_PROCESS, []);\r\n commit(types.SET_NEW_TASK, '');\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, []);\r\n dispatch('clearTaskDetails');\r\n dispatch('resetProcessState');\r\n },\r\n\r\n setNewTask({ commit }, payload) {\r\n commit(types.SET_NEW_TASK, payload);\r\n },\r\n\r\n setTaskUpdateConfirmModal({ commit }, payload) {\r\n commit(types.SET_TASK_UPDATE_CONFIRM_MODAL, payload);\r\n },\r\n\r\n setProcesses({ commit }, payload) {\r\n commit(types.SET_PROCESS, payload);\r\n },\r\n\r\n setProcessesTranslation({ commit }, payload) {\r\n commit(types.SET_PROCESS_TRANSLATION, payload);\r\n },\r\n\r\n addProcess({ commit, state }) {\r\n const processes = [...state.processes];\r\n processes.push({\r\n name: '',\r\n steps: [],\r\n });\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateProcess({ commit, state }, payload) {\r\n const { processIndex, process } = payload;\r\n const processes = [...state.processes];\r\n processes[processIndex]['name'] = process;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateProcessTranslation({ commit, state }, payload) {\r\n const { processIndex, process } = payload;\r\n const processes = [...state.processesTranslation];\r\n processes[processIndex]['name'] = process;\r\n commit(types.SET_PROCESS_TRANSLATION, processes);\r\n },\r\n\r\n removeProcess({ commit, state }, payload) {\r\n const { processIndex } = payload;\r\n const processes = state.processes.filter(\r\n (_, index) => index !== processIndex\r\n );\r\n\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n addStep({ commit, state }, payload) {\r\n const { processIndex } = payload;\r\n const processes = [...state.processes];\r\n const processSteps = processes[processIndex]['steps'];\r\n if (!processSteps.at(-1)?.name && !!processSteps.length) {\r\n toast.info('Please finish the last step first!', {\r\n timeout: 2000,\r\n });\r\n return;\r\n }\r\n processes[processIndex]['steps'].push({\r\n name: '',\r\n substeps: [],\r\n });\r\n\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateStep({ commit, state }, payload) {\r\n const { step, stepIndex, processIndex } = payload;\r\n const processes = [...state.processes];\r\n const processSteps = [...processes[processIndex]['steps']];\r\n processSteps[stepIndex]['name'] = step;\r\n processes[processIndex]['steps'] = processSteps;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateStepTranslation({ commit, state }, payload) {\r\n const { step, stepIndex, processIndex } = payload;\r\n const processes = [...state.processesTranslation];\r\n const processSteps = [...processes[processIndex]['steps']];\r\n processSteps[stepIndex]['name'] = step;\r\n processes[processIndex]['steps'] = processSteps;\r\n commit(types.SET_PROCESS_TRANSLATION, processes);\r\n },\r\n\r\n removeStep({ commit, state }, payload) {\r\n const { stepIndex, processIndex } = payload;\r\n const processes = [...state.processes];\r\n const steps = processes[processIndex]['steps'].filter(\r\n (_, index) => index !== stepIndex\r\n );\r\n processes[processIndex]['steps'] = steps;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n moveStep({ commit, state }, payload) {\r\n const { processIndex, stepIndex, direction } = payload;\r\n const stepsLastIndex = state.processes[processIndex]['steps'].length - 1;\r\n if (\r\n (stepIndex === 0 && direction === 'up') ||\r\n (stepIndex === stepsLastIndex && direction === 'down')\r\n )\r\n return;\r\n\r\n const destinationIndex = getDestinationIndex(stepIndex, direction);\r\n const processes = [...state.processes];\r\n const steps = [...processes[processIndex]['steps']];\r\n const temp = steps[stepIndex];\r\n steps[stepIndex] = steps[destinationIndex];\r\n steps[destinationIndex] = temp;\r\n processes[processIndex]['steps'] = steps;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n addSubstep({ commit, state }, payload) {\r\n const { stepIndex, processIndex } = payload;\r\n const processes = [...state.processes];\r\n const substeps = processes[processIndex]['steps'][stepIndex]['substeps'];\r\n if (!substeps.at(-1) && !!substeps.length) {\r\n toast.info('Please finish the last sub-step first!', {\r\n timeout: 2000,\r\n });\r\n return;\r\n }\r\n processes[processIndex]['steps'][stepIndex]['substeps'].push('');\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateSubstep({ commit, state }, payload) {\r\n const { substep, substepIndex, stepIndex, processIndex } = payload;\r\n const processes = [...state.processes];\r\n processes[processIndex]['steps'][stepIndex]['substeps'][substepIndex] =\r\n substep;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n updateSubstepTranslation({ commit, state }, payload) {\r\n const { substep, substepIndex, stepIndex, processIndex } = payload;\r\n const processes = [...state.processesTranslation];\r\n processes[processIndex]['steps'][stepIndex]['substeps'][substepIndex] =\r\n substep;\r\n commit(types.SET_PROCESS_TRANSLATION, processes);\r\n },\r\n\r\n removeSubstep({ commit, state }, payload) {\r\n const { substepIndex, stepIndex, processIndex } = payload;\r\n const processes = [...state.processes];\r\n processes[processIndex]['steps'][stepIndex]['substeps'] = processes[\r\n processIndex\r\n ]['steps'][stepIndex]['substeps'].filter(\r\n (_, index) => index !== substepIndex\r\n );\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n moveSubstep({ commit, state }, payload) {\r\n const { processIndex, stepIndex, substepIndex, direction } = payload;\r\n const substepsLastIndex =\r\n state.processes[processIndex]['steps'][stepIndex]['substeps'].length - 1;\r\n if (\r\n (substepIndex === 0 && direction === 'up') ||\r\n (substepIndex === substepsLastIndex && direction === 'down')\r\n )\r\n return;\r\n\r\n const destinationIndex = getDestinationIndex(substepIndex, direction);\r\n const processes = [...state.processes];\r\n const substeps = [\r\n ...processes[processIndex]['steps'][stepIndex]['substeps'],\r\n ];\r\n\r\n const temp = substeps[substepIndex];\r\n substeps[substepIndex] = substeps[destinationIndex];\r\n substeps[destinationIndex] = temp;\r\n processes[processIndex]['steps'][stepIndex]['substeps'] = substeps;\r\n commit(types.SET_PROCESS, processes);\r\n },\r\n\r\n resetTranslationState({ commit }) {\r\n commit(types.SET_TRANSLATED_TASK_NAME, '');\r\n commit(types.SET_TRANSLATION_DETAILS, '');\r\n commit(types.SET_TRANSLATION_LANGUAGE, '');\r\n },\r\n\r\n resetProcessState({ commit }) {\r\n commit(types.SET_PROCESS_TRANSLATION, []);\r\n commit(types.SET_PROCESS, []);\r\n commit(types.SET_NEW_TASK, '');\r\n commit(types.SET_TASK_STRING, '');\r\n commit(types.SET_IS_TASK_EDIT, false);\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, []);\r\n commit(types.SET_MERGE_STEPS_DICTIONARY, {});\r\n commit(types.SET_CURRENT_EDIT_MODE, '');\r\n },\r\n\r\n cancelTranslation({ commit }) {\r\n commit(types.SET_IS_TRANSLATION_EDIT, false);\r\n commit(types.SET_IS_TRANSLATION, false);\r\n },\r\n\r\n closeProjectorModal({ commit }) {\r\n commit(types.SET_SHOW_PROJECTOR_REGION_MODAL, false);\r\n },\r\n\r\n upsertTranslation({ commit, state, dispatch }) {\r\n const { translationDetails } = state;\r\n if (translationDetails) {\r\n const { name, processes } = getTaskNameAndProcess(translationDetails);\r\n dispatch('changeSelectedLanguage', 'English');\r\n commit(types.SET_TRANSLATED_TASK_NAME, name);\r\n commit(types.SET_PROCESS_TRANSLATION, processes);\r\n commit(types.SET_IS_TRANSLATION_EDIT, true);\r\n } else {\r\n const translation = initializeTranslation(state);\r\n commit(types.SET_PROCESS_TRANSLATION, translation);\r\n }\r\n commit(types.SET_IS_TRANSLATION, true);\r\n },\r\n\r\n async addTranslation({ commit, state, dispatch }, language) {\r\n const { processesTranslation, selectedTask, translatedTaskName } = state;\r\n if (checkIfEmpty(processesTranslation)) return;\r\n if (isDuplicateProcess(processesTranslation)) return;\r\n if (isDuplicateStep(processesTranslation)) return;\r\n if (isDuplicateSubstep(processesTranslation)) return;\r\n if (isStepAndSubstepSame(processesTranslation)) return;\r\n commit(types.SET_IS_ADDING_TRANSLATION, true);\r\n const translatedTaskString = getTaskString(\r\n processesTranslation,\r\n translatedTaskName\r\n );\r\n const translationName = language;\r\n const dataPayload = {\r\n translation: `${translatedTaskString}`,\r\n translation_name: translationName,\r\n };\r\n const [error, data] = await TaskService.updateTask(\r\n selectedTask,\r\n dataPayload,\r\n false\r\n );\r\n commit(types.SET_IS_ADDING_TRANSLATION, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_TRANSLATION_DETAILS, translatedTaskString);\r\n commit(types.SET_TRANSLATION_LANGUAGE, language);\r\n commit(types.SET_TRANSLATED_TASK_NAME, translationName);\r\n\r\n dispatch('changeSelectedLanguage', language);\r\n dispatch('cancelTranslation');\r\n },\r\n\r\n async deleteTranslation({ commit, state, dispatch }) {\r\n commit(types.SET_IS_DELETING_TRANSLATION, true);\r\n const { selectedTask } = state;\r\n const [error, data] = await TaskService.updateTask(\r\n selectedTask,\r\n { translation: 'null', translation_name: '' },\r\n false\r\n );\r\n commit(types.SET_IS_DELETING_TRANSLATION, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_IS_DELETING_TRANSLATION, false);\r\n commit(types.SET_IS_TRANSLATION, false);\r\n commit(types.SET_IS_TRANSLATION_EDIT, false);\r\n dispatch('resetTranslationState');\r\n },\r\n\r\n changeSelectedLanguage({ commit, state, dispatch }, language) {\r\n const { taskDetails, translationDetails } = state;\r\n const details = language === 'English' ? taskDetails : translationDetails;\r\n commit(types.SET_SELECTED_LANGUAGE, language);\r\n dispatch('setTaskNameAndProcess', details);\r\n },\r\n\r\n setCurrentEditMode({ commit }, payload) {\r\n commit(types.SET_CURRENT_EDIT_MODE, payload);\r\n },\r\n\r\n upsertTask({ commit, state, dispatch }) {\r\n const { newTask, processes, isTaskEdit } = state;\r\n if (validateForSpecialCharacters(state)) return;\r\n if (!isTaskEdit && checkIfTaskExist(state)) return;\r\n if (checkIfEmpty(processes)) return;\r\n if (checkIfSubstepsExists(processes)) return;\r\n if (validateStepAndSubstepCharacters(processes)) return;\r\n if (isDuplicateProcess(processes)) return;\r\n if (isStepAndSubstepSame(processes)) return;\r\n if (isDuplicateStep(processes)) return;\r\n if (isDuplicateSubstep(processes)) return;\r\n if (hasNoProcess(processes)) return;\r\n if (hasNoSteps(processes)) return;\r\n if (hasMorethanTwoProcess(processes)) return;\r\n commit(types.SET_TASK_STRING, getTaskString(processes, newTask));\r\n if (isTaskEdit) startTaskModification(state, commit);\r\n else dispatch('addTask');\r\n return true;\r\n },\r\n\r\n async addTask({ state, commit, dispatch }) {\r\n commit(types.SET_IS_ADDING_TASK, true);\r\n const { newTask, taskString } = state;\r\n const payload = {\r\n taskName: newTask,\r\n task_detail: taskString,\r\n stepsCount: getStepsCount(state),\r\n Organization: localStorage.getItem('organization'),\r\n };\r\n\r\n const [error, data] = await TaskService.addTask(payload, false);\r\n commit(types.SET_IS_ADDING_TASK, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const tasks = [...state.allTasks, { ...data }];\r\n dispatch('resetProcessState');\r\n commit('setTaskId', data.id);\r\n commit(types.SET_TASKS, tasks);\r\n commit(types.SET_SELECTED_TASK, data.id);\r\n },\r\n\r\n async editTask({ state, commit }) {\r\n commit(types.SET_IS_FETCHING_TASK_STATUS, true);\r\n const { taskDetails, selectedTask, taskName } = state;\r\n\r\n const taskStatus = TaskService.fetchTaskStatus(selectedTask, false);\r\n const devicesRunningSelectedTask =\r\n DeviceService.getDevicesRunningSelectedTask(false, {\r\n task: selectedTask,\r\n });\r\n\r\n const [res, _res] = await Promise.all([\r\n taskStatus,\r\n devicesRunningSelectedTask,\r\n ]);\r\n const [error, data] = res;\r\n const [_error, devices] = _res;\r\n\r\n commit(types.SET_IS_FETCHING_TASK_STATUS, false);\r\n if (error || _error) {\r\n console.log({ error, _error });\r\n return;\r\n }\r\n if (isTaskBeingPerformed(devices, taskName)) return;\r\n if (isTaskBeingTrained(data, taskName)) return;\r\n\r\n commit(types.SET_IS_TASK_EDIT, true);\r\n const { name, processes } = getTaskNameAndProcess(taskDetails);\r\n commit(types.SET_NEW_TASK, name);\r\n commit(types.SET_PROCESS, processes);\r\n commit(types.SET_CURRENT_EDIT_MODE, modes.addDelete);\r\n commit(types.SET_PREV_STEPS_JSON, getPrevStepsJson(processes));\r\n },\r\n\r\n updateTask({ state, commit, dispatch }, oldTaskDetails) {\r\n return new Promise(async (resolve) => {\r\n commit(types.SET_IS_ADDING_TASK, true);\r\n const payload = getTaskUpdatePayload(state, oldTaskDetails);\r\n\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n payload,\r\n false\r\n );\r\n sendTaskUpdateNotification(state, payload, oldTaskDetails);\r\n\r\n commit(types.SET_IS_ADDING_TASK, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_TASK_DETAILS, payload.task_detail);\r\n commit(types.SET_TASK_NAME, payload.taskName);\r\n commit(types.SET_SELECTED_LANGUAGE, 'English');\r\n commit(types.SET_TASKS, getUpdatedTasksList(state));\r\n if (oldTaskDetails !== payload.task_detail)\r\n dispatch('setSubStepTimesJsonData', payload.sub_step_times);\r\n dispatch('updateTaskParametersFields', payload);\r\n dispatch('resetProcessState');\r\n resolve();\r\n });\r\n },\r\n\r\n updateTaskParametersFields({ commit, state }, payload) {\r\n const updatedParams = {};\r\n const taksParamsKeys = [\r\n 'required_steps_for_start',\r\n 'required_steps_for_end',\r\n ];\r\n const payloadKeys = Object.keys(payload);\r\n taksParamsKeys.forEach((key) => {\r\n if (payloadKeys.includes(key))\r\n updatedParams[key] = JSON.parse(payload[key]);\r\n });\r\n if (!Object.keys(updatedParams)?.length) return;\r\n const { taskParameters } = state;\r\n let { telemetryParams, trainingParams } = taskParameters;\r\n telemetryParams = { ...telemetryParams, ...updatedParams };\r\n const updatedTaskParameters = {\r\n telemetryParams: deepClone(telemetryParams),\r\n trainingParams: deepClone(trainingParams),\r\n };\r\n commit(types.SET_TASK_PARAMETERS, updatedTaskParameters);\r\n const taskJson = getUpdatedTaskJson(state);\r\n commit(types.SET_TASK_JSON, taskJson);\r\n },\r\n\r\n updateTaskFields({ commit }, payload) {\r\n return new Promise(async (resolve, reject) => {\r\n commit(types.SET_IS_UPDATING_TASK_FIELDS, true);\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n payload,\r\n false\r\n );\r\n\r\n commit(types.SET_IS_UPDATING_TASK_FIELDS, false);\r\n if (error) {\r\n console.log({ error });\r\n reject();\r\n }\r\n resolve();\r\n });\r\n },\r\n\r\n updateSimilarStepsModalState({ commit, dispatch }, payload) {\r\n dispatch('changeSelectedLanguage', 'English');\r\n commit(types.SET_SHOW_SIMILAR_STEPS_MODAL, payload);\r\n },\r\n\r\n async updateSimilarSteps({ commit, state }, similarStepsJson) {\r\n commit(types.SET_IS_UPDATING_SIMILAR_STEPS, true);\r\n const payload = {\r\n similarSteps: similarStepsJson,\r\n };\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n payload,\r\n false\r\n );\r\n await updateSimilarStepsFileS3(state, similarStepsJson);\r\n commit(types.SET_IS_UPDATING_SIMILAR_STEPS, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_SIMILAR_STEPS, JSON.parse(similarStepsJson));\r\n commit(types.SET_SHOW_SIMILAR_STEPS_MODAL, false);\r\n },\r\n\r\n async updateTaskJson({ commit, state }, payload) {\r\n commit(types.SET_IS_UPDATING_TASK_PARAMS, true);\r\n const { taskParams, taskJson, substepTimes } = payload;\r\n const updatedData = {\r\n ...taskParams,\r\n sub_step_times: substepTimes,\r\n };\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n updatedData,\r\n false\r\n );\r\n commit(types.SET_IS_UPDATING_TASK_PARAMS, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Error occurred in saving your changes!');\r\n return;\r\n }\r\n toast.success('Your changes have been saved!');\r\n commit(types.SET_TASK_JSON, taskJson);\r\n commit(types.SET_MODEL_CHOICE, taskParams.model_choice);\r\n\r\n return true;\r\n },\r\n\r\n async createTaskObjectRule({ commit }, payload) {\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, true);\r\n const { taskObjectRules, selectedTask } = state;\r\n const [error, data] = await TaskService.createTaskObjectRules(\r\n selectedTask,\r\n payload,\r\n false\r\n );\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, false);\r\n if (error) {\r\n console.log(error);\r\n return 'error';\r\n } else {\r\n commit(types.SET_TASK_OBJECT_RULES, [...taskObjectRules, ...data]);\r\n return 1;\r\n }\r\n },\r\n\r\n async deleteTaskObjectRules({ commit }, params) {\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, true);\r\n const { taskObjectRules } = state;\r\n const [error, res] = await TaskService.deleteTaskObjectRules(params, false);\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, false);\r\n if (error) {\r\n console.log(error);\r\n return 'error';\r\n } else {\r\n let ids = params.ids.split(',');\r\n let remaining_objects = taskObjectRules.filter(\r\n (obj) =>\r\n !(\r\n obj.step == params.step &&\r\n ids.includes(\r\n obj?.non_static_object?.toString() ||\r\n obj?.static_object?.toString()\r\n )\r\n )\r\n );\r\n\r\n commit(types.SET_TASK_OBJECT_RULES, [...remaining_objects]);\r\n return 1;\r\n }\r\n },\r\n\r\n async updateTaskObjectDetectionRule({ commit, state }, payload) {\r\n const { id: ruleId, ...resData } = payload;\r\n const { taskObjectRules } = state;\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, true);\r\n const [error, res] = await TaskService.updateTaskObjectDetectionRule(\r\n ruleId,\r\n resData,\r\n false\r\n );\r\n commit(types.SET_IS_SAVING_OBJECT_DETECTION_RULE, false);\r\n if (error) {\r\n console.log(error);\r\n return 'error';\r\n } else {\r\n const updatedRules = updateTaskObjectRules(taskObjectRules, payload);\r\n commit(types.SET_TASK_OBJECT_RULES, updatedRules);\r\n return 1;\r\n }\r\n },\r\n\r\n createStepsJsonData({ state, dispatch }, payload) {\r\n return new Promise(async (resolve) => {\r\n const json = JSON.stringify(payload);\r\n const [error, data] = await TaskService.updateTask(\r\n state.selectedTask,\r\n { steps_data_json: json },\r\n false\r\n );\r\n if (error) {\r\n console.log('error in create/update steps json');\r\n resolve(false);\r\n }\r\n const stepsJsonData = JSON.parse(data.steps_data_json);\r\n dispatch('setStepsJsonData', stepsJsonData);\r\n resolve(true);\r\n });\r\n },\r\n\r\n changeAvgCycleTime({ commit, state }, payload) {\r\n const { stepTime } = state;\r\n stepTime.avgCycleTime = payload;\r\n commit(types.SET_STEP_TIME, { ...stepTime });\r\n },\r\n\r\n changeStepAvgTime({ commit, state }, payload) {\r\n const { stepTime } = state;\r\n const { step, time } = payload;\r\n stepTime.stepAvgTime = { ...stepTime.stepAvgTime, [step]: time };\r\n commit(types.SET_STEP_TIME, { ...stepTime });\r\n },\r\n\r\n async addStepTime({ commit }) {\r\n let { stepTime } = state;\r\n stepTime = convertStepTimeValuesToNumber(stepTime);\r\n commit(types.SET_IS_UPDATING_STEP_TIME, true);\r\n const payload = { stepsAvgTime: stepTime };\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n payload,\r\n false\r\n );\r\n commit(types.SET_IS_UPDATING_STEP_TIME, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_SHOW_STEP_TIME_MODAL, false);\r\n commit(types.SET_IS_STEP_TIME_EXIST, true);\r\n },\r\n\r\n changeSubStepTimes({ state, commit }, payload) {\r\n let { subStepTimesJson } = state;\r\n const { step, time } = payload;\r\n subStepTimesJson = {\r\n ...subStepTimesJson,\r\n [step]: time,\r\n };\r\n commit(types.SET_SUB_STEP_TIMES_JSON_DATA, subStepTimesJson);\r\n },\r\n\r\n setSubStepTimesJsonData({ commit, state }, payload) {\r\n // get stepIndex to name map on whole json\r\n const json = setSubStepTimesJsonFile(state, payload);\r\n commit(types.SET_SUB_STEP_TIMES_JSON_DATA, json);\r\n },\r\n\r\n async deleteStepsTime({ commit, dispatch }) {\r\n commit(types.SET_IS_UPDATING_STEP_TIME, true);\r\n const payload = { stepsAvgTime: {} };\r\n const [error] = await TaskService.updateTask(\r\n state.selectedTask,\r\n payload,\r\n false\r\n );\r\n commit(types.SET_IS_UPDATING_STEP_TIME, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n dispatch('resetStepTimeState');\r\n },\r\n\r\n resetStepTimeState({ commit }) {\r\n commit(types.SET_SHOW_STEP_TIME_MODAL, false);\r\n commit(types.SET_IS_STEP_TIME_EXIST, false);\r\n commit(types.SET_STEP_TIME, { ...initialStepTime });\r\n },\r\n\r\n moveToMergeStepPhase({ commit, state }) {\r\n const { processes, updatedJsonPayload, currentEditMode } = state;\r\n const jsonForRenamePhase = getTaskUpdateJson(processes, currentEditMode);\r\n const tempUpdatedJson = [...updatedJsonPayload, jsonForRenamePhase];\r\n commit(types.SET_CURRENT_EDIT_MODE, modes.merge);\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, tempUpdatedJson);\r\n commit(types.SET_RES_JSON_FOR_RENAME_PHASE, deepClone(processes));\r\n },\r\n\r\n moveToRenamePhaseFromMerge({ commit, state }) {\r\n const { resJsonForRenamePhase: json, updatedJsonPayload } = state;\r\n const tempUpdatedJson = updatedJsonPayload.filter(\r\n (json) => json.editMode === modes.addDelete\r\n );\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, tempUpdatedJson);\r\n commit(types.SET_CURRENT_EDIT_MODE, modes.rename);\r\n commit(types.SET_MERGE_STEPS_DICTIONARY, {});\r\n if (json.length !== 0) commit(types.SET_PROCESS, json);\r\n },\r\n\r\n moveToRenamePhaseFromAddDelete({ commit, state }) {\r\n const { processes, updatedJsonPayload, currentEditMode } = state;\r\n const jsonForAddDeletePhase = getTaskUpdateJson(processes, currentEditMode);\r\n commit(types.SET_CURRENT_EDIT_MODE, modes.rename);\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, [\r\n ...updatedJsonPayload,\r\n jsonForAddDeletePhase,\r\n ]);\r\n commit(types.SET_RES_JSON_FOR_ADD_DELETE_PHASE, deepClone(processes));\r\n },\r\n\r\n moveToAddDeletePhase({ commit, state }) {\r\n const { resJsonForAddDeletePhase: json } = state;\r\n commit(types.SET_CURRENT_EDIT_MODE, modes.addDelete);\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, []);\r\n if (json.length !== 0) commit(types.SET_PROCESS, json);\r\n },\r\n\r\n setTaskParameters({ commit }, payload) {\r\n commit(types.SET_TASK_PARAMETERS, payload);\r\n },\r\n\r\n showModal({ commit }, payload) {\r\n const { modalType, value } = payload;\r\n commit(modalType, value);\r\n },\r\n\r\n toggleLoading({ commit }, payload) {\r\n const { name, value } = payload;\r\n commit(name, value);\r\n },\r\n\r\n setUpdateTaskFromAdmin({ commit }, payload) {\r\n commit(types.SET_UPDATE_TASK_FROM_ADMIN, payload);\r\n },\r\n\r\n async getTaskStaticObjectsList({ commit }, id) {\r\n const [error, data] = await TaskService.getTaskStaticObjectList(id);\r\n\r\n if (error) return;\r\n commit(types.SET_TASK_STATIC_OBJECTS, data);\r\n },\r\n\r\n async getTaskPlaneObjectsList({ commit, state }) {\r\n const [error, data] = await TaskService.fetchTaskPlaneObjects(\r\n state.selectedTask\r\n );\r\n if (error) return;\r\n commit(types.SET_PLANE_OBJECTS, data);\r\n },\r\n\r\n setTaskImageMarkingUrl({ commit }, url) {\r\n commit(types.SET_TASK_REGION_MARK_IMAGE_URL, url);\r\n },\r\n\r\n setMergeStepsDict({ commit }, payload) {\r\n commit(types.SET_MERGE_STEPS_DICTIONARY, payload);\r\n },\r\n\r\n setStepTranslations({ commit, state }, language) {\r\n const { translationLanguage, taskDetails, translationDetails } = state;\r\n\r\n let stepsTranslationMapping = {};\r\n if (language === translationLanguage) {\r\n stepsTranslationMapping = getTranslatedSteps(\r\n taskDetails,\r\n translationDetails\r\n );\r\n } else {\r\n stepsTranslationMapping = getTranslatedSteps(taskDetails);\r\n }\r\n commit(types.SET_STEPS_TRANSLATION_MAPPING, stepsTranslationMapping);\r\n },\r\n\r\n async updateTaskSelectedModal({ state, commit }, payload) {\r\n const { selectedTask } = state;\r\n commit(types.SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION, true);\r\n const [error, _] = await TaskService.updateTask(selectedTask, {\r\n model_version: payload,\r\n });\r\n if (error) {\r\n toast.error('error occurred in updating the model on Task!');\r\n return false;\r\n }\r\n toast.info(\r\n 'Please restart the task for any version changes to take effect.'\r\n );\r\n commit(types.SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION, false);\r\n commit(types.SET_TASK_ASSOCIATE_MODEL_VERSION, payload);\r\n commit(types.SHOW_MODEL_VERSIONS_MODAL, false);\r\n return true;\r\n },\r\n changeAnnotationObjectTab({ commit }, payload) {\r\n commit(types.CURR_OBJ_ANNOTATION_MODE, payload);\r\n },\r\n\r\n setAnnotationObjectJson({ commit, state }) {\r\n const json = initAnnotationObjectsJson(state);\r\n commit(types.SET_ANNOTATION_OBJ_JSON, json);\r\n },\r\n\r\n handleShowAnnotationObjectModal({ dispatch }) {\r\n dispatch('setAnnotationObjectJson');\r\n dispatch('showModal', {\r\n modalType: types.SHOW_ANNOTATION_OBJECTS_MODAL,\r\n value: true,\r\n });\r\n },\r\n\r\n changeAnnotationStepsObjects({ commit, state }, payload) {\r\n const { stepIndex, key, value } = payload;\r\n const { currentAnnotationObjectMode, annotationObjectJson } = state;\r\n\r\n const temp = { ...annotationObjectJson };\r\n const currentmode = annotationObjectJson[currentAnnotationObjectMode];\r\n currentmode[stepIndex][key] = value;\r\n commit(types.SET_ANNOTATION_OBJ_JSON, temp);\r\n },\r\n\r\n setObjectWarning({ commit, state }, payload) {\r\n const { step, err } = payload;\r\n const { objectWarnings } = state;\r\n commit(types.SET_HAS_OBJECT_WARNING, { ...objectWarnings, [step]: err });\r\n },\r\n\r\n // setStepTranslations({ commit, state }, language) {\r\n // const { translationLanguage, taskDetails, translationDetails } = state;\r\n\r\n // let stepsTranslationMapping = {};\r\n // if (language === translationLanguage) {\r\n // stepsTranslationMapping = getTranslatedSteps(\r\n // taskDetails,\r\n // translationDetails\r\n // );\r\n // } else {\r\n // stepsTranslationMapping = getTranslatedSteps(taskDetails);\r\n // }\r\n // commit(types.SET_STEPS_TRANSLATION_MAPPING, stepsTranslationMapping);\r\n // },\r\n\r\n setStepsAssociationIds({ commit, state, rootGetters }) {\r\n const { taskObjects, taskObjectRules, optionalSteps, negativeSteps } =\r\n state;\r\n const { associateBarcodes } = rootGetters;\r\n const tempIds = new Set();\r\n taskObjects\r\n .filter((obj) => obj.step_id !== null)\r\n .forEach((o) => tempIds.add(o.step_id));\r\n taskObjectRules.forEach((rule) => tempIds.add(rule.step));\r\n associateBarcodes.forEach((barcode) => tempIds.add(barcode.step_index));\r\n optionalSteps.forEach((optional_step) => tempIds.add(optional_step));\r\n negativeSteps.forEach((neg_step) => tempIds.add(neg_step));\r\n commit(types.SET_STEPS_ASSOCIATION_IDS, tempIds);\r\n },\r\n async updateTaskModelVersion({ state, commit }, payload) {\r\n const { selectedTask } = state;\r\n const { id, model_type } = payload;\r\n commit(types.SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION, true);\r\n const [error, _] = await TaskService.updateTask(selectedTask, {\r\n model_version: id,\r\n model_type,\r\n });\r\n if (error) {\r\n toast.error('error occurred in updating the model on Task!');\r\n return false;\r\n }\r\n toast.info(\r\n 'Please restart the task for any version changes to take effect.'\r\n );\r\n commit(types.SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION, false);\r\n commit(types.SET_TASK_ASSOCIATE_MODEL_VERSION, id);\r\n commit(types.SHOW_MODEL_VERSIONS_MODAL, false);\r\n return true;\r\n },\r\n\r\n async get3dSupportInfo({ commit }, taskId) {\r\n let is3dSupport = false;\r\n var [error, data] = await DepthRegionService.isTaskSupport3D(taskId);\r\n if (error) {\r\n is3dSupport = false;\r\n }\r\n is3dSupport = data?.is_3d;\r\n commit(types.SET_IS3D_TASK, is3dSupport);\r\n },\r\n setModelChoice({ commit }, modelChoice) {\r\n commit(types.SET_MODEL_CHOICE, modelChoice);\r\n },\r\n setMaxCycleTime({ commit }, modelChoice) {\r\n commit(types.SET_MAX_CYCLE_TIME, modelChoice);\r\n },\r\n\r\n async getTaskStepsMediaObj({ commit }, taskId) {\r\n var [error, data] = await TaskService.getTaskStepMediaObjects(taskId);\r\n if (error) {\r\n console.log('error');\r\n }\r\n commit(types.SET_TASK_STEP_MEDIA_OBJ, data.data);\r\n },\r\n\r\n async patchTaskLastUpdate({ state }) {\r\n const [err, data] = await TaskService.patchTaskLastUpdate(\r\n state.selectedTask\r\n );\r\n if (err) {\r\n console.log('last update error');\r\n }\r\n },\r\n\r\n async createRectificationSteps({ state }, payload) {\r\n console.log(payload);\r\n const [err, data] = await TaskService.createRectificationSteps(payload);\r\n if (err) {\r\n console.log('last update error');\r\n }\r\n },\r\n\r\n async fetchedRectificationSteps({ commit }) {\r\n const [err, data] = await TaskService.fetchedRectificationSteps(\r\n state.selectedTask\r\n );\r\n commit(types.SET_RECTIFICATION_STEPS, data);\r\n if (err) {\r\n console.log('last update error');\r\n }\r\n return data;\r\n },\r\n\r\n async deleteRectificationStep({ commit }, payload) {\r\n const [err, data] = await TaskService.deleteRectificationStep(payload);\r\n if (err) {\r\n console.log('last update error');\r\n }\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_RECTIFICATION_STEPS](state, payload) {\r\n state.rectificationSteps = payload;\r\n },\r\n [types.SYNC_ID_TO_ENTITY_ID_MAPPING](state, payload) {\r\n state.idToEntityIdMapping[payload.key] = payload.value;\r\n },\r\n [types.SET_MISSED_STEP_SELECTED](state, payload) {\r\n state.isMissedStepsSelected = payload;\r\n },\r\n [types.SET_STEP_SELECTED_FOR_INTERVENTIONS](state, payload) {\r\n state.isStepsSelectedForInterventions = payload;\r\n },\r\n [types.SET_TASKS](state, payload) {\r\n state.allTasks = payload;\r\n },\r\n [types.SET_TRAINED_TASKS](state, payload) {\r\n state.trainedTasks = payload;\r\n },\r\n [types.SET_SELECTED_TASK](state, payload) {\r\n state.selectedTask = payload;\r\n },\r\n [types.SET_IS3D_TASK](state, payload) {\r\n state.isTask3d = payload;\r\n },\r\n [types.SET_MODEL_CHOICE](state, payload) {\r\n state.modelChoice = payload;\r\n },\r\n [types.SET_TASK_NAME](state, payload) {\r\n state.taskName = payload;\r\n },\r\n [types.SET_TASK_DETAILS](state, payload) {\r\n state.taskDetails = payload;\r\n },\r\n [types.SET_TASK_STEPS_COUNT](state, payload) {\r\n state.taskStepsCount = payload;\r\n },\r\n [types.SET_IS_TASK_STARRED](state, payload) {\r\n state.isTaskStarred = payload;\r\n },\r\n [types.SET_IS_MULTI_PROCESS_TASK](state, payload) {\r\n state.isMultiProcessTask = payload;\r\n },\r\n [types.SET_PROCESS_TO_STEP_LIST_MAP](state, payload) {\r\n state.processToStepListMap = payload;\r\n },\r\n [types.SET_TASK_JSON](state, payload) {\r\n state.taskJson = payload;\r\n },\r\n [types.SET_IS_ADDING_TRANSLATION](state, payload) {\r\n state.isAddingTranslation = payload;\r\n },\r\n [types.SET_IS_DELETING_TRANSLATION](state, payload) {\r\n state.isDeletingTranslation = payload;\r\n },\r\n [types.SET_IS_TRANSLATION](state, payload) {\r\n state.isTranslation = payload;\r\n },\r\n [types.SET_IS_TRANSLATION_EDIT](state, payload) {\r\n state.isTranslationEdit = payload;\r\n },\r\n [types.SET_TRANSLATED_TASK_NAME](state, payload) {\r\n state.translatedTaskName = payload;\r\n },\r\n [types.SET_TRANSLATION_DETAILS](state, payload) {\r\n state.translationDetails = payload;\r\n },\r\n [types.SET_TRANSLATION_LANGUAGE](state, payload) {\r\n state.translationLanguage = payload;\r\n },\r\n [types.SET_PROCESS_TRANSLATION](state, payload) {\r\n state.processesTranslation = payload;\r\n },\r\n [types.SET_SELECTED_LANGUAGE](state, payload) {\r\n state.selectedLang = payload;\r\n },\r\n [types.SET_NEGATIVE_STEPS](state, payload) {\r\n state.negativeSteps = payload;\r\n },\r\n [types.SET_TASK_PROCESSES](state, payload) {\r\n state.taskProcesses = payload;\r\n },\r\n [types.SET_PROCESS](state, payload) {\r\n state.processes = payload;\r\n },\r\n [types.SET_PREV_STEPS_JSON](state, payload) {\r\n state.prevStepsJson = payload;\r\n },\r\n [types.SET_CURRENT_EDIT_MODE](state, payload) {\r\n state.currentEditMode = payload;\r\n },\r\n [types.SET_NEW_TASK](state, payload) {\r\n state.newTask = payload;\r\n },\r\n [types.SET_TASK_STRING](state, payload) {\r\n state.taskString = payload;\r\n },\r\n [types.SET_UPDATED_JSON_PAYLOAD](state, payload) {\r\n state.updatedJsonPayload = payload;\r\n },\r\n [types.SET_RES_JSON_FOR_ADD_DELETE_PHASE](state, payload) {\r\n state.resJsonForAddDeletePhase = payload;\r\n },\r\n [types.SET_TASK_UPDATE_CONFIRM_MODAL](state, payload) {\r\n state.taskUpdateConfirmModal = payload;\r\n },\r\n [types.SET_IS_TASK_EDIT](state, payload) {\r\n state.isTaskEdit = payload;\r\n },\r\n [types.SET_IS_FETCHING_TASKS](state, payload) {\r\n state.isFetchingTasks = payload;\r\n },\r\n [types.SET_IS_FETCHING_TASK_DETAILS](state, payload) {\r\n state.isFetchingTaskDetails = payload;\r\n },\r\n [types.SET_IS_FETCHING_TASK_STATUS](state, payload) {\r\n state.isFetchingTaskStatus = payload;\r\n },\r\n [types.SET_IS_ADDING_TASK](state, payload) {\r\n state.isAddingTask = payload;\r\n },\r\n [types.SET_IS_UPDATING_TASK_FIELDS](state, payload) {\r\n state.isUpdatingTaskFields = payload;\r\n },\r\n [types.SET_SIMILAR_STEPS](state, payload) {\r\n state.similarSteps = payload;\r\n },\r\n [types.SET_SHOW_SIMILAR_STEPS_MODAL](state, payload) {\r\n state.showSimilarStepsModal = payload;\r\n },\r\n [types.SET_IS_UPDATING_SIMILAR_STEPS](state, payload) {\r\n state.isUpdatingSimilarSteps = payload;\r\n },\r\n [types.SET_TASK_OBJECTS](state, payload) {\r\n state.taskObjects = payload;\r\n },\r\n [types.SET_TASK_OBJECT_RULES](state, payload) {\r\n state.taskObjectRules = payload;\r\n },\r\n [types.SET_INDEX_TO_STEPS_MAPPING](state, payload) {\r\n state.indexToStepsMapping = payload;\r\n },\r\n [types.SET_STEPS_TO_INDEX_MAPPING](state, payload) {\r\n state.stepsToIndexMapping = payload;\r\n },\r\n [types.SET_IS_SAVING_OBJECT_DETECTION_RULE](state, payload) {\r\n state.isSavingObjectDetectionRule = payload;\r\n },\r\n [types.SET_SHOW_STEP_TIME_MODAL](state, payload) {\r\n state.showStepTimeModal = payload;\r\n },\r\n [types.SET_STEP_TIME](state, payload) {\r\n state.stepTime = payload;\r\n },\r\n [types.SET_IS_UPDATING_STEP_TIME](state, payload) {\r\n state.isUpdatingStepTime = payload;\r\n },\r\n [types.SET_IS_STEP_TIME_EXIST](state, payload) {\r\n state.isStepTimeExist = payload;\r\n },\r\n [types.SET_SHOW_TASK_PARAMS_MODAL](state, payload) {\r\n state.showTaskParamsModal = payload;\r\n },\r\n [types.SET_IS_UPDATING_TASK_PARAMS](state, payload) {\r\n state.isUpdatingTaskParams = payload;\r\n },\r\n [types.SET_TASK_PARAMETERS](state, payload) {\r\n state.taskParameters = payload;\r\n },\r\n [types.SET_UPDATE_TASK_FROM_ADMIN](state, payload) {\r\n state.isUpdateTaskFromAdmin = payload;\r\n },\r\n [types.SET_TASK_ORGANIZATION](state, payload) {\r\n state.taskOrganization = payload;\r\n },\r\n [types.SET_SHOW_REGION_DEFINE_MODAL](state, payload) {\r\n state.showRegionDefinitionModal = payload;\r\n },\r\n [types.SET_SHOW_ASSOCIATE_REGIONS_MODAL](state, payload) {\r\n state.showAssociateRegionModal = payload;\r\n },\r\n [types.SET_TASK_STATIC_OBJECTS](state, payload) {\r\n state.taskStaticObjectsList = payload;\r\n },\r\n [types.SET_TASK_REGION_MARK_IMAGE_URL](state, payload) {\r\n state.taskRegionMarkingImgUrl = payload;\r\n },\r\n [types.SET_STEP_TO_ATTRIBUTES_MAPPING](state, payload) {\r\n state.stepToAttributesMapping = payload;\r\n },\r\n [types.SET_OPTIONAL_STEPS](state, payload) {\r\n state.optionalSteps = payload;\r\n },\r\n [types.SET_RES_JSON_FOR_RENAME_PHASE](state, payload) {\r\n state.resJsonForRenamePhase = payload;\r\n },\r\n [types.SET_MERGE_STEPS_DICTIONARY](state, payload) {\r\n state.mergeStepsDict = payload;\r\n },\r\n [types.SET_SUB_STEP_TO_STEP_MAPPING](state, payload) {\r\n state.subStepToStepMapping = payload;\r\n },\r\n [types.SET_STEPS_JSON_DATA](state, payload) {\r\n state.stepsJsonData = payload;\r\n },\r\n [types.SET_OBJECT_DETECTION_RULE_UPDATE_DATA](state, payload) {\r\n state.objectDetectionRuleUpdatedData = payload;\r\n },\r\n [types.SET_SUB_STEP_TIMES_JSON_DATA](state, payload) {\r\n state.subStepTimesJson = payload;\r\n },\r\n [types.SHOW_MODEL_VERSIONS_MODAL](state, payload) {\r\n state.showModelVersionsModal = payload;\r\n },\r\n // task model version states\r\n [types.SET_TASK_ASSOCIATE_MODEL_VERSION](state, payload) {\r\n state.taskAssociatedModelVersion = payload;\r\n },\r\n [types.SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION](state, payload) {\r\n state.isUpdatingAssociateModelVersion = payload;\r\n },\r\n [types.SHOW_ANNOTATION_OBJECTS_MODAL](state, payload) {\r\n state.showAnnotationObjectsModal = payload;\r\n },\r\n [types.CURR_OBJ_ANNOTATION_MODE](state, payload) {\r\n state.currentAnnotationObjectMode = payload;\r\n },\r\n [types.SET_ANNOTATION_OBJ_JSON](state, payload) {\r\n state.annotationObjectJson = payload;\r\n },\r\n [types.SET_HAS_OBJECT_WARNING](state, payload) {\r\n state.objectWarnings = payload;\r\n },\r\n [types.SET_ID_TO_OBJ_MAPPING](state, payload) {\r\n state.idToObjectMapping = payload;\r\n },\r\n [types.SET_OBJ_TO_ID_MAPPING](state, payload) {\r\n state.objectToIdMapping = payload;\r\n },\r\n [types.SET_STEPS_TRANSLATION_MAPPING](state, payload) {\r\n state.stepsTranslationMapping = payload;\r\n },\r\n [types.SHOW_MODEL_VERSIONS_MODAL](state, payload) {\r\n state.showModelVersionsModal = payload;\r\n },\r\n // task model version states\r\n [types.SET_TASK_ASSOCIATE_MODEL_VERSION](state, payload) {\r\n state.taskAssociatedModelVersion = payload;\r\n },\r\n [types.SET_STEPS_ASSOCIATION_IDS](state, payload) {\r\n state.stepsAssociationIds = payload;\r\n },\r\n [types.SET_SHOW_OD_SETUP_MODAL](state, payload) {\r\n state.showODSetupModal = payload;\r\n },\r\n [types.SET_SHOW_PROJECTOR_REGION_MODAL](state, payload) {\r\n state.showProjectorRegionModal = payload;\r\n },\r\n [types.SET_PLANE_OBJECTS](state, payload) {\r\n state.planeObjectsList = payload;\r\n },\r\n [types.SET_TASK_STATIC_IMAGE_ID](state, payload) {\r\n state.taskStaticAnnotationImage = payload;\r\n },\r\n [types.SET_TASK_CREATED_AT](state, payload) {\r\n state.taskCreatedAt = payload;\r\n },\r\n [types.SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED](state, payload) {\r\n state.isAddBackgroundTimeToStepTimeEnabled = payload;\r\n },\r\n [types.SET_MAX_CYCLE_TIME](state, payload) {\r\n state.maxCycleTime = payload;\r\n },\r\n [types.SET_SHOW_UPLOAD_MEDIA_MODAL](state, payload) {\r\n state.showUploadMediaModal = payload;\r\n },\r\n [types.SET_TASK_STEP_MEDIA_OBJ](state, payload) {\r\n state.taskStepsMediaObject = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import apiHelper from './index';\r\n\r\nconst fetchVirtualTasks = async (\r\n parentTaskId,\r\n spinner = true,\r\n queryParams = {}\r\n) => {\r\n return await apiHelper.get(\r\n `organization/task/virtual_tasks/${parentTaskId}/`,\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nexport default {\r\n fetchVirtualTasks,\r\n};\r\n","import TaskService from 'src/services/tasks';\r\nimport VirtualTaskService from 'src/services/virtualTasks';\r\nimport { getIndexToStepMapping, getTaskNameAndProcess } from 'src/utils/task';\r\nimport types from '../mutation-types';\r\n\r\nconst state = {\r\n virtualTasks: [],\r\n selectedVirtualTask: null,\r\n virtualTaskNegativeSteps: [],\r\n virtualTaskOptionalSteps: [],\r\n virtualTaskIndexToStepMap: {},\r\n isParentOfVirtualTasks: false,\r\n};\r\n\r\nconst getters = {\r\n virtualTasks: (state) => state.virtualTasks,\r\n selectedVirtualTask: (state) => state.selectedVirtualTask,\r\n virtualTaskNegativeSteps: (state) => state.virtualTaskNegativeSteps,\r\n virtualTaskOptionalSteps: (state) => state.virtualTaskOptionalSteps,\r\n virtualTaskIndexToStepMap: (state) => state.virtualTaskIndexToStepMap,\r\n isParentOfVirtualTasks: (state) => state.isParentOfVirtualTasks,\r\n};\r\n\r\nconst actions = {\r\n setSelectedVirtualTask({ commit }, taskId) {\r\n commit(types.SET_SELECTED_VIRTUAL_TASK, taskId);\r\n },\r\n\r\n async fetchVirtualTasks({ commit }, parentTaskId) {\r\n const [error, data] = await VirtualTaskService.fetchVirtualTasks(\r\n parentTaskId,\r\n false\r\n );\r\n if (error) {\r\n console.log('Unable to fetch Virtual Tasks!');\r\n return;\r\n }\r\n commit(types.SET_VIRTUAL_TASKS, data);\r\n commit(types.SET_IS_PARENT_OF_VIRTUAL_TASKS, data.length > 0);\r\n },\r\n\r\n async fetchVirtualTaskDetails({ commit }, taskId) {\r\n const [error, data] = await TaskService.fetchTaskDetails(taskId, false);\r\n if (error) {\r\n console.log('error fetch virtual task details:', error);\r\n return;\r\n }\r\n const { task_detail, negativeSteps, optional_steps } = data;\r\n\r\n const { processes } = getTaskNameAndProcess(task_detail);\r\n const indexToStepMapping = getIndexToStepMapping(processes);\r\n\r\n commit(types.SET_VIRTUAL_TASK_NEGATIVE_STEPS, negativeSteps);\r\n commit(types.SET_VIRTUAL_TASK_OPTIONAL_STEPS, optional_steps);\r\n commit(types.SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP, indexToStepMapping);\r\n },\r\n\r\n resetVirtualTaskStates({ commit }) {\r\n commit(types.SET_VIRTUAL_TASK_NEGATIVE_STEPS, []);\r\n commit(types.SET_VIRTUAL_TASK_OPTIONAL_STEPS, []);\r\n commit(types.SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP, {});\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_VIRTUAL_TASKS](state, payload) {\r\n state.virtualTasks = payload;\r\n },\r\n [types.SET_SELECTED_VIRTUAL_TASK](state, payload) {\r\n state.selectedVirtualTask = payload;\r\n },\r\n [types.SET_VIRTUAL_TASK_NEGATIVE_STEPS](state, payload) {\r\n state.virtualTaskNegativeSteps = payload;\r\n },\r\n [types.SET_VIRTUAL_TASK_OPTIONAL_STEPS](state, payload) {\r\n state.virtualTaskOptionalSteps = payload;\r\n },\r\n [types.SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP](state, payload) {\r\n state.virtualTaskIndexToStepMap = payload;\r\n },\r\n [types.SET_IS_PARENT_OF_VIRTUAL_TASKS](state, payload) {\r\n state.isParentOfVirtualTasks = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import dayjs from 'dayjs';\r\nimport { dateTimeFormat, timeFormat } from 'src/config/date-format-config';\r\n\r\nconst defaultFormat = 'MM/DD/YY, HH:mm:ss';\r\n\r\nexport default {\r\n getLocalDate(date = new Date().toISOString(), format = dateTimeFormat) {\r\n const _date = `${dayjs(date).format(format)}`;\r\n return _date;\r\n },\r\n\r\n reformatDate(date) {\r\n const temp = new Date(date).toLocaleDateString().split('/');\r\n temp.unshift(temp.pop());\r\n return temp.join('-');\r\n },\r\n\r\n formatDate(dateString, format = defaultFormat) {\r\n if (!dateString) return '';\r\n return dayjs(dateString).format(format);\r\n },\r\n\r\n dateDifference(date1, date2, unit, isDecimal = false) {\r\n const d1 = dayjs(date1);\r\n const d2 = dayjs(date2);\r\n return d1.diff(d2, unit, isDecimal);\r\n },\r\n\r\n getFormattedDate(date_value) {\r\n const date = new Date(date_value);\r\n // const date = date_value;\r\n const year = date.getFullYear();\r\n let month = date.getMonth() + 1;\r\n let dt = date.getDate();\r\n\r\n if (dt < 10) {\r\n dt = '0' + dt;\r\n }\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n\r\n const formattedDate = year + '-' + month + '-' + dt;\r\n return formattedDate;\r\n },\r\n\r\n getTimeFromDate(dateString) {\r\n if (!dateString) return '';\r\n const time = dateString?.split('T').pop().replace('Z', '');\r\n return time && dayjs(time, timeFormat);\r\n },\r\n _getDate(date = new Date()) {\r\n const hoursToAdd = date.toString().split('GMT').pop().split(' ')[0] / 100;\r\n return dayjs(date.toISOString(), dateTimeFormat).add(hoursToAdd, 'hour');\r\n },\r\n\r\n subtractDays(date = new Date(), daysToAdd = 0) {\r\n const hoursToAdd = date.toString().split('GMT').pop().split(' ')[0] / 100;\r\n\r\n return dayjs(date.toISOString(), dateTimeFormat)\r\n .add(hoursToAdd, 'hour')\r\n .subtract(daysToAdd, 'day');\r\n },\r\n\r\n subtractMonths(date = new Date(), daysToAdd = 0) {\r\n const hoursToAdd = date.toString().split('GMT').pop().split(' ')[0] / 100;\r\n\r\n return dayjs(date.toISOString(), dateTimeFormat)\r\n .add(hoursToAdd, 'hour')\r\n .subtract(daysToAdd, 'month');\r\n },\r\n\r\n getTodayStartTime() {\r\n const currentTime = new Date();\r\n const hoursToAdd =\r\n currentTime.toString().split('GMT').pop().split(' ')[0] / 100;\r\n\r\n const startOfToday = dayjs(currentTime).startOf('day'); // Start of today's date\r\n // .add(hoursToAdd, 'hour');\r\n\r\n return startOfToday;\r\n },\r\n};\r\n","export const getDeviceSerialNumToDisplayNameMap = (devices) => {\r\n return devices.reduce((res, d) => {\r\n res[d.Serial_number] = d.display_name || d.Serial_number;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getDeviceDisplayNameToSerialNumMap = (devices) => {\r\n return devices.reduce((res, d) => {\r\n res[`${d.display_name || d.Serial_number}`] = d.Serial_number;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getDeviceIdToNameMap = (devices) => {\r\n return devices.reduce((res, d) => {\r\n res[d.Device] = d.display_name || d.Serial_number;\r\n return res;\r\n }, {});\r\n};\r\nexport const getDeviceIdToSerialNumMap = (devices) => {\r\n return devices.reduce((res, d) => {\r\n res[d.Device] = d.Serial_number;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getSortedDevice = (devices) => {\r\n return [...devices]\r\n .sort((a, b) => b.starred - a.starred)\r\n ?.map((d) => ({\r\n value: d.display_name || d.Serial_number,\r\n label: (d.starred ? '⭐ ' : '') + (d.display_name || d.Serial_number),\r\n }));\r\n};\r\n\r\nexport const getSortedDeviceForTag = (devices) => {\r\n let sortedDevices = [...devices]\r\n .sort((a, b) => b.starred - a.starred)\r\n .filter((d) => d.Device)\r\n ?.map((d) => {\r\n return {\r\n value: d.Device ? d.Device : d.id,\r\n label: (d.starred ? '⭐ ' : '') + (d.display_name || d.Serial_number),\r\n };\r\n });\r\n return sortedDevices;\r\n};\r\n","","import { render } from \"./grid-icon.svg?vue&type=template&id=478a57a6\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n position: 'top-right',\r\n timeout: 5000,\r\n closeOnClick: true,\r\n pauseOnFocusLoss: true,\r\n pauseOnHover: false,\r\n draggable: true,\r\n draggablePercent: 0.6,\r\n showCloseButtonOnHover: false,\r\n hideProgressBar: true,\r\n closeButton: 'button',\r\n icon: true,\r\n rtl: false,\r\n transition: 'Vue-Toastification__fade',\r\n maxToasts: 3,\r\n newestOnTop: false,\r\n containerClassName: 'toast-container',\r\n};\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","import { render } from \"./Loading.vue?vue&type=template&id=17d1e334&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=17d1e334&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-17d1e334\"]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=045d487c\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=045d487c&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n install(Vue, options) {\r\n Vue.mixin({\r\n created() {\r\n this.$store.dispatch(\"setCurrentObject\", this);\r\n },\r\n });\r\n },\r\n};\r\n","\r\n\r\n","const requireModule = require.context('.', false, /\\.svg$/); // Get svg files inside modules folder\r\n\r\nconst modules = {};\r\n\r\nrequireModule.keys().forEach((filePath) => {\r\n if (filePath === './index.js') return;\r\n\r\n const fileName = filePath\r\n .replace('.svg', '')\r\n .replace('./', '')\r\n .split('-')\r\n .map((word) => `${word[0].toUpperCase()}${word.slice(1)}`)\r\n .join('');\r\n\r\n modules[`${fileName}`] = requireModule(filePath).default;\r\n});\r\n\r\nexport default modules;\r\n","import { render } from \"./CustomIcon.vue?vue&type=template&id=f497faa2\"\nimport script from \"./CustomIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CustomIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\r\n mounted(el, binding) {\r\n const onClick = (e) => {\r\n if (!el.contains(e.target)) {\r\n binding.value();\r\n }\r\n };\r\n document.addEventListener('click', onClick);\r\n el._clickOutside = onClick;\r\n },\r\n beforeUnmount(el) {\r\n document.removeEventListener('click', el._clickOutside);\r\n },\r\n};\r\n","import icons from '../assets/svg';\r\n\r\nexport default Object.keys(icons).reduce((res, key) => {\r\n res[key] = key;\r\n return res;\r\n}, {});\r\n","import { ASSETS } from 'src/constants/cdnConstants';\r\n\r\nfunction getAssetUrl(assetPath) {\r\n return (\r\n assetPath.split('.').reduce((o, i) => (o ? o[i] : ''), ASSETS) || assetPath\r\n );\r\n}\r\n\r\nexport default {\r\n beforeMount(el, binding) {\r\n const url = getAssetUrl(binding.value);\r\n if (\r\n el.tagName.toLowerCase() === 'img' ||\r\n el.tagName.toLowerCase() === 'video'\r\n ) {\r\n el.src = url;\r\n } else {\r\n el.style.backgroundImage = `url(${url})`;\r\n }\r\n },\r\n};\r\n","import Highcharts from 'highcharts';\r\n\r\n(function(H) {\r\n H.Legend.prototype.getAllItems = function() {\r\n var allItems = [];\r\n this.chart.series.forEach(series => {\r\n if (!series) return;\r\n var seriesOptions = series && series.options;\r\n if (series.type === 'xrange') {\r\n series.color = series.userOptions.color;\r\n }\r\n if (\r\n series &&\r\n H.pick(\r\n seriesOptions.showInLegend,\r\n !H.defined(seriesOptions.linkedTo) ? undefined : false,\r\n true\r\n )\r\n ) {\r\n allItems = allItems.concat(\r\n series.legendItems ||\r\n (seriesOptions.legendType === 'point' ? series.data : series)\r\n );\r\n }\r\n });\r\n\r\n H.fireEvent(this, 'afterGetAllItems', { allItems: allItems });\r\n\r\n return allItems;\r\n };\r\n})(Highcharts);\r\n\r\nexport default Highcharts;\r\n","import { createApp } from 'vue';\r\nimport mitt from 'mitt';\r\nimport store from './store/index';\r\nimport Toast from 'vue-toastification';\r\nimport toastOption from './config/toast-config';\r\nimport App from './App.vue';\r\nimport router from './router/index';\r\nimport Vue3VideoPlayer from '@cloudgeek/vue3-video-player';\r\nimport Vue3Tour from 'vue3-tour';\r\nimport VueTourSetup from './plugins/vue-tour-setup';\r\nimport Antd from 'ant-design-vue';\r\nimport VueFlatPickr from 'vue-flatpickr-component';\r\nimport CustomIcon from './components/shared/Components/CustomIcon.vue';\r\nimport clickOutside from './directives/clickOutside';\r\n\r\nimport 'flatpickr/dist/flatpickr.css';\r\nimport '@cloudgeek/vue3-video-player/dist/vue3-video-player.css';\r\nimport 'vue3-tour/dist/vue3-tour.css';\r\nimport 'vue3-circle-progress/dist/circle-progress.css';\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport 'ant-design-vue/dist/antd.css';\r\nimport VueKonva from 'vue3-konva';\r\nimport contextmenu from 'v-contextmenu';\r\nimport 'v-contextmenu/dist/themes/default.css';\r\nimport customIcons from './config/custom-icons-config';\r\nimport VueTelInput from 'vue-tel-input';\r\nimport 'vue-tel-input/dist/vue-tel-input.css';\r\nimport VOtpInput from 'vue3-otp-input';\r\nimport firebaseMessaging from './config/firebase-config';\r\nimport cdnDirectives from './directives/cdnDirectives';\r\n\r\n// Highcharts\r\nimport Highcharts from 'highcharts';\r\nimport SeriesLabelModule from 'highcharts/modules/series-label';\r\nimport HighchartsMore from 'highcharts/highcharts-more';\r\nimport ExportingModule from 'highcharts/modules/exporting';\r\nimport ExportDataModule from 'highcharts/modules/export-data';\r\nimport AccessibilityModule from 'highcharts/modules/accessibility';\r\nimport BoostModule from 'highcharts/modules/boost';\r\nimport HighchartsVue from 'highcharts-vue';\r\nimport XrangeModule from 'highcharts/modules/xrange.js';\r\nimport TimelineChartConfig from './components/user-panel/pages/analytics/Charts/HighCharts';\r\n\r\nSeriesLabelModule(Highcharts);\r\nHighchartsMore(Highcharts);\r\nExportingModule(Highcharts);\r\nExportDataModule(Highcharts);\r\nAccessibilityModule(Highcharts);\r\nBoostModule(Highcharts);\r\nXrangeModule(TimelineChartConfig);\r\n\r\nconst app = createApp(App);\r\n\r\nexport const emitter = mitt();\r\nconst globalOptions = {\r\n mode: 'auto',\r\n};\r\napp.config.globalProperties.emitter = emitter;\r\napp.config.globalProperties.$customIcons = customIcons;\r\napp.config.globalProperties.$messaging = firebaseMessaging;\r\n\r\napp.component('v-otp-input', VOtpInput);\r\napp.use(VueTelInput, globalOptions);\r\napp.use(store);\r\napp.use(Toast, toastOption);\r\napp.use(Vue3VideoPlayer);\r\napp.use(Vue3Tour);\r\napp.use(VueTourSetup);\r\napp.use(Antd);\r\napp.use(VueKonva);\r\napp.use(router);\r\napp.use(contextmenu);\r\napp.use(VueFlatPickr);\r\napp.provide('emitter', emitter);\r\n// app.use(Markdown);\r\napp.component('CustomIcon', CustomIcon);\r\napp.directive('click-outside', clickOutside);\r\napp.directive('cdn', cdnDirectives);\r\n\r\napp.use(HighchartsVue);\r\napp.mount('#app');\r\n","","import { render } from \"./offline-internet-icon.svg?vue&type=template&id=ea520e1a\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ApiHelper from './index';\r\n\r\nconst fetchAllFeatures = async (spinner) => {\r\n return await ApiHelper.get(`feature_control/feature/`, spinner);\r\n};\r\n\r\nconst createFeature = async (payload, spinner = true) => {\r\n return await ApiHelper.post(`feature_control/feature/`, payload, spinner);\r\n};\r\n\r\nconst suppressFeature = async (id, params = {}, spinner = true) => {\r\n return await ApiHelper.remove(\r\n `feature_control/feature/${id}`,\r\n spinner,\r\n params\r\n );\r\n};\r\n\r\nconst fetchAllFeatureSubscriptions = async (spinner = true) => {\r\n return await ApiHelper.get(`feature_control/subscribed_feature/`, spinner);\r\n};\r\n\r\nconst createFeatureSubscription = async (payload, spinner = true) => {\r\n return await ApiHelper.post(\r\n `feature_control/subscribed_feature/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteSubscriptionFeature = async (id, params = {}, spinner = true) => {\r\n return await ApiHelper.remove(\r\n `feature_control/subscribed_feature/${id}`,\r\n spinner,\r\n params\r\n );\r\n};\r\n\r\nexport default {\r\n fetchAllFeatures,\r\n createFeature,\r\n suppressFeature,\r\n fetchAllFeatureSubscriptions,\r\n createFeatureSubscription,\r\n deleteSubscriptionFeature,\r\n};\r\n","import types from '../mutation-types';\r\nimport featureControlService from 'src/services/featureControl';\r\n\r\nconst state = {\r\n features: [],\r\n featureSubscriptions: [],\r\n};\r\n\r\nconst getters = {\r\n features: (state) => state.features,\r\n featureSubscriptions: (state) => state.featureSubscriptions,\r\n};\r\n\r\nconst actions = {\r\n async addNewFeature({ commit, dispatch }, payload) {\r\n const [err, res] = await featureControlService.createFeature({\r\n name: payload.featureName,\r\n });\r\n if (err) {\r\n return;\r\n }\r\n commit(types.ADD_FEATURE, res);\r\n dispatch('getAllFeatures');\r\n },\r\n\r\n async deleteFeature({ commit, dispatch }, payload) {\r\n const [err, res] = await featureControlService.suppressFeature(\r\n payload.feature_id\r\n );\r\n if (err) {\r\n return;\r\n }\r\n commit(types.DELETE_FEATURE, res);\r\n dispatch('getAllFeatures');\r\n },\r\n\r\n async getAllFeatures({ commit }) {\r\n try {\r\n const [err, features] = await featureControlService.fetchAllFeatures();\r\n if (err) {\r\n return;\r\n }\r\n if (features && features.length >= 1) {\r\n commit(types.GET_FEATURES, features);\r\n }\r\n } catch (e) {\r\n commit(types.GET_FEATURES, []);\r\n }\r\n },\r\n\r\n async addNewFeatureSubscription({ commit, dispatch }, payload) {\r\n const [err, res] = await featureControlService.createFeatureSubscription({\r\n Feature: payload.feature_id,\r\n Organization: payload.organization_id,\r\n });\r\n if (err) {\r\n return;\r\n }\r\n dispatch('getAllFeatureSubscriptions');\r\n },\r\n\r\n async deleteFeatureSubscription({ commit, dispatch }, payload) {\r\n const [err, res] = await featureControlService.deleteSubscriptionFeature(\r\n payload.subscribed_feature_id\r\n );\r\n if (err) {\r\n return;\r\n }\r\n dispatch('getAllFeatureSubscriptions');\r\n },\r\n\r\n async getAllFeatureSubscriptions({ commit, dispatch }) {\r\n try {\r\n const [err, featureSubscriptions] =\r\n await featureControlService.fetchAllFeatureSubscriptions(false);\r\n if (err) {\r\n return;\r\n }\r\n if (featureSubscriptions && featureSubscriptions.length >= 1) {\r\n dispatch('setFeatureSubscription', featureSubscriptions);\r\n }\r\n } catch (e) {\r\n dispatch('setFeatureSubscription', []);\r\n }\r\n },\r\n\r\n setFeatureSubscription({ commit }, payload) {\r\n commit(types.SET_FEATURE_SUBSCRIPTIONS, payload);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.ADD_FEATURE](state, payload) {\r\n state.features = [...state.features, { ...payload }];\r\n },\r\n [types.DELETE_FEATURE](state, payload) {\r\n state.features = [...state.features, { ...payload }];\r\n },\r\n [types.GET_FEATURES](state, payload) {\r\n state.features = [...payload];\r\n },\r\n // [types.ADD_FEATURE_SUBSCRIPTION](state, payload) {\r\n // state.featureSubscriptions = [...state.featureSubscriptions, { ...payload }];\r\n // },\r\n // [types.DELETE_FEATURE_SUBSCRIPTION](state, payload) {\r\n // state.featureSubscriptions = [...state.featureSubscriptions, { ...payload }];\r\n // },\r\n [types.SET_FEATURE_SUBSCRIPTIONS](state, payload) {\r\n state.featureSubscriptions = [...payload];\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import { roles } from 'src/config/roles-config.js';\r\nimport types from 'src/store/mutation-types';\r\n\r\nexport const setUserDetails = async (data, commit) => {\r\n const {\r\n id,\r\n name,\r\n email,\r\n role,\r\n token,\r\n Organization,\r\n poc,\r\n is_policy_accepted,\r\n is_otp_verified,\r\n require_otp,\r\n refresh,\r\n session_key,\r\n } = data;\r\n const username = role === roles.admin ? 'Andrey Konin' : name;\r\n const org = role === roles.admin ? 'ADMINISTRATOR' : Organization;\r\n\r\n const currentTime = new Date();\r\n window.localStorage.setItem('id', id);\r\n window.localStorage.setItem('name', username);\r\n window.localStorage.setItem('email', email);\r\n window.localStorage.setItem('role', role);\r\n window.localStorage.setItem('organization', org);\r\n window.localStorage.setItem('token', token);\r\n window.localStorage.setItem('refresh', refresh);\r\n window.localStorage.setItem('timestamp', currentTime);\r\n window.localStorage.setItem('poc', poc);\r\n window.localStorage.setItem('isPolicyAccepted', is_policy_accepted);\r\n\r\n window.localStorage.setItem('require_otp', false);\r\n window.localStorage.setItem('isOtpSetup', is_otp_verified);\r\n window.localStorage.setItem('sessionKey', session_key);\r\n\r\n commit(types.SAVE_USER, username);\r\n commit(types.SAVE_USER_EMAIL, email);\r\n commit(types.SAVE_TOKEN, token);\r\n commit(types.SAVE_REFRESH_TOKEN, refresh);\r\n commit(types.SAVE_ORGANIZATION, org);\r\n commit(types.SAVE_ROLE, role);\r\n commit(types.SET_POC_FLAG, poc);\r\n commit(types.SET_POLICY_FLAG, is_policy_accepted);\r\n commit(types.SET_OTP_FLAG, is_otp_verified);\r\n commit(types.SET_REQUIRE_OTP, false);\r\n};\r\n\r\nexport const setOTPVerificationStatus = async (commit) => {\r\n window.localStorage.setItem('isOtpSetup', true);\r\n window.localStorage.setItem('require_otp', false);\r\n commit(types.SET_REQUIRE_OTP, false);\r\n commit(types.SET_OTP_FLAG, true);\r\n};\r\n\r\nexport const setOTPStatus = async (commit) => {\r\n window.localStorage.setItem('isOtpSetup', true);\r\n commit(types.SET_OTP_FLAG, true);\r\n};\r\n\r\nexport const setEmailForResendVerification = async (email, commit) => {\r\n commit(types.SET_EMAIL, email);\r\n};\r\n\r\nexport const setAzureToken = async (token, commit) => {\r\n window.localStorage.setItem('azureLogin', true);\r\n commit(types.SET_AZURE_LOGIN, true);\r\n};\r\n\r\nexport const removeAzureToken = async (commit) => {\r\n window.localStorage.removeItem('azureLogin');\r\n commit(types.SET_AZURE_LOGIN, false);\r\n};\r\n\r\nexport function getAzureLoginStatus() {\r\n return window.localStorage.getItem('azureLogin');\r\n}\r\n\r\nexport const isUserAssignedToOrg = async (data) => {\r\n const { is_admin, Organization, role } = data;\r\n return !Organization && !is_admin && role !== roles.labeler;\r\n};\r\n\r\nexport const validUserName = async (_, name) => {\r\n let validNamePattern = new RegExp(\"^[a-zA-Z]+(?:[-'\\\\s][a-zA-Z]+)*$\");\r\n if (validNamePattern.test(name)) {\r\n return Promise.resolve();\r\n }\r\n const fieldName = _.field.charAt(0).toUpperCase() + _.field.slice(1);\r\n if (name === '') return Promise.reject(`${fieldName} is required!`);\r\n return Promise.reject(\r\n 'Invalid Name. Valid name only contain letters, dashes (-) and spaces'\r\n );\r\n};\r\n","import axios from 'axios';\r\nimport { getAuthConfig, getConfig } from './config';\r\nimport ApiHelper from './index';\r\n\r\nlet config = {\r\n headers: {\r\n 'Content-Type': 'application\\\\json',\r\n 'Access-Control-Allow-Origin': '*',\r\n },\r\n};\r\n\r\nasync function fetchAllDevicesOfOrg(orgName, spinner = true, queryParams = {}) {\r\n return await ApiHelper.get(\r\n `device/device_org/${orgName}/`,\r\n spinner,\r\n queryParams\r\n );\r\n}\r\n\r\nasync function fetchAllDepartmentLessDevices(organization, spinner = true) {\r\n let [error, data] = await ApiHelper.get(\r\n 'device/' + organization + '/get_department_less_devices/',\r\n spinner\r\n );\r\n if (data) data = data.filter(({ Type }) => Type !== 'departmental device');\r\n return [error, data];\r\n}\r\n\r\nasync function assignDeviceToDepartment(\r\n organization,\r\n deviceID,\r\n payload = {},\r\n spinner = true\r\n) {\r\n return await ApiHelper.patch(\r\n 'device/' + organization + '/assign_device_to_department/' + deviceID + '/',\r\n payload,\r\n getAuthConfig(),\r\n spinner\r\n );\r\n}\r\n\r\nconst getAllOrganizations = async (spinner = true) => {\r\n return await ApiHelper.get('organization/', spinner);\r\n};\r\n\r\nconst getDeviceInfo = async (query, spinner = true) => {\r\n return await ApiHelper.get('device/devicelistadminview?' + query, spinner);\r\n};\r\n\r\nconst updateDevice = async (serialNumber, payload, spinner = true) => {\r\n return await ApiHelper.patch(`device/${serialNumber}/`, payload, spinner);\r\n};\r\n\r\nconst updateDevicePatch = async (id, payload, spinner = true) => {\r\n return await ApiHelper.patch(`device/update_device/${id}/`, payload, spinner);\r\n};\r\n\r\nconst fetchDeviceSettings = async (spinner = true, queryParams = {}) => {\r\n return await ApiHelper.get('device/device_setting/', spinner, queryParams);\r\n};\r\n\r\nconst getActiveDevicesOfOrg = async (spinner = false, queryParams = {}) => {\r\n return await ApiHelper.get(\r\n 'device/get_active_devices/',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\n// get multiple devices settings & status\r\nconst getSettingsOfActiveDevices = async (\r\n spinner = false,\r\n queryParams = {}\r\n) => {\r\n return await ApiHelper.get(\r\n 'device/multi_device_settings/',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst getStatusOfActiveDevices = async (spinner = false, queryParams = {}) => {\r\n return await ApiHelper.get('device/device_status/', spinner, queryParams);\r\n};\r\n\r\nconst updateDeviceSettings = async (\r\n organization,\r\n deviceSettingId,\r\n payload,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.patch(\r\n `device/${organization}/device_settings_update/${deviceSettingId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateAllDeviceSettingsInOrg = async (\r\n organization,\r\n payload,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.patch(\r\n `device/${organization}/update_organization_devices_settings/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\nconst updateDeviceSetting = async (\r\n deviceId,\r\n organization,\r\n payload,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.patch(\r\n `device/${organization}/device_settings_update/${deviceId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst getDevicesRunningSelectedTask = async (\r\n spinner = false,\r\n queryParams = {}\r\n) => {\r\n return await ApiHelper.get(\r\n 'organization/task/task_inference_status',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nasync function fetchBlurRegions(id, spinner = true) {\r\n return await ApiHelper.get(\r\n `device/blur_regions?device_settings=${id}`,\r\n spinner\r\n );\r\n}\r\n\r\nconst saveBlurRegions = async (payload, spinner = true) => {\r\n return await ApiHelper.post(`device/blur_regions`, payload, spinner);\r\n};\r\n\r\nconst deleteBlurRegion = async (id, spinner = true) => {\r\n return await ApiHelper.remove(\r\n `device/delete_blur_regions?ids=${id}`,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateBlurRegions = async (payload, spinner = true) => {\r\n return await ApiHelper.put(`device/blur_regions`, payload, spinner);\r\n};\r\n\r\nconst updateProjectorStatus = async (\r\n deviceId,\r\n organization,\r\n payload,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.patch(\r\n `device/${organization}/device_settings_update/${deviceId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst getDeviceDetails = async (\r\n deviceSerialNumber,\r\n organization,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.get(\r\n `device/${deviceSerialNumber}/device_details/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst setFetchAnalytics = async (serialNumber, spinner = true) => {\r\n return await ApiHelper.post(\r\n `device/set_fetch_analytics/${serialNumber}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateCurrentScreen = async (\r\n deviceId,\r\n organization,\r\n payload,\r\n spinner = true\r\n) => {\r\n return await ApiHelper.patch(\r\n `device/${organization}/device_settings_update/${deviceId}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst getDeviecesStats = async (spinner = false, queryParams = {}) => {\r\n return await ApiHelper.get('device/devices_stats/', spinner, queryParams);\r\n};\r\n\r\nconst getTaskDevices = async (taskId, spinner = false) => {\r\n return await ApiHelper.get(`device/get_device_tasks/${taskId}`, spinner);\r\n};\r\n\r\nconst getTagsDevices = async (taskId, spinner = false) => {\r\n return await ApiHelper.get(`organization/task/task_tags/${taskId}`, spinner);\r\n};\r\n\r\nconst getActiveDeviceStatus = async () => {\r\n try {\r\n const response = await axios.get(\r\n `https://backend.retrocausal.tech/lambda/send_device_status/device_status/${localStorage.getItem(\r\n 'organization'\r\n )}`,\r\n getConfig()\r\n );\r\n\r\n return [null, response.data];\r\n } catch (error) {\r\n console.error(error);\r\n return [error];\r\n }\r\n};\r\n\r\nconst getMonitoringStatus = async () => {\r\n try {\r\n const response = await axios.get(\r\n `https://backend.retrocausal.tech/lambda/send_device_status/monitoring/${localStorage.getItem(\r\n 'organization'\r\n )}`,\r\n getConfig()\r\n );\r\n\r\n return [null, response.data];\r\n } catch (error) {\r\n console.error(error);\r\n return [error];\r\n }\r\n};\r\n\r\nconst getDeviceSettingOfActiveDevice = async (\r\n serialNumber,\r\n organization,\r\n spinner = false\r\n) => {\r\n return await ApiHelper.get(\r\n `device/${organization}/device_settings/${serialNumber}/`,\r\n spinner\r\n );\r\n};\r\n\r\nconst getDeviceScreenshots = async (spinner = false, queryParams = {}) => {\r\n return await ApiHelper.get(\r\n 'organization/get_screenshot',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst getDeviceScreenshotsIntervals = async (\r\n spinner = false,\r\n queryParams = {}\r\n) => {\r\n return await ApiHelper.get(\r\n 'organization/get_screenshot_intervals',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst deleteDevice = async (serialNumber, payload, spinner = true) => {\r\n return await ApiHelper.remove(`device/${serialNumber}/`, payload, spinner);\r\n};\r\n\r\nexport default {\r\n fetchAllDevicesOfOrg,\r\n fetchAllDepartmentLessDevices,\r\n assignDeviceToDepartment,\r\n getAllOrganizations,\r\n getDeviceInfo,\r\n fetchDeviceSettings,\r\n updateDevice,\r\n getActiveDevicesOfOrg,\r\n getSettingsOfActiveDevices,\r\n getStatusOfActiveDevices,\r\n updateAllDeviceSettingsInOrg,\r\n updateDeviceSettings,\r\n updateDeviceSetting,\r\n getDevicesRunningSelectedTask,\r\n fetchBlurRegions,\r\n saveBlurRegions,\r\n deleteBlurRegion,\r\n updateBlurRegions,\r\n updateProjectorStatus,\r\n getDeviceDetails,\r\n setFetchAnalytics,\r\n updateCurrentScreen,\r\n getDeviecesStats,\r\n getActiveDeviceStatus,\r\n getDeviceSettingOfActiveDevice,\r\n getDeviceScreenshots,\r\n getDeviceScreenshotsIntervals,\r\n deleteDevice,\r\n getMonitoringStatus,\r\n updateDevicePatch,\r\n getTaskDevices,\r\n getTagsDevices,\r\n};\r\n","export default {\r\n new_task: 'NEW TASK',\r\n in_annotation: 'IN ANNOTATION',\r\n training: 'TRAINING',\r\n failed: 'FAILED',\r\n trained: 'TRAINED',\r\n};\r\n","import { getAuthConfig, getConfig } from './config';\r\nimport ApiHelper from './index';\r\n\r\nconst config = getConfig();\r\nconst authConfig = getAuthConfig();\r\n\r\nasync function signIn(payload) {\r\n return await ApiHelper.post('account/login_v2', payload, true, config);\r\n}\r\n\r\nasync function signUp(payload) {\r\n return await ApiHelper.post(\r\n 'account/register',\r\n payload,\r\n true,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function resendOtp() {\r\n return await ApiHelper.get('account/resend_otp/', true, getAuthConfig());\r\n}\r\n\r\nasync function resendVerificationEmail(payload) {\r\n return await ApiHelper.post(\r\n 'account/resend-verification-email',\r\n payload,\r\n true,\r\n config\r\n );\r\n}\r\n\r\nasync function sendVerificationEmailAdmin(payload) {\r\n return await ApiHelper.post(\r\n 'account/admin-verification-email',\r\n payload,\r\n true,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function verifyEmail(token, spinner = true) {\r\n return await ApiHelper.patch(\r\n `account/verify-email/${token}`,\r\n _,\r\n spinner,\r\n config\r\n );\r\n}\r\n\r\nasync function setOTPMethod(payload) {\r\n return await ApiHelper.patch(\r\n `account/otp_receive_mode/`,\r\n payload,\r\n true,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function sendOTP() {\r\n return await ApiHelper.get(`account/send_otp_code/`, true, getAuthConfig());\r\n}\r\n\r\nasync function verifyOTP(payload) {\r\n return await ApiHelper.post(\r\n `account/verify_otp_code/`,\r\n payload,\r\n true,\r\n getAuthConfig()\r\n );\r\n}\r\nasync function getPermissions() {\r\n return await ApiHelper.get(\r\n 'account/get-permissions/',\r\n _,\r\n true,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function acceptPolicy(email, payload) {\r\n return await ApiHelper.patch(\r\n `account/update-delete/${email}/`,\r\n payload,\r\n false,\r\n config\r\n );\r\n}\r\nasync function azureSignIn(payload) {\r\n return await ApiHelper.post('account/azure-signin/', payload, true, config);\r\n}\r\n\r\nasync function azureRefreshToken(payload) {\r\n return await ApiHelper.post(\r\n 'account/refresh-azure-token/',\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function refreshJWTToken(payload) {\r\n return await ApiHelper.post(\r\n 'account/token/refresh/',\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\nasync function azureSignUp(payload) {\r\n return await ApiHelper.post('account/azure-signup/', payload, true, config);\r\n}\r\n\r\nasync function logout() {\r\n return await ApiHelper.patch('account/logout/', _, true, getAuthConfig());\r\n}\r\n\r\nasync function forgotPassword(payload) {\r\n return await ApiHelper.patch(\r\n `account/forgot_password/`,\r\n payload,\r\n false,\r\n config\r\n );\r\n}\r\n\r\nasync function changePassword(payload) {\r\n return await ApiHelper.patch(\r\n `account/reset_password/`,\r\n payload,\r\n false,\r\n config\r\n );\r\n}\r\n\r\nasync function RequestChangePassword(payload) {\r\n return await ApiHelper.patch(\r\n `account/request_change_password/`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function RequestChangeEmail(payload) {\r\n return await ApiHelper.post(\r\n `account/request_change_email/`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function VerifyEmailChange(payload) {\r\n return await ApiHelper.patch(\r\n `account/verify-email-change/`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function UpdateWorkStationUserPassword(payload) {\r\n return await ApiHelper.patch(\r\n `account/reset_workstation_user_password/`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\nasync function AddOrgAdmin(payload) {\r\n return await ApiHelper.post(\r\n `account/register`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function RegisterAWSUser(payload) {\r\n try {\r\n const [error, res] = await ApiHelper.post(\r\n 'account/register_for_aws_subscription',\r\n payload,\r\n true,\r\n getConfig()\r\n );\r\n\r\n if (error) {\r\n const errorData =\r\n error.response?.data?.error || 'An unknown error occurred';\r\n return [errorData];\r\n }\r\n const data = res.response;\r\n\r\n return [null, data];\r\n } catch (error) {\r\n const errorData =\r\n error.response?.data?.error || 'An unknown error occurred';\r\n return [errorData];\r\n }\r\n}\r\n\r\nasync function RegisterNewAWSMarketplaceUser(payload) {\r\n try {\r\n const hostURL =\r\n 'https://h0jzksr8x6.execute-api.us-east-1.amazonaws.com/Prod/';\r\n // payload.route = '/firebase_topic_subscription';\r\n const { data } = await axios.post(`${hostUrl}subscriber`, payload, {\r\n headers: {\r\n 'Content-Type': 'application\\\\json',\r\n // \"Access-Control-Allow-Origin\" : \"*\",\r\n // \"Accept\": \"*/*\",\r\n // \"Connection\" : \"keep-alive\",\r\n // \"Access-Control-Allow-Methods\": \"GET, POST, DELETE, PUT\"\r\n },\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n }\r\n}\r\n\r\nasync function FetchOrganizations() {\r\n return await ApiHelper.get(\r\n `account/linked_organizations/`,\r\n false,\r\n null,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function SwitchOrganizationByUser(payload) {\r\n return await ApiHelper.patch(\r\n `account/switch_user_organization`,\r\n payload,\r\n false\r\n );\r\n}\r\n\r\nasync function AddUserToMultipleOrgs(payload) {\r\n return await ApiHelper.post(\r\n `account/linked_organizations`,\r\n payload,\r\n false,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function GetUserLinkedOrgByUserId(params) {\r\n return await ApiHelper.get(\r\n `account/linked_organizations`,\r\n false,\r\n params,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nasync function GetOrganizationUsers(organization, spinner = false) {\r\n return await ApiHelper.get(\r\n `account/linked_users_list/?organization=${organization}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function RemoveUserFromMultipleOrgs(params) {\r\n return await ApiHelper.remove(\r\n `account/delete_linked_organizations`,\r\n false,\r\n params,\r\n getAuthConfig()\r\n );\r\n}\r\n\r\nexport default {\r\n signIn,\r\n signUp,\r\n acceptPolicy,\r\n resendVerificationEmail,\r\n sendVerificationEmailAdmin,\r\n resendOtp,\r\n verifyEmail,\r\n setOTPMethod,\r\n verifyOTP,\r\n logout,\r\n RequestChangePassword,\r\n forgotPassword,\r\n changePassword,\r\n RequestChangeEmail,\r\n VerifyEmailChange,\r\n sendOTP,\r\n getPermissions,\r\n UpdateWorkStationUserPassword,\r\n azureSignIn,\r\n azureRefreshToken,\r\n azureSignUp,\r\n AddOrgAdmin,\r\n refreshJWTToken,\r\n RegisterAWSUser,\r\n RegisterNewAWSMarketplaceUser,\r\n FetchOrganizations,\r\n AddUserToMultipleOrgs,\r\n RemoveUserFromMultipleOrgs,\r\n GetUserLinkedOrgByUserId,\r\n SwitchOrganizationByUser,\r\n GetOrganizationUsers,\r\n};\r\n","export const vapidKey =\r\n 'BAAheBsasgT1tG0tSNenh7JCNkDzTUriAyp7Sf4I_UfzRNJhCOROary86eUwyWBaFr8v5IaF-HjbCee3IJ1qtPE';\r\n\r\nexport const validRoutesName = [\r\n 'Record Training Set',\r\n 'Deploy Model',\r\n 'Devices',\r\n 'OPCUA Explorer',\r\n 'Define Operation',\r\n];\r\n","export default {\r\n testHostUrl: 'https://dev.retrocausal.tech/',\r\n prodHostUrl: 'https://backend.retrocausal.tech/',\r\n localHostUrl: 'http://127.0.0.1:8000/',\r\n};\r\n","export const objectAnnotationModes = {\r\n annotation: 'annotation',\r\n verification: 'verification',\r\n};\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loading.vue?vue&type=style&index=0&id=17d1e334&scoped=true&lang=css\"","import ApiHelper from './index';\r\n\r\nexport const fetchArchivedCycles = async (spinner = true) => {\r\n return await ApiHelper.get('telemetry/archive_cycle/', spinner);\r\n };\r\n\r\nexport const createArchivedCycles = async (payload) => {\r\n return await ApiHelper.post('telemetry/archive_cycle/', payload);\r\n}\r\n\r\nexport const restoreArchivedCycles = async (id) => {\r\n return await ApiHelper.remove(`telemetry/archived_cycle/${id}`);\r\n}","import * as ArchivedCycleService from 'src/services/archivedCycle';\r\nimport types from '../mutation-types';\r\n\r\nconst state = {\r\n fetchedCycle:[],\r\n archivedCycles: [],\r\n showAddModelArchivedCycleModal: false,\r\n};\r\n\r\nconst getters = {\r\n showAddModelArchivedCycleModal: (state) => state.showAddModelArchivedCycleModal,\r\n archivedCycles: (state) => state.archivedCycles,\r\n};\r\n\r\nconst actions = {\r\n async fetchArchivedCycles({ commit }) {\r\n const [error, data] = await ArchivedCycleService.fetchArchivedCycles();\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n console.log('data: ', data)\r\n commit(types.SET_ARCHIVED_CYCLE_LIST, data);\r\n },\r\n\r\n async filterArchivedCycles({ commit, state }, keyword) { // Accept keyword\r\n const filteredCycles = state.fetchedCycle.filter(cycle => \r\n cycle.organization.toLowerCase().includes(keyword) ||\r\n cycle.task.toLowerCase().includes(keyword) ||\r\n cycle.device.toLowerCase().includes(keyword)\r\n );\r\n commit(types.FILTER_ARCHIVED_CYCLE_LIST, filteredCycles);\r\n },\r\n\r\n async createArchivedCycles({ commit }, payload){\r\n const [error, data] = await ArchivedCycleService.createArchivedCycles(payload);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n // commit(types.SET_ARCHIVED_CYCLE_LIST, data);\r\n },\r\n\r\n async restoreArchivedCycles({ commit }, id){\r\n const [error, data] = await ArchivedCycleService.restoreArchivedCycles(id);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n // commit(types.SET_ARCHIVED_CYCLE_LIST, data);\r\n },\r\n\r\n setShowAddModelArchivedCycleModal({ commit }, payload) {\r\n commit(types.SET_SHOW_ADD_MODEL_ARCHIVED_CYCLE, payload);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_SHOW_ADD_MODEL_ARCHIVED_CYCLE](state, payload) {\r\n state.showAddModelArchivedCycleModal = payload;\r\n },\r\n\r\n [types.FILTER_ARCHIVED_CYCLE_LIST](state, payload) {\r\n let mappedCycles = payload.map(data => {\r\n return {\r\n id: data.id,\r\n organization: data.organization,\r\n task: data.task,\r\n device: data.device,\r\n start_datetime: data.start_datetime,\r\n end_datetime: data.end_datetime\r\n }\r\n })\r\n state.archivedCycles = mappedCycles;\r\n },\r\n\r\n [types.SET_ARCHIVED_CYCLE_LIST](state, payload) {\r\n let mappedCycles = payload.map(data => {\r\n return {\r\n id: data.id,\r\n organization: data.organization,\r\n task: data.task.taskName,\r\n device: data.device.display_name || data.device.Serial_number,\r\n start_datetime: data.start_datetime,\r\n end_datetime: data.end_datetime\r\n }\r\n })\r\n state.archivedCycles = mappedCycles;\r\n state.fetchedCycle = mappedCycles;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};","const CDN_URL = process.env.VUE_APP_CDN_URL;\r\nexport const ASSETS = {\r\n // BACKGROUND_IMAGE: `${CDN_URL}/background.png`,\r\n // LOGO: `${CDN_URL}path/to/your/logo.png`,\r\n // ICON: `${CDN_URL}path/to/your/icon.png`,\r\n FUNDAMENTALS: {\r\n VIDEO_URL: {\r\n 1: `${CDN_URL}/Fundamentals/1_What_is_Kaizen.mp4`,\r\n 2: `${CDN_URL}/Fundamentals/2_WHAT_is_WORK.mp4`,\r\n 3: `${CDN_URL}/Fundamentals/3_CAT_OF_WORK.mp4`,\r\n 4: `${CDN_URL}/Fundamentals/4_TIMWOODS.mp4`,\r\n 5: `${CDN_URL}/Fundamentals/5_How_to_Identify_the_Waste.mp4`,\r\n 6: `${CDN_URL}/Fundamentals/6_521h_ecssra.mp4`,\r\n 7: `${CDN_URL}/Fundamentals/7_Therbligs.mp4`,\r\n 8: `${CDN_URL}/Fundamentals/8_Micromotion.mp4`,\r\n 9: `${CDN_URL}/Fundamentals/9_MOST.mp4`,\r\n 10: `${CDN_URL}/Fundamentals/10_PTMS.mp4`,\r\n 11: `${CDN_URL}/Fundamentals/11_MACROMOTION_ASSY_LINE.mp4`,\r\n 12: `${CDN_URL}/Fundamentals/12_BILL_OF_MATERIALS.mp4`,\r\n 13: `${CDN_URL}/Fundamentals/13_STANDARDIZE_WORK.mp4`,\r\n 14: `${CDN_URL}/Fundamentals/14_WHY_TO_FOLLOW_STD_WORK.mp4`,\r\n 15: `${CDN_URL}/Fundamentals/15_SD_WORK_Reach_Zone.mp4`,\r\n 16: `${CDN_URL}/Fundamentals/16_WORK_CELL.mp4`,\r\n 17: `${CDN_URL}/Fundamentals/Practical_Kaizen.mp4`,\r\n },\r\n },\r\n};\r\n","export default [\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: () => import('src/components/auth/Login.vue'),\r\n },\r\n {\r\n path: '/signup',\r\n name: 'Signup',\r\n component: () => import('src/components/auth/Signup.vue'),\r\n },\r\n {\r\n path: '/privacy-policy',\r\n name: 'Policy',\r\n component: () => import('src/components/auth/PrivacyPolicyV2.vue'),\r\n },\r\n {\r\n path: '/resend-verification',\r\n name: 'Resend Verification Email',\r\n component: () => import('src/components/auth/RequestVerifyEmail.vue'),\r\n },\r\n {\r\n path: '/verify-email/:token',\r\n name: 'Email Verification',\r\n component: () => import('src/components/auth/VerifyEmail.vue'),\r\n },\r\n // {\r\n // path: '/otp-selection',\r\n // name: 'OTP Selection',\r\n // component: () => import('src/components/auth/OTPSelection.vue'),\r\n // },\r\n {\r\n path: '/forgot-password',\r\n name: 'Forgot Password',\r\n component: () => import('src/components/auth/ForgotPassword.vue'),\r\n },\r\n {\r\n path: '/reset-password/:token',\r\n name: 'Reset Password',\r\n component: () => import('src/components/auth/ResetPassword.vue'),\r\n },\r\n {\r\n path: '/change-password',\r\n name: 'Change Password',\r\n component: () => import('src/components/auth/ChangePassword.vue'),\r\n },\r\n];\r\n","export const eventTypes = {\r\n 'Task Update': 'Task Update',\r\n};\r\n\r\nexport const columns = [\r\n {\r\n title: 'Event',\r\n dataIndex: 'event_type',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Recipients',\r\n dataIndex: 'recipients',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Organization',\r\n dataIndex: 'Organization',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Actions',\r\n dataIndex: 'actions',\r\n align: 'center',\r\n },\r\n];\r\n\r\nexport const eventTypeOptions = [\r\n { label: 'Task Update', value: 'Task Update' },\r\n];\r\n","import { getToken, isSupported, onMessage } from 'firebase/messaging';\r\nimport store from 'src/store';\r\nimport FCMService from 'src/services/fcm.js';\r\nimport { vapidKey } from 'src/config/fcm-config.js';\r\nimport DeviceConfig from 'src/config/device-config';\r\nimport firebaseMessaging from 'src/config/firebase-config';\r\n\r\nexport const getFCMToken = () => {\r\n return new Promise(async resolve => {\r\n try {\r\n const token = await getToken(firebaseMessaging, { vapidKey });\r\n if (!token)\r\n console.log(\r\n 'No registration token available. Request permission to generate one.'\r\n );\r\n resolve(token);\r\n store.dispatch('setFCMToken', token);\r\n } catch (error) {\r\n console.log('Error occurred in receiving a token', error);\r\n resolve(null);\r\n }\r\n });\r\n};\r\n\r\nconst subscribeToChannel = async topic => {\r\n let token = store.state.fcm.fcmToken;\r\n if (!token) {\r\n console.log('Token not found!');\r\n return;\r\n }\r\n\r\n const payload = {\r\n topic,\r\n tokens: [token],\r\n action: DeviceConfig.subscribe\r\n };\r\n\r\n const [error] = await FCMService.subscribeToChannel(payload);\r\n if (error) {\r\n console.log('Error occurred while subscribing to a channel.');\r\n return;\r\n }\r\n};\r\n\r\nconst unsubscribeToChannel = async topic => {\r\n let token = store.state.fcm.fcmToken;\r\n if (!token) {\r\n console.log('Token not found!');\r\n return;\r\n }\r\n const payload = {\r\n topic,\r\n tokens: [token],\r\n action: DeviceConfig.unsubscribe\r\n };\r\n\r\n const [error] = await FCMService.subscribeToChannel(payload);\r\n if (error) {\r\n console.log('Error occurred while unsubscribing to a channel.');\r\n return;\r\n }\r\n};\r\n\r\nexport const setupFCM = async () => {\r\n const isSupportedBrowser = await isSupported();\r\n if (!isSupportedBrowser) return;\r\n // debugger\r\n const organization = store.state.auth.organization;\r\n let fcmToken = store.state.fcm.fcmToken;\r\n const topic = `${organization}-${DeviceConfig.devices}`;\r\n\r\n if (!fcmToken) {\r\n await getFCMToken();\r\n }\r\n await subscribeToChannel(topic);\r\n};\r\n\r\n//{org_name}-seg-and-track-response\r\n\r\nexport const setupFCMforSegmentTrack = async () => {\r\n const isSupportedBrowser = await isSupported();\r\n console.log({ isSupportedBrowser });\r\n if (!isSupportedBrowser) return;\r\n // debugger\r\n const organization = store.state.auth.organization;\r\n let fcmToken = store.state.fcm.fcmToken;\r\n const topic = `${organization}-seg-and-track-response`;\r\n\r\n if (!fcmToken) {\r\n await getFCMToken();\r\n }\r\n await subscribeToChannel(topic);\r\n};\r\n\r\nexport const teardownFCM = () => {\r\n const organization = store.state.auth.organization;\r\n const topic = `${organization}-${DeviceConfig.devices}`;\r\n unsubscribeToChannel(topic); // subscribing to devices topic\r\n};\r\n\r\nexport const teardownFCMSegmentTrack = () => {\r\n const organization = store.state.auth.organization;\r\n const topic = `${organization}-seg-and-track-response`;\r\n unsubscribeToChannel(topic); // subscribing to devices topic\r\n};\r\n\r\nexport const messaging = firebaseMessaging;\r\nexport const handleMessage = onMessage;\r\n","import ApiHelper from './index';\r\n\r\nconst getTraceVideos = async (spinner = true, queryParams) => {\r\n return await ApiHelper.get('telemetry/trace/', spinner, queryParams);\r\n};\r\n\r\nconst getTraceVideosV2 = async (spinner = true, queryParams) => {\r\n return await ApiHelper.get('telemetry/trace/v2', spinner, queryParams);\r\n};\r\n\r\nconst fetchCyclesDetails = async (payload, spinner = true) => {\r\n return await ApiHelper.post('telemetry/fetch_cycles/', payload, spinner);\r\n};\r\n\r\nconst fetchCyclesDetailsV2 = async (spinner = true, queryParams) => {\r\n return await ApiHelper.get('telemetry/fetch_cycles/v2', spinner, queryParams);\r\n};\r\n\r\nconst fetchMetaData = async (queryParams, spinner = false) => {\r\n return await ApiHelper.get(\r\n '/telemetry/unique_metadata_keys/',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst fetchTopFivePercentile = async (spinner = true, queryParams) => {\r\n return await ApiHelper.get(\r\n 'telemetry/top_five_percentile',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst getTraceCycleRecordData = async (queryParams, spinner = false) => {\r\n return await ApiHelper.get(\r\n 'telemetry/trace/trace_single_cycle_details/',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst archiveCycle = async (cycleId) => {\r\n return await ApiHelper.remove(`/telemetry/cycle/${cycleId}/`);\r\n};\r\n\r\nconst revertCycle = async (id, payload) => {\r\n return await ApiHelper.patch(`telemetry/cycle/${id}`, payload, false);\r\n};\r\n\r\nconst addTimeStampTags = async (payload) => {\r\n return await ApiHelper.post(\r\n `organization/tag_time_stamp_videos_view`,\r\n payload,\r\n false\r\n );\r\n};\r\n\r\nconst getTimeStampTags = async (taskRecordId) => {\r\n return await ApiHelper.get(`organization/tag_time_stamp_videos_view`, false, {\r\n task_record: taskRecordId,\r\n });\r\n};\r\n\r\nconst removeTimeStampTags = async (id) => {\r\n return await ApiHelper.remove(\r\n `organization/tag_time_stamp_video/${id}`,\r\n false\r\n );\r\n};\r\n\r\nexport default {\r\n getTraceVideos,\r\n fetchCyclesDetails,\r\n getTraceVideosV2,\r\n fetchCyclesDetailsV2,\r\n fetchTopFivePercentile,\r\n archiveCycle,\r\n getTraceCycleRecordData,\r\n fetchMetaData,\r\n revertCycle,\r\n addTimeStampTags,\r\n getTimeStampTags,\r\n removeTimeStampTags,\r\n};\r\n","import { useToast } from 'vue-toastification';\r\nimport httpClient from '../../service/httpClient';\r\nimport types from '../mutation-types';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = {\r\n pendingUserList: [],\r\n};\r\n\r\nconst getters = {\r\n pendingUserList: (state) => state.pendingUserList,\r\n};\r\n\r\nconst actions = {\r\n async getPendingUsersList({ commit }) {\r\n const response = await httpClient.get(\r\n 'account/users_list?is_admin=false&is_active=false'\r\n );\r\n commit(types.GET_PENDING_USERS, response);\r\n },\r\n async approveUser({ commit, dispatch }, payload) {\r\n const { email, roleId } = payload;\r\n const approveResponse = await httpClient.put(\r\n `account/approve_user`,\r\n '',\r\n JSON.stringify({ email, roleId }),\r\n true,\r\n true,\r\n true,\r\n 'User approved successfully!'\r\n );\r\n if (approveResponse === 'error') {\r\n toast.error('Error in Approving User');\r\n return approveResponse;\r\n }\r\n dispatch('getPendingUsersList');\r\n const orgResponse = await httpClient.put(\r\n 'account/',\r\n 'assign_user_org',\r\n JSON.stringify(payload),\r\n true,\r\n true,\r\n false\r\n );\r\n if (orgResponse === 'error') {\r\n toast.error('Error occured while setting the organisation');\r\n return orgResponse;\r\n } else {\r\n return 'success';\r\n }\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.GET_PENDING_USERS](state, payload) {\r\n state.pendingUserList = [...payload];\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import apiHelper from './index';\r\n\r\nconst allUsers = async (\r\n page,\r\n params = { key: 'username', value: '' },\r\n spinner = false\r\n) => {\r\n return await apiHelper.get(\r\n `account/users_list/v2?is_admin=false&is_active=true&page=${page}` +\r\n (params.value ? `&${params.key}=${params.value}` : ''),\r\n spinner\r\n );\r\n};\r\n\r\nconst allRoles = async (spinner = true) => {\r\n return await apiHelper.get('account/roles/', spinner);\r\n};\r\n\r\nconst addNewRole = async (payload, spinner = false) => {\r\n return await apiHelper.post('account/roles/', { name: payload });\r\n};\r\n\r\nconst deleteUser = async (userEmail, spinner = true) => {\r\n return await apiHelper.remove(`account/update-delete/${userEmail}/`, spinner);\r\n};\r\n\r\nconst getRoleUsers = async (\r\n role,\r\n page,\r\n params = { key: 'username', value: '' },\r\n spinner = false\r\n) => {\r\n return await apiHelper.get(\r\n `account/users_list/v2?is_admin=false&is_active=true&role__name=${role}&is_org_switch=false&page=${page}` +\r\n (params.value ? `&${params.key}=${params.value}` : ''),\r\n spinner\r\n );\r\n};\r\nconst switchedUsers = async (spinner = true) => {\r\n return await apiHelper.get(\r\n 'account/users_list?is_admin=false&is_active=true&is_org_switch=true',\r\n spinner\r\n );\r\n};\r\n\r\nconst updateUser = async (userEmail, payload, spinner = true) => {\r\n return await apiHelper.patch(\r\n `account/update-delete/${userEmail}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst verifyUser = async (id, spinner = true) => {\r\n const payload = {\r\n is_email_verified: true,\r\n };\r\n return await apiHelper.patch(\r\n `account/admin-verification-email/${id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst getLockedUsersList = async (spinner = true) => {\r\n return await apiHelper.get('account/lockout_list-delete/', spinner);\r\n};\r\n\r\nconst removeUserLock = async (id, spinner = true) => {\r\n return await apiHelper.remove(\r\n `account/lockout_list-delete/?user=${id}`,\r\n spinner\r\n );\r\n};\r\n\r\nexport default {\r\n allUsers,\r\n allRoles,\r\n deleteUser,\r\n getRoleUsers,\r\n switchedUsers,\r\n updateUser,\r\n verifyUser,\r\n getLockedUsersList,\r\n removeUserLock,\r\n addNewRole,\r\n};\r\n","export const actions = {\r\n updateTask: 'update_task',\r\n imageDetector: 'sample_images_for_detector',\r\n cloneTask: 'cloning_task',\r\n trimVideo: 'trim_video',\r\n};\r\n\r\nexport const queues = {\r\n longRunningTask: 'long_running_service_queue',\r\n devQueue: 'mudassir-berry-queue',\r\n};\r\n\r\nexport const statuses = {\r\n started: 'started',\r\n finished: 'finished',\r\n};\r\n","import types from '../mutation-types';\r\nimport BinaryDeploymentServices from '../../services/binaryDevelopments';\r\nimport dateHelper from '../../components/shared/Helpers/dateHelper.js';\r\n\r\nimport { useToast } from 'vue-toastification';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = {\r\n releases: [],\r\n isLoading: false,\r\n latestBranchId: {},\r\n latestDate: {},\r\n latestDeployment: {},\r\n currentPage: 1,\r\n totalResult: 0,\r\n latestRetroGuiDevBranch: {},\r\n};\r\n\r\nconst getters = {\r\n releases: (state) => state.releases,\r\n isLoading: (state) => state.isLoading,\r\n latestBranchId: (state) => state.latestBranchId,\r\n latestDate: (state) => state.latestDate,\r\n latestDeployment: (state) => state.latestDeployment,\r\n currentPage: (state) => state.currentPage,\r\n totalResult: (state) => state.totalResult,\r\n latestRetroGuiDevBranch: (state) => state.latestRetroGuiDevBranch,\r\n};\r\n\r\nconst actions = {\r\n async getPreviousReleases({ commit }) {\r\n commit(types.SET_IS_LOADING, true);\r\n const [error, data] = await BinaryDeploymentServices.getPreviousReleases(\r\n state.currentPage\r\n );\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const count = data.count;\r\n\r\n const releases = data.results.map((el) => ({\r\n ...el,\r\n start_time: dateHelper.formatDate(el.start_time),\r\n end_time: dateHelper.formatDate(el.end_time),\r\n }));\r\n\r\n let latestDate = state.latestDate;\r\n let latestBranchId = state.latestBranchId;\r\n\r\n data.results.forEach((obj) => {\r\n const objectKey = `${obj.running_environment}-${obj.branch}`;\r\n const objDate = new Date(obj.end_time);\r\n const latestBranchDate = latestDate[objectKey] || new Date('2000-01-01');\r\n if (objDate >= latestBranchDate) {\r\n latestBranchId[objectKey] = obj.id;\r\n latestDate[objectKey] = objDate;\r\n }\r\n });\r\n\r\n commit(types.SET_RELEASES, releases);\r\n commit(types.SET_RELEASES_COUNT, count);\r\n commit(types.SET_LATEST_DATE, latestDate);\r\n commit(types.SET_LATEST_BRANCH_ID, latestBranchId);\r\n },\r\n\r\n async downloadBinaries({ commit, dispatch }, record) {\r\n let latestBranchId = state.latestBranchId;\r\n const isLatestBranch =\r\n latestBranchId[`${record.running_environment}-${record.branch}`] ===\r\n record.id;\r\n commit(types.SET_IS_LOADING, true);\r\n const [error, data] = await BinaryDeploymentServices.downloadBinaries(\r\n record.running_environment,\r\n record.branch,\r\n record.version_number,\r\n isLatestBranch\r\n );\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Could Not Download The Binaries');\r\n return;\r\n }\r\n window.open(data.link, '_blank');\r\n },\r\n\r\n async getLatestDeployment({ commit, dispatch }, env) {\r\n commit(types.SET_IS_LOADING, true);\r\n const [error, data] = await BinaryDeploymentServices.getLatestDeployment(\r\n env\r\n );\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Could Not Download The Binaries');\r\n return;\r\n }\r\n const latestDeployment = {\r\n show: true,\r\n env: data.running_environment,\r\n version: data.version_number,\r\n branch: data.branch,\r\n status: data.currentState,\r\n };\r\n commit(types.SET_LATEST_DEPLOYMENT, latestDeployment);\r\n },\r\n\r\n async getLatestDeployableBranch({ commit }) {\r\n commit(types.SET_IS_LOADING, true);\r\n const [\r\n error,\r\n data,\r\n ] = await BinaryDeploymentServices.getLatestDeployableBranch();\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const latestRetroGuiDevBranch = {\r\n env: data.running_environment,\r\n version: data.version_number,\r\n branch: data.branch,\r\n status: data.currentState,\r\n };\r\n commit(types.SET_LATEST_RETRO_GUI_BRANCH_DEV, latestRetroGuiDevBranch);\r\n },\r\n\r\n async deleteBranchFromAWS({ commit, dispatch }, delete_record) {\r\n commit(types.SET_IS_LOADING, true);\r\n console.log(\r\n `In Stores: ${delete_record.running_environment} ${delete_record.branch} ${delete_record.id}`\r\n );\r\n const [error, data] = await BinaryDeploymentServices.deleteBranchFromAWS(\r\n delete_record.running_environment,\r\n delete_record.branch,\r\n delete_record.id\r\n );\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n toast.success(data.body);\r\n dispatch('getPreviousReleases');\r\n },\r\n\r\n async moveBranchToDev({ commit, dispatch }, payload) {\r\n commit(types.SET_IS_LOADING, true);\r\n const [error, data] = await BinaryDeploymentServices.moveBranchToDev(\r\n payload.version,\r\n payload.env\r\n );\r\n commit(types.SET_IS_LOADING, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error(data.error);\r\n return;\r\n }\r\n toast.success(data.body);\r\n dispatch('getPreviousReleases');\r\n },\r\n\r\n setCurrentPage({ commit, dispatch }, pageNumber) {\r\n commit(types.SET_CURRENT_PAGE_RELEASES, pageNumber);\r\n dispatch('getPreviousReleases');\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_RELEASES](state, payload) {\r\n state.releases = payload;\r\n },\r\n [types.SET_IS_LOADING](state, payload) {\r\n state.isLoading = payload;\r\n },\r\n [types.SET_LATEST_BRANCH_ID](state, payload) {\r\n state.latestBranchId = payload;\r\n },\r\n [types.SET_LATEST_DATE](state, payload) {\r\n state.latestDate = payload;\r\n },\r\n [types.SET_LATEST_DEPLOYMENT](state, payload) {\r\n state.latestDeployment = payload;\r\n },\r\n [types.SET_CURRENT_PAGE_RELEASES](state, payload) {\r\n state.currentPage = payload;\r\n },\r\n [types.SET_RELEASES_COUNT](state, payload) {\r\n state.totalResult = payload;\r\n },\r\n [types.SET_LATEST_RETRO_GUI_BRANCH_DEV](state, payload) {\r\n state.latestRetroGuiDevBranch = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import axios from 'axios';\r\nimport baseUrl from './baseUrl';\r\nimport ApiHelper from './index';\r\n// import { getHostUrl } from 'src/service/httpClient';\r\n\r\n// const URL =\r\n// 'https://5vzjp9dxua.execute-api.us-east-2.amazonaws.com/prod/firebase_topic_subscription';\r\n\r\nlet config = {\r\n headers: {\r\n 'Content-Type': 'application\\\\json',\r\n // \"Access-Control-Allow-Origin\" : \"*\",\r\n // \"Accept\": \"*/*\",\r\n // \"Connection\" : \"keep-alive\",\r\n // \"Access-Control-Allow-Methods\": \"GET, POST, DELETE, PUT\"\r\n },\r\n};\r\n\r\nconst hostUrl = baseUrl.prodHostUrl;\r\n\r\nconst URL =\r\n 'https://637chban56fnlgl4hw6mlvv2740gsmuj.lambda-url.us-east-2.on.aws/';\r\n\r\n// const Lamba_URL =\r\n// 'https://xwhs7jwvl3.execute-api.us-east-2.amazonaws.com/Demo/send_message_to_lambda';\r\n\r\nconst subscribeToChannel = async (payload) => {\r\n try {\r\n payload.route = '/firebase_topic_subscription';\r\n const { data } = await axios.post(\r\n `${hostUrl}firebase/topic_subscription/`,\r\n payload,\r\n config\r\n );\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n }\r\n};\r\n\r\nconst unsubscribeToChannel = async (payload) => {\r\n try {\r\n const { data } = await axios.delete(URL, payload);\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n }\r\n};\r\n\r\nconst sendMessageToRabbitMQ = async (payload) => {\r\n try {\r\n const [error, res] = await ApiHelper.post(\r\n `generic/send_message_to_sqs`,\r\n payload\r\n );\r\n console.log(res, error);\r\n return [null, res];\r\n } catch (error) {\r\n return [error];\r\n }\r\n};\r\n\r\nconst sendMessageToSQS = async (payload) => {\r\n try {\r\n const [error, res] = await ApiHelper.post(\r\n `generic/send_message_to_sqs`,\r\n payload\r\n );\r\n console.log(res, error);\r\n return [null, res];\r\n } catch (error) {\r\n return [error];\r\n }\r\n};\r\n\r\nexport default {\r\n subscribeToChannel,\r\n unsubscribeToChannel,\r\n sendMessageToRabbitMQ,\r\n sendMessageToSQS,\r\n};\r\n","export default {\r\n // Auth\r\n SAVE_USER: 'SAVE_USER',\r\n SAVE_USER_EMAIL: 'SAVE_USER_EMAIL',\r\n SAVE_TOKEN: 'SAVE_TOKEN',\r\n SAVE_ORGANIZATION: 'SAVE_ORGANIZATION',\r\n SAVE_HOSTURL: 'SAVE_HOSTURL',\r\n SAVE_ROLE: 'SAVE_ROLE',\r\n LOGOUT: 'LOGOUT',\r\n SAVE_ACCESS_TOKEN: 'SAVE_ACCESS_TOKEN',\r\n SET_MSAL_INSTANCE: 'SET_MSAL_INSTANCE',\r\n SET_AZURE_LOGIN: 'SET_AZURE_LOGIN',\r\n SET_OTP_FLAG: 'SET_OTP_FLAG',\r\n SET_REQUIRE_OTP: 'SET_REQUIRE_OTP',\r\n SET_EMAIL: 'SET_EMAIL',\r\n SAVE_REFRESH_TOKEN: 'SAVE_REFRESH_TOKEN',\r\n SET_DEVICES_DATA: 'SET_IS_FETCHING_DEVICES_DATA',\r\n\r\n // Annotation\r\n SET_FRAME_STEP_SIZE: 'SET_FRAME_STEP_SIZE',\r\n SET_IS_SAVING_ANNOATION: 'SET_IS_SAVING_ANNOATION',\r\n SET_IS_SUBSTEPS_CHANGED: 'SET_IS_SUBSTEPS_CHANGED',\r\n\r\n // Task\r\n SET_TASKS: 'SET_TASK',\r\n SET_RECTIFICATION_STEPS: 'SET_RECTIFICATION_STEPS',\r\n SET_TRAINED_TASKS: 'SET_TRAINED_TASKS',\r\n SET_SELECTED_TASK: 'SET_SELECTED_TASK',\r\n SET_IS3D_TASK: 'SET_IS3D_TASK',\r\n SET_TASK_NAME: 'SET_TASK_NAME',\r\n SET_TASK_DETAILS: 'SET_TASK_DETAILS',\r\n SET_TASK_STEPS_COUNT: 'SET_TASK_STEPS_COUNT',\r\n SET_IS_TASK_STARRED: 'SET_IS_TASK_STARRED',\r\n SET_IS_MULTI_PROCESS_TASK: 'SET_IS_MULTI_PROCESS_TASK',\r\n SET_PROCESS_TO_STEP_LIST_MAP: 'SET_PROCESS_TO_STEP_LIST_MAP',\r\n SET_TASK_JSON: 'SET_TASK_JSON',\r\n SET_NEGATIVE_STEPS: 'SET_NEGATIVE_STEPS',\r\n SET_TASK_PROCESSES: 'SET_TASK_PROCESSES',\r\n SET_STEP_TO_NEGATIVE_MAPPING: 'SET_STEP_TO_NEGATIVE_MAPPING',\r\n SET_PROCESS: 'SET_PROCESS',\r\n SET_IS_ADDING_TRANSLATION: 'SET_IS_ADDING_TRANSLATION',\r\n SET_IS_DELETING_TRANSLATION: 'SET_IS_DELETING_TRANSLATION',\r\n SET_IS_TRANSLATION: 'SET_IS_TRANSLATION',\r\n SET_IS_TRANSLATION_EDIT: 'SET_IS_TRANSLATION_EDIT',\r\n SET_TRANSLATED_TASK_NAME: 'SET_TRANSLATED_TASK_NAME',\r\n SET_TRANSLATION_DETAILS: 'SET_TRANSLATION_DETAILS',\r\n SET_TRANSLATION_LANGUAGE: 'SET_TRANSLATION_LANGUAGE',\r\n SET_PROCESS_TRANSLATION: 'SET_PROCESS_TRANSLATION',\r\n SET_SELECTED_LANGUAGE: 'SET_SELECTED_LANGUAGE',\r\n SET_POC_FLAG: 'SET_POC_FLAG',\r\n SET_POLICY_FLAG: 'SET_POLICY_FLAG',\r\n SET_ORGANIZATIONS: 'SET_ORGANIZATIONS',\r\n SET_TEMPORARY_USER_INFO: 'SET_TEMPORARY_USER_INFO',\r\n SET_PREV_STEPS_JSON: 'SET_PREV_STEPS_JSON',\r\n SET_CURRENT_EDIT_MODE: 'SET_CURRENT_EDIT_MODE',\r\n SET_NEW_TASK: 'SET_NEW_TASK',\r\n SET_IS_TASK_EDIT: 'SET_IS_TASK_EDIT',\r\n SET_TASK_STRING: 'SET_TASK_STRING',\r\n SET_UPDATED_JSON_PAYLOAD: 'SET_UPDATED_JSON_PAYLOAD',\r\n SET_RES_JSON_FOR_ADD_DELETE_PHASE: 'SET_RES_JSON_FOR_ADD_DELETE_PHASE',\r\n SET_TASK_UPDATE_CONFIRM_MODAL: 'SET_TASK_UPDATE_CONFIRM_MODAL',\r\n SET_IS_FETCHING_TASKS: 'SET_IS_FETCHING_TASKS',\r\n SET_MISSED_STEP_SELECTED: 'SET_MISSED_STEP_SELECTED',\r\n SET_STEP_SELECTED_FOR_INTERVENTIONS: 'SET_STEP_SELECTED_FOR_INTERVENTIONS',\r\n SYNC_ID_TO_ENTITY_ID_MAPPING: 'SYNC_ID_TO_ENTITY_ID_MAPPING',\r\n SET_IS_FETCHING_TASK_DETAILS: 'SET_IS_FETCHING_TASK_DETAILS',\r\n SET_IS_FETCHING_TASK_STATUS: 'SET_IS_FETCHING_TASK_STATUS',\r\n SET_IS_ADDING_TASK: 'SET_IS_ADDING_TASK',\r\n SET_IS_UPDATING_TASK_FIELDS: 'SET_IS_UPDATING_TASK_FIELDS',\r\n SET_SIMILAR_STEPS: 'SET_SIMILAR_STEPS',\r\n SET_SHOW_SIMILAR_STEPS_MODAL: 'SET_SHOW_SIMILAR_STEPS_MODAL',\r\n SET_IS_UPDATING_SIMILAR_STEPS: 'SET_IS_UPDATING_SIMILAR_STEPS',\r\n SET_INDEX_TO_STEPS_MAPPING: 'SET_INDEX_TO_STEPS_MAPPING',\r\n SET_STEPS_TO_INDEX_MAPPING: 'SET_STEPS_TO_INDEX_MAPPING',\r\n SET_TASK_OBJECTS: 'SET_TASK_OBJECTS',\r\n SET_PLANE_OBJECTS: 'SET_PLANE_OBJECTS',\r\n SET_TASK_OBJECT_RULES: 'SET_TASK_OBJECT_RULES',\r\n SET_IS_SAVING_OBJECT_DETECTION_RULE: 'SET_IS_SAVING_OBJECT_DETECTION_RULE',\r\n SET_SHOW_STEP_TIME_MODAL: 'SET_SHOW_STEP_TIME_MODAL',\r\n SET_STEP_TIME: 'SET_STEP_TIME',\r\n SET_IS_UPDATING_STEP_TIME: 'SET_IS_UPDATING_STEP_TIME',\r\n SET_IS_STEP_TIME_EXIST: 'SET_IS_STEP_TIME_EXIST',\r\n SET_SHOW_TASK_PARAMS_MODAL: 'SET_SHOW_TASK_PARAMS_MODAL',\r\n SET_TASK_PARAMETERS: 'SET_TASK_PARAMETERS',\r\n SET_IS_UPDATING_TASK_PARAMS: 'SET_IS_UPDATING_TASK_PARAMS',\r\n SET_UPDATE_TASK_FROM_ADMIN: 'SET_UPDATE_TASK_FROM_ADMIN',\r\n SET_TASK_ORGANIZATION: 'SET_TASK_ORGANIZATION',\r\n SET_SHOW_REGION_DEFINE_MODAL: 'SET_SHOW_REGION_DEFINE_MODAL',\r\n SET_SHOW_ASSOCIATE_REGIONS_MODAL: 'SET_SHOW_ASSOCIATE_REGIONS_MODAL',\r\n SET_TASK_STATIC_OBJECTS: 'SET_TASK_STATIC_OBJECTS',\r\n SET_TASK_REGION_MARK_IMAGE_URL: 'SET_TASK_REGION_MARK_IMAGE_URL',\r\n SET_STEP_TO_ATTRIBUTES_MAPPING: 'SET_STEP_TO_ATTRIBUTES_MAPPING',\r\n SET_OPTIONAL_STEPS: 'SET_OPTIONAL_STEPS',\r\n SET_RES_JSON_FOR_RENAME_PHASE: 'SET_RES_JSON_FOR_RENAME_PHASE',\r\n SET_MERGE_STEPS_DICTIONARY: 'SET_MERGE_STEPS_DICTIONARY',\r\n SET_SUB_STEP_TO_STEP_MAPPING: 'SET_SUB_STEP_TO_STEP_MAPPING',\r\n SET_STEPS_JSON_DATA: 'SET_STEPS_JSON_DATA',\r\n SET_SUB_STEP_TIMES_JSON_DATA: 'SET_SUB_STEP_TIMES_JSON_DATA',\r\n SHOW_MODEL_VERSIONS_MODAL: 'SHOW_MODEL_VERSIONS_MODAL',\r\n SHOW_ANNOTATION_OBJECTS_MODAL: 'SHOW_ANNOTATION_OBJECTS_MODAL',\r\n CURR_OBJ_ANNOTATION_MODE: 'CURR_OBJ_ANNOTATION_MODE',\r\n SET_ANNOTATION_OBJ_JSON: 'SET_ANNOTATION_OBJ_JSON',\r\n SET_HAS_OBJECT_WARNING: 'SET_HAS_OBJECT_WARNING',\r\n SET_OBJECT_DETECTION_RULE_UPDATE_DATA:\r\n 'SET_OBJECT_DETECTION_RULE_UPDATE_DATA',\r\n SET_ID_TO_OBJ_MAPPING: 'SET_ID_TO_OBJ_MAPPING',\r\n SET_OBJ_TO_ID_MAPPING: 'SET_OBJ_TO_ID_MAPPING',\r\n SET_STEPS_TRANSLATION_MAPPING: 'SET_STEPS_TRANSLATION_MAPPING',\r\n SET_STEPS_ASSOCIATION_IDS: 'SET_STEPS_ASSOCIATION_IDS',\r\n SET_SHOW_OD_SETUP_MODAL: 'SET_SHOW_OD_SETUP_MODAL',\r\n SET_SHOW_PROJECTOR_REGION_MODAL: 'SET_SHOW_PROJECTOR_REGION_MODAL',\r\n SET_TASK_STATIC_IMAGE_ID: 'SET_TASK_STATIC_IMAGE_ID',\r\n SET_SHOW_UPLOAD_MEDIA_MODAL: 'SET_SHOW_UPLOAD_MEDIA_MODAL',\r\n SET_TASK_STEP_MEDIA_OBJ: 'SET_TASK_STEP_MEDIA_OBJ',\r\n\r\n // Organization\r\n SET_ORGANIZATION_LIST: 'SET_ORGANIZATION_LIST',\r\n SET_ORG_PAGINATED_LIST: 'SET_ORG_PAGINATED_LIST',\r\n SET_ORG_TOTAL_COUNT: 'SET_ORG_TOTAL_COUNT',\r\n SET_IS_LOADING_ORGANIZATIONS: 'SET_IS_LOADING_ORGANIZATIONS',\r\n SET_ORG_PAGE: 'SET_ORG_PAGE',\r\n\r\n // WebRTC\r\n SET_WEBSOCKET_CONNECTION: 'SET_WEBSOCKET_CONNECTION',\r\n\r\n // Roles\r\n GET_ROLES: 'GET_ROLES',\r\n ADD_ROLE: 'ADD_ROLE',\r\n\r\n // Users\r\n GET_PENDING_USERS: 'GET_PENDING_USERS',\r\n GET_ORGANIZATION_USERS: 'GET_ORGANIZATION_USERS',\r\n\r\n // Devices\r\n SET_TASK_CROP_PARAMS: 'SET_TASK_CROP_PARAMS',\r\n RESET_DEVICE_STATE: 'RESET_DEVICE_STATE',\r\n SET_DEVICES: 'SET_DEVICES',\r\n SET_ACTIVE_DEVICES: 'SET_ACTIVE_DEVICES',\r\n SET_TASK_TAGS: 'SET_TASK_TAGS',\r\n SYNC_TASK_TAGS: 'SYNC_TASK_TAGS',\r\n SET_MONITORING_STATUS: 'SET_MONITORING_STATUS',\r\n SET_DEVICE_TASKS: 'SET_DEVICE_TASKS',\r\n SET_STARRED_DEVICE: 'SET_STARRED_DEVICE',\r\n SET_IS_FETCHING_DEVICES: 'SET_IS_FETCHING_DEVICES',\r\n SET_DEVICE_SERIAL_NUM_TO_DISPLAY_NAME_MAP:\r\n 'SET_DEVICE_SERIAL_NUM_TO_DISPLAY_NAME_MAP',\r\n SET_DISPLAY_NAME_TO_DEVICE_SERIAL_NUM_MAP:\r\n 'SET_DISPLAY_NAME_TO_DEVICE_SERIAL_NUM_MAP',\r\n SET_DEVICE_ID_TO_NAME_MAP: 'SET_DEVICE_ID_TO_NAME_MAP',\r\n SET_DEVICE_ID_TO_DEVICE_SERIAL_NUM_MAP:\r\n 'SET_DEVICE_ID_TO_DEVICE_SERIAL_NUM_MAP',\r\n SET_DEVICE_FOR_DETAIL: 'SET_DEVICE_FOR_DETAIL',\r\n SET_ALL_DEVICES: 'SET_ALL_DEVICES',\r\n\r\n // Barcode\r\n SET_BARCODES: 'SET_BARCODES',\r\n SET_CREATING_BARCODES: 'SET_CREATING_BARCODES',\r\n SET_DELETING_BARCODES: 'SET_DELETING_BARCODES',\r\n SET_IS_FETCHING_BARCODES: 'SET_IS_FETCHING_BARCODES',\r\n SET_IS_FETCHING_ASSOCIATE_BARCODES: 'SET_IS_FETCHING_ASSOCIATE_BARCODES',\r\n SET_ASSOCIATE_BARCODES: 'SET_ASSOCIATE_BARCODES',\r\n SET_ADD_ASSOCIATE_BARCODES: 'SET_ADD_ASSOCIATE_BARCODES',\r\n SET_UPDATE_ASSOCIATE_BARCODES: 'SET_UPDATE_ASSOCIATE_BARCODES',\r\n SET_UPSERTING_ASSOCIATE_BARCODES: 'SET_UPSERTING_ASSOCIATE_BARCODES',\r\n SET_IS_REMOVING_ASSOCIATED_BARCODE: 'SET_IS_REMOVING_ASSOCIATED_BARCODE',\r\n\r\n // Telemetry\r\n SET_SELECTED_CYCLE_TYPE: 'SET_SELECTED_CYCLE_TYPE',\r\n SET_IS_FETCHING_CYCLES: 'SET_IS_FETCHING_CYCLES',\r\n SET_IS_FETCHING_TRACE: 'SET_IS_FETCHING_TRACE',\r\n SHOW_COMPARE_ANALYTICS: 'SHOW_COMPARE_ANALYTICS',\r\n SET_DATE_RANGE_FOR_COMPARISON: 'SET_DATE_RANGE_FOR_COMPARISON',\r\n SET_IS_FETCHING_ANALYTICS_FOR_COMPARISON:\r\n 'SET_IS_FETCHING_ANALYTICS_FOR_COMPARISON',\r\n SET_IS_FETCHING_META_DATA: 'SET_IS_FETCHING_META_DATA',\r\n SET_META_DATA: 'SET_META_DATA',\r\n\r\n //Obeya Room\r\n SET_VIDEOS_LIST: 'SET_VIDEOS_LIST',\r\n SET_VIDEOS_COUNT: 'SET_VIDEOS_COUNT',\r\n SET_IS_FETCHING_VIDEOS: 'SET_IS_FETCHING_VIDEOS',\r\n SET_SELECTED_VIDEO_TYPE: 'SET_SELECTED_VIDEO_TYPE',\r\n SET_ORGANIZATION_TAGS: 'SET_ORGANIZATION_TAGS',\r\n\r\n // AWS-Lambda Token\r\n SET_USER_POOL_CONFIG: 'SET_USER_POOL_CONFIG',\r\n SET_IS_FETCHING_CONFIG: 'SET_IS_FETCHING_CONFIG',\r\n SET_CREATING_AWS_TOKEN: 'SET_CREATING_AWS_TOKEN',\r\n\r\n // Feature-Control\r\n GET_FEATURES: 'GET_FEATURES',\r\n ADD_FEATURE: 'ADD_FEATURE',\r\n DELETE_FEATURE: 'DELETE_FEATURE',\r\n SET_FEATURE_SUBSCRIPTIONS: 'SET_FEATURE_SUBSCRIPTIONS',\r\n ADD_FEATURE_SUBSCRIPTION: 'ADD_FEATURE_SUBSCRIPTION',\r\n DELETE_FEATURE_SUBSCRIPTION: 'DELETE_FEATURE_SUBSCRIPTION',\r\n\r\n //Binary Deployments\r\n SET_IS_LOADING: 'SET_IS_LOADING',\r\n SET_RELEASES: 'SET_RELEASES',\r\n SET_LATEST_BRANCH_ID: 'SET_LATEST_BRANCH_ID',\r\n SET_LATEST_DATE: 'SET_LATEST_DATE',\r\n SET_LATEST_DEPLOYMENT: 'SET_LATEST_DEPLOYMENT',\r\n SET_CURRENT_PAGE_RELEASES: 'SET_CURRENT_PAGE_RELEASES',\r\n SET_RELEASES_COUNT: 'SET_RELEASES_COUNT',\r\n SET_BRANCH_TO_MOVE: 'SET_BRANCH_TO_MOVE',\r\n SET_RECORD_TO_DELETE: 'SET_RECORD_TO_DELETE',\r\n SET_LATEST_RETRO_GUI_BRANCH_DEV: 'SET_LATEST_RETRO_GUI_BRANCH_DEV',\r\n\r\n // MODEL VERSIONS\r\n SET_MODEL_VERSIONS_LIST: 'SET_MODEL_VERSIONS_LIST',\r\n SET_IS_FETCHING_MODEL_VERSIONS: 'SET_IS_FETCHING_MODEL_VERSIONS',\r\n SET_IS_UPDATING_MODEL_VERSION: 'SET_IS_UPDATING_MODEL_VERSION',\r\n SET_IS_DELETING_MODEL_VERSION: 'SET_IS_DELETING_MODEL_VERSION',\r\n SET_TASK_ASSOCIATE_MODEL_VERSION: 'SET_TASK_ASSOCIATE_MODEL',\r\n SET_IS_UPDATING_ASSOCIATE_MODEL_VERSION: 'SET_IS_UPDATING_ASSOCIATE_MODEL',\r\n SET_SHOW_UPLOAD_MODEL_BUTTON: 'SET_SHOW_UPLOAD_MODEL_BUTTON',\r\n\r\n // FCM\r\n SET_FCM_TOKEN: 'SET_FCM_TOKEN',\r\n // Remote Camera\r\n SET_REMOTE_CAMS_LIST: 'SET_REMOTE_CAMS_LIST',\r\n SET_IS_FETCHING_CAMS_LIST: 'SET_IS_FETCHING_CAMS_LIST',\r\n SET_SHOW_REMOTE_CAM_MODAL: 'SET_SHOW_REMOTE_CAM_MODAL',\r\n SET_REMOTE_CAM_MODAL_LOADER: 'SET_REMOTE_CAM_MODAL_LOADER',\r\n //Projector\r\n SET_SERIAL_NUMBER: 'SET_SERIAL_NUMBER',\r\n SET_RTC_CONNECTION: 'SET_RTC_CONNECTION',\r\n SET_DATA_CHANNEL: 'SET_DATA_CHANNEL',\r\n SET_DATA_CHANNEL_PC: 'SET_DATA_CHANNEL_PC',\r\n SET_ANSWER_SEARCHING: 'SET_ANSWER_SEARCHING',\r\n SET_ANSWER_SEARCHING_DC: 'SET_ANSWER_SEARCHING_DC',\r\n SET_DATA_CHANNEL_ICE: 'SET_DATA_CHANNEL_ICE',\r\n SET_SESSION_ID: 'SET_SESSION_ID',\r\n SET_SESSION_ID_DC: 'SET_SESSION_ID_DC',\r\n SET_RTC_CONFIGURATION: 'SET_RTC_CONFIGURATION',\r\n SET_IS_EDIT_REMOTE_DEVICE: 'SET_IS_EDIT_REMOTE_DEVICE',\r\n\r\n // Virtual Tasks\r\n SET_VIRTUAL_TASKS: 'SET_VIRTUAL_TASKS',\r\n SET_SELECTED_VIRTUAL_TASK: 'SET_SELECTED_VIRTUAL_TASK',\r\n SET_VIRTUAL_TASK_NEGATIVE_STEPS: 'SET_VIRTUAL_TASK_NEGATIVE_STEPS',\r\n SET_VIRTUAL_TASK_OPTIONAL_STEPS: 'SET_VIRTUAL_TASK_OPTIONAL_STEPS',\r\n SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP: 'SET_VIRTUAL_TASK_INDEX_TO_STEP_MAP',\r\n SET_TASK_CREATED_AT_DATE: 'SET_TASK_CREATED_AT_DATE',\r\n SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED: 'SET_IS_ADD_BACKGROUND_TIME_TO_STEP_TIME_ENABLED',\r\n SET_IS_PARENT_OF_VIRTUAL_TASKS: 'SET_IS_PARENT_OF_VIRTUAL_TASKS',\r\n\r\n // Model Types\r\n SET_MODEL_TYPES: 'SET_MODEL_TYPES',\r\n SET_IS_FETCHING_MODEL_TYPES: 'SET_IS_FETCHING_MODEL_TYPES',\r\n SET_SHOW_ADD_MODEL_TYPE_MODAL: 'SET_SHOW_ADD_MODEL_TYPE_MODAL',\r\n SET_IS_ADDING_MODEL_TYPE: 'SET_IS_ADDING_MODEL_TYPE',\r\n SET_MODEL_TYPE_TO_BE_EDITED: 'SET_MODEL_TYPE_TO_BE_EDITED',\r\n\r\n // Ergonomics\r\n SET_ERGONOMICS_VIDEOS_LIST: 'SET_ERGONOMICS_VIDEOS_LIST',\r\n SET_ERGONOMICS_VIDEOS_COUNT: 'SET_ERGONOMICS_VIDEOS_COUNT',\r\n SET_ERGONOMICS_LOADING: 'SET_ERGONOMICS_LOADING',\r\n SET_SELECTED_ERGONOMICS_RECORD: 'SET_SELECTED_ERGONOMICS_RECORD',\r\n SET_CURRENT_ERGONOMICS_RECORD_PAGE: 'SET_CURRENT_ERGONOMICS_RECORD_PAGE',\r\n SET_IS_FETCHING_JSON: 'SET_IS_FETCHING_JSON',\r\n SET_REBA_FRAMES_DATA: 'SET_REBA_FRAMES_DATA',\r\n SET_REBA_ANGLES_DATA: 'SET_REBA_ANGLES_DATA',\r\n SET_RULA_FRAMES_DATA: 'SET_RULA_FRAMES_DATA',\r\n SET_OWAS_FRAMES_DATA: 'SET_OWAS_FRAMES_DATA',\r\n SET_LOAD_PERCENTAGE_DATA: 'SET_LOAD_PERCENTAGE_DATA',\r\n SET_LOAD_TIMESTAMPS_DATA: 'SET_LOAD_TIMESTAMPS_DATA',\r\n\r\n // Kaizen Copilot\r\n SET_MESSAGES: 'SET_MESSAGES',\r\n SET_CURRENT_KAIZEN_OPTION: 'SET_CURRENT_KAIZEN_OPTION',\r\n SET_SELECTED_SHEET: 'SET_SELECTED_SHEET',\r\n SET_KAIZEN_EXTRAS: 'SET_KAIZEN_EXTRAS',\r\n\r\n // Object Detection\r\n SET_IMAGES_FOR_ANNOTATION: 'SET_IMAGES_FOR_ANNOTATION',\r\n SET_ANNOTATION_IMAGES_LOADING: 'SET_ANNOTATION_IMAGES_LOADING',\r\n SET_TOTAL_ANNOTATION_IMAGES: 'SET_TOTAL_ANNOTATION_IMAGES',\r\n SET_PREV_PAGE_LAST_IMAGE_OBJ: 'SET_PREV_PAGE_LAST_IMAGE_OBJ',\r\n SET_PREV_GROUPS: 'SET_PREV_GROUPS',\r\n SET_PREV_POLYGONS: 'SET_PREV_POLYGONS',\r\n SET_MODEL_CHOICE: 'SET_MODEL_CHOICE',\r\n SET_MAX_CYCLE_TIME: 'SET_MAX_CYCLE_TIME',\r\n SET_TASK_CREATED_AT: 'SET_TASK_CREATED_AT',\r\n\r\n // Archived Cycle\r\n SET_SHOW_ADD_MODEL_ARCHIVED_CYCLE: 'SET_SHOW_ADD_MODEL_ARCHIVED_CYCLE',\r\n SET_ARCHIVED_CYCLE_LIST: 'SET_ARCHIVED_CYCLE_LIST',\r\n FILTER_ARCHIVED_CYCLE_LIST: 'FILTER_ARCHIVED_CYCLE_LIST',\r\n};\r\n","import { createRouter, createWebHistory } from 'vue-router';\r\n// import routes from './routes';\r\nimport { roles } from 'src/config/roles-config';\r\nimport store from 'src/store';\r\nimport routes from './routes/index';\r\nconst router = createRouter({\r\n routes: routes,\r\n history: createWebHistory(),\r\n});\r\n\r\nfunction getOTPAuthValues() {\r\n try {\r\n const isOtpSetup = JSON.parse(store.getters.isOtpSetup);\r\n const require_otp = JSON.parse(store.getters.require_otp);\r\n\r\n return { isOtpSetup, require_otp };\r\n } catch {\r\n const isOtpSetup = false;\r\n const require_otp = false;\r\n return { isOtpSetup, require_otp };\r\n }\r\n\r\n // return { isOtpSetup: true, credentialCheckFlag: true };\r\n}\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n // isSessionExpired();\r\n const isTokenSet = store.getters.isTokenSet;\r\n const role = store.getters.role;\r\n const { isOtpSetup, require_otp } = getOTPAuthValues();\r\n const isAzureLogin = store.getters.azureLogin;\r\n\r\n if (\r\n !require_otp &&\r\n isOtpSetup &&\r\n isTokenSet &&\r\n to.path.includes('/reset-password/')\r\n ) {\r\n localStorage.clear();\r\n store.dispatch('changeRoute', [to.name]);\r\n next();\r\n }\r\n\r\n if (!isLoginOrSignup(to) && isValidRole(role) && !isTokenSet) {\r\n store.dispatch('clearState');\r\n }\r\n // debugger;\r\n\r\n if (require_otp && isOtpSetup && isTokenSet) {\r\n store.dispatch('clearState');\r\n }\r\n\r\n if (\r\n !isAzureLogin &&\r\n !require_otp &&\r\n isOtpSetup &&\r\n isTokenSet &&\r\n to.path.includes('otp-selection')\r\n ) {\r\n return redirectToAccuratePath(role, next);\r\n }\r\n\r\n if (\r\n !isAzureLogin &&\r\n isTokenSet &&\r\n !isOtpSetup &&\r\n !to.path.includes('otp-selection') &&\r\n !to.path.includes('privacy-policy')\r\n ) {\r\n //return next({ name: 'OTP Selection' });\r\n }\r\n\r\n if (\r\n !isAzureLogin &&\r\n !require_otp &&\r\n isTokenSet &&\r\n isLoginOrSignup(to) &&\r\n !to.path.includes('privacy-policy') &&\r\n !to.path.includes('otp-selection')\r\n ) {\r\n return redirectToAccuratePath(role, next);\r\n }\r\n\r\n if (to.path === '/') {\r\n return redirectToAccuratePath(role, next);\r\n }\r\n\r\n const { authorize } = to.meta;\r\n\r\n if (\r\n !require_otp &&\r\n isTokenSet &&\r\n !authorize?.includes(role) &&\r\n !to.path.includes('privacy-policy') &&\r\n !to.path.includes('otp-selection') &&\r\n !to.path.includes('change-password')\r\n ) {\r\n return redirectToAccuratePath(role, next);\r\n }\r\n store.dispatch('changeRoute', [to.matched[to.matched.length - 1]].name);\r\n next();\r\n});\r\n\r\nfunction redirectToAccuratePath(role, next) {\r\n switch (role) {\r\n case roles.admin:\r\n return next({ name: 'Organizations' });\r\n case roles.user:\r\n case roles.org_user:\r\n case roles.support_user:\r\n return next({ name: 'Home' });\r\n case roles.labeler:\r\n return next({ name: 'Tasks Requested' });\r\n case roles.analytics_user:\r\n return next({ name: 'Analytics' });\r\n\r\n case roles.doc_user:\r\n return next({ name: 'User Manuals' });\r\n\r\n default:\r\n store.dispatch('clearState');\r\n return next({ path: '/login' });\r\n }\r\n}\r\n\r\nfunction isSessionExpired() {\r\n var minutesDifference = calculateTimeDifference();\r\n\r\n if (minutesDifference > 24) {\r\n store.dispatch('clearState');\r\n }\r\n}\r\n\r\nfunction calculateTimeDifference() {\r\n let timestamp = localStorage.getItem('timestamp');\r\n let currentDate = new Date();\r\n let lastLogin = new Date(timestamp);\r\n\r\n let difference = currentDate - lastLogin;\r\n let minutesDifference = Math.floor(difference / 1000 / 60 / 60);\r\n // let minutesDifference = Math.floor(difference / 1000);\r\n return minutesDifference;\r\n}\r\n\r\nfunction isLoginOrSignup(to) {\r\n return [\r\n '/login',\r\n '/signup',\r\n '/privacy-policy',\r\n '/resend-verification',\r\n '/verify-email/',\r\n // '/otp-selection',\r\n // '/verify-otp',\r\n '/forgot-password',\r\n '/reset-password',\r\n ].some((url) => to.path.includes(url));\r\n}\r\n\r\nfunction isValidRole(role) {\r\n if (!Object.values(roles).includes(role)) {\r\n localStorage.setItem('redirectUrl', window.location.href);\r\n store.dispatch('clearState');\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction getClosestMatchingRouteName(matchedRoutes, currentPath) {\r\n let closestMatch = null;\r\n let closestMatchLength = -1;\r\n\r\n matchedRoutes.forEach((route) => {\r\n if (currentPath === route.path) {\r\n closestMatch = route.name;\r\n return;\r\n }\r\n\r\n const routePathSegments = route.path.split('/');\r\n const currentPathSegments = currentPath.split('/');\r\n\r\n if (routePathSegments.length <= currentPathSegments.length) {\r\n let isMatch = true;\r\n for (let i = 0; i < routePathSegments.length; i++) {\r\n if (\r\n routePathSegments[i] !== currentPathSegments[i] &&\r\n routePathSegments[i][0] !== ':'\r\n ) {\r\n isMatch = false;\r\n break;\r\n }\r\n }\r\n\r\n if (isMatch && routePathSegments.length > closestMatchLength) {\r\n closestMatch = route.name;\r\n closestMatchLength = routePathSegments.length;\r\n }\r\n }\r\n });\r\n\r\n return closestMatch;\r\n}\r\n\r\nexport default router;\r\n","","import { render } from \"./region-icon.svg?vue&type=template&id=0df2883d\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ApiHelper from './index';\r\n\r\nasync function createEventNotification(payload, spinner = false) {\r\n return await ApiHelper.post(\r\n 'feature_control/event_notifications',\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function fetchEventNotifications(query = {}, spinner = false) {\r\n return await ApiHelper.get(\r\n 'feature_control/event_notifications',\r\n spinner,\r\n query\r\n );\r\n}\r\nasync function getEventNotification(id, spinner = false) {\r\n return await ApiHelper.get(\r\n `feature_control/event_notification/${id}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function updateEventNotification(id, payload, spinner = false) {\r\n return await ApiHelper.patch(\r\n `feature_control/event_notification/${id}`,\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function deleteEventNotification(id, spinner = false) {\r\n return await ApiHelper.remove(\r\n `feature_control/event_notification/${id}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getRecipients(orgName, eventType, spinner = false) {\r\n return await ApiHelper.get(\r\n `feature_control/get_event_notification/${orgName}/${eventType}`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function sendEmail(payload, spinner = false) {\r\n return await ApiHelper.post(`feature_control/send_email`, payload, spinner);\r\n}\r\n\r\nexport default {\r\n createEventNotification,\r\n fetchEventNotifications,\r\n getEventNotification,\r\n updateEventNotification,\r\n deleteEventNotification,\r\n getRecipients,\r\n sendEmail,\r\n};\r\n","import ApiHelper from './index';\r\n\r\nasync function calculatePlaneEquation(planeId, payload, spinner = true) {\r\n return await ApiHelper.put(\r\n `organization/task/calculate_plane_object_equation/${planeId}/`,\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getDepthVideoFrames(task_id, spinner = true) {\r\n return await ApiHelper.get(\r\n `organization/task/depth_frame/${task_id}/`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function generateDepthVideoFrames(task_id, payload, spinner = true) {\r\n return await ApiHelper.post(\r\n `organization/task/depth_frame/${task_id}/`,\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function resetDepthVideoFrames(task_id, payload, spinner = true) {\r\n return await ApiHelper.put(\r\n `organization/task/reset_plane_objects/${task_id}/`,\r\n payload,\r\n spinner\r\n );\r\n}\r\n\r\nasync function getZeroDepthVideoFrames(task_id, spinner = true) {\r\n return await ApiHelper.get(\r\n `organization/task/zero_depth_pixel/${task_id}/`,\r\n spinner\r\n );\r\n}\r\n\r\nasync function isTaskSupport3D(task_id, spinner = true) {\r\n return await ApiHelper.get(`organization/task/is_3d/${task_id}/`, spinner);\r\n}\r\n\r\nasync function getOverlayImage(task_id, planeId, spinner = true) {\r\n return await ApiHelper.get(\r\n `organization/task/get_overlay_frame/${task_id}/?plane_id=${planeId}`,\r\n spinner\r\n );\r\n}\r\n\r\nexport default {\r\n calculatePlaneEquation,\r\n getDepthVideoFrames,\r\n generateDepthVideoFrames,\r\n isTaskSupport3D,\r\n getOverlayImage,\r\n getZeroDepthVideoFrames,\r\n resetDepthVideoFrames\r\n};\r\n","import { getAuthConfig } from './config';\r\nimport apiHelper from './index';\r\n\r\nconst uploadFile = async (\r\n payload,\r\n spinner = true,\r\n config = getAuthConfig()\r\n) => {\r\n return await apiHelper.post('generic/file_upload/', payload, spinner, config);\r\n};\r\n\r\nconst readFile = async (payload, spinner = true) => {\r\n return await apiHelper.post('generic/file_read/', payload, spinner);\r\n};\r\nconst deleteFile = async (payload, spinner = true) => {\r\n return await apiHelper.post('generic/file_delete/', payload, spinner);\r\n};\r\n\r\nconst uploadImage = async (payload, spinner = true) => {\r\n return await apiHelper.post(\r\n 'generic/save_projector_image_to_s3/',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst generatePresignedUrl = async (\r\n bucket_name,\r\n object_path,\r\n file = '',\r\n spinner = true\r\n) => {\r\n const payload = {\r\n bucket_name,\r\n object_path,\r\n file,\r\n };\r\n return await apiHelper.post('generic/generate_new_url/', payload, spinner);\r\n};\r\nconst getPresignedPostURL = async (payload, spinner = true) => {\r\n return await apiHelper.post(\r\n 'generic/generate_presigned_post/',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst verifyGetPresignedUrl = async (bucket_name, files, spinner = false) => {\r\n const payload = {\r\n bucket_name,\r\n files,\r\n };\r\n return await apiHelper.post(\r\n 'generic/verify_generate_new_url/',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst downloadFilesToZip = async (payload, spinner = false) => {\r\n return await apiHelper.post(\r\n 'generic/get_bucket_folder_zip/',\r\n payload,\r\n spinner,\r\n { headers: getAuthConfig().headers, responseType: 'arraybuffer' }\r\n );\r\n};\r\n\r\nconst getFolderPresignedUrls = async (payload, spinner = false) => {\r\n return await apiHelper.post(\r\n 'generic/get_bucket_folder_presigned_url/',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nexport default {\r\n uploadFile,\r\n readFile,\r\n deleteFile,\r\n uploadImage,\r\n generatePresignedUrl,\r\n getPresignedPostURL,\r\n verifyGetPresignedUrl,\r\n downloadFilesToZip,\r\n getFolderPresignedUrls,\r\n};\r\n","import ApiHelper from './index';\r\n\r\nconst fetchBarcodes = async (spinner = true) => {\r\n return await ApiHelper.get('account/barcode/', spinner);\r\n};\r\nconst createBarcode = async (spinner = true) => {\r\n return await ApiHelper.post('account/barcode/', {}, spinner);\r\n};\r\nconst createCustomBarcode = async (payload, spinner = true) => {\r\n return await ApiHelper.put(\r\n `account/create_custom_barcode/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\nconst updateCustomBarcode = async (payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `account/update_barcode_value/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\nconst deleteBarcode = async (barcodeId, spinner = true) => {\r\n return await ApiHelper.remove(`account/barcode/${barcodeId}`, spinner);\r\n};\r\nconst fetchAssociateBarcodes = async (taskId, spinner = true) => {\r\n return await ApiHelper.get(\r\n `account/associate_barcode/?task=${taskId}`,\r\n spinner\r\n );\r\n};\r\nconst createAssociateBarcodes = async (payload, spinner = true) => {\r\n return await ApiHelper.post('account/associate_barcode/', payload, spinner);\r\n};\r\nconst updateAssociateBarcodes = async (id, payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `account/associate_barcode/${id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst removeAssociatedBarcode = async (id, spinner = true) => {\r\n return await ApiHelper.remove(`/account/associate_barcode/${id}/`, spinner);\r\n};\r\n\r\nexport default {\r\n fetchBarcodes,\r\n createBarcode,\r\n deleteBarcode,\r\n fetchAssociateBarcodes,\r\n createAssociateBarcodes,\r\n updateAssociateBarcodes,\r\n removeAssociatedBarcode,\r\n createCustomBarcode,\r\n updateCustomBarcode\r\n};\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=045d487c&lang=css\"","//firebase.js\r\n\r\nimport { initializeApp } from 'firebase/app';\r\nimport { getMessaging } from 'firebase/messaging';\r\n\r\nconst firebaseConfig = {\r\n apiKey: 'AIzaSyBlxlvbzXWxtZm9zR9miarICa4_7XKRlVM',\r\n authDomain: 'test-portal-app.firebaseapp.com',\r\n databaseURL: 'https://test-portal-app-default-rtdb.firebaseio.com',\r\n projectId: 'test-portal-app',\r\n storageBucket: 'test-portal-app.appspot.com',\r\n messagingSenderId: '695781959167',\r\n appId: '1:695781959167:web:9f48760ec7d47f9226b3ca',\r\n measurementId: 'G-YYCZ61GVLE'\r\n};\r\n// const firebaseConfig = {\r\n// apiKey: 'AIzaSyD4QP6dSpZS6xvvrtXYtmz-wAu61wTTvwA',\r\n// authDomain: 'retro-demo-66d03.firebaseapp.com',\r\n// projectId: 'retro-demo-66d03',\r\n// storageBucket: 'retro-demo-66d03.appspot.com',\r\n// messagingSenderId: '321794855848',\r\n// appId: '1:321794855848:web:02e8c8d0b2f4382db9439d',\r\n// measurementId: 'G-85LF8HJR5V',\r\n// };\r\n\r\nconst app = initializeApp(firebaseConfig);\r\nconst messaging = getMessaging(app);\r\n\r\nexport default messaging;\r\n","export const modes = {\r\n addDelete: 'add-delete',\r\n rename: 'rename',\r\n merge: 'merge',\r\n};\r\n\r\nexport const taskCreationCardTitle = {\r\n [modes.addDelete]: '(Add/Delete Steps, Rename on Next Page)',\r\n [modes.rename]: '(Rename Steps, Merge Steps on Next Page)',\r\n [modes.merge]: '(Merge Steps)',\r\n};\r\n\r\nexport const nextPrevButtonMap = {\r\n [modes.addDelete]: 'Next',\r\n [modes.rename]: 'Back',\r\n};\r\n\r\nexport const taskUpdateJsonPhaseConfig = {\r\n [modes.addDelete]: 'is_step_added_and_deleted',\r\n [modes.rename]: 'is_step_renamed',\r\n [modes.merge]: 'is_step_merged',\r\n};\r\n","import { eventTypes } from 'src/components/admin-panel/pages/EventNotification/config';\r\nimport { actions } from 'src/config/long-running-task-config.js';\r\nimport { objectAnnotationModes } from 'src/config/task-steps-objects.js';\r\nimport trainingStatuses from 'src/config/training-status-config.js';\r\nimport EvenNotificationService from 'src/services/eventNotification';\r\nimport S3Service from 'src/services/s3';\r\nimport types from 'src/store/mutation-types';\r\nimport { useToast } from 'vue-toastification';\r\nimport {\r\n modes,\r\n taskUpdateJsonPhaseConfig,\r\n} from '../config/task-edit-modes-config';\r\n\r\nconst toast = useToast();\r\n\r\nexport const deepClone = (obj) => JSON.parse(JSON.stringify(obj));\r\n\r\nexport const isObject = (obj) =>\r\n obj !== undefined && obj !== null && obj.constructor == Object;\r\n\r\nexport const getDestinationIndex = (index, direction) => {\r\n if (direction === 'up') return index - 1;\r\n else return index + 1;\r\n};\r\n\r\nexport const getTaskNameAndProcess = (taskDetail) => {\r\n if (!taskDetail) return;\r\n\r\n const task = {\r\n name: '',\r\n processes: [],\r\n };\r\n\r\n const text_lines = taskDetail?.split('\\n');\r\n\r\n if (text_lines.length === 0) {\r\n return;\r\n }\r\n\r\n task.name = text_lines[0].split('=')[1].trim();\r\n let substeps = [];\r\n let steps = [];\r\n let step = '';\r\n for (let line of text_lines) {\r\n line = line.trim();\r\n if (line.at(-1) === ':' && substeps.length === 0) {\r\n step = line.slice(0, -1);\r\n } else if (line.at(-1) === ';') {\r\n substeps.push(line.slice(0, -1));\r\n } else if (line.at(-1) === ':' && substeps.length !== 0) {\r\n steps.push({\r\n name: step,\r\n substeps,\r\n });\r\n substeps = [];\r\n step = line.slice(0, -1);\r\n } else if (line.at(-1) === '~') {\r\n steps.push({\r\n name: step,\r\n substeps,\r\n });\r\n task.processes.push({\r\n name: line.slice(0, -1),\r\n steps,\r\n });\r\n steps = [];\r\n substeps = [];\r\n step = '';\r\n }\r\n }\r\n steps.push({\r\n name: step,\r\n substeps,\r\n });\r\n\r\n if (!task.processes.length)\r\n task.processes.push({\r\n name: ' Default',\r\n steps,\r\n });\r\n\r\n return task;\r\n};\r\n\r\nexport const getSubstepList = (taskDetail) => {\r\n if (!taskDetail) return;\r\n\r\n const text_lines = taskDetail?.split('\\n');\r\n\r\n if (text_lines.length === 0) {\r\n return;\r\n }\r\n\r\n let substeps = [];\r\n\r\n for (let line of text_lines) {\r\n line = line.trim();\r\n if (line.at(-1) === ';') substeps.push(line.slice(0, -1));\r\n }\r\n\r\n return substeps;\r\n};\r\n\r\nexport const validateForSpecialCharacters = (state) => {\r\n const { newTask } = state;\r\n let errorMessage =\r\n \"cannot contain special characters [$&+,:;=?@#|'<>.^*()%!]\";\r\n if (newTask.match(/[^A-Za-z0-9\\s_-]+/)) {\r\n toast.info(`Task with the name \"${newTask}\" ${errorMessage}`);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const checkIfTaskExist = (state) => {\r\n const { newTask, allTasks } = state;\r\n const flag = !allTasks.every((el) => el.taskName !== newTask);\r\n if (flag) {\r\n toast.info(`Task with the name \"${newTask}\" already exists!`);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const checkIfEmpty = (processes) => {\r\n const flag = !processes.every((process) => {\r\n const { name, steps } = process;\r\n return (\r\n name &&\r\n steps.every((step) => {\r\n const { name, substeps } = step;\r\n return name && substeps.every((substep) => substep);\r\n })\r\n );\r\n });\r\n if (flag) {\r\n toast.info('Please fill the empty steps!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const checkIfSubstepsExists = (processes) => {\r\n const flag = !processes.every(\r\n (process) =>\r\n process.name &&\r\n process.steps.every((step) => step.name && step.substeps[0])\r\n );\r\n if (flag) {\r\n toast.info('Each Step must have atleast one sub-step!', {\r\n timeout: 3000,\r\n });\r\n return true;\r\n }\r\n return false;\r\n};\r\nexport const validateStepAndSubstepCharacters = (processes) => {\r\n const invalidChars = /[`~;:]/; // Match any of the invalid characters\r\n\r\n for (const process of processes) {\r\n for (const step of process.steps) {\r\n if (step.name && invalidChars.test(step.name)) {\r\n toast.info(\r\n `Step name \"${step.name}\" contains invalid characters (~;:).`,\r\n {\r\n timeout: 3000,\r\n }\r\n );\r\n return true;\r\n }\r\n\r\n // Check substeps as well\r\n if (step.substeps && Array.isArray(step.substeps)) {\r\n for (const substep of step.substeps) {\r\n if (substep && invalidChars.test(substep)) {\r\n toast.info(\r\n `Substep name \"${substep}\" contains invalid characters (~;:).`,\r\n {\r\n timeout: 3000,\r\n }\r\n );\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\nexport const isDuplicateProcess = (processes) => {\r\n const tempProcesses = processes.map((p) => p.name);\r\n if (tempProcesses.length !== new Set(tempProcesses).size) {\r\n toast.info('Processes name cannot be same!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const isDuplicateStep = (processes) => {\r\n const steps = processes\r\n .reduce((acc, el) => [...acc, ...el.steps], [])\r\n .map((step) => step.name.trim());\r\n if (steps.length !== new Set(steps).size) {\r\n toast.info('Steps name cannot be same!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const isDuplicateSubstep = (processes) => {\r\n const subStepsSet = new Set();\r\n for (let process of processes) {\r\n for (let step of process.steps) {\r\n for (let substep of step.substeps) {\r\n const step = ('' + substep).split(' ').join('');\r\n if (step !== '' && step !== ' ' && subStepsSet.has(step)) {\r\n toast.info('Substeps cannot be same!');\r\n return true;\r\n }\r\n subStepsSet.add(step);\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const isStepAndSubstepSame = (processes) => {\r\n var flag = false;\r\n processes.forEach((process) => {\r\n const processData = JSON.parse(JSON.stringify(process.steps));\r\n processData.forEach((element) => {\r\n const step = element.name.toString();\r\n const substeps = element.substeps;\r\n if (substeps.includes(step)) {\r\n toast.info('Step and Substep name cannot be same!');\r\n flag = true;\r\n return;\r\n }\r\n });\r\n if (flag) {\r\n return;\r\n }\r\n });\r\n return flag;\r\n};\r\n\r\nexport const hasNoProcess = (processes) => {\r\n if (processes.length === 0) {\r\n toast.info('An operation must contain atleast one process!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const hasNoSteps = (processes) => {\r\n const flag = processes.some((process) => process.steps.length === 0);\r\n if (flag) {\r\n toast.info('A process must contain atleast one step!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const hasMorethanTwoProcess = (processes) => {\r\n if (processes.length > 2) {\r\n toast.info('An operation can contain at most 2 process!');\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const getTaskString = (processes, taskName) => {\r\n let taskString = 'name=' + taskName.trim();\r\n\r\n processes.forEach((process) => {\r\n const { name: processName, steps } = process;\r\n steps.forEach((step) => {\r\n const { name: stepName, substeps } = step;\r\n taskString += '\\n' + stepName + ':';\r\n substeps.forEach((substep) => {\r\n taskString += '\\n' + substep + ';';\r\n });\r\n });\r\n taskString += '\\n' + processName + '~';\r\n });\r\n return taskString;\r\n};\r\n\r\nexport const startTaskModification = (state, commit) => {\r\n const { updatedJsonPayload, mergeStepsDict } = state;\r\n const jsonForMergePhase = getMergeStepJson(mergeStepsDict);\r\n const tempUpdatedJson = [\r\n ...updatedJsonPayload,\r\n JSON.parse(JSON.stringify(jsonForMergePhase)),\r\n ];\r\n commit(types.SET_UPDATED_JSON_PAYLOAD, tempUpdatedJson);\r\n if (!state.isUpdateTaskFromAdmin) {\r\n commit(types.SET_TASK_UPDATE_CONFIRM_MODAL, true);\r\n }\r\n};\r\n\r\nexport const getStepsCount = (state) => {\r\n let count = 0;\r\n state.processes.forEach((process) => {\r\n process.steps.forEach((step) => {\r\n count += step.substeps.length;\r\n });\r\n });\r\n return count;\r\n};\r\n\r\nexport const isTaskBeingTrained = ({ train_status }, taskName) => {\r\n if (train_status === trainingStatuses.training) {\r\n toast.info(\r\n `${taskName} is being trained, You cannot update the task when it is being trained.`\r\n );\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const isTaskBeingPerformed = (devices, taskName) => {\r\n const isInferenceRunning = devices.length > 0;\r\n if (isInferenceRunning) {\r\n toast.info(\r\n `${taskName} is being performed, You cannot update the task when it is being performed.`\r\n );\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst getOldTaskNameAndStepDetails = (oldTaskDetails) => {\r\n let oldStepsDetail = oldTaskDetails.split('\\n');\r\n const oldTaskName = oldStepsDetail.shift();\r\n oldStepsDetail.pop();\r\n oldStepsDetail = oldStepsDetail.join('\\n');\r\n return { oldTaskName, oldStepsDetail };\r\n};\r\n\r\nconst AreStepsNameRenamed = (updatedJsonPayload) => {\r\n const addDeleteStepsKeys = Object.keys(\r\n updatedJsonPayload[0]?.stepsJson\r\n )?.join(',');\r\n const renamedStepsKeys = Object.keys(updatedJsonPayload[1]?.stepsJson)?.join(\r\n ','\r\n );\r\n if (addDeleteStepsKeys !== renamedStepsKeys) return true;\r\n return false;\r\n};\r\n\r\nconst getStepDataDefaultFormat = () => {\r\n const step_data_default_format = {\r\n objects_present: [],\r\n detect_always: true,\r\n boolean_expr: '',\r\n rule_types: {},\r\n step_relations: {\r\n 'anchor-relation': {\r\n key_steps: [],\r\n before_anchor: [],\r\n after_anchor: [],\r\n },\r\n 'similar-relation': {\r\n key_steps: [],\r\n before_anchor: [],\r\n after_anchor: [],\r\n },\r\n },\r\n };\r\n return step_data_default_format;\r\n};\r\n\r\nconst getRenamedSubsteps = (updatedJsonPayload) => {\r\n const addDeleteJson = updatedJsonPayload[0]?.stepsJson;\r\n const renameJson = updatedJsonPayload[1]?.stepsJson;\r\n\r\n const addDeleteJsonSubsteps = Object.values(addDeleteJson).reduce(\r\n (res, el) => {\r\n const substeps = Object.keys(el);\r\n return [...res, substeps];\r\n },\r\n []\r\n );\r\n const renamedJsonSubsteps = Object.values(renameJson).reduce((res, el) => {\r\n const substeps = Object.keys(el);\r\n return [...res, substeps];\r\n }, []);\r\n\r\n let renamedStepsDict = {};\r\n addDeleteJsonSubsteps.forEach((substeps, index) => {\r\n const renamedsteps = renamedJsonSubsteps[index];\r\n substeps.forEach((e, i) => {\r\n if (e !== renamedsteps[i]) {\r\n renamedStepsDict[renamedsteps[i]] = e;\r\n }\r\n });\r\n });\r\n return renamedStepsDict;\r\n};\r\n\r\nconst getListToUpdateMetaFile = (state, updatedJsonPayload) => {\r\n const { taskStepsCount } = state;\r\n const mergeJson = updatedJsonPayload[2]?.stepsJson;\r\n const isSubstepsRenamed =\r\n Object.keys(getRenamedSubsteps(updatedJsonPayload)).length !== 0;\r\n const dict = {\r\n [modes['addDelete']]: taskStepsCount !== getStepsCount(state),\r\n [modes['rename']]:\r\n AreStepsNameRenamed(updatedJsonPayload) || isSubstepsRenamed,\r\n [modes['merge']]: Object.keys(mergeJson).length !== 0,\r\n };\r\n const newUpdateJsonList = updatedJsonPayload\r\n .filter(({ editMode }) => dict[editMode] === true)\r\n .map(({ stepsJson, editMode }) => ({\r\n [taskUpdateJsonPhaseConfig[editMode]]: true,\r\n updated_json: stepsJson,\r\n }));\r\n return newUpdateJsonList;\r\n};\r\n\r\nconst getTaskNameAndStepDetails = (taskString) => {\r\n const newStepDetails = taskString.split('\\n');\r\n const taskName = newStepDetails?.shift()?.split('=')?.pop();\r\n newStepDetails.pop();\r\n return [taskName, newStepDetails.join('\\n')];\r\n};\r\n\r\nconst updatedTaskDetailsWhenMerge = (mergeStepsDict, taskDetails) => {\r\n const taskDetailsArray = taskDetails.split('\\n');\r\n const mergeSteps = Object.values(mergeStepsDict)\r\n ?.reduce((res, el) => {\r\n res = [...res, ...el];\r\n return res;\r\n }, [])\r\n ?.map((step) => step + ';');\r\n\r\n if (!mergeSteps.length) return taskDetails;\r\n const filterDetails = taskDetailsArray.filter(\r\n (step) => !mergeSteps.some((mstep) => mstep === step)\r\n );\r\n return {\r\n updatedTaskString: filterDetails.join('\\n'),\r\n mergeStepsCount: mergeSteps.length,\r\n };\r\n};\r\n\r\nexport const setSubStepTimesJsonFile = (state, initSubStepTimeJson) => {\r\n const { taskDetails } = state;\r\n if (!Object.keys(initSubStepTimeJson)?.length) return initSubStepTimeJson;\r\n\r\n const { name, processes } = getTaskNameAndProcess(taskDetails);\r\n const indexToStepMappig = getIndexToStepMapping(processes);\r\n // if (Object.keys(initSubStepTimeJson)?.every((el) => Number.isNaN(Number(el)))) return initSubStepTimeJson\r\n\r\n let res = isObject(initSubStepTimeJson)\r\n ? deepClone(initSubStepTimeJson)\r\n : JSON.parse(initSubStepTimeJson);\r\n\r\n res = Object.entries(res).reduce((res, el) => {\r\n const step = indexToStepMappig[el[0]]\r\n ? indexToStepMappig[el[0]]\r\n : 'background';\r\n res[step] = el[1];\r\n return res;\r\n }, {});\r\n\r\n if (!res.hasOwnProperty('background')) {\r\n const steps = Object.keys(indexToStepMappig).length;\r\n res['background'] = res[steps.length] ? res[steps.length] : 50;\r\n }\r\n return res;\r\n};\r\n\r\nconst updateSubstepTimesJsonOnEdit = (state, updatedJsonPayload) => {\r\n const { subStepTimesJson, processes } = state;\r\n if (!subStepTimesJson || !Object.keys(subStepTimesJson).length) return null;\r\n\r\n const newStepsToIndexMap = getStepToIndexMapping(processes);\r\n const mergeStepsJson = updatedJsonPayload[2]?.stepsJson;\r\n const renameStepsObj = getRenamedSubsteps(updatedJsonPayload);\r\n const mergeKeys = Object.keys(mergeStepsJson);\r\n const mergedSteps = Object.values(mergeStepsJson)?.reduce(\r\n (res, el) => [...res, ...el],\r\n []\r\n );\r\n\r\n const updatedSubstepTime = Object.entries(subStepTimesJson).reduce(\r\n (res, el) => {\r\n res[el[0]] = Number(el[1]);\r\n return res;\r\n },\r\n {}\r\n );\r\n\r\n let json = {};\r\n const newSteps = Object.keys(newStepsToIndexMap);\r\n newSteps.forEach((step) => {\r\n const stepIndex = Object.keys(json).length;\r\n if (subStepTimesJson.hasOwnProperty(step)) {\r\n if (mergeKeys.length && mergeKeys?.includes(step)) {\r\n const factor = updatedSubstepTime[step];\r\n const currMergedSteps = mergeStepsJson[step];\r\n const mergeStepTimeSum = currMergedSteps.reduce((res, el) => {\r\n return (res += Number(updatedSubstepTime[el]));\r\n }, factor);\r\n json[stepIndex] = mergeStepTimeSum / (currMergedSteps.length + 1);\r\n } else if (!mergedSteps?.includes(step)) {\r\n json[stepIndex] = updatedSubstepTime[step];\r\n }\r\n } else if (Object.keys(renameStepsObj).includes(step)) {\r\n json[stepIndex] = updatedSubstepTime[renameStepsObj[step]]\r\n ? updatedSubstepTime[renameStepsObj[step]]\r\n : 1;\r\n } else {\r\n json[stepIndex] = 1;\r\n }\r\n });\r\n const lastStep = Object.keys(json).length;\r\n json[lastStep] = updatedSubstepTime['background']\r\n ? updatedSubstepTime['background']\r\n : 50;\r\n return json;\r\n};\r\n\r\nconst updateStepDataJsonOnEdit = (state, updatedJsonPayload) => {\r\n const { stepsJsonData, processes, indexToStepsMapping } = state;\r\n if (!stepsJsonData || !Object.keys(stepsJsonData).length) return null;\r\n\r\n const defaultStepFormat = getStepDataDefaultFormat();\r\n const newStepsToIndexMap = getStepToIndexMapping(processes);\r\n const mergeStepsJson = updatedJsonPayload[2]?.stepsJson;\r\n const renameStepsObj = getRenamedSubsteps(updatedJsonPayload);\r\n const mergeKeys = Object.keys(mergeStepsJson);\r\n const mergedSteps = Object.values(mergeStepsJson)?.reduce(\r\n (res, el) => [...res, ...el],\r\n []\r\n );\r\n\r\n const updatedStepDataJSON = Object.entries(stepsJsonData).reduce(\r\n (res, el) => {\r\n const stepName = indexToStepsMapping[el[0]];\r\n res[stepName] = el[1];\r\n return res;\r\n },\r\n {}\r\n );\r\n\r\n let newStepDataJSON = {};\r\n const newSteps = Object.keys(newStepsToIndexMap);\r\n newSteps.forEach((step) => {\r\n const stepIndex = Object.keys(newStepDataJSON).length;\r\n if (updatedStepDataJSON.hasOwnProperty(step)) {\r\n // if steps being merge in old step\r\n if (mergeKeys.length && mergeKeys?.includes(step)) {\r\n newStepDataJSON[stepIndex] = defaultStepFormat;\r\n } // if not merged & exist in old json\r\n else if (!mergedSteps?.includes(step)) {\r\n newStepDataJSON[stepIndex] = updatedStepDataJSON[step];\r\n }\r\n } //if step renamed\r\n else if (Object.keys(renameStepsObj).includes(step)) {\r\n const stepBeforeRename = renameStepsObj[step];\r\n newStepDataJSON[stepIndex] = updatedStepDataJSON[stepBeforeRename]\r\n ? updatedStepDataJSON[stepBeforeRename]\r\n : defaultStepFormat;\r\n } // if new step\r\n else {\r\n newStepDataJSON[stepIndex] = defaultStepFormat;\r\n }\r\n });\r\n console.log('step data json->', newStepDataJSON);\r\n return newStepDataJSON;\r\n};\r\n\r\nexport const getTaskUpdatePayload = (state, oldTaskDetails) => {\r\n const {\r\n taskString,\r\n newTask,\r\n selectedTask,\r\n updatedJsonPayload,\r\n mergeStepsDict,\r\n } = state;\r\n const [oldTaskname, oldStepDetails] =\r\n getTaskNameAndStepDetails(oldTaskDetails);\r\n const [_, newStepDetails] = getTaskNameAndStepDetails(taskString);\r\n\r\n let taskPayload = {\r\n organization: state.taskOrganization,\r\n task_id: selectedTask,\r\n taskName: newTask,\r\n task_detail: taskString,\r\n stepsCount: getStepsCount(state),\r\n action: actions.updateTask,\r\n translation: null,\r\n translation_name: '',\r\n old_task_name: oldTaskname,\r\n is_task_updated: true,\r\n };\r\n\r\n taskPayload['is_update_meta_files'] =\r\n oldStepDetails !== newStepDetails ||\r\n Object.keys(mergeStepsDict).length !== 0;\r\n\r\n taskPayload['is_task_renamed'] = oldTaskname !== newTask;\r\n\r\n if (Object.keys(mergeStepsDict).length) {\r\n const { updatedTaskString, mergeStepsCount } = updatedTaskDetailsWhenMerge(\r\n mergeStepsDict,\r\n taskString\r\n );\r\n taskPayload['task_detail'] = updatedTaskString;\r\n taskPayload['stepsCount'] = taskPayload['stepsCount'] - mergeStepsCount;\r\n }\r\n\r\n const { is_update_meta_files } = taskPayload;\r\n if (is_update_meta_files)\r\n taskPayload['task_json_list'] = getListToUpdateMetaFile(\r\n state,\r\n updatedJsonPayload\r\n );\r\n\r\n taskPayload['sub_step_times'] = updateSubstepTimesJsonOnEdit(\r\n state,\r\n updatedJsonPayload\r\n );\r\n\r\n taskPayload['step_data_json'] = updateStepDataJsonOnEdit(\r\n state,\r\n updatedJsonPayload\r\n );\r\n\r\n const updatedStepsIds = getUpdatedStepsIndexes(\r\n state,\r\n taskPayload['task_detail']\r\n );\r\n\r\n taskPayload['deleted_steps_index'] = updatedStepsIds['deleted_steps'];\r\n taskPayload['modified_steps_index'] = updatedStepsIds['updated_steps'];\r\n taskPayload['new_steps_index'] = updatedStepsIds['new_steps'];\r\n const updateTaskParams = getUpdatedTaskParams(state, updatedStepsIds);\r\n taskPayload = { ...taskPayload, ...updateTaskParams };\r\n return taskPayload;\r\n};\r\n\r\nconst getUpdatedRequiredSteps = (updatedSteps, required_steps) => {\r\n let updated_dict = {};\r\n const { deleted_steps, updated_steps } = updatedSteps;\r\n for (const [processIdx, steps] of Object.entries(required_steps)) {\r\n let newIndex = null;\r\n for (const s of steps) {\r\n const movedStep = updated_steps.find((st) => st[0] === s);\r\n if (movedStep) newIndex = movedStep[1];\r\n else if (!deleted_steps.includes(s)) newIndex = s;\r\n if (newIndex !== null && newIndex !== undefined) {\r\n updated_dict[processIdx]\r\n ? updated_dict[processIdx].push(newIndex)\r\n : (updated_dict[processIdx] = [newIndex]);\r\n }\r\n newIndex = null;\r\n }\r\n }\r\n return JSON.stringify(updated_dict);\r\n};\r\n\r\nfunction getUpdatedTaskParams(state, updatedSteps) {\r\n const {\r\n taskParameters: { telemetryParams },\r\n } = state;\r\n let { required_steps_for_end, required_steps_for_start } = telemetryParams;\r\n const obj = {\r\n required_steps_for_start: getUpdatedRequiredSteps(\r\n updatedSteps,\r\n required_steps_for_start\r\n ),\r\n required_steps_for_end: getUpdatedRequiredSteps(\r\n updatedSteps,\r\n required_steps_for_end\r\n ),\r\n };\r\n return obj;\r\n}\r\n\r\nexport const initializeTranslation = (state) => {\r\n const { taskProcesses } = state;\r\n return taskProcesses.map((process) => {\r\n const tempProcess = {\r\n name: '',\r\n steps: process.steps.map((step) => {\r\n const tempStep = {\r\n name: '',\r\n substeps: step.substeps.map((_) => ''),\r\n };\r\n return tempStep;\r\n }),\r\n };\r\n return tempProcess;\r\n });\r\n};\r\n\r\nconst getFileUploadPayload = (state, fileName, json) => {\r\n const { taskName } = state;\r\n var blob = new Blob([json], { type: 'text/json;charset=utf-8' });\r\n var payload = new FormData();\r\n const bucket = `${localStorage.getItem('organization')}-training`;\r\n const filePath = `${taskName}/${fileName}`;\r\n payload.append('file', blob, `${fileName}`);\r\n payload.append('bucket', bucket);\r\n payload.append('file_path', filePath);\r\n return payload;\r\n};\r\n\r\nconst getFileDeletePayload = (state, fileName) => {\r\n const { taskName } = state;\r\n const organization = localStorage.getItem('organization');\r\n return {\r\n bucket: `${organization}-training`,\r\n file_path: `${taskName}/${fileName}`,\r\n organization,\r\n };\r\n};\r\n\r\nexport const updateSimilarStepsFileS3 = (state, json) => {\r\n return new Promise(async (resolve, _) => {\r\n const fileName = 'similarSteps.json';\r\n if (json === '{}') {\r\n const payload = getFileDeletePayload(state, fileName);\r\n await S3Service.deleteFile(payload, false);\r\n } else {\r\n const payload = getFileUploadPayload(state, fileName, json);\r\n await S3Service.uploadFile(payload, false);\r\n }\r\n resolve();\r\n });\r\n};\r\n\r\nexport const isTranslationNotExist = (translation) => {\r\n const flag =\r\n ['null', null, '{}'].includes(translation) ||\r\n Object(translation)?.keys?.length === 0;\r\n\r\n return flag;\r\n};\r\n\r\nexport const getIndexToStepMapping = (processes) => {\r\n const process = {};\r\n\r\n processes.forEach((p) => {\r\n if (!process['steps']) process['steps'] = [...p.steps];\r\n else process['steps'] = [...process['steps'], ...p.steps];\r\n });\r\n\r\n return process?.steps\r\n ?.reduce((res, el) => [...res, ...el.substeps], [])\r\n .reduce((res, el, index) => {\r\n res[index] = el;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getStepToIndexMapping = (processes) => {\r\n var substeps = {};\r\n processes.forEach((process) => {\r\n const prevSubStepsLength = Object.values(substeps).length;\r\n const processSubSteps = process.steps\r\n .reduce((res, el) => [...res, ...el.substeps], [])\r\n .reduce((res, el, index) => {\r\n res[el] = index + prevSubStepsLength;\r\n return res;\r\n }, {});\r\n substeps = { ...substeps, ...processSubSteps };\r\n });\r\n return substeps;\r\n};\r\n\r\nexport const updateTaskObjectRules = (rules, payload) => {\r\n const prevRules = rules.filter((rule) => rule.id !== payload.id);\r\n return [...prevRules, payload];\r\n};\r\n\r\nexport const convertStepTimeValuesToNumber = (stepTime) => {\r\n const { avgCycleTime, stepAvgTime } = stepTime;\r\n stepTime['avgCycleTime'] = Number(avgCycleTime);\r\n stepTime['stepAvgTime'] = Object.entries(stepAvgTime).reduce(\r\n (res, [key, value]) => {\r\n res[key] = Number(value);\r\n return res;\r\n },\r\n {}\r\n );\r\n return { ...stepTime };\r\n};\r\n\r\nexport const getTaskUpdateJson = (processes, editMode) => {\r\n const temp = {};\r\n if (taskUpdateJsonPhaseConfig[editMode] === 'is_step_merged') return temp;\r\n processes.forEach((process) => {\r\n process.steps.forEach((step) => {\r\n const { name: stepName, substeps } = step;\r\n temp[stepName] = {\r\n [stepName]: {\r\n typeP: 4,\r\n step: stepName,\r\n labelText: stepName,\r\n secondMax: 0,\r\n isBeingLabled: false,\r\n },\r\n };\r\n\r\n substeps.forEach((substep) => {\r\n temp[stepName][substep] = {\r\n typeP: 3,\r\n step: stepName,\r\n labelText: substep,\r\n };\r\n });\r\n });\r\n });\r\n return { stepsJson: temp, editMode: editMode };\r\n};\r\n\r\nexport const getPrevStepsJson = (processes) => {\r\n const temp = {};\r\n processes.forEach((process) => {\r\n process.steps.forEach((step) => {\r\n const { name: stepName, substeps } = step;\r\n temp[stepName] = true;\r\n\r\n substeps.forEach((substep) => {\r\n temp[substep] = true;\r\n });\r\n });\r\n });\r\n return temp;\r\n};\r\n\r\nexport const getPayloadToUpdateCloneTaskBop = (task, parent_task) => {\r\n var taskPayload = {\r\n organization: task.Organization.Org_name,\r\n task_detail: parent_task.task_detail,\r\n stepsCount: parent_task.stepsCount,\r\n taskName: task.taskName,\r\n old_task_name: task.taskName,\r\n translation: null,\r\n translation_name: '',\r\n task_id: task.id,\r\n is_update_meta_files: true,\r\n action: actions.updateTask,\r\n };\r\n const processes = getTaskNameAndProcess(parent_task.task_detail)['processes'];\r\n const json = Object.values(modes).map((editMode) => ({\r\n [taskUpdateJsonPhaseConfig[editMode]]: true,\r\n updated_json: getTaskUpdateJson(processes, editMode).stepsJson,\r\n }));\r\n taskPayload['task_json_list'] = json;\r\n return taskPayload;\r\n};\r\n\r\nexport const getUpdatedTasksList = (state) => {\r\n const { allTasks, selectedTask, newTask } = state;\r\n const index = allTasks.findIndex((t) => t.id === selectedTask);\r\n if (index >= 0) {\r\n allTasks[index]['taskName'] = newTask;\r\n return [...allTasks];\r\n } else return allTasks;\r\n};\r\n\r\nexport const getSortedTask = (taskList) => {\r\n return [...taskList]\r\n .sort((a, b) => b.starred - a.starred)\r\n .map((el) => ({\r\n ...el,\r\n value: el.id,\r\n label: (el.starred ? '⭐ ' : '') + el.taskName,\r\n }));\r\n};\r\n\r\nexport const updatedAttributeSteps = (stepsMapping, updateAttribute) => {\r\n return Object.values(stepsMapping)\r\n .filter((e) => e[updateAttribute])\r\n .map((e) => e.index)\r\n .sort()\r\n .join(',');\r\n};\r\n\r\nexport const getMergeStepJson = (mergeStepsDict) => {\r\n const formattedDict = Object.entries(mergeStepsDict).reduce((res, el) => {\r\n const [key, steps] = el;\r\n const [mergingStep, _] = key.split('=');\r\n res[mergingStep] = [...steps];\r\n return res;\r\n }, {});\r\n return { stepsJson: formattedDict, editMode: modes.merge };\r\n};\r\n\r\nexport const getSubstepToStepMapping = (processes) => {\r\n let substeps = {};\r\n let count = 0;\r\n processes.forEach((process) => {\r\n const processSubSteps = process.steps.reduce((res, el, stepIndex) => {\r\n const map = el.substeps.reduce((subRes, elm) => {\r\n subRes[elm] = count + stepIndex;\r\n return subRes;\r\n }, {});\r\n return { ...res, ...map };\r\n }, {});\r\n count = count + process.steps.length;\r\n substeps = { ...substeps, ...processSubSteps };\r\n });\r\n return substeps;\r\n};\r\n\r\nexport const setOldTaskDetails = (taskDetails) => {\r\n const hasDefaultProcess = taskDetails.split('\\n').pop().at(-1) === '~';\r\n let taskString = taskDetails;\r\n if (!hasDefaultProcess) {\r\n taskString += '\\n' + 'Default~';\r\n }\r\n return taskString;\r\n};\r\n\r\nexport const getProcessToStepsMap = (processes) => {\r\n processes = processes.map(\r\n (p) => p.steps.reduce((res, step) => [...res, ...step.substeps], []).length\r\n );\r\n let index = 0;\r\n let prev = 0;\r\n const res = processes.map((p) => {\r\n let arr = [];\r\n for (let i = index; i < p + prev; i++) {\r\n arr.push(i);\r\n index++;\r\n }\r\n prev += arr.length;\r\n return arr;\r\n });\r\n return Object.assign({}, res);\r\n};\r\n\r\nconst getStepsList = (text) => {\r\n if (!text) {\r\n return;\r\n }\r\n const task = {\r\n name: '',\r\n steps: [],\r\n };\r\n const text_lines = text?.split('\\n');\r\n\r\n task.name = text_lines[0].split('=')[1];\r\n let substeps = [];\r\n let step = '';\r\n for (let line of text_lines) {\r\n line = line.trim();\r\n\r\n if (line[line.length - 1] == ':' && substeps.length == 0) {\r\n step = line.slice(0, -1);\r\n } else if (line[line.length - 1] == ';') {\r\n substeps.push(line.slice(0, -1));\r\n } else if (line[line.length - 1] == ':' && substeps.length != 0) {\r\n task.steps.push({\r\n name: step,\r\n substeps,\r\n });\r\n substeps = [];\r\n step = line.slice(0, -1);\r\n }\r\n }\r\n task.steps.push({\r\n name: step,\r\n substeps,\r\n });\r\n return task;\r\n};\r\n\r\nexport const getTranslatedSteps = (\r\n firstLangDetails,\r\n secondLangDetails = null\r\n) => {\r\n const defaultLangSteps = getStepsList(firstLangDetails)?.steps;\r\n var translationLangSteps = null;\r\n if (secondLangDetails) {\r\n translationLangSteps = getStepsList(secondLangDetails).steps;\r\n }\r\n const obj = {};\r\n\r\n defaultLangSteps?.forEach((step, i) => {\r\n obj[step.name] = translationLangSteps\r\n ? translationLangSteps[i].name\r\n : step.name;\r\n step.substeps?.forEach((substep, j) => {\r\n var translatedSubStep = translationLangSteps\r\n ? translationLangSteps[i].substeps[j]\r\n : substep;\r\n obj[substep] = translatedSubStep;\r\n });\r\n });\r\n return obj;\r\n};\r\n\r\nexport const getIdToObjectMapping = (objects) => {\r\n return objects.reduce((res, el) => {\r\n res[el.id] = el.name;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getObjectToIdMapping = (objects) => {\r\n return objects.reduce((res, el) => {\r\n res[el.name] = el.id;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const initAnnotationObjectsJson = (state) => {\r\n let temp = {\r\n [objectAnnotationModes.annotation]: {},\r\n [objectAnnotationModes.verification]: {},\r\n };\r\n const {\r\n processToStepListMap,\r\n stepsJsonData: steps_json_data,\r\n taskObjectRules,\r\n } = state;\r\n const processSteps = Object.values(processToStepListMap);\r\n let verification_data = {};\r\n\r\n Object.keys(taskObjectRules).forEach((idx) => {\r\n const data = taskObjectRules[idx];\r\n const step = Number(data.step);\r\n const object_name = data.name;\r\n const static_object = data.static_object;\r\n const non_static_object = data.non_static_object;\r\n\r\n if (verification_data.hasOwnProperty(step)) {\r\n if (static_object) {\r\n verification_data[step].static_object = object_name;\r\n } else if (non_static_object) {\r\n verification_data[step].non_static_object = object_name;\r\n }\r\n } else {\r\n verification_data[step] = {\r\n static_object: static_object ? object_name : null,\r\n non_static_object: non_static_object ? object_name : null,\r\n verify: false,\r\n };\r\n }\r\n\r\n if (\r\n verification_data[step].static_object &&\r\n verification_data[step].non_static_object\r\n ) {\r\n verification_data[step]['verify'] = true;\r\n }\r\n });\r\n\r\n temp[objectAnnotationModes.verification] = verification_data;\r\n\r\n Object.keys(objectAnnotationModes).forEach((mode) => {\r\n processSteps.forEach((substeps) => {\r\n substeps.forEach((substepIndex) => {\r\n const substepIdx = substepIndex.toString();\r\n if (\r\n steps_json_data &&\r\n steps_json_data.hasOwnProperty(substepIdx) &&\r\n mode === objectAnnotationModes['annotation'] &&\r\n steps_json_data[substepIdx].hasOwnProperty('objects_present')\r\n ) {\r\n let static_obj = null;\r\n if (steps_json_data[substepIdx].hasOwnProperty('rule_type')) {\r\n const rule_type_name = Object.keys(\r\n steps_json_data[substepIdx].rule_type\r\n )[0];\r\n if (\r\n steps_json_data[substepIdx]['rule_type'][\r\n rule_type_name\r\n ].hasOwnProperty('region')\r\n ) {\r\n const region =\r\n steps_json_data[substepIdx]['rule_type'][rule_type_name].region;\r\n static_obj = region ? region : null;\r\n }\r\n }\r\n temp[mode][substepIndex] = {\r\n static_object: static_obj,\r\n non_static_object: steps_json_data[substepIndex]['objects_present'],\r\n };\r\n } else if (\r\n !(\r\n mode === objectAnnotationModes['verification'] &&\r\n temp[mode].hasOwnProperty(substepIndex)\r\n )\r\n ) {\r\n const stepObj = {\r\n static_object: null,\r\n non_static_object:\r\n mode === objectAnnotationModes['annotation'] ? [] : null,\r\n };\r\n if (mode === objectAnnotationModes['verification']) {\r\n stepObj['verify'] = false;\r\n }\r\n\r\n temp[mode][substepIndex] = { ...stepObj };\r\n }\r\n });\r\n });\r\n });\r\n return temp;\r\n};\r\n\r\nexport const getTaskParameters = (taskDetails) => {\r\n const {\r\n maximum_cycle_time,\r\n minimum_cycle_time,\r\n min_percentage_of_steps_required_to_end_cycle,\r\n verify_threshold,\r\n temporal_smoothness,\r\n add_background_time_to_step_time,\r\n } = taskDetails;\r\n let { training_params, cycle_calculation_params } = taskDetails.taskJson;\r\n\r\n let telemetry_params = {\r\n maximum_cycle_time: maximum_cycle_time,\r\n minimum_cycle_time: minimum_cycle_time,\r\n temporal_smoothness: temporal_smoothness,\r\n add_background_time_to_step_time: add_background_time_to_step_time,\r\n };\r\n\r\n if (Object.keys(cycle_calculation_params).length) {\r\n telemetry_params = {\r\n ...telemetry_params,\r\n ...cycle_calculation_params,\r\n min_percentage_of_steps_required_to_end_cycle: cycle_calculation_params[\r\n 'min_percentage_of_steps_required_to_end_cycle'\r\n ]\r\n ? cycle_calculation_params[\r\n 'min_percentage_of_steps_required_to_end_cycle'\r\n ]\r\n : 0.75,\r\n };\r\n } else {\r\n // TODO: remove else condition, will never execute now.\r\n telemetry_params = {\r\n ...telemetry_params,\r\n min_percentage_of_steps_required_to_end_cycle: null,\r\n required_steps_for_end: { 0: [] },\r\n required_steps_for_start: { 0: [0, 1] },\r\n };\r\n }\r\n\r\n training_params = {\r\n ...training_params,\r\n verify_threshold: verify_threshold ? verify_threshold : 6,\r\n };\r\n return {\r\n telemetryParams: deepClone(telemetry_params),\r\n trainingParams: deepClone(training_params),\r\n };\r\n};\r\n\r\nconst getStepsData = (stepsToIndexMapping, taskDetails) => {\r\n const processes = getTaskNameAndProcess(taskDetails).processes;\r\n const newStepsToIndexMapping = getStepToIndexMapping(processes);\r\n const obj = {\r\n oldStepsMap: stepsToIndexMapping,\r\n newStepsMap: newStepsToIndexMapping,\r\n oldSteps: Object.keys(stepsToIndexMapping),\r\n newSteps: Object.keys(newStepsToIndexMapping),\r\n };\r\n return obj;\r\n};\r\n\r\nexport const getUpdatedStepsIndexes = (state, taskDetails) => {\r\n const { stepsToIndexMapping, stepsAssociationIds, updatedJsonPayload } =\r\n state;\r\n const { oldStepsMap, oldSteps, newStepsMap, newSteps } = getStepsData(\r\n stepsToIndexMapping,\r\n taskDetails\r\n );\r\n const renamedStepsDict = getRenamedSubsteps(updatedJsonPayload);\r\n const renamedSteps = Object.values(renamedStepsDict);\r\n const newRenamedSteps = Object.keys(renamedStepsDict);\r\n\r\n let removeStepIndexes = oldSteps\r\n .filter((step) => !newSteps.includes(step) && !renamedSteps.includes(step))\r\n .map((s) => oldStepsMap[s]);\r\n\r\n let modifiedStepDict = {};\r\n let newStepsIndexes = [];\r\n\r\n newSteps.forEach((step, newStepIndex) => {\r\n const oldStepIndex = oldStepsMap[step];\r\n // if new step or renamed\r\n if (!oldSteps.includes(step)) {\r\n // add newly added step\r\n if (newRenamedSteps.includes(step)) {\r\n const oldstep = renamedStepsDict[step];\r\n modifiedStepDict[step] = [oldStepsMap[oldstep], newStepsMap[step]];\r\n } else newStepsIndexes.push(newStepsMap[step]);\r\n\r\n // updated indexes after adding new step\r\n const changedSteps = newSteps.slice(newStepIndex + 1, newSteps.length);\r\n changedSteps.forEach((sp) => {\r\n if (oldSteps.includes(sp)) {\r\n modifiedStepDict[sp] = [oldStepsMap[sp], newStepsMap[sp]];\r\n } else if (newRenamedSteps.includes(sp)) {\r\n const oldstep = renamedStepsDict[sp];\r\n modifiedStepDict[sp] = [oldStepsMap[oldstep], newStepsMap[sp]];\r\n }\r\n });\r\n } // else if step moved\r\n else if (!isSameIndex(oldStepIndex, newStepIndex)) {\r\n modifiedStepDict[step] = [oldStepsMap[step], newStepsMap[step]];\r\n }\r\n });\r\n let updateStepsIndexes = [];\r\n Object.values(modifiedStepDict).forEach(([source, destination]) => {\r\n updateStepsIndexes.push([source, destination]);\r\n });\r\n\r\n const obj = {\r\n deleted_steps: removeStepIndexes,\r\n updated_steps: updateStepsIndexes,\r\n new_steps: newStepsIndexes,\r\n };\r\n return obj;\r\n};\r\n\r\nconst isSameIndex = (oldIndex, newIndex) => {\r\n if (oldIndex === undefined) return 1;\r\n return oldIndex === newIndex;\r\n};\r\n\r\nexport const getUpdatedTaskJson = (state) => {\r\n const { taskJson, taskParameters } = state;\r\n const { telemetryParams, trainingParams } = taskParameters;\r\n const { maximum_cycle_time, minimum_cycle_time, ...resTelemetryParams } =\r\n telemetryParams;\r\n return {\r\n ...taskJson,\r\n cycle_calculation_params: { ...resTelemetryParams },\r\n training_params: { ...trainingParams },\r\n };\r\n};\r\n\r\nconst getEmailBody = (\r\n organization,\r\n taskId,\r\n taskName,\r\n removedSteps,\r\n addedSteps\r\n) => {\r\n const _removedSteps = removedSteps\r\n .map(\r\n (el) =>\r\n `${el.stepIndex}${el.stepName}`\r\n )\r\n .join('');\r\n const _addedSteps = addedSteps\r\n .map(\r\n (el) =>\r\n `${el.stepIndex}${el.stepName}`\r\n )\r\n .join('');\r\n\r\n return `

Organization: ${organization}

Task ID: ${taskId}

Task Name: ${taskName}

Removed Steps:

${_removedSteps}
Step IndexStep Description

Added Steps:

${_addedSteps}
Step IndexStep Description
`;\r\n};\r\n\r\nconst sendNotificationEmail = async (\r\n taskId,\r\n taskName,\r\n organization,\r\n recipients,\r\n removedSteps,\r\n addedSteps\r\n) => {\r\n const payload = {\r\n recipients: recipients,\r\n subject: `Task Definition Updated: ${taskName}`,\r\n body: getEmailBody(\r\n organization,\r\n taskId,\r\n taskName,\r\n removedSteps,\r\n addedSteps\r\n ),\r\n };\r\n\r\n const [error] = await EvenNotificationService.sendEmail(payload);\r\n if (error) {\r\n console.log(error);\r\n }\r\n};\r\n\r\nexport const sendTaskUpdateNotification = async (\r\n state,\r\n taskUpdatePayload,\r\n oldTaskDetails\r\n) => {\r\n const { selectedTask, taskName } = state;\r\n const { deleted_steps_index, new_steps_index, task_detail } =\r\n taskUpdatePayload;\r\n const organization = localStorage.getItem('organization');\r\n const eventType = eventTypes['Task Update'];\r\n const [error, data] = await EvenNotificationService.getRecipients(\r\n organization,\r\n eventType\r\n );\r\n if (error) {\r\n console.log(error);\r\n return;\r\n }\r\n if (data.recipients.length) {\r\n const newSubstepsList = getSubstepList(task_detail);\r\n const oldSubstepsList = getSubstepList(oldTaskDetails);\r\n const removedSteps = deleted_steps_index.map((el) => ({\r\n stepIndex: el,\r\n stepName: oldSubstepsList[el],\r\n }));\r\n const addedSteps = new_steps_index.map((el) => ({\r\n stepIndex: el,\r\n stepName: newSubstepsList[el],\r\n }));\r\n sendNotificationEmail(\r\n selectedTask,\r\n taskName,\r\n organization,\r\n data.recipients,\r\n removedSteps,\r\n addedSteps\r\n );\r\n }\r\n};\r\n","export const getUpdateAssociateBarcode = (\r\n allBarcodes,\r\n associateBarcodes,\r\n data\r\n) => {\r\n const index = associateBarcodes.findIndex((el) => el.id === data.id);\r\n const updatedData = {\r\n ...data,\r\n barcode: allBarcodes[data.barcode],\r\n barcode_id: data.barcode,\r\n };\r\n associateBarcodes[index] = updatedData;\r\n return [...associateBarcodes];\r\n};\r\nexport const getBarcodesDictionary = (barcodes) => {\r\n return barcodes.reduce((res, el) => {\r\n res[el.id] = el.barcode_value;\r\n return res;\r\n }, {});\r\n};\r\n\r\nexport const getRemoveAssociatedBarcodes = (associateBarcodes, removeId) => {\r\n const filteredAssociatedBarcodes = associateBarcodes.filter(\r\n (el) => el.id !== removeId\r\n );\r\n return filteredAssociatedBarcodes;\r\n};\r\n","import { useToast } from 'vue-toastification';\r\nimport types from '../mutation-types';\r\nimport BarcodeService from 'src/services/barcode';\r\nimport {\r\n getUpdateAssociateBarcode,\r\n getBarcodesDictionary,\r\n getRemoveAssociatedBarcodes,\r\n} from 'src/utils/barcode';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = () => ({\r\n allBarcode: [],\r\n allBarcodes: {},\r\n isFetchingBarcodes: false,\r\n isCreatingBarcode: false,\r\n isDeletingBarcode: false,\r\n associateBarcodes: [],\r\n isFetchingAssociateBarcodes: false,\r\n isUpsertingAssociateBarcodes: false,\r\n isRemovingAssociatedBarcode: false,\r\n});\r\n\r\nconst getters = {\r\n allBarcode: (state) => state.allBarcode,\r\n allBarcodes: (state) => state.allBarcodes,\r\n isFetchingBarcodes: (state) => state.isFetchingBarcodes,\r\n isCreatingBarcode: (state) => state.isCreatingBarcode,\r\n isDeletingBarcode: (state) => state.isDeletingBarcode,\r\n associateBarcodes: (state) => state.associateBarcodes,\r\n isFetchingAssociateBarcodes: (state) => state.isFetchingAssociateBarcodes,\r\n isUpsertingAssociateBarcodes: (state) => state.isUpsertingAssociateBarcodes,\r\n isRemovingAssociatedBarcode: (state) => state.isRemovingAssociatedBarcode,\r\n};\r\n\r\nconst actions = {\r\n async fetchAllBarcodes({ commit }) {\r\n commit(types.SET_IS_FETCHING_BARCODES, true);\r\n const [error, data] = await BarcodeService.fetchBarcodes();\r\n commit(types.SET_IS_FETCHING_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n\r\n commit(types.SET_BARCODES, data);\r\n },\r\n async fetchAssociateBarcodes({ commit }, taskId) {\r\n commit(types.SET_IS_FETCHING_ASSOCIATE_BARCODES, true);\r\n const [error, data] = await BarcodeService.fetchAssociateBarcodes(taskId);\r\n commit(types.SET_IS_FETCHING_ASSOCIATE_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_ASSOCIATE_BARCODES, data);\r\n },\r\n\r\n async createBarcode({ state, commit }) {\r\n const { allBarcode } = state;\r\n commit(types.SET_CREATING_BARCODES, true);\r\n const [error, data] = await BarcodeService.createBarcode(false);\r\n commit(types.SET_CREATING_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Unable to add barcode');\r\n return false;\r\n }\r\n toast.success('Barcode added successfully');\r\n commit(types.SET_BARCODES, [...allBarcode, data]);\r\n return true;\r\n },\r\n\r\n async deleteBarcode({ state, commit }, payload) {\r\n const { allBarcode } = state;\r\n commit(types.SET_DELETING_BARCODES, true);\r\n const [error, data] = await BarcodeService.deleteBarcode(payload, false);\r\n commit(types.SET_DELETING_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Unable to delete barcode');\r\n return false;\r\n }\r\n toast.success('Barcode deleted successfully');\r\n allBarcode.splice(\r\n allBarcode.findIndex((x) => x.id == payload),\r\n 1\r\n );\r\n commit(types.SET_BARCODES, allBarcode);\r\n\r\n return true;\r\n },\r\n\r\n async createAssociateBarcodes({ state, commit }, payload) {\r\n const { associateBarcodes, allBarcodes } = state;\r\n commit(types.SET_UPSERTING_ASSOCIATE_BARCODES, true);\r\n const [error, data] = await BarcodeService.createAssociateBarcodes(\r\n payload,\r\n false\r\n );\r\n commit(types.SET_UPSERTING_ASSOCIATE_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n return false;\r\n }\r\n commit(types.SET_ASSOCIATE_BARCODES, [\r\n ...associateBarcodes,\r\n { ...data, barcode: allBarcodes[data.barcode], barcode_id: data.barcode },\r\n ]);\r\n return true;\r\n },\r\n\r\n async updateAssociateBarcodes({ state, commit }, { id, payload }) {\r\n const { associateBarcodes, allBarcodes } = state;\r\n commit(types.SET_UPSERTING_ASSOCIATE_BARCODES, true);\r\n const [error, data] = await BarcodeService.updateAssociateBarcodes(\r\n id,\r\n payload,\r\n false\r\n );\r\n commit(types.SET_UPSERTING_ASSOCIATE_BARCODES, false);\r\n if (error) {\r\n console.log({ error });\r\n return false;\r\n }\r\n const updatedAssociatedBarcodes = getUpdateAssociateBarcode(\r\n allBarcodes,\r\n associateBarcodes,\r\n data\r\n );\r\n commit(types.SET_ASSOCIATE_BARCODES, updatedAssociatedBarcodes);\r\n return true;\r\n },\r\n\r\n async removeAssociatedBarcode({ state, commit }, id) {\r\n const { associateBarcodes } = state;\r\n commit(types.SET_IS_REMOVING_ASSOCIATED_BARCODE, true);\r\n const [error, data] = await BarcodeService.removeAssociatedBarcode(\r\n id,\r\n false\r\n );\r\n commit(types.SET_IS_REMOVING_ASSOCIATED_BARCODE, false);\r\n if (error) {\r\n console.log(error);\r\n toast.error('Error in Removing Barcode');\r\n return false;\r\n }\r\n const updatedAssociatedBarcodes = getRemoveAssociatedBarcodes(\r\n associateBarcodes,\r\n id\r\n );\r\n commit(types.SET_ASSOCIATE_BARCODES, [...updatedAssociatedBarcodes]);\r\n return true;\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_BARCODES](state, payload) {\r\n state.allBarcode = payload;\r\n state.allBarcodes = getBarcodesDictionary(payload);\r\n },\r\n [types.SET_CREATING_BARCODES](state, payload) {\r\n state.isCreatingBarcode = payload;\r\n },\r\n [types.SET_IS_FETCHING_BARCODES](state, payload) {\r\n state.isFetchingBarcodes = payload;\r\n },\r\n [types.SET_IS_FETCHING_ASSOCIATE_BARCODES](state, payload) {\r\n state.isFetchingAssociateBarcodes = payload;\r\n },\r\n [types.SET_ASSOCIATE_BARCODES](state, payload) {\r\n state.associateBarcodes = payload;\r\n },\r\n [types.SET_UPSERTING_ASSOCIATE_BARCODES](state, payload) {\r\n state.isUpsertingAssociateBarcodes = payload;\r\n },\r\n [types.SET_IS_REMOVING_ASSOCIATED_BARCODE](state, payload) {\r\n state.isRemovingAssociatedBarcode = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import store from 'src/store';\r\n\r\nconst getAuth = () => {\r\n const token = localStorage.getItem('token');\r\n return 'Bearer ' + token;\r\n};\r\n\r\nexport const getAuthConfig = () => {\r\n const header = {\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n Authorization: getAuth(),\r\n SessionKey: localStorage.getItem('sessionKey'),\r\n };\r\n return { headers: header };\r\n};\r\n\r\nexport const getUploadConfig = (onUploadProgress) => {\r\n const header = {\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n Authorization: getAuth(),\r\n };\r\n return {\r\n headers: header,\r\n onUploadProgress,\r\n };\r\n};\r\n\r\nexport const getConfig = () => {\r\n const header = { 'Content-Type': 'application/json', Accept: '*/*' };\r\n return { headers: header };\r\n};\r\n","export const calculateUploadingSpeed = (\r\n event,\r\n initialStartTime,\r\n bitsUploaded\r\n) => {\r\n var chunk = bitsUploaded;\r\n var time_started = initialStartTime;\r\n var estimated_time;\r\n\r\n const { loaded, total } = event;\r\n // calculate bytes uploaded\r\n var uploadedBytes = loaded - chunk;\r\n chunk = loaded;\r\n // Get number of seconds since last update\r\n var end_time = new Date().getTime();\r\n var elapsed = (end_time - time_started) / 1000;\r\n time_started = end_time;\r\n // Divide by elapsed time to get bytes per second\r\n var currentSpeed = (uploadedBytes / elapsed).toFixed(2);\r\n // Output upload speed\r\n // calculate remaining time in seconds\r\n var time = (total - uploadedBytes) / currentSpeed;\r\n if (elapsed) {\r\n estimated_time = Math.floor(time) * 1000;\r\n }\r\n return {\r\n last_update_time: time_started,\r\n estimated_time: estimated_time,\r\n chunk: chunk,\r\n };\r\n};\r\n\r\nexport function formatSizeUnits(bytes, withUnit) {\r\n let unit = 'bytes';\r\n if (bytes >= 1073741824) {\r\n bytes = (bytes / 1073741824).toFixed(2);\r\n unit = ' G';\r\n } else if (bytes >= 1048576) {\r\n bytes = (bytes / 1048576).toFixed(2);\r\n unit = ' M';\r\n } else if (bytes >= 1024) {\r\n bytes = (bytes / 1024).toFixed(2);\r\n unit = ' K';\r\n } else if (bytes > 1) {\r\n bytes = bytes;\r\n unit = ' bytes';\r\n } else if (bytes == 1) {\r\n bytes = bytes;\r\n unit = ' byte';\r\n } else {\r\n bytes = '0 bytes';\r\n }\r\n var result = withUnit ? bytes + unit : bytes;\r\n return result;\r\n}\r\n","import { calculateUploadingSpeed, formatSizeUnits } from '../../utils/upload';\r\n\r\nexport const getConfig = () => {\r\n const header = { 'Content-Type': 'application/json', Accept: '*/*' };\r\n const config = { headers: header };\r\n return config;\r\n};\r\n\r\nexport const getAuthConfig = () => {\r\n const token = localStorage.getItem('token');\r\n const auth = 'Bearer ' + token;\r\n const header = {\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n Authorization: auth,\r\n SessionKey: localStorage.getItem('sessionKey'),\r\n };\r\n const config = { headers: header };\r\n return config;\r\n};\r\n\r\nexport const getUploadConfig = (obj) => {\r\n const token = localStorage.getItem('token');\r\n const auth = 'Bearer ' + token;\r\n const header = {\r\n 'Content-Type': 'application/json',\r\n Accept: '*/*',\r\n Authorization: auth,\r\n SessionKey: localStorage.getItem('sessionKey'),\r\n };\r\n var time_started = new Date().getTime();\r\n var previousBitsUploaded = 0;\r\n var remainingEstimatedTime;\r\n\r\n const config = {\r\n headers: header,\r\n onUploadProgress: (progressEvent) => {\r\n if (!obj) return;\r\n obj.isSlowSpeed = false;\r\n // calculate estimated time to upload data wrt up speed\r\n const {\r\n last_update_time,\r\n estimated_time,\r\n chunk,\r\n } = calculateUploadingSpeed(\r\n progressEvent,\r\n time_started,\r\n previousBitsUploaded\r\n );\r\n time_started = last_update_time;\r\n remainingEstimatedTime = estimated_time\r\n ? estimated_time\r\n : remainingEstimatedTime;\r\n previousBitsUploaded = chunk;\r\n // calculate file upload progress\r\n const { loaded, total } = progressEvent;\r\n let percent = parseInt(Math.round((loaded * 100) / total));\r\n let bitsUploaded = formatSizeUnits(loaded, true);\r\n let totalBits = formatSizeUnits(total, true);\r\n let text = `${bitsUploaded}B of ${totalBits}B`;\r\n // show result\r\n const objectKeys = Object.keys(obj);\r\n if (objectKeys.includes('progressText')) obj.progressText = text;\r\n if (objectKeys.includes('networkType'))\r\n obj.networkType = navigator.connection.effectiveType;\r\n obj.progress = percent;\r\n },\r\n };\r\n // set Time out for checking upload time\r\n console.log('time out ->', remainingEstimatedTime);\r\n setTimeout(() => {\r\n console.log('You have a slow internet');\r\n if (obj.progress < 100) obj.isSlowSpeed = true;\r\n }, remainingEstimatedTime || 100000);\r\n\r\n if (obj?.cancelToken) config['cancelToken'] = obj.cancelToken;\r\n return config;\r\n};\r\n\r\nexport const testHostUrl = 'https://dev.retrocausal.tech/';\r\n// export const prodHostUrl = 'https://dev.retrocausal.tech/';\r\nexport const prodHostUrl = 'https://backend.retrocausal.tech/';\r\nexport const localHostUrl = 'http://localhost:8000/';\r\n","export default [\r\n {\r\n name: 'Home',\r\n to: '/user/home',\r\n class: 'bi bi-house-door',\r\n disabled: false,\r\n },\r\n {\r\n name: 'LEAN',\r\n to: '',\r\n class: '',\r\n disabled: false,\r\n },\r\n\r\n {\r\n name: 'Analytics',\r\n to: '/user/analytics',\r\n class: 'os-icon os-icon-activity',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Line Analytics',\r\n to: '/user/line-analytics',\r\n class: 'os-icon os-icon-activity',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Trace',\r\n to: '/user/trace',\r\n class: 'os-icon os-icon-play-circle',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Issue Center',\r\n to: '/user/issue-center',\r\n class: 'bi bi-chat-dots',\r\n disabled: false,\r\n },\r\n {\r\n name: 'MANAGEMENT',\r\n to: '',\r\n class: '',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Devices',\r\n to: '/user/devices',\r\n class: 'os-icon os-icon-screen-smartphone',\r\n disabled: false,\r\n },\r\n {\r\n name: 'OPC',\r\n to: '/user/opc',\r\n class: 'bi bi-hdd-rack-fill',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Cameras',\r\n to: '/user/remote-devices',\r\n class: 'os-icon os-icon-screen-smartphone',\r\n disabled: false,\r\n },\r\n\r\n {\r\n name: 'Users',\r\n to: '/user/org-users',\r\n class: 'bi bi-people',\r\n disabled: false,\r\n },\r\n {\r\n name: 'SETUP',\r\n to: '',\r\n class: '',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Define Operation',\r\n to: '/user/process',\r\n class: 'os-icon os-icon-ui-49',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Record Training Set',\r\n to: '/user/record',\r\n class: 'bi bi-camera-video',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Label Training Set',\r\n to: '/user/label-data',\r\n class: 'bi bi-bar-chart-steps',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Train Model',\r\n to: '/user/train',\r\n class: 'os-icon os-icon-hierarchy-structure-2',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Deploy Model',\r\n to: '/user/deploy',\r\n class: 'os-icon os-icon-grid-10',\r\n disabled: false,\r\n },\r\n\r\n // ======================= User Menu ends ===========================\r\n {\r\n name: 'Organizations',\r\n to: '/admin/organizations',\r\n class: 'bi bi-building',\r\n },\r\n {\r\n name: 'All Users',\r\n to: '/admin/users',\r\n class: 'bi bi-people',\r\n },\r\n {\r\n name: 'Roles',\r\n to: '/admin/roles',\r\n class: 'bi bi-person-lines-fill',\r\n },\r\n {\r\n name: 'Pending Users',\r\n to: '/admin/pending-users',\r\n class: 'bi bi-people',\r\n },\r\n {\r\n name: 'All Devices',\r\n to: '/admin/devices',\r\n class: 'os-icon os-icon-screen-smartphone',\r\n },\r\n {\r\n name: 'Archived Cycles',\r\n to: '/admin/archived-cycles',\r\n class: 'os-icon os-icon-screen-smartphone',\r\n },\r\n {\r\n name: 'All Operations',\r\n to: '/admin/tasks',\r\n class: 'bi bi-list-task',\r\n },\r\n {\r\n name: 'Updates',\r\n to: '/admin/updates',\r\n class: 'bi bi-gear-wide-connected',\r\n },\r\n {\r\n name: 'Instances',\r\n to: '/admin/instances',\r\n class: 'os-icon os-icon-screen-smartphone',\r\n },\r\n {\r\n name: 'Trained Operations',\r\n to: '/admin/trained-tasks',\r\n class: 'bi bi-list-check',\r\n },\r\n {\r\n name: 'Annotations',\r\n to: '/admin/annotations',\r\n class: 'bi bi-tags',\r\n },\r\n {\r\n name: 'Labelers',\r\n to: '/admin/labelers',\r\n class: 'bi bi-people',\r\n },\r\n {\r\n name: 'Tampering Requests',\r\n to: '/admin/tampering-requests',\r\n class: 'bi bi-tags',\r\n },\r\n {\r\n name: 'Org Model Versions',\r\n to: '/admin/model-versions',\r\n class: 'bi bi-list-ol',\r\n disabled: false,\r\n },\r\n {\r\n name: 'Model Types',\r\n to: '/admin/model-types',\r\n class: 'bi bi-list-ol',\r\n disabled: false,\r\n },\r\n {\r\n name: 'User Report',\r\n to: '/admin/user-report',\r\n class: 'bi bi-clipboard-data',\r\n },\r\n {\r\n name: 'Barcode',\r\n to: '/admin/barcode',\r\n class: 'bi bi-clipboard-data',\r\n },\r\n {\r\n name: 'AWS-Lambda Token',\r\n to: '/admin/aws-token',\r\n class: 'bi bi-clipboard-data',\r\n },\r\n {\r\n name: 'Feature Control',\r\n to: '/admin/feature-control',\r\n class: 'bi bi-gear-wide-connected',\r\n },\r\n {\r\n name: 'Event Notification',\r\n to: '/admin/event-notification',\r\n class: 'bi bi-envelope-arrow-up',\r\n },\r\n // ======================= Admin Menu ends ===========================\r\n {\r\n name: 'Operations Requested',\r\n to: '/labeler/tasks',\r\n class: 'bi bi-list-task',\r\n },\r\n {\r\n name: 'Profile Setting',\r\n to: '/labeler/setting',\r\n class: 'bi bi-person-lines-fill',\r\n },\r\n];\r\n","export const features = {\r\n path_finder: 'PATH_FINDER_SUBSCRIPTION', \r\n};\r\n\r\nexport const featureLabels = {\r\n [features.path_finder]: 'Pathfinder',\r\n};","import { useToast } from 'vue-toastification';\r\n\r\nconst toast = useToast();\r\n\r\nexport const handleError = (error) => {\r\n if (error?.status === 400) {\r\n console.log(error);\r\n const [errorMessage] = Object.values(error.data)[0];\r\n toast.error(errorMessage, {\r\n timeout: 3000,\r\n });\r\n }\r\n if (error?.status === 429) {\r\n const [errorMessage] = Object.values(error.data);\r\n toast.error(errorMessage, {\r\n timeout: 3000,\r\n });\r\n }\r\n};\r\n\r\nexport const customErrorHandler = (error) => {\r\n const [errorMessage] = Object.values(error.data);\r\n toast.error(errorMessage, {\r\n timeout: 3000,\r\n });\r\n};\r\n","export const localStorageItems = [\r\n 'id',\r\n 'name',\r\n 'role',\r\n 'organization',\r\n 'token',\r\n 'timestamp',\r\n 'hostURL',\r\n 'poc',\r\n 'isPolicyAccepted',\r\n 'twk_625ce4597b967b11798b2ca8',\r\n 'twk_token_625ce4597b967b11798b2ca8',\r\n 'fcmToken',\r\n 'email',\r\n 'sessionEndTime',\r\n 'sessionId',\r\n 'sessionUser',\r\n 'sessionKey',\r\n 'refresh',\r\n 'loglevel',\r\n 'require_otp',\r\n 'isOtpSetup'\r\n];\r\n\r\nexport const itemsToKeep = [\r\n 'hostURL', 'redirectUrl'\r\n]\r\n\r\nexport const removeUnwantedLocalStorageItems = () => {\r\n localStorageItems.forEach((item) => {\r\n if (!itemsToKeep.includes(item)) {\r\n localStorage.removeItem(item);\r\n }\r\n });\r\n}","import router from '@/router';\r\nimport allSidebarItems from 'src/config/drawer-items-config.js';\r\nimport { featureLabels } from 'src/config/features-config.js';\r\nimport { rolesDrawerItems } from 'src/config/roles-config.js';\r\nimport AuthService from 'src/services/auth';\r\nimport {\r\n isUserAssignedToOrg,\r\n setEmailForResendVerification,\r\n setUserDetails,\r\n} from 'src/utils/auth';\r\nimport { customErrorHandler, handleError } from 'src/utils/error';\r\nimport { useToast } from 'vue-toastification';\r\nimport { setOTPStatus, setOTPVerificationStatus } from '../../utils/auth';\r\nimport types from '../mutation-types';\r\n// import {}\r\nimport { PublicClientApplication } from '@azure/msal-browser';\r\nimport fcmstore from 'src/store';\r\n\r\nimport {\r\n localStorageItems,\r\n removeUnwantedLocalStorageItems,\r\n} from 'src/config/auth-config';\r\nimport { emitter } from 'src/main';\r\nimport { teardownFCM } from 'src/utils/fcm';\r\n\r\nconst toast = useToast();\r\n\r\nexport async function azureRefreshToken(payload) {\r\n console.log('azureRefreshToken', payload);\r\n const [error, data] = await AuthService.azureRefreshToken(payload);\r\n // if (error) return customErrorHandler(error?.response);\r\n}\r\nexport async function refreshJWTToken() {\r\n const refreshToken = localStorage.getItem('refresh');\r\n const payload = { refresh: refreshToken };\r\n const [error, data] = await AuthService.refreshJWTToken(payload);\r\n localStorage.setItem('token', data.access);\r\n localStorage.setItem('refresh', data.refresh);\r\n return data.access;\r\n}\r\n\r\nconst getters = {\r\n user: (state) => state.user,\r\n token: (state) => state.token,\r\n refresh: (state) => state.refresh,\r\n isTokenSet: (state) => state.isTokenSet,\r\n organization: (state) => state.organization,\r\n userOrganizations: (state) => state.userOrganizations,\r\n role: (state) => state.role,\r\n sidebarItems: (state, getters, rootState, rootGetters) => {\r\n let barItems = allSidebarItems.filter((item) =>\r\n rolesDrawerItems[state.role]?.includes(item.name)\r\n );\r\n let featuresExistInOrg = rootState.featureControl.featureSubscriptions.map(\r\n (item) => {\r\n if (!item?.Feature?.suppressed) {\r\n return featureLabels[item?.Feature?.name];\r\n }\r\n }\r\n );\r\n let allFeatures = Object.values(featureLabels);\r\n barItems = barItems.filter((item) => {\r\n if (\r\n allFeatures?.includes(item.name) &&\r\n !featuresExistInOrg?.includes(item.name)\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n return barItems;\r\n },\r\n hostURL: (state) => state.hostURL,\r\n poc: (state) => state.poc,\r\n isPolicyAccepted: (state) => state.isPolicyAccepted,\r\n accessToken: (state) => state.accessToken,\r\n msalInstance: (state) => state.msalInstance,\r\n azureLogin: (state) => state.azureLogin,\r\n isOtpSetup: (state) => state.isOtpSetup,\r\n email: (state) => state.email,\r\n require_otp: (state) => state.require_otp,\r\n organizationUsers: (state) => state.organizationUsers,\r\n};\r\n\r\nconst actions = {\r\n async createMsalInstance({ commit }) {\r\n const msalConfig = {\r\n auth: {\r\n clientId: 'c5093c91-21ae-4374-9be1-d95791ea78eb',\r\n authority: 'https://login.microsoftonline.com/organizations',\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n },\r\n };\r\n let msalInstance = new PublicClientApplication(msalConfig);\r\n commit(types.SET_MSAL_INSTANCE, msalInstance);\r\n },\r\n\r\n async azureSignIn({ commit, dispatch }, payload) {\r\n const [error, data] = await AuthService.azureSignIn(payload);\r\n if (error) {\r\n toast.error(error.response.data.response);\r\n commit(types.LOGOUT);\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n localStorage.setItem('isOtpSetup', false);\r\n localStorage.setItem('require_otp', true);\r\n return;\r\n }\r\n\r\n if (data.response === 'User created successfully') {\r\n setTimeout(toast.success(data.response), 3000);\r\n commit(types.LOGOUT);\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n localStorage.setItem('isOtpSetup', false);\r\n localStorage.setItem('require_otp', true);\r\n return;\r\n } else {\r\n if (await isUserAssignedToOrg(data))\r\n return toast.error('User is not assigned to any organization');\r\n }\r\n\r\n let userInfo = { ...data, email: payload.username };\r\n let token = payload.token;\r\n commit(types.SET_TEMPORARY_USER_INFO, { token, id: userInfo.id });\r\n setUserDetails({ ...data, email: payload.username }, commit);\r\n\r\n // commit(types.SAVE_ACCESS_TOKEN, payload.access_token);\r\n // commit(types.SET_AZURE_LOGIN, true);\r\n\r\n await setOTPVerificationStatus(commit);\r\n await dispatch('fetchOrganizations');\r\n return;\r\n },\r\n async azureSignUp({ commit }, payload) {\r\n const [error, data] = await AuthService.azureSignUp(payload);\r\n if (error) {\r\n toast.error(error.response);\r\n return;\r\n }\r\n toast.success(\r\n 'Admin has been notified. Your account will be approved within 24 Hours.'\r\n );\r\n setTimeout(() => router.replace({ name: 'Login' }), 3000);\r\n },\r\n async userSignup(_, payload) {\r\n const [error] = await AuthService.signUp(payload);\r\n if (error) return handleError(error?.response);\r\n\r\n toast.success(\r\n 'Verification email has been sent please verify to complete registeration!'\r\n );\r\n setTimeout(() => router.replace({ name: 'Login' }), 3000);\r\n },\r\n async resendVerificationEmail(_, payload) {\r\n const [error, data] = await AuthService.resendVerificationEmail(payload);\r\n if (error) return handleError(error?.response);\r\n\r\n toast.success(\r\n 'Verification email has been sent again verify to complete registeration!'\r\n );\r\n },\r\n async verifyEmail(_, payload) {\r\n const [error, data] = await AuthService.verifyEmail(payload);\r\n if (error) {\r\n toast.error('Token expired/Invalid!');\r\n return false;\r\n }\r\n toast.success(data.response[0]);\r\n setTimeout(() => router.replace({ name: 'Login' }), 3000);\r\n return true;\r\n },\r\n\r\n async userLogin({ commit, dispatch }, payload) {\r\n // start implementation here\r\n // debugger;\r\n const [error, data] = await AuthService.signIn(payload);\r\n\r\n if (error) {\r\n setEmailForResendVerification(payload.username, commit);\r\n handleError(error?.response);\r\n return false;\r\n }\r\n if (await isUserAssignedToOrg(data)) {\r\n if (error.response.status === 429) {\r\n return toast.error('Too many attempts.Please try after 1 min.');\r\n }\r\n return handleError(error?.response);\r\n }\r\n\r\n let userInfo = { ...data, email: payload.email };\r\n let token = payload.token;\r\n commit(types.SET_TEMPORARY_USER_INFO, { token, id: userInfo.id });\r\n await setUserDetails({ ...userInfo }, commit);\r\n\r\n commit(types.SET_AZURE_LOGIN, false);\r\n\r\n await setOTPStatus(commit);\r\n\r\n emitter.emit('chatbot-visibility', true);\r\n\r\n if (!data.require_otp) {\r\n await setOTPVerificationStatus(commit);\r\n // setupFCM();\r\n\r\n if (!data.is_admin) {\r\n await dispatch('fetchOrganizations');\r\n } else {\r\n router.replace({ path: '/' });\r\n }\r\n\r\n return data;\r\n }\r\n\r\n AuthService.sendOTP();\r\n return data;\r\n },\r\n async setOTPMethod({ commit }, payload) {\r\n // need another account for this\r\n const [error, data] = await AuthService.setOTPMethod(payload);\r\n if (error) {\r\n return handleError(error?.response);\r\n }\r\n toast.success(data.response);\r\n return true;\r\n },\r\n\r\n async verifyOTP({ commit, dispatch }, payload) {\r\n if (payload.OTP.length != 6) {\r\n toast.error('Please enter the 6-digit OTP');\r\n return;\r\n }\r\n const [error, data] = await AuthService.verifyOTP(payload);\r\n if (error) {\r\n return customErrorHandler(error?.response);\r\n }\r\n\r\n // Set Credential Check Flag to true on sucessful otp handling\r\n await setOTPVerificationStatus(commit);\r\n await dispatch('fetchOrganizations');\r\n\r\n // setupFCM();\r\n // router.replace({ path: '/' });\r\n // emitter.emit('chatbot-visibility', true);\r\n },\r\n\r\n async fetchOrganizations({ commit, dispatch }) {\r\n let params = { user_id: localStorage.getItem('id') };\r\n const [error, data] = await AuthService.GetUserLinkedOrgByUserId(params);\r\n if (error) {\r\n customErrorHandler(error?.response);\r\n return;\r\n }\r\n if (data.length == 1) {\r\n let payload = {\r\n organization: data[0].organization,\r\n };\r\n dispatch('selectOrganization', payload);\r\n } else {\r\n commit(types.SET_ORGANIZATIONS, data);\r\n // remove these right after getting user linked organization, so that if user refresh page he couldn't access home page\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('id');\r\n }\r\n },\r\n\r\n async selectOrganization({ commit }, payload) {\r\n await AuthService.SwitchOrganizationByUser(payload);\r\n\r\n localStorage.setItem('organization', payload.organization);\r\n localStorage.setItem('token', state.persistUserInfoTemporary.token);\r\n localStorage.setItem('id', state.persistUserInfoTemporary.id);\r\n commit(types.SAVE_TOKEN, state.persistUserInfoTemporary.token);\r\n commit(types.SAVE_ORGANIZATION, payload.organization);\r\n router.replace({ path: '/' }).then(() => {\r\n commit(types.SET_ORGANIZATIONS, []);\r\n });\r\n },\r\n\r\n async addUserToMultipleOrgs({ commit }, payload) {\r\n await AuthService.AddUserToMultipleOrgs(payload);\r\n },\r\n\r\n async removeUserFromMultipleOrgs({ commit }, params) {\r\n await AuthService.RemoveUserFromMultipleOrgs(params);\r\n },\r\n\r\n async resendOTP(_) {\r\n const [error, data] = await AuthService.resendOtp();\r\n if (error) return customErrorHandler(error?.response);\r\n\r\n toast.success('OTP Sent!');\r\n },\r\n async forgotPassword(_, payload) {\r\n const [error, data] = await AuthService.forgotPassword(payload);\r\n if (error) return customErrorHandler(error?.response);\r\n\r\n toast.success(data.response);\r\n router.replace({ name: 'Login' }, 3000);\r\n },\r\n\r\n async changePassword(_, payload) {\r\n const [error, data] = await AuthService.changePassword(payload);\r\n if (error) return customErrorHandler(error?.response);\r\n\r\n toast.success(data.response);\r\n router.replace({ name: 'Login' }, 3000);\r\n },\r\n\r\n async RequestChangePassword(_, payload) {\r\n const [error, data] = await AuthService.RequestChangePassword(payload);\r\n if (error) {\r\n customErrorHandler(error?.response);\r\n return false;\r\n }\r\n\r\n toast.success(data.response);\r\n return true;\r\n },\r\n\r\n async RequestChangeEmail(_, payload) {\r\n const [error, data] = await AuthService.RequestChangeEmail(payload);\r\n if (error) {\r\n customErrorHandler(error?.response);\r\n return false;\r\n }\r\n\r\n toast.success(data.response);\r\n return true;\r\n },\r\n async VerifyEmailChange(_, payload) {\r\n const [error, data] = await AuthService.VerifyEmailChange(payload);\r\n if (error) {\r\n customErrorHandler(error?.response);\r\n return false;\r\n }\r\n\r\n toast.success(data.response);\r\n return true;\r\n },\r\n clearState({ commit }) {\r\n if (state.isTokenSet) {\r\n AuthService.logout();\r\n }\r\n document.cookie =\r\n 'twk_uuid_625ce4597b967b11798b2ca8=null; expires=Fri, 1 Dec 2000 12:00:00 UTC; path=/';\r\n document.cookie =\r\n 'twk_idm_key=null; expires=Fri, 1 Dec 2000 12:00:00 UTC; path=/';\r\n commit(types.LOGOUT);\r\n removeUnwantedLocalStorageItems();\r\n sessionStorage.clear();\r\n teardownFCM();\r\n localStorage.setItem('isOtpSetup', false);\r\n localStorage.setItem('require_otp', true);\r\n router.replace({ name: 'Login' });\r\n },\r\n async userLogout({ commit }) {\r\n teardownFCM();\r\n\r\n localStorageItems.forEach((el) => localStorage.removeItem(el));\r\n\r\n AuthService.logout();\r\n document.cookie =\r\n 'twk_uuid_625ce4597b967b11798b2ca8=null; expires=Fri, 1 Dec 2000 12:00:00 UTC; path=/';\r\n document.cookie =\r\n 'twk_idm_key=null; expires=Fri, 1 Dec 2000 12:00:00 UTC; path=/';\r\n if (window.Tawk_API)\r\n try {\r\n window.Tawk_API.endChat();\r\n } catch (error) {\r\n console.log('Error occured ending tawk chabot chat', error);\r\n }\r\n\r\n commit(types.LOGOUT);\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n localStorage.setItem('isOtpSetup', false);\r\n localStorage.setItem('require_otp', true);\r\n commit(types.SET_FCM_TOKEN, null);\r\n\r\n router.replace({ name: 'Login' });\r\n // emitter.emit('chatbot-visibility', false);\r\n },\r\n\r\n async userRedirectPasswordExpired({ commit }) {\r\n router.push({ name: 'Change Password' });\r\n window.location = '/change-password';\r\n },\r\n\r\n async handleAcceptPolicy({ state, dispatch }) {\r\n dispatch('removePolicyFlag');\r\n const payload = {\r\n terms_and_conditions_accepted: true,\r\n };\r\n const [error] = await AuthService.acceptPolicy(state.email, payload);\r\n if (error) return handleError(error?.response);\r\n },\r\n\r\n async fetchAdminPermissions() {\r\n console.log('getting permission');\r\n const [error, data] = await AuthService.getPermissions();\r\n if (data.response == 'true') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n removePolicyFlag({ commit }) {\r\n localStorage.removeItem('isPolicyAccepted');\r\n commit(types.SET_POLICY_FLAG, null);\r\n },\r\n\r\n async getOrganizationUsers({ commit }) {\r\n let organization = localStorage.getItem('organization');\r\n let resp = await AuthService.GetOrganizationUsers(organization);\r\n commit(\r\n types.GET_ORGANIZATION_USERS,\r\n resp[1].results.map((data) => ({\r\n id: data.user.id,\r\n value: `${data.user.username} ${data.user.lastname}`,\r\n }))\r\n );\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.GET_ORGANIZATION_USERS](state, payload) {\r\n state.organizationUsers = [...payload];\r\n },\r\n [types.SET_ORGANIZATIONS](state, organizations) {\r\n state.userOrganizations = organizations;\r\n },\r\n [types.SET_TEMPORARY_USER_INFO](state, userToken) {\r\n state.persistUserInfoTemporary = userToken;\r\n },\r\n [types.SAVE_TOKEN](state, token) {\r\n state.token = token;\r\n state.isTokenSet = true;\r\n },\r\n [types.LOGOUT](state) {\r\n state.user = null;\r\n state.token = null;\r\n state.isTokenSet = false;\r\n state.organization = null;\r\n state.role = null;\r\n state.hostURL = null;\r\n state.isOtpSetup = false;\r\n state.require_otp = true;\r\n state.email = null;\r\n state.azureLogin = null;\r\n state.refresh = null;\r\n fcmstore.dispatch('setFCMToken', null);\r\n },\r\n [types.SAVE_USER](state, user) {\r\n state.user = user;\r\n },\r\n [types.SAVE_USER_EMAIL](state, email) {\r\n state.email = email;\r\n },\r\n [types.SAVE_ORGANIZATION](state, organization) {\r\n state.organization = organization;\r\n },\r\n [types.SAVE_ROLE](state, role) {\r\n state.role = role;\r\n },\r\n [types.SAVE_HOSTURL](state, hostURL) {\r\n state.hostURL = hostURL;\r\n },\r\n [types.SET_POC_FLAG](state, poc_flag) {\r\n state.poc = poc_flag;\r\n },\r\n [types.SET_POLICY_FLAG](state, policy_flag) {\r\n state.isPolicyAccepted = policy_flag;\r\n },\r\n [types.SAVE_ACCESS_TOKEN](state, token) {\r\n localStorage.setItem('azureLogin', true);\r\n state.isTokenSet = true;\r\n },\r\n [types.SET_MSAL_INSTANCE](state, msalInstance) {\r\n state.msalInstance = msalInstance;\r\n },\r\n [types.SET_AZURE_LOGIN](state, azureLogin) {\r\n state.azureLogin = azureLogin;\r\n },\r\n [types.SET_EMAIL](state, email) {\r\n state.email = email;\r\n },\r\n [types.SET_OTP_FLAG](state, otp_flag) {\r\n state.isOtpSetup = otp_flag;\r\n },\r\n [types.SET_REQUIRE_OTP](state, flag) {\r\n state.require_otp = flag;\r\n },\r\n [types.SAVE_REFRESH_TOKEN](state, token) {\r\n state.refresh = token;\r\n },\r\n};\r\n\r\nfunction eraseCookie(name) {\r\n document.cookie = name + '=; Max-Age=-99999999;';\r\n}\r\n\r\nfunction getCookie(cName) {\r\n const name = cName + '=';\r\n const cDecoded = decodeURIComponent(document.cookie); //to be careful\r\n const cArr = cDecoded.split('; ');\r\n let res;\r\n cArr.forEach((val) => {\r\n if (val.indexOf(name) === 0) res = val.substring(name.length);\r\n });\r\n return res;\r\n}\r\n\r\nconst state = {\r\n persistUserInfoTemporary: null,\r\n user: localStorage.getItem('name'),\r\n email: localStorage.getItem('email'),\r\n token: localStorage.getItem('token'),\r\n isTokenSet: !!localStorage.getItem('token'),\r\n organization: localStorage.getItem('organization'),\r\n userOrganizations: [],\r\n role: localStorage.getItem('role'),\r\n hostURL: localStorage.getItem('hostURL'),\r\n poc: localStorage.getItem('poc'),\r\n isPolicyAccepted: localStorage.getItem('isPolicyAccepted'),\r\n isOtpSetup: localStorage.getItem('isOtpSetup'),\r\n require_otp: localStorage.getItem('require_otp'),\r\n azureLogin: localStorage.getItem('azureLogin'),\r\n organizationUsers: [],\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","// import { useToast } from 'vue-toastification';\r\n// import types from '../mutation-types';\r\n// import TaskService from 'src/services/tasks';\r\n// import {\r\n// validateForSpecialCharacters,\r\n// checkIfTaskExist,\r\n// checkIfEmpty,\r\n// checkIfSubstepsExists,\r\n// isDuplicateStep,\r\n// isDuplicateSubstep,\r\n// hasNoProcess,\r\n// hasNoSteps,\r\n// getTaskString,\r\n// startTaskModification,\r\n// getStepsCount,\r\n// } from 'src/utils/task';\r\n\r\n// const getDestinationIndex = (index, direction) => {\r\n// if (direction === 'up') return index - 1;\r\n// else return index + 1;\r\n// };\r\n\r\n// const toast = useToast();\r\n\r\n// const state = {\r\n// newTask: 'dfvd',\r\n// taskEdit: '',\r\n// processes: [{ name: 'sdcs', steps: [{ name: 'sdsd', substeps: ['sdsd'] }] }],\r\n// processesTranslation: [],\r\n// currentEditMode: '',\r\n// editModes: {\r\n// addDelete: 'add-delete',\r\n// rename: 'rename',\r\n// },\r\n// prevStepsJson: {},\r\n// updatedJsonPayload: [],\r\n// taskUpdateConfirmModal: true,\r\n// };\r\n\r\n// const getters = {\r\n// newTask: (state) => state.newTask,\r\n// processes: (state) => state.processes,\r\n// processesTranslation: (state) => state.processesTranslation,\r\n// taskUpdateConfirmModal: (state) => state.taskUpdateConfirmModal,\r\n\r\n// steps: (state) => (processIndex) => state.processes[processIndex]['steps'],\r\n\r\n// stepsTranslation: (state) => (processIndex) =>\r\n// state.processesTranslation[processIndex]['steps'],\r\n\r\n// substeps: (state) => (processIndex, stepIndex) =>\r\n// state.processes[processIndex]['steps'][stepIndex]['substeps'],\r\n\r\n// substepsTranslation: (state) => (processIndex, stepIndex) =>\r\n// state.processesTranslation[processIndex]['steps'][stepIndex]['substeps'],\r\n\r\n// stepsCount: (state) => (processIndex) =>\r\n// state.processes[processIndex]?.steps.length,\r\n\r\n// substepsCount: (state) => (processIndex, stepIndex) =>\r\n// state.processes[processIndex]?.steps[stepIndex]?.substeps.length,\r\n\r\n// currentEditMode: (state) => state.currentEditMode,\r\n// editModes: (state) => state.editModes,\r\n// prevStepsJson: (state) => state.prevStepsJson,\r\n// updatedJsonPayload: (state) => state.updatedJsonPayload,\r\n\r\n// updatedJson: (state) => {\r\n// const temp = {};\r\n// state.processes.forEach((process) => {\r\n// process.steps.forEach((step) => {\r\n// const { name: stepName, substeps } = step;\r\n// temp[stepName] = {\r\n// [stepName]: {\r\n// typeP: 4,\r\n// step: stepName,\r\n// labelText: stepName,\r\n// secondMax: 0,\r\n// isBeingLabled: false,\r\n// },\r\n// };\r\n\r\n// substeps.forEach((substep) => {\r\n// temp[stepName][substep] = {\r\n// typeP: 3,\r\n// step: stepName,\r\n// labelText: substep,\r\n// };\r\n// });\r\n// });\r\n// });\r\n// return temp;\r\n// },\r\n// };\r\n\r\n// const actions = {\r\n// resetState({commit}){\r\n// commit(types.SET_PROCESS, []);\r\n// commit(types.SET_NEW_TASK, '');\r\n// commit(types.SET_UPDATED_JSON_PAYLOAD, []);\r\n// },\r\n// setNewTask({ commit }, payload) {\r\n// commit(types.SET_NEW_TASK, payload);\r\n// },\r\n\r\n// setTaskUpdateConfirmModal({ commit }, payload) {\r\n// commit(types.SET_TASK_UPDATE_CONFIRM_MODAL, payload);\r\n// },\r\n\r\n// setProcesses({ commit }, payload) {\r\n// commit(types.SET_PROCESS, payload);\r\n// },\r\n\r\n// setProcessesTranslation({ commit }, payload) {\r\n// commit(types.SET_PROCESS_TRANSLATION, payload);\r\n// },\r\n\r\n// addProcess({ commit, state }) {\r\n// const processes = [...state.processes];\r\n// processes.push({\r\n// name: '',\r\n// steps: [],\r\n// });\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateProcess({ commit, state }, payload) {\r\n// const { processIndex, process } = payload;\r\n// const processes = [...state.processes];\r\n// processes[processIndex]['name'] = process;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateProcessTranslation({ commit, state }, payload) {\r\n// const { processIndex, process } = payload;\r\n// const processes = [...state.processesTranslation];\r\n// processes[processIndex]['name'] = process;\r\n// commit(types.SET_PROCESS_TRANSLATION, processes);\r\n// },\r\n\r\n// removeProcess({ commit, state }, payload) {\r\n// const { processIndex } = payload;\r\n// const processes = state.processes.filter(\r\n// (_, index) => index !== processIndex\r\n// );\r\n\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// addStep({ commit, state }, payload) {\r\n// const { processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// const processSteps = processes[processIndex]['steps'];\r\n// if (!processSteps.at(-1)?.name && !!processSteps.length) {\r\n// toast.info('Please finish the last step first!', {\r\n// timeout: 2000,\r\n// });\r\n// return;\r\n// }\r\n// processes[processIndex]['steps'].push({\r\n// name: '',\r\n// substeps: [],\r\n// });\r\n\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateStep({ commit, state }, payload) {\r\n// const { step, stepIndex, processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// const processSteps = [...processes[processIndex]['steps']];\r\n// processSteps[stepIndex]['name'] = step;\r\n// processes[processIndex]['steps'] = processSteps;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateStepTranslation({ commit, state }, payload) {\r\n// const { step, stepIndex, processIndex } = payload;\r\n// const processes = [...state.processesTranslation];\r\n// const processSteps = [...processes[processIndex]['steps']];\r\n// processSteps[stepIndex]['name'] = step;\r\n// processes[processIndex]['steps'] = processSteps;\r\n// commit(types.SET_PROCESS_TRANSLATION, processes);\r\n// },\r\n\r\n// removeStep({ commit, state }, payload) {\r\n// const { stepIndex, processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// const steps = processes[processIndex]['steps'].filter(\r\n// (_, index) => index !== stepIndex\r\n// );\r\n// processes[processIndex]['steps'] = steps;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// moveStep({ commit, state }, payload) {\r\n// const { processIndex, stepIndex, direction } = payload;\r\n// const stepsLastIndex = state.processes[processIndex]['steps'].length - 1;\r\n// if (\r\n// (stepIndex === 0 && direction === 'up') ||\r\n// (stepIndex === stepsLastIndex && direction === 'down')\r\n// )\r\n// return;\r\n\r\n// const destinationIndex = getDestinationIndex(stepIndex, direction);\r\n// const processes = [...state.processes];\r\n// const steps = [...processes[processIndex]['steps']];\r\n// const temp = steps[stepIndex];\r\n// steps[stepIndex] = steps[destinationIndex];\r\n// steps[destinationIndex] = temp;\r\n// processes[processIndex]['steps'] = steps;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// addSubstep({ commit, state }, payload) {\r\n// const { stepIndex, processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// const substeps = processes[processIndex]['steps'][stepIndex]['substeps'];\r\n// if (!substeps.at(-1) && !!substeps.length) {\r\n// toast.info('Please finish the last sub-step first!', {\r\n// timeout: 2000,\r\n// });\r\n// return;\r\n// }\r\n// processes[processIndex]['steps'][stepIndex]['substeps'].push('');\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateSubstep({ commit, state }, payload) {\r\n// const { substep, substepIndex, stepIndex, processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// processes[processIndex]['steps'][stepIndex]['substeps'][\r\n// substepIndex\r\n// ] = substep;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// updateSubstepTranslation({ commit, state }, payload) {\r\n// const { substep, substepIndex, stepIndex, processIndex } = payload;\r\n// const processes = [...state.processesTranslation];\r\n// processes[processIndex]['steps'][stepIndex]['substeps'][\r\n// substepIndex\r\n// ] = substep;\r\n// commit(types.SET_PROCESS_TRANSLATION, processes);\r\n// },\r\n\r\n// removeSubstep({ commit, state }, payload) {\r\n// const { substepIndex, stepIndex, processIndex } = payload;\r\n// const processes = [...state.processes];\r\n// processes[processIndex]['steps'][stepIndex]['substeps'] = processes[\r\n// processIndex\r\n// ]['steps'][stepIndex]['substeps'].filter(\r\n// (_, index) => index !== substepIndex\r\n// );\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// moveSubstep({ commit, state }, payload) {\r\n// const { processIndex, stepIndex, substepIndex, direction } = payload;\r\n// const substepsLastIndex =\r\n// state.processes[processIndex]['steps'][stepIndex]['substeps'].length - 1;\r\n// if (\r\n// (substepIndex === 0 && direction === 'up') ||\r\n// (substepIndex === substepsLastIndex && direction === 'down')\r\n// )\r\n// return;\r\n\r\n// const destinationIndex = getDestinationIndex(substepIndex, direction);\r\n// const processes = [...state.processes];\r\n// const substeps = [\r\n// ...processes[processIndex]['steps'][stepIndex]['substeps'],\r\n// ];\r\n\r\n// const temp = substeps[substepIndex];\r\n// substeps[substepIndex] = substeps[destinationIndex];\r\n// substeps[destinationIndex] = temp;\r\n// processes[processIndex]['steps'][stepIndex]['substeps'] = substeps;\r\n// commit(types.SET_PROCESS, processes);\r\n// },\r\n\r\n// resetProcessState({ commit }) {\r\n// commit(types.SET_PROCESS, []);\r\n// },\r\n\r\n// setPrevStepsJson({ commit }, payload) {\r\n// commit(types.SET_PREV_STEPS_JSON, payload);\r\n// },\r\n\r\n// setCurrentEditMode({ commit }, payload) {\r\n// commit(types.SET_CURRENT_EDIT_MODE, payload);\r\n// },\r\n\r\n// setUpdatedJsonPayload({ commit }, payload) {\r\n// commit(types.SET_UPDATED_JSON_PAYLOAD, payload);\r\n// },\r\n\r\n// async upsertTask({ commit, state, getters, dispatch }) {\r\n// const { taskEdit, updatedJsonPayload } = state;\r\n// if (validateForSpecialCharacters(state)) return;\r\n// if (!taskEdit && (await checkIfTaskExist(state))) return;\r\n// if (checkIfEmpty(state)) return;\r\n// if (checkIfSubstepsExists(state)) return;\r\n// if (isDuplicateStep(state)) return;\r\n// if (isDuplicateSubstep(state)) return;\r\n// if (hasNoProcess(state)) return;\r\n// if (hasNoSteps(state)) return;\r\n// const taskString = getTaskString(state);\r\n\r\n// if (taskEdit) startTaskModification(commit, getters);\r\n// else dispatch('addTask');\r\n// },\r\n\r\n// async addTask({ state }) {\r\n// const { newTask, taskString } = state;\r\n// const payload = {\r\n// taskName: newTask,\r\n// task_detail: taskString,\r\n// stepsCount: getStepsCount(),\r\n// Organization: localStorage.getItem('organization'),\r\n// };\r\n// const [error, data] = await TaskService.addTask(payload);\r\n\r\n// },\r\n// };\r\n\r\n// const mutations = {\r\n// [types.SET_PROCESS](state, payload) {\r\n// state.processes = payload;\r\n// },\r\n// [types.SET_PROCESS_TRANSLATION](state, payload) {\r\n// state.processesTranslation = payload;\r\n// },\r\n// [types.SET_PREV_STEPS_JSON](state, payload) {\r\n// state.prevStepsJson = payload;\r\n// },\r\n// [types.SET_CURRENT_EDIT_MODE](state, payload) {\r\n// state.currentEditMode = payload;\r\n// },\r\n// [types.SET_NEW_TASK](state, payload) {\r\n// state.newTask = payload;\r\n// },\r\n// [types.SET_UPDATED_JSON_PAYLOAD](state, payload) {\r\n// state.updatedJsonPayload = payload;\r\n// },\r\n// [types.SET_TASK_UPDATE_CONFIRM_MODAL](state, payload) {\r\n// state.taskUpdateConfirmModal = payload;\r\n// },\r\n// };\r\n\r\nexport default {\r\n state: {},\r\n getters: {},\r\n actions: {},\r\n mutations: {},\r\n};\r\n","import types from '../mutation-types';\r\n\r\nconst getters = {\r\n frameStepSize: (state) => state.frameStepSize,\r\n isSavingAnnoation: (state) => state.isSavingAnnoation,\r\n isSubstepsChanged: (state) => state.isSubstepsChanged,\r\n webSocketConnection: (state) => state.webSocketConnection,\r\n};\r\n\r\nconst actions = {\r\n setFrameStepSize({ commit }, payload) {\r\n commit(types.SET_FRAME_STEP_SIZE, payload);\r\n },\r\n setIsSavingAnnoation({ commit }, payload) {\r\n commit(types.SET_IS_SAVING_ANNOATION, payload);\r\n },\r\n setIsSubstepsChanged({ commit }, payload) {\r\n commit(types.SET_IS_SUBSTEPS_CHANGED, payload);\r\n },\r\n setWebSocketConnection({ commit }, payload) {\r\n commit(types.SET_WEBSOCKET_CONNECTION, payload);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_FRAME_STEP_SIZE](state, payload) {\r\n state.frameStepSize = payload;\r\n },\r\n [types.SET_IS_SAVING_ANNOATION](state, payload) {\r\n state.isSavingAnnoation = payload;\r\n },\r\n [types.SET_IS_SUBSTEPS_CHANGED](state, payload) {\r\n state.isSubstepsChanged = payload;\r\n },\r\n [types.SET_WEBSOCKET_CONNECTION](state, payload) {\r\n state.webSocketConnection = payload;\r\n },\r\n\r\n};\r\n\r\nconst state = {\r\n frameStepSize: 10,\r\n isSavingAnnoation: false,\r\n isSubstepsChanged: false,\r\n webSocketConnection: null,\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","export function getRandomColor() {\r\n const letters = '0123456789ABCDEF';\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n}\r\n\r\nexport function validateColor(color) {\r\n const hexRegex = /^#([0-9A-F]{3}){1,2}$/i;\r\n return hexRegex.test(color); \r\n}\r\n\r\n","import { roles } from 'src/config/roles-config.js';\r\n\r\nexport default [\r\n {\r\n path: '/admin',\r\n name: 'Admin Layout',\r\n component: () => import('src/components/core/LayoutV2.vue'),\r\n children: [\r\n {\r\n path: 'tampering-requests',\r\n name: 'Tampering Requests',\r\n component: () =>\r\n import('src/components/admin-panel/pages/TamperingRequests/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'organizations',\r\n name: 'Organizations',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Organization/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'users',\r\n name: 'All Users',\r\n component: () =>\r\n import('src/components/admin-panel/pages/ApprovedUser/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'roles',\r\n name: 'Roles',\r\n component: () => import('src/components/admin-panel/pages/Roles/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'pending-users',\r\n name: 'Pending Users',\r\n component: () =>\r\n import('src/components/admin-panel/pages/PendingUser/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'devices',\r\n name: 'All Devices',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Device/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'archived-cycles',\r\n name: 'Archived Cycles',\r\n component: () =>\r\n import('src/components/admin-panel/pages/ArchivedCycles/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'tasks',\r\n name: 'All Operations',\r\n component: () => import('src/components/admin-panel/pages/Task/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'updates',\r\n name: 'Updates',\r\n component: () =>\r\n import('src/components/admin-panel/pages/AutoUpdates/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'instances',\r\n name: 'Instances',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Instances/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'trained-tasks',\r\n name: 'Trained Operations',\r\n component: () =>\r\n import('src/components/admin-panel/pages/TrainedTasks/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'annotations',\r\n name: 'Annotations',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Annotation/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'labelers',\r\n name: 'Labelers',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Labelers/Index'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'task-videos/:taskId/:taskName',\r\n name: 'Task Videos',\r\n props: true,\r\n component: () =>\r\n import(\r\n 'src/components/labeler-panel/pages/VideosList/VideosList.vue'\r\n ),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'user-report',\r\n name: 'User Report',\r\n component: () =>\r\n import('src/components/admin-panel/pages/UserReport/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'barcode',\r\n name: 'Barcode',\r\n component: () =>\r\n import('src/components/admin-panel/pages/Barcode/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'aws-token',\r\n name: 'AWS-Lambda Token',\r\n component: () =>\r\n import('src/components/admin-panel/pages/AwsToken/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'feature-control',\r\n name: 'Feature Control',\r\n component: () =>\r\n import('src/components/admin-panel/pages/FeatureControl/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'model-versions',\r\n name: 'Org Model Versions',\r\n component: () =>\r\n import('src/components/admin-panel/pages/ModelVersions/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'model-types',\r\n name: 'Model Types',\r\n component: () =>\r\n import('src/components/admin-panel/pages/ModelTypes/Index.vue'),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n {\r\n path: 'event-notification',\r\n name: 'Event Notification',\r\n component: () =>\r\n import(\r\n 'src/components/admin-panel/pages/EventNotification/Index.vue'\r\n ),\r\n meta: { authorize: [roles.admin] },\r\n },\r\n ],\r\n },\r\n];\r\n","export default {\r\n 'All Videos': '',\r\n Training: 'true',\r\n Trace: 'false',\r\n};\r\n","var map = {\n\t\"./deployment-icon.svg\": \"fa74\",\n\t\"./grid-icon.svg\": \"53ca1\",\n\t\"./info-circle-icon.svg\": \"0ba1\",\n\t\"./no-data-icon.svg\": \"029d\",\n\t\"./offline-internet-icon.svg\": \"56f4\",\n\t\"./region-icon.svg\": \"a408\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"cfd9\";","var map = {\n\t\"./allTasks.js\": \"4bec\",\n\t\"./annotation.js\": \"ca34\",\n\t\"./archivedCycles.js\": \"7e55\",\n\t\"./auth.js\": \"c7d4\",\n\t\"./awsLambdaToken.js\": \"da03\",\n\t\"./barcode.js\": \"c37a\",\n\t\"./binaryDevelopments.js\": \"9b11\",\n\t\"./devices.js\": \"fb9c\",\n\t\"./fcm.js\": \"23ff\",\n\t\"./featureControl.js\": \"5ec9\",\n\t\"./index.js\": \"2a74\",\n\t\"./kaizenCopilot.js\": \"027b\",\n\t\"./mainProcess.js\": \"c844\",\n\t\"./modelTypes.js\": \"feaf\",\n\t\"./modelVersions.js\": \"f85a\",\n\t\"./objectDetection.js\": \"1877\",\n\t\"./organizations.js\": \"18bd\",\n\t\"./remoteDevice.js\": \"d4fe\",\n\t\"./roles.js\": \"f702\",\n\t\"./taskObjects.js\": \"391b\",\n\t\"./telemetry.js\": \"23ad\",\n\t\"./users.js\": \"8ce5\",\n\t\"./videos.js\": \"f8e9\",\n\t\"./virtualTasks.js\": \"4d5b\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"d307\";","import ApiHelper from './index';\r\n\r\nasync function fetchAllRemoteDevices(spinner = true, queryParams = {}) {\r\n return await ApiHelper.get(`device/remote_cam/`, spinner, queryParams);\r\n}\r\n\r\nasync function addNewRemoteDevice(spinner = true, payload) {\r\n return await ApiHelper.post(`device/remote_cam/`, payload, spinner);\r\n}\r\n\r\nconst updateRemoteCamDevice = async (payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `device/remote_cam/${payload.id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateRemoteCamDetails = async (payload, spinner = true) => {\r\n console.log('inside api call: ', payload.id, payload);\r\n return await ApiHelper.patch(\r\n `device/remote_cam/${payload.id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteRemoteCam = async (camId, spinner = true) => {\r\n return await ApiHelper.remove(`device/remote_cam/${camId}/`, spinner);\r\n};\r\nexport default {\r\n fetchAllRemoteDevices,\r\n addNewRemoteDevice,\r\n updateRemoteCamDevice,\r\n updateRemoteCamDetails,\r\n deleteRemoteCam,\r\n};\r\n","import types from '../mutation-types';\r\nimport RemoteDeviceService from 'src/services/remoteDevices';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nconst toast = useToast();\r\nconst state = {\r\n remoteCamsList: [],\r\n isFetchingCamsList: false,\r\n showRemoteCamModal: false,\r\n remoteCamModalLoader: false,\r\n isEditRemoteDevice: null\r\n};\r\n\r\nconst getters = {\r\n remoteCamsList: state => state.remoteCamsList,\r\n isFetchingCamsList: state => state.isFetchingCamsList,\r\n showRemoteCamModal: state => state.showRemoteCamModal,\r\n remoteCamModalLoader: state => state.remoteCamModalLoader,\r\n isEditRemoteDevice: state => state.isEditRemoteDevice\r\n};\r\n\r\nconst actions = {\r\n updateRemoteCamModalState({ commit }, payload) {\r\n commit(types.SET_SHOW_REMOTE_CAM_MODAL, payload);\r\n },\r\n\r\n updateRemoteCamModalLoader({ commit }, payload) {\r\n commit(types.SET_REMOTE_CAM_MODAL_LOADER, payload);\r\n },\r\n\r\n async addNewRemoteCam({ commit, state }, payload) {\r\n const { remoteCamsList } = state;\r\n const [error, data] = await RemoteDeviceService.addNewRemoteDevice(\r\n true,\r\n payload\r\n );\r\n if (error) {\r\n toast.info(\"there's some error\");\r\n return;\r\n }\r\n commit(types.SET_REMOTE_CAMS_LIST, [...remoteCamsList, data]);\r\n },\r\n\r\n async updateRemoteCamDevice({ state, commit }, payload) {\r\n const tempRemoteCamsList = [...state.remoteCamsList];\r\n const [error] = await RemoteDeviceService.updateRemoteCamDevice(payload);\r\n if (error) {\r\n toast.info(\"there's some error while assigning new device to remote cam\");\r\n return;\r\n }\r\n toast.success('device updated for remote cam');\r\n\r\n const camDeviceIndex = tempRemoteCamsList.findIndex(\r\n camDevice => camDevice.id === payload.id\r\n );\r\n tempRemoteCamsList[camDeviceIndex] = payload;\r\n\r\n commit(types.SET_REMOTE_CAMS_LIST, tempRemoteCamsList);\r\n },\r\n\r\n async deleteRemoteCam({ state, commit }, camId) {\r\n const tempRemoteCamsList = [...state.remoteCamsList];\r\n const [error] = await RemoteDeviceService.deleteRemoteCam(camId);\r\n if (error) {\r\n toast.info(\"there's some error while deleting remote cam device\");\r\n return;\r\n }\r\n toast.success('remote cam device deleted');\r\n\r\n const updatedCamsList = tempRemoteCamsList.filter(\r\n camDevice => camDevice.id != camId\r\n );\r\n console.log('inside delete action', updatedCamsList);\r\n\r\n commit(types.SET_REMOTE_CAMS_LIST, updatedCamsList);\r\n },\r\n\r\n async updateRemoteCamDetails({ state, commit }, payload) {\r\n const tempRemoteCamsList = [...state.remoteCamsList];\r\n const [error] = await RemoteDeviceService.updateRemoteCamDetails(payload);\r\n if (error) {\r\n toast.info(\"there's some error while updating remote cam details\");\r\n return;\r\n }\r\n toast.success('details updated for remote cam');\r\n\r\n const camDeviceIndex = tempRemoteCamsList.findIndex(\r\n camDevice => camDevice.id === payload.id\r\n );\r\n tempRemoteCamsList[camDeviceIndex] = payload;\r\n\r\n commit(types.SET_REMOTE_CAMS_LIST, tempRemoteCamsList);\r\n },\r\n\r\n async getRemoteDevices({ commit }) {\r\n commit(types.SET_IS_FETCHING_CAMS_LIST, true);\r\n const [error, data] = await RemoteDeviceService.fetchAllRemoteDevices(\r\n false\r\n );\r\n console.log({ data });\r\n commit(types.SET_IS_FETCHING_CAMS_LIST, false);\r\n if (error) {\r\n toast.info('Error occurred while fetching Remote Cams Devices!');\r\n return;\r\n }\r\n commit(types.SET_REMOTE_CAMS_LIST, data);\r\n },\r\n\r\n setIsEditRemoteDevice({ commit }, payload) {\r\n commit(types.SET_IS_EDIT_REMOTE_DEVICE, payload);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_REMOTE_CAMS_LIST](state, payload) {\r\n state.remoteCamsList = payload;\r\n },\r\n [types.SET_IS_FETCHING_CAMS_LIST](state, payload) {\r\n state.isFetchingCamsList = payload;\r\n },\r\n [types.SET_SHOW_REMOTE_CAM_MODAL](state, payload) {\r\n state.showRemoteCamModal = payload;\r\n },\r\n [types.SET_REMOTE_CAM_MODAL_LOADER](state, payload) {\r\n state.remoteCamModalLoader = payload;\r\n },\r\n [types.SET_IS_EDIT_REMOTE_DEVICE](state, payload) {\r\n state.isEditRemoteDevice = payload;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n};\r\n","import ApiHelper from './index';\r\n\r\nconst fetchUserPoolConfig = async (spinner = true) => {\r\n return await ApiHelper.get('generic/userpool/', spinner);\r\n};\r\nconst createAwsLambdaToken = async (payload,spinner = true) => {\r\n return await ApiHelper.post('generic/userpool/', payload, spinner);\r\n};\r\n\r\nexport default {\r\n fetchUserPoolConfig,\r\n createAwsLambdaToken\r\n};\r\n","import { useToast } from 'vue-toastification';\r\nimport types from '../mutation-types';\r\nimport AwsService from 'src/services/awsLambdaToken';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = {\r\n userPoolConfig: {},\r\n isFetchingConfig: false,\r\n isCreatingToken: false,\r\n};\r\n\r\nconst getters = {\r\n userPoolConfig: (state) => state.userPoolConfig,\r\n isFetchingConfig: (state) => state.isFetchingConfig,\r\n isCreatingToken: (state) => state.isCreatingToken,\r\n};\r\n\r\nconst actions = {\r\n async fetchUserPoolConfig({ commit }) {\r\n commit(types.SET_IS_FETCHING_CONFIG, true);\r\n const [error, data] = await AwsService.fetchUserPoolConfig();\r\n commit(types.SET_IS_FETCHING_CONFIG, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_USER_POOL_CONFIG, data);\r\n },\r\n\r\n async createAwsLambdaToken({state, commit},payload) {\r\n commit(types.SET_CREATING_AWS_TOKEN, true);\r\n const [error, data] = await AwsService.createAwsLambdaToken(payload,true);\r\n commit(types.SET_CREATING_AWS_TOKEN, false);\r\n if (error) {\r\n console.log({ error });\r\n toast.error('Unable to create token');\r\n return false;\r\n }\r\n toast.success('Token refreshed successfully');\r\n commit(types.SET_USER_POOL_CONFIG, data);\r\n return true;\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_USER_POOL_CONFIG](state, payload) {\r\n state.userPoolConfig = payload;\r\n },\r\n [types.SET_CREATING_AWS_TOKEN](state, payload) {\r\n state.isCreatingToken = payload;\r\n },\r\n [types.SET_IS_FETCHING_CONFIG](state, payload) {\r\n state.isFetchingConfig = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import apiHelper from './index';\r\n\r\nconst fetchVideos = async (taskId, spinner = true, queryParams = {}) => {\r\n return await apiHelper.get(\r\n `organization/task/videos/${taskId}`,\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst createEntityForVideo = async (payload, spinner = false) => {\r\n const [error, data] = await apiHelper.post(\r\n 'organization/entity/',\r\n payload,\r\n spinner\r\n );\r\n return data;\r\n};\r\n\r\nconst fetchOrganizationTags = async (spinner = false) => {\r\n return await apiHelper.get(`organization/task_record/tags`, spinner);\r\n};\r\n\r\nconst createOrganizationTag = async (payload, spinner = false) => {\r\n return await apiHelper.post(\r\n `organization/task_record/tags`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst deleteOrganizationTag = async (id, spinner = false) => {\r\n return await apiHelper.remove(`organization/task_record/tags/${id}`, spinner);\r\n};\r\n\r\nconst addNewComment = async (payload, spinner = false) => {\r\n const [error, data] = await apiHelper.post(\r\n `organization/task_record/comments?entity_id=${payload.entity_id}`,\r\n payload,\r\n spinner\r\n );\r\n return data;\r\n};\r\n\r\nconst updateTaskRecord = async (id, payload, spinner = false) => {\r\n const res = await apiHelper.patch(\r\n `organization/task_record/${id}/`,\r\n payload,\r\n spinner\r\n );\r\n return res;\r\n};\r\n\r\nconst deleteComment = async (id, spinner = false) => {\r\n return await apiHelper.remove(\r\n `organization/task_record/comments/${id}`,\r\n spinner\r\n );\r\n};\r\n\r\nconst increaseCommentCount = async (taskRecord, spinner = false) => {\r\n const { id, no_of_comments } = taskRecord;\r\n return await apiHelper.patch(\r\n `organization/task_record/${id}/`,\r\n {\r\n no_of_comments: no_of_comments + 1,\r\n },\r\n spinner\r\n );\r\n};\r\n\r\nconst decreaseCommentCount = async (taskRecord, spinner = false) => {\r\n const { id, no_of_comments } = taskRecord;\r\n const updatedComments = no_of_comments - 1 <= 0 ? 0 : no_of_comments - 1;\r\n return await apiHelper.patch(\r\n `organization/task_record/${id}/`,\r\n {\r\n no_of_comments: updatedComments,\r\n },\r\n spinner\r\n );\r\n};\r\n\r\nconst getCommentsForEntity = async (id, spinner = false) => {\r\n const [error, data] = await apiHelper.get(\r\n `organization/task_record/comments?entity_id=${id}`,\r\n spinner\r\n );\r\n if (!error) return data;\r\n};\r\n\r\nexport const getPresignedUrl = async (payload, spinner = false) => {\r\n return await apiHelper.post('generic/generate_new_url/', payload, spinner);\r\n};\r\n\r\nexport const getVideoMetaData = async (payload, spinner = false) => {\r\n return await apiHelper.post(\r\n 'organization/task_record/extract_video_metadata',\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nexport default {\r\n fetchVideos,\r\n createEntityForVideo,\r\n addNewComment,\r\n updateTaskRecord,\r\n deleteComment,\r\n increaseCommentCount,\r\n decreaseCommentCount,\r\n getCommentsForEntity,\r\n getPresignedUrl,\r\n getVideoMetaData,\r\n fetchOrganizationTags,\r\n createOrganizationTag,\r\n deleteOrganizationTag,\r\n};\r\n","export const msalConfig = {\r\n auth: {\r\n clientId: 'c5093c91-21ae-4374-9be1-d95791ea78eb',\r\n authority: 'https://login.microsoftonline.com/organizations',\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n },\r\n};\r\n\r\nexport const request = {\r\n scopes: ['openid', 'profile', 'User.Read', 'email'],\r\n};\r\n","import { PublicClientApplication } from '@azure/msal-browser';\r\nimport axios from 'axios';\r\nimport { msalConfig, request } from 'src/mixins/msalHelper';\r\nimport { azureRefreshToken, refreshJWTToken } from 'src/store/modules/auth.js';\r\nimport validate from 'validate-azure-ad-token';\r\nimport store from '../store';\r\nimport {\r\n getAzureLoginStatus,\r\n removeAzureToken,\r\n setAzureToken,\r\n} from '../utils/auth';\r\nimport URL from './baseUrl';\r\nimport { getAuthConfig, getUploadConfig } from './config';\r\n\r\nexport function getHostUrl() {\r\n var hostURL = localStorage.getItem('hostURL');\r\n if (hostURL == null) {\r\n localStorage.setItem('hostURL', URL.prodHostUrl);\r\n hostURL = localStorage.getItem('hostURL');\r\n }\r\n return hostURL;\r\n // return URL.localHostUrl;\r\n // return URL.testHostUrl;\r\n}\r\n\r\nconst baseURL = getHostUrl();\r\nconst msalInstance = new PublicClientApplication(msalConfig);\r\n\r\nasync function validateToken(authData) {\r\n try {\r\n await validate(authData.accessToken, {\r\n tenantId: authData.account.idTokenClaims.tid,\r\n audience: '00000003-0000-0000-c000-000000000000',\r\n applicationId: authData.account.idTokenClaims.aud,\r\n scopes: authData.scopes,\r\n });\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n\r\nexport async function logoutAzureUser() {\r\n store.dispatch('clearState');\r\n}\r\n\r\nexport async function RedirectUserPasswordExpired() {\r\n store.dispatch('userRedirectPasswordExpired');\r\n}\r\n\r\nexport const axiosInstance = axios.create({\r\n baseURL,\r\n});\r\n\r\nlet tokenPromise = null;\r\n\r\nasync function refreshToken() {\r\n if (!tokenPromise) {\r\n tokenPromise = refreshJWTToken()\r\n .then((token) => {\r\n tokenPromise = null; // clear state\r\n return token; // resolve with the new token\r\n })\r\n .catch((error) => {\r\n tokenPromise = null; // clear state in case of error\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n return tokenPromise;\r\n}\r\n\r\naxiosInstance.interceptors.response.use(\r\n (resp) => resp,\r\n async (error) => {\r\n const {\r\n config,\r\n response: { status },\r\n } = error;\r\n const originalRequest = config;\r\n\r\n if (status === 401) {\r\n try {\r\n const token = await refreshToken();\r\n originalRequest.headers.Authorization = `Bearer ${token}`;\r\n return axiosInstance(originalRequest);\r\n } catch (error) {\r\n return Promise.reject(error);\r\n }\r\n } else if (status === 303) {\r\n RedirectUserPasswordExpired();\r\n } else if (status === 499) {\r\n logoutAzureUser(msalInstance);\r\n } else if (status === 498) {\r\n let tokenResponse;\r\n try {\r\n removeAzureToken();\r\n tokenResponse = await msalInstance.acquireTokenSilent(request);\r\n const isTokenValid = await validateToken(tokenResponse);\r\n setAzureToken();\r\n\r\n if (!isTokenValid) {\r\n throw new Error('Token Invalid');\r\n }\r\n } catch (error) {\r\n logoutAzureUser(msalInstance);\r\n return;\r\n }\r\n\r\n azureRefreshToken({ access_token: tokenResponse.accessToken });\r\n\r\n if (getAzureLoginStatus()) {\r\n return axiosInstance(originalRequest).then(() => {\r\n location.reload();\r\n });\r\n } else {\r\n logoutAzureUser(msalInstance);\r\n }\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nasync function get(\r\n url,\r\n spinner = true,\r\n queryParams = {},\r\n config = getAuthConfig()\r\n) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n\r\n try {\r\n const { data } = await axiosInstance.get(url, {\r\n params: { ...queryParams },\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nasync function post(url, payload, spinner = true, config = getAuthConfig()) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n\r\n try {\r\n const { data } = await axiosInstance.post(url, payload, {\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nasync function put(url, payload, spinner = true, config = getAuthConfig()) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n\r\n try {\r\n const { data } = await axiosInstance.put(url, payload, {\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nasync function patch(url, payload, spinner = true, config = getAuthConfig()) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n try {\r\n const { data } = await axiosInstance.patch(url, payload, {\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nasync function remove(\r\n url,\r\n spinner = true,\r\n queryParams = {},\r\n config = getAuthConfig()\r\n) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n\r\n try {\r\n const { data } = await axiosInstance.delete(url, {\r\n params: { ...queryParams },\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nasync function upload(\r\n url,\r\n payload,\r\n spinner = true,\r\n queryParams = {},\r\n config = getUploadConfig()\r\n) {\r\n if (spinner) store.dispatch('turnOnSpinner');\r\n\r\n try {\r\n const { data } = await axiosInstance.post(url, payload, {\r\n params: { ...queryParams },\r\n ...config,\r\n });\r\n return [null, data];\r\n } catch (error) {\r\n return [error];\r\n } finally {\r\n if (spinner) store.dispatch('turnOffSpinner');\r\n }\r\n}\r\n\r\nexport default { get, post, put, patch, remove, upload };\r\n","export const dateFormat = 'YYYY-MM-DD';\r\nexport const timeFormat = 'HH:mm:ss';\r\nexport const dateTimeFormat = 'YYYY-MM-DD HH:mm:ss';\r\n","import ApiHelper from './index';\r\n\r\nconst createModelType = async (payload, spinner = false) => {\r\n return await ApiHelper.post('organization/model_types', payload, spinner);\r\n};\r\n\r\nconst fetchModelTypes = async (spinner = true) => {\r\n return await ApiHelper.get('organization/model_types', spinner);\r\n};\r\n\r\nconst updateModelType = async (modelTypeId, payload, spinner = false) => {\r\n return await ApiHelper.patch(\r\n `organization/model_type/${modelTypeId}`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst createModelFiles = async (payload, spinner = false) => {\r\n return await ApiHelper.post('organization/model_files', payload, spinner);\r\n};\r\n\r\nconst updateModelFiles = async (payload, spinner = false) => {\r\n return await ApiHelper.patch('organization/model_files', payload, spinner);\r\n};\r\n\r\nconst deleteModelFIles = async (spinner = false, queryParam = {}) => {\r\n return await ApiHelper.remove(\r\n 'organization/model_files',\r\n spinner,\r\n queryParam\r\n );\r\n};\r\n\r\nconst getModelTypesById = async (id, spinner = false) => {\r\n return await ApiHelper.get(`organization/model_types/${id}`, spinner);\r\n};\r\n\r\nexport default {\r\n createModelType,\r\n fetchModelTypes,\r\n updateModelType,\r\n createModelFiles,\r\n updateModelFiles,\r\n deleteModelFIles,\r\n getModelTypesById,\r\n};\r\n","export default {\r\n 'All Cycles': 'all_cycles',\r\n 'Good Cycles': 'good_cycles',\r\n 'Bad Cycles': 'bad_cycles',\r\n};\r\n","import UserService from 'src/services/user';\r\nimport types from '../mutation-types';\r\n\r\nconst state = {\r\n roles: [],\r\n};\r\n\r\nconst getters = {\r\n roles: (state) => state.roles,\r\n};\r\n\r\nconst actions = {\r\n async addNewRole({ commit, dispatch }, payload) {\r\n const [error,data] = await UserService.addNewRole({name:payload})\r\n if(error) {\r\n console.log(\"Couldn't add new role!\")\r\n return 0\r\n }\r\n commit(types.ADD_ROLE, data);\r\n dispatch('getAllRoles');\r\n return 1\r\n },\r\n\r\n async getAllRoles({ commit }) {\r\n const [error, roles] = await UserService.allRoles()\r\n if(error) return\r\n if (roles.length >= 1) {\r\n commit(types.GET_ROLES, roles);\r\n }\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.ADD_ROLE](state, payload) {\r\n state.roles = [...state.roles, { ...payload }];\r\n },\r\n [types.GET_ROLES](state, payload) {\r\n state.roles = [...payload];\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","import ApiHelper from './index';\r\n\r\nconst getModelVersionList = async (queryParams, spinner = true) => {\r\n return await ApiHelper.get(\r\n 'organization/model_version',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst createModelVersion = async (payload, spinner = false) => {\r\n return await ApiHelper.post('organization/model_version', payload, spinner);\r\n};\r\n\r\nconst deleteModelVersion = async (\r\n modelVersionId,\r\n spinner = false,\r\n deleteFlag\r\n) => {\r\n return await ApiHelper.patch(\r\n `organization/model_version/${modelVersionId}`,\r\n { is_deleted: deleteFlag },\r\n spinner\r\n );\r\n};\r\n\r\nconst updateModelVersion = async (modelVersionId, payload, spinner = true) => {\r\n return await ApiHelper.patch(\r\n `organization/model_version/${modelVersionId}`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst fetchModelTypes = async (spinner = true) => {\r\n return await ApiHelper.get('organization/task/model_choices', spinner);\r\n};\r\n\r\nexport default {\r\n getModelVersionList,\r\n createModelVersion,\r\n updateModelVersion,\r\n deleteModelVersion,\r\n fetchModelTypes,\r\n};\r\n","import { useToast } from 'vue-toastification';\r\nimport types from '../mutation-types';\r\nimport ModelVersionService from '@/services/modelVersions';\r\n\r\nconst toast = useToast();\r\n\r\nconst state = () => ({\r\n modelVersionsList: [],\r\n isFetchingModelVersions: false,\r\n isUpdatingModelVersion: false,\r\n isDeletingModelVersion: false,\r\n showUploadModelButton: false,\r\n});\r\n\r\nconst getters = {\r\n modelVersionsList: (state) => state.modelVersionsList,\r\n isFetchingModelVersions: (state) => state.isFetchingModelVersions,\r\n isUpdatingModelVersion: (state) => state.isUpdatingModelVersion,\r\n isDeletingModelVersion: (state) => state.isDeletingModelVersion,\r\n showUploadModelButton: (state) => state.showUploadModelButton,\r\n};\r\n\r\nconst actions = {\r\n async fetchModelVersionsList({ commit }, taskId) {\r\n commit(types.SET_IS_FETCHING_MODEL_VERSIONS, true);\r\n const [error, data] = await ModelVersionService.getModelVersionList(\r\n { task: taskId },\r\n false\r\n );\r\n commit(types.SET_IS_FETCHING_MODEL_VERSIONS, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_MODEL_VERSIONS_LIST, data);\r\n commit(types.SET_SHOW_UPLOAD_MODEL_BUTTON, true);\r\n },\r\n\r\n createModelVersion({ state, commit }, payload) {\r\n return new Promise(async (resolve, _) => {\r\n const { modelVersionsList } = state;\r\n const [error, data] = await ModelVersionService.createModelVersion(\r\n payload\r\n );\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_MODEL_VERSIONS_LIST, [...modelVersionsList, data]);\r\n resolve();\r\n });\r\n },\r\n\r\n async toggleDelete({ state, commit }, record) {\r\n const { id, is_deleted } = record;\r\n const { modelVersionsList } = state;\r\n commit(types.SET_IS_DELETING_MODEL_VERSION, true);\r\n const prevMVList = [...modelVersionsList];\r\n\r\n const currentMVList = modelVersionsList.map((mv) => {\r\n if (mv.id === id) mv.is_deleted = !is_deleted;\r\n return mv;\r\n });\r\n commit(types.SET_MODEL_VERSIONS_LIST, currentMVList);\r\n\r\n const [error, _] = await ModelVersionService.deleteModelVersion(\r\n id,\r\n false,\r\n !is_deleted\r\n );\r\n commit(types.SET_IS_DELETING_MODEL_VERSION, false);\r\n if (error) {\r\n commit(types.SET_MODEL_VERSIONS_LIST, prevMVList);\r\n toast.error('Unable to delete Model Version');\r\n return;\r\n }\r\n },\r\n\r\n async updateModelVersion({ state, commit }, { modelVersionId, payload }) {\r\n const { modelVersionsList } = state;\r\n commit(types.SET_IS_UPDATING_MODEL_VERSION, true);\r\n const [error, response] = await ModelVersionService.updateModelVersion(\r\n modelVersionId,\r\n payload,\r\n false\r\n );\r\n commit(types.SET_IS_UPDATING_MODEL_VERSION, false);\r\n if (error) {\r\n console.log('error in updating model', error);\r\n return false;\r\n }\r\n const updatedModelVersions = modelVersionsList.map((modelVersion) => {\r\n if (modelVersion.id == modelVersionId) {\r\n return { ...response };\r\n } else return modelVersion;\r\n });\r\n commit(types.SET_MODEL_VERSIONS_LIST, updatedModelVersions);\r\n return true;\r\n },\r\n\r\n clearModelVersionsList({ commit }) {\r\n commit(types.SET_MODEL_VERSIONS_LIST, []);\r\n commit(types.SET_SHOW_UPLOAD_MODEL_BUTTON, false);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_MODEL_VERSIONS_LIST](state, payload) {\r\n state.modelVersionsList = payload;\r\n },\r\n [types.SET_IS_FETCHING_MODEL_VERSIONS](state, payload) {\r\n state.isFetchingModelVersions = payload;\r\n },\r\n [types.SET_IS_UPDATING_MODEL_VERSION](state, payload) {\r\n state.isUpdatingModelVersion = payload;\r\n },\r\n [types.SET_IS_DELETING_MODEL_VERSION](state, payload) {\r\n state.isDeletingModelVersion = payload;\r\n },\r\n [types.SET_SHOW_UPLOAD_MODEL_BUTTON](state, payload) {\r\n state.showUploadModelButton = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","export const getQueryParams = (payload) => {\r\n const { page, type, sortBy, datetime_start, datetime_end } = payload;\r\n const params = { page };\r\n if (type) params['isUploadedVideo'] = type;\r\n if (datetime_start) params['datetime_start'] = datetime_start;\r\n if (datetime_end) params['datetime_end'] = datetime_end;\r\n params['ordering'] = `${sortBy}no_of_comments`;\r\n if (sortBy === 'none') delete params.ordering;\r\n return params;\r\n};\r\n","import videoTypes from '../../config/video-type-config';\r\nimport VideosService from '../../services/videos';\r\nimport { getQueryParams } from '../../utils/videos';\r\nimport types from '../mutation-types';\r\n\r\nconst state = {\r\n videoList: [],\r\n isFetchingVideos: false,\r\n videosCount: 0,\r\n videoTypes,\r\n selectedVideoType: videoTypes['All Videos'],\r\n organizationTags: [],\r\n};\r\n\r\nconst getters = {\r\n videoList: (state) => state.videoList,\r\n isFetchingVideos: (state) => state.isFetchingVideos,\r\n videosCount: (state) => state.videosCount,\r\n videoTypes: (state) => state.videoTypes,\r\n selectedVideoType: (state) => state.selectedVideoType,\r\n organizationTags: (state) => state.organizationTags,\r\n tagIdToNameMap: (state) =>\r\n state.organizationTags.reduce((res, el) => {\r\n res[el.id] = el.tag_name;\r\n return res;\r\n }, {}),\r\n};\r\n\r\nconst actions = {\r\n async fetchOrganizationTags({ commit }) {\r\n const [error, data] = await VideosService.fetchOrganizationTags();\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n commit(types.SET_ORGANIZATION_TAGS, data);\r\n },\r\n\r\n addNewTag({ state, commit }, newTag) {\r\n commit(types.SET_ORGANIZATION_TAGS, [...state.organizationTags, newTag]);\r\n },\r\n\r\n removeTag({ state, commit }, tagId) {\r\n commit(\r\n types.SET_ORGANIZATION_TAGS,\r\n state.organizationTags.filter((el) => el.id !== tagId)\r\n );\r\n },\r\n\r\n async fetchVideos({ commit, dispatch }, { taskId, ...rest }) {\r\n commit(types.SET_IS_FETCHING_VIDEOS, true);\r\n const queryParams = getQueryParams(rest);\r\n const [error, data] = await VideosService.fetchVideos(\r\n taskId,\r\n false,\r\n queryParams\r\n );\r\n commit(types.SET_IS_FETCHING_VIDEOS, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const { results, count } = data;\r\n const video_list = results.map((v) => ({\r\n ...v,\r\n isThumbnailExist: true,\r\n }));\r\n commit(types.SET_VIDEOS_LIST, video_list);\r\n commit(types.SET_VIDEOS_COUNT, count);\r\n },\r\n\r\n updateVideoItem({ commit, state }, video) {\r\n const temp = [...state.videoList];\r\n const itemIndex = temp.findIndex((v) => v.id === video.id);\r\n temp[itemIndex] = { ...video };\r\n commit(types.SET_VIDEOS_LIST, temp);\r\n },\r\n\r\n setVideosList({ commit }, payload) {\r\n commit(types.SET_VIDEOS_LIST, payload);\r\n },\r\n setVideosCount({ commit }, payload) {\r\n commit(types.SET_VIDEOS_COUNT, payload);\r\n },\r\n\r\n setSelectedVideoType({ commit }, payload) {\r\n commit(types.SET_SELECTED_VIDEO_TYPE, payload);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_ORGANIZATION_TAGS](state, payload) {\r\n state.organizationTags = payload;\r\n },\r\n [types.SET_VIDEOS_LIST](state, payload) {\r\n state.videoList = payload;\r\n },\r\n [types.SET_VIDEOS_COUNT](state, payload) {\r\n state.videosCount = payload;\r\n },\r\n [types.SET_IS_FETCHING_VIDEOS](state, payload) {\r\n state.isFetchingVideos = payload;\r\n },\r\n [types.SET_SELECTED_VIDEO_TYPE](state, payload) {\r\n state.selectedVideoType = payload;\r\n },\r\n [types.SET_SELECTED_VIDEO_TYPE](state, payload) {\r\n state.selectedVideoType = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","","import { render } from \"./deployment-icon.svg?vue&type=template&id=38ffb9ac\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import DeviceService from 'src/services/device';\r\nimport {\r\n getDeviceDisplayNameToSerialNumMap,\r\n getDeviceIdToNameMap,\r\n getDeviceIdToSerialNumMap,\r\n getDeviceSerialNumToDisplayNameMap,\r\n} from 'src/utils/device';\r\nimport types from '../mutation-types';\r\n\r\nconst state = {\r\n selectedTaskForDetail: {},\r\n taskCropParams: {},\r\n devices: [],\r\n activeDevices: [],\r\n isFetchingDevices: false,\r\n deviceSerialNumToDisplayNameMap: {},\r\n deviceDisplayNameToSerialNumMap: {},\r\n deviceIdToNameMap: {},\r\n deviceIdToSerialNumMap: {},\r\n cachedMonitoringStatuses: [],\r\n allDevices: [],\r\n selectedDeviceTasks: [],\r\n taskTags: [],\r\n startedDevice: null,\r\n};\r\n\r\nconst getters = {\r\n selectedTaskForDetail: (state) => state.selectedTaskForDetail,\r\n taskCropParams: (state) => state.taskCropParams,\r\n devices: (state) => state.devices,\r\n cachedActiveDevices: (state) => state.activeDevices,\r\n cachedMonitoringStatuses: (state) => state.cachedMonitoringStatuses,\r\n isFetchingDevices: (state) => state.isFetchingDevices,\r\n deviceSerialNumToDisplayNameMap: (state) =>\r\n state.deviceSerialNumToDisplayNameMap,\r\n deviceDisplayNameToSerialNumMap: (state) =>\r\n state.deviceDisplayNameToSerialNumMap,\r\n deviceIdToNameMap: (state) => state.deviceIdToNameMap,\r\n deviceIdToSerialNumMap: (state) => state.deviceIdToSerialNumMap,\r\n allDevices: (state) => state.allDevices,\r\n selectedDeviceTasks: (state) => state.selectedDeviceTasks,\r\n taskTags: (state) => state.taskTags,\r\n};\r\n\r\nconst actions = {\r\n async setActiveDevices({ commit }) {\r\n const [error, data] = await DeviceService.getActiveDeviceStatus();\r\n if (error) {\r\n console.log(error);\r\n return;\r\n }\r\n commit(types.SET_ACTIVE_DEVICES, data);\r\n return [error, data];\r\n },\r\n\r\n async getTagsDevices({ commit }, taskId) {\r\n let [err, data] = await DeviceService.getTagsDevices(taskId);\r\n // set video tags\r\n commit(types.SET_TASK_TAGS, data);\r\n return [err, data];\r\n },\r\n\r\n async setNewTags({ commit }, data) {\r\n // set video tags\r\n let isDataExist = state.taskTags.find(\r\n (eachTag) => eachTag.tag_value == data.tag_value\r\n );\r\n if (isDataExist) {\r\n return;\r\n }\r\n commit(types.SYNC_TASK_TAGS, data);\r\n },\r\n\r\n async setMonitoringStatus({ commit }) {\r\n const [error, data] = await DeviceService.getMonitoringStatus();\r\n if (error) {\r\n console.log(error);\r\n return;\r\n }\r\n commit(types.SET_MONITORING_STATUS, data);\r\n return [error, data];\r\n },\r\n setDeviceForDetail({ commit }, payload) {\r\n commit(types.SET_DEVICE_FOR_DETAIL, payload);\r\n },\r\n\r\n setTaskCropParams({ commit }, payload) {\r\n commit(types.SET_TASK_CROP_PARAMS, payload);\r\n },\r\n\r\n resetDeviceState({ commit }) {\r\n commit(types.RESET_DEVICE_STATE);\r\n },\r\n\r\n async getTaskDevices({ commit }, taskId) {\r\n let [error, data] = await DeviceService.getTaskDevices(taskId);\r\n if (error) {\r\n console.log(error);\r\n return;\r\n }\r\n commit(types.SET_DEVICE_TASKS, data);\r\n },\r\n\r\n async starredDevices({ commit }, payload) {\r\n let devices = state.devices.map((data) => {\r\n if (data.id == payload.id) {\r\n return { ...data, starred: payload.starred, active: true };\r\n }\r\n return data;\r\n });\r\n\r\n commit(types.SET_DEVICES, devices);\r\n },\r\n\r\n async getOrgDevices({ commit }, orgName) {\r\n commit(types.SET_IS_FETCHING_DEVICES, true);\r\n const [error, data] = await DeviceService.fetchAllDevicesOfOrg(\r\n orgName,\r\n false\r\n );\r\n commit(types.SET_DEVICES_DATA, data);\r\n commit(types.SET_IS_FETCHING_DEVICES, false);\r\n if (error) {\r\n console.log({ error });\r\n return;\r\n }\r\n const devices = data.filter(\r\n (device) => device.Type !== 'departmental device'\r\n );\r\n commit(types.SET_DEVICES, devices);\r\n commit(\r\n types.SET_DEVICE_SERIAL_NUM_TO_DISPLAY_NAME_MAP,\r\n getDeviceSerialNumToDisplayNameMap(devices)\r\n );\r\n commit(\r\n types.SET_DISPLAY_NAME_TO_DEVICE_SERIAL_NUM_MAP,\r\n getDeviceDisplayNameToSerialNumMap(devices)\r\n );\r\n commit(types.SET_DEVICE_ID_TO_NAME_MAP, getDeviceIdToNameMap(devices));\r\n commit(\r\n types.SET_DEVICE_ID_TO_DEVICE_SERIAL_NUM_MAP,\r\n getDeviceIdToSerialNumMap(devices)\r\n );\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.RESET_DEVICE_STATE](state) {\r\n (state.selectedTaskForDetail = {}),\r\n (state.taskCropParams = {}),\r\n (state.devices = []),\r\n (state.activeDevices = []),\r\n (state.isFetchingDevices = false),\r\n (state.deviceSerialNumToDisplayNameMap = {}),\r\n (state.deviceDisplayNameToSerialNumMap = {}),\r\n (state.deviceIdToNameMap = {}),\r\n (state.deviceIdToSerialNumMap = {}),\r\n (state.cachedMonitoringStatuses = []),\r\n (state.allDevices = []);\r\n },\r\n [types.SET_TASK_TAGS](state, payload) {\r\n state.taskTags = payload;\r\n },\r\n [types.SYNC_TASK_TAGS](state, payload) {\r\n state.taskTags = [...state.taskTags, payload];\r\n },\r\n [types.SET_MONITORING_STATUS](state, payload) {\r\n state.cachedMonitoringStatuses = payload;\r\n },\r\n [types.SET_IS_FETCHING_DEVICES](state, payload) {\r\n state.allDevices = payload;\r\n },\r\n [types.SET_DEVICE_FOR_DETAIL](state, payload) {\r\n state.selectedTaskForDetail = payload;\r\n },\r\n [types.SET_DEVICES_DATA](state, payload) {\r\n state.allDevices = payload;\r\n },\r\n [types.SET_TASK_CROP_PARAMS](state, payload) {\r\n state.taskCropParams = payload;\r\n },\r\n [types.SET_DEVICE_TASKS](state, payload) {\r\n state.selectedDeviceTasks = payload;\r\n },\r\n [types.SET_DEVICES](state, payload) {\r\n state.devices = payload;\r\n },\r\n [types.SET_ACTIVE_DEVICES](state, payload) {\r\n state.activeDevices = payload;\r\n },\r\n [types.SET_IS_FETCHING_DEVICES](state, payload) {\r\n state.isFetchingDevices = payload;\r\n },\r\n [types.SET_DEVICE_SERIAL_NUM_TO_DISPLAY_NAME_MAP](state, payload) {\r\n state.deviceSerialNumToDisplayNameMap = payload;\r\n },\r\n [types.SET_DISPLAY_NAME_TO_DEVICE_SERIAL_NUM_MAP](state, payload) {\r\n state.deviceDisplayNameToSerialNumMap = payload;\r\n },\r\n [types.SET_DEVICE_ID_TO_NAME_MAP](state, payload) {\r\n state.deviceIdToNameMap = payload;\r\n },\r\n [types.SET_DEVICE_ID_TO_DEVICE_SERIAL_NUM_MAP](state, payload) {\r\n state.deviceIdToSerialNumMap = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n","export const roles = {\r\n admin: 'admin',\r\n user: 'org_admin',\r\n org_user: 'org_user',\r\n labeler: 'labeler',\r\n analytics_user: 'analytics_user',\r\n workstation_user: 'workstation_user',\r\n support_user: 'support_user',\r\n doc_user: 'doc_user',\r\n};\r\n\r\nexport const roleLabels = {\r\n [roles.admin]: 'Super Admin',\r\n [roles.user]: 'Organization Admin',\r\n [roles.org_user]: 'Organization User',\r\n [roles.labeler]: 'Labeler',\r\n [roles.analytics_user]: 'Analytics User',\r\n [roles.workstation_user]: 'Workstation User',\r\n [roles.support_user]: 'Support User',\r\n [roles.doc_user]: 'Docs User',\r\n};\r\n\r\nexport const rolesDrawerItems = {\r\n [roles.admin]: [\r\n 'Organizations',\r\n 'All Users',\r\n 'Roles',\r\n 'Pending Users',\r\n 'All Devices',\r\n 'All Operations',\r\n 'Archived Cycles',\r\n 'Updates',\r\n 'Instances',\r\n 'Trained Operations',\r\n 'Annotations',\r\n 'Labelers',\r\n 'Tampering Requests',\r\n 'User Report',\r\n 'Barcode',\r\n 'AWS-Lambda Token',\r\n 'Org Model Versions',\r\n 'Model Types',\r\n 'Feature Control',\r\n 'Event Notification',\r\n ],\r\n [roles.user]: [\r\n 'Home',\r\n 'SETUP',\r\n 'Add Device',\r\n 'Define Operation',\r\n // 'IoT Pluginsᴮᴱᵀᴬ',\r\n 'Record Training Set',\r\n 'Label Training Set',\r\n 'Train Model',\r\n 'Deploy Model',\r\n // 'Ergonomics',\r\n 'LEAN',\r\n 'Analytics',\r\n 'Line Analytics',\r\n 'Trace',\r\n 'Issue Center',\r\n 'MANAGEMENT',\r\n 'Devices',\r\n 'Cameras',\r\n 'Users',\r\n 'Issue Center',\r\n 'MANAGEMENT',\r\n 'Devices',\r\n 'Users',\r\n 'OPC',\r\n ],\r\n [roles.org_user]: [\r\n 'Home',\r\n 'SETUP',\r\n 'Add Device',\r\n 'Define Operation',\r\n // 'IoT Pluginsᴮᴱᵀᴬ',\r\n 'Record Training Set',\r\n 'Label Training Set',\r\n 'Train Model',\r\n 'Deploy Model',\r\n // 'Ergonomics',\r\n 'LEAN',\r\n 'Analytics',\r\n 'Line Analytics',\r\n 'Trace',\r\n 'Issue Center',\r\n 'MANAGEMENT',\r\n 'Devices',\r\n 'Cameras',\r\n 'OPC',\r\n ],\r\n [roles.labeler]: ['Tasks Requested', 'Profile Setting'],\r\n [roles.analytics_user]: [\r\n 'Analytics',\r\n 'Line Analytics',\r\n 'Trace',\r\n 'Issue Center',\r\n ],\r\n [roles.support_user]: [\r\n 'Home',\r\n 'SETUP',\r\n 'Add Device',\r\n 'Define Operation',\r\n // 'IoT Pluginsᴮᴱᵀᴬ',\r\n 'Record Training Set',\r\n 'Label Training Set',\r\n 'Train Model',\r\n 'Deploy Model',\r\n // 'Ergonomics',\r\n 'LEAN',\r\n 'Analytics',\r\n 'Line Analytics',\r\n 'Trace',\r\n 'Issue Center',\r\n 'MANAGEMENT',\r\n 'Devices',\r\n 'Cameras',\r\n 'Users',\r\n 'OPC',\r\n ],\r\n [roles.doc_user]: [\r\n 'Home',\r\n 'SETUP',\r\n 'Add Device',\r\n 'Define Operation',\r\n // 'IoT Pluginsᴮᴱᵀᴬ',\r\n 'Record Training Set',\r\n 'Label Training Set',\r\n 'Train Model',\r\n 'Deploy Model',\r\n // 'Ergonomics',\r\n 'LEAN',\r\n 'Analytics',\r\n 'Line Analytics',\r\n 'Trace',\r\n 'Issue Center',\r\n 'MANAGEMENT',\r\n 'Devices',\r\n 'Cameras',\r\n 'Users',\r\n ],\r\n};\r\n","import ModelTypeService from 'src/services/modelTypes';\r\n\r\nexport const createNewModelType = (payload) => {\r\n return new Promise(async (resolve) => {\r\n const [error, data] = await ModelTypeService.createModelType(\r\n payload,\r\n false\r\n );\r\n if (error) {\r\n console.log('Error occurred while creating model type:', error);\r\n return resolve(null);\r\n }\r\n resolve(data);\r\n });\r\n};\r\n\r\nexport const createModelFiles = (payload) => {\r\n return new Promise(async (resolve) => {\r\n const [error, data] = await ModelTypeService.createModelFiles(\r\n payload,\r\n false\r\n );\r\n if (error) {\r\n console.log('Error occurred while creating model files:', error);\r\n return resolve(null);\r\n }\r\n resolve(data);\r\n });\r\n};\r\n\r\nexport const updateModelFiles = (payload) => {\r\n return new Promise(async (resolve) => {\r\n const [error, data] = await ModelTypeService.updateModelFiles(\r\n payload,\r\n false\r\n );\r\n if (error) {\r\n console.log('Error occurred while updating model files:', error);\r\n return resolve(null);\r\n }\r\n resolve(data);\r\n });\r\n};\r\n\r\nexport const deleteModelFiles = (modelFileIds) => {\r\n return new Promise(async (resolve) => {\r\n const queryParams = { ids: modelFileIds.join(',') };\r\n const [error, data] = await ModelTypeService.deleteModelFIles(\r\n false,\r\n queryParams\r\n );\r\n if (error) {\r\n console.log('Error occurred while updating model files:', error);\r\n return resolve(null);\r\n }\r\n resolve(data);\r\n });\r\n};\r\n","export const compareTwoArrays = (arr1, arr2) => {\r\n const added = arr2.filter(\r\n (obj2) => !arr1.some((obj1) => obj1.id === obj2.id)\r\n );\r\n const removed = arr1.filter(\r\n (obj1) => !arr2.some((obj2) => obj2.id === obj1.id)\r\n );\r\n const modified = arr1.filter((obj1) => {\r\n const obj2 = arr2.find((obj) => obj.id === obj1.id);\r\n if (obj2) {\r\n return Object.keys(obj1).some((key) => obj1[key] !== obj2[key]);\r\n }\r\n return false;\r\n });\r\n return { added, removed, modified };\r\n};\r\n","import types from '../mutation-types';\r\nimport ModelTypeService from 'src/services/modelTypes';\r\nimport {\r\n createModelFiles,\r\n createNewModelType,\r\n deleteModelFiles,\r\n updateModelFiles,\r\n} from 'src/utils/modelTypes';\r\nimport { compareTwoArrays } from 'src/components/shared/Helpers/arrayHelper';\r\n\r\nconst state = () => ({\r\n modelTypes: [],\r\n isFetchingModelTypes: false,\r\n showAddModelTypeModal: false,\r\n isAddingModelType: false,\r\n modelTypeToBeEdited: null,\r\n});\r\n\r\nconst getters = {\r\n modelTypes: (state) => state.modelTypes,\r\n isFetchingModelTypes: (state) => state.isFetchingModelTypes,\r\n showAddModelTypeModal: (state) => state.showAddModelTypeModal,\r\n isAddingModelType: (state) => state.isAddingModelType,\r\n modelTypeToBeEdited: (state) => state.modelTypeToBeEdited,\r\n};\r\n\r\nconst actions = {\r\n setShowAddModelTypeModal({ commit }, payload) {\r\n commit(types.SET_SHOW_ADD_MODEL_TYPE_MODAL, payload);\r\n },\r\n\r\n async fetchModelTypes({ commit }) {\r\n commit(types.SET_IS_FETCHING_MODEL_TYPES, true);\r\n const [error, data] = await ModelTypeService.fetchModelTypes(false);\r\n commit(types.SET_IS_FETCHING_MODEL_TYPES, false);\r\n if (error) {\r\n console.log(error);\r\n return;\r\n }\r\n\r\n commit(types.SET_MODEL_TYPES, data);\r\n },\r\n\r\n addNewModelTypeAndFiles({ commit, dispatch }, payload) {\r\n return new Promise(async (resolve) => {\r\n commit(types.SET_IS_ADDING_MODEL_TYPE, true);\r\n const { modelTypePayload } = payload;\r\n const newModelType = await createNewModelType(modelTypePayload);\r\n if (!newModelType) {\r\n commit(types.SET_IS_ADDING_MODEL_TYPE, false);\r\n return;\r\n }\r\n const modelFiles = payload.modelFilesPayload.map((f) => ({\r\n ...f,\r\n model_type: newModelType.id,\r\n }));\r\n\r\n await createModelFiles(modelFiles);\r\n dispatch('fetchModelTypes');\r\n commit(types.SET_IS_ADDING_MODEL_TYPE, false);\r\n dispatch('setShowAddModelTypeModal', false);\r\n resolve();\r\n });\r\n },\r\n\r\n handleEditModelType({ commit, dispatch }, modelToBeEdited) {\r\n commit(types.SET_SHOW_ADD_MODEL_TYPE_MODAL, true);\r\n dispatch('setModelToBeEdited', modelToBeEdited);\r\n },\r\n\r\n setModelToBeEdited({ commit }, modelToBeEdited) {\r\n commit(types.SET_MODEL_TYPE_TO_BE_EDITED, modelToBeEdited);\r\n },\r\n\r\n updateModelType({ state, commit, dispatch }, payload) {\r\n return new Promise(async (resolve) => {\r\n commit(types.SET_IS_ADDING_MODEL_TYPE, true);\r\n const modelTypeApiCalls = [];\r\n const { newModelType, newModelFiles } = payload;\r\n const {\r\n id: modelTypeId,\r\n name: prevModelType,\r\n model_files: prevModelFiles,\r\n } = state.modelTypeToBeEdited;\r\n\r\n const isModelTypeChanged = prevModelType !== newModelType;\r\n\r\n if (isModelTypeChanged) {\r\n modelTypeApiCalls.push(\r\n ModelTypeService.updateModelType(modelTypeId, {\r\n name: newModelType,\r\n })\r\n );\r\n }\r\n\r\n const { added, removed, modified } = compareTwoArrays(\r\n prevModelFiles,\r\n newModelFiles.map(({ isEdit, ...rest }) => ({ ...rest }))\r\n );\r\n\r\n if (added.length)\r\n modelTypeApiCalls.push(\r\n createModelFiles(\r\n added.map((f) => ({\r\n ...f,\r\n model_type: modelTypeId,\r\n }))\r\n )\r\n );\r\n\r\n if (modified.length) modelTypeApiCalls.push(updateModelFiles(modified));\r\n\r\n if (removed.length)\r\n modelTypeApiCalls.push(deleteModelFiles(removed.map((f) => f.id)));\r\n\r\n await Promise.all(modelTypeApiCalls);\r\n dispatch('fetchModelTypes');\r\n commit(types.SET_IS_ADDING_MODEL_TYPE, false);\r\n dispatch('setShowAddModelTypeModal', false);\r\n resolve();\r\n });\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [types.SET_MODEL_TYPES](state, payload) {\r\n state.modelTypes = payload;\r\n },\r\n [types.SET_IS_FETCHING_MODEL_TYPES](state, payload) {\r\n state.isFetchingModelTypes = payload;\r\n },\r\n [types.SET_SHOW_ADD_MODEL_TYPE_MODAL](state, payload) {\r\n state.showAddModelTypeModal = payload;\r\n },\r\n [types.SET_IS_ADDING_MODEL_TYPE](state, payload) {\r\n state.isAddingModelType = payload;\r\n },\r\n\r\n [types.SET_MODEL_TYPE_TO_BE_EDITED](state, payload) {\r\n state.modelTypeToBeEdited = payload;\r\n },\r\n};\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n};\r\n"],"sourceRoot":""}