{"version":3,"sources":["app/images/CTP_Logo_Final_Black.png","app/constants/permissions.js","app/helpers/httpHelper.js","app/components/StyledSection.js","app/config/config.js","app/constants/titlePrefix.js","app/components/StyledSnackbar.js","app/containers/Header.js","app/containers/GlobalTimeChecker.js","app/images/pending-collection-ico.png","app/screens/ChangePasswordScreen.js","app/images/background-grey.svg","app/images/ctp-print-background-new1.png","app/images/CAG-CTP-TransitProgramme-Desktop.jpg","app/images/crCardPrint.png","app/images/thumb1.png","app/images/thumb2.jpg","app/images/thumb3.png","app/images/thumb4.jpg","app/helpers/utilities.js","app/constants/localStorageType.js","app/ducks/authDuck.js","app/containers/loadingContainer.js","app/components/MySnackbarContent.js","web.config","app/styles/mui/theme.js","app/ducks/systemError.js","app/containers/SystemModal.js","app/components/StyledDeleteBtn.js","app/components/StyledEditBtn.js","app/components/StyledViewableBtn.js","app/components/GeneralTable.js","app/constants/tableKeys.js","app/components/StyledTable.js","app/constants/groupType.js","app/helpers/groupStatusHelper.js","app/components/StyledPagination.js","app/helpers/pageHelper.js","app/containers/group/GroupSubmissionTable.js","app/helpers/eticketStatusHelper.js","app/ducks/groupApprovalDuck.js","app/constants/groupStatus.js","app/components/GroupStatusFilter.js","app/components/DeleteDialog.js","app/ducks/campaignPeriodDuck.js","app/ducks/groupStatsDuck.js","app/containers/dashboard/GroupStats.js","app/constants/groupStatsPermissions.js","app/containers/dashboard/GroupPane.js","app/helpers/excelDataHelper.js","app/components/SpreadSheetComponent.js","app/screens/Dashboard.js","app/constants/individualSubmitTypes.js","app/helpers/reactSelectHelper.js","app/components/generalForm/GeneralTextDate.js","app/components/generalForm/GeneralFormColumns.js","app/data/countriesCRM.js","app/constants/cardConstants.js","app/data/callingCodesCRM.js","app/ducks/individualFormDuck.js","app/dummy/formDetailsListMockGenerator.js","app/helpers/callingCodeHelper.js","app/components/StyledUndoBtn.js","app/components/SqApiCriteriasDialog.js","app/components/ParticularsTable.js","app/helpers/formatFlightNoHelper.js","app/helpers/passportParser.js","app/dummy/flightNos.js","app/components/StyledPlaceholder.js","app/helpers/voucherBonusHelper.js","app/constants/sector2Options.js","app/containers/individual/helper/individualFlightFormHelper.js","app/constants/messages.js","app/components/StyledTinyFabCheckCircle.js","app/components/StyledTinyFabError.js","app/helpers/airportCodeHelper.js","app/helpers/boardingPassParser.js","app/components/StyledTinyErrorCross.js","app/components/StyledGeneralDialog.js","app/ducks/redemptionTransactionDuck.js","app/ducks/groupManifestDuck.js","app/containers/individual/IndividualETicketForm.js","app/components/generalForm/GeneralDropzone.js","app/components/Spacing.js","app/components/UploadFilesList.js","app/components/promiseModal/PromiseModal.js","app/components/promiseModal/PromiseModalWrapper.js","app/helpers/individualFlightSectorFormHelper.js","app/containers/individual/IndividualFlightForm.js","app/ducks/flightDuck.js","app/screens/IndividualScreen.js","app/helpers/individualCollectorOptionHelper.js","app/ducks/individualCollectorOptionDuck.js","app/ducks/derivedDucks/consentDerivedDuck.js","app/components/StyledSelect.js","app/helpers/cardRangeHelper.js","app/containers/individual/helper/collectorPersonalDetailsHelper.js","app/constants/consentMessages.js","app/containers/derivedDuckContainers/consentDerivedDuckContainer.js","app/helpers/batchHelper.js","app/repos/calculatePassengersVouchers.js","app/containers/individual/CollectorPersonalDetails.js","app/helpers/signalRConstants.js","app/ducks/printCardDuck.js","app/components/PassengersVoucherTable.js","app/components/generalForm/GeneralSignature.js","app/screens/IndividualCollector.js","app/components/SectionHeader.js","app/repos/memberRepo.js","app/constants/groupCardAssignment.js","app/ducks/groupRedemptionFormDuck.js","app/containers/group/GroupCollectorForm.js","app/ducks/bannerDuck.js","app/containers/individual/CollectorSuccessDisplay.js","app/containers/group/GroupCollectorSuccessDisplay.js","app/screens/ClientView.js","app/containers/group/GroupHeader.js","app/screens/Group.js","app/containers/group/GroupSubmissionForm.js","app/screens/GroupSubmission.js","app/screens/GroupApproval.js","app/components/PassengersTableEditable.js","app/components/ScrollToTopBtn.js","app/containers/group/GroupReferenceForm.js","app/ducks/auditLogDuck.js","app/components/AuditLogTable.js","app/screens/GroupApprovalDetail.js","app/ducks/reprintAuditLogDuck.js","app/components/AuditLogTable2.js","app/screens/GroupDetail.js","app/containers/group/components/SimplePassengersTable.js","app/containers/group/GroupRedemptionForm.js","app/screens/GroupIssuance.js","app/screens/GroupIssuanceDetail.js","app/screens/AdminSettings.js","app/screens/LoginScreen.js","app/screens/NotFoundScreen.js","app/containers/ScanTicket.js","app/screens/ForgotPasswordScreen.js","app/screens/ResetPasswordScreen.js","app/ducks/userAccessAccountDuck.js","app/ducks/createNewAccountDuck.js","app/ducks/systemDataDuck.js","app/ducks/searchDuck.js","app/ducks/passengerDuck.js","app/ducks/redemptionTransactionPassengersDuck.js","app/ducks/iataDuck.js","app/ducks/physicalVoucherDuck.js","app/ducks/appealTransactionDuck.js","app/ducks/index.js","app/store.js","app/components/ProtectedRoute.js","app/components/CustomNavButton.js","app/containers/adminSettings/AdminSettingsNav.js","app/screens/CampaignPeriod.js","app/screens/CreateNewAccount.js","app/containers/adminSettings/UserAccessAccountRightsTable.js","app/screens/UserAccessAccount.js","app/screens/RejectReason.js","app/screens/EmailTemplate.js","app/components/BannerTable.js","app/screens/BannerScreen.js","app/screens/LogoutScreen.js","app/screens/IndividualCollectorSuccess.js","app/screens/GroupCollectorSuccess.js","app/screens/GroupSubmissionDetail.js","app/components/LinearIndeterminate.js","app/screens/GroupCollector.js","app/screens/SearchScreen.js","app/containers/search/SearchResultTable.js","app/containers/search/SearchNav.js","app/screens/SearchPassengerScreen.js","app/screens/CardReplacementScreen.js","app/screens/Card.js","app/screens/LoginScreen2.js","app/containers/redemptionTransactionDetail/RedemptionPassengersTable.js","app/components/StyledAttachmentList.js","app/containers/redemptionTransactionDetail/PassengerDetails.js","app/containers/redemptionTransactionDetail/CollectorDetails.js","app/components/ReprintAuditLogTable.js","app/screens/RedemptionTransactionDetailScreen.js","app/containers/appealTransactionDetail/AppealETicketForm.js","app/containers/appealTransactionDetail/AppealCollectorDetails.js","app/screens/AppealTransactionDetailScreen.js","app/screens/AdminIataScreen.js","app/screens/SqApiScreen.js","app/screens/PhysicalVoucherScreen.js","app/containers/search/SearchGroupResultTable.js","app/screens/SearchGroupScreen.js","app/containers/search/SearchIssuanceSummaryResultTable.js","app/screens/SearchIssuanceSummaryScreen.js","app/screens/OCIDExchangeScreen.js","app/components/CTPCardPrintLayout1.js","app/components/CRCardPrintLayout1.js","app/screens/PrintCardScreen.js","app/screens/PrintCardOnDemandScreen.js","app/components/AppealTransactionTable.js","app/screens/AppealTransactionScreen.js","app/screens/Root.js","serviceWorker.js","index.js","app/components/Logo.js"],"names":["module","exports","__webpack_require__","p","d","__webpack_exports__","INDIVIDUAL_ISSUER_PERMISSION","GROUP_ISSUER_PERMISSION","GROUP_ISSUER_READ_ONLY_PERMISSION","GROUP_CREATOR_PERMISSION","GROUP_CREATOR_WITH_READ_ALL_PERMISSION","GROUP_APPROVER_PERMISSION","GROUP_APPROVER_READ_ONLY_PERMISSION","USER_ADMIN_CAMPAIGN_READ_PERMISSION","USER_ADMIN_CAMPAIGN_CREATE_PERMISSION","USER_ADMIN_CAMPAIGN_EDIT_PERMISSION","USER_ADMIN_ACCOUNT_READ_PERMISSION","USER_ADMIN_ACCOUNT_CREATE_PERMISSION","USER_ADMIN_ACCOUNT_EDIT_PERMISSION","USER_ADMIN_ROLE_READ_PERMISSION","USER_ADMIN_ROLE_CREATE_PERMISSION","USER_ADMIN_ROLE_EDIT_PERMISSION","USER_ADMIN_BANNER_READ_PERMISSION","USER_ADMIN_BANNER_CREATE_PERMISSION","USER_ADMIN_BANNER_EDIT_PERMISSION","SEARCH_PASSENGER_PERMISSION","SEARCH_GROUP_PERMISSION","GROUP_VIEW_PERMISSION","VOUCHER_TRANSFER_EV","APPEAL_EDITOR","APPEAL_APPROVER","APPEAL_SUPER_APPROVER","checkValidStatusCode","errorCode","StyledSection","_this$props","this","props","classes","isLoading","GroupSubmitted","paperClass","react__WEBPACK_IMPORTED_MODULE_6___default","a","createElement","className","header","_material_ui_core__WEBPACK_IMPORTED_MODULE_8__","variant","title","classNames","paper","toolbarButtons","toolbar","join","container","spacing","justify","undefined","style","flexGrow","map","b","i","item","key","children","_containers_loadingContainer__WEBPACK_IMPORTED_MODULE_10__","show","PureComponent","withStyles","theme","Object","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","marginBottom","padding","position","minHeight","paddingTop","signalRURL","attachmentBucket","getSettings","process","stagingSettings","environment","ocidLink","ocidClientId","baseURL","voucher_currency","voucher_sources","membership_type","vouchers","voucher_type","voucher_value","reCaptchaSiteKey","TITLE_PREFIX","StyledSnackbar","react__WEBPACK_IMPORTED_MODULE_5___default","_material_ui_core__WEBPACK_IMPORTED_MODULE_6__","anchorOrigin","vertical","horizontal","open","onClose","_MySnackbarContent__WEBPACK_IMPORTED_MODULE_7__","message","Component","Header","_this","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","call","onLinkClick","location","window","onUsername","e","setState","userMenu","currentTarget","onCloseUserMenu","state","isGroupEdit","isGroupCreate","shouldChangePassword","_this2","hasAdminPermissions","hasPermissions","groupPermissions","hasIndividualPermission","hasSearchPermissions","hasCardPermissions","hasAppealPermissions","lastLoginDateTime","localStorage","getItem","LAST_LOGIN_DATETIME","lastLoginDt","moment","format","shouldChangePasswordEncrypted","SHOULD_CHANGE_PASSWORD","JSON","parse","decrypt","shouldChange","_material_ui_core__WEBPACK_IMPORTED_MODULE_7__","appBar","_components_Logo__WEBPACK_IMPORTED_MODULE_11__","invert","color","onClick","lastItem","clearBtn","smlabel","FAILED_ACCESS_COUNT","anchorEl","Boolean","component","react_router_dom__WEBPACK_IMPORTED_MODULE_6__","assign","to","activeClassName","active","logout","React","marginLeft","display","alignItems","username","zIndex","drawer","width","backgroundColor","palette","action","selected","boxShadow","margin","fontSize","GlobalTimeChecker","context","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__","componentDidMount","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","mark","_callee","wrap","_context","prev","next","_logoutIfTimeout","_logoutIfBrowserCloseForTooLong","globalTimeoutChecker","setInterval","_promptIfNearTimeout","logoutBrowserCloseTimer","_saveLoginTime","tokenExpiryPromptTimer","_promptIfNearTokenExpiry","addEventListener","_saveBrowserCloseTimeToLocalStorage","stop","componentWillUnmount","_callee2","_context2","clearInterval","removeEventListener","now","setItem","LOCAL_STORAGE_BROWSER_CLOSE_TIME","LOCAL_STORAGE_LOGIN_TIME","fourteenMinutesAgo","subtract","lastActionTime","LOCAL_STORAGE_LAST_ACTION_TIME","isBefore","_showTimeoutPrompt","threeFiftyMinuteAgo","loginTime","_showTokenExpiryPrompt","fifteenMinutesAgo","code","querystring","search","id","browserCloseTime","browserCloseThreshold","showSnackbar","snackbarVariant","snackbarMessage","closeSnackbar","react__WEBPACK_IMPORTED_MODULE_8___default","_material_ui_core__WEBPACK_IMPORTED_MODULE_9__","_components_StyledSnackbar__WEBPACK_IMPORTED_MODULE_13__","dialog","ChangePasswordScreen","onFieldChange","k","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__","target","value","_onSubmit","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","_this$state","currentPassword","newPassword","confirmNewPassword","data","rs","_validate","userName","changePassword","sent","success","removeItem","Promise","setTimeout","history","push","required","forEach","eval","length","newPasswordError","test","confirmNewPasswordError","formSubmitted","currentPasswordError","document","concat","authDuck","changePasswordIsLoading","_this$state2","sectionTitle","isFirstTimeLogin","_containers_GlobalTimeChecker__WEBPACK_IMPORTED_MODULE_14__","_containers_Header_js__WEBPACK_IMPORTED_MODULE_10__","_components_StyledSection__WEBPACK_IMPORTED_MODULE_15__","_material_ui_core__WEBPACK_IMPORTED_MODULE_11__","direction","xs","type","label","error","helperText","onChange","fullWidth","_components_StyledSnackbar__WEBPACK_IMPORTED_MODULE_17__","styles","mapStateToProps","mapDispatchToProps","dispatch","connect","getCurrentAuthHeader","headers","Authorization","trueFalseToYesNo","v","dataURItoBlob","dataURI","byteString","split","indexOf","atob","unescape","mimeString","ia","Uint8Array","charCodeAt","Blob","toBrowserFriendlyDate","datestring","toHumanFriendlyDate","toHumanFriendlyDateTime","sqApiResponseStringToObject","string","criteriasKeys","sqApiObjectToResponseString","obj","getOriginFromFltNumber","flightNo","flightData","find","f","toLowerCase","departureCityName","getDestinationFromFltNumber","arrivalCityName","condition","arguments","permissionsStored","PERMISSIONS","decryptedPermissions","permissions","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","done","includes","err","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","hasCreatorPermissions","hasApproverPermissions","hasIssuerPermissions","hasGroupViewPermission","hasVoucherTransferPermission","maskContactNo","contactNo","getCurrentCampaign","campaignPeriods","isAfter","startDate","endDate","myaxios","_ref","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default","url","_rs2","axios","get","catch","response","status","abrupt","post","_x","_x2","_x3","_x4","apply","objHasData","keys","spreadObj","origObj","newObj","newOrig","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","hasOwnProperty","Array","isArray","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","toHumanFriendlyMessage","propertyName","originalValue","newValue","entityType","entityDisplayName","propertyTypeFullName","encrypt","textBytes","aesjs","utils","utf8","toBytes","encryptedBytes","ModeOfOperation","ctr","hex","fromBytes","enString","enBytes","decryptedBytes","parseFullCardNoWithPrefix","cardNo","startsWith","substr","parseFullCardNo","USER_POS","USER_ID","login","usernameOrEmailAddress","password","authHeader","rs2","rs3","isLoggingin","loginFailed","result","accessToken","userId","stringify","pos","lastLoginTime","failedLoginAttempts","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_2__","params","timeout","emailAddress","isLoggedin","updateAuthDuck","updateMultipleAuthProperties","propertiesToUpdate","forgotPassword","_ref2","_forgotPasswordIsLoading","_forgotPasswordFail","_forgotPasswordSuccess","_ref3","_callee3","_context3","_changePasswordIsLoading","_changePasswordFail","_changePasswordSuccess","authSendOtp","_ref4","_callee4","_context4","_authSendOtpIsLoading","_authSendOtpFail","_authSendOtpSuccess","authSendEmailOtp","_ref5","_callee5","_context5","_authSendEmailOtpIsLoading","_authSendEmailOtpFail","_authSendEmailOtpSuccess","_x5","authAuthenticateWithEmailOtp","_ref6","_callee6","_data","_context6","_x6","authAuthenticateWithOtp","_ref7","_callee7","_data2","_context7","_authAuthenticateWithOtpIsLoading","_authAuthenticateWithOtpFail","_authAuthenticateWithOtpSuccess","_x7","initState","isLoggedIn","isLoggingIn","loginFailedReason","forgotPasswordIsLoading","authSendOtpIsLoading","uid","authAuthenticateWithOtpIsLoading","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__","clonedState","update","_action$rs$data$resul","LoadingContainer","fullscreen","progress","background","opacity","justifyContent","top","bottom","left","right","variantIcon","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","green","dark","primary","amber","icon","iconVariant","marginRight","unit","maxWidth","messageSpan","other","C_Users_ATMY_KENNETHTANG_source_repos_CTP_site_ctp_site_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","Icon","react__WEBPACK_IMPORTED_MODULE_1___default","_material_ui_core_SnackbarContent__WEBPACK_IMPORTED_MODULE_10___default","aria-describedby","_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_9___default","aria-label","close","_material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_6___default","createMuiTheme","typography","useNextVariants","fontFamily","rowMargin","deletedBackground","hoverSelectOverride","hover","hoverOpacity","disabled","disabledBackground","isError","systemErrorReducer","objectSpread","SystemModal","closeModal","clearErrorMessage","react_default","index_es","aria-labelledby","icons_index_es","body","paddingBottom","flexDirection","StyledDeleteBtn","size","StyledEditBtn","StyledViewableBtn","GeneralTable","rowsPerPage","onChangeRowsPerPage","onChangePage","ActionsComponent","page","count","hasPagination","fields","rows","isViewable","isEditable","isDeletable","isFilterable","filter","filterLabel","tableKeyName","colSpan","md","onFilterChange","field","onHeaderClick","row","ridx","scope","Link","isLockout","isActive","checked","src","image","alt","render","components_StyledViewableBtn","onView","components_StyledEditBtn","onEdit","components_StyledDeleteBtn","onDelete","rowsPerPageOptions","StyledTable","others","objectWithoutProperties","components_GeneralTable","GROUP_TYPE_PENDING_SQ_API","GROUP_TYPE_ACTION_REQUIRED","GROUP_TYPE_PENDING_APPROVAL","GROUP_TYPE_PENDING_COLLECTION","GROUP_TYPE_REJECTED","GROUP_TYPE_COLLECTED","GROUP_TYPE_NOT_COLLECTED","GROUP_TYPE_DELETED","GROUP_TYPE_VIEW_ALL","GROUP_TYPE_APPROVED","GROUP_ACTION_TYPE_SUBMITTING","GROUP_ACTION_TYPE_APPROVING","GROUP_ACTION_TYPE_COLLECTING","GROUP_ACTION_TYPE_UNAPPROVING","getGroupType","group","sqCheck","submitted","approval","redemption","rejected","isDeleted","lastFlightDepartureDate","endOf","getGroupLabel","StyledPagination","classCallCheck","possibleConstructorReturn","getPrototypeOf","renderPagesToShow","totalPages","Math","floor","pagesToShow","start","end","max","min","output","activeText","font","_loop","s","_loop2","_this$props2","ceil","blue","lineHeight","PageHelper","maxResultCount","getTotalNoOfPages","totalCount","noOfPages","Error","getTotalCount","skipCount","pageNo","SORT_BY_REF","SORT_BY_PAX","SORT_BY_FLT_DEP_DATE","SORT_BY_COLLECTION_DATE","SORT_BY_TOUR_COMPANY","SORT_BY_SUBMITTER","SORT_BY_APPROVER","SORT_BY_CREATION_TIME","SORT_BY_TOUR_LEADER","GroupSubmissionForm","_buildAppCustomLink","refNo","groupType","_formatGroupList","groupList","sortBy","sort","collectionDate","diff","approverName","localeCompare","submitterName","tourCompany","paxCount","aName","tourLeader","firstName","bName","creationTime","firstFltArrivalDate","appCustomLink","tourLeaderName","lastName","_checkEditablePermission","_checkDeletePermission","hasEditPermissions","sortTable","groupTableFields","groupListing","components_StyledTable","sortable","formDetailsList","individualFormDuck","DISPLAY_MANUAL","DISPLAY_YES","DISPLAY_NO","convertSqStatusForDisplay","settings","passengers","passengersWithMeta","rejectedPassengers","transportMean","transportRemarks","remarks","attachmentUris","presignedAttachmentUris","rejectionReason","groupMetaInfo","isThreeSector","redemptionTransaction","getApprovalIsLoading","getAllGroupIsLoading","getGroupAndPassengersIsLoading","groups","updateGroupAndPassengersIsLoading","updateGroupAndPassengersSuccess","updateGroupAndPassengersError","rejectGroupAndPassengersIsLoading","groupSubmissionSqApiCheckIsLoading","voidGroupIsLoading","approvalFilesUploadIsLoading","paxIdsToReVerify","groupSubmissionSqApiCheckReVerifyIsLoading","groupApprovalGroupCheckRedeemedPassengerIsLoading","_updateGroupAndPassengersIsLoading","_updateGroupAndPassengersSuccess","_updateGroupAndPassengersFail","_getGroupAndPassengersIsLoading","_getGroupAndPassengersSuccess","_getGroupAndPassengersFail","markAsDelete","unmarkDelete","updatePassenger","UPDATE_GROUP_APPROVAL_DUCK","getAllGroup","_ref5$getAllUser","getAllUser","_ref5$maxResultCount","_ref5$skipCount","asyncToGenerator","regenerator_default","paramType","_getAllGroupIsLoading","_getAllGroupSuccess","_getAllGroupFail","_rejectGroupAndPassengersIsLoading","_rejectGroupAndPassengersSuccess","_rejectGroupAndPassengersFail","voidGroup","_ref9","_voidGroupIsLoading","_voidGroupFail","_voidGroupSuccess","_approvalFilesUploadIsLoading","_approvalFilesUploadSuccess","_approvalFilesUploadFail","_groupApprovalGroupCheckRedeemedPassengerIsLoading","_groupApprovalGroupCheckRedeemedPassengerSuccess","_groupApprovalGroupCheckRedeemedPassengerFail","groupApprovalDuck","idx","newPassenger","newPassengers","items","findIndex","record","toConsumableArray","splice","approve","markedDelete","allPassengers","newSection","section","defineProperty","sqApiStatus","isRedeemed","redeemedPassengers","clonedTourLeader","clonedPassengers","cloneDeep","passenger","isTourLeader","updateGroupAndPassengerError","pidx","ticketDetails","ticketNumber","issue","ctpEligibility","criterias","resultsToProcess","seen","Set","pid","_i","toUpdate","has","add","produce","draft","_i2","eTicketNo","STATUS_PENDING_SQ_API","STATUS_ACTION_REQUIRED","STATUS_PENDING_APPROVAL","STATUS_APPROVED","STATUS_PENDING_COLLECTION","STATUS_REJECTED","STATUS_COLLECTED","STATUS_NOT_COLLECTED","STATUS_VIEW_ALL","GroupStatusFilter","componentDidUpdate","prevProps","prevState","onStatusFilterChange","statusFilter","onFilterChanged","core_styles","htmlFor","input","labelWidth","name","menuItem","isApprover","DeleteDialog","dialogTitle","onDeleteCancel","onDeleteConfirm","hideWarningMessage","showDeleteDialog","minWidth","verticalAlign","getAllCampaigns","_getAllCampaignsIsLoading","_getAllCampaignsSuccess","_getAllCampaignsFail","campaigns","_updateCampaignIsLoading","_updateCampaignSuccess","campaign","_updateCampaignFail","_addCampaignIsLoading","_addCampaignSuccess","_addCampaignFail","_deleteCampaignIsLoading","_deleteCampaignSuccess","_deleteCampaignFail","getAllCampaignsIsLoading","updateCampaignIsLoading","deleteCampaignIsLoading","addCampaignIsLoading","CampaignPeriodDuck","newCampaign","newCampaigns","c","_getGroupStatsIsLoading","_getGroupStatsSuccess","_getGroupStatsFail","getGroupStatsIsLoading","pendingSQ","actionRequired","pendingApproval","approved","deleted","total","GroupStatsDuck","permissionTypeMapper","CREATOR","APPROVAL","ISSUER","GroupStats","currentCampaign","permissionName","campaignPeriodDuck","_getPermissionType","dateStart","dateEnd","permissionType","getGroupStats","onFabClick","_this$props$groupStat","groupStatsDuck","badgeContainer","badgeContent","pendingCollectionIcon","textAlign","GroupPane","t0","console","log","pageHelper","populatePagingData","selectedPage","_getAllGroups","deletingGroup","onUpdateStatusFilter","pageCall","_this$state2$deleting","submittedBy","components_DeleteDialog","dashboard_GroupStats","components_GroupStatusFilter","GroupSubmissionTable","isApproval","convertToExcelExportFormat","records","formattedExcelData","formattedHeaders","formattedRow","SpreadSheetComponent","exportFile","ws","XLSX","aoa_to_sheet","wb","book_new","book_append_sheet","col","surname","Dashboard","hasGroupPermissions","dashboard_GroupPane","permissionDuck","marginTop","grid","gridTemplateColumns","gridGap","noUnderline","textDecoration","VISITING_SIN","labelToObject","rolesToLabelObject","roles","r","displayName","GeneralTextDate","momentDate","isValid","formattedString","dateDisplay","displayError","_checkValidSectionData","formattedDate","rawInput","preventDefault","_checkInvalidCharacters","_addSlash","_checkIncorrectSectionLength","sections","isIncorrectLength","dateString","isValidSectionData","match","numericDate","_checkNoOfSlash","slashMatch","_checkInvalidChar","alpherNumbericDate","placeholder","event","height","textField","GeneralFormContainer","_handleTextChange","formInput","_handleFileChange","files","_handleSelectChange","_handleRadioClick","_handleAutocompleteChange","valueObj","onBlur","_handleBlur","valueArr","formValues","formField","selectedValue","formContainer","columns","inputRow","labelWrapper","fieldWrapper","generalForm_GeneralTextDate","multiline","multilineRows","select","options","option","react_select_esm","isDisabled","_this3","formFields","displayCondition","_checkDisplayCondition","_renderField","showButtons","btnRow","btnWrapper","_onConfirm","btn","_onCancel","flexWrap","flex","customComponent","Countries","CARD_NO_OF_DIGITS","CR_CARD_PREFIX","CTP_CARD_PREFIX","CallingCodes","country","dummy","n","pax","eTicketsDetails","eTicket1","eTicket2","eTicket3","eTicket4","eTicket1LastName","eTicket2LastName","eTicket3LastName","eTicket4LastName","isETicketsVerified","personalDetails","dob","sector1Details","departingDate","destination","sector2Details","landSeaScootBool","flightNumber","departureDate","nextDestination","isFlightEligible","haveTwoTouchPoint","isWithinCampaign","isFourSector","isSameOrgDest","isValidTransit","isPaxSeated","isValidOrigin","isFlightConfirmed","isUsedOrFlownFlight","encodedCriteria","etVerified","ctpVoucherValue","ctpGenValue","ctpLpcValue","genPhysicalVoucherNo","lpcPhysicalVoucherNo","physicalVoucherIssued","formDetailsListMockGenerator","initFormDetails","campaignCode","pnr","origin","originCode","singaporeCode","destinationCode","destinationCityCode","landSeaRemarks","sector3Details","sector4Details","fullCardNo","ccn","preloadedVouchersCardNo","redemptionTransactionId","flightType","currentPaxFormDetails","currentPaxPosition","numberOfSector","isFirstPax","promptedRetrieveDraft","promptedAutoFillSector","collectorDetails","registerCr","existingCr","frequencyOfTravelInPastYear","signatureUri","crMemberId","email","countryCode","areaCode","csoSignatureBase64","clientSignatureBase64","isVerified","allowReceivingInfo","collectionConsent","marketingConsent","airlineConsent","additionalCrConsent","issuePhysicalVoucherToCr","submitIndividualFormIsLoading","checkAndUpdateEligibilityIsLoading","memberSearchIsLoading","uploadFileIsLoading","editMode","individualFilesUploadIsLoading","draftRedemptionTransaction","findPassengerDataWithCardNoIsLoading","findPassengerInGroupIsLoading","getDraftFromOtherRedemptionTransactionIsLoading","passengerFromCard","passengerFromGroup","passengerDataWithCardNo","individualGroupCheckRedeemedPassengerIsLoading","findPassengerWithAppealIsLoading","ctpDigitalCards","preloadedVouchersCards","crDetailsFromOCID","isShowDeletedPax","updateCurrentPaxFormDetails","formDetails","updateCollectorDetails","updateCollectorPersonalDetails","updateCrDetails","crDetails","_submitIndividualFormIsLoading","_submitIndividualFormSuccess","_submitIndividualFormFail","checkAndUpdateEligibility","_checkAndUpdateEligibilityIsLoading","_checkAndUpdateEligibilitySuccess","_checkAndUpdateEligibilityFail","_memberSearchIsLoading","_memberSearchSuccess","_memberSearchFail","uploadFile","formData","_uploadFileIsLoading","bucketType","_uploadFileFail","_uploadFileSuccess","_uploadSignatureSuccess","updateFormDetailsList","_mapFlightDataCountryToCRM","uname","toUpperCase","initStateClone","copyFormDetailsToCurrentPax","_individualFilesUploadIsLoading","_individualFilesUploadSuccess","_individualFilesUploadFail","updateIndividualFormDuck","UPDATE_INDIVIDUAL_FORM_DUCK","findPassengerDataWithCardNo","_ref10","_findPassengerDataWithCardNoIsLoading","_findPassengerDataWithCardNoFail","_findPassengerDataWithCardNoSuccess","_checkPassengersETicketsV2IsLoading","_checkPassengersETicketsV2Success","_checkPassengersETicketsV2Fail","findPassengerInGroup","_ref12","_callee9","_context9","_findPassengerInGroupIsLoading","_findPassengerInGroupFail","_findPassengerInGroupSuccess","_x9","_getDraftFromOtherRedemptionTransactionIsLoading","_getDraftFromOtherRedemptionTransactionSuccess","_getDraftFromOtherRedemptionTransactionFail","findPassengersDataWithAppealTransaction","_ref14","_callee11","_context11","_findPassengerWithAppealIsLoading","_findPassengerWithAppealSuccess","_findPassengerWithAppealFail","_x11","POPULATE_PASSENGER_FROM_GROUP","_individualGroupCheckRedeemedPassengerIsLoading","_individualGroupCheckRedeemedPassengerSuccess","_individualGroupCheckRedeemedPassengerFail","_getCrDetailsFromOCIDSuccess","_getCrDetailsFromOCIDFail","_getCrDetailsFromOCIDIsLoading","newFormDetailsList","newPax","newCollectorDetails","newUser","payload","ticket","passportNo","passport","landSeaBool","updatedFormDetails","clonedCurrentPax","boardingPassData","currentPaxFormDetailsToUpdate","eTicketKey","eTix","date","passportData","currentPaxFormDetailsToUpdatePassport","clonedCollectorDetails","clonedFormDetailsList","tl","departureCountryName","_findCountryFromOrigin","sector12temp","sector34Temp","paxPosition","formDetailsListToDelete","paxIndex","x","details","m","index","preLoadedCardMatch","ctpDigitalCardMatch","cvc","voucherValidFrom","voucherValidTo","voucherValuesAndRemarks","issuedVouchersList","voucherListsJson","crVoucherInfo","crVoucherLists","formDetailsListToUpdate","newFormDetails","ctpVoucher","genVoucher","lpcVoucher","parseInt","newCurrentPaxFormDetails","verifiedResult","memberId","mobileNo","signatureBase64","cloneInitState","attachmentUri","individualForm","replacingFromDraft","matchedPassenger","firstFltNo","firstFltDepDate","secondFltNo","secondFltDepDate","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","redeemed","getCrDetailsFromOCIDLoading","member","formattedCountryCode","replace","formattedCountry","callingCode","matchedCallingCode","findCountryFromCallingCode","newCrDetailsFromOCID","substring","memberID","StyledUndoBtn","SqApiCriteriasDialog","_renderCriterias","criteriasMessage","criteriasObj","isFromSpecialBoardPointCountry","elements","k2","no","viewCriterias","scroll","onViewCriteriasClose","pink","ParticularsTable","onViewCritierias","onCardNoKeyPress","editingIdx","physicalEditingIdx","onCardNoChange","onCardEdit","onPhysicalCardNoChange","onPhysicalCardEdit","onCardNoBlur","onPhysicalCardNoBlur","multiCard","physicalCard","singleCard","root","components_SqApiCriteriasDialog","table","eTicket","editing","onEditPax","autoFocus","InputProps","textFieldInput","onKeyPress","components_StyledUndoBtn","onRestore","_state$individualForm","overflowX","textDeleted","border","cursor","borderBottom","lime","formatFlightNoHelper","carrierCode","serviceNumber","PassportParser","passportString","getData","passportArr","dobMoment","today","nationality","regex","FlightNos","departureCityCode","departurePortCode","departurePortName","arrivalCityCode","arrivalPortCode","arrivalPortName","arrivalDateTime","StyledPlaceholder","text","grey","borderRadius","checkBonusCities","cityName","NA","LAND","SEA","SCOOT","validateCurrentPax","checkBlankForm","isPnrVerified","personalKeys","twoYearsAgo","sector1Keys","sector2Keys","sector3Keys","sector4Keys","_validateCampaignPeriod","_validateAttachmentRequired","t","currentPax","dateKeys","campaignPeriod","startOf","campaignsToCheck","isSameOrAfter","isSameOrBefore","isSame","_arr","_i5","isAttachmentRequired","validateFormDetailsList","allETickets","allETicketsSet","_checkCtpEligibility","eticketsDetails","nonDeletedPassengers","firstPax","errorNumberOfSector","check","currentData","initData","dataKey","prop","REQUIRED_ERROR_MSG","ETICKET_ELIGIBILITY_ERROR_MSG","NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG","NOT_ALL_PAX_ASSIGNED_GEN_ERROR_MSG","NOT_ALL_PAX_ASSIGNED_LPC_ERROR_MSG","REASSIGN_CARD_OR_VOUCHER","StyledTinyFabCheckCircle","customClass","tinyFab","StyledTinyFabError","yellow","airportCodeList","airport","getCountryFromCode","airportCode","NAME_INDEX","NAME_LENGTH","BoardingPassParser","boardingPassString","nameObj","_getName","_getETixNo","originCountry","_getOriginCountry","destinationCountry","_getDestinationCountry","_getDate","bpString","fullName","nameLimiterRegexResult","exec","nameLimiterIndex","bgString","julianDate","_convertJulianToGregorianDate","StyledTinyErrorCross","transform","StyledGeneralDialog","showDialog","onAction","actionText","createEmptyRedemptionTransaction","emptyData","_createRedemptionTransactionIsLoading","_createRedemptionTransactionSuccess","_createRedemptionTransactionFail","updateRedemptionTransaction","createRedemptionTransactionIsLoading","collectorFirstName","collectorLastName","collectorContactNo","redeemerId","eVoucherIssued","signatureURI","groupId","referenceNo","redemptionTransactionDuck","manifestUploadStatus","manifestUploadIsLoading","manifestUploadError","manifestUploadErrorArray","groupDetails","getCampaignCodes","_getCampaignCodesIsLoading","_getCampaignCodesSuccess","_manifestUploadIsLoading","_manifestUploadSuccess","_manifestUploadFail","_ref3$errorArray","errorArray","groupManifestDuck","E_TIX_1_KEY","E_TIX_2_KEY","E_TIX_3_KEY","E_TIX_4_KEY","PASSENGER_AUTO_FILL_SECTOR","IndividualETicketForm","_eTixErrorStore4","eTixKeys","_checkEligibility","eTixErrorStore","_checkApprovedTicketNo","_updateStateETicketDetails","clearTimeout","popPropsETixTimeout","_updateFormDetails","detailsCategory","eTixKey","inputtedValue","subString","handleETicketsDetailsChange","_processManualInput","inputTimeout","_processScanTicket","bpData","updateBoardingPassDetails","updateETixLastName","confirmTickets","tickets","checkPassengersETicketsV2","passengersETickets","rawMessage","_autoFillSector","generalDialogTitle","showGeneralDialog","generalDialogActionText","handlePersonalDetailsChange","ppInputTimeout","_processScanPassport","_renderNotiIcon","eTicketIsYes","components_StyledTinyFabCheckCircle","onShowEligibilityPopup","components_StyledTinyFabError","components_StyledTinyErrorCross","focusETicket","eTicketRefs","focus","resetAddETicketButton","showEticketField","getETicketValue","getETicketLastname","_onAddETicket","onDialogCancel","_checkSqApi","_this$props3","firstPassenger","flightFormFields","customButton","pretravelId","campaignCodes","stateETix","existingList","eTixObj","Ticket4","_this$props4","editModeClass","_this$props4$individu","onConfirm","populatePassengerFromGroup","updatePromptedRetrieveDraft","_callee8","eTicketFilter","_context8","replaceDraft","individualGroupCheckRedeemedPassenger","updatePromptedAutoFillSector","components_StyledGeneralDialog","clickable","rowItem","control","textfield","systemDataDuck","editingPaxDetails","_ref8","bool","_ref11","_x8","getDraftFromOtherRedemptionTransaction","_ref13","_callee10","_context10","_x10","getState","flightDuck","_ref15","_callee12","_context12","_x12","textfieldError","tfWrap","GeneralDropzone","dist_es","onDrop","accept","getRootProps","getInputProps","dropzone","inner","borderColor","borderStyle","borderWidth","Spacing","textWrapper","UploadFilesList","onRemoveCircleClick","PromiseModal","modalOpen","modal","content","overflowY","boxSizing","align","PromiseModalWrapper","resolve","reject","promiseInfo","hide","promiseModal_PromiseModal","proceedBtnStyle","proceedMessage","cancelMessage","_ref2$resolve","_this4","_ref3$reject","sector1FormBuilder","arrivalSearchOptions","arrivalFlightNoList","arrivalCityList","sector2FormBuilder","flightCompulsory","departureFlightNoList","departureCityList","departureSearchOptions","sector3FormBuilder","sector4FormBuilder","ARRIVAL","DEPARTURE","IndividualFlightForm","flightNoOptions","countriesOptions","formatFlightOption","filterFlightData","carrierCodes","citiesOrCountries","arr","arrivalCountryName","set","temp","flightNoList","flightCityList","handleFlightData","s1","s2","s3","s4","clearSector34","_setFlightSectorFields","clearSector12","terms","_updateMultipleFormDetails","trim","_updateDataBasedOnFlightNo","sectorKey","_updateCtpVoucherBasedOnOrigin","isFlightPopulated","readyToProceedAfterPaxCommitted","_validateAllPassengersBeforeNextScreen","_updateCityBasedOnCityCode","landSeaScootBoolValue","flightCompulsoryFlag","sector2FormFields","sector3FormFields","saveDraftTimer","sector1FormFields","sector4FormFields","updateCurrentPaxCtpValue","selectedFlightNo","matchedFlights","flight","citiesFiltered","promtedRetrieveDraft","matchedFlight","ticketNo","handleSector1DetailsChange","handleSector2DetailsChange","handleSector3DetailsChange","handleSector4DetailsChange","sectionList","portCodeSector1","pop","dfFlightSector4","sector4Search","portCodeSector2","dfFlightSector3","sector3Search","fileupload","onFlightTypeChange","detailsArray","_commitCurrentPax","deletedOriginalAttachmentIdx","afterDeleteConfirm","uploadFiles","commitFormDetailsIntoList","_validateMaxPassengers","addPax","validation","calNoSCurrentPax","individualETicket","scrollTo","onClickNext","validateCurrentPaxResult","validateFormDetailsListResult","_proceedToNextScreen","onClear","clearPaxDetails","_onDelete","deletePax","_onRestore","restorePax","onSaveDraft","_this$props$individua","individualFormJsonString","submitDraftObj","_onEditPax","onEditCancel","cancelEditingPax","onUpdate","getFormDetails","acceptedFiles","af","exists","onDeleteOrigAttachment","onUndoDeleteOrigAttachment","newDeletedOriginalAttachmentIdx","delete","newAttachmentUris","newAttachmentUrisSector3","onAttachmentClick","objectKey","bucket","paxFormFields","previousDraftExist","promiseModalProceedMessage","promiseModalCancelMessage","promiseModalContent","promiseModalRef","createRef","FormData","append","individualFilesUpload","isAdding","promiseModal_PromiseModalWrapper","ref","components_ParticularsTable","components_StyledPlaceholder","individual_IndividualETicketForm","innerRef","instance","GeneralFormColumns","components_Spacing","react","generalForm_GeneralDropzone","components_UploadFilesList","listItemText","pointer","stateClone","voucherValue","updateEntireIndividualForm","getFlightsData","_getFlightsIsLoading","_getFlightsFail","_getFlightsSuccess","errorDetails","updateFlights","getFlightsIsLoading","_mapSearchOptions","__formatSearchOption","_formatDataToOptionList","singaporeKey","list","IndividualScreen","flightDataWithMetaStr","flightDataWithMeta","_rs","dateCreated","flightsDataWithMetaStr","flights","closeSubsequentScanModal","subsequentScanModalOpen","individual_IndividualFlightForm","selectExistingCr","isExistingCr","isExistingCrCard","isNewCollector","isRegisterCr","isSingleCrCard","isCtp","isSingleCtpCard","isMultipleCtpCard","isCtpPhysicalVoucher","isCtpDigitalCard","isCtpPreloadedVouchersCard","selectExistingCrPhysicalVoucher","selectExistingCrPreloadedVouchersCard","selectRegisterCr","selectIssueCtp","isSingleCard","selectCtpDigitalCard","selectCtpPreloadedVouchersCard","updateIndividualCollectorOptions","individualCollectorOptionDuck","updateAllConsents","collectionConsentCso","consentDerivedDuck","inputComponent","inputRef","Control","inputProps","selectProps","innerProps","textFieldProps","customStyles","menu","provided","StyledSelect","components","InputLabelProps","shrink","CardRangeHelper","rangeString","prefix","noOfDigits","prepareData","dataPrepared","numberTokenList","formattedRangeList","numberToken","calculatedFinalDigits","generateRange","numGrpArr","finalArr","numGrp","formattedNumArr","_generateFromDash","formattedNum","_appendZeroUntilFinalRangeDigit","toString","rangeStartEndNumber","rangeSize","numArr","finalDigits","fullDigits","numberString","noOfFinalDigits","newNumberString","MEMBER_TYPE_REGISTER_CR","MEMBER_TYPE_EXISTING_CR","MEMBER_TYPE_NO_CR","urlData","ctpTncUrl","crTncUrl","crtTncUrl","cagPpUrl","crPpUrl","voucherCurrency","ctpGenVoucher","ctpLpcVoucher","crVoucher","crGenVoucher","crLpcVoucher","voucherData","ctpGenVoucherValue","ctpLpcVoucherValue","crGenVoucherValue","crLpcVoucherValue","templateData","lpcSubMessage","groupAdditionalCrAgreement","airlineGroupConsent","crRegistrationAgreement","ctpIndividualCollectionAgreement","ctpFamilyCollectionAgreementMessage","ctpFamilyCollectionAgreementMessageForCso","ctpFamilyWithCrtCollectionAgreementMessage","ctpGroupCollectionAgreementMessage","numberVoucherIssuanced","generateCollectionAgreementMessage","agreementMessage","voucherDataCollected","formattedMessage","injectUrlLinksIntoMessage","numberVoucherIssuancedMessage","totalCtpLpcValue","genNumberVoucherIssuanced","totalCtpValue","injectNumberOfVoucher","injectLcpMessage","totalCtpGenValue","formattedAgreementMessage","injectValue","injectNoOfCard","urlLinkTemplate","displayMessage","ConsentDerivedDuckContainer","_buildConsentMessages","undeletedPax","updateConsent","_getOverallVoucherData","consentData","overallVoucherData","generateBatches","batchSize","batchList","batchCount","itemList","startIdx","j","calculatePassengersVouchers","formsDetailList","_ref$isCr","isCr","_ref$isPreloadedVouch","isPreloadedVoucher","formattedFormsDetailList","passengersWithVouchers","form","pwv","CollectorPersonalDetails","_updateCallingCode","onCollectorPersonalDetailsChange","collectorOptions","formState","_collectorOptions","_pax","getPassengersVouchersResponse","formattedPassengersWithVouchers","mobileNoTemp","sendMessage","maxDob","onParentDidDone","onParentDidSubmit","blob","resetParentSubmit","parentDidSumit","_validateCardNo","_collectorDetailsValidation","errMsg","requiredFields","eligibleCardPassengers","cardNoSet","_eligibleCardPassengers","_cardNoSet","eligiblePhysicalPassengers","physicalNoSet","contactNoError","dobError","parentView","validated","validateCount","sk","emailHelperText","emailError","onEmailBlur","onVerifyCRCard","memberSearch","_promptErrorMessage","onVerifyEmail","errMessage","onConsent","consent","onVerifyCRChange","formattedCardNo","onVerifyEmailChange","masterReturn","doesMemberExist","isEmailValid","ocidExists","all","then","responses","ocidExistingEmailResult","_doesMemberExist","onCardPrefixChange","cardPrefix","onCardRangeFromChange","cardRangeFrom","onCardRangeToChange","cardRangeTo","cardRange","onAssign","genCardRangeFrom","genCardRangeTo","lpcCardRangeFrom","lpcCardRangeTo","genCardPrefix","lpcCardPrefix","updatedPassengers","formattedCardRangeTo","cardRangeHelper","cards","shift","cardRangeHelper2","cards2","_emptyCardNoAndPhysicalVoucher","individualFormDuckClone","collectorDetailsClone","formDetailsListClone","toggleExistingCrPhysicalVoucher","existingCrPhysicalVoucher","toggleExistingCrPreloadedVouchersCard","existingCrPreloadedVouchersCard","onSubmitTypeChange","submitType","onCardAssignmentChange","memberType","cardAssignment","onGenCardPrefixChange","onlpcCardPrefixChange","onGenCardRangeFromChange","numericValue","onGenCardRangeToChange","onLpcCardRangeFromChange","onLpcCardRangeToChange","onOcidLinkClick","nativeEvent","stopImmediatePropagation","sendOpenOcidWindow","existingCrError","registerCrError","nameError","surnameError","callingCodeError","mobileNoTempError","consentError","countryError","cardNoError","_this$props$individua2","overrideExistingCrOptions","isEqual","parentDidSubmit","parentDidDone","childIsValidated","resetParentDone","submitIndividualForm","isDigitalCard","isPreloadedVouchersCard","_this$props$individua3","consentDerivedDuckContainer","radioGroup","components_StyledSelect","href","paddingLeft","dangerouslySetInnerHTML","__html","auditLogDucks","collector","eTickets","checkStatus","sqResponse","sectors","sectorNo","arrivalDate","landSea","clearFormDetailsList","button","notFullWidth","flexStart","flightTransfers","signalRConstants","USER_CONCIERGE","USER_CLIENT","OCID_EXCHANGE","UPDATE_COLLECTOR_FORM","DISPLAY_COLLECTOR_FORM","DISPLAY_GROUP_COLLECTOR_FORM","UPDATE_GROUP_COLLECTOR_FORM","CLIENT_DONE","DISPLAY_INDIVIDUAL_COLLECTOR_SUCCESS","DISPLAY_GROUP_COLLECTOR_SUCCESS","EXIT_INDIVIDUAL_COLLECTOR_SUCCESS","REFRESH_CLIENT","OPEN_OCID_WINDOW","CLOSE_OCID_WINDOW","UPDATE_CR_DETAILS_FROM_OCID","saveCard","_requestForReprintingSuccess","requestForReprinting","postBody","cardList","printCardDuck","PassengersVoucherTable","onPreloadedVouchersCardNoChange","onPreloadedVouchersCardNoBlur","_shouldShowCardNo","some","_shouldShowVoucherNo","_shouldShowPreloadedVouchersCardNo","shouldShow","_shouldShowPhysicalVoucherNo","_shouldShowRedemptionDate","printCard","showCardNo","showVoucherNo","showPreloadedVouchersCardNo","showPhysicalVoucherNo","showRedemptionDate","typeValue","collectorSuccess","voucherNo","GeneralCheckbox","clearSignature","sigCanvas","clear","onEnd","toDataURL","canvasWrapper","dimensions","build_default","penColor","canvasProps","buttonWrapper","clearButtonText","IndividualCollector","_startSignalRConnection","hubConnection","_sendMessage","messageType","messageObj","user","source","messageStr","invoke","_receiveMessage","currentUser","_messageObj$data","clientIsDone","isSharingScreen","_toolbarButtons","onScreenShare","onSubmit","resetCollectorDetails","collectorPersonalDetails","onSignatureEnd","onSignatureClear","parentStateUpdate","HubConnectionBuilder","withUrl","build","on","onclose","individual_CollectorPersonalDetails","GeneralSignature","waiting","components_PassengersVoucherTable","SectionHeader","showButton","onButtonClick","buttonText","MemberRepo","multipleActivateAndIssueCards","_multipleActivateAndIssueCards","passengerBatches","passengerBatch","finish","MULTI_CARD_UNLOADED","MULTI_CARD_DIGITAL","MULTI_CARD_EV","SINGLE_CARD_DIGITAL","physicalVoucher","groupIssueCardIsLoading","createGroupTransactionAndAssignDigitalCardsIsLoading","createGroupTransactionAndAssignDigitalCardsCompleted","selectedGroupId","groupCollectorSignatureUploadIsLoading","groupSqApiCheckIsLoading","groupSqApiCheckResults","paxFlown","groupCheckRedeemedPassengerIsLoading","groupCheckRedeemedPassenger","ui","checkInactiveCardsIsLoading","multipleActivateAndIssueCardIsLoading","multipleActivateAndIssueCardComplete","getGroupAndPassengersRedemption","urlParams","_getState","refNoFilter","_getGroupAndPassengersRedemptionSuccess","_getGroupAndPassengersRedemptionFail","updateGroupCollectorDetails","_groupCollectorSignatureUploadIsLoading","_groupCollectorSignatureUploadSuccess","_groupCollectorSignatureUploadFail","_groupSqApiCheckIsLoading","_groupSqApiCheckSuccess","_groupSqApiCheckFail","UPDATE_COLLECTING_STATUS","UPDATE_SINGLE_PAX","_groupCheckRedeemedPassengerIsLoading","_groupCheckRedeemedPassengerSuccess","_groupCheckRedeemedPassengerFail","updateGroupRedemptionFormDuck","updateGroupRedemptionFormDuckObj","groupRedemptionFormDuck","newRedeemedPassengers","newState","_ret","acceptedPassengers","collecting","meta","respData","collectingPassengers","paxIdWithCtpEligibilityNo","newRejectedPassengers","paxIdWhoHasFlown","newPassengers2","originalETicket","et","CheckStatus","isCheckPassengerFlown","_ret2","redeemedPaxCount","redeemedPaxCountPrev","GroupCollectorForm","onGroupUpdate","totalCtpLcpValue","newCollector","_this$props$groupRede","Paper_default","Table_default","TableHead_default","TableRow_default","TableCell_default","TableBody_default","getAllBanner","_getAllBannerIsLoading","_getAllBannerFail","_getAllBannerSuccess","_addBannerIsLoading","_addBannerSuccess","_addBannerFail","_voidBannerIsLoading","_voidBannerSuccess","_voidBannerFail","_editBannerIsLoading","_editBannerSuccess","_editBannerFail","getAllBannerIsLoading","banners","uri","order","sortPriority","addBannerIsLoading","voidBannerIsLoading","editBannerIsLoading","BannerDuck","banner","CollectorSuccessDisplay","_renderTableBody","final","_totalReceiptValue","reduce","sum","consentText","setMockData","resetIndividualFormReducer","GroupCollectorSuccessDisplay","onPrintAll","cardsToPrint","validFrom","validTo","resetGroupRedemptionFormReducer","buttonMargin","BANNER_SCREEN","INDIVIDUAL_COLLECTOR_SCREEN","GROUP_COLLECTOR_SCREEN","INDIVIDUAL_COLLECTOR_SUCCESS","GROUP_COLLECTOR_SUCCESS","_promptLogin","_refreshPage","homeScreenTimer","activeScreen","_messageObj$data2","_messageObj$data3","updateGroupRedemptionFormData","_messageObj$data4","_messageObj$data5","ocidWindow","onDone","onGroupCollectorSignatureEnd","onGroupCollectorSignatureClear","onGroupDone","onLogout","hubConnect","sortedBanners","bannerTimeline","_this$props$bannerDuc","bannerDuck","b1","b2","anime","timeline","targets","duration","easing","loop","delay","scale","translateX","stagger","sectionSingle","components_SectionHeader","doneBtn","child","presignedUri","logoutBtn","group_GroupCollectorForm","group_GroupCollectorSuccessDisplay","individual_CollectorSuccessDisplay","paddingRight","objectFit","overflow","GroupHeader","hasIssuerPermission","NavLink","Group","group_GroupHeader","Redirect","userPos","handleGroupDetailsChange","downloadManifest","fetchProp","method","mode","fetch","ok","fileBlob","saveAs","resp","rejectedFiles","selectedFile","loaded","_validateForm","_showSnackBarError","twoDaysLater","uploadGroupManifest","showRedirectDialog","updateGroupDetails","onYes","onUploadAnotherFile","onRedirectDialogClose","file","colDateParams","posParams","lastFltDateParams","tourCompanyParams","UPLOAD_VIEW","GroupSubmission","setActiveView","activeView","filteredGroups","group_GroupSubmissionForm","onBack","loadingContainer","PassengersTableEditable","_updateTourLeaderFromPassengerData","renderETicketIssue","eTicketIssue","onETicketIssueClick","renderSqCheckBtn","viewOnly","sqCheckBtn","onSqCheckBtnClick","onUndo","renderIssue","getRowClasses","passengerError","targetPassenger","updateTourLeaderFromPassengerData","dataKeys","origTlId","h","firstNameWrap","tf","i2","eticketwrap","ol","secondary","main","& td input","statusY","teal","statusN","red","ScrollToTopBtn","onBackToTop","GroupReferenceForm","sectorHeaders","sectorDataKeys","getAllUserFlag","viewOnlytemp","groupRefForm","tourLeaderDetailsForm","_tourLeaderDetailsForm","getGroupAndPassengers","passengersHeaders","passengersDataKeys","accessChecked","tlEditable","onGroupRefChange","updateGroupForm","onTourLeaderDetailsChange","_updateTourLeaderFlagInPassengers","updatePassengersTourLeaderFlag","onRowEdit","editForm","onRowDelete","onRowUndo","closeModel","onEditFormChange","onEditFormSave","saveGroupEditFormRecord","onEditFormCancel","onStatusChange","_checkMinPax","approvedCount","_checkNIssuePaxIsDeleted","illegibleCount","totalPax","deleteDialog","confirmDelete","validateTransportMean","transportMeanError","transportRemarksError","attachmentError","_currentTourLeader","_validate2yearsOld","_this$props$tourLeade","tlDob","minDob","valid","_validateUniqueETickets","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","successMessage","filesrs","_group","groupActionType","updateResponse","saveAsDraft","rejectGroupAndPassengers","updateApprove","updateGroupAndPassengers","onUnapproveGroup","_this$props5","onCheckBox","onCheckAll","onUncheckAll","onRadioChange","ontransportMeanRemarksChange","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","alink","onCancel","goBack","_groupStatus","_this$props6","redeemedDate","_formatHumanFriendlyDate","onDeleteNStatus","deleteNStatusDialog","onDeleteNStatusCancel","onDeleteNStatusConfirm","updateAllPassengers","_validateEticket","eticket","onCheckTLAndSubmit","tlDialog","onSaveAsDraft","onTlEditableChange","onTlDialogCancel","onTlDialogProceed","deleteTlDialog","onDeleteTlDialogRetain","onDeleteTlDialogDelete","onTourLeaderDetailsBlur","sqApiFailedCount","allChecked","paxWithoutNIssue","paxWithYIssue","paxWithMIssue","paxWithNIssue","grpReferenceNo","pathname","InputLabelRef","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","checkedCount","approvalFilesUpload","_this$props7","_this$state3","unDeletedPassengers","onDeleteTlDialogCancel","paragraph","components_PassengersTableEditable","marginTop12","displayEmpty","components_ScrollToTopBtn","_state$groupApprovalD","postData","catchError","updateGroupApprovalDuck","groupApprovalGroupCheckRedeemedPassenger","getGroupAudit","_getGroupAuditIsLoading","_getGroupAuditFail","_getGroupAuditSuccess","_getRedemptionTransactionAuditIsLoading","_getRedemptionTransactionAuditSuccess","_getRedemptionTransactionAuditFail","entityChange","entityChangePropertyList","getRedemptionTransactionAuditIsLoading","redemptionTransactionEntityChange","redemptionTransactionEntityChangePropertyList","auditLogDuck","getGroupAuditIsLoading","_action$rs$data$resul2","AUDIT_TABLE_FIELDS","AuditLogTable","_formatAuditData","auditDatas","formattedAuditDatas","formattedAuditData","formattedChangeTime","changeTime","_this$props$auditLogD","GroupApprovalDetail","onBackToListing","group_GroupReferenceForm","afterSubmitUrl","confirmButtonText","components_AuditLogTable","getReprintAuditLog","_getReprintAuditLogIsLoading","_getReprintAuditLogFail","_getReprintAuditLogSuccess","getReprintAuditLogIsLoading","reprintLogs","reprintAuditLog","AuditLogTable2","_retriveAuditLogs","rid","_filterAuditData","redemptionTransactionPassengersDuck","getRedemptionTransactionAudit","tempDates","tempData","lastDate","changes","dates","newAuditDatas","_this$props$reprintAu","reprintAuditLogDuck","ul","reprintCardNo","themes","GroupDetail","presignedSignatureURI","components_AuditLogTable2","SimplePassengersTable","_renderEticketIssues","onEticketIssueClicked","_renderEticketSqCriteria","targetETicket","matchedTicket","ticketData","onCollectingChange","updateCollectingStatus","onPreloadedVouchersCardEdit","updateSinglePax","onPreloadedVouchersCardNoKeyPress","voucherIdx","_renderCell","eTicketWrap","PASSENGERS_NOT_COLLECTING_HEADERS","PASSENGERS_NOT_COLLECTING_DATA_KEYS","PASSENGERS_REDEEMED_HEADERS","PASSENGERS_REDEEMED_DATA_KEYS","GroupRedemptionForm","groupRefNo","fetchGroupRefNo","tlETicket","tlVerified","PASSENGERS_HEADERS","PASSENGERS_DATA_KEYS","requestToChangeCardAssignment","allowChangeCardAssignment","setPassengersCollecting","allCollectingChecked","_JSON$parse","cardRangeStringFrom","cardRangeStringTo","_populateVoucherValue","updatePassengers","_validatePassengers","cardAssignmentType","passValidation","onProceed","_this$props$groupRede2","_updateCardPrefix","updateGroupRefNo","_this$props$groupRede3","isTourLeaderInPassengerList","updateTlLastName","tlLastName","updateTlDob","ppInput","updateTlETicket","eTixInput","eTixInputTimeout","_processBoardingPass","onLastNameKeyUp","onLastNameBlur","_verifyTlIdentity","_this$props$groupRede4","eTicketInput","onViewDetails","cityBonusVoucher","genCityBonusVoucher","lpcCityBonusVoucher","_updateCardRangeStringTo","_updateCardRangeStringFrom","_updateGenCardRangeFrom","_updateGenCardRangeTo","_updatelpcCardRangeFrom","_updatelpcCardRangeTo","onCloseGeneralDialog","isGroupApproved","isDateValid","_this$props$groupRede5","every","_this$props$groupRede6","backBtn","autoComplete","components_SimplePassengersTable","groupSqApiCheck","checkInactiveCards","alignSelf","GroupIssuance","group_GroupRedemptionForm","updateSelectedGroupId","GroupSubmissionDetail","AdminSettings","campaignPermissions","accountPermissions","accessPermissions","bannerPermissions","LoginScreen","onTextFieldChange","_this$setState","errorKey","validate","onResend","onSubmitOtp","otp","otpError","usernameOrEmailAddressError","passwordError","verifyOtpScreen","_this$state4","loginContainer","loginWrapper","logoWrap","Logo","noValidate","MySnackbarContent","_state$authDuck","NotFoundScreen","ScanTicket","handleInputChange","ticketTimeout","_addTicket","passportRef","current","passportTimeout","_addPassport","addUserTicketAndPassport","onScanDone","_findTixNo","ticketRef","setErrorMessage","msg","ForgotPasswordScreen","submitSuccess","submitMessage","userIdError","notice","ResetPasswordScreen","confirmPassword","confirmPasswordError","_createRoleIsLoading","_createRoleSuccess","_createRoleFail","_updateRoleIsLoading","_updateRoleSuccess","_updateRoleFail","_deleteRoleIsLoading","_deleteRoleSuccess","_deleteRoleFail","roleNameField","createRoleIsLoading","updateRoleIsLoading","deleteRoleIsLoading","UserAccessAccountDuck","newPermissions","_submitCreateNewAccountIsLoading","_submitCreateNewAccountSuccess","_submitCreateNewAccountFail","roleNames","submitCreateNewAccountIsLoading","startActiveTime","endActiveTime","createNewAccountDuck","_getAllRolesIsLoading","_getAllRolesSuccess","_getAllRolesFail","_getRolesIsLoading","_getRolesSuccess","_getRolesFail","_getPermissionsIsLoading","_getPermissionsSuccess","_getPermissionsFail","_getUsersIsLoading","_getUsersSuccess","_getUsersFail","_deleteUserIsLoading","_deleteUserSuccess","_deleteUserFail","_updateUserIsLoading","_updateUserSuccess","_updateUserFail","_unlockUserIsLoading","_unlockUserSuccess","_unlockUserFail","_getShouldCallSQIsLoading","_getShouldCallSQSuccess","_getShouldCallSQFail","_updateShouldCallSQIsLoading","_updateShouldCallSQSuccess","_updateShouldCallSQFail","getRolesIsLoading","getPermissionsIsLoading","getUsersIsLoading","users","deleteUserIsLoading","getShouldCallSQIsLoading","shouldCallSQ","updateShouldCallSQIsLoading","updateUserIsLoading","getAllRolesIsLoading","_searchPassengersIsLoading","_searchPassengersSuccess","_searchPassengersFail","_getGroupsByAttributeIsLoading","_getGroupsByAttributeSuccess","_getGroupsByAttributeFail","_getPassengersByCardRangeIsLoading","_getPassengersByCardRangeSuccess","_getPassengersByCardRangeFail","_getPhysicalVoucherByRangeIsLoading","_getPhysicalVoucherByRangeSuccess","_getPhysicalVoucherByRangeFail","searchPassengersIsLoading","getGroupsByAttributeIsLoading","getPassengersByCardRangeIsLoading","getPhysicalVoucherByRangeIsLoading","cardVoucherRangeSearchResults","searchDuck","_passengerCardReplacementIsLoading","_passengerCardReplacementSuccess","_passengerCardReplacementFail","_getAllRewardsByCardNoIsFetching","_getAllRewardsByCardNoSuccess","_getAllRewardsByCardNoFail","passengerCardReplacementIsLoading","getAllRewardsByCardNoIsFetching","PassengerDuck","cardReplacementResponse","rewardsByCardNo","getRedemptionTransactionAndPassengers","_getRedemptionTransactionAndPassengersIsLoading","_getRedemptionTransactionAndPassengersFail","_getRedemptionTransactionAndPassengersSuccess","UPDATE_REDEMPTION_TRANSATION_PASSENGER_SINGLE_PAX","UPDATE_REDEMPTION_TRANSATION_PASSENGER","_updateRedemptionTransactionAndPassengersIsLoading","_updateRedemptionTransactionAndPassengersSuccess","_updateRedemptionTransactionAndPassengersFail","_voidTransactionIsLoading","_voidTransactionSuccess","_voidTransactionFail","_redemptionTransactionPassengersFilesUploadIsLoading","_redemptionTransactionPassengersFilesUploadSuccess","_redemptionTransactionPassengersFilesUploadFail","UPDATE_REDEMPTION_TRANSACTION_PASSENGERS_DUCK","initETicket","sector","transactionId","countryOfResidence","firstFltArrDate","secondFltArrDate","currentIdx","getRedemptionTransactionAndPassengersIsLoading","updateRedemptionTransactionAndPassengersIsLoading","redemptionTransactionPassengersFilesUploadIsLoading","sect","sector2Idx","newSector2","etixidx","getAllIata","_getAllIataIsLoading","_getAllIataSuccess","_getAllIataFail","iatas","_updateIataIsLoading","_updateIataSuccess","_updateIataFail","_deleteIataIsLoading","_deleteIataSuccess","_deleteIataFail","_addIataIsLoading","_addIataSuccess","_addIataFail","getAllIataIsLoading","updateIataIsLoading","deleteIataIsLoading","addIataIsLoading","IataDuck","_getAllPhysicalVouchersIsLoading","_getAllPhysicalVouchersSuccess","physicalVouchers","_getAllPhysicalVouchersFail","_updatePhysicalVoucherIsLoading","_updatePhysicalVoucherSuccess","_updatePhysicalVoucherFail","_deletePhysicalVoucherIsLoading","_deletePhysicalVoucherSuccess","_deletePhysicalVoucherFail","_addPhysicalVouchersIsLoading","_addPhysicalVouchersSuccess","_addPhysicalVouchersFail","getAllPhysicalVouchersIsLoading","updatePhysicalVoucherIsLoading","deletePhysicalVoucherIsLoading","addPhysicalVouchersIsLoading","PhysicalVoucherDuck","getAllAppealTransactionLoading","appealTransactionDetail","approvedBy","approvedUserName","approvedTime","rejectedBy","rejectedUserName","rejectedTime","sqError","attachmentURIs","processingTimeoutEndDate","processingUser","bookingRefNo","_getAllAppealTransactionIsLoading","_getAllAppealTransactionSuccess","_getAllAppealTransactionFail","_getAppealTransactionDetailIsLoading","_getAppealTransactionDetailSuccess","_getAppealTransactionDetailFail","_updateEicketAppealTransactionSuccess","_updateEicketAppealTransactionFail","_approveAppealTransactionDetailIsLoading","_approveAppealTransactionDetailSuccess","_approveAppealTransactionDetailFail","_rejectAppealTransactionDetailIsLoading","_rejectAppealTransactionDetailSuccess","_rejectAppealTransactionDetailFail","_processAppealTransactionIsLoading","_processAppealTransactionSuccess","_processAppealTransactionFail","appealTransactionDuck","_newAppealTransaction","appealTransactions","getAppealTransactionDetailIsLoading","approveAppealTransactionIsLoading","newAppealTransactionDetail","passengerId","eTicketsKeys","eTicketNumbers","auditLogs","rejectAppealTransactionIsLoading","processAppealTransactionIsLoading","combineReducers","userAccessAccountDuck","passengerDuck","iataDuck","physicalVoucherDuck","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","rootReducer","applyMiddleware","thunkMiddleware","ProtectedRoute","redirectPath","rest","Route","from","CustomNavButton","path","RegExp","withRouter","AdminSettingsNav","components_CustomNavButton","TABLE_FIELDS","CampaignPeriod","onAdd","addCampaign","newStartDate","newEndDate","prevStartDate","prevEndDate","_updateStartDate","_updateEndDate","_formatCampaigns","formattedCampaigns","period","formattedPeriod","editCampaign","deleteCampaign","onEditSave","_this$state$editCampa","updateCampaign","onEditChange","startDateError","endDateError","hasEditPermission","hasCreatePermission","hasReadPermission","adminSettings_AdminSettingsNav","put","newdata","USER_ACCOUNTS_TABLE_FIELDS","CreateNewAccount","getRoles","getUsers","filteredUsers","_removeAdminUser","handleStatusRadioGroupChange","__filterUsersByStatus","__filterUsersByRole","roleFilter","onRoleChange","updateCreateNewAccountDuck","onPosChange","submitCreateNewAccount","errorSuffix","contactNoEditError","emailAddressError","roleNamesError","onFormChange","onUserEdit","editingUser","editingUsername","onUserDelete","deletingUser","onUnlockingUser","showUnlockDialog","unlockingUser","onUnlockUser","_this$state$unlocking","unlockUser","onUnlockCancel","updateUser","emailAddressEditError","nameEditError","onRoleEditChange","onPosEditChange","onStatusEditChange","deleteUser","_removeAdminRole","u","RolesDropDown","unshift","iata","iataCode","FormControlLabel_default","Switch_default","RadioGroup_default","Radio_default","UserAccessAccountRightsTable","onSwitch","g","Report","RIGHT_TABLE_FIELDS","UserAccessAccount","getAllRoles","getPermissions","updateUserAccessAccountDuck","onPermissionsSwitch","updateUserAccessAccountPermissions","onRightsEdit","grantedPermissionNames","getRoleForEditIsLoading","Id","onRightsDelete","deletingRole","updateRole","createRole","deleteRole","roleNameFieldError","permissionsLoaded","adminSettings_UserAccessAccountRightsTable","REJECT_TABLE_FIELDS","DATA","rejectReason","emailTemplate","system","RejectReason","onSelectChange","EMAIL_TABLE_FIELDS","templateName","EmailTemplate","onCreate","BANNER_TABLE_FIELDS","BannerTable","onOrderChange","updateSingleBannerDetails","deletingBanner","bannerList","voidBanner","onNameChange","draggable","BannerScreen","validateSubmit","bannerName","bannerNameError","selectedFileError","bannerSortPriority","addBanner","editBanner","onUploadFieldsChange","components_BannerTable","LogoutScreen","loggedOut","es_Redirect","IndividualCollectorSuccess","dataObj","onPrint","print","onBackClick","shouldDisablePrintAll","TABLE_HEAD","GroupCollectorSuccess","LinearProgress_default","GroupCollector","_createGroupTransactionAndAssignDigitalCards","createGroupTransactionAndAssignDigitalCards","passengersWithCard","issueCardResponse","multipleActivateAndIssueCard","_groupIssueCards","cardActivationResponse","groupIssueCards","groupCollectorSignatureUpload","formattedPassengers","formattedPassenger","isSubmitted","listen","components_LinearIndeterminate","clonedCollector","SearchScreen","SearchResultTable","renderEticket","onChangeCardNo","identifier","_getGroupStatus","_getAppealTransactionStatus","appealTransaction","preTravelStat","_getCardNo","handleClickOpen","descendingComparator","orderBy","getComparator","reprintCard","reprintTransactionId","handleDialogClose","reprintDialogOpen","card","handleDialogNo","handleDialogYes","array","comparator","stabilizedThis","el","textFields","visuallyHidden","clip","onRequestSort","headCell","numeric","disablePadding","sortDirection","property","isAsc","stableSort","pretravelClickable","SearchNav","FIELDS","SearchPassengerScreen","onSearchFieldsChange","onPhysicalVoucherFieldsChange","cardNoFrom","cardNoTo","preloadedCardFrom","preloadedCardTo","hasFilter","customField","searchPassengers","hasSearched","voucherNoFrom","voucherNoTo","tc","_this$props$searchDuc","search_SearchNav","search_SearchResultTable","canChangeCardNo","cardReplacementInitState","oldCardNo","oldCardNoError","newCardNo","newCardNoError","reason","reasonError","onApproverAuthenticating","approverId","approverIdError","approverPassword","approverPasswordError","CardReplacementScreen","approverOnSubmit","_cardReplacement","approverOnCancel","passengerCardReplacement","onListRewards","getAllRewardsByCardNo","_this$props$passenger","voucherTypeName","toFixed","voucherIssuedOn","voucherUsedOn","redeemedOutletName","voucherStatus","Card","LoginScreen2","genReCaptchaToken","grecaptcha","execute","captchaToken","onSubmitEmail","verifyEmailOtpScreen","otpSubmitAttempt","otpResendAttempts","onResendEmailOtp","onResendEmailOtpFromSMS","_this$state5","onSubmitEmailOtp","_this$state6","otpResendDisabled","script","appendChild","_this$state7","RedemptionPassengersTable","_renderEticket","onNameClick","StyledAttachmentList","propsTypes","PropTypes","isRequired","func","DEFAULT_SECTOR","flightno","PassengerDetails","isShowing","sector1","sector2","sector3","sector4","components_StyledAttachmentList","CollectorDetails","onCollectorFieldChange","onPromoClick","collectorCountry","collectorDob","collectorCountryCode","collectorEmail","collectorAreaCode","emailType","promocodeURIs","promocodes","ReprintAuditLogTable","voidTransactionDialog","voidRemark","RedemptionTransactionDetailScreen","updateRedemptionTransactionPassenger","onETicketChange","etix","updateRedemptionTransactionPassengerSinglePax","updateRedemptionTransactionPassengersDuck","onVoidRemarkChange","_this$props$redemptio","updateRedemptionTransactionAndPassengers","showVoidTransactionDialog","onVoidTransactionCancel","_this$props$redemptio2","onVoidTransactionConfirm","voidTransaction","remark","etixkeys","redemptionTransactionPassengersFilesUpload","_this$props$redemptio3","redemptionTransactionDetail_RedemptionPassengersTable","redemptionTransactionDetail_PassengerDetails","redemptionTransactionDetail_CollectorDetails","PASSENGER_HAS_EXISTING_CARD","PASSENGER_HAS_EXISTING_APPEAL","AppealETicketForm","_eTixErrorStore","eTixNo","newEticket","checkDuplicate","hasDuplicates","_eTixBackUp","checkCardData","checkAppealResponse","eTixBackUp","_validateEligibility","appealTransactionId","_saveEticket","updateEicketAppealTransaction","eventName","isUpdateETicket","isCheckEligibilitySuccess","_i3","_isCheckEligibilitySuccess","_isCheckEligibilityDisable","flag","ticketDetail","_this$props3$individu","hasEditorPermissions","_loadStateEticketDetails","AppealCollectorDetails","remarkError","AppealTransactionDetailScreen","getAppealTransactionDetail","onApprove","approvalRemarks","_validateRemark","approveAppealTransactionDetail","onReject","rejectionRemarks","rejectAppealTransactionDetail","_this$props$appealTra","hasSuperApproverPermissions","appealTransactionDetail_AppealETicketForm","appealTransactionDetail_AppealCollectorDetails","auditColumn","auditLog","TableRow","createdByName","oldValue","AdminIataScreen","showEditDialog","updateIata","addIata","origEditing","deleting","deleteIata","updateIataCode","updateName","iataCodeError","iataCodeEditError","Errors","deleteHeader","SqApiScreen","getShouldCallSQ","updateShouldCallSQ","_this$props$systemDat","PhysicalVoucherScreen","voucherType","voucherRange","fixedDigits","campaignId","addPhysicalVouchers","currentPage","_getAllPhysicalVouchers","filterCampaign","filterVoucherType","pageData","MaxResultCount","SkipCount","getAllPhysicalVouchers","campaignToSelectFriendly","filterCampaignOptions","onCampaignChange","onVoucherTypeChange","voucherTypeOptions","filterVoucherTypeOptions","onVoucherRangeChange","onEditPhysicalVoucher","editingVoucher","onEditClose","_formatCampaignToSelectFriendly","onEditingCampaignChange","_e$label$split$map","_e$label$split$map2","slicedToArray","onEditingVoucherTypeChange","_formatVoucherToSelectFriendly","onDeletePhysicalVoucher","deletingVoucher","onEditingVoucherChange","_this$state$editingVo","updatePhysicalVouchers","deletePhysicalVoucher","lastPage","onFilterVoucherTypeChange","onFilterCampaignChange","_formatPhysicalVouchers","_this$props$physicalV","SearchGroupResultTable","statusOrder","SearchGroupScreen","getGroupsByAttribute","TourLeaderFirstName","TourLeaderLastName","TourCompany","LastFlightDepartureDate","CollectionDate","RefNo","TourLeaderDob","search_SearchGroupResultTable","SearchIssuanceSummaryResultTable","updateCount","issuedCount","filterStatus","formatToExcel","clonedData","clonedRecord","redeemedDateTime","filtered","components_SpreadSheetComponent","rowKey","onCardFieldsChange","getPassengersByCardRange","getPhysicalVoucherByRange","_formatData","search_SearchIssuanceSummaryResultTable","OCIDExchange","signalRConnected","authorizationCode","printingCard","cardNoPrinted","queryString","require","getCrDetailsFromOCID","_ref16","_callee13","_context13","_x13","QRCode","CTPCardPrintLayout1","printing","defaultRemarks","voucherLists","Date","ValidFrom","issuedDate","ValidTo","voucherRemarks","TypeValue","validFromStr","getDate","toLocaleString","month","getFullYear","validToStr","ctpPrintBackground","titleWrapper","titleText","description","desText","desTextBold","qr","cardInfo","cardDes","cardDesText","voucherDes","voucherQty","webInfo","webInfoLink","tnc","tncTitle","tncItem","borderCollapse","-webkit-transform-origin","userSelect","whiteSpace","fontStyle","fontWeight","visibility","footer","footerTop","footerBottom","CRCardPrintLayout1","noOfVoucher","genValue","topImgBlock","topImg","headerImage","topImgText","voucherBlock","voucherName","voucherTitle","voucherText","voucherInfo","cardImg","cardImage","cardNum","voucherDetail","voucherIssueDate","voucherQuantity","isQantasFlight","voucherExpiryDate","qrCodeBlock","qrCodeText","qrCode","CRCardPrintLayout1_QRCode","qrWarning","opacityText","recommendBlock","recommendTitle","recommendContainer","recommendItem","thumbImg","thumb1","thumbText","thumb2","thumb3","thumbTextNote","thumbTextLastPanel","thumb4","infoBlock","tncList","tncListUl","backGroundColor","PrintCard","lstCardNo","showCr","submittedCards","submittedCRCards","submittedCTPCards","backgroundImage","backgroundGrey","transition","components_CRCardPrintLayout1","components_CTPCardPrintLayout1","PrintCardOnDemandScreen","generateCardRange","cardNos","cardNoFromInt","noOfCard","currentCardNo","defaultVoucher","numberOfVoucher","AppealTransactionTable","processAppealTransaction","AppealTransactionScreen","dataFiltered","caseStatus","filterData","componentWillMount","handleStatusChange","getAllAppealTransaction","searchAppealTransactionIsLoading","components_AppealTransactionTable","Root","_onGlobalClick","es","BrowserRouter","Fragment","CssBaseline_default","containers_SystemModal","Switch","exact","components_ProtectedRoute","ClientView","GroupApproval","GroupIssuanceDetail","Banner","SqApi","SearchIssuanceSummaryScreen","hostname","ReactDOM","screens_Root","getElementById","navigator","serviceWorker","ready","registration","unregister","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","_images_CTP_Logo_Final_Black_png__WEBPACK_IMPORTED_MODULE_1__","_images_CTP_Logo_Final_Black_png__WEBPACK_IMPORTED_MODULE_1___default","w","logo"],"mappings":"6EAAAA,EAAAC,QAAiBC,EAAAC,EAAuB,kFCAxCD,EAAAE,EAAAC,EAAA,sBAAAC,IAAAJ,EAAAE,EAAAC,EAAA,sBAAAE,IAAAL,EAAAE,EAAAC,EAAA,sBAAAG,IAAAN,EAAAE,EAAAC,EAAA,sBAAAI,IAAAP,EAAAE,EAAAC,EAAA,sBAAAK,IAAAR,EAAAE,EAAAC,EAAA,sBAAAM,IAAAT,EAAAE,EAAAC,EAAA,sBAAAO,IAAAV,EAAAE,EAAAC,EAAA,sBAAAQ,IAAAX,EAAAE,EAAAC,EAAA,sBAAAS,IAAAZ,EAAAE,EAAAC,EAAA,sBAAAU,IAAAb,EAAAE,EAAAC,EAAA,sBAAAW,IAAAd,EAAAE,EAAAC,EAAA,sBAAAY,IAAAf,EAAAE,EAAAC,EAAA,sBAAAa,IAAAhB,EAAAE,EAAAC,EAAA,sBAAAc,IAAAjB,EAAAE,EAAAC,EAAA,sBAAAe,IAAAlB,EAAAE,EAAAC,EAAA,sBAAAgB,IAAAnB,EAAAE,EAAAC,EAAA,sBAAAiB,IAAApB,EAAAE,EAAAC,EAAA,sBAAAkB,IAAArB,EAAAE,EAAAC,EAAA,sBAAAmB,IAAAtB,EAAAE,EAAAC,EAAA,sBAAAoB,IAAAvB,EAAAE,EAAAC,EAAA,sBAAAqB,IAAAxB,EAAAE,EAAAC,EAAA,sBAAAsB,IAAAzB,EAAAE,EAAAC,EAAA,sBAAAuB,IAAA1B,EAAAE,EAAAC,EAAA,sBAAAwB,IAAA3B,EAAAE,EAAAC,EAAA,sBAAAyB,IAAA5B,EAAAE,EAAAC,EAAA,sBAAA0B,IAAO,IACMzB,EAA+B,oBAG/BC,EAA0B,eAC1BC,EAAoC,uBACpCC,EAA2B,gBAC3BC,EAAyC,2BACzCC,EAA4B,iBAC5BC,EAAsC,yBACtCC,EAAsC,0BACtCC,EAAwC,4BACxCC,EAAsC,0BACtCC,EAAqC,yBACrCC,EAAuC,2BACvCC,EAAqC,yBACrCC,EAAkC,sBAClCC,EAAoC,wBACpCC,EAAkC,sBAClCC,EAAoC,wBACpCC,EAAsC,0BACtCC,EAAoC,wBACpCC,EAA8B,mBAC9BC,EAA0B,eAC1BC,EAAwB,aACxBC,EAAsB,+BACtBC,EAAgB,gBAChBC,EAAkB,kBAClBC,EAAwB,wDC5BrC7B,EAAAE,EAAAC,EAAA,sBAAA2B,IAAO,IAAMA,EAAuB,SAACC,GACjC,OAAkB,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,2ICK3GC,mLAEO,IAAAC,EACoDC,KAAKC,MAAvDC,EADFH,EACEG,QAASC,EADXJ,EACWI,UAAWC,EADtBL,EACsBK,eAAgBC,EADtCN,EACsCM,WAE3C,OACIC,EAAAC,EAAAC,cAAA,WACIF,EAAAC,EAAAC,cAAA,OAAKC,UAAWP,EAAQQ,QACpBJ,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAAYC,QAAS,MAAOZ,KAAKC,MAAMY,QAE3CP,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAAOF,UAAWK,IAAWZ,EAAQa,MAAOV,IACvCL,KAAKC,MAAMe,gBACZV,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAASF,UAAW,CAACP,EAAQe,QAAS,WAAWC,KAAK,MAClDZ,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAAMQ,WAAS,EAACC,QAAS,GAAIC,QAAS,iBACbC,IAAnBlB,GAAgCA,GAAmBE,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAAYC,QAAS,MAArB,wBAChCU,IAAnBlB,GAAgCA,GAAmBE,EAAAC,EAAAC,cAAA,QAAMe,MAAO,CAACC,SAAS,OAC3ExB,KAAKC,MAAMe,iBAAiBS,IAAI,SAACC,EAAGC,GAAJ,OAAUrB,EAAAC,EAAAC,cAACG,EAAA,EAAD,CAAMiB,MAAI,EAACC,IAAKF,GAAID,OAIvEpB,EAAAC,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACnBnB,KAAKC,MAAM6B,eAIAR,IAAdnB,GAA2BA,GAAcG,EAAAC,EAAAC,cAACuB,EAAA,EAAD,CAAkBC,MAAM,aAzB3DC,iBA+CbC,yBAdA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAAC,EAAA,EAAAD,CAAA,GAAKD,EAAMhB,UAAZ,CAAuBmB,aAAc,SAC9C5B,OAAQ,CAAC6B,QAAS,cAClBxB,MAAO,CAACyB,SAAU,WAAYC,UAAW,QACzCxB,QAAS,CAACyB,WAAY,UAUXR,CAAmBpC,oCCrDlChC,EAAAE,EAAAC,EAAA,sBAAA0E,IAAA7E,EAAAE,EAAAC,EAAA,sBAAA2E,IAAA9E,EAAAE,EAAAC,EAAA,sBAAA4E,IAAO,IACMF,EAAaG,+CAEbF,EAAmBE,yBA6D1BC,EAAkB,CACpBC,YAAa,UACbC,SAAS,uCACTC,aAAc,2CACdC,QAAS,2CACTC,iBAAkB,IAClBC,gBAAiB,CACb,CACIC,gBAAmB,UACnBC,SAAY,CACR,CACIC,aAAgB,UAChBC,cAAiB,QAI7B,CACIH,gBAAmB,aACnBC,SAAY,CACR,CACIC,aAAgB,MAChBC,cAAiB,KAErB,CACID,aAAgB,MAChBC,cAAiB,QAI7B,CACIH,gBAAmB,KACnBC,SAAY,CACR,CACIC,aAAgB,MAChBC,cAAiB,MAErB,CACID,aAAgB,MAChBC,cAAiB,OAI7B,CACIH,gBAAmB,MACnBC,SAAY,CACR,CACIC,aAAgB,MAChBC,cAAiB,MAErB,CACID,aAAgB,MAChBC,cAAiB,QAKjCC,iBAAkB,4CA+DTb,EAAc,WAUvB,OAJeE,oCC7LnBjF,EAAAE,EAAAC,EAAA,sBAAA0F,IAAO,IAAMA,EAAe,uICKtBC,mLAEE,OACIC,EAAAtD,EAAAC,cAACsD,EAAA,EAAD,CACIC,aAAc,CAACC,SAAU,SAAUC,WAAY,UAC/CC,KAAMlE,KAAKC,MAAMiE,KACjBC,QAASnE,KAAKC,MAAMkE,SAEpBN,EAAAtD,EAAAC,cAAC4D,EAAA,EAAD,CAAmBxD,QAASZ,KAAKC,MAAMW,SAAW,UAAWuD,QAASnE,KAAKC,MAAMkE,QAC7EE,QAASrE,KAAKC,MAAMoE,kBATXC,aAsBdV,wKCTTW,cAEF,SAAAA,EAAYtE,GAAO,IAAAuE,EAAA,OAAApC,OAAAqC,EAAA,EAAArC,CAAApC,KAAAuE,IACfC,EAAApC,OAAAsC,EAAA,EAAAtC,CAAApC,KAAAoC,OAAAuC,EAAA,EAAAvC,CAAAmC,GAAAK,KAAA5E,KAAMC,KAQV4E,YAAc,SAACC,GACXC,OAAOD,SAAW,IAAMA,GAVTN,EAanBQ,WAAa,SAAAC,GACTT,EAAKU,SAAS,CAACC,SAAUF,EAAEG,iBAdZZ,EAiBnBa,gBAAkB,WACdb,EAAKU,SAAS,CAACC,SAAU,QAhBzBX,EAAKc,MAAQ,CACTC,aAAa,EACbC,eAAe,EACfL,SAAU,MALCX,wEAqBV,IAyBDiB,EAzBCC,EAAA1F,KACEE,EAAWF,KAAKC,MAAhBC,QACAiF,EAAYnF,KAAKsF,MAAjBH,SAIDQ,EAAsBC,YAAe,CAACnH,IAAqCC,IAC7EC,IAAqCC,IAAoCC,IACzEC,IAAoCC,IAAiCC,IACrEC,IAAiCC,IAAmCC,IAAqCC,KAAoC,MAE3IyG,EAAmBD,YAAe,CAACzH,IAAyBE,IAA0BE,IAA2BgB,KAAwB,MAEzIuG,EAA0BF,YAAe,CAAC1H,MAE1C6H,EAAuBH,YAAe,CAACvG,IAA6BC,KAA0B,MAE9F0G,EAAqBJ,YAAe,CAACpG,MAErCyG,EAAuBL,YAAe,CAAClG,IAAgBC,KAAwB,MAC/EuG,EAAoBC,aAAaC,QAAQC,KAC3CC,EAAc,IACM,QAArBJ,IACCI,EAAcC,IAAOL,GAAmBM,OAAO,wBAGxD,IAAIC,EAAgCN,aAAaC,QAAQM,KACrDD,IAEHhB,EADsBkB,KAAKC,MAAMC,YAAQJ,IACFK,cAGnC,OACIjD,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQvE,SAAS,SAAS/B,UAAWP,EAAQ8G,QACzCnD,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAStG,UAAWP,EAAQe,SACxB4C,EAAAtD,EAAAC,cAACyG,EAAA,EAAD,CAAMC,QAAM,KACVzB,GAAwB5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UACrCC,QAAS,kBAAM1B,EAAKb,YAAY,eADV,aAGzBiB,IAA4BL,GAC7B5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UACXC,QAAS,kBAAM1B,EAAKb,YAAY,gBADpC,cAECgB,IAAqBJ,GACtB5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWC,QAAS,kBAAM1B,EAAKb,YAAY,WAA1D,SACCc,IAAwBF,GACzB5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWC,QAAS,kBAAM1B,EAAKb,YAAY,oBAA1D,kBAECkB,IAAyBN,GAC1B5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWC,QAAS,kBAAM1B,EAAKb,YAAY,YAA1D,UACCmB,IAAuBP,GACpB5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWC,QAAS,kBAAM1B,EAAKb,YAAY,UAA1D,QAEHoB,IAAyBR,GACtB5B,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWC,QAAS,kBAAM1B,EAAKb,YAAY,wBAA1D,aAGJhB,EAAAtD,EAAAC,cAAA,OAAKC,UAAWP,EAAQmH,UACpBxD,EAAAtD,EAAAC,cAAA,WAAKqD,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKgF,WAC7DvE,UAAWP,EAAQoH,UAAWnB,aAAaC,QAAQ,aACnDvC,EAAAtD,EAAAC,cAAA,KAAGC,UAAWP,EAAQqH,SAAtB,eAA4CjB,GAE5CzC,EAAAtD,EAAAC,cAAA,KAAGC,UAAWP,EAAQqH,SAAtB,iCAA8DpB,aAAaC,QAAQoB,OAEvF3D,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAMU,SAAUtC,EAAUjB,KAAMwD,QAAQvC,GAAWhB,QAASnE,KAAKqF,iBAC7DxB,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAUK,QAAS,kBAAM1B,EAAKb,YAAY,qBAA1C,oBAEJhB,EAAAtD,EAAAC,cAACuG,EAAA,EAAD,CAAQI,MAAO,UAAWQ,UA9D3B,SAAA1H,GAAK,OAAI4D,EAAAtD,EAAAC,cAACoH,EAAA,EAADxF,OAAAyF,OAAA,CAASC,GAAI,WAAe7H,EAA5B,CAAmC8H,gBAAiB7H,EAAQ8H,WA8DvBvH,UAAWP,EAAQ+H,QAAhE,oBAzFHC,IAAM5D,WAiHZpC,yBAfA,SAAAC,GAAK,MAAK,CACrBkF,SAAU,CAACc,WAAY,OAAQC,QAAS,OAAQC,WAAY,UAC5DJ,OAAQ,CAACE,WAAY,SACrBG,SAAU,CAACnB,MAAO,SAClBH,OAAQ,CAACuB,OAAQpG,EAAMoG,OAAOC,OAAS,GACvCvH,QAAS,CAACwH,MAAO,QACjBT,OAAQ,CAACU,gBAAiBvG,EAAMwG,QAAQC,OAAOC,UAC/CvB,SAAU,CAACwB,UAAW,QACtBvB,QAAQ,CAACwB,OAAQ,WAAYC,SAAS,UAO3B9G,CAAmBqC,2LC3H5B0E,cACL,SAAAA,EAAYhJ,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAA+G,EAAA,EAAA/G,CAAApC,KAAAiJ,IAC3BzE,EAAApC,OAAAgH,EAAA,EAAAhH,CAAApC,KAAAoC,OAAAiH,EAAA,EAAAjH,CAAA6G,GAAArE,KAAA5E,KAAMC,EAAOiJ,KAWdI,kBAZ4BlH,OAAAmH,EAAA,EAAAnH,CAAAoH,EAAAjJ,EAAAkJ,KAYR,SAAAC,IAAA,OAAAF,EAAAjJ,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACnBtF,EAAKuF,mBACLvF,EAAKwF,kCACLxF,EAAKyF,qBAAuBC,YAAY,WACvC1F,EAAK2F,uBACL3F,EAAKuF,oBACH,KAEHvF,EAAK4F,wBAA0BF,YAAY,WAC1C1F,EAAKwF,mCACH,KAEHxF,EAAK6F,iBACL7F,EAAK8F,uBAAyBJ,YAAY,WACzC1F,EAAK+F,4BACH,KAEHxF,OAAOyF,iBAAiB,eAAgBhG,EAAKiG,qCAjB1B,wBAAAb,EAAAc,SAAAhB,EAAA1J,SAZQwE,EAgC5BmG,qBAhC4BvI,OAAAmH,EAAA,EAAAnH,CAAAoH,EAAAjJ,EAAAkJ,KAgCL,SAAAmB,IAAA,OAAApB,EAAAjJ,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACtBgB,cAActG,EAAKyF,sBACnBa,cAActG,EAAK4F,yBACnBU,cAActG,EAAK8F,wBAEnBvF,OAAOgG,oBAAoB,eAAgBvG,EAAKiG,qCAL1B,wBAAAI,EAAAH,SAAAE,EAAA5K,SAhCKwE,EAwC5BiG,oCAAsC,WACrC,IAAIO,EAAMzE,MAASC,SACnBL,aAAa8E,QAAQC,IAAkCF,IA1C5BxG,EA6C5B6F,eAAiB,WAEhB,IADgBlE,aAAaC,QAAQ+E,KACrC,CAEA,IAAIH,EAAMzE,MAASC,SAEnB,OADAL,aAAa8E,QAAQE,IAA0BH,GACxCA,IAnDoBxG,EAsD5B2F,qBAAuB,WACtB,IAAIiB,EAAqB7E,MAAS8E,SAAS,GAAI,WAC3CC,EAAiBnF,aAAaC,QAAQmF,KACtChF,IAAO+E,GAAgBE,SAASJ,IACnC5G,EAAKiH,sBA1DqBjH,EA8D5B+F,yBAA2B,WAC1B,IAAImB,EAAsBnF,MAAS8E,SAAS,IAAK,WAC7CM,EAAYxF,aAAaC,QAAQ+E,KAChCQ,IAAWA,EAAYnH,EAAK6F,kBAC7B9D,IAAOoF,GAAWH,SAASE,IAC9BlH,EAAKoH,0BAnEqBpH,EAuE5BuF,iBAAmB,WAClB,IAAI8B,EAAoBtF,MAAS8E,SAAS,GAAI,WAC1CC,EAAiBnF,aAAaC,QAAQmF,KAEtChF,IAAO+E,GAAgBE,SAASK,KACnC9G,OAAOD,SAAW,YA5EQN,EAgF5BwF,gCAAkC,WACjC,IAAM8B,EAAOC,IAAYnF,MAAM7B,OAAOD,SAASkH,QAAQC,GACnDC,EAAmB/F,aAAaC,QAAQ8E,KAE5C,GAAKgB,EAAL,CAEA,IAAIC,EAAwB5F,MAAS8E,SAAS,GAAI,WAC9C9E,IAAO2F,GAAkBV,SAASW,IACrChG,aAAa8E,QAAQC,IAAkC,IACvD/E,aAAa8E,QAAQa,EAAM,IAC3B/G,OAAOD,SAAW,YAElBqB,aAAa8E,QAAQC,IAAkC,IACvD/E,aAAa8E,QAAQa,EAAM,OA7FDtH,EAiG5BiH,mBAAqB,WACpBjH,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,mFAlGpD9H,EAqG5BoH,uBAAyB,WACxBpH,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,sGAzGS9H,EA6G5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KA5G9B5H,EAAKc,MAAQ,CACZ8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WAElB7H,EAAKyF,qBAAuB,KAC5BzF,EAAK4F,wBAA0B,KAC/B5F,EAAK8F,uBAAyB,KATH9F,wEAkH3B,OACCgI,EAAAjM,EAAAC,cAACiM,EAAA,EAAD,CAAM7K,MAAI,GACT4K,EAAAjM,EAAAC,cAACkM,EAAA,EAAD,CAAgBxI,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BArHzG/H,aAgIjBpC,yBALA,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAAC,EAAA,EAAAD,CAAA,GAAMD,EAAMhB,WACtBwL,OAAQ,CAAElE,MAAO,WAGHvG,CAAmB+G,kECxIlCrL,EAAAC,QAAiBC,EAAAC,EAAuB,omGCWlC6O,0CACF,SAAAA,qBAAY3M,MAAOiJ,SAAS,IAAA1E,MAAA,OAAApC,OAAA+G,+KAAA,EAAA/G,CAAApC,KAAA4M,sBACxBpI,MAAApC,OAAAgH,0LAAA,EAAAhH,CAAApC,KAAAoC,OAAAiH,+KAAA,EAAAjH,CAAAwK,sBAAAhI,KAAA5E,KAAMC,MAAOiJ,UADW1E,MAwB5BqI,cAAgB,SAACC,EAAG7H,GAChBT,MAAKU,SAAL9C,OAAA2K,+KAAA,EAAA3K,CAAA,GAAgB0K,EAAI7H,EAAE+H,OAAOC,SAzBLzI,MA4B5B0I,UA5B4B9K,OAAA+K,iLAAA,EAAA/K,CAAAgL,wKAAA7M,EAAAkJ,KA4BhB,SAAAC,IAAA,IAAA2D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAN,wKAAA7M,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAAAuD,EACmD7I,MAAKc,MAAzDgI,EADCD,EACDC,gBAAiBC,EADhBF,EACgBE,YAAaC,EAD7BH,EAC6BG,oBACjChJ,MAAKmJ,UAAUL,EAAiBC,EAAaC,GAFzC,CAAA5D,EAAAE,KAAA,eAGE2D,EAAO,CAACG,SAAUzH,aAAaC,QAAQ,YAAakH,kBAAiBC,eAHvE3D,EAAAE,KAAA,EAIatF,MAAKvE,MAAM4N,eAAeJ,GAJvC,QAIEC,EAJF9D,EAAAkE,MAKEC,SAEFvJ,MAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,qBAChFnG,aAAa6H,WAAWtH,6DACxB,IAAIuH,QAAQ,WACRC,WAAW,WACP1J,MAAKvE,MAAMkO,QAAQC,KAAK,eACzB,QAKP5J,MAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAjBjF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SA5BgBwE,MAkD5BmJ,UAAY,SAACL,gBAAiBC,YAAaC,oBACvC,IAAMa,SAAW,CAAC,kBAAmB,cAAe,sBAChDX,IAAK,EAST,OARAW,SAASC,QAAQ,SAAAxB,GACG,KAAZyB,KAAKzB,IACLtI,MAAKU,SAAL9C,OAAA2K,+KAAA,EAAA3K,CAAA,GAAgB0K,EAAI,QAAU,2BAC9BY,IAAK,GAELlJ,MAAKU,SAAL9C,OAAA2K,+KAAA,EAAA3K,CAAA,GAAgB0K,EAAI,QAAU,OAGjCY,GAEDH,YAAYiB,OAAS,IACrBhK,MAAKU,SAAS,CAACuJ,iBAAkB,8CACjCf,IAAK,EACEA,IAEN,SAASgB,KAAKnB,aAKd,SAASmB,KAAKnB,aAKd,SAASmB,KAAKnB,aAKd,kBAAkBmB,KAAKnB,cAKxB/I,MAAKU,SAAS,CAACuJ,iBAAkB,KAGjClB,cAAgBC,oBAChBhJ,MAAKU,SAAS,CAACyJ,wBAAyB,2BACxCjB,IAAK,EACEA,KAEPlJ,MAAKU,SAAS,CAACyJ,wBAAyB,KAGrCjB,MAfHlJ,MAAKU,SAAS,CAACuJ,iBAAkB,wDACjCf,IAAK,EACEA,KAPPlJ,MAAKU,SAAS,CAACuJ,iBAAkB,mEACjCf,IAAK,EACEA,KAPPlJ,MAAKU,SAAS,CAACuJ,iBAAkB,mEACjCf,IAAK,EACEA,KAPPlJ,MAAKU,SAAS,CAACuJ,iBAAkB,qDACjCf,IAAK,EACEA,IAVKA,IA7DQlJ,MAsG5B+H,cAAgB,WACZ/H,MAAKU,SAAS,CAACkH,cAAc,KArG7B5H,MAAKc,MAAQ,CACTsJ,eAAe,EACftB,gBAAiB,GACjBuB,qBAAsB,GACtBtB,YAAa,GACbkB,iBAAkB,GAClBjB,mBAAoB,GACpBmB,wBAAyB,GACzBvC,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WAZG7H,udAiBxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,uDAApB,oBAE2C3D,KAAKC,MAAzC+O,SAAWvJ,sBAEQzF,KAAKkF,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,iEAqFnG,IAAA5G,EAAA1F,KAAAD,EACkDC,KAAKC,MAArDC,EADFH,EACEG,QAAoB+O,EADtBlP,EACWiP,SAAWC,wBADtBC,EAEuHlP,KAAKsF,MAA1HgI,EAFF4B,EAEE5B,gBAAiBuB,EAFnBK,EAEmBL,qBAAsBtB,EAFzC2B,EAEyC3B,YAAakB,EAFtDS,EAEsDT,iBAAkBjB,EAFxE0B,EAEwE1B,mBAAoBmB,EAF5FO,EAE4FP,wBAC7FlI,EAAgCN,aAAaC,QAAQM,6DACrDyI,EAAe,kBACf1I,IACsBE,KAAKC,MAAMC,2DAAQJ,IACtB2I,mBACfD,EAAe,oCAGvB,OACI3C,2CAAAjM,EAAAC,cAAA,WACIgM,2CAAAjM,EAAAC,cAAC6O,4DAAA,EAAD,MACA7C,2CAAAjM,EAAAC,cAAC8O,oDAAA,EAAD,CAAQnB,QAASnO,KAAKC,MAAMkO,UAE5B3B,2CAAAjM,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBqL,2CAAAjM,EAAAC,cAAC+O,wDAAA,EAAD,CAAe1O,MAAOsO,EAAchP,UAAW8O,GAC3CzC,2CAAAjM,EAAAC,cAAA,2BAAkBgM,2CAAAjM,EAAAC,cAAA,WAAlB,kEAGAgM,2CAAAjM,EAAAC,cAAA,YACIgM,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAMrO,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpCjD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAMrO,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CmE,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,EAAC8N,GAAI,GAAf,oBAGAlD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,GACN4K,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAWvD,GAAI,kBAAmBrL,QAAS,WACvC+O,KAAM,WACN1C,MAAOK,EACPsC,MAAO,mBACPC,QAAShB,EACTiB,WAAYjB,EACZkB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,kBAAmB5H,IACrD+K,WAAW,MAIvBxD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAMrO,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CmE,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,EAAC8N,GAAI,GAAf,gBAGAlD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,GACN4K,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAWvD,GAAI,cAAerL,QAAS,WAAYgP,MAAO,eACtDD,KAAM,WACN1C,MAAOM,EACPsC,QAASpB,EACTqB,WAAYrB,EACZsB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,cAAe5H,IACjD+K,WAAW,MAIvBxD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAMrO,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CmE,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,EAAC8N,GAAI,GAAf,wBAGAlD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,GACN4K,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAWvD,GAAI,qBAAsBrL,QAAS,WAC1C+O,KAAM,WACN1C,MAAOO,EACPqC,QAASlB,EACTmB,WAAYnB,EACZoB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,qBAAsB5H,IACxD2K,MAAO,uBAAwBI,WAAW,MAItDxD,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAM5N,MAAI,GACN4K,2CAAAjM,EAAAC,cAACgP,gDAAA,EAAD,CAAQ5O,QAAS,YAAauG,MAAO,UACjCC,QAASpH,KAAKkN,WADlB,eAOpBV,2CAAAjM,EAAAC,cAACyP,yDAAA,EAAD,CAAgB/L,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,6CAzL1C/H,8CA+L7B4L,OAAS,SAAA/N,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,YAGfgP,gBAAkB,SAAA7K,GAGpB,MAAO,CAAC0J,SAFW1J,EAAZ0J,WAKLoB,mBAAqB,SAAAC,GACvB,MAAO,CACHxC,eAAgB,SAAAJ,GAAI,OAAI4C,EAASxC,wDAAeJ,OAIzC6C,yEAAQH,gBAAiBC,mBAAzBE,CAA6CpO,mEAAWgO,OAAXhO,CAAmB0K,4CC1N/EhP,EAAAC,QAAiBC,EAAAC,EAAuB,iECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,2ECAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,kFCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,6DCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,wDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,wDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,wDCAxCH,EAAAC,QAAiBC,EAAAC,EAAuB,ggCCkBpCoF,EADWN,cACQM,QAEVoN,EAAuB,WACnC,MAAO,CAAEC,QAAS,CAAEC,cAAe,UAAYtK,aAAaC,QAAQ,kBAGxDsK,EAAmB,SAAAC,GAC/B,OAAU,IAANA,EAAmB,OACb,IAANA,EAAoB,KACjB,MAsCKC,EAAgB,SAAAC,GAE5B,IAAIC,EAC8CA,EAA9CD,EAAQE,MAAM,KAAK,GAAGC,QAAQ,WAAa,EAAgBC,KAAKJ,EAAQE,MAAM,KAAK,IACrEG,SAASL,EAAQE,MAAM,KAAK,IAU9C,IAPA,IAAII,EAAaN,EACfE,MAAM,KAAK,GACXA,MAAM,KAAK,GACXA,MAAM,KAAK,GAGTK,EAAK,IAAIC,WAAWP,EAAWtC,QAC1B7M,EAAI,EAAGA,EAAImP,EAAWtC,OAAQ7M,IACtCyP,EAAGzP,GAAKmP,EAAWQ,WAAW3P,GAG/B,OAAO,IAAI4P,KAAK,CAACH,GAAK,CAAEzB,KAAMwB,KAGlBK,EAAwB,SAAAC,GACpC,OAAOA,EAAalL,IAAOkL,GAAYjL,OAAO,cAAgB,MAGlDkL,EAAsB,SAAAD,GAClC,OAAOA,EAAalL,IAAOkL,GAAYjL,OAAO,cAAgB,MAElDmL,EAA0B,SAAAF,GACtC,OAAOA,EAAalL,IAAOkL,GAAYjL,OAAO,oBAAsB,MAGxDoL,EAA8B,SAAAC,GAiB1C,IAfA,IAAMC,EAAgB,CACrB,mBACA,oBACA,mBACA,gBACA,eACA,gBACA,iBACA,cACA,gBACA,oBACA,uBAGKpE,EAAK,GACF/L,EAAI,EAAGA,EAAIkQ,EAAOrD,OAAQ7M,IAClC+L,EAAGoE,EAAcnQ,IAAoB,MAAdkQ,EAAOlQ,GAAa,MAAQ,KAEpD,OAAO+L,GAGKqE,EAA8B,SAAAC,GAE1C,IAaItE,EAAK,GAKT,MAlBsB,CACrB,mBACA,oBACA,mBACA,gBACA,eACA,gBACA,iBACA,cACA,gBACA,oBACA,uBAGaY,QAAQ,SAAAxB,GACN,QAAXkF,EAAIlF,KAAcY,GAAM,KACb,OAAXsE,EAAIlF,KAAaY,GAAM,OAErBA,GASKuE,EAAyB,SAACC,EAAUC,GAChD,IAAMzE,EAAKyE,EAAWC,KAAK,SAAAC,GAAC,OAAIA,EAAEH,SAASI,gBAAkBJ,EAASI,gBACtE,GAAI5E,EAAI,OAAOA,EAAG6E,mBAGNC,EAA8B,SAACN,EAAUC,GACrD,IAAMzE,EAAKyE,EAAWC,KAAK,SAAAC,GAAC,OAAIA,EAAEH,WAAaA,IAC/C,GAAIxE,EAAI,OAAOA,EAAG+E,iBAYN7M,EAAiB,SAAC+K,GAAyB,IAAtB+B,EAAsBC,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAV,MAC5B,kBAANhC,IAAgBA,EAAI,CAACA,IAChC,IAAMiC,EAAoBzM,aAAaC,QAAQyM,KAC/C,IAAID,EAAmB,OAAO,EAC9B,IAAME,EAAuBjM,EAAQ+L,GAE5BG,EAAcpM,KAAKC,MAAMkM,GAClC,IAAKC,EAAa,OAAO,EACzB,GAAkB,QAAdL,EAAqB,CACxB,IAAIhF,GAAK,EADesF,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAExB,QAAA6R,EAAAC,EAAgBzC,EAAhB0C,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAmB,KAARjV,EAAQoV,EAAAlG,MACb8F,EAAYS,SAASzV,KAAI2P,GAAK,IAHZ,MAAA+F,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAKxB,OAAOxF,EAGR,GAAkB,OAAdgF,EAAoB,CACvB,IADuBiB,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAEvB,QAAAwS,EAAAC,EAAgBpD,EAAhB0C,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAAmB,KAAR5V,EAAQ+V,EAAA7G,MAClB,GAAI8F,EAAYS,SAASzV,GAAI,OAAO,GAHd,MAAA0V,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,GAKvB,OAJS,IASEG,EAAwB,kBAAMpO,EAAe,CAACvH,OADhBuH,EAAe,CAACtH,OAE9C2V,EAAyB,kBAAMrO,EAAe,CAACrH,OAA+BqH,EAAe,CAACpH,OAC9F0V,EAAuB,kBAAMtO,EAAe,CAACzH,OAA6ByH,EAAe,CAACxH,OAC1F+V,EAAyB,kBAAMvO,EAAe,CAACrG,OAC/C6U,EAA+B,kBAAMxO,EAAe,CAACpG,OAErD6U,EAAgB,SAAAC,GAE5B,IADA,IAAI5G,EAAK,GACA/L,EAAI,EAAGA,EAAI2S,EAAU9F,OAAQ7M,IACjCA,EAAI,EACP+L,GAAM4G,EAAU3S,GAGbA,EAAI2S,EAAU9F,OAAS,EAC1Bd,GAAM,IAENA,GAAM4G,EAAU3S,GAGlB,OAAO+L,GAGK6G,EAAqB,SAAAC,GAEjC,IADA,IAAIxJ,EAAMzE,MACD5E,EAAI,EAAGA,EAAI6S,EAAgBhG,OAAQ7M,IAC3C,GAAIqJ,EAAIyJ,QAAQlO,IAAOiO,EAAgB7S,GAAG+S,aAAe1J,EAAIQ,SAASjF,IAAOiO,EAAgB7S,GAAGgT,UAC/F,OAAOH,EAAgB7S,IAKbiT,EAAO,eAAAC,EAAAzS,OAAA0S,EAAA,EAAA1S,CAAA2S,EAAAxU,EAAAkJ,KAAG,SAAAC,EAAOiG,EAAMqF,EAAKvH,EAAM/M,GAAxB,IAAAgN,EAAAuH,EAAA,OAAAF,EAAAxU,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACT,QAAT6F,EADkB,CAAA/F,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,EAEJoL,IAAMC,IAAIhS,EAAU6R,EAAKvH,GAAM2H,MAAM,SAAAnQ,GACrD,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAPO,WAEfqJ,EAFe9D,EAAAkE,MAebL,KAfa,CAAA7D,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,SAgBb,CAAExH,SAAS,EAAO1J,QAAS,wBAhBd,WAkBjBqJ,EAAGD,KAAKM,QAlBS,CAAAnE,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAmBb,CAAExH,SAAS,EAAM1J,QAAS,GAAIoJ,KAAMC,EAAGD,OAnB1B,eAAA7D,EAAA2L,OAAA,SAqBb,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArB5B,WAwBT,SAATsL,EAxBkB,CAAA/F,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAyBJoL,IAAMM,KAAKrS,EAAU6R,EAAKvH,EAAM/M,GAAQ0U,MAAM,SAAAnQ,GAC9D,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aA9BO,YAyBfqJ,EAzBe9D,EAAAkE,MAsCbL,KAtCa,CAAA7D,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAuCb,CAAExH,SAAS,EAAO1J,QAAS,wBAvCd,YAyCjBqJ,EAAGD,KAAKM,QAzCS,CAAAnE,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SA0Cb,CAAExH,SAAS,EAAM1J,QAAS,GAAIoJ,KAAMC,EAAGD,OA1C1B,eAAA7D,EAAA2L,OAAA,SA4Cb,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA5C5B,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAH,gBAAAyV,EAAAC,EAAAC,EAAAC,GAAA,OAAAf,EAAAgB,MAAA7V,KAAA2S,YAAA,GAiDPmD,EAAa,SAAA9D,GACzB,OAAO5P,OAAO2T,KAAK/D,GAAKxD,OAAS,GAIrBwH,EAAY,SAAZA,EAAaC,EAASC,GAClC,IAAMC,EAAO/T,OAAAgU,EAAA,EAAAhU,CAAA,GAAQ6T,GACrB,IAAK,IAAInJ,KAAKoJ,EACTA,EAAOG,eAAevJ,KACA,kBAAdoJ,EAAOpJ,GACjBqJ,EAAQrJ,GAAKoJ,EAAOpJ,GAEhBwJ,MAAMC,QAAQL,EAAOpJ,IACxBqJ,EAAQrJ,GAAR1K,OAAAoU,EAAA,EAAApU,CAAiB8T,EAAOpJ,IAExBqJ,EAAQrJ,GAAR1K,OAAAgU,EAAA,EAAAhU,CAAA,GAAkB4T,EAAUC,EAAQnJ,GAAIoJ,EAAOpJ,MAKnD,OAAOqJ,GAMKM,EAAyB,SAAAzE,GACrC,OAAQA,EAAI0E,cACX,IAAK,cACJ,GAA0B,OAAtB1E,EAAI2E,eAA4B3E,EAAI4E,SACvC,SAAA7H,OAAUiD,EAAIpE,SAAd,uBAED,MAED,IAAK,YACJ,GAA0B,UAAtBoE,EAAI2E,eAA8C,SAAjB3E,EAAI4E,SACxC,SAAA7H,OAAUiD,EAAI6E,WAAd,MAAA9H,OAA6BiD,EAAI8E,kBAAjC,QAAA/H,OAAyDiD,EAAIpE,SAA7D,qCAED,MAED,IAAK,WACJ,GAA0B,UAAtBoE,EAAI2E,eAA8C,SAAjB3E,EAAI4E,SACxC,SAAA7H,OAAUiD,EAAIpE,SAAd,uBAED,GAA0B,SAAtBoE,EAAI2E,eAA6C,UAAjB3E,EAAI4E,SACvC,SAAA7H,OAAUiD,EAAIpE,SAAd,yBAED,MAED,IAAK,WACJ,GAA0B,UAAtBoE,EAAI2E,eAA8C,SAAjB3E,EAAI4E,SACxC,SAAA7H,OAAUiD,EAAIpE,SAAd,uBAED,MAED,IAAK,aACJ,GAA0B,UAAtBoE,EAAI2E,eAA8C,SAAjB3E,EAAI4E,SACxC,SAAA7H,OAAUiD,EAAIpE,SAAd,mCAED,MAED,IAAK,YACJ,GAA0B,UAAtBoE,EAAI2E,eAA8C,SAAjB3E,EAAI4E,SACxC,SAAA7H,OAAUiD,EAAIpE,SAAd,sBAED,MAED,IAAK,QACJ,GAA0B,OAAtBoE,EAAI2E,eAA4B3E,EAAI4E,SACvC,SAAA7H,OAAUiD,EAAIpE,SAAd,4BAED,MAED,IAAK,YACJ,GAA0B,OAAtBoE,EAAI2E,eAA4B3E,EAAI4E,SACvC,SAAA7H,OAAUiD,EAAIpE,SAAd,iCAED,MAED,IAAK,aACJ,GAA0B,OAAtBoE,EAAI2E,eAA4B3E,EAAI4E,SACvC,SAAA7H,OAAUiD,EAAIpE,SAAd,kCAED,MAED,QACC,OAAIoE,EAAI+E,qBACP,GAAAhI,OAAUiD,EAAI6E,WAAd,MAAA9H,OAA6BiD,EAAI8E,kBAAjC,QAAA/H,OAAyDiD,EAAI0E,aAA7D,iBAAA3H,OAAyFiD,EAAI2E,cAA7F,QAAA5H,OAAiHiD,EAAI4E,YAO5GI,EAAU,SAAAnF,GACtB,IACMoF,EAAYC,IAAMC,MAAMC,KAAKC,QAAQxF,GAErCyF,EADO,IAAIJ,IAAMK,gBAAgBC,IAFzB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGnGR,QAAQC,GACtC,OAAOC,IAAMC,MAAMM,IAAIC,UAAUJ,IAGrBzQ,EAAU,SAAA8Q,GACtB,IACMC,EAAUV,IAAMC,MAAMM,IAAIJ,QAAQM,GAElCE,EADO,IAAIX,IAAMK,gBAAgBC,IAFzB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGnG3Q,QAAQ+Q,GACtC,OAAOV,IAAMC,MAAMC,KAAKM,UAAUG,IAGtBC,EAA4B,SAAAC,GACxC,OAAIA,GAAUA,EAAOvJ,QAAU,GACzBuJ,EAAOC,WAAW,QAChBD,EAAOE,OAAO,EAAG,IADe,GAIjCF,GAGKG,EAAkB,SAAAH,GAC9B,OAAIA,GAAUA,EAAOvJ,QAAU,GACzBuJ,EAAOC,WAAW,QAChBD,EAAOE,OAAO,GAAI,GADc,GAIjCF,oCC/YRja,EAAAE,EAAAC,EAAA,sBAAAsN,IAAAzN,EAAAE,EAAAC,EAAA,sBAAAiN,IAAApN,EAAAE,EAAAC,EAAA,sBAAAkN,IAAArN,EAAAE,EAAAC,EAAA,sBAAAka,IAAAra,EAAAE,EAAAC,EAAA,sBAAAma,IAAAta,EAAAE,EAAAC,EAAA,sBAAA4U,IAAA/U,EAAAE,EAAAC,EAAA,sBAAAyI,IAAA5I,EAAAE,EAAAC,EAAA,sBAAAoI,IAAAvI,EAAAE,EAAAC,EAAA,sBAAAuJ,IAAO,IAAM+D,EAAiC,iBACjCL,EAAmC,mBACnCC,EAA2B,YAC3BgN,EAAW,UACXC,EAAU,SAEVvF,EAAc,OACdnM,EAAyB,QACzBL,EAAsB,gBACtBmB,EAAsB,gbCF/BrE,EADWN,cACQM,QASVkV,EAAQ,SAACC,EAAwBC,GAAzB,sBAAA1D,EAAAzS,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAsC,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA8K,EAAAC,EAAAC,EAAA,OAAAlP,EAAAjJ,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC1DuG,EAASsI,KADiD/O,EAAAE,KAAA,EAGzCoL,IACfM,KAAKrS,EAAU,iBAAkB,CACjCmV,yBACAC,aAEAnD,MAAM,SAAAnQ,GAAC,OAAIoL,EAASuI,EAAY3T,MARwB,YAGpDyI,EAHoD9D,EAAAkE,MASnDL,KAAKM,QAT8C,CAAAnE,EAAAE,KAAA,gBAUzD3D,aAAa8E,QAAQ,cAAeyC,EAAGD,KAAKoL,OAAOC,aACnD3S,aAAa8E,QAAQ,WAAYqN,GAE3BE,EAAa,CAAEhI,QAAS,CAAEC,cAAe,UAAY/C,EAAGD,KAAKoL,OAAOC,cAbjBlP,EAAAE,KAAA,GAcvCoL,IAAMC,IAAIhS,EAAU,0BAA2BqV,GAAYpD,MAAM,SAAAnQ,GAClF,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAnB2C,aAcnDoU,EAdmD7O,EAAAkE,MA4BjDL,KAAKM,QA5B4C,CAAAnE,EAAAE,KAAA,gBA6BxD3D,aAAa8E,QAAQmN,IAAS1K,EAAGD,KAAKoL,OAAOE,QAC7C5S,aAAa8E,QAAQ4H,IAAamE,YAAQrQ,KAAKqS,UAAUP,EAAIhL,KAAKoL,OAAO9F,eACzE5M,aAAa8E,QAAQkN,IAAUM,EAAIhL,KAAKoL,OAAOI,KAAO,IACtD9S,aAAa8E,QAAQ5E,IAAqBoS,EAAIhL,KAAKoL,OAAOK,eAC1D/S,aAAa8E,QAAQzD,IAAqBiR,EAAIhL,KAAKoL,OAAOM,qBAjCF/W,OAAAgX,EAAA,EAAAhX,CAAA,CAkCvCiX,OAAQ,CAAEzL,SAAU6K,EAAIhL,KAAKoL,OAAOjL,WAAe4K,EAlCZ,CAkCwBc,QAAS,MAlCjC1P,EAAAE,KAAA,GAoCtCoL,IAAMM,KACvBrS,EAAU,gCACV,CAAEyK,SAAU6K,EAAIhL,KAAKoL,OAAOU,cAAgBf,GAC3CpD,MAAM,SAAAnQ,GACP,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aA5C0C,aAoClDqU,EApCkD9O,EAAAkE,MAqDhDL,KAAKM,QArD2C,CAAAnE,EAAAE,KAAA,gBAsDvDuG,EAAS,CAAEV,KAzDwB,iCAyDcjC,GAAIgL,IAErDrI,EAASmJ,EAAW9L,EAAI4K,IAxD+B1O,EAAA2L,OAAA,SAyDhD,CAAExH,SAAS,EAAM1J,QAAS,KAzDsB,eA6D1DgM,EAASuI,EAAYlL,EAAGD,KAAKoC,MAAMxL,UA7DuBuF,EAAA2L,OAAA,SA8DnD,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA9DU,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAtC,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAiEfgG,EAAc,iBAAO,CAC1BhJ,KAzEoB,iBA4Ef6J,EAAa,SAAC9L,EAAI4K,GAAL,MAAiC,CACnD3I,KA5EmB,cA6EnBjC,KACA4K,2BAGKM,EAAc,SAAAvU,GAAO,MAAK,CAC/BsL,KAjFoB,eAkFpBtL,YAGYoV,EAAiB,SAAC3M,EAAG6D,GAAJ,MAAW,CACxChB,KArFwB,mBAsFxB7C,IACA6D,MAGY+I,EAA+B,SAAAC,GAAkB,MAAK,CAClEhK,KAzFuC,kCA0FvCgK,uBAGYC,EAAiB,SAAAnM,GAAI,sBAAAoM,EAAAzX,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAlE,EAAAjJ,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACrCuG,EAASyJ,KAD4BjP,EAAAf,KAAA,EAGpBoL,IAAMM,KAAKrS,EAAU,0BAA2BsK,GAAM2H,MAAM,SAAAnQ,GAC5E,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARuB,WAG/BqJ,EAH+B7C,EAAAiD,MAgB7BL,KAhB6B,CAAA5C,EAAAf,KAAA,eAiBpCuG,EAAS0J,KAjB2BlP,EAAA0K,OAAA,SAkB7B,CAAExH,SAAS,EAAO1J,QAAS,wBAlBE,WAoBjCqJ,EAAGD,KAAKM,QApByB,CAAAlD,EAAAf,KAAA,gBAqBpCuG,EAAS2J,EAAuBtM,IArBI7C,EAAA0K,OAAA,SAsB7B,CAAExH,SAAS,EAAM1J,QAAS,KAtBG,eAwBpCgM,EAAS0J,KAxB2BlP,EAAA0K,OAAA,SAyB7B,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBZ,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,IAiC5BmH,EAA2B,iBAAO,CACvCnK,KALkC,+BAQ7BqK,EAAyB,SAAAtM,GAAE,MAAK,CACrCiC,KAR+B,0BAS/BjC,OAGKqM,EAAsB,iBAAO,CAClCpK,KAZ4B,yBAehB9B,EAAiB,SAAAJ,GAAI,sBAAAwM,EAAA7X,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAlE,EAAAjJ,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACrCuG,EAAS+J,KAD4BD,EAAArQ,KAAA,EAGpBoL,IAAMM,KAAKrS,EAAU,0BAA2BsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACpG,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARuB,WAG/BqJ,EAH+ByM,EAAArM,MAgB7BL,KAhB6B,CAAA0M,EAAArQ,KAAA,eAiBpCuG,EAASgK,KAjB2BF,EAAA5E,OAAA,SAkB7B,CAAExH,SAAS,EAAO1J,QAAS,wBAlBE,WAoBjCqJ,EAAGD,KAAKM,QApByB,CAAAoM,EAAArQ,KAAA,gBAqBpCuG,EAASiK,EAAuB5M,IArBIyM,EAAA5E,OAAA,SAsB7B,CAAExH,SAAS,EAAM1J,QAAS,KAtBG,eAwBpCgM,EAASgK,KAxB2BF,EAAA5E,OAAA,SAyB7B,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBZ,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,IAiC5ByH,EAA2B,iBAAO,CACvCzK,KALkC,+BAQ7B2K,EAAyB,SAAA5M,GAAE,MAAK,CACrCiC,KAR+B,0BAS/BjC,OAGK2M,EAAsB,iBAAO,CAClC1K,KAZ4B,yBAehB4K,EAAc,SAAA9M,GAAI,sBAAA+M,EAAApY,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAlE,EAAAjJ,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAClCuG,EAASsK,KADyBD,EAAA5Q,KAAA,EAGjBoL,IAAMM,KAAKrS,EAAU,mBAAoBsK,GAAM2H,MAAM,SAAAnQ,GACrE,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARoB,WAG5BqJ,EAH4BgN,EAAA5M,MAgB1BL,KAhB0B,CAAAiN,EAAA5Q,KAAA,eAiBjCuG,EAASuK,KAjBwBF,EAAAnF,OAAA,SAkB1B,CAAExH,SAAS,EAAO1J,QAAS,wBAlBD,WAoB9BqJ,EAAGD,KAAKM,QApBsB,CAAA2M,EAAA5Q,KAAA,gBAqBjCuG,EAASwK,EAAoBnN,IArBIgN,EAAAnF,OAAA,SAsB1B,CAAExH,SAAS,EAAM1J,QAAS,KAtBA,eAwBjCgM,EAASuK,KAxBwBF,EAAAnF,OAAA,SAyB1B,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBf,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,IAiCzBgI,EAAwB,iBAAO,CACpChL,KALgC,6BAQ3BkL,EAAsB,SAAAnN,GAAE,MAAK,CAClCiC,KAR6B,wBAS7BjC,OAGKkN,EAAmB,iBAAO,CAC/BjL,KAZ0B,uBAedmL,EAAmB,SAAArN,GAAI,sBAAAsN,EAAA3Y,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAAuR,EAAM3K,GAAN,IAAA3C,EAAA,OAAAlE,EAAAjJ,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cACvCuG,EAAS6K,KAD8BD,EAAAnR,KAAA,EAGtBoL,IAAMM,KAAKrS,EAAU,wBAAyBsK,GAAM2H,MAAM,SAAAnQ,GAC1E,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARyB,WAGjCqJ,EAHiCuN,EAAAnN,MAiB/BL,KAjB+B,CAAAwN,EAAAnR,KAAA,eAkBtCuG,EAAS8K,KAlB6BF,EAAA1F,OAAA,SAmB/B,CAAExH,SAAS,EAAO1J,QAAS,wBAnBI,WAsBnCqJ,EAAGD,KAAKM,QAtB2B,CAAAkN,EAAAnR,KAAA,gBAuBtCuG,EAAS+K,KAvB6BH,EAAA1F,OAAA,SAwB/B,CAAExH,SAAS,EAAM1J,QAAS,KAxBK,eA0BtCgM,EAAS8K,KA1B6BF,EAAA1F,OAAA,SA2B/B,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA3BV,yBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SAAJ,gBAAAqb,GAAA,OAAAN,EAAAlF,MAAA7V,KAAA2S,YAAA,IAmC9BuI,EAA6B,iBAAO,CACzCvL,KALsC,mCAQjCyL,EAA2B,iBAAO,CACvCzL,KARmC,gCAW9BwL,EAAwB,iBAAO,CACpCxL,KAXgC,6BA8BpB2L,EAA+B,SAAA7N,GAAI,sBAAA8N,EAAAnZ,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAA+R,EAAMnL,GAAN,IAAA3C,EAAA8K,EAAAC,EAAAgD,EAAA/C,EAAA,OAAAlP,EAAAjJ,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cACnDuG,EAbqD,CACrDV,KALmD,gDAgBA+L,EAAA5R,KAAA,EAGlCoL,IAAMM,KAAKrS,EAAU,oCAAqCsK,GAAM2H,MAAM,SAAAnQ,GACtF,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARqC,WAG7CqJ,EAH6CgO,EAAA5N,MAiB3CL,KAjB2C,CAAAiO,EAAA5R,KAAA,eAkBlDuG,EAtB+C,CAChDV,KAX6C,0CAcM+L,EAAAnG,OAAA,SAmB3C,CAAExH,SAAS,EAAO1J,QAAS,wBAnBgB,WAsB/CqJ,EAAGD,KAAKM,QAtBuC,CAAA2N,EAAA5R,KAAA,gBAuBlD3D,aAAa8E,QAAQ,cAAeyC,EAAGD,KAAKoL,OAAOC,aACnD3S,aAAa8E,QAAQ,WAAYwC,EAAK6K,wBAEhCE,EAAa,CAAEhI,QAAS,CAAEC,cAAe,UAAY/C,EAAGD,KAAKoL,OAAOC,cA1BxB4C,EAAA5R,KAAA,GA2BhCoL,IAAMC,IAAIhS,EAAU,0BAA2BqV,GAAYpD,MAAM,SAAAnQ,GAClF,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAhCoC,aA2B5CoU,EA3B4CiD,EAAA5N,MAyC1CL,KAAKM,QAzCqC,CAAA2N,EAAA5R,KAAA,gBA0CjD3D,aAAa8E,QAAQmN,IAAS1K,EAAGD,KAAKoL,OAAOE,QAE7C5S,aAAa8E,QAAQ4H,IAAamE,YAAQrQ,KAAKqS,UAAUP,EAAIhL,KAAKoL,OAAO9F,eACzE5M,aAAa8E,QAAQkN,IAAUM,EAAIhL,KAAKoL,OAAOI,KAAO,IACtD9S,aAAa8E,QAAQ5E,IAAqBoS,EAAIhL,KAAKoL,OAAOK,eAC1D/S,aAAa8E,QAAQzD,IAAqBiR,EAAIhL,KAAKoL,OAAOM,qBACpD1L,EAAO,CAAEG,SAAU6K,EAAIhL,KAAKoL,OAAOjL,UAhDQ8N,EAAA5R,KAAA,GAiD/BoL,IAAMM,KAAKrS,EAAU,gCAAiCsK,EAAM+K,GAAYpD,MAAM,SAAAnQ,GAC/F,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAtDmC,aAiD3CqU,EAjD2CgD,EAAA5N,MA+DzCL,KAAKM,QA/DoC,CAAA2N,EAAA5R,KAAA,gBAgEhDuG,EAAS,CAAEV,KAvWwB,iCAuWcjC,GAAIgL,IAErDrI,EA1EgD,CACnDV,KARgD,6CAeG+L,EAAAnG,OAAA,SAmEzC,CAAExH,SAAS,EAAM1J,QAAS,KAnEe,eAAAqX,EAAAnG,OAAA,SAsE3C,CAAExH,SAAS,EAAM1J,QAAS,KAtEiB,eAwElDgM,EA5E+C,CAChDV,KAX6C,0CAcM+L,EAAAnG,OAAA,SAyE3C,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzEE,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAJ,gBAAA2b,GAAA,OAAAJ,EAAA1F,MAAA7V,KAAA2S,YAAA,IA6EnCiJ,EAA0B,SAAAnO,GAAI,sBAAAoO,EAAAzZ,OAAA0S,EAAA,EAAA1S,CAAAoH,EAAAjJ,EAAAkJ,KAAI,SAAAqS,EAAMzL,GAAN,IAAA3C,EAAA8K,EAAAC,EAAAsD,EAAArD,EAAA,OAAAlP,EAAAjJ,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAC9CuG,EAAS4L,KADqCD,EAAAlS,KAAA,EAG7BoL,IAAMM,KAAKrS,EAAU,+BAAgCsK,GAAM2H,MAAM,SAAAnQ,GACjF,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARgC,WAGxCqJ,EAHwCsO,EAAAlO,MAgBtCL,KAhBsC,CAAAuO,EAAAlS,KAAA,eAiB7CuG,EAAS6L,KAjBoCF,EAAAzG,OAAA,SAkBtC,CAAExH,SAAS,EAAO1J,QAAS,wBAlBW,WAoB1CqJ,EAAGD,KAAKM,QApBkC,CAAAiO,EAAAlS,KAAA,gBAqB7C3D,aAAa8E,QAAQ,cAAeyC,EAAGD,KAAKoL,OAAOC,aACnD3S,aAAa8E,QAAQ,WAAYwC,EAAK6K,wBAEhCE,EAAa,CAAEhI,QAAS,CAAEC,cAAe,UAAY/C,EAAGD,KAAKoL,OAAOC,cAxB7BkD,EAAAlS,KAAA,GAyB3BoL,IAAMC,IAAIhS,EAAU,0BAA2BqV,GAAYpD,MAAM,SAAAnQ,GAClF,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aA9B+B,aAyBvCoU,EAzBuCuD,EAAAlO,MAuCrCL,KAAKM,QAvCgC,CAAAiO,EAAAlS,KAAA,gBAwC5C3D,aAAa8E,QAAQmN,IAAS1K,EAAGD,KAAKoL,OAAOE,QAE7C5S,aAAa8E,QAAQ4H,IAAamE,YAAQrQ,KAAKqS,UAAUP,EAAIhL,KAAKoL,OAAO9F,eACzE5M,aAAa8E,QAAQkN,IAAUM,EAAIhL,KAAKoL,OAAOI,KAAO,IACtD9S,aAAa8E,QAAQ5E,IAAqBoS,EAAIhL,KAAKoL,OAAOK,eAC1D/S,aAAa8E,QAAQzD,IAAqBiR,EAAIhL,KAAKoL,OAAOM,qBACpD1L,EAAO,CAAEG,SAAU6K,EAAIhL,KAAKoL,OAAOjL,UA9CGoO,EAAAlS,KAAA,GA+C1BoL,IAAMM,KAAKrS,EAAU,gCAAiCsK,EAAM+K,GAAYpD,MAAM,SAAAnQ,GAC/F,OAAKrF,YAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aApD8B,aA+CtCqU,EA/CsCsD,EAAAlO,MA6DpCL,KAAKM,QA7D+B,CAAAiO,EAAAlS,KAAA,gBA8D3CuG,EAAS,CAAEV,KAlbwB,iCAkbcjC,GAAIgL,IAErDrI,EAAS8L,EAAgCzO,IAhEEsO,EAAAzG,OAAA,SAiEpC,CAAExH,SAAS,EAAM1J,QAAS,KAjEU,eAAA2X,EAAAzG,OAAA,SAoEtC,CAAExH,SAAS,EAAM1J,QAAS,KApEY,eAsE7CgM,EAAS6L,KAtEoCF,EAAAzG,OAAA,SAuEtC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAvEH,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SAAJ,gBAAAoc,GAAA,OAAAP,EAAAhG,MAAA7V,KAAA2S,YAAA,IA+ErCsJ,EAAoC,iBAAO,CAChDtM,KAL6C,0CAQxCwM,EAAkC,SAAAzO,GAAE,MAAK,CAC9CiC,KAR0C,qCAS1CjC,OAGKwO,EAA+B,iBAAO,CAC3CvM,KAZuC,oCAelC0M,EAAY,CACjBC,WAAY,KACZC,aAAa,EACbC,kBAAmB,KACnBC,yBAAyB,EACzBxN,yBAAyB,EACzByN,sBAAsB,EACtBC,IAAK,GACLrI,UAAW,GACXsI,kCAAkC,EAClCnX,sBAAsB,GAwFRuJ,IArFE,WAA+B,IAA9B1J,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,EAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAC/C,OAAQsH,EAAO+G,MACd,IAnemB,eAoelB,OAAOvN,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBiX,aAAa,EAAMD,WAAY,KAAME,kBAAmB,OAE5E,IArekB,cAsejB,OAAOpa,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBiX,aAAa,EAAOD,YAAY,IAEpD,IAvemB,eAwelB,OAAOla,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBiX,aAAa,EAAOD,YAAY,EAAOE,kBAAmB5T,EAAOvE,UAErF,IAzeuB,mBA0etB,OAAOjC,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZlD,OAAAya,EAAA,EAAAza,CAAA,GAAoBwG,EAAOkE,EAAIlE,EAAO+H,IAEvC,IA1esC,kCA2erC,IAAImM,EAAW1a,OAAAgX,EAAA,EAAAhX,CAAA,GAAQkD,GAEvB,OADAsD,EAAO+Q,mBAAmBrL,QAAQ,SAAAyO,GAAM,OAAKD,EAAYC,EAAOlb,KAAOkb,EAAO9P,QACvE7K,OAAAgX,EAAA,EAAAhX,CAAA,GAAK0a,GAEb,IArXiC,6BAsXhC,OAAO1a,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBmX,yBAAyB,IAE7C,IAvX8B,0BA0X9B,IAzX2B,uBA0X1B,OAAOra,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBmX,yBAAyB,IAE7C,IAhViC,6BAiVhC,OAAOra,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmB2J,yBAAyB,IAE7C,IAlV8B,0BAoV7B,OADA9I,aAAa6H,WAAWtH,KACjBtE,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmB2J,yBAAyB,EAAOxJ,sBAAsB,IAE1E,IArV2B,uBAsV1B,OAAOrD,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmB2J,yBAAyB,IAE7C,IA5S+B,2BA6S9B,OAAO7M,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBoX,sBAAsB,IAE1C,IA9S4B,wBA8S5B,IAAAM,EAC4BpU,EAAO8E,GAAGD,KAAKoL,OAAlC8D,EADTK,EACSL,IAAKrI,EADd0I,EACc1I,UACb,OAAOlS,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBoX,sBAAsB,EAAOC,MAAKrI,cAEtD,IAjTyB,qBAkTxB,OAAOlS,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBoX,sBAAsB,IAE1C,IAtQqC,iCAuQpC,OAAOta,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBoX,sBAAsB,IAE1C,IAxQkC,8BA2QlC,IA1Q+B,2BA2Q9B,OAAOta,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBoX,sBAAsB,IAE1C,IAvF4C,wCAwF3C,OAAOta,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,IAEtD,IAzFyC,qCA0FxC,OAAOxa,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,EAAON,YAAY,IAEzE,IA3FsC,kCA4FrC,OAAOla,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,IAEtD,IAxQkD,8CAyQjD,OAAOxa,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,IAEtD,IA1Q+C,2CA2Q9C,OAAOxa,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,EAAON,YAAY,IAEzE,IA5Q4C,wCA6Q3C,OAAOla,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBsX,kCAAkC,IAEtD,IAxiBqC,iCAyiBpC,IAAInX,EAAuBmD,EAAO8E,GAAGD,KAAKoL,OAAO/R,aAEjD,OADAX,aAAa8E,QAAQvE,IAAwBsQ,YAAQrQ,KAAKqS,UAAUpQ,EAAO8E,GAAGD,KAAKoL,UAC5EzW,OAAAgX,EAAA,EAAAhX,CAAA,GAAKkD,EAAZ,CAAmBG,qBAAsBA,IAE1C,QACC,OAAOH,4GCxjBJ2X,mLACO,IACE/c,EAAWF,KAAKC,MAAhBC,QAEP,OACI2D,EAAAtD,EAAAC,cAAA,WACKR,KAAKC,MAAM+B,MACZ6B,EAAAtD,EAAAC,cAAA,OAAKC,UAAWP,EAAQgd,YACpBrZ,EAAAtD,EAAAC,cAACsD,EAAA,EAAD,CAAkBrD,UAAWP,EAAQid,oBAR1B7Y,aAkChBpC,yBAlBA,SAAAC,GAAK,MAAK,CACrB+a,WAAY,CACR1a,SAAU,WACV4a,WAAY,QACZC,QAAS,KACT9U,OAAQ,KACRH,QAAS,OACTkV,eAAgB,SAChBjV,WAAY,SACZkV,IAAK,EACLC,OAAQ,EACRC,KAAM,EACNC,MAAO,EACP3U,OAAQ,OACRN,MAAO,UAIAvG,CAAmB+a,yTCvB5BU,EAAc,CAChB5P,QAAS6P,IACTC,QAASC,IACTjO,MAAOkO,IACPC,KAAMC,KAoEK/b,yBAjEC,SAAAC,GAAK,MAAK,CACtB4L,QAAS,CACLrF,gBAAiBwV,IAAM,MAE3BrO,MAAO,CACHnH,gBAAiBvG,EAAMwG,QAAQkH,MAAMsO,MAEzCH,KAAM,CACFtV,gBAAiBvG,EAAMwG,QAAQyV,QAAQD,MAE3CN,QAAS,CACLnV,gBAAiB2V,IAAM,MAE3BC,KAAM,CACFtV,SAAU,IAEduV,YAAa,CACTlB,QAAS,GACTmB,YAAarc,EAAMf,QAAQqd,MAE/Bpa,QAAS,CAACqa,SAAS,SACnBC,YAAa,CACTvW,QAAS,OACTC,WAAY,YA0CLnG,CAtCf,SAA2BjC,GAAO,IACtBC,EAA4DD,EAA5DC,QAASO,EAAmDR,EAAnDQ,UAAW4D,EAAwCpE,EAAxCoE,QAASF,EAA+BlE,EAA/BkE,QAASvD,EAAsBX,EAAtBW,QAAYge,EAD5Bxc,OAAAyc,EAAA,EAAAzc,CACsCnC,EADtC,uDAExB6e,EAAOnB,EAAY/c,GAEzB,OACIme,EAAAxe,EAAAC,cAACwe,EAAAze,EAAD6B,OAAAyF,OAAA,CACIpH,UAAWK,IAAWZ,EAAQU,GAAUV,EAAQmE,QAAS5D,GACzDwe,mBAAiB,kBACjB5a,QACI0a,EAAAxe,EAAAC,cAAA,QAAMyL,GAAG,kBAAkBxL,UAAWP,EAAQye,aAC5CI,EAAAxe,EAAAC,cAACse,EAAD,CAAMre,UAAWK,IAAWZ,EAAQoe,KAAMpe,EAAQqe,eACjDla,GAGPuE,OAAQ,CACJmW,EAAAxe,EAAAC,cAAC0e,EAAA3e,EAAD,CACIsB,IAAI,QACJsd,aAAW,QACXhY,MAAM,UACN1G,UAAWP,EAAQkf,MACnBhY,QAASjD,GAET4a,EAAAxe,EAAAC,cAAC6e,EAAA9e,EAAD,CAAWE,UAAWP,EAAQoe,UAGlCM,6FCzEhBhhB,EAAAC,QAAiBC,EAAAC,EAAuB,gOCIlCoE,EAAQmd,yBAAe,CACzBC,WAAY,CACRC,iBAAiB,EAEjBC,WAAY,CACR,SACA,mBACA,QACA,aACA,sBACA,mBACA,qBACFve,KAAK,MAEXwe,UAAW,YACXve,UAAW,CAACoB,QAAS,QACrBxB,MAAO,CAACwB,QAAS,QACjBod,kBAAmB,CAACvC,WAAY,UAGrBjb,IAEFyd,EAAsBN,yBAAe,CAC9CC,WAAY,CAACC,iBAAiB,GAC9B7W,QAAS,CACLC,OAAQ,CACJZ,OAAQ,sBACR6X,MAAO,0BACPC,aAAc,IACdjX,SAAU,yBACVkX,SAAU,sBACVC,mBAAoB,gDCtB1B3D,EAAY,CACdhY,QAAS,GACT4b,SAAS,GAsBEC,EAnBY,WAA+B,IAA9B5a,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,EAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACtD,OAAQsH,EAAO+G,MACX,IApBY,cAqBR,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEIjB,QAASuE,EAAOvE,QAChB4b,SAAS,IAEjB,IAzBc,gBA0BV,OAAO7d,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEIjB,QAAS,GACT4b,SAAS,IAEjB,QACI,OAAO3a,IC3Bb8a,6MACFC,WAAW,WACP7b,EAAKvE,MAAMqgB,6FAIX,OACIC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIC,kBAAgB,qBAChBxB,mBAAiB,2BACjB/a,KAAMlE,KAAKC,MAAMggB,QACjB9b,QAASnE,KAAKqgB,YAEdE,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,EAAO/O,UAAU+O,QACzBqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,EAAO/O,UAAUT,OAAOwP,QAChCqQ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAAQvZ,MAAO,UAAWC,QAASpH,KAAKqgB,cAE5CE,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,EAAO/O,UAAUwf,KAAKzQ,QAC9BqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaxgB,KAAKC,MAAMoE,UAE5Bkc,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAQ,YACRuG,MAAM,UACNC,QAASpH,KAAKqgB,YAHlB,iBApBMnY,IAAM5D,WAmC1B4L,EAAS,CACX/O,UAAU,CACN+O,OAAQ,CACJ1N,SAAU,WACViG,MAAO,MACPC,gBAAiB,QACjB6U,IAAK,MACLE,KAAM,MACNmD,cAAe,GACfxY,QAAS,OACTyY,cAAe,SACfxY,WAAY,UAEhB3H,OAAO,CACHwP,OAAQ,CAAC9H,QAAQ,OAAQkV,eAAe,WAAY7U,MAAM,SAE9DkY,KAAK,CACDzQ,OAAQ,CAAC3N,QAAS,OAoBf+N,cAdS,SAAUhL,GAC9B,IAAM4a,EAAqB5a,EAAM4a,mBACjC,MAAO,CACH7b,QAAS6b,EAAmB7b,QAC5B4b,QAASC,EAAmBD,UAIT,SAAU5P,GACjC,MAAO,CACHiQ,kBAAmB,kBAAIjQ,EDlEe,CAC1CV,KARkB,gBASlBtL,QAASA,IAFmB,IAACA,KCsElBiM,CAA6C8P,qECzEtDU,mLAEE,OACIP,EAAAhgB,EAAAC,cAACggB,EAAA,EAADpe,OAAAyF,OAAA,CAAKT,QAASpH,KAAKC,MAAMmH,QAASD,MAAO,YACrCvG,QAAS,QAASmgB,KAAM,SAAa/gB,KAAKC,OAAOsgB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,cAJnCze,iBAaf6e,ICZTE,mLAEE,OAAOT,EAAAhgB,EAAAC,cAACggB,EAAA,EAADpe,OAAAyF,OAAA,CAAKT,QAASpH,KAAKC,MAAMmH,QAASD,MAAO,UAC5CvG,QAAS,QAASmgB,KAAM,SAAa/gB,KAAKC,OAAOsgB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,cAHjCze,iBAWb+e,ICXTC,mLAEE,OAAOV,EAAAhgB,EAAAC,cAACggB,EAAA,EAADpe,OAAAyF,OAAA,CAAKT,QAASpH,KAAKC,MAAMmH,QAASD,MAAO,UAC5CvG,QAAS,QAASmgB,KAAM,SAAa/gB,KAAKC,OAAOsgB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,cAH7Bze,iBAWjBgf,ICPTC,mLACI,IAAA1c,EAAAxE,KAAAD,EAmBJC,KAAKC,MAjBRC,EAFOH,EAEPG,QACAihB,EAHOphB,EAGPohB,YACAC,EAJOrhB,EAIPqhB,oBACAC,EALOthB,EAKPshB,aACAC,EANOvhB,EAMPuhB,iBACAC,EAPOxhB,EAOPwhB,KACAC,EAROzhB,EAQPyhB,MACAC,EATO1hB,EASP0hB,cACAC,EAVO3hB,EAUP2hB,OACAC,EAXO5hB,EAWP4hB,KACAC,EAZO7hB,EAYP6hB,WACAC,EAbO9hB,EAaP8hB,WACAC,EAdO/hB,EAcP+hB,YACAC,EAfOhiB,EAePgiB,aACAC,EAhBOjiB,EAgBPiiB,OACAC,EAjBOliB,EAiBPkiB,YACAC,EAlBOniB,EAkBPmiB,aAGGC,EAAUT,EAAOlT,OAKrB,OAJIoT,IAAYO,GAAW,GACvBN,IAAYM,GAAW,GACvBL,IAAaK,GAAW,GAG3B5B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAU,yBACd8f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEuB,GACAxB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW2B,QAASA,GACnB5B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAIgW,EACJrS,MAAOqS,EACPlZ,OAAO,SACPnI,QAAQ,WACRqM,MAAO+U,EACPjS,SAAU,SAAA9K,GAAC,OAAIT,EAAKvE,MAAMoiB,eAAepd,IACzC+K,WAAS,QAOfuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEkB,EAAOjgB,IAAI,SAAA6gB,GACX,OAAIA,EAAM3S,MAAuB,WAAf2S,EAAM3S,KAChB,KAGP4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKygB,EAAMzgB,IAAKuF,QAAS,kBAAM5C,EAAKvE,MAAMsiB,cAAcD,EAAMzgB,OACvEygB,EAAM1S,SAITgS,GAAcrB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACdqB,GAActB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACdsB,GAAevB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,iBAGlBD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEmB,EAAKlgB,IAAI,SAAC+gB,EAAKC,GACf,OACClC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK2gB,EAAIvW,GAAI4T,MAAOrb,EAAKvE,MAAM4f,QAAS,GAChDrb,EAAKvE,MAAMyhB,OAAOjgB,IAAI,SAAC6gB,EAAO3gB,GAC9B,OAAI2gB,EAAM3S,MAAuB,WAAf2S,EAAM3S,KAChB,KAIP4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW7Y,UAAU,KAAK+a,MAAM,MAAM7gB,IAAKygB,EAAMzgB,KAEjC,QAAdygB,EAAMzgB,MAAkB4f,GAAiBlB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU6hB,EAAO,GAEjE,QAAdH,EAAMzgB,KAAiB4f,GAAiBlB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU2gB,EAAOJ,EAAc,EAAIsB,GAEhGH,EAAM3S,MAAuB,SAAf2S,EAAM3S,MAAmB2S,EAAMtN,KAAOuL,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CAAM7a,GAAIwa,EAAMtN,IAAMwN,EAAIF,EAAMzgB,MAAO2gB,EAAIF,EAAMzgB,MAGrGygB,EAAM3S,MAAuB,kBAAf2S,EAAM3S,MAA4B6S,EAAIF,EAAMzgB,KAE5C,WAAdygB,EAAMzgB,KCjGyB,uBDiGLqgB,GAC1B3B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAagC,EAAII,UAAY,UAAYJ,EAAIK,SAAW,SAAW,YAGnEP,EAAM3S,MAAuB,aAAf2S,EAAM3S,MACpB4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCsC,QAASN,EAAIF,EAAMzgB,KACnBkO,SAAU,kBAAMvL,EAAKvE,MAAMyhB,OAAO/f,GAAGoO,SAAS0S,EAAMje,EAAKvE,MAAMyhB,OAAO/f,GAAGE,IAAK2gB,EAAIF,EAAMzgB,OACxFsF,MAAO,YAIRmb,EAAM3S,MAAuB,SAAf2S,EAAM3S,MAAmBpJ,IAAOic,EAAIF,EAAMzgB,MAAM2E,OAAO,cAErE8b,EAAM3S,MAAuB,UAAf2S,EAAM3S,MAAoB4Q,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKP,EAAIF,EAAMzgB,KAAMpB,UAAWP,EAAQ8iB,MAAOC,IAAK,KAEzE,oBAAjBX,EAAMY,QAAyB1e,EAAKvE,MAAMyhB,OAAO/f,GAAGuhB,OAAOV,EAAIF,EAAMzgB,OAE3EygB,EAAM3S,OAAS2S,EAAMY,QAAUV,EAAIF,EAAMzgB,QAK7C2C,EAAKvE,MAAM2hB,YACXrB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAC2iB,EAAD,CAAmB/b,QAAS,kBAAM5C,EAAKvE,MAAMmjB,OAAOZ,OAIrDhe,EAAKvE,MAAM4hB,YACXtB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAC6iB,EAAD,CAAejc,QAAS,kBAAM5C,EAAKvE,MAAMqjB,OAAOd,OAIjDhe,EAAKvE,MAAM6hB,aACXvB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAC+iB,EAAD,CAAiBnc,QAAS,kBAAM5C,EAAKvE,MAAMujB,SAAShB,WAOzDf,GACAlB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgB,MAAOA,EACPD,KAAMA,EACNJ,YAAaA,EACbE,aAAcA,EACdD,oBAAqBA,EACrBqC,mBAAoB,GACpBnC,iBAAkBA,eA7IAhd,aAwKZpC,uBAhBA,SAAAC,GAAK,MAAK,CACxB6gB,MAAO,CAAEtE,SAAU,UAeLxc,CAAmBgf,GE9K5BwC,mLACO,IAAA3jB,EACwBC,KAAKC,MAA3BC,EADFH,EACEG,QAAYyjB,EADdvhB,OAAAwhB,EAAA,EAAAxhB,CAAArC,EAAA,aAGL,OACIwgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACtBof,EAAAhgB,EAAAC,cAACqjB,EAADzhB,OAAAyF,OAAA,GAAkB8b,EAAlB,CAA0B9D,OAAK,aANrB5d,iBAgBXC,uBAJA,SAAAC,GAAK,MAAK,CACrBhB,UAAW,CAAC4H,OAAQ,YAGT7G,CAAmBwhB,UCpBrBI,EAA4B,4BAC5BC,EAA6B,6BAC7BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAAsB,sBACtBC,GAAuB,uBACvBC,GAA2B,2BAC3BC,GAAqB,qBACrBC,GAAsB,sBACtBC,GAAsB,sBAGtBC,GAA+B,+BAC/BC,GAA8B,8BAC9BC,GAA+B,+BAC/BC,GAAgC,gCCPhCC,GAAe,SAACC,GAAU,IAC9BC,EAA0FD,EAA1FC,QAASC,EAAiFF,EAAjFE,UAAWC,EAAsEH,EAAtEG,SAAUC,EAA4DJ,EAA5DI,WAAYC,EAAgDL,EAAhDK,SAAUC,EAAsCN,EAAtCM,UAAWC,EAA2BP,EAA3BO,wBAEpE,OAAIN,GAAYC,GAAcC,GAAaC,GAAeC,GAAaC,GAG7DL,GAAYC,GAAcC,GAAaC,GAAeC,GAAaC,GAGnEL,IAAWC,GAAcC,GAAaC,GAAeC,GAAaC,EAGlEH,GAAYC,EACXd,IAEDW,IAAWE,GAAaC,GAAeC,GAAaC,GAQnDF,GAAeC,GAAaC,EAG5BD,IAAaC,EACbjB,EAEAiB,EACAd,QADJ,EALIF,GARH5d,IAAO6e,GAAyBC,MAAM,OAAO7Z,SAASjF,IAAOyE,OACtDoZ,GAEAH,EATJD,EAHAD,EAHAD,GA+BFwB,GAAgB,SAACT,GAC1B,IAAIvP,EAAS,UACT3F,EAAOiV,GAAaC,GAUxB,OATGlV,IAASmU,IAA2BxO,EAAS,cAC7C3F,IAASoU,IAA4BzO,EAAS,mBAC9C3F,IAASqU,IAA6B1O,EAAS,oBAC/C3F,IAASyU,KAA0B9O,EAAS,iBAC5C3F,IAASsU,IAA+B3O,EAAS,sBACjD3F,IAASwU,KAAsB7O,EAAS,aACxC3F,IAASuU,IAAqB5O,EAAS,YACvC3F,IAAS0U,KAAoB/O,EAAS,WAElCA,qBCjDLiQ,eACF,SAAAA,EAAYtlB,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAulB,IACxB/gB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmjB,GAAA3gB,KAAA5E,KAAMC,EAAOiJ,KAIjByc,kBAAoB,SAACC,EAAYrE,GAC7B,IADsCxhB,EAENyE,EAAKvE,MAA9BC,EAF+BH,EAE/BG,QAASmhB,EAFsBthB,EAEtBshB,aACVN,EAAO8E,KAAKC,MAAMC,KAEpBC,EAAQ,EAAGC,EAAM,EACjB1E,EAAOR,EALO,EAKc6E,EAAa,GACzCI,EAAQH,KAAKK,IAAIN,EANH,EAM6B,GAC3CK,EAAML,IAENI,EAAQH,KAAKK,IAAI3E,EAAOR,EAAM,GAC9BkF,EAAMJ,KAAKM,IAAIH,EAVD,EAUsBJ,IAGxC,IAAIQ,EAAS,GAEb,GAAIJ,IAAUC,EAQV,OAPAG,EAAOhY,KACHmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY3e,IAAKmkB,EAAO7e,MAAO,UAAW1G,UAAWulB,IAAUzE,EAAOrhB,EAAQ8H,OAAS,GACnF+X,UAAQ,GACRQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrZ,MAAO,SAAU1G,UAAWulB,IAAUzE,EAAOrhB,EAAQ8H,OAAS,IAAIuY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACpE/f,UAAWulB,IAAUzE,EAAOrhB,EAAQmmB,WAAanmB,EAAQomB,KACzD1lB,QAAS,SAAUolB,EAAQ,MAEhCI,EAGX,GAAI7E,EAAOwE,EAAiB,CACxBK,EAAS,GACT,IAFwB,IAAAG,EAAA,WAGpB,IAAIC,EAAIR,EACJQ,IAAMjF,EACN6E,EAAOhY,KACHmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY3e,IAAK2kB,EAAGrf,MAAO,UAAW1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,GAC3E+X,UAAQ,GACRQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrZ,MAAO,SAAU1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,IAAIuY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAChE/f,UAAW+lB,IAAMjF,EAAOrhB,EAAQmmB,WAAanmB,EAAQomB,KACrD1lB,QAAS,SAAU4lB,EAAI,MAGnCJ,EAAOhY,KACHmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY3e,IAAK2kB,EAAGrf,MAAO,UAAW1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,GAC3EpH,QAAQ,YAAYwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAGuhB,EAAI,KACzDjG,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrZ,MAAO,WAAWoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACrB/f,UAAW+lB,IAAMjF,EAAOrhB,EAAQmmB,WAAanmB,EAAQomB,KACrD1lB,QAAS,SAAU4lB,EAAI,MAGnCR,KAnBGA,EAAQC,GAAKM,IAuBpB,OAFIN,EAAML,GACNQ,EAAOhY,KAAKmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM3e,IAAKokB,EAAM,EAAG9e,MAAO,UAAUoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,SAC9CwlB,EAGX,GAAI7E,GAAQwE,EAAiB,CACzBK,EAAS,CAAC7F,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM3e,IAAKmkB,EAAQ,EAAG7e,MAAO,UAAUoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,SACjD,IAFyB,IAAA6lB,EAAA,WAGrB,IAAID,EAAIR,EACJQ,IAAMjF,EACN6E,EAAOhY,KACHmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY3e,IAAK2kB,EAAGrf,MAAO,UAAW1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,GAC3E+X,UAAQ,GACRQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrZ,MAAO,SAAU1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,GAAI+X,UAAQ,GAACQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACzE/f,UAAW+lB,IAAMjF,EAAOrhB,EAAQmmB,WAAanmB,EAAQomB,KACrD1lB,QAAS,SAAU4lB,EAAI,MAGnCJ,EAAOhY,KACHmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY3e,IAAK2kB,EAAGrf,MAAO,UAAW1G,UAAW+lB,IAAMjF,EAAOrhB,EAAQ8H,OAAS,GAC3EpH,QAAQ,YACRwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAGuhB,EAAI,KACrCjG,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrZ,MAAO,UAAUoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACpB/f,UAAW+lB,IAAMjF,EAAOrhB,EAAQmmB,WAAanmB,EAAQomB,KACrD1lB,QAAS,SAAU4lB,EAAI,MAGnCR,KApBGA,EAAQC,GAAKQ,IAyBpB,OAHIR,EAAML,EAAa,GACnBQ,EAAOhY,KAAKmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM3e,IAAKokB,EAAM,EAAG9e,MAAO,UAAUoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,SAE9CwlB,IArFX5hB,EAAKc,MAAQ,GAFWd,wEA2FnB,IAAAkiB,EAC4C1mB,KAAKC,MAA/CshB,EADFmF,EACEnF,KAAMC,EADRkF,EACQlF,MAAOL,EADfuF,EACevF,YAAaE,EAD5BqF,EAC4BrF,aAC3BuE,EAAaC,KAAKc,KAAKnF,EAAQL,GAErC,OACIZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAO,UAAWvG,QAAQ,YAClCwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAG,UAAU8a,SAAUwB,EAAO,GAAGhB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,OAEhEH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAO,UAAWvG,QAAQ,YAClCwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAG,SAC9B8a,SAAUwB,EAAO,GAAGhB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,OAEvB1gB,KAAK2lB,kBAAkBC,EAAYrE,GAEpChB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAO,UAAWvG,QAAQ,YAClCwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAG,SAC9B8a,SAAUwB,GAAQqE,EAAa,GAAGrF,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,OAEtCH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAO,UAAWvG,QAAQ,YAClCwG,QAAS,SAAAnC,GAAC,OAAIoc,EAAapc,EAAG,SAC9B8a,SAAUwB,GAAQqE,EAAa,GAAGrF,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,gBAlH3Bpc,aAuIhBpC,wBAdA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,WACrB6G,OAAQ,CAACoV,WAAYwJ,QAAK,MAC1BP,WAAY,CAAClf,MAAO,QAAS6B,SAAU,QAAS6d,WAAY,KAC5DP,KAAM,CAACtd,SAAU,QAAS6d,WAAY,OAU3B3kB,CAAmBqjB,IC7I5BuB,cACF,SAAAA,EAAAjS,GAA8B,IAAArQ,EAAAxE,KAAjB+mB,EAAiBlS,EAAjBkS,eAAiB3kB,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA8mB,GAAA9mB,KA0B9BgnB,kBAAkB,WACd,GAAuB,IAApBxiB,EAAKyiB,YAAuC,IAAnBziB,EAAK0iB,UAAiB,MAAM,IAAIC,MAAO,qEACnE,OAAO3iB,EAAK0iB,WA5BclnB,KA+B9BonB,cAAc,WACV,OAAO5iB,EAAKyiB,YA/BZjnB,KAAK+mB,eAAiBA,EACtB/mB,KAAKqnB,UAAY,EACjBrnB,KAAKinB,WAAa,EAClBjnB,KAAKknB,UAAY,wDAOjB,OAHAlnB,KAAKinB,WAAa,EAClBjnB,KAAKknB,UAAY,EACjBlnB,KAAKqnB,UAAY,EACV,CAACN,eAAgB/mB,KAAK+mB,eAAgBM,UAAWrnB,KAAKqnB,yDAIjC,IAAZJ,EAAYpN,EAAZoN,WAChBjnB,KAAKinB,WAAaA,EAClBjnB,KAAKknB,UAAYrB,KAAKc,KAAKM,EAAajnB,KAAK+mB,iDAGxCO,GACL,GAAuB,IAApBtnB,KAAKinB,YAAuC,IAAnBjnB,KAAKknB,UAAiB,MAAM,IAAIC,MAAO,yDAEnE,OADAnnB,KAAKqnB,WAAaC,EAAS,GAAKtnB,KAAK+mB,eAC9B,CAACA,eAAgB/mB,KAAK+mB,eAAgBM,UAAWrnB,KAAKqnB,oBActDP,MChBTS,GAAc,cACdC,GAAc,cACdC,GAAuB,uBACvBC,GAA0B,0BAC1BC,GAAuB,uBACvBC,GAAoB,oBACpBC,GAAmB,mBACnBC,GAAwB,wBACxBC,GAAsB,sBAEtBC,eACF,SAAAA,EAAY/nB,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgoB,IACxBxjB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4lB,GAAApjB,KAAA5E,KAAMC,EAAOiJ,KA2CjB+e,oBAAsB,SAACC,EAAOC,GAC1B,OAAIjU,eAA0BiU,IAAclE,EACjC1D,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CAAM7a,GAAE,yBAAAiH,OAA2BmZ,IAAUA,GAEjD3H,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CAAM7a,GAAE,uBAAAiH,OAAyBmZ,IAAUA,IAhD1B1jB,EAmD5B4jB,iBAAmB,SAACC,EAAWF,EAAWG,GAkBtC,OAjBGA,IAAWZ,IAAyBW,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAU6E,IAAOhG,EAAEioB,gBAAgBC,KAAKliB,IAAO7E,EAAE8mB,mBACpGF,IAAWT,IAAkBQ,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAEmoB,aAAaC,cAAcjnB,EAAEgnB,gBACrFJ,IAAWV,IAAmBS,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAEqoB,cAAcD,cAAcjnB,EAAEknB,iBACvFN,IAAWX,IAAsBU,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAEsoB,YAAYF,cAAcjnB,EAAEmnB,eACxFP,IAAWf,IAAac,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAE2nB,MAAMS,cAAcjnB,EAAEwmB,SACzEI,IAAWd,IAAaa,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAEuoB,SAAWpnB,EAAEonB,WAChER,IAAWP,IACVM,EAAUE,KAAK,SAAChoB,EAAGmB,GACf,IAAIqnB,EAASxoB,EAAEyoB,YAAczoB,EAAEyoB,WAAWxa,OAAS,GAAKjO,EAAEyoB,WAAW,GAAGC,UAAa1oB,EAAEyoB,WAAW,GAAGC,UAAY,IAC7GC,EAAS3oB,EAAEyoB,YAAczoB,EAAEyoB,WAAWxa,OAAS,GAAK9M,EAAEsnB,WAAW,GAAGC,UAAavnB,EAAEsnB,WAAW,GAAGC,UAAY,IACjH,OAAOF,EAAMJ,cAAcO,KAGhCZ,IAAWR,IAAuBO,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAU6E,IAAO7E,EAAEynB,cAAcV,KAAKliB,IAAOhG,EAAE4oB,iBAChGb,IAAWb,IAAsBY,EAAUE,KAAK,SAAChoB,EAAGmB,GAAJ,OAAU6E,IAAO7E,EAAE0jB,yBAAyBqD,KAAKliB,IAAOhG,EAAE6kB,4BAGtGiD,EAAU5mB,IAAI,SAAA+kB,GACjB,OAAOpkB,OAAA+d,EAAA,EAAA/d,CAAA,GACAokB,EADP,CAEI2C,aAAcxX,YAAwB6U,EAAE2C,cACxCC,oBAAqB1X,YAAoB8U,EAAE4C,qBAC3ChE,wBAAyB1T,YAAoB8U,EAAEpB,yBAC/CoD,eAAgB9W,YAAoB8U,EAAEgC,gBACtClT,OAAQgQ,GAAckB,GACtB6C,cAAe7kB,EAAKyjB,oBAAoBzB,EAAE0B,MAAOC,GACjDmB,eAAiB9C,EAAEwC,YAAcxC,EAAEwC,WAAWxa,OAAS,EAAKgY,EAAEwC,WAAW,GAAGC,UAAY,IAAMzC,EAAEwC,WAAW,GAAGO,SAAW,GACzHb,aAAelC,EAAEkC,eAAiBlC,EAAEoC,cAAiBpC,EAAEkC,aAAe,QA/EtDlkB,EAoF5BglB,yBAA2B,SAAArB,GACvB,OAAIA,IAAcpE,EAAoCne,YAAe,CAACvH,OAClE8pB,IAAcnE,GAAoCpe,YAAe,CAACrH,QAtF9CiG,EA2F5BilB,uBAAyB,SAAAtB,GACrB,IAAMuB,EAAqB9jB,YAAe,CAACvH,KAA0BE,KAA2BJ,MAA0B,MAC1H,OAAIgqB,IAAcpE,GACP2F,GA9FallB,EAmG5BmlB,UAAY,SAAC9nB,GACT,IAAIymB,EAASZ,GACF,kBAAR7lB,IAAyBymB,EAASf,IAC1B,aAAR1lB,IAAoBymB,EAASd,IACrB,4BAAR3lB,IAAmCymB,EAASb,IACpC,mBAAR5lB,IAA0BymB,EAASZ,IAC3B,gBAAR7lB,IAAuBymB,EAASX,IACxB,kBAAR9lB,IAAyBymB,EAASV,IAC1B,iBAAR/lB,IAAwBymB,EAAST,IACzB,iBAARhmB,IAAwBymB,EAASR,IACzB,mBAARjmB,IAA0BymB,EAASP,IAEtCvjB,EAAKU,SAAS,CAACojB,OAAQA,KA7GvB9jB,EAAKc,MAAQ,CACTskB,iBAAkB,GAClBtB,OAAQZ,IAJYljB,mFAYpByP,eAA4BE,eAA4BD,cACxDlU,KAAKkF,SAAS,CACV0kB,iBAAkB,CACd,CAACha,MAAO,iBAAkB/N,IAAK,gBAAiB8N,KAAM,iBACtD,CAACC,MAAO,aAAc/N,IAAK,YAC3B,CAAC+N,MAAO,4BAA6B/N,IAAK,2BAC1C,CAAC+N,MAAO,kBAAmB/N,IAAK,kBAChC,CAAC+N,MAAO,UAAW/N,IAAK,eACxB,CAAC+N,MAAO,cAAe/N,IAAK,kBAC5B,CAAC+N,MAAO,eAAgB/N,IAAK,iBAC7B,CAAC+N,MAAO,cAAe/N,IAAK,gBAC5B,CAAC+N,MAAO,iBAAkB/N,IAAK,gBAC/B,CAAC+N,MAAO,SAAU/N,IAAK,aAI/B7B,KAAKkF,SAAS,CACV0kB,iBAAkB,CACd,CAACha,MAAO,iBAAkB/N,IAAK,gBAAiB8N,KAAM,iBACtD,CAACC,MAAO,aAAc/N,IAAK,YAC3B,CAAC+N,MAAO,4BAA6B/N,IAAK,2BAC1C,CAAC+N,MAAO,kBAAmB/N,IAAK,kBAChC,CAAC+N,MAAO,UAAW/N,IAAK,eACxB,CAAC+N,MAAO,cAAe/N,IAAK,kBAC5B,CAAC+N,MAAO,eAAgB/N,IAAK,iBAC7B,CAAC+N,MAAO,cAAe/N,IAAK,gBAC5B,CAAC+N,MAAO,iBAAkB/N,IAAK,oDA4EtC,IAAA9B,EACuCC,KAAKC,MAA1C4pB,EADF9pB,EACE8pB,aAAcrG,EADhBzjB,EACgByjB,SAAU2E,EAD1BpoB,EAC0BooB,UACxByB,EAAoB5pB,KAAKsF,MAAzBskB,iBAED/jB,EAAmBD,YAAe,CACpCzH,KAAyBC,KAAmCC,KAA0BC,KACtFC,KAA2BC,KAAqCe,MACjE,MAEH,OACIghB,EAAAhgB,EAAAC,cAAA,WACKqF,GAAoB0a,EAAAhgB,EAAAC,cAACspB,EAAD,CACjBpI,OAAQkI,EACRjI,KAAM3hB,KAAKooB,iBAAiByB,EAAc1B,EAAWnoB,KAAKsF,MAAMgjB,QAChExG,YAAa9hB,KAAKypB,uBAAuBtB,GACzC3E,SAAUA,EACVuG,UAAU,EACVxH,cAAeviB,KAAK2pB,UAGpBlI,eAAa,EACbJ,aAAcrhB,KAAKC,MAAMohB,aACzBF,YAAanhB,KAAKC,MAAMkhB,YACxBI,KAAMvhB,KAAKC,MAAMshB,KACjBC,MAAOxhB,KAAKC,MAAMuhB,MAClBF,iBAAkBiE,aA5IJrd,IAAM5D,WA+JzBgM,eAZS,SAAUhL,GAG9B,MAAO,CACH0kB,gBAHY5nB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,GACe2kB,mBAEED,kBAIjB,SAAU3Z,GACjC,MAAO,IAGIC,CAA6C0X,uECxL/CkC,GAAiB,IACjBC,GAAc,IACdC,GAAa,IAEbC,GAA4B,SAAC/U,GACtC,IAAIuD,EAASuR,GASb,OAR8FvR,EAASqR,GAZnE,6BAahC5U,GAVkB,eAUqBA,IAAuBuD,EAASuR,IAZrD,eAalB9U,IAAuBuD,EAASsR,IAErB,MAAX7U,GAA6B,WAAXA,IAAqBuD,EAASqR,IACrC,MAAX5U,GAA6B,OAAXA,IAAiBuD,EAASuR,IACjC,MAAX9U,GAA6B,QAAXA,IAAkBuD,EAASsR,IAE1CtR,0CC2BPyR,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEjBkZ,GAAY,CACdkO,WAAY,GACZC,mBAAoB,GACpBC,mBAAoB,GACpBzB,WAAY,GACZnE,MAAO,CACH5Y,GAAI,GACJic,MAAO,GACPwC,cAAe,KACfC,iBAAkB,GAClBC,QAAS,GACTC,eAAgB,GAChBC,wBAAyB,GACzBC,gBAAiB,IAErBC,cAAe,CACXC,eAAe,GAEnBC,sBAAuB,GACvBC,sBAAsB,EACtBC,sBAAsB,EACtBC,gCAAgC,EAChCC,OAAQ,GACRC,mCAAmC,EACnCC,iCAAiC,EACjCC,8BAA+B,GAC/BC,mCAAmC,EACnCC,oCAAoC,EACpCC,oBAAoB,EACpBC,8BAA8B,EAC9BC,iBAAkB,GAClBC,4CAA4C,EAC5CC,mDAAmD,GA0CjDC,GAAqC,iBAAO,CAC9Ctc,KAxF2C,2CA2FzCuc,GAAmC,SAAAxe,GAAE,MAAK,CAC5CiC,KA3FwC,sCA4FxCjC,OAGEye,GAAgC,iBAAO,CACzCxc,KA/FqC,qCAyHnCyc,GAAkC,iBAAO,CAC3Czc,KAlIwC,wCAqItC0c,GAAgC,SAAA3e,GAAE,MAAK,CACzCiC,KArIqC,mCAsIrCjC,OAGE4e,GAA6B,iBAAO,CACtC3c,KAzIkC,kCAsJzB4c,GAAe,SAAAtgB,GAAE,MAAK,CAC/B0D,KA9JmB,iBA+JnB1D,OAGSugB,GAAe,SAAAvgB,GAAE,MAAK,CAC/B0D,KArJkB,gBAsJlB1D,OAGSwgB,GAAkB,SAACxgB,EAAIa,EAAG6D,GACnC,MAAO,CACHhB,KAxKiB,mBAyKjB1D,KAAIa,IAAG6D,MAiCT+b,GAA6B,6BAOtBC,GAAc,SAAA5R,GAAA,IAAEoN,EAAFpN,EAAEoN,UAAFyE,EAAA7R,EAAa8R,kBAAb,IAAAD,KAAAE,EAAA/R,EAAiCgM,sBAAjC,IAAA+F,EAAgD,IAAhDA,EAAAC,EAAAhS,EAAsDsM,iBAAtD,IAAA0F,EAAgE,EAAhEA,EAAA,sBAAAxR,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAuE,SAAAyQ,EAAM7J,GAAN,IAAA6c,EAAAnU,EAAAM,EAAA3L,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAE1Fqe,IAAcrE,IAA2BoJ,EAAY,GACrD/E,IAAcpE,IAA4BmJ,EAAY,GACtD/E,IAAcnE,IAA6BkJ,EAAY,GACvD/E,IAAclE,IAA+BiJ,EAAY,GACzD/E,IAAcjE,IAAqBgJ,EAAY,GAC/C/E,IAAchE,KAAsB+I,EAAY,GAChD/E,IAAc/D,KAA0B8I,EAAY,GACpD/E,IAAc9D,KAAoB6I,EAAY,GAC9C/E,IAAc7D,KAAqB4I,EAAY,GAC/C/E,IAAc5D,KAAqB2I,EAAY,GAC/CnU,EAAS5S,aAAaC,QAAQ,UAC5BiT,EAbwFjX,OAAA+d,EAAA,EAAA/d,CAAA,CAc1FiX,OAAQ,CACJ1J,KAAMud,EACNnU,SACA8T,aACA9F,iBACAM,cAED9W,eAGPF,EAAS8c,MAxBqFhT,EAAArQ,KAAA,GA0B7EoL,KAAMC,IAAIhS,GAAU,gBAAiBkW,GAAQjE,MAAM,SAAAnQ,GAChE,OAAKA,EAAEoQ,SAGFzV,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAH1B,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAAS,+BA5BsC,aA0BxFqJ,EA1BwFyM,EAAArM,MAoCvFL,KAAKM,QApCkF,CAAAoM,EAAArQ,KAAA,gBAqC1FuG,EAAS+c,GAAoB1f,IArC6DyM,EAAA5E,OAAA,SAsCnF7H,EAAGD,MAtCgF,eAwC1F4C,EAASgd,MAxCiFlT,EAAA5E,OAAA,SAyCnF,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzC2C,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAvE,gBAAA2V,GAAA,OAAA4F,EAAA1F,MAAA7V,KAAA2S,YAAA,IA6CrBwa,GAAwB,iBAAO,CACjCxd,KAxP6B,6BA2P3Byd,GAAsB,SAAA1f,GAAE,MAAK,CAC/BiC,KA3P0B,wBA4P1BjC,OAGE2f,GAAmB,iBAAO,CAC5B1d,KA/PuB,uBAqRrB2d,GAAqC,iBAAO,CAC9C3d,KAjR2C,2CAoRzC4d,GAAmC,SAAA7f,GAAE,MAAK,CAC5CiC,KApRwC,sCAqRxCjC,OAGE8f,GAAgC,iBAAO,CACzC7d,KAxRqC,qCAmU5B8d,GAAY,SAAAhgB,GAAI,sBAAAigB,EAAAtrB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAA+R,EAAMnL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAC7BuG,EAASsd,MADoBjS,EAAA5R,KAAA,EAGZoL,KAAMM,KAAKrS,GAAU,mBAAoBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC1F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALZ,WAGvBqJ,EAHuBgO,EAAA5N,MAUrBL,KAVqB,CAAAiO,EAAA5R,KAAA,eAWzBuG,EAASud,MAXgBlS,EAAAnG,OAAA,SAYlB,CAACxH,SAAS,EAAO1J,QAAS,wBAZR,WAczBqJ,EAAGD,KAAKM,QAdiB,CAAA2N,EAAA5R,KAAA,gBAezBuG,EAASwd,GAAkBngB,IAfFgO,EAAAnG,OAAA,SAgBlB,CAACxH,SAAS,EAAM1J,QAAS,KAhBP,eAkBzBgM,EAASud,MAlBgBlS,EAAAnG,OAAA,SAmBlB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBtB,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAJ,gBAAA2b,GAAA,OAAA+R,EAAA7X,MAAA7V,KAAA2S,YAAA,IA2BvBgb,GAAsB,iBAAO,CAC/Bhe,KAL0B,0BAQxBke,GAAoB,SAAAngB,GAAE,MAAK,CAC7BiC,KARuB,qBASvBjC,OAGEkgB,GAAiB,iBAAO,CAC1Bje,KAZoB,oBA0ClBme,GAAgC,iBAAO,CACzCne,KALqC,qCAQnCoe,GAA8B,SAAArgB,GAAE,MAAK,CACvCiC,KARkC,gCASlCjC,OAGEsgB,GAA2B,iBAAO,CACpCre,KAZ+B,+BAkF7Bse,GAAqD,iBAAO,CAC9Dte,KAL6D,6DAQ3Due,GAAmD,SAAAxgB,GAAE,MAAK,CAC5DiC,KAR0D,wDAS1DjC,OAGEygB,GAAgD,iBAAO,CACzDxe,KAZuD,uDA8U5Cye,GA/TW,WAA+B,IACjDC,EAAKC,EAAcC,EAAetiB,EAAIa,EAAG6D,EAAG6d,EADzBlpB,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAGrD,OAAQsH,EAAO+G,MAEX,IA1f4B,8BA4fxB,OAAa,KADb0e,EAAM/oB,EAAMilB,WAAWkE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUrE,EAAO8lB,OAAOziB,GAAGgB,UAElEqhB,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,GAASzlB,EAAO8lB,SACpDH,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GACtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,KAE3BjpB,EAEX,IAngBe,iBAqgBX,OAAa,KADb+oB,EAAM/oB,EAAMilB,WAAWkE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUrE,EAAOqD,QAExDqiB,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACvBQ,QAAQ5hB,OAAQ,EAC7BqhB,EAAaQ,cAAe,GAC5BP,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GACtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,KAE3BjpB,EAEX,IAjgBc,gBAmgBV,OAAa,KADb+oB,EAAM/oB,EAAMilB,WAAWkE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUrE,EAAOqD,QAExDqiB,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACvBQ,QAAQ5hB,OAAQ,EAC7BqhB,EAAaQ,cAAe,GAC5BP,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GACtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,KAE3BjpB,EAEX,IA1hBiB,mBA6hBb,OAFE2G,EAAYrD,EAAZqD,GAAIa,EAAQlE,EAARkE,EAAG6D,EAAK/H,EAAL+H,GAEI,KADb0d,EAAM/oB,EAAMilB,WAAWkE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUhB,OAqBjDqiB,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACvBvhB,GAAGG,MAAQ0D,GACxB4d,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GACtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,KAG3BjpB,EAEX,IAzjBsB,wBA0jBlB,IAAMypB,EAAgBnmB,EAAO2hB,WAC7B,OAAOnoB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYwE,IAElC,IA5jBkB,oBA6jBd,IAAMC,EAAU5sB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMsD,EAAOqmB,UAEpC,OADAD,EAAWpmB,EAAOkE,GAAKlE,EAAO+H,EACvBvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAXlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAmBwG,EAAOqmB,QAAUD,IAExC,IAhkBe,iBAmlBX,OAlBAT,EAAgBjpB,EAAMilB,WAAW9oB,IAAI,SAAA1D,GACjC,OAAIA,EAAE8wB,QAAQ5hB,SAAWrE,EAAO0M,SAAkC,IAAxBvX,EAAEoxB,YAAYliB,OAAsBlP,EAAE+wB,aAezE/wB,GAJCA,EAAE8wB,QAAFzsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAgBrE,EAAE8wB,QAAlB,CAA2B5hB,MAAOrE,EAAO0M,SAClCvX,KAKZqE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,IAElC,IAplBoC,sCAqlBhC,OAAOnsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB+lB,gCAAgC,IAEtD,IAtlBiC,mCAslBjC,IAAArO,EAE4GpU,EAAO8E,GAAxGD,KAAOoL,OAAS2R,EAF3BxN,EAE2BwN,mBAAoBxB,EAF/ChM,EAE+CgM,WAAYnE,EAF3D7H,EAE2D6H,MAAOmG,EAFlEhO,EAEkEgO,cAAeE,EAFjFlO,EAEiFkO,sBAC7E,OAAO9oB,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEI+lB,gCAAgC,EAChCd,WAAYC,EAAmBxI,OAAO,SAAAjkB,GAAC,OAA2B,IAAtBA,EAAEonB,UAAUlY,QAAuC,IAArBlP,EAAEmnB,SAASjY,QAAyC,IAAvBlP,EAAEqxB,WAAWniB,QACpHwd,mBAAoBD,EAAmBxI,OAAO,SAAAjkB,GAAC,OAA0B,IAArBA,EAAEmnB,SAASjY,QAC/DoiB,mBAAoB7E,EAAmBxI,OAAO,SAAAjkB,GAAC,OAA4B,IAAvBA,EAAEqxB,WAAWniB,QACjE+b,aACAnE,MAAMziB,OAAA+d,EAAA,EAAA/d,CAAA,GACCkD,EAAMuf,MAAUA,EADlB,CACyB6F,cAAuC,OAAxB7F,EAAM6F,cAAyB7F,EAAM6F,cAAgB,KAC9FE,QAA2B,OAAlB/F,EAAM+F,QAAmB/F,EAAM+F,QAAU,KAEtDM,sBAAuBA,GAAgD,GACvEF,cAAeA,IAIvB,IA7lBuC,yCA8lBnC,IAAIsE,EAAgBltB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAM0jB,YAEjC,OADAsG,EAAiB1mB,EAAOkE,GAAKlE,EAAO+H,EAC7BvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0jB,WAAYsG,IAElC,IAjmBmC,qCAkmB/B,GAAK1mB,EAAOqD,GAML,CACH,IAAIsjB,EAAmBC,GAAUlqB,EAAMilB,YAIvC,OAHAgF,EAAiBjhB,QAAQ,SAAAmhB,GACrBA,EAAUC,aAAaziB,MAAQwiB,EAAUxjB,GAAGgB,QAAUrE,EAAOqD,KAE1D7J,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgF,IAV9B,IAAIA,EAAmBC,GAAUlqB,EAAMilB,YAIvC,OAHAgF,EAAiBjhB,QAAQ,SAAAmhB,GACrBA,EAAUC,aAAaziB,OAAQ,IAE5B7K,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgF,IAUtC,IA7nB8B,gCA8nB1B,OAAOntB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB+lB,gCAAgC,IAEtD,IA/nByB,2BAgoBrB,OAAOjpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8lB,sBAAsB,IAE5C,IAjoBsB,wBAkoBlB,OAAOhpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8lB,sBAAsB,EAAOE,OAAQ1iB,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAEjF,IAnoBmB,qBAooBf,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8lB,sBAAsB,IAE5C,IAroBuC,yCAsoBnC,OAAOhpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBimB,mCAAmC,EAAMC,iCAAiC,IAEhG,IAvoBoC,sCAwoBhC,OAAOppB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBimB,mCAAmC,EAAOC,iCAAiC,IAEjG,IAzoBiC,mCA0oB7B,OAAOppB,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEIimB,mCAAmC,EACnCoE,6BAA8B,oCAGtC,IA9oBuC,yCA+oBnC,OAAOvtB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBomB,mCAAmC,IAEzD,IAhpBoC,sCAmpBpC,IAlpBiC,mCAmpB7B,OAAOtpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBomB,mCAAmC,IAEzD,IAnWyC,2CAoWrC,OAAOtpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqmB,oCAAoC,IAE1D,IArWsC,wCAsWlC,IAAM5V,EAAO,CAAC,WAAY,WAAY,WAAY,YAoBlD,OAlBAuY,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW3hB,EAAOgnB,OAC3ChnB,EAAO8E,GAAGD,KAAKoL,OAAOgX,cAAcvhB,QAAQ,SAAArJ,GACxC8Q,EAAKzH,QAAQ,SAAAxB,GACLwhB,EAAaxhB,GAAGG,QAAUhI,EAAE6qB,eAE5BxB,EAAaxhB,GAAGijB,MAAQ9qB,EAAE+qB,eAC1B1B,EAAaa,YAAYliB,MAAQod,GAA0BplB,EAAE+qB,kBAAoB7F,GACjFmE,EAAaO,QAAQ5hB,MAAQod,GAA0BplB,EAAE+qB,kBAAoB7F,GACzEllB,EAAEgrB,UACF3B,EAAaxhB,GAAG8d,QAAU7Y,YAA4B9M,EAAEgrB,WAExD3B,EAAaxhB,GAAG8d,QAAU3lB,EAAE2lB,cAK5C2D,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOhmB,EAAOgnB,KAAM,EAAGtB,GAC9BlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqmB,oCAAoC,EAAOpB,WAAYgE,IAE7E,IA3XmC,qCA4X/B,OAAOnsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqmB,oCAAoC,IAE1D,IAxVsB,wBAyVlB,OAAOvpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsmB,oBAAoB,IAE1C,IA1VmB,qBA6VnB,IA5VgB,kBA6VZ,OAAOxpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsmB,oBAAoB,IAE1C,IAzTiC,mCA0T7B,OAAOxpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBumB,8BAA8B,IAEpD,IA3T8B,gCA4T1B,OAAOzpB,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CACcumB,8BAA8B,EACxChH,MAAMziB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAMuf,MAAZ,CAAmBgG,eAAezoB,OAAAusB,GAAA,EAAAvsB,CAAKkD,EAAMuf,MAAMgG,gBAAlB9b,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAAqCwG,EAAO8E,GAAGD,KAAKoL,aAGlG,IAhU2B,6BAiUvB,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBumB,8BAA8B,IAEpD,IA7RmD,qDA8R/C,OAAOzpB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBymB,4CAA4C,IAElE,IA/RgD,kDAgS5C,IAAImE,EAAmBtnB,EAAO8E,GAAGD,KAAKoL,OAAOgX,cACzCM,EAAO,IAAIC,IA2Bf,OA1BA9qB,EAAMwmB,iBAAiBxd,QAAQ,SAAA+hB,GAC3B9B,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,YAC1B8D,EAAME,EAAcE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUojB,IAElD,IADA,IAAMta,EAAO,CAAC,WAAY,WAAY,WAAY,YAHhBwQ,EAAA,WAI7B,IAAIzZ,EAAKiJ,EAAJua,GAEN,GAA8B,MAD9BhC,EAAeC,EAAcF,IACZvhB,GAAGG,QAAiBqhB,EAAaxhB,GAAGgiB,aAAc,CAE/D,IAAIyB,EAAWL,EAAiB9d,KAAK,SAAA1E,GAAE,OAAIA,EAAGoiB,eAAiBxB,EAAaxhB,GAAGG,QAC3EsjB,IAAaJ,EAAKK,IAAID,EAAST,gBAC/BK,EAAKM,IAAIF,EAAST,cAClBxB,EAAaxhB,GAAGijB,MAAQQ,EAASP,eACjC1B,EAAaa,YAAYliB,MAAQod,GAA0BkG,EAASP,kBAAoB7F,GACxFmE,EAAaO,QAAQ5hB,MAAQod,GAA0BkG,EAASP,kBAAoB7F,GAEhFoG,EAASN,UACT3B,EAAaxhB,GAAG8d,QAAU7Y,YAA4Bwe,EAASN,WAE/D3B,EAAaxhB,GAAG8d,QAAU2F,EAAS3F,QAEvC2D,EAAcK,OAAOP,EAAK,EAAGC,MAhBzCgC,EAAA,EAAAA,EAAcva,EAAdvH,OAAA8hB,IAAoB/J,MAsBjBnkB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBymB,4CAA4C,EAAOxB,WAAYgE,EAAezC,iBAAkB,KAEtH,IA7T6C,+CA8TzC,OAAO1pB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBymB,4CAA4C,IAElE,KAAKW,GAED,OADE5f,EAAQlE,EAARkE,EAAG6D,EAAK/H,EAAL+H,EACEvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAXlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAmB0K,EAAI6D,IAE3B,IA9RyD,2DA+RrD,OAAOvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0mB,mDAAmD,IAEzE,IAhSsD,wDAkSlD,OAAqB,KADHwC,EAAW5lB,EAAO8E,GAAlCD,KAAOoL,OAAS2V,OACRhgB,OACCpM,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0mB,mDAAmD,KAGzEuC,EAAgBmC,aAAQprB,EAAMilB,WAAY,SAAAoG,GACtC,IAAM5a,EAAO,CAAC,WAAY,WAAY,WAAY,YADH/C,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAE/C,QAAA6R,EAAAC,EAAcud,EAAdtd,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EACI,IADiB,IAAZjV,EAAYoV,EAAAlG,MACjB2jB,EAAA,EAAAA,EAAc7a,EAAdvH,OAAAoiB,IAAoB,CAAf,IAAI9jB,EAAKiJ,EAAJ6a,GACN,GAAI7yB,EAAE+O,GAAGG,MAAO,KAAA0G,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IACZ,QAAAwS,EAAAC,EAAiBya,EAAjBnb,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAAwB,KAAf/R,EAAekS,EAAA7G,MACpB,GAAIlP,EAAE+O,GAAGG,QAAUrL,EAAKivB,UAAW,CAC/B,GAAG9yB,EAAEga,OAAO9K,MAAO,SACnBlP,EAAEga,OAAO9K,MAAQrL,EAAKmW,OACtBha,EAAEyqB,eAAevb,MAAQrL,EAAKunB,eAL1B,MAAA1V,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,MAJuB,MAAAJ,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,MA+B5C9Q,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0mB,mDAAmD,EAAOzB,WAAYgE,KAE5F,IAtUmD,qDAuU/C,OAAOnsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0mB,mDAAmD,IAEzE,QACI,OAAO1mB,aCz0BNwrB,GAAwB,iBACxBC,GAAyB,kBACzBC,GAA0B,mBAC1BC,GAAkB,WAClBC,GAA4B,qBAC5BC,GAAkB,WAClBC,GAAmB,YACnBC,GAAuB,gBACvBC,GAAkB,WCazBC,eACF,SAAAA,EAAYtxB,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAuxB,IACxB/sB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmvB,GAAA3sB,KAAA5E,KAAMC,EAAOiJ,KASjBI,kBAV4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAUR,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,wBAAAF,EAAAc,SAAAhB,EAAA1J,SAVQwE,EAa5BgtB,mBAb4B,eAAA3X,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAaP,SAAAmB,EAAO6mB,EAAWC,GAAlB,OAAAzE,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,wBAAAe,EAAAH,SAAAE,EAAA5K,SAbO,gBAAAyV,EAAAC,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EAwB5BmtB,qBAxB4B,eAAA1X,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwBL,SAAAyQ,EAAM0X,GAAN,OAAA3E,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OACnBtF,EAAKvE,MAAM4xB,gBAAgBD,GADR,wBAAAzX,EAAAzP,SAAAwP,EAAAla,SAxBK,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GAExBnO,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WAErB7H,EAAKotB,aAAeptB,EAAKvE,MAAM2xB,aAPPptB,wEAkCnB,IAAAkB,EAAA1F,KAAAD,EAC2BC,KAAKC,MAA9BC,EADFH,EACEG,QAAS0xB,EADX7xB,EACW6xB,aAEhB,OACIrR,EAAAhgB,EAAAC,cAACsxB,EAAA,iBAAD,CAAkB3vB,MAAOyd,GACrBW,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAQ,WAAWH,UAAWP,EAAQ0xB,cAC/CrR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYuR,QAAQ,gBAApB,iBACAxR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO2kB,EACP7hB,SAAU,SAAA9K,GAAC,OAAIS,EAAKisB,qBAAqB1sB,EAAE+H,OAAOC,QAClD+kB,MACIzR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIyR,WAAY,GACZC,KAAK,eACLjmB,GAAG,kBAIV+H,eAA2BuM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO6jB,GACzC5wB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADJ,kBAG3Bne,eAA2BuM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO8jB,GACzC7wB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADJ,oBAG1Bne,eAA2BC,eAA4BE,gBACzDoM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO+jB,GACb9wB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,oBAGEne,gBAA4BC,eAC9BsM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOgkB,GACb/wB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,aAGiCle,eAA4BE,eAA4BD,gBACzFqM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOikB,GACbhxB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,uBAKEne,eAA2BC,eAA4BE,gBACzDoM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOkkB,GACbjxB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,aAGEle,eAA4BE,eAA4BD,gBAC1DqM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOmkB,GACblxB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,cAGEle,eAA4BE,eAA4BD,gBAC1DqM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOokB,GACbnxB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,iBAOCne,eACDuM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOqkB,GACbpxB,QAAS,CAAC2I,SAAU3I,EAAQiyB,WADhC,sBA1FQ7tB,aAsHjBgM,eAZS,SAAAhL,GAGpB,MAAO,CAAC8oB,kBAFoB9oB,EAArB8oB,oBAKgB,SAAA/d,GACvB,MAAO,CACHsc,YAAa,SAACxE,EAAWiK,GAAZ,OAA2B/hB,EAASsc,GAAYxE,OAItD7X,CAA6CpO,qBAlB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,UACjBywB,aAAc,CAACnpB,MAAO,SACtB0pB,SAAU,CAAChrB,MAAO,WAesCjF,CAAmBqvB,KCrIzEc,oLACO,IAAAtyB,EAC+EC,KAAKC,MAAlFC,EADFH,EACEG,QAASoyB,EADXvyB,EACWuyB,YAAaC,EADxBxyB,EACwBwyB,eAAgBC,EADxCzyB,EACwCyyB,gBAAiBC,EADzD1yB,EACyD0yB,mBAE9D,OACIlS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKC,MAAMyyB,iBAAkBvuB,QAASnE,KAAKuyB,eAAgBryB,QAAS,CAACa,MAAOb,EAAQa,QAC9Fwf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAc8R,GACd/R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKxgB,KAAKC,MAAM6B,UACV2wB,GACElS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASuG,MAAO,aACjCoZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAASjgB,UAAWP,EAAQoe,OADhC,wCAOhBiC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASmrB,GAAlD,UACAhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASorB,GAAzD,wBArBOluB,aAyCZpC,wBAbA,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,UACjBJ,MAAO,CAAC4xB,SAAU,SAClBrU,KAAM,CAAClW,QAAS,eAAgBwqB,cAAe,YAUpC1wB,CAAmBmwB,IC3C9B/H,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAeV0vB,GAAkB,iCAAAhe,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACjCuG,EAASyiB,MADwBlpB,EAAAE,KAAA,EAGhBoL,KAAMC,IAAIhS,GAAU,mBAAoBoN,eAAwB6E,MAAM,SAAAnQ,GACnF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALR,YAG3BqJ,EAH2B9D,EAAAkE,MAU1BL,KAAKM,QAVqB,CAAAnE,EAAAE,KAAA,eAW7BuG,EAAS0iB,GAAwBrlB,EAAGD,KAAKoL,OAAO2V,QAXnB5kB,EAAA2L,OAAA,SAYtB,CAACxH,SAAS,EAAM1J,QAAS,KAZH,cAc7BgM,EAAS2iB,MAdoBppB,EAAA2L,OAAA,SAetB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAflB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAmBzBmgB,GAA4B,iBAAO,CACrCnjB,KAjCiC,iCAoC/BojB,GAA0B,SAAAE,GAAS,MAAK,CAC1CtjB,KApC8B,4BAqC9BsjB,cAGED,GAAuB,iBAAO,CAChCrjB,KAxC2B,2BA8DzBujB,GAA2B,iBAAO,CACpCvjB,KA9D+B,+BAiE7BwjB,GAAyB,SAAAC,GAAQ,MAAK,CACxCzjB,KAjE4B,0BAkE5ByjB,aAGEC,GAAsB,iBAAO,CAC/B1jB,KArEyB,yBA+GvB2jB,GAAwB,iBAAO,CACjC3jB,KA5G4B,4BA+G1B4jB,GAAsB,SAAA7lB,GAAE,MAAK,CAC/BiC,KA/GyB,uBAgHzBjC,OAGE8lB,GAAmB,iBAAO,CAC5B7jB,KAnHsB,sBAsHpB8jB,GAA2B,iBAAO,CACpC9jB,KA5H+B,+BA+H7B+jB,GAAyB,SAAAhmB,GAAE,MAAK,CAClCiC,KA/H4B,0BAgI5BjC,OAGEimB,GAAsB,iBAAO,CAC/BhkB,KAnIyB,yBAsIvB0M,GAAY,CACduX,0BAA0B,EAC1BX,UAAW,GACXY,yBAAyB,EACzBC,yBAAyB,EACzBC,sBAAsB,GAuDXC,GApDY,WAA+B,IAClDC,EAAaC,EADO5uB,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAGtD,OAAQsH,EAAO+G,MACX,IA1J6B,+BA2JzB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsuB,0BAA0B,IAEhD,IA5J0B,4BA6JtB,OAAOxxB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsuB,0BAA0B,EAAOX,UAAWrqB,EAAOqqB,YAEzE,IA9JuB,yBA+JnB,OAAO7wB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsuB,0BAA0B,IAEhD,IAhK2B,6BAiKvB,OAAOxxB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBuuB,yBAAyB,IAE/C,IAlKwB,0BAmKpB,IAAMxF,EAAM/oB,EAAM2tB,UAAUxE,UAAU,SAAA0F,GAAC,OAAIA,EAAEloB,KAAOrD,EAAOwqB,SAASnnB,KACpE,OAAa,IAAToiB,GACA4F,EAAW7xB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAM2tB,UAAU5E,GAASzlB,EAAOwqB,UAElDc,GADAA,EAAY9xB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAM2tB,YACGrE,OAAOP,EAAK,EAAG4F,GACpC7xB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBuuB,yBAAyB,EAAOZ,UAAWiB,KAE1D5uB,EAEX,IA3KqB,uBA4KjB,OAAOlD,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBuuB,yBAAyB,IAE/C,IA7K2B,6BA8KvB,OAAOzxB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwuB,yBAAyB,IAE/C,IA/KwB,0BAkLxB,IAjLqB,uBAkLjB,OAAO1xB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwuB,yBAAyB,IAE/C,IAnLwB,0BAoLpB,OAAO1xB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByuB,sBAAsB,IAE5C,IArLqB,uBAwLrB,IAvLkB,oBAwLd,OAAO3xB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByuB,sBAAsB,IAE5C,QACI,OAAOzuB,IC1MfglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QA6BjBixB,GAA0B,iBAAO,CACnCzkB,KAL+B,+BAQ7B0kB,GAAwB,SAAA3mB,GAAE,MAAK,CACjCiC,KAR4B,0BAS5BjC,OAGE4mB,GAAqB,iBAAO,CAC9B3kB,KAZyB,yBAevB0M,GAAY,CACdkY,wBAAwB,EACxBC,UAAW,EACXC,eAAgB,EAChBC,gBAAiB,EACjBC,SAAU,EACVzP,SAAU,EACV0P,QAAS,EACTC,MAAO,GAmBIC,GAhBQ,WAA+B,IAA9BxvB,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAClD,OAAQsH,EAAO+G,MACX,IA9B2B,6BA+BvB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBivB,wBAAwB,IAE9C,IAhCwB,0BAiCpB,OAAOnyB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBivB,wBAAwB,GAAU3rB,EAAO8E,GAAGD,KAAKoL,QAEvE,IAlCqB,uBAmCjB,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBivB,wBAAwB,IAE9C,QACI,OAAOjvB,yBC1DbyvB,GAAuB,CACzBC,QAAS,EACTC,SAAU,EACVC,OAAQ,GAGNC,eAEF,SAAAA,EAAYl1B,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAm1B,IACf3wB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+yB,GAAAvwB,KAAA5E,KAAMC,KAIVqJ,kBALmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAKC,SAAAC,IAAA,IAAAgE,EAAAulB,EAAAmC,EAAAC,EAAA5nB,EAAAgL,EAAA,OAAAwU,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACCtF,EAAKvE,MAAM4yB,kBADZ,WACVnlB,EADU9D,EAAAkE,MAERC,QAFQ,CAAAnE,EAAAE,KAAA,eAGZtF,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAHrEuF,EAAA2L,OAAA,oBAOY0d,EAAczuB,EAAKvE,MAAxCq1B,mBAAqBrC,UACxBmC,EAAkB7gB,YAAmB0e,GARzB,CAAArpB,EAAAE,KAAA,SAUZtF,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,sBAVlE1C,EAAAE,KAAA,wBAYRurB,EAAiB7wB,EAAK+wB,qBAEpB9nB,EAdMrL,OAAA+d,EAAA,EAAA/d,CAAA,CAeRiX,OAAQ,CACJmc,UAAWJ,EAAgB1gB,UAC3B+gB,QAASL,EAAgBzgB,QACzBoE,OAAQ5S,aAAaC,QAAQ,UAC7BsvB,eAAgBX,GAAqBM,KAEtC9kB,eArBK3G,EAAAE,KAAA,GAuBMtF,EAAKvE,MAAM01B,cAAcloB,GAvB/B,SAuBNgL,EAvBM7O,EAAAkE,MAwBHC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBmM,EAAIpU,UAxBxF,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SALDwE,EA2CnBoxB,WAAa,SAAAhE,GACTptB,EAAKvE,MAAM21B,WAAWhE,IA1CtBptB,EAAKc,MAAQ,GAFEd,oFAkCf,OAAI0P,cCpDU,SDsDHD,cCvDK,WDyDLD,cC1DI,eD0DR,mCASF,IAAAtO,EAAA1F,KAAAD,EAC+FC,KAAKC,MAAlGC,EADFH,EACEG,QADF21B,EAAA91B,EACW+1B,eAAiBrB,EAD5BoB,EAC4BpB,eAAgBE,EAD5CkB,EAC4ClB,SAAUD,EADtDmB,EACsDnB,gBAA4BxP,GADlF2Q,EACuErB,UADvEqB,EACkF3Q,UAEvF,OACI3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,KACnB,EAUA4S,eACEuM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ61B,gBAC1BxV,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa6uB,aAAcvB,GACrClU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWC,QAAS,kBAAM1B,EAAKkwB,WAAW,qBAAoBrV,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,QAE9EH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAINoT,eAA2BC,gBACzBsM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ61B,gBAC1BxV,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa6uB,aAActB,GACrCnU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWC,QAAS,kBAAM1B,EAAKkwB,WAAW,sBAAqBrV,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,QAE/EH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,sBAINoT,eAA2BC,gBACzBsM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ61B,gBAC1BxV,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa6uB,aAAcrB,GACrCpU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UACRC,QAAS,kBAAM1B,EAAKkwB,WAAW,wBAAuBrV,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,QAE9DH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,cAINoT,eAA2BC,gBACzBsM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ61B,gBAC1BxV,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa6uB,aAAc9Q,GACrC3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWC,QAAS,kBAAM1B,EAAKkwB,WAAW,cAAarV,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,QAEvEH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,aAIPsT,eACGqM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ61B,gBAC1BxV,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa6uB,aAAc9Q,GACrC3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWC,QAAS,kBAAM1B,EAAKkwB,WAAW,wBAAuBrV,EAAAhgB,EAAAC,cAAA,OACzEuiB,IAAKkT,KAAuBhT,IAAK,GAAIxiB,UAAWP,EAAQ+1B,0BAEhE1V,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,+BA3GC0D,aA+IVgM,eAbS,SAAAhL,GAGpB,MAAO,CAACgwB,mBAFqChwB,EAAtCgwB,mBAEqBQ,eAFiBxwB,EAAlBwwB,iBAKJ,SAAAzlB,GACvB,MAAO,CACHwiB,gBAAiB,kBAAMxiB,EAASwiB,OAChC8C,cAAe,SAAAtc,GAAM,OAAIhJ,EDtJJ,SAAAgJ,GAAM,sBAAAxE,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACnCuG,EAAS+jB,MAD0BxqB,EAAAE,KAAA,EAGlBoL,KAAMC,IAAIhS,GAAU,uBAAwBkW,GAAQjE,MAAM,SAAAnQ,GACvE,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALN,WAG7BqJ,EAH6B9D,EAAAkE,MAU3BL,KAV2B,CAAA7D,EAAAE,KAAA,eAW/BuG,EAASikB,MAXsB1qB,EAAA2L,OAAA,SAYxB,CAACxH,SAAS,EAAO1J,QAAS,wBAZF,WAc/BqJ,EAAGD,KAAKM,QAduB,CAAAnE,EAAAE,KAAA,gBAe/BuG,EAASgkB,GAAsB3mB,IAfA9D,EAAA2L,OAAA,SAgBxB,CAACxH,SAAS,EAAM1J,QAAS,KAhBD,eAkB/BgM,EAASikB,MAlBsB1qB,EAAA2L,OAAA,SAmBxB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBhB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GCsJOgjB,CAActc,OAIzC/I,CAA6CpO,qBAnB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,WACrB40B,eAAgB,CAACG,UAAW,SAAUntB,OAAQ,SAAU2V,SAAU,QAClEuX,sBAAuB,CAACvX,SAAU,SAgBsBxc,CAAmBizB,KEhIzEgB,eAEF,SAAAA,EAAYl2B,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAm2B,IACxB3xB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+zB,GAAAvxB,KAAA5E,KAAMC,EAAOiJ,KAiCjByoB,qBAlC4B,eAAA9c,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkCL,SAAAC,EAAMkoB,GAAN,IAAAzJ,EAAA0E,EAAA,OAAAI,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACfqe,EAAY,GACZ0E,GAAa,EAFEjjB,EAAAwsB,GAIXxE,EAJWhoB,EAAAE,KAAAF,EAAAwsB,KAKVtF,GALU,EAAAlnB,EAAAwsB,KAQVrF,GARU,EAAAnnB,EAAAwsB,KAWVpF,GAXU,EAAApnB,EAAAwsB,KAeVnF,GAfU,GAAArnB,EAAAwsB,KAmBVlF,GAnBU,GAAAtnB,EAAAwsB,KAuBVjF,GAvBU,GAAAvnB,EAAAwsB,KA2BVhF,GA3BU,GAAAxnB,EAAAwsB,KAmCV/E,GAnCU,GAAAznB,EAAAwsB,KAwCV9E,GAxCU,0BAMXnJ,EAAYrE,EANDla,EAAA2L,OAAA,0BASX4S,EAAYpE,EATDna,EAAA2L,OAAA,0BAYX4S,EAAYnE,GACR/P,eAA4BE,iBAA0B0Y,GAAa,GAb5DjjB,EAAA2L,OAAA,2BAgBX4S,EAAY5D,IACRtQ,eAA4BE,iBAA0B0Y,GAAa,GAjB5DjjB,EAAA2L,OAAA,2BAoBPtB,eAA4BE,eAA4BD,iBAAwB2Y,GAAa,GACjG1E,EAAYlE,EArBDra,EAAA2L,OAAA,2BAwBPtB,eAA4BE,iBAA0B0Y,GAAa,GACvE1E,EAAYjE,EAzBDta,EAAA2L,OAAA,2BA4BPtB,eAA4BE,eAA4BD,cACxD2Y,GAAa,EACN7Y,gBACP6Y,GAAa,GAEjB1E,EAAYhE,GAjCDva,EAAA2L,OAAA,2BAoCPtB,eAA4BE,eAA4BD,iBAAwB2Y,GAAa,GACjG1E,EAAY/D,GArCDxa,EAAA2L,OAAA,2BAyCX4S,EAAY7D,GAzCD1a,EAAA2L,OAAA,oBA4CX8gB,QAAQC,IAAI,sBA5CD,QA8CnB9xB,EAAK+xB,WAAWC,mBAAmB,CAACvP,WAAY,IAChDziB,EAAKU,SAAS,CACV2nB,WAAYA,EACZ1E,UAAWA,EACXsO,aAAc,GACf,WAAKjyB,EAAKkyB,kBAnDM,yBAAA9sB,EAAAc,SAAAhB,EAAA1J,SAlCK,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GAAAnO,EAiH5B6c,aAAe,SAACpc,EAAGsc,GACf,IAAIkV,EAEJ,OAAQlV,GACJ,IAAK,QACDkV,EAAe,EACf,MAEJ,IAAK,OACDA,EAAejyB,EAAKc,MAAMmxB,aAAc,EACxC,MAEJ,IAAK,OACDA,EAAejyB,EAAKc,MAAMmxB,aAAe,EACzC,MAEJ,IAAK,OACDA,EAAejyB,EAAK+xB,WAAWvP,oBAC/B,MAEJ,QACIyP,EAAelV,EAGvB/c,EAAKU,SAAS,CAACuxB,aAAcA,GACzB,WACIjyB,EAAKkyB,mBA3IWlyB,EAiJ5B8e,OAAS,SAAAd,GAC2B,qBAA5Bhe,EAAKc,MAAMssB,cAAqCptB,EAAKvE,MAAMkO,QAAQC,KAAK,yBAA2BoU,EAAIvW,IAC3E,oBAA5BzH,EAAKc,MAAMssB,cAAoCptB,EAAKvE,MAAMkO,QAAQC,KAAK,2BAA6BoU,EAAIvW,KAnJpFzH,EAsJ5Bgf,SAAW,SAAAhB,GACPhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMiE,cAAenU,KAvJ9Bhe,EA0J5BguB,gBA1J4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA0JV,SAAAmB,IAAA,IAAAyC,EAAAspB,EAAAxO,EAAA1a,EAAAC,EAAA0kB,EAAA,OAAAnF,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAuD,EACqB7I,EAAKc,MAAjCqxB,EADOtpB,EACPspB,cAAexO,EADR9a,EACQ8a,UAChB1a,EAAO,CAACxB,GAAI0qB,EAAc1qB,IAFlBpB,EAAAf,KAAA,EAGGtF,EAAKvE,MAAMwtB,UAAUhgB,GAHxB,QAGRC,EAHQ7C,EAAAiD,MAIPC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,SAAWqqB,EAAczO,MAAQ,WAClDwK,kBAAkB,EAClBiE,cAAe,KAEbvE,EAAaxsB,YAAe,kBAClCpB,EAAKvE,MAAM0sB,YAAY,CAACxE,YAAW0E,WAAYuF,EAAYrL,eAAgBviB,EAAK2c,YAAakG,UAAU,KAEvG7iB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,EAClBiE,cAAe,KApBT,wBAAA9rB,EAAAH,SAAAE,EAAA5K,SA1JUwE,EAmL5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,EAAOiE,cAAe,MApL/BnyB,EAuL5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAxLL5H,EA2L5BoyB,qBAAuB,SAAAhF,GACnBptB,EAAKU,SAAS,CAAC0sB,kBA1LfptB,EAAKc,MAAQ,CACTssB,aAAc,GACdzJ,UAAW,GACX0E,YAAY,EACZ6F,kBAAkB,EAClBiE,cAAe,GACfvqB,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBoqB,aAAc,GAElBjyB,EAAK2c,YAAc,IACnB3c,EAAK+xB,WAAa,IAAIzP,GAAW,CAACC,eAAgBviB,EAAK2c,cAd/B3c,mFAkBpBwP,cACAhU,KAAKkF,SAAS,CAAC0sB,aAAcb,GAAwB5I,UAAWpE,IACzD9P,cACPjU,KAAKkF,SAAS,CAAC0sB,aAAcZ,GAAyB7I,UAAWnE,IAC1D9P,eACPlU,KAAKkF,SAAS,CAAC0sB,aAAcV,GAA2B/I,UAAWlE,+CAIxDwN,EAAWC,GACH1xB,KAAKC,MAArB2xB,aACHF,EAAUE,eAAiB5xB,KAAKsF,MAAMssB,cAA4C,KAA5B5xB,KAAKsF,MAAMssB,cACjE5xB,KAAK2xB,qBAAqB3xB,KAAKsF,MAAMssB,6KA6DT,IAA7B5xB,KAAKu2B,WAAWtP,WACfI,EAAY,GAEQrnB,KAAKu2B,WAAWM,SAAS72B,KAAKsF,MAAMmxB,cACxDpP,EAAYrnB,KAAKu2B,WAAWlP,oBAGfrnB,KAAKC,MAAM0sB,YAAY,CACpCxE,UAAWnoB,KAAKsF,MAAM6iB,UACtB0E,WAAY7sB,KAAKsF,MAAMunB,WACvB9F,eAAe/mB,KAAKmhB,YACpBkG,UAAWA,YAJT3Z,UAOEK,SAGJ/N,KAAKu2B,WAAWC,mBAAmB,CAACvP,WAAYvZ,EAAGmL,OAAOoO,aAC1DjnB,KAAKkF,SAAS,CAAC+hB,WAAYvZ,EAAGmL,OAAOoO,cAHrCjnB,KAAKkF,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,6IAsF9CrE,KAAKC,MAApCmuB,kBAAoB9C,OADvB,IAAApc,EAEoFlP,KAAKsF,MAAvF6iB,EAFFjZ,EAEEiZ,UAAWyJ,EAFb1iB,EAEa0iB,aAAcc,EAF3BxjB,EAE2BwjB,iBAF3BoE,EAAA5nB,EAE6CynB,cAAgBzO,EAF7D4O,EAE6D5O,MAAO6O,EAFpED,EAEoEC,YAEzE,OACIxW,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACw2B,GAAD,CAActE,iBAAkBA,EAC5BJ,YAAa,yCACbC,eAAgBvyB,KAAKuyB,eAAgBC,gBAAiBxyB,KAAKwyB,iBAC3DjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUsnB,KAGvC3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUm2B,OAM/CxW,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACy2B,GAAD,CAAYrB,WAAY51B,KAAK42B,wBAEjCrW,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,UAAmCZ,KAAKu2B,WAAWnP,kBAEvD7G,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIC,QAAS,YACvCkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC02B,GAAD,CACItF,aAAcA,EACdC,gBAAiB7xB,KAAK42B,yBAKlCrW,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC22B,GAAD,CACItN,aAAc7pB,KAAKC,MAAMmuB,kBAAkB9C,OAC3ChI,OAAQtjB,KAAKsjB,OACbE,SAAUxjB,KAAKwjB,SACf2E,UAAWA,EACX9G,aAAcrhB,KAAKqhB,aACnBF,YAAanhB,KAAKmhB,YAClBI,KAAMvhB,KAAKsF,MAAMmxB,aAAe,EAChCjV,MAAOxhB,KAAKu2B,WAAWnP,qBAKvC7G,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BA9PrD/H,aAqRTgM,eAbS,SAAAhL,GAGpB,MAAO,CAAC8oB,kBAFoB9oB,EAArB8oB,oBAKgB,SAAA/d,GACvB,MAAO,CACHsc,YAAa,SAAA1S,GAAA,IAAEkO,EAAFlO,EAAEkO,UAAWiP,EAAbnd,EAAamd,WAAYrQ,EAAzB9M,EAAyB8M,eAAgBM,EAAzCpN,EAAyCoN,UAAzC,OAAwDhX,EAASsc,GAAY,CAACxE,YAAWiP,aAAYrQ,iBAAgBM,gBAClIoG,UAAW,SAAAhgB,GAAI,OAAI4C,EAASod,GAAUhgB,OAI/B6C,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAgBmCe,CAAmBi0B,0CCtTlEkB,GAA6B,SAAAxiB,GAAwB,IAAtBrE,EAAsBqE,EAAtBrE,QAAS8mB,EAAaziB,EAAbyiB,QAC7CC,EAAqB,GACrBC,EAAmB,GAcvB,OAbAhnB,EAAQlC,QAAQ,SAAA5N,GACZ82B,EAAiBppB,KAAK1N,EAAOkP,SAEjC2nB,EAAmBnpB,KAAKopB,GAExBF,EAAQhpB,QAAQ,SAAAogB,GACZ,IAAI+I,EAAe,GACnBjnB,EAAQlC,QAAQ,SAAA5N,GACZ+2B,EAAarpB,KAAKsgB,EAAOhuB,EAAOmB,QAEpC01B,EAAmBnpB,KAAKqpB,KAGrBF,GCALG,eAEF,SAAAA,EAAYz3B,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA03B,IACflzB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAs1B,GAAA9yB,KAAA5E,KAAMC,KAOV03B,WAAa,WAAM,IAAA53B,EACYyE,EAAKvE,MAAzBq3B,EADQv3B,EACRu3B,QAAS9mB,EADDzQ,EACCyQ,QAEZ+mB,EAAqBF,GAA2B,CAACC,UAAS9mB,YACxDonB,EAAKC,SAAWC,aAAaP,GAC7BQ,EAAKF,SAAWG,WACtBH,SAAWI,kBAAkBF,EAAIH,EAAI,WAErCC,aAAeE,EAAI,oBAdnBvzB,EAAKc,MAAQ,CACTmI,KAAM,CAAC,CAAC,IAAK,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,IAC/ByqB,IAAK,CAAC,CAAChG,KAAM,SAAUiG,QAAS,QAJrB3zB,wEAoBf,OACI+b,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAK23B,YAHlB,iBAvBuBzvB,IAAM5D,WAqC1BpC,wBAFA,GAEAA,CAAmBw1B,ICzB5BU,+LAGEtpB,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,+CAGK,IAAA5D,EACkGC,KAAKC,MAArGC,EADFH,EACEG,QAA6BkrB,EAD/BrrB,EACWquB,kBAAoBhD,qBAQ9BiN,GATDt4B,EACsD+1B,eAAiBvB,uBACzC3uB,YAAe,CAACrH,OAEvBqH,YAAe,CAACnH,KAAqCC,KAC7EC,KAAqCC,KAAoCC,KACzEC,KAAoCC,KAAiCC,KACrEC,KAAiCC,KAAmCC,KAAqCC,MAAoC,MAErHwG,YAAe,CAACzH,KAAyBC,KAAmCC,KAA0BC,KAAwCC,KAA2BC,MAAsC,OAE3O,OACI+hB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACxC4oB,GAAuB9X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC9B2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,QAASV,UAAWirB,GACtC7K,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC83B,GAAD,CAAWnqB,QAASnO,KAAKC,MAAMkO,wBA5B/CjG,IAAM5D,WAmEfgM,eA1BS,SAAUhL,GAG9B,MAAO,CACHizB,eAHwDjzB,EAArDizB,eAGanK,kBAHwC9oB,EAArC8oB,kBAGgB0H,eAHqBxwB,EAAlBwwB,iBAOnB,SAAUzlB,GACjC,MAAO,IAiBIC,CAA6CpO,qBAd7C,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,UACjBJ,MAAMqB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMpB,MAAZ,CAAmBy3B,UAAW,QACnCC,KAAM,CACFrwB,QAAS,OACTswB,oBAAqB,iBACrBC,QAAS,MACTzC,UAAW,SACXntB,OAAQ,WAEZ6vB,YAAa,CAACC,eAAgB,QAC9Bh4B,MAAO,CAACkI,OAAQ,eAGwC7G,CAAmBk2B,KC/FlEU,GAAe,yBCAfC,GAAgB,SAAA/G,GACzB,MAAO,CAACpiB,MAAOoiB,EAAO/kB,MAAO+kB,IAGpBgH,GAAqB,SAAAC,GAC9B,OAAOA,EAAMx3B,IAAI,SAAAy3B,GAAC,MAAK,CAACtpB,MAAOspB,EAAEC,YAAalsB,MAAOisB,EAAEhH,SCArDkH,eACF,SAAAA,EAAYn5B,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAo5B,IACf50B,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAg3B,GAAAx0B,KAAA5E,KAAMC,KAQVqJ,kBAAoB,WAChB,GAAG9E,EAAKvE,MAAMgN,MAAM,CAChB,IAAIosB,EAAa9yB,IAAO/B,EAAKvE,MAAMgN,MAAO,cAC1C,IAAIosB,EAAWC,UAAW,OAE1B,IAAIC,EAAkBF,EAAW7yB,OAAO,cACxChC,EAAKU,SAAS,CAACs0B,YAAaD,MAfjB/0B,EAmBnBgtB,mBAAqB,SAACC,EAAWC,GAE7B,GAAGA,EAAU8H,cAAgBh1B,EAAKc,MAAMk0B,YAAY,CAChD,IAAIh1B,EAAKc,MAAMk0B,YAAa,OAC5B,GAAGh1B,EAAKc,MAAMk0B,YAAYhrB,OAAS,GAG/B,OAFAhK,EAAKU,SAAS,CAACu0B,cAAc,EAAO3pB,WAAY,UAChDtL,EAAKvE,MAAM8P,SAAS,CAAC/C,OAAQ,CAACC,MAAO,MAIzC,IAAIzI,EAAKk1B,uBAAuBl1B,EAAKc,MAAMk0B,aAEvC,YADAh1B,EAAKU,SAAS,CAACu0B,cAAc,EAAM3pB,WAAY,iBAInD,IAAIupB,EAAa9yB,IAAO/B,EAAKc,MAAMk0B,YAAa,cAEhD,IAAIH,EAAWC,UAEX,YADA90B,EAAKU,SAAS,CAACu0B,cAAc,EAAM3pB,WAAY,iBAG/CtL,EAAKU,SAAS,CAACu0B,cAAc,EAAO3pB,WAAYupB,EAAW7yB,OAAO,iBAClE,IAAImzB,EAAgBN,EAAW7yB,OAAO,cACtChC,EAAKvE,MAAM8P,SAAS,CAAC/C,OAAQ,CAACC,MAAO0sB,KAK7C,GAAGlI,EAAUxkB,QAAUzI,EAAKvE,MAAMgN,MAAM,CAEpC,IAAIzI,EAAKvE,MAAMgN,MACQ1G,IAAOkrB,EAAUxkB,MAAO,cAC3BqsB,WAAW90B,EAAKU,SAAS,CAACs0B,YAAa,GAAIC,cAAc,EAAO3pB,WAAY,KAGhG,IAAIupB,EAAa9yB,IAAO/B,EAAKvE,MAAMgN,MAAO,cAC1C,IAAIosB,EAAWC,UAAW,OAE1B,IAAIC,EAAkBF,EAAW7yB,OAAO,cACxChC,EAAKU,SAAS,CAACs0B,YAAaD,MA1DjB/0B,EA+DnBuL,SA/DmB,eAAA8E,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA+DR,SAAAC,EAAOzE,GAAP,IAAA20B,EAAAD,EAAA,OAAA1M,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACP7E,EAAE40B,iBACED,EAAW30B,EAAE+H,OAAOC,MACpB0sB,EAAgB,KACjBC,EAASprB,OAAS,IAJd,CAAA5E,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,sBAMGqkB,EAASprB,OAAS,GANrB,CAAA5E,EAAAE,KAAA,gBAOHtF,EAAKU,SAAS,CAACs0B,YAAaG,IAPzB/vB,EAAA2L,OAAA,sBAUA/Q,EAAKs1B,wBAAwBF,EAASA,EAASprB,OAAO,IAVtD,CAAA5E,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,qBAWHokB,EAAgBn1B,EAAKu1B,UAAUH,IAC5Bp1B,EAAKw1B,6BAA6BL,GAZlC,CAAA/vB,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,kBAaH/Q,EAAKU,SAAS,CAACs0B,YAAaG,IAbzB,yBAAA/vB,EAAAc,SAAAhB,EAAA1J,SA/DQ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GAAAnO,EAgFnBw1B,6BAA+B,SAACnoB,GAC5B,IAAIooB,EAAWpoB,EAAOd,MAAM,KACxBmpB,GAAoB,EAUxB,OATGD,EAASzrB,OAAS,GACdyrB,EAAS,GAAGzrB,OAAS,IAAG0rB,GAAoB,GAEhDD,EAASzrB,OAAS,GACdyrB,EAAS,GAAGzrB,OAAS,IAAG0rB,GAAoB,GAEhDD,EAASzrB,OAAS,GACdyrB,EAAS,GAAGzrB,OAAS,IAAG0rB,GAAoB,GAE5CA,GA5FQ11B,EA+FnBk1B,uBAAyB,SAACS,GACtB,IAAIF,EAAWE,EAAWppB,MAAM,KAC5BqpB,GAAqB,EAKzB,OAJuB,IAApBH,EAASzrB,SAAc4rB,GAAqB,GAC5CH,EAAS,GAAK,KAAIG,GAAqB,GACvCH,EAAS,GAAK,KAAIG,GAAqB,IACvCH,EAAS,GAAK,MAAQA,EAAS,GAAK,QAAMG,GAAqB,GAC3DA,GAtGQ51B,EAyGnBs1B,wBAA0B,SAACjoB,GAEvB,QAASA,EAAOwoB,MADO,cA1GR71B,EA8GnBu1B,UAAY,SAACO,GACT,IAAIX,EAAgBW,EACpB,OAAyC,IAAtC91B,EAAK+1B,gBAAgBD,GAA2BA,GAEzB,IAAvBA,EAAY9rB,QACRhK,EAAK+1B,gBAAgBD,GAAe,IACnCX,EAAgBW,EAAYriB,OAAO,EAAE,GAAK,IAAMqiB,EAAYriB,OAAO,IAGjD,IAAvBqiB,EAAY9rB,QACRhK,EAAK+1B,gBAAgBD,GAAe,IACnCX,EAAgBW,EAAYriB,OAAO,EAAG,GAAK,IAAMqiB,EAAYriB,OAAO,IAGrE0hB,IA5HQn1B,EA+HnB+1B,gBAAkB,SAAC1oB,GACf,IACI2oB,EAAa3oB,EAAOwoB,MADP,QAEjB,OAAIG,EACQA,EAAWhsB,OADA,GAlIRhK,EAuInBi2B,kBAAoB,SAACC,GACC,MACHhsB,KAAKgsB,GAIpB,OADU,cACEhsB,KAAKgsB,IA3IjBl2B,EAAKc,MAAQ,CACTk0B,YAAa,GACbC,cAAc,EACd3pB,WAAY,IALDtL,wEAgJV,IAAAkB,EAAA1F,KACL,OACIugB,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU+O,QACzBqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,OACLgrB,YAAY,aACZ1uB,GAAIjM,KAAKC,MAAM4B,IACfkO,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKqK,SAAS6qB,IACnCr5B,MAAOvB,KAAKC,MAAM6P,WAAa,CAACrH,MAAO,OAAQoyB,OAAQ,IAAM3qB,GAAO/O,UAAU25B,UAAU5qB,OACxFjD,MAAOjN,KAAKsF,MAAMk0B,YAClB54B,QAAQ,WACRiP,MAAO7P,KAAKsF,MAAMm0B,cAAgBz5B,KAAKC,MAAM4P,MAC7CC,WAAY9P,KAAKsF,MAAMwK,YAAc9P,KAAKC,MAAM6P,WAChDiQ,SAAU/f,KAAKC,MAAM8f,WAAY,YA9JvB7X,IAAM5D,WAsK9B4L,GAAS,CACX/O,UAAW,CACP+O,OAAQ,CAACzH,MAAO,QAChBqyB,UAAW,CACP5qB,OAAQ,CAACzH,MAAO,WAeb2wB,MCtLT2B,eACF,SAAAA,EAAY96B,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA+6B,IACfv2B,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA24B,GAAAn2B,KAAA5E,KAAMC,KAMV+6B,kBAAoB,SAACn5B,EAAK+4B,GACtB,IAAIK,EAAS74B,OAAA+d,EAAA,EAAA/d,CAAA,GAAOoC,EAAKc,MAAM21B,WAC3BhuB,EAAQ2tB,EAAM5tB,OAAOC,MACzBguB,EAAUp5B,GAAOoL,EACjBzI,EAAKU,SAAS,CAAC+1B,UAAWA,IAC1Bz2B,EAAKvE,MAAM4M,cAAchL,EAAKoL,IAZfzI,EAenB02B,kBAAoB,SAACr5B,EAAK+4B,GACtB,IAAIK,EAAS74B,OAAA+d,EAAA,EAAA/d,CAAA,GAAOoC,EAAKc,MAAM21B,WAC3BhuB,EAAQ2tB,EAAM5tB,OAAOmuB,MACzBF,EAAUp5B,GAAOoL,EACjBzI,EAAKU,SAAS,CAAC+1B,UAAWA,IAC1Bz2B,EAAKvE,MAAM4M,cAAchL,EAAKoL,IApBfzI,EAuBnB42B,oBAAsB,SAACv5B,EAAK+4B,GACxB,IAAI3tB,EAAQ2tB,EAAM5tB,OAAOC,MACrBguB,EAAS74B,OAAA+d,EAAA,EAAA/d,CAAA,GAAOoC,EAAKc,MAAM21B,WAC/BA,EAAUp5B,GAAOoL,EACjBzI,EAAKU,SAAS,CAAC+1B,UAAWA,IAC1Bz2B,EAAKvE,MAAM4M,cAAchL,EAAKoL,IA5BfzI,EA+BnB62B,kBAAoB,SAACx5B,EAAKoL,GACtB,IAAIguB,EAAS74B,OAAA+d,EAAA,EAAA/d,CAAA,GAAOoC,EAAKc,MAAM21B,WAC/BA,EAAUp5B,GAAOoL,EACjBzI,EAAKU,SAAS,CAAC+1B,UAAWA,IAC1Bz2B,EAAKvE,MAAM4M,cAAchL,EAAKoL,IAnCfzI,EAsCnB82B,0BAA4B,SAACz5B,EAAI05B,GAC7B/2B,EAAKvE,MAAM4M,cAAchL,EAAI05B,EAAS3rB,OAClCpL,EAAKvE,MAAMu7B,QAAQh3B,EAAKvE,MAAMu7B,OAAO,CAAC35B,MAAKoL,MAAOsuB,EAAS3rB,SAxChDpL,EA2CnBi3B,YAAc,SAAC55B,EAAK+4B,GAChB,IAAI3tB,EAAQ2tB,EAAM5tB,OAAOC,MACrBzI,EAAKvE,MAAMu7B,QAAQh3B,EAAKvE,MAAMu7B,OAAO,CAAC35B,MAAKoL,WA3C/CzI,EAAKc,MAAQ,CACT21B,UAAW,IAHAz2B,yFAoDf,IAFkC,IAAd3C,EAAcgT,EAAdhT,IAAI65B,EAAU7mB,EAAV6mB,SAEf/5B,EAAG,EAAGA,EAAE+5B,EAASltB,OAAQ7M,IAC9B,GAAI3B,KAAKC,MAAM07B,WAAW95B,KAAS65B,EAAS/5B,GAAI,OAAO,EAE3D,OAAO,uCAGEi6B,GAAU,IAAAl2B,EAAA1F,KAEf67B,EAAgB,GASpB,OANIA,EAFA77B,KAAKC,MAAM07B,WAAWC,EAAU/5B,WAAuDP,IAA/CtB,KAAKC,MAAM07B,WAAWC,EAAU/5B,KAAK+N,MAE7DmpB,GAAc/4B,KAAKC,MAAM07B,WAAWC,EAAU/5B,MAE9C7B,KAAKC,MAAM07B,WAAWC,EAAU/5B,KAMhD0e,EAAAhgB,EAAAC,cAAA,OAAKe,MAAOa,OAAOyF,OAAO,GACtBqI,GAAO/O,UAAU26B,cAActZ,IAAItS,OACnC,CAACzH,MAAK,GAAAsG,OAAK,IAAM/O,KAAKC,MAAM87B,QAAtB,OACPl6B,IAAK+5B,EAAU/5B,KAEd0e,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAAS9rB,QACpDqQ,EAAAhgB,EAAAC,cAAA,OACIe,MAAO2O,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASC,aAAa/rB,QAC5C,WAAnB0rB,EAAUjsB,MAAqB4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAC5B5f,QAAQ,YACRW,MAAO2O,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASC,aAAarsB,MAAMM,QAErE0rB,EAAUhsB,QAInB2Q,EAAAhgB,EAAAC,cAAA,OACIe,MAAO2O,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAahsB,SAE3C,SAAnB0rB,EAAUjsB,MACW,aAAnBisB,EAAUjsB,OACTisB,EAAUjsB,OAEX4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAI2vB,EAAU/5B,IACd8N,KAAMisB,EAAUjsB,KAChBI,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKs1B,kBAAkBY,EAAU/5B,IAAK+4B,IAC3Dr5B,MAAOq6B,EAAU9rB,WAAa,CAACrH,MAAO,OAAQoyB,OAAQ,IAAM3qB,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAalK,MAAM9hB,OAC3HjD,MAAOjN,KAAKC,MAAM07B,WAAWC,EAAU/5B,MAAQ,GAC/CjB,QAAQ,WACRiP,MAAO+rB,EAAU/rB,MACjBC,WAAY8rB,EAAU9rB,WACtB0rB,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,IAIlB,SAAnB6b,EAAUjsB,MAAmB4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACxBvU,GAAI2vB,EAAU/5B,IACd8N,KAAMisB,EAAUjsB,KAChBI,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKw1B,kBAAkBU,EAAU/5B,IAAK+4B,IAC3Dr5B,MAAOq6B,EAAU9rB,WAAa,CAACrH,MAAO,OAAQoyB,OAAQ,IAAM3qB,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAalK,MAAM9hB,OAC3HtP,QAAQ,WACRkP,WAAY8rB,EAAU9rB,WACtB0rB,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,IAIpB,SAAnB6b,EAAUjsB,MACP4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAI2vB,EAAU/5B,IACd8N,KAAMisB,EAAUjsB,KAChBI,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKs1B,kBAAkBY,EAAU/5B,IAAK+4B,IAC3Dr5B,MAAOq6B,EAAU9rB,WAAa,CAACrH,MAAO,OAAQoyB,OAAQ,IAAM3qB,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAalK,MAAM9hB,OAC3HjD,WAAiD3L,IAAzCtB,KAAKC,MAAM07B,WAAWC,EAAU/5B,KAAqB0E,IAAOvG,KAAKC,MAAM07B,WAAWC,EAAU/5B,MAAM2E,OAAO,cAAgB,GACjI5F,QAAQ,WACRkP,WAAY8rB,EAAU9rB,WACtB0rB,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,IAIpB,sBAAnB6b,EAAUjsB,MACX4Q,EAAAhgB,EAAAC,cAAC27B,GAAD,CACIlwB,GAAI2vB,EAAU/5B,IACdkO,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKs1B,kBAAkBY,EAAU/5B,IAAK+4B,IAC3Dr5B,MAAOq6B,EAAU9rB,WAAa,CAACrH,MAAO,OAAQoyB,OAAQ,IAAM3qB,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAalK,MAAM9hB,OAC3HjD,WAAiD3L,IAAzCtB,KAAKC,MAAM07B,WAAWC,EAAU/5B,KAAqB0E,IAAOvG,KAAKC,MAAM07B,WAAWC,EAAU/5B,MAAM2E,OAAO,cAAgB,GACjI5F,QAAQ,WACRkP,WAAY8rB,EAAU9rB,WACtB0rB,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,IAIf,cAAnB6b,EAAUjsB,MACR4Q,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAI2vB,EAAU/5B,IACd8N,KAAM,OACNI,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAKs1B,kBAAkBY,EAAU/5B,IAAK+4B,IAC3D3tB,MAAOjN,KAAKC,MAAM07B,WAAWC,EAAU/5B,KACvCN,MAAO2O,GAAO/O,UAAU26B,cAActZ,IAAIwZ,SAASE,aAAaE,UAAUlsB,OAC1EtP,QAAQ,WACRw7B,WAAS,EACTza,KAAMia,EAAUS,cAChBb,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,KAKxB,WAAnB6b,EAAUjsB,MACP4Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAI2vB,EAAU/5B,IACdy6B,QAAM,EACNrvB,MAAOjN,KAAKC,MAAM07B,WAAWC,EAAU/5B,KACvCkO,SAAU,SAAC6qB,GAAD,OAAWl1B,EAAK01B,oBAAoBQ,EAAU/5B,IAAK+4B,IAC7DY,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,GAE/B6b,EAAUW,QAAQ96B,IAAI,SAAA+6B,GAAM,OACzBjc,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAOuvB,EAAQ36B,IAAK26B,GAASA,MAK/B,UAAnBZ,EAAUjsB,MACP4Q,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAK+5B,EAAU/5B,KAEZ+5B,EAAUW,QAAQ96B,IAAI,SAAA+6B,GAAM,OACxBjc,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAK26B,EAAOvvB,MAAO1L,MAAO,CAAC6G,QAAS,iBACrCmY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIsC,QAASpd,EAAKzF,MAAM07B,WAAWC,EAAU/5B,OAAS26B,EAAOvvB,MACzD8C,SAAU,kBAAMrK,EAAK21B,kBAAkBO,EAAU/5B,IAAK26B,EAAOvvB,QAC7DA,MAAOuvB,EAAOvvB,MACdilB,KAAK,oBACLsJ,OAAQ,SAACZ,GAAD,OAASl1B,EAAK+1B,YAAYG,EAAU/5B,IAAK+4B,IACjD7a,SAAU6b,EAAU7b,WAAY,IAEpCQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIjf,MAAO,CAAC6G,QAAS,iBADrB,IACwCo0B,EAAO5sB,MAD/C,SAQA,iBAAnBgsB,EAAUjsB,MACP4Q,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAK+5B,EAAU/5B,KAChB0e,EAAAhgB,EAAAC,cAACi8B,GAAA,EAAD,CACIxvB,MAAO4uB,EACP9rB,SAAU,SAAAY,GAAC,OAAIjL,EAAK41B,0BAA0BM,EAAU/5B,IAAK8O,IAC7D4rB,QAASX,EAAUW,QACnBG,WAAYd,EAAU7b,gDAY7C,IAAA4c,EAAA38B,KACL,OACIugB,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU+O,QAEzBqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU26B,cAAc5rB,QAEtClQ,KAAKC,MAAM28B,WAAWn7B,IAAI,SAAAm6B,GACvB,OAAKA,EAAUiB,iBACRF,EAAKG,uBAAuBlB,EAAUiB,kBAC9BF,EAAKI,aAAanB,GAElB,KAIJe,EAAKI,aAAanB,KAKhC57B,KAAKC,MAAM+8B,aACRzc,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU26B,cAAcmB,OAAO/sB,QAC9CqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU26B,cAAcmB,OAAOC,WAAWhtB,QACzDqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,UACNwI,KAAK,SACL/O,QAAQ,YACRmgB,KAAK,QACL3Z,QAASpH,KAAKm9B,WACd57B,MAAO2O,GAAO/O,UAAU26B,cAAcmB,OAAOC,WAAWE,IAAIltB,QANhE,YAYJqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU26B,cAAcmB,OAAOC,WAAWhtB,QACzDqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,SACL/O,QAAQ,WACRmgB,KAAK,QACL3Z,QAASpH,KAAKq9B,WAJlB,qBA/PGn1B,IAAM5D,WAiRnC4L,GAAS,CACX/O,UAAW,CACP+O,OAAQ,CACJzH,MAAO,QAEXqzB,cAAe,CACX5rB,OAAQ,CACJzH,MAAO,OACPL,QAAS,OACTk1B,SAAU,QAEd9a,IAAK,CACDtS,OAAQ,CACJzH,MAAO,QAEXuzB,SAAU,CACN9rB,OAAQ,CACJsoB,UAAW,GACXrwB,WAAY,EACZqW,YAAa,GACbpW,QAAS,QAEb6zB,aAAc,CACV/rB,OAAQ,CAACqtB,KAAM,GACf3tB,MAAO,CACHM,OAAQ,CACJgmB,UAAW,OACXsC,UAAW,KAIvB0D,aAAc,CACVhsB,OAAQ,CAACqtB,KAAM,GACfvL,MAAO,CACH9hB,OAAQ,CAACzH,MAAO,SAEpB2zB,UAAW,CACPlsB,OAAQ,CAACzH,MAAO,SAEpB+0B,gBAAiB,CACbttB,OAAQ,CAACzH,MAAO,YAQhCw0B,OAAQ,CACJ/sB,OAAQ,CACJzH,MAAO,OACP+vB,UAAW,GACXpwB,QAAS,OACTkV,eAAgB,iBAEpB4f,WAAY,CACRhtB,OAAQ,CAACqtB,KAAM,GACfH,IAAK,CACD30B,MAAO,GACPoyB,OAAQ,SAsBjBE,MCxWA0C,GAFG,CAAC,CAAC7tB,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,sBAAsB3C,MAAQ,uBAAuB,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,kCAAkC3C,MAAQ,mCAAmC,CAAC2C,MAAQ,mCAAmC3C,MAAQ,oCAAoC,CAAC2C,MAAQ,yBAAyB3C,MAAQ,0BAA0B,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,iCAAiC3C,MAAQ,kCAAkC,CAAC2C,MAAQ,oBAAoB3C,MAAQ,qBAAqB,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,2BAA2B3C,MAAQ,4BAA4B,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,mBAAmB3C,MAAQ,oBAAoB,CAAC2C,MAAQ,0BAA0B3C,MAAQ,2BAA2B,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,wCAAwC3C,MAAQ,yCAAyC,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,aAAU3C,MAAQ,cAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,qBAAqB3C,MAAQ,sBAAsB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,oBAAoB3C,MAAQ,qBAAqB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,8BAA8B3C,MAAQ,+BAA+B,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,mBAAmB3C,MAAQ,oBAAoB,CAAC2C,MAAQ,8BAA8B3C,MAAQ,+BAA+B,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,oCAAoC3C,MAAQ,qCAAqC,CAAC2C,MAAQ,gCAAgC3C,MAAQ,iCAAiC,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,4BAA4B3C,MAAQ,6BAA6B,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,yCAAyC3C,MAAQ,0CAA0C,CAAC2C,MAAQ,qBAAqB3C,MAAQ,sBAAsB,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,mCAAmC3C,MAAQ,oCAAoC,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,6CAA6C3C,MAAQ,8CAA8C,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,mBAAmB3C,MAAQ,oBAAoB,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,kCAAkC3C,MAAQ,mCAAmC,CAAC2C,MAAQ,uBAAuB3C,MAAQ,wBAAwB,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,uBAAuB3C,MAAQ,wBAAwB,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,2BAA2B3C,MAAQ,4BAA4B,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,kCAAkC3C,MAAQ,mCAAmC,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,mBAAmB3C,MAAQ,oBAAoB,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,aAAU3C,MAAQ,cAAW,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,qBAAqB3C,MAAQ,sBAAsB,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,sBAAmB3C,MAAQ,uBAAoB,CAAC2C,MAAQ,+CAA+C3C,MAAQ,gDAAgD,CAAC2C,MAAQ,wBAAwB3C,MAAQ,yBAAyB,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,6BAA6B3C,MAAQ,8BAA8B,CAAC2C,MAAQ,4BAA4B3C,MAAQ,6BAA6B,CAAC2C,MAAQ,mCAAmC3C,MAAQ,oCAAoC,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,wBAAwB3C,MAAQ,yBAAyB,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,4BAA4B3C,MAAQ,6BAA6B,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,kBAAkB3C,MAAQ,mBAAmB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,+CAA+C3C,MAAQ,gDAAgD,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,yBAAyB3C,MAAQ,0BAA0B,CAAC2C,MAAQ,YAAY3C,MAAQ,aAAa,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,uBAAuB3C,MAAQ,wBAAwB,CAAC2C,MAAQ,4BAA4B3C,MAAQ,6BAA6B,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,+BAA+B3C,MAAQ,gCAAgC,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,cAAc3C,MAAQ,eAAe,CAAC2C,MAAQ,OAAO3C,MAAQ,QAAQ,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,sBAAsB3C,MAAQ,uBAAuB,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,eAAe3C,MAAQ,gBAAgB,CAAC2C,MAAQ,2BAA2B3C,MAAQ,4BAA4B,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,uBAAuB3C,MAAQ,wBAAwB,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,gBAAgB3C,MAAQ,iBAAiB,CAAC2C,MAAQ,uCAAuC3C,MAAQ,wCAAwC,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,aAAa3C,MAAQ,cAAc,CAAC2C,MAAQ,UAAU3C,MAAQ,WAAW,CAAC2C,MAAQ,oCAAoC3C,MAAQ,qCAAqC,CAAC2C,MAAQ,WAAW3C,MAAQ,YAAY,CAAC2C,MAAQ,0BAA0B3C,MAAQ,2BAA2B,CAAC2C,MAAQ,uBAAuB3C,MAAQ,wBAAwB,CAAC2C,MAAQ,oBAAoB3C,MAAQ,qBAAqB,CAAC2C,MAAQ,iBAAiB3C,MAAQ,kBAAkB,CAAC2C,MAAQ,QAAQ3C,MAAQ,SAAS,CAAC2C,MAAQ,SAAS3C,MAAQ,UAAU,CAAC2C,MAAQ,WAAW3C,MAAQ,aCA5mXywB,GAAoB,GAEpBC,GAAiB,QACjBC,GAAkB,QCDhBC,GAFM,CAAC,CAACC,QAAU,cAAcluB,MAAQ,MAAM,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,QAAQ,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,QAAQ,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,sBAAsBluB,MAAQ,QAAQ,CAACkuB,QAAU,YAAYluB,MAAQ,MAAM,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,MAAM,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,QAAQ,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,QAAQ,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,QAAQ,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,kCAAkCluB,MAAQ,OAAO,CAACkuB,QAAU,mCAAmCluB,MAAQ,OAAO,CAACkuB,QAAU,yBAAyBluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,iCAAiCluB,MAAQ,OAAO,CAACkuB,QAAU,oBAAoBluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,KAAK,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,QAAQ,CAACkuB,QAAU,2BAA2BluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,mBAAmBluB,MAAQ,MAAM,CAACkuB,QAAU,0BAA0BluB,MAAQ,MAAM,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,wCAAwCluB,MAAQ,OAAO,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,MAAM,CAACkuB,QAAU,aAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,QAAQ,CAACkuB,QAAU,qBAAqBluB,MAAQ,KAAK,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,cAAcluB,MAAQ,OAAO,CAACkuB,QAAU,oBAAoBluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,8BAA8BluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,mBAAmBluB,MAAQ,OAAO,CAACkuB,QAAU,8BAA8BluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,QAAQ,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,QAAQ,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,oCAAoCluB,MAAQ,KAAK,CAACkuB,QAAU,gCAAgCluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,YAAYluB,MAAQ,MAAM,CAACkuB,QAAU,4BAA4BluB,MAAQ,MAAM,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,cAAcluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,cAAcluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,KAAK,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,KAAK,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,yCAAyCluB,MAAQ,OAAO,CAACkuB,QAAU,qBAAqBluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,mCAAmCluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,6CAA6CluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,mBAAmBluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,kCAAkCluB,MAAQ,OAAO,CAACkuB,QAAU,uBAAuBluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,QAAQ,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,cAAcluB,MAAQ,OAAO,CAACkuB,QAAU,uBAAuBluB,MAAQ,OAAO,CAACkuB,QAAU,gBAAgBluB,MAAQ,OAAO,CAACkuB,QAAU,cAAcluB,MAAQ,MAAM,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,OAAO,CAACkuB,QAAU,2BAA2BluB,MAAQ,QAAQ,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,kCAAkCluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,mBAAmBluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,MAAM,CAACkuB,QAAU,cAAcluB,MAAQ,MAAM,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,cAAcluB,MAAQ,KAAK,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,aAAUluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,MAAM,CAACkuB,QAAU,qBAAqBluB,MAAQ,KAAK,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,sBAAmBluB,MAAQ,OAAO,CAACkuB,QAAU,+CAA+CluB,MAAQ,OAAO,CAACkuB,QAAU,wBAAwBluB,MAAQ,QAAQ,CAACkuB,QAAU,cAAcluB,MAAQ,QAAQ,CAACkuB,QAAU,6BAA6BluB,MAAQ,OAAO,CAACkuB,QAAU,4BAA4BluB,MAAQ,OAAO,CAACkuB,QAAU,mCAAmCluB,MAAQ,QAAQ,CAACkuB,QAAU,QAAQluB,MAAQ,QAAQ,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,wBAAwBluB,MAAQ,OAAO,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,YAAYluB,MAAQ,MAAM,CAACkuB,QAAU,4BAA4BluB,MAAQ,QAAQ,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,kBAAkBluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,eAAeluB,MAAQ,MAAM,CAACkuB,QAAU,+CAA+CluB,MAAQ,OAAO,CAACkuB,QAAU,cAAcluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,MAAM,CAACkuB,QAAU,YAAYluB,MAAQ,MAAM,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,OAAO,CAACkuB,QAAU,yBAAyBluB,MAAQ,MAAM,CAACkuB,QAAU,YAAYluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,cAAcluB,MAAQ,MAAM,CAACkuB,QAAU,uBAAuBluB,MAAQ,OAAO,CAACkuB,QAAU,4BAA4BluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,+BAA+BluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,cAAcluB,MAAQ,OAAO,CAACkuB,QAAU,OAAOluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,sBAAsBluB,MAAQ,QAAQ,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,MAAM,CAACkuB,QAAU,eAAeluB,MAAQ,OAAO,CAACkuB,QAAU,2BAA2BluB,MAAQ,QAAQ,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,uBAAuBluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,MAAM,CAACkuB,QAAU,gBAAgBluB,MAAQ,KAAK,CAACkuB,QAAU,uCAAuCluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,aAAaluB,MAAQ,OAAO,CAACkuB,QAAU,UAAUluB,MAAQ,OAAO,CAACkuB,QAAU,oCAAoCluB,MAAQ,MAAM,CAACkuB,QAAU,WAAWluB,MAAQ,MAAM,CAACkuB,QAAU,0BAA0BluB,MAAQ,QAAQ,CAACkuB,QAAU,uBAAuBluB,MAAQ,QAAQ,CAACkuB,QAAU,oBAAoBluB,MAAQ,OAAO,CAACkuB,QAAU,iBAAiBluB,MAAQ,OAAO,CAACkuB,QAAU,QAAQluB,MAAQ,OAAO,CAACkuB,QAAU,SAASluB,MAAQ,OAAO,CAACkuB,QAAU,WAAWluB,MAAQ,QCuDp/T0a,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEjB46B,GC1DsC,WAExC,IAFmD,IAAVC,EAAUrrB,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAN,EACvCjF,EAAK,GACF/L,EAAI,EAAGA,EAAIq8B,EAAI,EAAGr8B,IACvB+L,EAAGU,KACC,CACI6vB,IAAKt8B,EACLu8B,gBAAiB,CACbC,SAAU,gBACVC,SAAU,OACVC,SAAU,OACVC,SAAU,OACVC,iBAAkB,KAClBC,iBAAkB,KAClBC,iBAAkB,KAClBC,iBAAkB,KAClBC,oBAAoB,GAExBC,gBAAiB,CACb3V,UAAW,KACXM,SAAU,OACVsV,IAAK,cAETC,eAAgB,CACZ5sB,SAAU,QACV6sB,cAAe,sBACfC,YAAa,WAEjBC,eAAgB,CACZC,iBAAkB,KAClBhtB,SAAU,SACV6sB,cAAe,aACfC,YAAa,WAEjB7Z,WAAW,EACX0K,cAAe,CACX,CACIC,aAAc,gBACdqP,aAAc,QACdC,cAAe,sBACfC,gBAAiB,MACjBvzB,KAAM,aACNmkB,UAAW,CACPqP,iBAAkB,MAClBC,kBAAmB,MACnBC,iBAAkB,MAClBvU,cAAe,KACfwU,aAAc,MACdC,cAAe,MACfC,eAAgB,MAChBC,YAAa,MACbC,cAAe,MACfC,kBAAmB,MACnBC,oBAAqB,OAEzBC,gBAAiB,cACjBhQ,eAAgB,MAChBiQ,WAAY,QAGpBC,gBAAiB,GACjBC,YAAa,GACbC,YAAa,GACbroB,OAAQ,GACRsoB,qBAAsB,GACtBC,qBAAsB,GACtBC,uBAAuB,IAKnC,OAAO7yB,EDZG8yB,CAA6B,GAE9BC,GAAkB,CAC9BxC,IAAK,EACLC,gBAAiB,CAChBC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,iBAAkB,GAClBC,iBAAkB,GAClBC,iBAAkB,GAClBC,iBAAkB,GAClBC,oBAAoB,EACpB+B,aAAc,GACdC,IAAK,IAEN/B,gBAAiB,CAChB3V,UAAW,GACXM,SAAU,GACVsV,IAAK,GACLjU,QAAS,IAEVkU,eAAgB,CACf9yB,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,YACb4B,OAAQ,KACRC,WAAY,KACZ9B,cAAex4B,MAASC,OAAO,cAC/BokB,QAAS,GACTkW,cAAe,OAEhB7B,eAAgB,CACfjzB,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,KACb+B,gBAAiB,KACjBC,oBAAqB,KACrBJ,OAAQ,YACR7B,cAAex4B,MAASC,OAAO,cAC/B04B,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,GAChBiW,cAAe,OAEhBI,eAAgB,CACfl1B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,YACb+B,gBAAiB,KACjBC,oBAAqB,KACrBJ,OAAQ,KACR7B,cAAex4B,MAASC,OAAO,cAC/B04B,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,GAChBiW,cAAe,OAEhBK,eAAgB,CACfn1B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,KACb4B,OAAQ,YACRC,WAAY,KACZ9B,cAAex4B,MAASC,OAAO,cAC/BokB,QAAS,GACTkW,cAAe,OAEhBjR,cAAe,GACf1K,WAAW,EACX+a,gBAAiB,EACjBC,YAAa,EACbC,YAAa,EACbroB,OAAQ,GACRqpB,WAAY,GACZC,IAAK,GACLC,wBAAyB,GACzBjB,qBAAsB,GACtBC,qBAAsB,GACtBC,uBAAuB,EACvBgB,wBAAyB,EACzBC,WAAY1I,IAGPzc,GAAY,CACjBklB,wBAAyB,EACzBvX,gBAAiB,GACjByX,sBAAuBjS,KAAUiR,IACjCiB,mBAAoB,EACpBC,eAAgB,EAChBC,YAAY,EACZrC,kBAAmB,KACnBsC,uBAAuB,EACvBC,wBAAwB,EACxBC,iBAAkB,CACjBC,YAAY,EACZC,YAAY,EACZC,4BAA6B,EAC7BC,aAAc,GACdpqB,OAAQ,GACRqqB,WAAY,GACZlQ,KAAM,GACNiG,QAAS,GACTkK,MAAO,GACPxD,IAAKt4B,MACH8E,SAAS,GAAI,QACb7E,OAAO,cACTs3B,QAAS,GACTwE,YAAa,GACbhuB,UAAW,GACXiuB,SAAU,GACVC,mBAAoB,GACpBC,sBAAuB,GACvBC,YAAY,EACZC,oBAAoB,EACpBC,kBAAmB,GACnBC,iBAAkB,GAClBC,eAAgB,GAChBC,oBAAqB,GACrBC,0BAA0B,GAE3BC,+BAA+B,EAC/BC,oCAAoC,EACpCC,uBAAuB,EACvBC,qBAAqB,EACrBC,UAAU,EACVC,gCAAgC,EAChC3S,MAAO,GACP4S,2BAA4B,GAC5BxrB,OAAQ,GACRqpB,WAAY,GACZoC,sCAAsC,EACtCC,+BAA+B,EAC/BC,iDAAiD,EACjDC,kBAAmB,GACnBC,mBAAoB,GACpBC,wBAAyB,GACzBC,gDAAgD,EAChDC,kCAAkC,EAClCC,gBAAiB,GACjBC,uBAAwB,GACxBC,kBAAmB,CAClBnsB,OAAQ,GACRma,KAAM,GACNiG,QAAS,GACTkK,MAAO,GACP/tB,UAAW,GACXguB,YAAa,GACbxE,QAAS,GACTe,IAAK,GACLuD,WAAY,IAEb+B,kBAAiB,GAgBLC,GAA8B,SAACC,GAAD,MAAkB,CAC5D10B,KArNuC,kCAsNvC00B,gBAGYC,GAAyB,SAACvC,GAAD,MAAuB,CAC5DpyB,KAzNgC,2BA0NhCoyB,qBAGYwC,GAAiC,SAACpyB,GAAD,MAAiB,CAC9DxC,KA5NyC,oCA6NzCwC,eA+BYqyB,GAAkB,SAACC,GAAD,MAAgB,CAC9C90B,KA1NyB,oBA2NzB80B,UAAWA,IAkLNC,GAAiC,iBAAO,CAC7C/0B,KAzayC,sCA4apCg1B,GAA+B,SAACl3B,GAAD,MAAW,CAC/CkC,KA3asC,iCA4atClC,SAGKm3B,GAA4B,iBAAO,CACxCj1B,KA/amC,gCAkbvBk1B,GAA4B,SAAArqB,GAAA,IAAGqV,EAAHrV,EAAGqV,cAAe0R,EAAlB/mB,EAAkB+mB,wBAAlB,sBAAAxmB,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAgD,SAAAmB,EAAOyF,GAAP,IAAA5C,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACxFuG,EAASy0B,MACLr3B,EAAO,CAAEoiB,gBAAe0R,2BAF4D12B,EAAAf,KAAA,EAGvEoL,KAAMM,KAAKrS,GAAU,wCAAyCsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GACnH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAR0E,YAGlFqJ,EAHkF7C,EAAAiD,MAgBjFL,KAAKM,QAhB4E,CAAAlD,EAAAf,KAAA,gBAiBvFuG,EAAS00B,GAAkCr3B,IAjB4C7C,EAAA0K,OAAA,SAkBhF,CAAExH,SAAS,EAAM1J,QAAS,KAlBsD,eAoBvFgM,EAAS20B,MApB8En6B,EAAA0K,OAAA,SAqBhF,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArBuC,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAhD,gBAAA0V,GAAA,OAAAqF,EAAAlF,MAAA7V,KAAA2S,YAAA,IAyBnCmyB,GAAsC,iBAAO,CAClDn1B,KAzc+C,4CA4c1Co1B,GAAoC,SAACr3B,GAAD,MAAS,CAClDiC,KA5c4C,uCA6c5CjC,OAGKs3B,GAAiC,iBAAO,CAC7Cr1B,KAhdyC,sCA+epCs1B,GAAyB,iBAAO,CACrCt1B,KA/egC,6BAkf3Bu1B,GAAuB,SAACx3B,GAAD,MAAS,CACrCiC,KAlf6B,wBAmf7BjC,OAGKy3B,GAAoB,iBAAO,CAChCx1B,KAtf0B,uBA6fdy1B,GAAa,SAACC,EAAU11B,GAAX,sBAAAkM,EAAAzZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAoB,SAAAgR,EAAOpK,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC7CuG,EAASi1B,MADoC5qB,EAAA5Q,KAAA,EAG5BoL,KAAMM,KAAKrS,GAAU,oBAAsB4I,KAAYiN,UAAU,CAAEusB,WAAY,IAAMF,EAAU90B,eAAwB6E,MAAM,SAACnQ,GAC9I,IAAKrF,aAAqBqF,EAAEoQ,SAASC,SAChCrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAAO,KAIjCxL,EAGRY,EALHoQ,SACC5H,KACCoC,MAASxL,QAKZ,OADAgM,EAASm1B,MACF,CAAE/3B,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,aAI5C,OADAgM,EAASm1B,MACF,CAAE/3B,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,2CAlB3B,YAGvC5H,EAHuCgN,EAAA5M,MAoBtCL,KAAKM,QApBiC,CAAA2M,EAAA5Q,KAAA,eAqB/B,SAAT6F,GAAiBU,EAASo1B,GAAmB/3B,IACpC,cAATiC,GAAsBU,EAASq1B,GAAwBh4B,IAtBfgN,EAAAnF,OAAA,SAuBrC,CAAExH,SAAS,EAAM1J,QAAS,KAvBW,eAyB5CgM,EAASm1B,MAzBmC9qB,EAAAnF,OAAA,SA0BrC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA1BJ,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAApB,gBAAA4V,GAAA,OAAAiG,EAAAhG,MAAA7V,KAAA2S,YAAA,IA8BpB2yB,GAAuB,iBAAO,CACnC31B,KAzhB8B,2BA4hBzB81B,GAAqB,SAAC/3B,GAAD,MAAS,CACnCiC,KA5hB2B,sBA6hB3BjC,OAGK83B,GAAkB,iBAAO,CAC9B71B,KAhiBwB,qBAmiBnB+1B,GAA0B,SAACh4B,GAAD,MAAS,CACxCiC,KAniBgC,2BAoiBhCjC,OAGYi4B,GAAwB,SAAC3b,GAAD,MAAsB,CAC1Dra,KAviBgC,2BAwiBhCqa,oBAaK4b,GAA6B,SAAC1T,GACnC,IAAI2T,EAAQ3T,EAAK4T,cACjB,GAAKrI,GAAUrrB,KAAK,SAAC+hB,GAAD,OAAOA,EAAEvkB,QAAUi2B,IAgBtC,OAAOA,EAfP,OAAQA,GACP,IAAK,MACJ,MAAO,gBACR,IAAK,iBACJ,MAAO,4BACR,IAAK,wBACJ,MAAO,YACR,IAAK,oBACJ,MAAO,qBACR,IAAK,oBACJ,MAAO,QACR,QACC,MAAO,cAcLE,GAAiBvW,KAAUnT,IAEpB2pB,GAA8B,SAAC/H,GAAD,MAAU,CACpDtuB,KAllBwC,mCAmlBxCsuB,QAqDKgI,GAAkC,iBAAO,CAC9Ct2B,KAL0C,uCAQrCu2B,GAAgC,SAACx4B,GAAD,MAAS,CAC9CiC,KARuC,kCASvCjC,OAGKy4B,GAA6B,iBAAO,CACzCx2B,KAZoC,iCAyBxBy2B,GAA2B,SAACp0B,GAAD,MAAU,CACjDrC,KAAM02B,GACNr0B,QAGKq0B,GAA8B,8BAEvBC,GAA8B,SAAC74B,GAAD,sBAAA84B,EAAAnkC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAqS,EAAOzL,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cACpDuG,EAASm2B,MAD2CxqB,EAAAlS,KAAA,EAGnCoL,KAAMM,KAAKrS,GAAU,0CAA2CsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GACrH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARsC,WAG9CqJ,EAH8CsO,EAAAlO,MAgB5CL,KAhB4C,CAAAuO,EAAAlS,KAAA,eAiBnDuG,EAASo2B,MAjB0CzqB,EAAAzG,OAAA,SAkB5C,CAAExH,SAAS,EAAO1J,QAAS,wBAlBiB,WAoBhDqJ,EAAGD,KAAKM,QApBwC,CAAAiO,EAAAlS,KAAA,gBAqBnDuG,EAASq2B,GAAoCh5B,IArBMsO,EAAAzG,OAAA,SAsB5C,CAAExH,SAAS,EAAM1J,QAAS,KAtBkB,eAwBnDgM,EAASo2B,MAxB0CzqB,EAAAzG,OAAA,SAyB5C,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBG,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SAAV,gBAAAoc,GAAA,OAAAmqB,EAAA1wB,MAAA7V,KAAA2S,YAAA,IA8DrC6zB,GAAwC,iBAAO,CACpD72B,KALmD,gDAQ9C+2B,GAAsC,SAACh5B,GAAD,MAAS,CACpDiC,KARgD,2CAShDjC,OAGK+4B,GAAmC,iBAAO,CAC/C92B,KAZ6C,0CAmBxCg3B,GAAsC,iBAAO,CAClDh3B,KAL2C,wCAQtCi3B,GAAoC,SAACl5B,GAAD,MAAS,CAClDiC,KARwC,mCASxCjC,OAGKm5B,GAAiC,iBAAO,CAC7Cl3B,KAZqC,kCAezBm3B,GAAuB,SAACr5B,GAAD,sBAAAs5B,EAAA3kC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAu9B,EAAO32B,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAs9B,GAAA,cAAAA,EAAAp9B,KAAAo9B,EAAAn9B,MAAA,cAC7CuG,EAAS62B,MADoCD,EAAAn9B,KAAA,EAG5BoL,KAAMC,IAAIhS,GAAU,kCAAmCsK,GAAM2H,MAAM,SAACnQ,GACpF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAR+B,WAGvCqJ,EAHuCu5B,EAAAn5B,MAgBrCL,KAhBqC,CAAAw5B,EAAAn9B,KAAA,eAiB5CuG,EAAS82B,MAjBmCF,EAAA1xB,OAAA,SAkBrC,CAAExH,SAAS,EAAO1J,QAAS,wBAlBU,WAoBzCqJ,EAAGD,KAAKM,QApBiC,CAAAk5B,EAAAn9B,KAAA,gBAqB5CuG,EAAS+2B,GAA6B15B,IArBMu5B,EAAA1xB,OAAA,SAsBrC,CAAExH,SAAS,EAAM1J,QAAS,KAtBW,eAwB5CgM,EAAS82B,MAxBmCF,EAAA1xB,OAAA,SAyBrC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBJ,yBAAA4iC,EAAAv8B,SAAAs8B,EAAAhnC,SAAV,gBAAAqnC,GAAA,OAAAN,EAAAlxB,MAAA7V,KAAA2S,YAAA,IAiC9Bu0B,GAAiC,iBAAO,CAC7Cv3B,KAL0C,uCAQrCy3B,GAA+B,SAAC15B,GAAD,MAAS,CAC7CiC,KARuC,kCASvCjC,OAGKy5B,GAA4B,iBAAO,CACxCx3B,KAZoC,iCAkD/B23B,GAAmD,iBAAO,CAC5D33B,KAN2D,2DASzD43B,GAAiD,SAAC75B,GAAD,MAAS,CAC5DiC,KATwD,sDAUxDjC,OAGE85B,GAA8C,iBAAO,CACvD73B,KAbqD,qDAiB5C83B,GAA0C,SAACh6B,GAAD,sBAAAi6B,EAAAtlC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAk+B,EAAOt3B,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAi+B,GAAA,cAAAA,EAAA/9B,KAAA+9B,EAAA99B,MAAA,cAC7DuG,EAASw3B,MADoDD,EAAA99B,KAAA,EAG5CoL,KAAMM,KAAKrS,GAAU,qDAAsDsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GAC7H,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF5D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aARgC,WAGvDqJ,EAHuDk6B,EAAA95B,MAgBrDL,KAhBqD,CAAAm6B,EAAA99B,KAAA,eAiBzDuG,EAASy3B,MAjBgDF,EAAAryB,OAAA,SAkBlD,CAAExH,SAAS,EAAO1J,QAAS,wBAlBuB,WAoBzDqJ,EAAGD,KAAKM,QApBiD,CAAA65B,EAAA99B,KAAA,gBAqBzDuG,EAASy3B,GAAgCp6B,IArBgBk6B,EAAAryB,OAAA,SAsBlD,CAAExH,SAAS,EAAM8K,OAAQnL,EAAGD,KAAKoL,SAtBiB,eAwBzDxI,EAAS03B,MAxBgDH,EAAAryB,OAAA,SAyBlD,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBS,yBAAAujC,EAAAl9B,SAAAi9B,EAAA3nC,SAAV,gBAAAgoC,GAAA,OAAAN,EAAA7xB,MAAA7V,KAAA2S,YAAA,IAkCjDk1B,GAAoC,iBAAO,CAChDl4B,KAN6C,0CASxCm4B,GAAkC,SAACp6B,GAAD,MAAS,CAChDiC,KAT0C,qCAU1CjC,OAGKq6B,GAA+B,iBAAO,CAC3Cp4B,KAbuC,oCAsBlCs4B,GAAgC,gCAkChCC,GAAkD,iBAAO,CAC9Dv4B,KAL4D,yDAQvDw4B,GAAgD,SAACz6B,GAAD,MAAS,CAC9DiC,KARyD,oDASzDjC,OAGK06B,GAA6C,iBAAO,CACzDz4B,KAZsD,mDA+CjD04B,GAA+B,SAAC56B,GAAD,MAAW,CAC/CkC,KAhC8B,yBAiC9BlC,SAGK66B,GAA4B,iBAAO,CACxC34B,KApC2B,wBAuCtB44B,GAAiC,iBAAO,CAC7C54B,KA1CiC,8BA+tBnBsa,GAjrBY,WAAoC,IAC1Due,EAAoBC,EAAQxK,EAAKjgC,EAAS0qC,EAAqBjH,EAAuBC,EAAoB/Q,EAAsBzF,EAAuBsD,EADhIlpB,EAAmCqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAA3BozB,GAAgBn9B,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAG9D,OAAQsH,EAAO+G,MACd,IAvgC8B,0BAygC7B,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0kB,gBADD,KAGnB,IAzhCmC,+BA0hClC,IAAM2e,EAAU,CACf1K,IAAK34B,EAAM0kB,gBAAgBxb,OAAS,EACpC0vB,gBAAiB,CAChBC,SAAUv1B,EAAOggC,QAAQC,QAE1BjK,gBAAiB,CAChB3V,UAAW,GACXM,SAAU,GACVuf,WAAYlgC,EAAOggC,QAAQG,SAC3BlK,IAAK,GACLjU,QAAS,IAEVkU,eAAgB,GAChBG,eAAgB,CAAE+J,YAAa,MAC/B9H,eAAgB,CAAE8H,YAAa,MAC/B7H,eAAgB,GAChBhc,WAAW,GAEZ,OAAO/iB,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC0kB,gBAAgB5nB,OAAAusB,GAAA,EAAAvsB,CAAKkD,EAAM0kB,iBAAZjb,OAAA,CAA6B45B,MAG9C,IAnjCsC,kCAojCrC,IAAIM,EAAqBrgC,EAAOy7B,YAEhC,OAAOjiC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAuBwH,IAGzB,IApiCmC,+BAsiClC,IAAIC,EAAmB1Z,KAAUlqB,EAAMm8B,uBAGvC,OAAOr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm8B,sBAAuByH,IAE3C,IA3jCmC,+BA4jClC,IAAIC,EAAmBvgC,EAAOugC,iBAC1BC,EAAgC5Z,KAAUlqB,EAAMm8B,uBAsBpD,MApB0B,aAAtB74B,EAAOygC,YACVD,EAA6B,gBAAoBjL,SAAWgL,EAAiBG,KAC7EF,EAA6B,gBAAoB7K,iBAAmB4K,EAAiB5f,SACrF6f,EAA6B,gBAAoBngB,UAAYkgB,EAAiBlgB,UAC9EmgB,EAA6B,gBAAoBxe,QAAUue,EAAiBve,QAC5Ewe,EAA6B,gBAAoB7f,SAAW4f,EAAiB5f,SAG7E6f,EAA6B,eAAmBrK,cAAgBoK,EAAiBI,MACjD,aAAtB3gC,EAAOygC,YACjBD,EAA6B,gBAAoBhL,SAAW+K,EAAiBG,KAC7EF,EAA6B,gBAAoB5K,iBAAmB2K,EAAiB5f,UACrD,aAAtB3gB,EAAOygC,YACjBD,EAA6B,gBAAoB/K,SAAW8K,EAAiBG,KAC7EF,EAA6B,gBAAoB3K,iBAAmB0K,EAAiB5f,UACrD,aAAtB3gB,EAAOygC,aACjBD,EAA6B,gBAAoB9K,SAAW6K,EAAiBG,KAC7EF,EAA6B,gBAAoB1K,iBAAmByK,EAAiB5f,UAG/EnnB,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAuB2H,IAGzB,IAvlC8B,0BAwlC7B,IAAII,EAAe5gC,EAAO4gC,aACtBC,EAAwCja,KAAUlqB,EAAMm8B,uBAM5D,OAJAgI,EAAqC,gBAAoBxgB,UAAYugB,EAAavgB,UAClFwgB,EAAqC,gBAAoBlgB,SAAWigB,EAAajgB,SACjFkgB,EAAqC,gBAAoBX,WAAaU,EAAaV,WAE5E1mC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAuBgI,IAGzB,IAtkCwB,oBAukCvB,IAAIhF,EAAY77B,EAAO67B,UACnBiF,EAAsBtnC,OAAA+d,EAAA,EAAA/d,CAAA,GACtBkD,EAAMy8B,iBADgB,CAEzBhqB,OAAQ0sB,EAAU1sB,OAClBma,KAAMuS,EAAUvS,KAChBiG,QAASsM,EAAUtM,QACnBkK,MAAOoC,EAAUpC,MACjB/tB,UAAWmwB,EAAUnwB,UACrBguB,YAAamC,EAAUnC,YACvBxE,QAAS2G,EAAU3G,QACnBe,IAAK4F,EAAU5F,IACfuD,WAAYqC,EAAUrC,aAEnBuH,EAAwBna,KAAUlqB,EAAM0kB,iBAG5C,OAFA2f,EAAsBr7B,QAAQ,SAACvQ,GAAD,OAAQA,EAAEga,OAAS0sB,EAAU1sB,SAEpD3V,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC0kB,gBAAiB2f,EACjB5H,iBAAkB2H,IAIpB,IAnoC+B,2BAooC9B,OAAOtnC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECy8B,iBAAkBn5B,EAAOm5B,mBAG3B,IAvoCwC,oCAwoCvC,IAAI6H,EAAK,GACLpoB,EAAQ,EAFbxO,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAGC,QAAA6R,EAAAC,EAAgB9N,EAAM0kB,gBAAtB3W,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAuC,KAA5BjV,EAA4BoV,EAAAlG,MACtC,IAAKlP,EAAEonB,UAAW,CACjB,GAAI/iB,OAAO2T,KAAK6zB,GAAIp7B,OAAS,EAAG,CAC/Bo7B,EAAKpa,KAAUzxB,GACfyjB,IACA,SAEDA,MAVH,MAAA/N,IAAAR,GAAA,EAAAC,EAAAO,GAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAaC,OAAI9Q,OAAO2T,KAAK6zB,GAAIp7B,OAAS,GAC5Bk6B,EAAmBtmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMy8B,kBAE7BvgB,EAAQ,IACXknB,EAAoB1G,YAAa,EACjC0G,EAAoBzG,YAAa,GAGlCyG,EAAoBxW,KAAO0X,EAAKA,EAAGhL,gBAAgB3V,UAAY,GAC/Dyf,EAAoBvQ,QAAUyR,EAAKA,EAAGhL,gBAAgBrV,SAAW,GACjEmf,EAAoB7J,IAAM+K,EAAKA,EAAGhL,gBAAgBC,IAAM,GACxD6J,EAAoB9d,QAAUgf,EAAKA,EAAGhL,gBAAgBhU,QAAU,GAChE8d,EAAoB5K,QAtlBO,SAAC8C,EAAQzuB,GACvC,IAAMzE,EAAKyE,EAAWC,KAAK,SAACC,GAAD,OAAOA,EAAEE,oBAAsBquB,IAC1D,GAAIlzB,EAAI,OAAOk4B,GAA2Bl4B,EAAGm8B,sBAolBZC,CAAuBF,EAAG9K,eAAe8B,OAAQh4B,EAAOuJ,YAC/E/P,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBy8B,iBAAiB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAMsmC,MAEpCpjC,EAER,IApqCwB,oBAqqCvB,OAAOlD,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm8B,sBAAuBjS,KAAUiR,MAErD,IAtqCuB,mBAuqCtB,IAAIsJ,EAAeva,KAAUlqB,EAAMm8B,uBA0BnC,OAxBAsI,EAAY,eAAqB,CAChC/9B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,YACb4B,OAAQ,KACRC,WAAY,KACZ9B,cAAex4B,MAASC,OAAO,cAC/BokB,QAAS,GACTkW,cAAe,OAEhBiJ,EAAY,eAAqB,CAChC/9B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,KACb+B,gBAAiB,KACjBC,oBAAqB,KACrBJ,OAAQ,YACR7B,cAAex4B,MAASC,OAAO,cAC/B04B,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,GAChBiW,cAAe,OAGT1+B,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAsBr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAClB2nC,KAIN,IAvsCuB,mBAwsCtB,IAAIC,EAAexa,KAAUlqB,EAAMm8B,uBA0BnC,OAxBAuI,EAAY,eAAqB,CAChCh+B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,YACb+B,gBAAiB,KACjBC,oBAAqB,KACrBJ,OAAQ,KACR7B,cAAex4B,MAASC,OAAO,cAC/B04B,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,GAChBiW,cAAe,OAEhBkJ,EAAY,eAAqB,CAChCh+B,OAAQ,KACRkG,SAAU,KACV8sB,YAAa,KACb4B,OAAQ,YACRC,WAAY,KACZ9B,cAAex4B,MAASC,OAAO,cAC/BokB,QAAS,GACTkW,cAAe,OAGT1+B,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAsBr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAClB4nC,KAKN,IAvuCiB,aAwuChB,IAAIC,EAAcrhC,EAAOq1B,IACrBiM,EAA0B1a,KAAUlqB,EAAM0kB,iBAC1CmgB,EAAWD,EAAwBzb,UAAU,SAAC2b,GAAD,OAAOA,EAAEnM,MAAQgM,IAElE,OADAC,EAAwBC,GAAUhlB,WAAY,EACvC/iB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0kB,gBAAiBkgB,IAErC,IA7uCkB,cAmvCjB,OALAjM,EAAMr1B,EAAOggC,QAAU,GACvBH,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAM0kB,gBAAgBiU,KAC7B9Y,WAAY,GACnBqjB,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAM0kB,kBACZ4E,OAAOqP,EAAK,EAAGwK,GAC3BrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0kB,gBAAiBwe,IAErC,IAnvCsC,kCAsvCrC,OAFAA,EAAqBhZ,KAAUlqB,EAAM0kB,kBAClB4E,OAAOhmB,EAAOq1B,IAAK,EAAGr1B,EAAOyhC,SACzCjoC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0kB,gBAAiBwe,IAErC,IAzvCwC,oCA0vCvC,OAAOpmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB29B,+BAA+B,IAEnD,IA1vCqC,iCA2vCpC,OAAO7gC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECi8B,wBAAyB34B,EAAO6E,KAAKoL,OAAO5M,GAC5Cg3B,+BAA+B,EAC/BjZ,gBAAiB1kB,EAAM0kB,gBAAgBvoB,IAAI,SAAC6oC,EAAGC,GAG9C,IAAIC,EAYAC,EAoBJ,OAlCAH,EAAEjJ,IFxxC6B,QEyxC/BiJ,EAAEI,IAAM9hC,EAAO6E,KAAKoL,OAAO6xB,IAGvB9hC,EAAO6E,KAAKoL,OAAOorB,yBACtBuG,EAAqB5hC,EAAO6E,KAAKoL,OAAOorB,uBAAuB7xB,KAAK,SAACrU,GAAD,OAAOusC,EAAEpM,gBAAgBC,WAAapgC,EAAEogC,YAEzGqM,IACHF,EAAEhJ,wBAA0BkJ,EAAmBzyB,OAC/CuyB,EAAEK,iBAAmBH,EAAmBG,iBACxCL,EAAEM,eAAiBJ,EAAmBI,eACtCN,EAAEO,wBAA0BL,EAAmBK,yBAI5CjiC,EAAO6E,KAAKoL,OAAOmrB,kBAAiByG,EAAsB7hC,EAAO6E,KAAKoL,OAAOmrB,gBAAgB5xB,KAAK,SAACrU,GAAD,OAAOusC,EAAEpM,gBAAgBC,WAAapgC,EAAEogC,YAC1IsM,IAAqBH,EAAEvyB,OAAS0yB,EAAoB1yB,QACpDnP,EAAO6E,KAAKoL,OAAOd,SAAQuyB,EAAEvyB,OAASnP,EAAO6E,KAAKoL,OAAOd,QACzDuyB,EAAEvyB,QACLuyB,EAAElJ,WAAax4B,EAAO6E,KAAKoL,OAAOuoB,WAAax4B,EAAO6E,KAAKoL,OAAOuoB,WAAakJ,EAAEvyB,OAASuyB,EAAEjJ,IACxFz4B,EAAO6E,KAAKoL,OAAOmrB,kBACtBsG,EAAEQ,mBAAqBliC,EAAO6E,KAAKoL,OAAOmrB,gBAAgB5xB,KAAK,SAAC+hB,GAAD,OAAOA,EAAEpc,SAAWuyB,EAAEvyB,SAAQgzB,mBAEpFniC,EAAO6E,KAAKoL,OAAOmrB,kBAC7BsG,EAAEvyB,OAASnP,EAAO6E,KAAKoL,OAAOmrB,gBAAgBuG,GAAOxyB,OACrDuyB,EAAEjJ,IAAMz4B,EAAO6E,KAAKoL,OAAOmrB,gBAAgBuG,GAAOlJ,IAClDiJ,EAAElJ,WAAakJ,EAAEvyB,OAASuyB,EAAEjJ,IAC5BiJ,EAAEQ,mBAAqBliC,EAAO6E,KAAKoL,OAAOmrB,gBAAgBuG,GAAOQ,kBAE9DT,EAAEhJ,0BACLgJ,EAAElJ,WAAax4B,EAAO6E,KAAKoL,OAAOuoB,WAAax4B,EAAO6E,KAAKoL,OAAOuoB,WAAakJ,EAAEhJ,wBAA0BgJ,EAAEjJ,KAG9GiJ,EAAEU,cAAgBpiC,EAAO6E,KAAKoL,OAAOoyB,eAAnB7oC,OAAA+d,EAAA,EAAA/d,CAAA,GAAyCwG,EAAO6E,KAAKoL,OAAOoyB,eAAe,IAAO,KAC7FX,IAERtG,gBAAiBp7B,EAAO6E,KAAKoL,OAAOmrB,gBACpCC,uBAAwBr7B,EAAO6E,KAAKoL,OAAOorB,uBAC3CE,kBAAkB,IAGpB,IAxyCkC,8BAyyCjC,OAAO/hC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB29B,+BAA+B,IAEnD,IA1yCoC,gCA4yCnC,IAAIiI,EAA0B1b,KAAUlqB,EAAM0kB,iBAC1CmhB,EAAiB3b,KAAUlqB,EAAMm8B,uBACrC0J,EAAelN,IAAM34B,EAAMo8B,mBAG3B,IAAI0J,EAAa9gB,GAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,OAArBA,EAAEljB,kBAClD+nC,EAAaD,EAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC7C8nC,EAAaF,EAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAmBjD,OAhBA2nC,EAAehL,YAAckL,EAAW5nC,cACxC0nC,EAAe/K,YAAckL,EAAW7nC,cACxC0nC,EAAexJ,eAAiB,EAE5BwJ,EAAejK,eAAehvB,UAAYi5B,EAAehK,eAAejvB,WAE3Ei5B,EAAehL,YAAqD,EAAvCoL,SAASJ,EAAehL,aACrDgL,EAAe/K,YAAqD,EAAvCmL,SAASJ,EAAe/K,aACrD+K,EAAexJ,eAAiB,GAGjCwJ,EAAejL,gBAAkBqL,SAASJ,EAAehL,aAAeoL,SAASJ,EAAe/K,aAGhG8K,EAAwB5lC,EAAMo8B,mBAAqB,GAAKyJ,EAEjD/oC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC0kB,gBAAiBkhB,EACjBxJ,mBAAoBwJ,EAAwB18B,OAAS,EACrDizB,sBAAuBjS,KAAUiR,IACjC4C,UAAU,IAGZ,IA50C8C,0CA60C7C,OAAOjhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB49B,oCAAoC,IAExD,IA90C2C,uCA+0C1C,IAAIsI,EAA2Bhc,KAAUlqB,EAAMm8B,uBAC3C5R,EAAgBjnB,EAAO8E,GAAGD,KAAKoL,OAAOgX,cAQ1C,OANA2b,EAAwBppC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQopC,EAAR,CAAkC3b,cAAeA,KAE7C,kBAC3B2b,EAAwB,gBAAoB7M,oBAAqB,GAG9D6M,EAAwB,iBAEa,2BAApC3b,EAAc,GAAGG,gBAAmF,kBAApCH,EAAc,GAAGG,gBACpFwb,EAAwB,gBAAoBjM,kBAAoB1P,EAAc,GAAGI,UAAUsP,kBAC3FiM,EAAwB,gBAAoB7J,eAAkE,QAAjD9R,EAAc,GAAGI,UAAUsP,kBAA8B,EAAI,IAI1HiM,EAAwB,gBAAoBjM,kBAAoB,GAChEiM,EAAwB,gBAAoB7J,eAAiB,GAGvDv/B,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAuB+J,EACvBtI,oCAAoC,KAI/B9gC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECm8B,sBAAuB+J,EACvBtI,oCAAoC,IAGtC,IAh3CwC,oCAi3CvC,OAAO9gC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB49B,oCAAoC,IAExD,IAl3C+B,2BAm3C9B,OAAO9gC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB69B,uBAAuB,IAE3C,IAp3C4B,wBAg4C3B,OAXAuF,EAAmBtmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMy8B,kBACjC/jC,EAAI4K,EAAO8E,GAAGD,KAAKoL,OAAO2V,MAAM,GACzB,CAAC,QAAS,WAAY,UAAW,SAAU,OAAQ,UAAW,YAAa,cAAe,WAAY,OACxGlgB,QAAQ,SAACxB,GACb47B,EAAoB57B,GAAK9O,EAAE8O,MAEvB9O,EAAC,WAAiBA,EAAC,WAAc0qC,EAAmB,UAAgB1qC,EAAC,UAC1E0qC,EAAoB+C,eAAiBztC,EACrC0qC,EAAoBhG,YAAa,EACjCgG,EAAoBtG,WAAapkC,EAAE0tC,SAE5BtpC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBy8B,iBAAkB2G,EAAqBvF,uBAAuB,IAElF,IAj4CyB,qBAk4CxB,OAAO/gC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB69B,uBAAuB,IAE3C,IAl4CoB,gBAm5CnB,OAAO/gC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0kB,gBAAiB+T,GAAOgE,iBAhBlB,CACxBC,YAAY,EACZC,YAAY,EACZC,4BAA6B,EAC7BC,aAAc,GACdpqB,OAAQ,sBACRma,KAAM,OACNiG,QAAS,QACTkK,MAAO,eACPxD,IAAK,aACLf,QAAS,YACT6N,SAAU,WACVC,gBACC,yoKACDlJ,YAAY,KAId,IA96CoC,gCA+6CnC,IAAImJ,EAAiBrc,KAAUnT,IAC/B,OAAOja,OAAA+d,EAAA,EAAA/d,CAAA,GAAKypC,GAEb,IAx5C6B,yBAy5C5B,OAAOzpC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB89B,qBAAqB,IAEzC,IA15C0B,sBA25CzB,OAAOhhC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC89B,qBAAqB,EACrB3B,sBAAsBr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAClBkD,EAAMm8B,sBADW,CAEpBxC,eAAe78B,OAAA+d,EAAA,EAAA/d,CAAA,GACXkD,EAAMm8B,sBAAsBxC,eADlB,CAEb6M,cAAeljC,EAAO8E,GAAGD,KAAKoL,OAAO,SAKzC,IAt6CuB,mBAu6CtB,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB89B,qBAAqB,IAEzC,IAx6C+B,2BAy6C9B,OAAOhhC,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC89B,qBAAqB,EACrBrB,iBAAiB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAMkD,EAAMy8B,iBAAb,CAA+BI,aAAcv5B,EAAO8E,GAAGD,KAAKoL,OAAO,OAGrF,IA96C+B,2BA+6C9B,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC0kB,gBAAiBphB,EAAOohB,kBAG1B,IAn7C8B,0BAo7C7B,OAAO5nB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBy8B,iBAAiB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAMia,GAAU0lB,oBAErD,IAr7CoC,gCAs7CnC,OAAO3/B,OAAA+d,EAAA,EAAA/d,CAAA,GACHwG,EAAOmjC,gBAGZ,IAz7CuC,mCA47CtC,OAFAtK,EAAqBr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQwG,EAAOq1B,KACpCyD,EAAqB94B,EAAOq1B,IAAIA,IACzB77B,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm8B,wBAAuBC,qBAAoB2B,UAAU,IAEzE,IA77CyB,qBAg8CxB,OAFA5B,EAAwBjS,KAAUiR,IAClCiB,EAAqBp8B,EAAM0kB,gBAAgBxb,OAAS,EAC7CpM,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm8B,wBAAuBC,qBAAoB2B,UAAU,IAEzE,IA/7CoB,gBA28CnB,OAXA1S,EAAQhqB,KAAKC,MAAMtB,EAAMqrB,MAAMljB,OACzBo0B,uBAAwB,EAC9BlR,EAAMqb,oBAAqB,EAC3Brb,EAAMsS,+BAAgC,EACtCtS,EAAMuS,oCAAqC,EAC3CvS,EAAMwS,uBAAwB,EAC9BxS,EAAMyS,qBAAsB,EAC5BzS,EAAM2S,gCAAiC,EACvC3S,EAAM4S,2BAA6Bj+B,EAAMi+B,2BACzC5S,EAAM+S,iDAAkD,EACxD/S,EAAM0S,UAAW,EACVjhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKuuB,GAEb,IA58C4B,wBA68C3B,OAAOvuB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB0mC,oBAAoB,IAExC,IAh1ByC,qCAi1BxC,OAAO5pC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBg+B,gCAAgC,IAEpD,IAl1BsC,kCAq1BrC,OAFAkI,EAAwBppC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMm8B,wBACbxC,eAAepU,eAAxCzoB,OAAAusB,GAAA,EAAAvsB,CAA6DopC,EAAyBvM,eAAepU,gBAArG9b,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAAwHwG,EAAO8E,GAAGD,KAAKoL,SAChIzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBg+B,gCAAgC,EAAO7B,sBAAuB+J,IAElF,IAt1BmC,+BAu1BlC,OAAOppC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBg+B,gCAAgC,IAEpD,IA79CqC,iCA89CpC,OAAOlhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBu8B,sBAAuBj5B,EAAOi5B,wBAElD,IA/9CuC,mCAg+CtC,OAAOz/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBw8B,uBAAwBl5B,EAAOk5B,yBAEnD,KAAKuE,GACJ,OAAOz9B,EAAOoJ,IAEf,IAxwBkD,8CAywBjD,OAAO5P,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBk+B,sCAAsC,IAE1D,IA1wB+C,2CA2wB9C,IAAIyI,EAAmB,GADxBt4B,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAGC,QAAAwS,EAAAC,EAAsBnL,EAAO8E,GAAGD,KAAKoL,OAAO2V,MAA5Cnb,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAAmD,KAA1C8b,EAA0C3b,EAAA7G,MAClD,GAAuB,MAAnBwiB,EAAU5K,OAAoD,MAAnC4K,EAAUvE,sBAA+B,CACvE+gB,EAAmBxc,EACnB,QANH,MAAAhc,IAAAG,GAAA,EAAAC,EAAAJ,GAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,GASC,OAAOzR,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECk+B,sCAAsC,EACtCK,wBAAyB,CACxBpU,UAAWwc,EACXpnB,MAAOonB,EAAiBpnB,OAAS,GACjCqG,sBAAuB+gB,EAAiB/gB,uBAAyB,MAIpE,IA5xB4C,wCA6xB3C,OAAO9oB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBk+B,sCAAsC,IAE1D,IAluByC,qCAmuBxC,OAAOphC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm+B,+BAA+B,IAEnD,IApuBsC,kCAquBrC,OAAOrhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm+B,+BAA+B,EAAOG,mBAAoBh7B,EAAO8E,GAAGD,KAAKoL,QAAU,KAEvG,IAtuBmC,+BAuuBlC,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm+B,+BAA+B,IAEnD,IA5rB6D,yDA6rB5D,OAAOrhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBo+B,iDAAiD,EAAM7B,uBAAuB,IAElG,IA9rB0D,sDA8rB1D,IAAA7kB,EACsCpU,EAAO8E,GAAGD,KAAKoL,OACpD,OADI8X,EADL3T,EACK2T,MAAOzF,EADZlO,EACYkO,sBACJ9oB,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECo+B,iDAAiD,EACjD/S,MAAOA,GAAS,GAChB4S,2BAA4BrY,GAAyB,KAGvD,IAtsBuD,mDAusBtD,OAAO9oB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBo+B,iDAAiD,IAErE,KAAKuE,GACJ,IAAMrE,GAAkBxhC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMs+B,oBACtCnC,EAAqBr/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMm8B,uBAFpC,IAGStvB,GAAevJ,EAAfuJ,WAoER,OAnEAq5B,EAA2B,CAC1BtN,gBAAiB,CAChBC,SAAUyF,GAAmBzF,SAC7BC,SAAUwF,GAAmBxF,SAC7BC,SAAUuF,GAAmBvF,SAC7BC,SAAUsF,GAAmBtF,SAC7BC,iBAAkBqF,GAAmBzF,SAAWyF,GAAmBra,SAAW,GAC9EiV,iBAAkBoF,GAAmBxF,SAAWwF,GAAmBra,SAAW,GAC9EkV,iBAAkBmF,GAAmBvF,SAAWuF,GAAmBra,SAAW,GAC9EmV,iBAAkBkF,GAAmBtF,SAAWsF,GAAmBra,SAAW,IAE/EqV,gBAAiB,CAChB3V,UAAW2a,GAAmB3a,UAC9BM,SAAUqa,GAAmBra,SAC7BsV,IAAKrtB,YAAsBoyB,GAAmB/E,KAC9CjU,QAASgZ,GAAmBhZ,SAE7BkU,eAAgB,CACf5sB,SAAU0xB,GAAmBsI,WAC7BlN,YAAa,YACb4B,OAAQ3uB,YAAuB2xB,GAAmBsI,WAAY/5B,IAC9D4sB,cAAevtB,YAAsBoyB,GAAmBuI,iBACxDvhB,QAAS,IAEVqU,eAAgB,CACf/sB,SAAU0xB,GAAmBwI,YAC7BpN,YAAaxsB,YAA4BoxB,GAAmBwI,YAAaj6B,IACzE6uB,oBAAqB,KACrBJ,OAAQ,YACR7B,cAAevtB,YAAsBoyB,GAAmByI,kBACxDnN,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,IAEjBqW,eAAgB,CACfhvB,SAAU,KACV8sB,YAAa,YACb+B,gBAAiB,KACjBC,oBAAqB,KACrBJ,OAAQ,KACR7B,cAAex4B,MAASC,OAAO,cAC/B04B,iBAAkB,KAClB+B,eAAgB,GAChBpW,eAAgB,GAChBiW,cAAe,OAEhBK,eAAgB,CACfjvB,SAAU,KACV8sB,YAAa,KACb4B,OAAQ,YACRC,WAAY,KACZ9B,cAAex4B,MAASC,OAAO,cAC/BokB,QAAS,GACTkW,cAAe,OAEhBjR,cAAe,GACf1K,WAAW,EACX+a,gBAAiB,EACjBC,YAAa,EACbC,YAAa,EACbroB,OAAQ,GACR2pB,mBAAoBD,EAAsBC,mBAC1CrB,qBAAsBuD,GAAmBvD,sBAAwB,GACjEC,qBAAsBsD,GAAmBtD,sBAAwB,GACjEC,sBAAuBqD,GAAmBrD,uBAGpCn+B,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBm8B,sBAAuB+J,IAE3C,IA9qB2D,uDA+qB1D,OAAOppC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBw+B,gDAAgD,IAEpE,IAhrBwD,oDAsrBvD,OAAqB,KAHTtV,EAER5lB,EAAO8E,GAHVD,KACCoL,OAAU2V,OAGFhgB,OACFpM,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBw+B,gDAAgD,KAGpE0E,EAAqB9X,aAAQprB,EAAM0kB,gBAAiB,SAAC2G,GACpD,IAAM5a,EAAO,CAAC,WAAY,WAAY,WAAY,YADYu2B,GAAA,EAAAC,GAAA,EAAAC,OAAAlrC,EAAA,IAE9D,QAAAmrC,EAAAC,EAAc/b,EAAdtd,OAAAC,cAAAg5B,GAAAG,EAAAC,EAAA5iC,QAAAyJ,MAAA+4B,GAAA,EACC,IADoB,IAAZvuC,EAAY0uC,EAAAx/B,MACXtL,EAAI6sB,EAAMhgB,OAAS,EAAG7M,GAAK,EAAGA,IACtC,QAAA2uB,EAAA,EAAAA,EAAcva,EAAdvH,OAAA8hB,IAAoB,CAAf,IAAIxjB,EAAKiJ,EAAJua,GACL9B,EAAM7sB,IAA+B,KAAzB5D,EAAEmgC,gBAAgBpxB,IAC7B/O,EAAEmgC,gBAAgBpxB,KAAO0hB,EAAM7sB,GAAGkvB,YACrC9yB,EAAE4uC,SAAWne,EAAM7sB,GACnB6sB,EAAMI,OAAOjtB,EAAG,KARyC,MAAA8R,IAAA84B,GAAA,EAAAC,EAAA/4B,GAAA,YAAA64B,GAAA,MAAAI,EAAAh5B,QAAAg5B,EAAAh5B,SAAA,WAAA64B,EAAA,MAAAC,MAgBxDpqC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBw+B,gDAAgD,EAAO9Z,gBAAiBwe,KAE5F,IA3sBqD,iDA4sBpD,OAAOpmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBw+B,gDAAgD,IACpE,IArwB4C,wCAswB3C,OAAO1hC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBy+B,kCAAkC,IAChD,IAtwBmC,qCAwwBnC,IAvwBgC,kCAwwB5B,OAAO3hC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBy+B,kCAAkC,IAC/D,IApsBgC,4BAqsB/B,OAAO3hC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBsnC,6BAA6B,IACjD,IArsB6B,yBAssB5B,IAAIC,GAASjkC,EAAO6E,KAAKoL,OACrBi0B,GAAuBD,GAAOvK,YAAYyK,QAAQ,OAAQ,IAC1DC,GEnrDmC,SAAAC,GACtC,IAAMC,EAAqBrP,GAAazrB,KAAK,SAAA+hB,GAAC,OAAIA,EAAEvkB,QAAUq9B,IAC9D,GAAIC,EACA,OAAOA,EAAmBpP,QFgrDRqP,CAA2BL,IAC9CM,GAAuB,CAC1Br1B,OAAQ80B,GAAO90B,OAAOs1B,UAAU,EAAG,IACnCnb,KAAM2a,GAAO3a,KACbiG,QAAS0U,GAAO1U,QAChBkK,MAAOwK,GAAOxK,MACd/tB,UAAWu4B,GAAOlB,SAClBrJ,YAAawK,GACbhP,QAASkP,GACTnO,IAAKgO,GAAOhO,IACZuD,WAAYyK,GAAOS,UAGpB,OAAOlrC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmB4+B,kBAAmBkJ,GAAsBR,6BAA6B,IAC1F,IArtB0B,sBAstBzB,OAAOxqC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBsnC,6BAA6B,IAEjD,QACC,OAAOtnC,IG7rDKioC,oLAXP,OACIhtB,EAAAhgB,EAAAC,cAACggB,EAAA,EAADpe,OAAAyF,OAAA,CAAKT,QAASpH,KAAKC,MAAMmH,QAASD,MAAO,UACrCvG,QAAS,QAASmgB,KAAM,SAAa/gB,KAAKC,OAAOsgB,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,cAJrCze,iBCAtBurC,8MACLC,iBAAmB,WAAM,IAAA1tC,EACgByE,EAAKvE,MAArCgwB,EADgBlwB,EAChBkwB,UAAWyd,EADK3tC,EACL2tC,iBAEnB,GAAyB,KAArBA,EACH,OAAOntB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAE8rC,GAGpB,IAAMC,EAAe,CACpB,CAAErO,iBAAkB,sCACpB,CAAEC,kBAAmB,8BACrB,CAAEC,iBAAkB,6CACpB,CAAEvU,cAAe,+CACjB,CAAEyU,cAAe,4DACjB,CAAEC,eAAgB,4CAClB,CAAEC,YAAa,6BACf,CAAEC,cAAe,yDACjB,CAAEC,kBAAmB,yCACrB,CAAEC,oBAAqB,8BACvB,CAAE6N,+BAAgC,yCAG7BC,EAAWF,EAAalsC,IAAI,SAACqL,EAAGnL,GAAM,IACnCzB,EAAYsE,EAAKvE,MAAjBC,QACJ4tC,EAAK1rC,OAAO2T,KAAKjJ,GAAG,GAClBrM,EAA8B,OAAlBwvB,EAAU6d,GAAe5tC,EAAQ6tC,GAAK,GACxD,OACCxtB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUX,OAAK,EAAChe,IAAKisC,EAAIvrC,QAAS,QAAS9B,UAAWA,GACrD8f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYmtB,EAAahsC,GAAGmsC,IAC5BvtB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYyP,EAAU6d,OAKzB,OACCvtB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYqtB,6EAMd,OACCttB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKC,MAAM+tC,cAAeC,OAAQ,OAAQ9pC,QAASnE,KAAKC,MAAMiuC,sBAC3E3tB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,8BACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAgBxgB,KAAKytC,oBACrBltB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKC,MAAMiuC,sBAA7D,mBAhD6B5pC,aAiFpBpC,wBAJA,SAAAC,GAAK,MAAK,CACxB4rC,GAAI,CAAErlC,gBAAiBylC,QAAK,OAGdjsC,CAAmBsrC,IC1E5BY,eACL,SAAAA,EAAYnuC,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAouC,IAC3B5pC,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAgsC,GAAAxpC,KAAA5E,KAAMC,EAAOiJ,KAUdmlC,iBAAmB,SAAAnV,GACdA,EAAErJ,eAAiBqJ,EAAErJ,cAAc,GAAGI,UACzCzrB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAWiJ,EAAErJ,cAAc,GAAGI,UAC9Byd,iBAAkB,KAIhBxU,EAAErJ,eAAiBqJ,EAAErJ,cAAc,GAAGjF,QACzCpmB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkBxU,EAAErJ,cAAc,GAAGjF,UAGtCpmB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkB,gBA9BOlpC,EAmC5B0pC,qBAAuB,WACtB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KApCJxpC,EAuC5B8pC,iBAAmB,SAAArpC,GACJ,UAAVA,EAAEpD,KAAiB2C,EAAKU,SAAS,CAAEqpC,WAAY,KAAMC,mBAAoB,MAxClDhqC,EA2C5BiqC,eAAiB,SAACpgB,EAAKppB,GACtB,IAAIgI,EAAQhI,EAAE+H,OAAOC,MACjBA,EAAMuB,OAAS,KAClBvB,EAAQA,EAAMogC,UAAU,EAAG,KAE5B,IAAM5E,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAM0hB,KAAK0M,IACpCoa,EAAO1wB,OAAS9K,EAChB,IAAIu7B,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAM0hB,MACxC6mB,EAAmB5Z,OAAOP,EAAK,EAAGoa,GAClCjkC,EAAKvE,MAAM0lC,sBAAsB6C,IApDNhkC,EAuD5BkqC,WAAa,SAAC/sC,EAAG6gB,GAChBhe,EAAKU,SAAS,CAAEqpC,WAAY5sC,KAxDD6C,EA2D5BmqC,uBAAyB,SAACtgB,EAAKvhB,EAAG7H,GACjC,IAAMwjC,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAM0hB,KAAK0M,IACpCoa,EAAO37B,GAAK7H,EAAE+H,OAAOC,MACrB,IAAIu7B,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAM0hB,MACxC6mB,EAAmB5Z,OAAOP,EAAK,EAAGoa,GAClCjkC,EAAKvE,MAAM0lC,sBAAsB6C,IAhENhkC,EAmE5BoqC,mBAAqB,SAACpsB,EAAK0V,GAC1B1zB,EAAKU,SAAS,CAAEspC,mBAAoB,CAAEhsB,MAAK0V,UApEhB1zB,EAuE5BqqC,aAAe,SAAAxgB,GACV7pB,EAAKc,MAAMipC,aAAelgB,GAAK7pB,EAAKU,SAAS,CAAEqpC,WAAY,QAxEpC/pC,EA2E5BsqC,qBAAuB,SAACtsB,EAAK0V,GAAQ,IAC5BsW,EAAuBhqC,EAAKc,MAA5BkpC,mBACJA,EAAmBhsB,MAAQA,GAAOgsB,EAAmBtW,MAAQA,GAAK1zB,EAAKU,SAAS,CAAEspC,mBAAoB,MA3E1GhqC,EAAKc,MAAQ,CACZ2qB,UAAW,GACXyd,iBAAkB,GAClBM,eAAe,EACfO,WAAY,KACZC,mBAAoB,IAPMhqC,wEAgFnB,IAAAkB,EAAA1F,KAAAD,EAC+EC,KAAKC,MAApFC,EADAH,EACAG,QAASwhC,EADT3hC,EACS2hC,mBAAoB2B,EAD7BtjC,EAC6BsjC,SAAU0L,EADvChvC,EACuCgvC,UAAWC,EADlDjvC,EACkDivC,aAAcC,EADhElvC,EACgEkvC,WADhE5hC,EAE+ErN,KAAKsF,MAApF2qB,EAFA5iB,EAEA4iB,UAAW+d,EAFX3gC,EAEW2gC,cAAeN,EAF1BrgC,EAE0BqgC,iBAAkBa,EAF5ClhC,EAE4CkhC,WAAYC,EAFxDnhC,EAEwDmhC,mBAEhE,OACCjuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQgvC,MACzB3uB,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACCjB,qBAAsBluC,KAAKkuC,qBAC3Bje,UAAWA,EACXyd,iBAAkBA,EAClBM,cAAeA,IAEhBztB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQkvC,OACzB7uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,WACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,wBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,yBACuBuuB,IAAcE,IAAeD,GAAgBzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACnEuuB,GAAaxuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACbyuB,GAAc1uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACdwuB,GAAgBzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBAChBwuB,GAAgBzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBAChBxgB,KAAKC,MAAMujB,UAAYjD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBAG1BD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACExgB,KAAKC,MAAM0hB,KAAKlgB,IAAI,SAAC+gB,EAAK+nB,GAC1B,IAAM8E,EAAU,GACZvuC,EAAa,GAUjB,MARa,CAAC,WAAY,WAAY,WAAY,YAC7CwN,QAAQ,SAAAxB,GACmB,KAA3B0V,EAAI0b,gBAAgBpxB,SAAwCxL,IAA3BkhB,EAAI0b,gBAAgBpxB,IAAkBuiC,EAAQjhC,KAAKoU,EAAI0b,gBAAgBpxB,MAEzG0V,EAAI2C,WAAWrkB,EAAWsN,KAAKlO,EAAQ00B,SACvCpS,EAAIyb,MAAQyD,GAAoB5gC,EAAWsN,KAAKlO,EAAQovC,SAI3D/uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK0oC,EAAO9pC,UAAWK,EAAWI,KAAK,MAChDqf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW7Y,UAAU,KAAK+a,MAAM,OAC/BnC,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAOsiB,EAAIyb,MAEnE1d,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MACtDqgB,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM1B,EAAKzF,MAAMsvC,UAAU/sB,IAAM/hB,UAAW+hB,EAAI2C,UAAY,GAAKjlB,EAAQk9B,KACtF5a,EAAIoc,gBAAgB3V,aAIxB1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAOsiB,EAAI0b,gBAAgByC,MAEnFpgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAvD,IACGsiB,EAAI2d,YAAc3d,EAAI2d,YAAc,EADvC,WACkD3d,EAAI4d,YAAc5d,EAAI4d,YAAc,EADtF,SAID7f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAQtDqgB,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQk9B,IAAKh2B,QAAS,kBAAM1B,EAAK2oC,iBAAiB7rB,KAAnE,OAYFjC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAOsiB,EAAImqB,SAAWj7B,YAAoB8Q,EAAImqB,SAASxjB,cAAgB,QAG7H4lB,IAAcE,IAAeD,GAC9BzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAOsiB,EAAImqB,SAAWnqB,EAAImqB,SAAS50B,OAAS,OAKpGrS,EAAKzF,MAAM8uC,WACXxuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE+tB,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOob,EAAI2C,UAAY,KAAOzf,EAAKgpC,WAAWnE,EAAO/nB,IAC9D/hB,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAEnDsiB,EAAIzK,QAGNw2B,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOuV,EAAIzK,OACXhI,SAAU,SAAA9K,GAAC,OAAIS,EAAK+oC,eAAelE,EAAOtlC,IAC1Cu2B,OAAQ,kBAAM91B,EAAKmpC,aAAatE,IAChC56B,KAAK,YAMmBjK,EAAKzF,MAAMgvC,YACR1uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAAA,KAAGC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAAOwF,EAAKzF,MAAM8hC,iBAAiBhqB,SAI5HrS,EAAKzF,MAAM+uC,cACXzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGguB,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,MACxD3X,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOob,EAAI2C,UAAY,KAAOzf,EAAKkpC,mBAAmBrE,EAAO,IACtE9pC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAEnDsiB,EAAI6d,sBAGNmO,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,KACvD3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOuV,EAAI6d,qBACXtwB,SAAU,SAAA9K,GAAC,OAAIS,EAAKipC,uBAAuBpE,EAAO,uBAAwBtlC,IAC1Eu2B,OAAQ,kBAAM91B,EAAKopC,qBAAqBvE,EAAO,OAMlD7kC,EAAKzF,MAAM+uC,cACXzuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGguB,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,MACxD3X,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOob,EAAI2C,UAAY,KAAOzf,EAAKkpC,mBAAmBrE,EAAO,IACtE9pC,UAAW+hB,EAAI2C,UAAYjlB,EAAO,YAAkB,MAEnDsiB,EAAI8d,sBAGNkO,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,KACvD3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOuV,EAAI8d,qBACXvwB,SAAU,SAAA9K,GAAC,OAAIS,EAAKipC,uBAAuBpE,EAAO,uBAAwBtlC,IAC1Eu2B,OAAQ,kBAAM91B,EAAKopC,qBAAqBvE,EAAO,OAMlD7kC,EAAKzF,MAAMujB,UACXjD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGgC,EAAI2C,WAAa5E,EAAAhgB,EAAAC,cAAC+iB,EAAD,CAAiBnc,QAAS,kBAAM1B,EAAKzF,MAAMujB,SAAShB,EAAIyb,MAAMle,SAAUsjB,IAE1F7gB,EAAI2C,WAAa5E,EAAAhgB,EAAAC,cAACovC,GAAD,CAAexoC,QAAS,kBAAM1B,EAAKzF,MAAM4vC,UAAUrtB,EAAIyb,sBA/PrD/1B,IAAM5D,WAuStBgM,eAZS,SAAAhL,GAAS,IAAAwqC,EAG5BxqC,EADH2kB,mBAGD,MAAO,CAAEyX,mBALuBoO,EAETpO,mBAGM2B,SALGyM,EAEWzM,WAMjB,SAAAhzB,GAC1B,MAAO,CAAEs1B,sBAAuB,SAAA3b,GAAe,OAAI3Z,EAASs1B,GAAsB3b,OAGpE1Z,CAA6CpO,qBA3B7C,SAAAC,GAAK,MAAK,CACxB+sC,KAAM,CAAEzmC,MAAO,OAAQ+vB,UAAgC,EAArBr2B,EAAMf,QAAQqd,KAAUsxB,UAAW,QACrEX,MAAO,CAAEzc,SAAU,KACnBiC,QAAS,CAAExX,WAAY,QACvB4yB,YAAa,CAAE7oC,MAAO,OAAQ0xB,eAAgB,gBAC9CuE,IAAK,CAAE6S,OAAQ,EAAGC,OAAQ,UAAWC,aAAc,oBACnDb,QAAS,CAAE5mC,gBAAiB0nC,QAAK,KACjCV,eAAgB,CAAE1mC,SAAU,eAoB+B9G,CAAmBksC,KC9SlEiC,GAAuB,SAAA5iC,GAChC,OAAOA,EAAKhM,IAAI,SAAAkP,GAAC,MAAK,CAACf,MAAOe,EAAE2/B,YAAc,IAAM3/B,EAAE4/B,cAAetjC,MAAO,SC4BjEujC,GA/BX,SAAAA,EAAYC,GAAgB,IAAAjsC,EAAAxE,KAAAoC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAwwC,GAAAxwC,KAI5B0wC,QAAU,WACN,IAAIC,EAAcnsC,EAAKisC,eAAe1/B,MAAM,KACxCkY,EAAY0nB,EAAY,GACxBpnB,EAAWonB,EAAY,GACvBC,EAAYrqC,IAAOoqC,EAAY,GAAI,cACnCE,EAAQtqC,MACTqqC,EAAUn8B,QAAQo8B,IAAQD,EAAUvlC,SAAS,IAAK,SACrD,IAAIwzB,EAAM+R,EAAUpqC,OAAO,cACvBsqC,EAAcH,EAAY,GAE1BI,EAAQ,gBAOZ,OANGxnB,EAAS8Q,MAAM0W,KACdxnB,EAAW,IAEZN,EAAUoR,MAAM0W,KACf9nB,EAAY,IAET,CACHA,YACAM,WACAsV,MACAiS,gBAxBJ9wC,KAAKywC,eAAiBA,GCJjBO,GAAY,CACrB,CACIV,YAAe,KACfC,cAAiB,MACjBU,kBAAqB,MACrB1+B,kBAAqB,WACrB2+B,kBAAqB,MACrBC,kBAAqB,uBACrBC,gBAAmB,MACnB3+B,gBAAmB,YACnB4+B,gBAAmB,MACnBC,gBAAmB,uBACnBC,gBAAmB,2BAEvB,CACIjB,YAAe,KACfC,cAAiB,OACjBU,kBAAqB,MACrB1+B,kBAAqB,cACrB2+B,kBAAqB,MACrBC,kBAAqB,YACrBC,gBAAmB,MACnB3+B,gBAAmB,YACnB4+B,gBAAmB,MACnBC,gBAAmB,uBACnBC,gBAAmB,2BAEvB,CACIjB,YAAe,KACfC,cAAiB,OACjBU,kBAAqB,MACrB1+B,kBAAqB,QACrB2+B,kBAAqB,MACrBC,kBAAqB,sBACrBC,gBAAmB,MACnB3+B,gBAAmB,YACnB4+B,gBAAmB,MACnBC,gBAAmB,uBACnBC,gBAAmB,2BAEvB,CACIjB,YAAe,KACfC,cAAiB,MACjBU,kBAAqB,MACrB1+B,kBAAqB,SACrB2+B,kBAAqB,MACrBC,kBAAqB,uBACrBC,gBAAmB,MACnB3+B,gBAAmB,YACnB4+B,gBAAmB,MACnBC,gBAAmB,uBACnBC,gBAAmB,2BAEvB,CACIjB,YAAe,KACfC,cAAiB,OACjBU,kBAAqB,MACrB1+B,kBAAqB,SACrB2+B,kBAAqB,MACrBC,kBAAqB,oCACrBC,gBAAmB,MACnB3+B,gBAAmB,YACnB4+B,gBAAmB,MACnBC,gBAAmB,uBACnBC,gBAAmB,4BC5DrBC,oLAEO,IACEtxC,EAAWF,KAAKC,MAAhBC,QAEP,OACIqgB,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,KAAMH,UAAWP,EAAQuxC,MAAOzxC,KAAKC,MAAMoE,iBAPhDpC,iBAyBjBC,wBAZA,SAAAC,GAAK,MAAK,CACrBhB,UAAW,CACPoB,QAAS,OAAQmG,gBAAiBvG,EAAMwG,QAAQ+oC,KAAK,KAAMtpC,QAAS,OAAQkV,eAAgB,SAC5FjV,WAAY,SAAUspC,aAAc,UAExCF,KAAM,CAACtqC,MAAOhF,EAAMwG,QAAQ+oC,KAAK,QAOtBxvC,CAAmBsvC,ICGrBI,GAAmB,SAAAC,GAG/B,OAAO,GCnCKC,GAAK,KACLC,GAAO,OACPC,GAAM,MACNC,GAAO,QCGPC,GAAqB,SAAAr9B,GAAwE,IAArE4sB,EAAqE5sB,EAArE4sB,sBAAuBzX,EAA8CnV,EAA9CmV,gBAAiBxV,EAA6BK,EAA7BL,gBAAiB2mB,EAAYtmB,EAAZsmB,MAK7F,IAHAnR,EAAkBA,EAAgBhI,OAAO,SAAAjkB,GAAC,OAAIA,EAAEkgC,MAAQwD,EAAsBxD,OAG1DzvB,OAAS,GACV2jC,GAAe1Q,EAAuBhB,IACvC,MAAO,CAAE1yB,SAAS,EAAM1J,QAAS,kCAPsD,IAUjG65B,EAA2JuD,EAA3JvD,gBAAiBU,EAA0I6C,EAA1I7C,gBAAiBE,EAAyH2C,EAAzH3C,eAAgBG,EAAyGwC,EAAzGxC,eAAgBiC,EAAyFO,EAAzFP,eAAgBC,EAAyEM,EAAzEN,eAAgBtR,EAAyD4R,EAAzD5R,cAA2BuiB,GAA8B3Q,EAA1CG,WAA0CH,EAA9B2Q,eAAe5Q,EAAeC,EAAfD,WAKpJ,IAAKtD,EAAgByC,IACpB,MAAO,CAAE5yB,SAAS,EAAO1J,QAAS,oCAGnC,IAAK+tC,EACJ,MAAO,CAAErkC,SAAS,EAAO1J,QAAS,uEAYnC,IADA,IAAIguC,EAAe,CAAC,MAAO,YAAa,YAC/B1wC,EAAI,EAAGA,EAAI0wC,EAAa7jC,OAAQ7M,IACxC,IAAKi9B,EAAgByT,EAAa1wC,KAA4C,KAArCi9B,EAAgByT,EAAa1wC,IACrE,MAAO,CAAEoM,SAAS,EAAO1J,QAAS,kBAAoBguC,EAAa1wC,IAIrE,IAAI2wC,EAAc/rC,MAAS8E,SAAS,EAAG,SACvC,GAAI9E,IAAOq4B,EAAgBC,KAAKpqB,QAAQ69B,GACvC,MAAO,CAAEvkC,SAAS,EAAO1J,QAAS,0CAInC,IADA,IAAIkuC,EAAc,CAAC,WAAY,gBAAiB,cAAe,UACtD5wC,EAAI,EAAGA,EAAI4wC,EAAY/jC,OAAQ7M,IACvC,IAAKm9B,EAAeyT,EAAY5wC,KAA0C,KAAnCm9B,EAAeyT,EAAY5wC,IACjE,MAAO,CAAEoM,SAAS,EAAO1J,QAAS,2BAA6BkuC,EAAY5wC,IAK7E,GAAGs9B,EAAeC,mBAAqB4S,IAAM7S,EAAeC,mBAAqB+S,GAE1E,IADA,IAAIO,EAAc,CAAC,WAAY,cAAe,iBACrC7wC,EAAI,EAAGA,EAAI6wC,EAAYhkC,OAAQ7M,IACpC,IAAKs9B,EAAeuT,EAAY7wC,KAA0C,KAAnCs9B,EAAeuT,EAAY7wC,IAC9D,MAAO,CAAEoM,SAAS,EAAO1J,QAAS,2BAA6BmuC,EAAY7wC,IAM1F,GAAGs9B,EAAeF,eACPx4B,IAAO04B,EAAeF,eAAevzB,SAASszB,EAAeC,eAC7D,MAAO,CAAEhxB,SAAS,EAAO1J,QAAS,4EA4C7C,GAAI68B,EAAehvB,UAAYivB,EAAejvB,SAAU,CAEvD,GAAGgvB,EAAehC,mBAAqB4S,IAAM5Q,EAAehC,mBAAqB+S,GAEhF,IADA,IAAIQ,EAAc,CAAC,WAAY,cAAe,iBACrC9wC,EAAI,EAAGA,EAAI8wC,EAAYjkC,OAAQ7M,IACvC,IAAKs9B,EAAewT,EAAY9wC,KAA0C,KAAnCs9B,EAAewT,EAAY9wC,IACjE,MAAO,CAAEoM,SAAS,EAAO1J,QAAS,2BAA6BouC,EAAY9wC,IAM9E,IADA,IAAI+wC,EAAc,CAAC,WAAY,gBAAiB,cAAe,UACtD/wC,EAAI,EAAGA,EAAI+wC,EAAYlkC,OAAQ7M,IACvC,IAAKw/B,EAAeuR,EAAY/wC,KAA0C,KAAnCw/B,EAAeuR,EAAY/wC,IACjE,MAAO,CAAEoM,SAAS,EAAO1J,QAAS,2BAA6BquC,EAAY/wC,IAI7E,GAAI4E,IAAO26B,EAAenC,eAAevzB,SAASyzB,EAAeF,eACvD,MAAO,CAAEhxB,SAAS,EAAO1J,QAAS,4EAG5C,GAAIkC,IAAO46B,EAAepC,eAAevzB,SAAS01B,EAAenC,eACvD,MAAO,CAAEhxB,SAAS,EAAO1J,QAAS,4EAK7C,GAAmB,iBAAfm9B,GAAiC1C,EAAe8B,QAAU9B,EAAe8B,SAAW3B,EAAeD,YAEtG,MAAO,CAAEjxB,SAAS,EAAO1J,QAAS,+GAkBnC,IAAKsuC,GAAwBlR,EAAuBjtB,GACnD,MAAO,CAAEzG,SAAS,EAAO1J,QAAS,uCAGnC,IAAKuuC,GAA4B3T,EAAgBpP,EAAesL,GAC/D,MAAO,CAAEptB,SAAS,EAAO1J,QAAS,0CAhKsE,IAAA2O,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAmKzG,QAAA6R,EAAAC,EAAgBquB,EAAsB5R,cAAtCxc,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAqD,KAA1C6/B,EAA0C1/B,EAAAlG,MACpD,GAAIod,GAA0BwoB,EAAE7iB,kBAAoB5F,GACnD,MAAO,CAAErc,SAAS,EAAO1J,QAAO,YAAA0K,OAAc8jC,EAAE/iB,aAAhB,8DAGjC,GAAI+iB,EAAEjF,gCACD9O,EAAe8B,SAAWgR,GAAiB9S,EAAe8B,QAC7D,MAAO,CAAE7yB,SAAS,EAAO1J,QAAO,YAAA0K,OAAc8jC,EAAE/iB,aAAhB,wFA1KsE,MAAArc,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAgLzG,MAAO,CAAEnF,SAAS,EAAM1J,QAAS,mBAG9BsuC,GAA0B,SAACG,EAAYt+B,GAC1C,IAAIu+B,EAAW,CAAC,iBACZC,EAAiB,CAAEt+B,UAAW,GAAIC,QAAS,IAC3C3J,EAAMzE,MAAS0sC,QAAQ,OACrBppC,EAAOtD,IAAOyE,GAAKK,SAAS,EAAG,QAC/BvB,EAAOvD,IAAOyE,GAAKylB,IAAI,EAAG,QAC1ByiB,EAAmB,CAAErpC,KAAM,GAAImB,IAAK,GAAIlB,KAAM,IAGpD0K,EAAgB+T,KAAK,SAAC1e,EAAMC,GAC3B,OACCvD,IAAOsD,EAAK6K,WACVu+B,QAAQ,OACRznC,SAASjF,IAAOuD,EAAK4K,WAAWu+B,QAAQ,SAElC,EAGR1sC,IAAOsD,EAAK6K,WACVu+B,QAAQ,OACRx+B,QAAQlO,IAAOuD,EAAK4K,WAAWu+B,QAAQ,QAElC,EAED,IAGR,IAAK,IAAItxC,EAAI,EAAGA,EAAI6S,EAAgBhG,OAAQ7M,IAC3C,GAAIqJ,EAAImoC,cAAc5sC,IAAOiO,EAAgB7S,GAAG+S,WAAWu+B,QAAQ,SAAWjoC,EAAIooC,eAAe7sC,IAAOiO,EAAgB7S,GAAGgT,SAASs+B,QAAQ,QAAS,CACpJC,EAAiBloC,IAAMwJ,EAAgB7S,GAEnC6S,EAAgB7S,EAAI,IACnBkI,EAAKwpC,OAAO9sC,IAAOiO,EAAgB7S,EAAI,GAAGgT,SAASs+B,QAAQ,UAC9DC,EAAiBrpC,KAAO2K,EAAgB7S,EAAI,IAI1C6S,EAAgB7S,EAAI,IACnBmI,EAAKupC,OAAO9sC,IAAOiO,EAAgB7S,EAAI,GAAG+S,WAAWu+B,QAAQ,UAChEC,EAAiBppC,KAAO0K,EAAgB7S,EAAI,IAG9C,MAIF,IA9C8D,IAAA2xC,EA8ChD,CAAC,OAAQ,MAAO,QAA9BC,EAAA,EAAAA,EAAAD,EAAA9kC,OAAA+kC,IAAuC,CAAlC,IAAIzmC,EAACwmC,EAAAC,GACmB,KAAxBL,EAAiBpmC,KACa,KAA7BkmC,EAAet+B,YAClBs+B,EAAet+B,UAAYw+B,EAAiBpmC,GAAG4H,WAEhDs+B,EAAer+B,QAAUu+B,EAAiBpmC,GAAG6H,SAI/C,IAAKq+B,EAAet+B,UAAW,OAAO,EAvDwB,IAyDtDoqB,EAAmCgU,EAAnChU,eAAgBG,EAAmB6T,EAAnB7T,eAExB,GAAI+T,EACH,IAAK,IAAIrxC,EAAI,EAAGA,EAAIoxC,EAASvkC,OAAQ7M,IAAK,CACzC,GACC4E,IAAOu4B,EAAeiU,EAASpxC,KAAK6J,SAASjF,IAAOysC,EAAet+B,WAAWu+B,QAAQ,SACtF1sC,IAAOu4B,EAAeiU,EAASpxC,KAAK8S,QAAQlO,IAAOysC,EAAer+B,SAASs+B,QAAQ,QAEnF,OAAO,EAGR,GACC1sC,IAAO04B,EAAe8T,EAASpxC,KAAK6J,SAASjF,IAAOysC,EAAet+B,WAAWu+B,QAAQ,SACtF1sC,IAAO04B,EAAe8T,EAASpxC,KAAK8S,QAAQlO,IAAOysC,EAAer+B,SAASs+B,QAAQ,QAEnF,OAAO,EAIV,OAAO,GAyEJL,GAA8B,SAAC3T,EAAgBpP,EAAesL,GACjE,GAAItL,GAAiBA,EAAcrhB,QAAUqhB,EAAc,GAAG2jB,uBACrB,OAApCvU,EAAeC,kBAA+D,KAAlCD,EAAegC,gBAAuB,OAAO,EAG9F,GAAwC,OAApChC,EAAeC,iBAA2B,CAC7C,GAAsC,KAAlCD,EAAegC,eAAuB,OAAO,EACjD,IAAKhC,EAAepU,gBAAkBoU,EAAepU,eAAerc,OAAS,IAAOywB,EAAepU,iBAC9FsQ,EAAM3sB,OAAS,EAAG,OAAO,EAG/B,OAAO,GAGKilC,GAA0B,SAAA55B,GAKtC,IAL+D,IAAtBmQ,EAAsBnQ,EAAtBmQ,gBACrCnR,EAAS,CAAE9K,SAAS,EAAM1J,QAAS,kBACnCqvC,EAAc,GACdC,EAAiB,IAAIvjB,IAEhBzuB,EAAI,EAAGA,EAAIqoB,EAAgBxb,OAAQ7M,IAAK,CAEhD,IADgCiyC,GAAqB5pB,EAAgBroB,IACrC,CAC/BkX,EAAS,CAAE9K,SAAS,EAAO1J,QAAS,sEACpC,MAGD,IAAK2lB,EAAgBroB,GAAGwjB,WAAa6E,EAAgBroB,GAAGgrC,SAAU,CACjE9zB,EAAS,CAAE9K,SAAS,EAAO1J,QAAS,yDACpC,OAKF,IAAK,IAAI1C,EAAI,EAAGA,EAAIqoB,EAAgBxb,OAAQ7M,IAC3C,IAAKqoB,EAAgBroB,GAAGwjB,UAAW,CAClC,IAAI0uB,EAAkB7pB,EAAgBroB,GAAGu8B,gBACnCC,EAA2C0V,EAA3C1V,SAAUC,EAAiCyV,EAAjCzV,SAAUC,EAAuBwV,EAAvBxV,SAAUC,EAAauV,EAAbvV,SAChCH,GAAUuV,EAAYtlC,KAAK+vB,GAC3BC,GAAUsV,EAAYtlC,KAAKgwB,GAC3BC,GAAUqV,EAAYtlC,KAAKiwB,GAC3BC,GAAUoV,EAAYtlC,KAAKkwB,GAE3BH,GAAUwV,EAAeljB,IAAI0N,GAC7BC,GAAUuV,EAAeljB,IAAI2N,GAC7BC,GAAUsV,EAAeljB,IAAI4N,GAC7BC,GAAUqV,EAAeljB,IAAI6N,IAI/BoV,EAAYllC,SAAWmlC,EAAe5yB,OACzClI,EAAS,CAAE9K,SAAS,EAAO1J,QAAS,gDAGjC2lB,EAAgBxb,OAAS,KAEDwb,EAAgBhI,OAAO,SAAAooB,GAAC,OAAoB,IAAhBA,EAAEjlB,YAChC3W,OAAS,IACjCqK,EAAS,CAAE9K,SAAS,EAAO1J,QAAS,mDAKtC,IAAIyvC,EAAuB9pB,EAAgBhI,OAAO,SAAAooB,GAAC,OAAoB,IAAhBA,EAAEjlB,YACrD4uB,EAAWD,EAAqB,GAChCE,EAAsBF,EAAqB9xB,OAAO,SAAAwE,GAAC,OAAIA,EAAEmb,iBAAmBoS,EAASpS,iBAKzF,OAJIqS,GAAuBA,EAAoBxlC,OAAS,IACvDqK,EAAS,CAAE9K,SAAS,EAAO1J,QAAS,uDAG9BwU,GAGJ+6B,GAAuB,SAAAvP,GAC1B,IAAI4P,GAAQ,EACZ,IAAK5P,EAAYlf,UAAW,KAAAxR,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAC3B,QAAAwS,EAAAC,EAAgBswB,EAAYxU,cAA5Bxc,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAA2C,KAAhCk/B,EAAgC/+B,EAAA7G,MAC1C,GAAIod,GAA0BwoB,EAAE7iB,kBAAoB5F,GAAY,CAC/D6pB,GAAQ,EACR,QAJyB,MAAAxgC,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,IAQ5B,OAAOogC,GAGK9B,GAAiB,SAAC+B,EAAaC,GAC3C,IAAIF,GAAQ,EAqBZ,MApBe,CAAC,kBAAmB,kBAAmB,iBAAkB,kBAE/D3lC,QAAQ,SAAA8lC,GAChB,IAAK,IAAIC,KAAQH,EAAYE,GAC5B,GAAIF,EAAYE,GAAS/9B,eAAeg+B,IACnCH,EAAYE,GAASC,KAAUF,EAASC,GAASC,GAAO,CAE3D,GAAI/9B,MAAMC,QAAQ29B,EAAYE,GAASC,IAASF,EAASC,GAASC,KAC7D1tC,KAAKqS,UAAUk7B,EAAYE,GAASC,MAAW1tC,KAAKqS,UAAUm7B,EAASC,GAASC,IACnF,SAIFJ,GAAQ,EACR,SAMGA,GCzbKK,GAAqB,yBACrBC,GAAgC,mDAChCC,GAAsC,6CACtCC,GAAqC,6CACrCC,GAAqC,6CACrCC,GAA2B,mDCClCC,oLACO,IAAA70C,EAC0BC,KAAKC,MAA7BC,EADFH,EACEG,QAAS20C,EADX90C,EACW80C,YAEhB,OACIt0B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAK/f,UAAWK,KAAWZ,EAAQ40C,QAASD,GAAcztC,QAASpH,KAAKC,MAAMmH,SAASmZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,cAL5Dze,iBAwBxBC,wBAdA,SAAAC,GAAK,MAAK,CACrB2yC,QAAS,CACLrsC,MAAO,SACPoyB,OAAQ,SACRp4B,UAAW,OACXD,SAAU,WACVkb,MAAO,QACPH,IAAK,OACLpW,MAAO+W,SAAM,KACbxV,gBAAiB,QACjBI,UAAW,UAIJ5G,CAAmB0yC,ICzB5BG,oLACO,IAAAh1C,EACkCC,KAAKC,MAArCC,EADFH,EACEG,QAAS80C,EADXj1C,EACWi1C,OAAQH,EADnB90C,EACmB80C,YAExB,OACIt0B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAK/f,UAAWK,KAAWZ,EAAQ40C,QAASD,GAAcztC,QAASpH,KAAKC,MAAMmH,SAASmZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CACnFvZ,MAAO,YACP1G,UAAWu0C,EAAS90C,EAAQ80C,OAAS,aAPpB/yC,iBA0BlBC,wBAdA,SAAAC,GAAK,MAAK,CACrB2yC,QAAS,CACLrsC,MAAO,SACPoyB,OAAQ,SACRp4B,UAAW,OACXD,SAAU,WACVkb,MAAO,QACPH,IAAK,OACLzU,UAAW,OACXJ,gBAAiB,eAErBssC,OAAQ,CAAC7tC,MAAO,aAGLjF,CAAmB6yC,IC/B5BE,GAAkB,CACpB,CAACnpC,KAAM,MAAOgyB,QAAS,aACvB,CAAChyB,KAAM,MAAOgyB,QAAS,kBACvB,CAAChyB,KAAM,MAAOopC,QAAS,uCAAwCpX,QAAS,SACxE,CAAChyB,KAAM,MAAOopC,QAAS,0BAA2BpX,QAAS,SAC3D,CAAChyB,KAAM,MAAOopC,QAAS,kBAAmBpX,QAAS,UAI1CqX,GAAqB,SAACC,GAC/B,IAAIF,EAAUD,GAAgB7iC,KAAK,SAAAg4B,GAAC,OAAIA,EAAEt+B,OAASspC,IACnD,OAAIF,EACOA,EAAQpX,QAER,aCTTuX,GAAa,EACbC,GAAc,GAyELC,cAhEX,SAAAA,EAAYC,GAAoB,IAAAhxC,EAAAxE,KAAAoC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAu1C,GAAAv1C,KAIhC0wC,QAAU,WACN,IAAKlsC,EAAKgxC,mBAAoB,MAAM,IAAIruB,MAAM,qCAC9C,GAAwC,kBAA7B3iB,EAAKgxC,mBAAkC,MAAM,IAAIruB,MAAM,qCAClE,GAAI3iB,EAAKgxC,mBAAmBhnC,OAAS,EAAG,MAAM,IAAI2Y,MAAM,qCACxD,IAAIsuB,EAAUjxC,EAAKkxC,SAASlxC,EAAKgxC,oBASjC,MARa,CACTlM,KAAM9kC,EAAKmxC,WAAWnxC,EAAKgxC,oBAC3BI,cAAepxC,EAAKqxC,kBAAkBrxC,EAAKgxC,oBAC3CM,mBAAoBtxC,EAAKuxC,uBAAuBvxC,EAAKgxC,oBACrDjM,KAAM/kC,EAAKwxC,SAASxxC,EAAKgxC,oBACzBjsB,SAAUksB,EAAQlsB,SAClBN,UAAWwsB,EAAQxsB,YAfKjpB,KAoBhC01C,SAAW,SAACO,GACR,IAAIC,EAAWD,EAASh+B,OAAOo9B,GAAYC,IAEvCa,EADmB,MACuBC,KAAKF,GACnD,IAAIC,EAAwB,MAAO,GACnC,IAAIE,EAAmBF,EAAuB5L,MAC1ChhB,EAAW2sB,EAASj+B,OAAO,EAAGo+B,GAElC,MAAO,CAACptB,UADQitB,EAASj+B,OAAOo+B,EAAiB,GAC9B9sB,aA3BnBvpB,KAAKw1C,mBAAqBA,gEA+BZS,GACd,IAAIpV,EAAaoV,EAASh+B,OAzCb,GACC,GA0Cd,OADoBk9B,GAAmBtU,kDAIpBoV,GACnB,IAAIlV,EAAkBkV,EAASh+B,OA7Cb,GACC,GA8CnB,OADyBk9B,GAAmBpU,sCAIrCkV,GAEP,OADaA,EAASh+B,OAzDP,GACC,qCA4DXq+B,GACL,IAAIC,EAAaD,EAASr+B,OAtDR,GACC,GAuDnB,OADoBjY,KAAKw2C,8BAA8BD,yDAI7BA,GAG1B,OAFkBhwC,MAAS0sC,QAAQ,QACXxiB,IAAI8lB,EAAa,EAAG,QAC/B/vC,OAAO,uBCrEtBiwC,oLACO,IACEv2C,EAAWF,KAAKC,MAAhBC,QAEP,OACIqgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAK/f,UAAWP,EAAQ40C,SAASv0B,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAAWvZ,MAAO,YAAaC,QAASpH,KAAKC,MAAMmH,kBAL7D9C,aAwBpBpC,wBAdA,SAAAC,GAAK,MAAK,CACrB2yC,QAAS,CACL4B,UAAW,iBACXjuC,MAAO,SACPoyB,OAAQ,SACRp4B,UAAW,OACXD,SAAU,WACVkb,MAAO,QACPH,IAAK,OACLzU,UAAW,OACXJ,gBAAiB,iBAIVxG,CAAmBu0C,ICrB5BE,eACF,SAAAA,EAAY12C,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA22C,IACxBnyC,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAu0C,GAAA/xC,KAAA5E,KAAMC,EAAOiJ,KAYjBqD,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAZ7B5H,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WALG7H,mFAUxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,gDAOK,IAAA5D,EAC4DC,KAAKC,MAA/D22C,EADF72C,EACE62C,WAAY/1C,EADdd,EACcc,MAAOsD,EADrBpE,EACqBoE,QAAS0yC,EAD9B92C,EAC8B82C,SAAUC,EADxC/2C,EACwC+2C,WAAYrpC,EADpD1N,EACoD0N,KAEzD,OACI8S,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAM0yC,EAAY3I,OAAQ,OAAQ9pC,QAASA,GAC/Coc,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAc3f,GACd0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAgBxgB,KAAKC,MAAM6B,UAC3Bye,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAAS,kBAAMjD,EAAQsJ,KAAhE,UACgB,KAAfqpC,GACDv2B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAAS,kBAAMyvC,EAASppC,KAAQqpC,YA5BhExyC,aAgDnBpC,wBAbA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAYVe,CAAmBy0C,IC3C9BxzC,GADWN,eACQM,QAKV4zC,GAAmC,iCAAAliC,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAO2G,GAAP,IAAA2mC,EAAAtpC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAClDuG,EAAS4mC,MAELD,EAAY,GAHkCptC,EAAAE,KAAA,EAIjCoL,KAAMM,KAAKrS,GAAU,gCAAiC6zC,EAAWzmC,eAAwB6E,MAAM,SAAAnQ,GAC5G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aANS,YAI5CqJ,EAJ4C9D,EAAAkE,MAW3CL,KAAKM,QAXsC,CAAAnE,EAAAE,KAAA,gBAY9CuG,EAAS6mC,GAAoCxpC,EAAGD,KAAKoL,SAZPjP,EAAA2L,OAAA,SAavC,CAACxH,SAAS,EAAM1J,QAAS,KAbc,eAe9CgM,EAAS8mC,MAfqCvtC,EAAA2L,OAAA,SAgBvC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAhBD,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAoB1CskC,GAAwC,iBAAO,CACjDtnC,KAhC6C,6CAmC3CunC,GAAsC,SAAChsB,GAAD,MAA4B,CACpEvb,KAnC0C,wCAoC1Cub,0BAGEisB,GAAmC,iBAAO,CAC5CxnC,KAvCuC,uCA0C9BynC,GAA8B,SAAClsB,GAExC,MAAO,CACHvb,KA5CqC,uCA6CrCub,0BAME7O,GAAY,CACdg7B,sCAAsC,EACtCnsB,sBAAuB,CACnBjf,GAAI,GACJqrC,mBAAoB,GACpBC,kBAAmB,GACnBC,mBAAoB,GACpBC,WAAY,EACZlX,uBAAuB,EACvBmX,gBAAgB,EAChBC,aAAc,KACdC,QAAS,EACTjV,oBAAoB,EACpBkV,YAAa,KA0BNC,GAtBmB,WAA+B,IAA9BxyC,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAE7D,OAAQsH,EAAO+G,MAEX,IA3EqC,2CA4EjC,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB+xC,sCAAsC,IAE5D,IA7EkC,wCA8E9B,OAAOj1C,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAmB+xC,sCAAsC,EAAOnsB,sBAAuBtiB,EAAOsiB,wBAElG,IA/E+B,qCAgF3B,OAAO9oB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAmB+xC,sCAAsC,IAE7D,IAjFiC,uCAkF7B,MAAO,CAACnsB,sBAAuBtiB,EAAOsiB,uBAG1C,QACI,OAAO5lB,ICzFnBnC,GADWN,eACQM,QASjBkZ,GAAY,CACd07B,qBAAsB,KACtBC,yBAAyB,EACzBC,qBAAqB,EACrBC,yBAA0B,GAC1BC,aAAc,CACV3vB,eAAgB,KAChBvP,IAAK,GACLmM,wBAAyB,KACzByD,YAAa,KAwCRuvB,GAAmB,iCAAAv+B,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAClCuG,EAASgoC,MADyBxtC,EAAAf,KAAA,EAGjBoL,KAAMC,IAAIhS,GAAO,uBAA2BoN,eAAwB6E,MAAM,SAAAnQ,GACvF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALP,YAG5BqJ,EAH4B7C,EAAAiD,MAU3BL,KAAKM,QAVsB,CAAAlD,EAAAf,KAAA,eAW9BuG,EAASioC,GAAyB5qC,IAXJ7C,EAAA0K,OAAA,SAYvB,CAACxH,SAAS,EAAM8K,OAAQnL,EAAGD,KAAKoL,SAZT,wBAAAhO,EAAAH,SAAAE,EAAA5K,SAAN,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,IAgB1B0lC,GAA6B,iBAAO,CACtC1oC,KArEiC,iCAwE/B2oC,GAA2B,SAAA5qC,GAAE,MAAK,CACpCiC,KAxE8B,4BAyE9BjC,OAGE6qC,GAA2B,iBAAO,CACpC5oC,KAlF+B,+BAqF7B6oC,GAAyB,iBAAO,CAClC7oC,KArF4B,4BAwF1B8oC,GAAsB,SAAAx+B,GAAA,IAAEpK,EAAFoK,EAAEpK,MAAF6oC,EAAAz+B,EAAS0+B,WAAT,MAA+B,CACvDhpC,KAxFyB,uBAyFzBE,MAAOA,EACP8oC,gBAHwB,IAAAD,EAAsB,GAAtBA,IAoDbE,GAzCW,WAA+B,IAA9BtzC,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACrD,OAAQsH,EAAO+G,MACX,IAtG2B,6BAuGvB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEI0yC,yBAAyB,EACzBD,qBAAsB,KACtBloC,MAAO,GACP8oC,WAAY,KAGpB,IA9GwB,0BA+GpB,OAAOv2C,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEIyyC,sBAAsB,EACtBC,yBAAyB,EACzBnoC,MAAO,GACP8oC,WAAY,KAIpB,IAvHqB,uBAwHjB,OAAOv2C,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEIyyC,sBAAsB,EACtBC,yBAAyB,EACzBnoC,MAAOjH,EAAOiH,MACd8oC,WAAY/vC,EAAO+vC,aAG3B,IA/HqB,uBAgIjB,OAAOv2C,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CAEI6yC,aAAcvvC,EAAOuvC,eAG7B,QACI,OAAO7yC,IC/FbuzC,GAAc,WACdC,GAAc,WACdC,GAAc,WACdC,GAAc,WAOdC,GAA6B,0BAE7BC,eACF,SAAAA,EAAYj5C,GAAO,IAAAk5C,EAAA30C,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAk5C,IACf10C,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA82C,GAAAt0C,KAAA5E,KAAMC,KA4EVuxB,mBAAqB,SAACC,EAAWC,GAC7B,IAAI0nB,EAAW,CAACP,GAAaC,GAAaC,GAAaC,IAC/CvX,EAA0Bj9B,EAAKvE,MAA/BwhC,sBACA6H,EAAS9kC,EAAKc,MAAdgkC,KACR8P,EAAS9qC,QAAQ,SAAA8qC,GAET3nB,EAAUgQ,sBAAsBvD,gBAAgBkb,KAChD3X,EAAsBvD,gBAAgBkb,KAGlC3nB,EAAUgQ,sBAAsBvD,gBAC5Bkb,EAAW,cAEf3X,EAAsBvD,gBAAgBkb,EAAW,aAE7C3X,EAAsBvD,gBAAgBkb,IAEtC50C,EAAK60C,yBAKT/3C,IADAmgC,EAAsBvD,gBAAgBkb,KAIkB,KAApD3X,EAAsBvD,gBAAgBkb,IAEtC50C,EAAKU,SAAS,CAAEo0C,eAAel3C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAIg3C,EAAW,MAI9C3X,EAAsBvD,gBAAgBkb,GAAU5qC,OAChD,GAEAhK,EAAK+0C,uBAAuBH,GAI5B3X,EAAsBvD,gBAAgBkb,KACtC9P,EAAK8P,IAEL50C,EAAKg1C,2BACDJ,EACA3X,EAAsBvD,gBAAgBkb,MAMlD1nB,EAAU4X,KAAK8P,KAAc9P,EAAK8P,KAClCK,aAAaj1C,EAAKk1C,qBAClBl1C,EAAKk1C,oBAAsBxrC,WAAW,WAClC1J,EAAKm1C,mBAAmB,CACpBC,gBAAiB,kBACjB/3C,IAAKu3C,EACLnsC,MAAOq8B,EAAK8P,MAEjB,QAKP3nB,EAAUgQ,sBAAsBvD,gBAAgB2a,MAChDpX,EAAsBvD,gBAAgB2a,KAEtCr0C,EAAKU,SAAS,CACVokC,KAAM,CACFnL,SACIsD,EAAsBvD,gBAAgB2a,IAC1Cza,SACIqD,EAAsBvD,gBAAgB4a,IAC1Cza,SACIoD,EAAsBvD,gBAAgB6a,IAC1Cza,SAAUmD,EAAsBvD,gBAAgB8a,QAtJ7Cx0C,EA4JnB+0C,uBAAyB,SAAAM,GACrB,IAAIC,EAAgBt1C,EAAKvE,MAAMwhC,sBAAsBvD,gBACjD2b,GAEJ,IAAKC,EAAe,CAChB,IAAIR,EAAcl3C,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKc,MAAMg0C,gBAGrC,OAFAA,EAAeO,GAAW,QAC1Br1C,EAAKU,SAAS,CAAEo0C,eAAgBA,IAIpC,IAAIS,EAAYD,EAAc7hC,OAAO,EAAG,GACxC,GACkB,QAAd8hC,GACc,QAAdA,GACc,QAAdA,GACc,QAAdA,GACc,QAAdA,EACF,CACE,IAAIT,EAAcl3C,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKc,MAAMg0C,gBACrCA,EAAeO,GAAWtF,GAC1B/vC,EAAKU,SAAS,CAAEo0C,eAAgBA,QAC7B,CACel3C,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKc,MAAMg0C,gBACtBO,GAAWtF,GAC1B/vC,EAAKU,SAAS,CAAEo0C,eAAgB,OArLrB90C,EAyLnBw1C,4BAA8B,SAACn4C,EAAKoL,GAChCzI,EAAKy1C,oBAAoBp4C,EAAKoL,GAE9BwsC,aAAaj1C,EAAK01C,cAClB11C,EAAK01C,aAAehsC,WAAW,WACvBjB,EAAMuB,QAAU,IAChBhK,EAAK21C,mBAAmBt4C,EAAKoL,IAElC,MAjMYzI,EAoMnB21C,mBAAqB,SAACt4C,EAAKoL,GACvB,KAAIA,EAAMuB,OAAS,IAAnB,CACA,IACI4rC,EADqB,IAAI7E,GAAmBtoC,GAChByjC,UAChC,GACI0J,EAAO9Q,OACH9kC,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgB2a,KACrDuB,EAAO9Q,OACH9kC,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgB4a,KACrDsB,EAAO9Q,OACH9kC,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgB6a,IASrD,OAPAv0C,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,8BAErB9H,EAAKg1C,2BAA2B33C,EAAK,IAIzC2C,EAAKg1C,2BAA2B33C,EAAKu4C,EAAO9Q,MAC5C9kC,EAAKvE,MAAMo6C,0BAA0B,CACjChR,WAAYxnC,EACZsnC,iBAAkBiR,MA5NP51C,EA2OnB81C,mBAAqB,SAACz4C,EAAKoL,GACvBzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,kBACjB/3C,MACAoL,WA/OWzI,EAmPnBm1C,mBAAqB,SAAA9kC,GAAqC,IAAlC+kC,EAAkC/kC,EAAlC+kC,gBAAiB/3C,EAAiBgT,EAAjBhT,IAAKoL,EAAY4H,EAAZ5H,MACtCo3B,EAAc7U,GAAUhrB,EAAKvE,MAAMwhC,uBACvC4C,EAAYuV,GAAiB/3C,GAAOoL,EACpCo3B,EAAYuV,GAAiBjb,oBAAqB,EAClD0F,EAAY+N,eAAgB,EAC5B5tC,EAAKvE,MAAMmkC,4BAA4BC,IAxPxB7/B,EA2PnB+1C,eAAiB,SAAAC,GACbA,EAAQlsC,QAAQ,SAACu6B,EAAQlnC,GACrB6C,EAAKw1C,4BAAL,UAAAjrC,OAA2CpN,EAAI,GAAKknC,MA7PzCrkC,EAiQnB60C,kBAjQmBj3C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiQC,SAAAC,IAAA,IAAA3J,EAAA0hC,EAAA4B,EAAA31B,EAAA22B,EAAAra,EAAA,OAAAiD,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAA/J,EAC4ByE,EAAKvE,MAAzCwhC,EADQ1hC,EACR0hC,sBAAuB4B,EADftjC,EACesjC,SADfz5B,EAAAE,KAAA,EAGCtF,EAAKvE,MAAMw6C,0BAA0B,CAClD/Z,aAAce,EAAsBvD,gBAAgBwC,aACpDga,mBAAoB,CAChB,CACI7qB,cAAe,CACX,CACI8Q,IAAKc,EAAsBvD,gBAAgByC,IAC3C1X,UACIwY,EAAsB7C,gBAAgB3V,UAC1CM,SACIkY,EAAsB7C,gBAAgBrV,SAC1CsV,IAAK4C,EAAsB7C,gBAAgBC,UAd/C,WAGVnxB,EAHU9D,EAAAkE,MAoBRC,QApBQ,CAAAnE,EAAAE,KAAA,eAqBZtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAkBoB,EAAGitC,YAAcjtC,EAAGrJ,UAxB9BuF,EAAA2L,OAAA,qBA4BZ7H,EAAGK,QA5BS,CAAAnE,EAAAE,KAAA,aA6BRu6B,EAAc7U,GAAUhrB,EAAKvE,MAAMwhC,wBAC3B2Q,eAAgB,EAC5B5tC,EAAKvE,MAAMmkC,4BAA4BC,GACvC7/B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,YAGhB+2B,EAtCO,CAAAz5B,EAAAE,KAAA,aAuCJtF,EAAKvE,MAAM6hC,uBAvCP,CAAAl4B,EAAAE,KAAA,SAyCJtF,EAAKo2C,kBAzCDhxC,EAAAE,KAAA,uBA2CIkgB,EAAoBxlB,EAAKvE,MAAzB+pB,kBAGJA,EAAgBxb,OAAS,IACxBizB,EAAsBG,WA/CvB,CAAAh4B,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAiDO/Q,EAAKU,SAAS,CACjB21C,mBAAoB5B,GACpB6B,mBAAmB,EACnBC,wBAAyB,SApD7B,yBAAAnxC,EAAAc,SAAAhB,EAAA1J,SAjQDwE,EA2iBnBw2C,4BAA8B,SAACn5C,EAAKoL,GAChCzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,kBACjB/3C,MACAoL,UAIQ,cAARpL,IACA43C,aAAaj1C,EAAKy2C,gBAClBz2C,EAAKy2C,eAAiB/sC,WAAW,WAC7B,IAAI6iC,EAAQ,OACR9jC,EAAMotB,MAAM0W,IAAU9jC,EAAMotB,MAAM0W,GAAOviC,QAAU,GACnDhK,EAAK02C,qBAAqBjuC,IAE/B,OA1jBQzI,EA8qBnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA/qBf5H,EAkrBnB22C,gBAAkB,SAAArrB,GAAgB,IAG1BD,EAF8BrrB,EAAKvE,MAA/BwhC,sBAEkC5R,cAE1C,IAAKA,GAAkC,KAAjBC,EAAqB,OAAO,KAElD,IAAM9xB,EAAI6xB,EAAczd,KAAK,SAAApU,GAAC,OAAIA,EAAE8xB,eAAiBA,IACrD,YAAUxuB,IAANtD,EAAwB,KAExBqsB,GAA0BrsB,EAAEgyB,kBAAoB7F,KAChB,IAA5B3lB,EAAKc,MAAM81C,cACX52C,EAAKU,SAAS,CAAEk2C,cAAc,IAE9B76B,EAAAhgB,EAAAC,cAAC66C,GAAD,CACIj0C,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,OAInDqsB,GAA0BrsB,EAAEgyB,kBAAoB9F,GAG5C3J,EAAAhgB,EAAAC,cAAC+6C,GAAD,CACIvG,QAAM,EACN5tC,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,MAK/CuiB,EAAAhgB,EAAAC,cAACg7C,GAAD,CACIp0C,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,OAhtBxCwG,EAstBnB82C,uBAAyB,SAAA5tC,GACjBA,EAAGuiB,UACHzrB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAWviB,EAAGuiB,UACdyd,iBAAkB,KAGtBhgC,EAAGkd,QACGpmB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkBhgC,EAAGkd,UAEzBpmB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkB,mCAvuBjBlpC,EA4uBnB0pC,qBAAuB,WACnB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KA7uBhBxpC,EAgvBnBi3C,aAAe,SAAAzd,GACXx5B,EAAKk3C,YAAY1d,GAAG2d,SAjvBLn3C,EAovBnBo3C,sBAAwB,WACpBp3C,EAAKk3C,YAAc,GACnBl3C,EAAKU,SAAS,CACVk2C,cAAc,EACdS,iBAAkB,EAClBvS,KAAM,CACFnL,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,OA7vBH95B,EAkwBnBs3C,gBAAkB,SAAAhvC,GAGd,OAAOtI,EAAKc,MAAMgkC,KAAKx8B,IArwBRtI,EAwwBnBu3C,mBAAqB,SAAAjvC,GAEjB,OADkCtI,EAAKvE,MAA/BwhC,sBACqBvD,gBAAgBpxB,IA1wB9BtI,EA6wBnBw3C,cAAgB,WAAM,IACVH,EAAqBr3C,EAAKc,MAA1Bu2C,iBAEJA,EAAmB,GACnBr3C,EAAKU,SAAS,CAAE22C,iBAAkBA,EAAmB,KAjxB1Cr3C,EAoxBnBy3C,eApxBmB75C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAoxBF,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACbtF,EAAKU,SAAS,CAAE41C,mBAAmB,IADtB,wBAAAjwC,EAAAH,SAAAE,EAAA5K,SApxBEwE,EAwxBnB03C,YAxxBmB95C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwxBL,SAAAyQ,IAAA,IAAAwM,EAAA+a,EAAA4B,EAAAxT,EAAAupB,EAAA9oB,EAAAupB,EAAAnsC,EAAAsc,EAAA,OAAAiD,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OAMV,IAJAtF,EAAKU,SAAS,CAAE41C,mBAAmB,IAFzBp0B,EAGkCliB,EAAKvE,MAAzCwhC,EAHE/a,EAGF+a,sBAAuB4B,EAHrB3c,EAGqB2c,SACzBxT,EAAgB,GAClBupB,EAAW,CAACP,GAAaC,GAAaC,GAAaC,IACvD1oB,EAAA,EAAAA,EAAoB8oB,EAApB5qC,OAAA8hB,IAASupB,EAAWT,EAAU9oB,GACtBmR,EAAsBvD,gBAAgB2b,IACtChqB,EAAczhB,KAAK,CACf0hB,aACI2R,EAAsBvD,gBAAgB2b,GAC1CtwB,SACIkY,EAAsBvD,gBAClB2b,EAAU,cAbpB,OAAA1/B,EAAArQ,KAAA,EAmBOtF,EAAKvE,MAAM4kC,0BAA0B,CAClDhV,cAAeA,EACf0R,wBAAyB/8B,EAAKvE,MAAMirB,sBAAsBjf,KArBpD,WAmBJyB,EAnBIyM,EAAArM,MAuBFC,QAvBE,CAAAoM,EAAArQ,KAAA,SAwBNtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UA3BlB8V,EAAArQ,KAAA,oBA8BDu5B,EA9BC,CAAAlpB,EAAArQ,KAAA,aA+BEtF,EAAKvE,MAAM6hC,uBA/Bb,CAAA3nB,EAAArQ,KAAA,SAiCEtF,EAAKo2C,kBAjCPzgC,EAAArQ,KAAA,uBAmCUkgB,EAAoBxlB,EAAKvE,MAAzB+pB,kBAGJA,EAAgBxb,OAAS,IACxBizB,EAAsBG,WAvC7B,CAAAznB,EAAArQ,KAAA,gBAAAqQ,EAAA5E,OAAA,SAyCa/Q,EAAKU,SAAS,CACjB21C,mBAAoB5B,GACpB6B,mBAAmB,EACnBC,wBAAyB,SA5CnC,yBAAA5gC,EAAAzP,SAAAwP,EAAAla,SAxxBKwE,EA40BnBo2C,gBA50BmBx4C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA40BD,SAAAgR,IAAA,IAAA0hC,EAAAnyB,EAAAyX,EAAA2a,EAAA,OAAAnvB,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,OACdtF,EAAKU,SAAS,CAAE41C,mBAAmB,IADrBqB,EAEqC33C,EAAKvE,MAAhD+pB,EAFMmyB,EAENnyB,gBAAiByX,EAFX0a,EAEW1a,sBAErB2a,EAAiBpyB,EAAgB,GACrCyX,EAAsBD,WAAa4a,EAAe5a,WAClDC,EAAsB3C,eAAiBsd,EAAetd,eACtD2C,EAAsBxC,eAAiBmd,EAAend,eACtDwC,EAAsBP,eAAiBkb,EAAelb,eACtDO,EAAsBN,eAAiBib,EAAejb,eATxC,wBAAAzmB,EAAAhQ,SAAA+P,EAAAza,SA50BCwE,EAw1BnBK,YAx1BmB,eAAA0W,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAw1BL,SAAAuR,EAAM/O,GAAN,OAAAghB,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,OACE,8BACZ/E,OAAOb,KADK,8BACM+H,GAFR,wBAAAgP,EAAAvQ,SAAAsQ,EAAAhb,SAx1BK,gBAAAyV,GAAA,OAAA8F,EAAA1F,MAAA7V,KAAA2S,YAAA,GAEfnO,EAAKc,MAAQ,CACTg0C,gBAAcH,EAAA,GAAA/2C,OAAA8sB,GAAA,EAAA9sB,CAAA+2C,EACTN,GAAc,IADLz2C,OAAA8sB,GAAA,EAAA9sB,CAAA+2C,EAETL,GAAc,IAFL12C,OAAA8sB,GAAA,EAAA9sB,CAAA+2C,EAGTJ,GAAc,IAHL32C,OAAA8sB,GAAA,EAAA9sB,CAAA+2C,EAITH,GAAc,IAJLG,GAMd7P,KAAM,CACFnL,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,IAEd+d,iBAAkB,CACd,CACIx6C,IAAK,CAACg3C,IACNjpC,MAAO,kBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,CAACi3C,IACNlpC,MAAO,iBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,CAACk3C,IACNnpC,MAAO,iBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,CAACm3C,IACNppC,MAAO,iBACPD,KAAM,OACN2sC,cAAc,IAGtBlwC,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB2hC,eAAe,EACfN,iBAAkB,GAClBzd,UAAW,GACX4rB,iBAAkB,EAClBT,cAAc,EACdN,mBAAmB,EACnBD,mBAAoB,GACpBE,wBAAyB,MACzBwB,YAAa,GACbC,cAAe,IAGnBh4C,EAAKk3C,YAAc,GACnBl3C,EAAK01C,aAAe,KACpB11C,EAAKk1C,oBAAsB,KA1DZl1C,iNA8DExE,KAAKC,MAAMm4C,0BAAtB1qC,SACN1N,KAAKkF,SAAS,CACVs3C,cAAgB9uC,GAAMA,EAAGmL,QAAW,KAGpCnL,GAAMA,EAAGmL,QAAUnL,EAAGmL,OAAOrK,QAC7BxO,KAAK25C,mBAAmB,CACpBC,gBACI,kBACJ/3C,IAAK,eACLoL,MAAOS,EAAGmL,OAAO,mJAwJThX,EAAKoL,GACrBjN,KAAKw5C,2BAA2B33C,EAAKoL,sDAIdpL,EAAKoL,GAC5B,IAAIwvC,EAASr6C,OAAA+d,EAAA,EAAA/d,CAAA,GAAQpC,KAAKsF,MAAMgkC,MAChCmT,EAAU56C,GAAOoL,EACjBjN,KAAKkF,SAAS,CAAEokC,KAAMmT,8DAgYQ3J,EAAY4J,GAG1C,IAFA,IAAIC,EAAU7J,EAAW5U,gBAEhBv8B,EAAI,EAAGA,EAAI+6C,EAAaluC,OAAQ7M,IACrC,GAAImxC,EAAW7U,MAAQye,EAAa/6C,GAAGs8B,IAAvC,CAGA,GAAI0e,EAAQre,WAEJqe,EAAQre,WACJoe,EAAa/6C,GAAGu8B,gBAAgBC,UACpCwe,EAAQre,WACJoe,EAAa/6C,GAAGu8B,gBAAgBE,UACpCue,EAAQre,WACJoe,EAAa/6C,GAAGu8B,gBAAgBG,UACpCse,EAAQre,WACJoe,EAAa/6C,GAAGu8B,gBAAgBI,UAEpC,OAAO,EAIf,GAAIqe,EAAQte,WAEJse,EAAQte,WACJqe,EAAa/6C,GAAGu8B,gBAAgBC,UACpCwe,EAAQte,WACJqe,EAAa/6C,GAAGu8B,gBAAgBE,UACpCue,EAAQte,WACJqe,EAAa/6C,GAAGu8B,gBAAgBG,UACpCse,EAAQte,WAAaqe,EAAa/6C,GAAGu8B,gBAAgB0e,SAErD,OAAO,EAIf,GAAID,EAAQve,WAEJue,EAAQve,WACJse,EAAa/6C,GAAGu8B,gBAAgBC,UACpCwe,EAAQve,WACJse,EAAa/6C,GAAGu8B,gBAAgBE,UACpCue,EAAQve,WACJse,EAAa/6C,GAAGu8B,gBAAgBG,UACpCse,EAAQve,WACJse,EAAa/6C,GAAGu8B,gBAAgBI,UAEpC,OAAO,EAIf,GAAIqe,EAAQxe,WAEJwe,EAAQxe,WACJue,EAAa/6C,GAAGu8B,gBAAgBC,UACpCwe,EAAQxe,WACJue,EAAa/6C,GAAGu8B,gBAAgBE,UACpCue,EAAQxe,WACJue,EAAa/6C,GAAGu8B,gBAAgBG,UACpCse,EAAQxe,WACJue,EAAa/6C,GAAGu8B,gBAAgBI,UAEpC,OAAO,EAKnB,OAAO,mCAkLF,IAAA54B,EAAA1F,KAAA68C,EAkBD78C,KAAKC,MAhBLC,EAFC28C,EAED38C,QACAuhC,EAHCob,EAGDpb,sBACA4B,EAJCwZ,EAIDxZ,SACAyZ,EALCD,EAKDC,cACA5Z,EANC2Z,EAMD3Z,mCANC6Z,EAAAF,EAOD5yB,mBACIuZ,EARHuZ,EAQGvZ,qCACAC,EATHsZ,EASGtZ,8BACAM,EAVHgZ,EAUGhZ,iCACAL,EAXHqZ,EAWGrZ,gDACAG,EAZHkZ,EAYGlZ,wBACAjQ,EAbHmpB,EAaGnpB,yBACAyjB,EAdH0F,EAcG1F,qCACA/T,EAfHyZ,EAeGzZ,+BACAF,EAhBH2Z,EAgBG3Z,oBAhBH/1B,EA+BDrN,KAAKsF,MAJLw1C,GA3BCztC,EA0BD+tC,aA1BC/tC,EA2BDytC,mBAEAD,GA7BCxtC,EA4BDwuC,iBA5BCxuC,EA6BDwtC,oBACAE,EA9BC1tC,EA8BD0tC,wBAGE56C,EACF+iC,GACAM,GACAC,GACAC,GACAK,GACAnQ,GACAyjB,GACA/T,GACAF,EAMA4Z,GAHmD,KAAnDvb,EAAsBvD,gBAAgBC,UACtCsD,EAAsBvD,gBAAgBK,iBAE1B,cACZp6B,EAAU,aACd,OAAQ02C,GACJ,IAv5BwB,sBAw5BpBmC,EAAY,WACRt3C,EAAKR,SAAS,CAAE41C,mBAAmB,GAAS,eAIhD32C,EAAU,WACNuB,EAAKu2C,kBAET,MACJ,IAh6ByB,uBAi6BrBe,EAAY,WACRt3C,EAAKR,SAAS,CAAE41C,mBAAmB,GAAnC14C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA4C,SAAAqS,IAAA,OAAAmR,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAAAkS,EAAAlS,KAAA,EAClCpE,EAAKzF,MAAMg9C,6BADuB,cAAAjhC,EAAAlS,KAAA,EAElCpE,EAAKzF,MAAMi9C,6BAA4B,GAFL,OAGxCx3C,EAAKw2C,cAHmC,wBAAAlgC,EAAAtR,SAAAoR,EAAA9b,WAMhDmE,EAAU,WACNuB,EAAKw2C,eAET,MACJ,IA16B0B,wBA26BtBc,EAAY,aACZ74C,EAAU,WACNuB,EAAKR,SAAS,CAAE41C,mBAAmB,KAEvC,MACJ,IAj7ByB,uBAk7BrBkC,EAAY,WACRt3C,EAAKR,SAAS,CAAE41C,mBAAmB,GAAnC14C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA4C,SAAA0zC,IAAA,IAAAnzB,EAAAozB,EAAA3vC,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cAAAuzC,EAAAvzC,KAAA,EAElCpE,EAAKzF,MAAMq9C,eAFuB,QAIhCtzB,EAAoBtkB,EAAKzF,MAAzB+pB,iBACYxb,OAAS,IACnB4uC,EAAgB,GACtBpzB,EAAgB1b,QAAQ,SAAAvQ,GACkB,KAAlCA,EAAEmgC,gBAAF,UACAkf,EAAchvC,KACVrQ,EAAEmgC,gBAAF,YAWNzwB,EAAO,CAAE2vC,iBACf13C,EAAKzF,MAAMs9C,sCACP9vC,IAGR/H,EAAKzF,MAAMm3C,4BACP1xC,EAAKzF,MAAMsjC,4BA3ByB,wBAAA8Z,EAAA3yC,SAAAyyC,EAAAn9C,WA+BhDmE,EAAU,WACNuB,EAAKw2C,eAET,MACJ,KAAKjD,GACD+D,EAAY,WAERt3C,EAAKzF,MAAMu9C,8BAA6B,GAExC93C,EAAKk1C,mBAETz2C,EAAU,WACNuB,EAAKR,SAAS,CAAE41C,mBAAmB,KAO/C,OACIv6B,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACi9C,GAAD,CACI7G,WAAYkE,EACZj6C,MAAOg6C,EACP12C,QAASA,EACT0yC,SAAUmG,EACVlG,WAAYiE,GA9+BI,wBAg/BfF,GACGt6B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACnCqG,YAAW+tB,EAAwBhf,QAChCtE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,iDAEU,IACN2e,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CACI7a,GAAE,uBAAAiH,OACE80B,EAAwBhf,MAAMqD,OAElClb,OAAO,UAJX,UAWN8I,YAAW+tB,EAAwBhf,QACjC/O,YACI+tB,EAAwB3Y,wBAExB3K,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,8DAEuB,IACnB2e,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CACI7a,GAAE,kCAAAiH,OACE80B,EACK3Y,sBAAsBjf,IAE/Be,OAAO,UALX,UAvgCH,yBAqhChB6tC,GACGt6B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,6CArhCU,0BA2hCjBi5C,GACGt6B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,qEAGID,EAAAhgB,EAAAC,cAAA,QACIC,UAAWP,EAAQw9C,UACnBt2C,QAAS,kBACL1B,EAAKb,YACDa,EAAKJ,MAAMi3C,eAJvB,kBAliCC,yBAijChB1B,GACGt6B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,6CAMPi5C,IAAuB5B,IACpB14B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,qEAQZ2e,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACIlf,UAAWjwB,KAAKsF,MAAM2qB,UACtByd,iBAAkB1tC,KAAKsF,MAAMooC,iBAC7BQ,qBAAsBluC,KAAKkuC,qBAC3BF,cAAehuC,KAAKsF,MAAM0oC,gBAG9BztB,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,uBACPV,UAAWA,EACXE,WAAYgjC,EAAWyZ,EAAgB,IAEvCv8B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,IAwGV2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,iBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAI,eACJqwB,QAAM,EACNrvB,MACIw0B,EACKvD,gBACAwC,aAET3wB,SAAU,SAAA6qB,GAAK,OACXl1B,EAAKi0C,mBAAmB,CACpBC,gBACI,kBACJ/3C,IAAK,eACLoL,MAAO2tB,EAAM5tB,OAAOC,UAI3BjN,KAAKsF,MAAMk3C,cAAc/6C,IACtB,SAAA+6B,GAAM,OACFjc,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOuvB,EACP36B,IAAK26B,GAEJA,QAOzBjc,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,WAE5Bp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,wBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHxL,UAAWP,EAAQ29C,UACnBjuC,MAAM,GACNhP,QAAQ,WACRqM,MACIw0B,EAAqB,gBAArB,IAIJ1xB,SAAU,SAAA9K,GAAC,OACPS,EAAKi0C,mBAAmB,CACpBC,gBACI,kBACJ/3C,IAAK,MACLoL,MAAOhI,EAAE+H,OAAOC,aAMpCsT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,WAE5Bp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,qBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHxL,UAAWP,EAAQ29C,UACnBjuC,MAAM,GACNhP,QAAQ,WACRqM,MACIw0B,EAAqB,gBAArB,UAIJ1xB,SAAU,SAAA9K,GAAC,OACPS,EAAKs1C,4BACD,YACA/1C,EAAE+H,OAAOC,YAM7BsT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,iBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHxL,UAAWP,EAAQ29C,UACnBjuC,MAAM,GACNhP,QAAQ,WACRqM,MACIw0B,EAAqB,gBAArB,SAIJ1xB,SAAU,SAAA9K,GAAC,OACPS,EAAKs1C,4BACD,WACA/1C,EAAE+H,OAAOC,aAQjCsT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,kBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAAC27B,GAAD,CACIlwB,GAAG,GACHxL,UAAWP,EAAQ29C,UACnBjuC,MAAM,GACNhP,QAAQ,WACRqM,MACIw0B,EAAqB,gBAArB,IAKJ1xB,SAAU,SAAA9K,GAAC,OACPS,EAAKs1C,4BACD,MACA/1C,EAAE+H,OAAOC,YAM7BsT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,WACA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHxL,UAAWP,EAAQ29C,UACnBjuC,MAAM,GACNhP,QAAQ,WACRqM,MACIw0B,EAAqB,gBAArB,QAIJ1xB,SAAU,SAAA9K,GAAC,OACPS,EAAKs1C,4BACD,UACA/1C,EAAE+H,OAAOC,cAQrCsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAQ,YACRuG,MAAM,UACNC,QAASpH,KAAKq5C,mBAHlB,yBAyBhB94B,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BA53CJnE,IAAM5D,WAq+C3BgM,eA7ES,SAAShL,GAAO,IAEhC2kB,EAIA3kB,EAJA2kB,mBACA6tB,EAGAxyC,EAHAwyC,0BACAxiB,EAEAhwB,EAFAgwB,mBACAwoB,EACAx4C,EADAw4C,eAGA5a,EAIAjZ,EAJAiZ,mCACA6a,EAGA9zB,EAHA8zB,kBACAptB,EAEA1G,EAFA0G,MACA4S,EACAtZ,EADAsZ,2BAGArY,EAEA4sB,EAFA5sB,sBACAmsB,EACAS,EADAT,qCAEJ,MAAO,CACH5V,sBAAuBxX,EAAmBwX,sBAC1CI,sBAAuB5X,EAAmB4X,sBAC1CC,uBAAwB7X,EAAmB6X,uBAC3Cic,oBACArc,mBAAoBzX,EAAmByX,mBACvC1X,gBAAiBC,EAAmBD,gBACpCkZ,qCACAhY,wBACAmsB,uCACA1mB,QACA4S,6BACAtZ,qBACA2J,yBAA0B0B,EAAmB1B,yBAC7CkqB,mBAImB,SAASztC,GAChC,MAAO,CACH+zB,4BAA6B,SAAAiG,GAAO,OAChCh6B,EAAS+zB,GAA4BiG,KACzC9F,+BAAgC,SAAApyB,GAAU,OACtC9B,EAASk0B,GAA+BpyB,KAC5C0yB,0BAA2B,SAAAnX,GAAA,IACvBmC,EADuBnC,EACvBmC,cACA0R,EAFuB7T,EAEvB6T,wBAFuB,OAIvBlxB,EACIw0B,GAA0B,CACtBhV,gBACA0R,8BAGZ8Y,0BAA2B,SAAAD,GAAM,OAC7B/pC,EtBvwC6B,SAAAwE,GAAA,IAAGw0B,EAAHx0B,EAAGw0B,WAAH,MAAuC,CAC/E15B,KA9OoC,+BA+OpCw5B,iBAFwCt0B,EAAes0B,iBAGvDE,csBowCoBgR,CAA0BD,KACvCkD,aAAc,kBAAMjtC,EtB13BA,eAAA2tC,EAAA57C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAuR,EAAO3K,GAAP,OAAA4c,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cAAAmR,EAAAnR,KAAA,EAC3BuG,EAT8B,CACpCV,KAvlBqB,kBA8lBY,OAEjCU,EANyC,CACzCV,KA1lB6B,0BA6lBI,wBAAAsL,EAAAvQ,SAAAsQ,EAAAhb,SAAN,gBAAAqb,GAAA,OAAA2iC,EAAAnoC,MAAA7V,KAAA2S,YAAA,KsB23BpBuqC,4BAA6B,SAAAe,GAAI,OAC7B5tC,EtBz0B+B,SAAC4tC,GAAD,MAAW,CACrDtuC,KAppBsC,iCAqpBtCkyB,sBAAuBoc,GsBu0BHf,CAA4Be,KACzCT,6BAA8B,SAAAS,GAAI,OAC9B5tC,EtBt0BgC,SAAC4tC,GAAD,MAAW,CACtDtuC,KAxpBwC,mCAypBxCmyB,uBAAwBmc,GsBo0BJT,CAA6BS,KAC1C7G,4BAA6B,SAAAlsB,GAAqB,OAC9C7a,EAAS+mC,GAA4BlsB,KACzCob,4BAA6B,SAAA74B,GAAI,OAC7B4C,EAASi2B,GAA4B74B,KACzCgtC,0BAA2B,SAAAhtC,GAAI,OAC3B4C,EtBnyB6B,SAAC5C,GAAD,sBAAAywC,EAAA97C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAA0zC,EAAO9sC,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cAClDuG,EAASs2B,MADyC0W,EAAAvzC,KAAA,EAGjCoL,KAAMM,KAAKrS,GAAU,uCAAwCsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GAClH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARoC,WAG5CqJ,EAH4C2vC,EAAAvvC,MAgB1CL,KAhB0C,CAAA4vC,EAAAvzC,KAAA,eAiBjDuG,EAASw2B,MAjBwCwW,EAAA9nC,OAAA,SAkB1C,CAAExH,SAAS,EAAO1J,QAAS,wBAlBe,WAoB9CqJ,EAAGD,KAAKM,QApBsC,CAAAsvC,EAAAvzC,KAAA,gBAqBjDuG,EAASu2B,GAAkCl5B,IArBM2vC,EAAA9nC,OAAA,SAsB1C,CAAExH,SAAS,EAAM1J,QAAS,KAtBgB,eAwBjDgM,EAASw2B,MAxBwCwW,EAAA9nC,OAAA,SAyB1C,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMw6B,SAAW38B,EAAGD,KAAKoC,MAAMxL,QAASs2C,WAAYjtC,EAAGD,KAAKoC,MAAMxL,UAzB3D,yBAAAg5C,EAAA3yC,SAAAyyC,EAAAn9C,SAAV,gBAAAm+C,GAAA,OAAAD,EAAAroC,MAAA7V,KAAA2S,YAAA,GsBmyBpB8nC,CAA0BhtC,KACvCq5B,qBAAsB,SAAAr5B,GAAI,OAAI4C,EAASy2B,GAAqBr5B,KAC5D2wC,uCAAwC,SAAA3wC,GAAI,OACxC4C,EtBxrB0C,SAAC5C,GAAD,sBAAA4wC,EAAAj8C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAA60C,EAAOjuC,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA40C,GAAA,cAAAA,EAAA10C,KAAA00C,EAAAz0C,MAAA,cAC/DuG,EAASi3B,MADsDiX,EAAAz0C,KAAA,EAG9CoL,KAAMC,IAAIhS,GAAU,oDAAqDsK,GAAM2H,MAAM,SAACnQ,GACtG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARiD,WAGzDqJ,EAHyD6wC,EAAAzwC,MAgBvDL,KAhBuD,CAAA8wC,EAAAz0C,KAAA,eAiB9DuG,EAASm3B,MAjBqD+W,EAAAhpC,OAAA,SAkBvD,CAAExH,SAAS,EAAO1J,QAAS,wBAlB4B,WAoB3DqJ,EAAGD,KAAKM,QApBmD,CAAAwwC,EAAAz0C,KAAA,gBAqB9DuG,EAASk3B,GAA+C75B,IArBM6wC,EAAAhpC,OAAA,SAsBvD,CAAExH,SAAS,EAAM1J,QAAS,KAtB6B,eAwB9DgM,EAASm3B,MAxBqD+W,EAAAhpC,OAAA,SAyBvD,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBc,yBAAAk6C,EAAA7zC,SAAA4zC,EAAAt+C,SAAV,gBAAAw+C,GAAA,OAAAH,EAAAxoC,MAAA7V,KAAA2S,YAAA,GsBwrBjCyrC,CAAuC3wC,KACpDg6B,wCAAyC,SAAAh6B,GAAI,OACzC4C,EAASo3B,GAAwCh6B,KACrDwvC,2BAA4B,kBACxB5sC,EtB7lBoC,SAACA,EAAUouC,GAC1DpuC,EAAS,CACRV,KAAMs4B,GACN91B,WAAYssC,IAAWC,WAAWvsC,gBsB2lB5BorC,sCAAuC,SAAA9vC,GAAI,OACvC4C,EtBvlByC,SAAC5C,GAAD,sBAAAkxC,EAAAv8C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAm1C,EAAOvuC,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAk1C,GAAA,cAAAA,EAAAh1C,KAAAg1C,EAAA/0C,MAAA,cAC9DuG,EAAS63B,MADqD2W,EAAA/0C,KAAA,EAE7CoL,KAAMM,KAAKrS,GAAU,qCAAsCsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GAChH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAPgD,WAExDqJ,EAFwDmxC,EAAA/wC,MAetDL,KAfsD,CAAAoxC,EAAA/0C,KAAA,eAgB7DuG,EAAS+3B,MAhBoDyW,EAAAtpC,OAAA,SAiBtD,CAAExH,SAAS,EAAO1J,QAAS,wBAjB2B,WAmB1DqJ,EAAGD,KAAKM,QAnBkD,CAAA8wC,EAAA/0C,KAAA,gBAoB7DuG,EAAS83B,GAA8Cz6B,IApBMmxC,EAAAtpC,OAAA,SAqBtD,CAAExH,SAAS,EAAM1J,QAAS,KArB4B,eAuB7DgM,EAAS+3B,MAvBoDyW,EAAAtpC,OAAA,SAwBtD,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAxBa,yBAAAw6C,EAAAn0C,SAAAk0C,EAAA5+C,SAAV,gBAAA8+C,GAAA,OAAAH,EAAA9oC,MAAA7V,KAAA2S,YAAA,GsBulBhC4qC,CAAsC9vC,KACnD2qC,iBAAkB,kBAAM/nC,EAAS+nC,SAI1B9nC,CAGbpO,qBArGa,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,OAAQowB,UAAW,IACnCmlB,QAAS,CACLv1C,QAAS,OACTm1B,KAAM,EACN/e,YAAa,GACbnW,WAAY,UAEhBuH,MAAO,CAAE2tB,KAAM,KACfqgB,QAAS,CAAErgB,KAAM,KACjBsgB,UAAW,CAAEp1C,MAAO,QACpBs2C,eAAgB,CAAElkB,OAAQ,GAAIpyB,MAAO,QACrCu2C,OAAQ,CAAEx8C,SAAU,YACpBk7C,UAAW,CACPxN,OAAQ,UACRC,aAAc,kBACdhpC,MAAO,UAoFbjF,CAAmBg3C,eCliDf+F,eACF,SAAAA,IAAc,IAAAz6C,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAi/C,IACVz6C,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA68C,GAAAr6C,KAAA5E,QACKsF,MAAQ,CACT61B,MAAO,IAHD32B,wEASV,OACI+b,EAAAhgB,EAAAC,cAAA,eACI+f,EAAAhgB,EAAAC,cAAC0+C,GAAA,EAAD,CAAUC,OAAQn/C,KAAKC,MAAMk/C,OAAQC,OAAQp/C,KAAKC,MAAMm/C,QACnD,SAAAvqC,GAAA,IAAEwqC,EAAFxqC,EAAEwqC,aAAcC,EAAhBzqC,EAAgByqC,cAAhB,OACG/+B,EAAAhgB,EAAAC,cAAA,MAAA4B,OAAAyF,OAAA,GAASw3C,IAAT,CAAyB99C,MAAO2O,GAAO/O,UAAUo+C,SAASC,MAAMtvC,SAC5DqQ,EAAAhgB,EAAAC,cAAA,QAAW8+C,KACX/+B,EAAAhgB,EAAAC,cAAA,0DAhBE0H,IAAM5D,WAyB9B4L,GAAS,CACX/O,UAAU,CACNo+C,SAAU,CACNC,MAAO,CACHtvC,OAAQ,CACJzH,MAAO,IACPoyB,OAAQ,IACR4kB,YzDlCS,UyDmCTC,YAAa,SACbC,YAAa,EACbhO,aAAc,GACdzb,UAAW,cAOhB+oB,MC5CTW,oLAGE,OACIr/B,EAAAhgB,EAAAC,cAAA,OAAKe,MAAKa,OAAA+d,EAAA,EAAA/d,CAAA,GACH8N,GAAO/O,UAAU+O,OADd,CAEN2qB,OAAQ76B,KAAKC,MAAM46B,kBANb3yB,IAAM5D,WAetB4L,GAAS,CACX/O,UAAW,CACP+O,OAAQ,CACJzH,MAAO,OACPL,QAAS,QAEby3C,YAAY,CACR3vC,OAAQ,IAGZgtB,WAAW,CACPhtB,OAAQ,CACJ/H,WAAY,OAWby3C,MCpCTE,oLACO,IAAAt7C,EAAAxE,KACL,OACIugB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,KACA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,UAAKR,KAAKC,MAAMk7B,MAAM15B,IAAI,SAAC4Q,EAAG1Q,GAAJ,OACtB4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,QAAUF,GACf4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACLyQ,EAAE6f,MAEP3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAAcvZ,MAAO,YACjBC,QAAS,kBAAM5C,EAAKvE,MAAM8/C,oBAAoB1tC,EAAG1Q,qBAd3D2C,aAkCfpC,wBATA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAQVe,CAAmB49C,ICjC5BE,eACF,SAAAA,EAAY//C,GAAQ,OAAAmC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAggD,GAAA59C,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA49C,GAAAp7C,KAAA5E,KACVC,0EAID,IAAAF,EAC0BC,KAAKC,MAA5BC,EADHH,EACGG,QAAS+/C,EADZlgD,EACYkgD,UACjB,OACI1/B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIC,kBAAgB,qBAChBxB,mBAAiB,2BACjB/a,KAAM+7C,GAEN1/B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQggD,OACpB3/B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQigD,SACpB5/B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4B,UACnB9B,KAAKC,MAAM6B,oBAjBboG,IAAM5D,WA6DlBpC,wBA5BA,SAAAC,GAAK,MAAK,CACrB+9C,MAAO,CACH19C,SAAU,WACViG,MAAO,MACPoyB,OAAQ,QACRnyB,gBAAiB,QACjB6U,IAAK,EACLE,KAAM,EACNC,MAAO,EACPF,OAAQ,EACRzU,OAAQ,QAGZ5H,UAAW,CACP05B,OAAQ,OACRulB,UAAW,OACXC,UAAW,cAEfF,QAAS,CACL3nB,UAAW,OACX8nB,MAAO,SACPl4C,QAAS,OACTC,WAAY,SACZiV,eAAgB,YAKTpb,CAAmB89C,IC9D5BO,eACF,SAAAA,EAAYtgD,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAugD,IACf/7C,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAm+C,GAAA37C,KAAA5E,KAAMC,KAOV+B,KARmBI,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAQZ,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAA2L,OAAA,SACI,IAAItH,QAAQ,SAACuyC,EAASC,GACzBj8C,EAAKk8C,YAAc,CACfF,UACAC,UAEJj8C,EAAKU,SAAS,CACV+6C,WAAW,OAPhB,wBAAAr2C,EAAAc,SAAAhB,EAAA1J,SARYwE,EAoBnBm8C,KAAO,WACHn8C,EAAKU,SAAS,CACV+6C,WAAW,KApBfz7C,EAAKc,MAAQ,CACT26C,WAAW,GAEfz7C,EAAKk8C,YAAc,GALJl8C,wEA0BV,IAAAkB,EAAA1F,KACGigD,EAAcjgD,KAAKsF,MAAnB26C,UAER,OACI1/B,EAAAhgB,EAAAC,cAACogD,GAAD,CACIngC,kBAAgB,qBAChBxB,mBAAiB,2BACjBghC,UAAWA,GAEX1/B,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAAA,aAAKR,KAAKC,MAAMkgD,SAChB5/B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,YACN5F,MAAOA,GAAMs/C,gBACbz5C,QAAS,WACL1B,EAAKi7C,OACLj7C,EAAKg7C,YAAYF,SAAQ,KAG5BxgD,KAAKC,MAAM6gD,gBAAkB,WAElCvgC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAQ,YACRuG,MAAM,UACNC,QAAS,WACL1B,EAAKi7C,OACLj7C,EAAKg7C,YAAYF,SAAQ,KAG5BxgD,KAAKC,MAAM8gD,eAAiB,iDAQpC,IAAApkB,EAAA38B,KAAAghD,GACsBhhD,KAAK0gD,aAAe,IAA3CF,eADC,IAAAQ,EACS,aADTA,EAET,OAAO,SAAAnoC,GACH2nC,EAAQ3nC,GACR8jB,EAAKgkB,4CAID,IAAAM,EAAAjhD,KAAAkhD,GACsBlhD,KAAK0gD,aAAe,IAA1CD,cADA,IAAAS,EACS,aADTA,EAER,OAAO,SAAAztC,GACHgtC,EAAOhtC,GACPwtC,EAAKN,eA5EiBz4C,IAAM5D,WAwFlC/C,GAAQ,CACVs/C,gBAAiB,CACbriC,YAAa,SAIL+hC,MCjGHY,GAAqB,SAAAtsC,GA6C9B,MAxCW,CACP,CACIhT,IAAK,SACL+N,MAAO,gBACPD,KAAM,eACN4sB,QANN1nB,EAHFusC,sBAWI,CACIv/C,IAAK,WACL+N,MAAO,aACPD,KAAM,eACN4sB,QAZN1nB,EAFFwsC,oBAeQthC,UAAU,GAEd,CACIle,IAAK,SACL+N,MAAO,kBACPD,KAAM,eACN4sB,QAnBN1nB,EADFysC,gBAqBQvhC,UAAU,GAEd,CACIle,IAAK,gBACL+N,MAAO,kBACPD,KAAM,qBAEV,CACI9N,IAAK,cACL+N,MAAO,eACPD,KAAM,eACN4sB,QAAS,CAAC,CAAEtvB,MAAO,YAAa2C,MAAO,cACvCmQ,UAAU,GAEd,CACIle,IAAK,UACL+N,MAAO,SACPD,KAAM,YACN0sB,cAAe,KAMdklB,GAAqB,SAAA1nC,GAK5B,IAJF2nC,EAIE3nC,EAJF2nC,iBACAC,EAGE5nC,EAHF4nC,sBACAC,EAEE7nC,EAFF6nC,kBA2DA,MAtDW,CACP,CACI7/C,IAAK,SACL+N,MAAO,SACPD,KAAM,eACN4sB,QARN1iB,EADF8nC,wBAWI,CACI9/C,IAAK,WACL+N,MAXgB4xC,EAAmB,aAAe,YAYlD7xC,KAAM,eACN4sB,QAASklB,EACT1hC,UAAU,GAEd,CACIle,IAAK,SACL+N,MAAO,kBACPD,KAAM,eACN4sB,QAAS,CAAC,CAAEtvB,MAAO,YAAa2C,MAAO,cACvCmQ,UAAU,GAEd,CACIle,IAAK,gBACL+N,MAAO,iBACPD,KAAM,qBAEV,CACI9N,IAAK,cACL+N,MA7BkB4xC,EAAmB,eAAiB,cA8BtD7xC,KAAM,eACN4sB,QAASmlB,EACT3hC,UAAU,GAEd,CACIle,IAAK,mBACL+N,MAAO,iBACPD,KAAM,QACN4sB,QAAS,CACL,CAAEtvB,MAAO6kC,GAAIliC,MAAOkiC,IACpB,CAAE7kC,MAAO+kC,GAAKpiC,MAAOoiC,IACrB,CAAE/kC,MAAO8kC,GAAMniC,MAAOmiC,IACtB,CAAE9kC,MAAOglC,GAAOriC,MAAOqiC,MAG/B,CACIpwC,IAAK,iBACL+N,MAAO,yBACPD,KAAM,YACNktB,iBAAkB,CACdh7B,IAAK,mBACL65B,SAAU,CAACsW,GAAKD,GAAME,QAOzB2P,GAAqB,SAAA3nC,GAK5B,IAJFonC,EAIEpnC,EAJFonC,oBACAC,EAGErnC,EAHFqnC,gBACAF,EAEEnnC,EAFFmnC,qBACArhC,EACE9F,EADF8F,SA4DA,MA1DW,CACP,CACIle,IAAK,SACL+N,MAAO,SACPD,KAAM,eACN4sB,QAAS6kB,EACTrhC,YAEJ,CACIle,IAAK,WACL+N,MAAO,YACPD,KAAM,eACN4sB,QAAS8kB,EACTthC,UAAU,GAEd,CACIle,IAAK,SACL+N,MAAO,kBACPD,KAAM,eACN4sB,QAAS+kB,EACTvhC,UAAU,GAEd,CACIle,IAAK,gBACL+N,MAAO,iBACPD,KAAM,oBACNoQ,YAEJ,CACIle,IAAK,cACL+N,MAAO,cACPD,KAAM,eACN4sB,QAAS,CAAC,CAAEtvB,MAAO,YAAa2C,MAAO,cACvCmQ,UAAU,GAEd,CACIle,IAAK,mBACL+N,MAAO,iBACPD,KAAM,QACN4sB,QAAS,CACL,CAAEtvB,MAAO6kC,GAAIliC,MAAOkiC,IACpB,CAAE7kC,MAAO+kC,GAAKpiC,MAAOoiC,IACrB,CAAE/kC,MAAO8kC,GAAMniC,MAAOmiC,IACtB,CAAE9kC,MAAOglC,GAAOriC,MAAOqiC,KAE3BlyB,YAEJ,CACIle,IAAK,iBACL+N,MAAO,yBACPD,KAAM,YACNktB,iBAAkB,CACdh7B,IAAK,mBACL65B,SAAU,CAACsW,GAAKD,GAAME,KAE1BlyB,cAMC8hC,GAAqB,SAAArnC,GAI5B,IAHFmnC,EAGEnnC,EAHFmnC,uBACAF,EAEEjnC,EAFFinC,sBACA1hC,EACEvF,EADFuF,SA6CA,MA3CW,CACP,CACIle,IAAK,SACL+N,MAAO,gBACPD,KAAM,eACN4sB,QAASolB,EACT5hC,YAEJ,CACIle,IAAK,WACL+N,MAAO,YACPD,KAAM,eACN4sB,QAASklB,EACT1hC,UAAU,GAEd,CACIle,IAAK,SACL+N,MAAO,kBACPD,KAAM,eACN4sB,QAAS,CAAC,CAAEtvB,MAAO,YAAa2C,MAAO,cACvCmQ,UAAU,GAEd,CACIle,IAAK,gBACL+N,MAAO,iBACPD,KAAM,oBACNoQ,YAEJ,CACIle,IAAK,cACL+N,MAAO,cACPD,KAAM,eACN4sB,QAASklB,EACT1hC,UAAU,GAEd,CACIle,IAAK,UACL+N,MAAO,SACPD,KAAM,YACN0sB,cAAe,EACftc,cChJR5c,GADWN,eACQM,QAEV2+C,GAAU,UACVC,GAAY,YAEnBC,eACF,SAAAA,EAAY/hD,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgiD,IACfx9C,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4/C,GAAAp9C,KAAA5E,KAAMC,KAiDVqJ,kBAlDmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkDC,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBtF,EAAKvE,MAAM4yB,kBACXruB,EAAKy9C,gBAAkB5R,GAAqBW,IAC5CxsC,EAAK09C,iBAAmBzkB,GAInBj5B,EAAKvE,MAAMirB,sBAAsBjf,IAClCzH,EAAKvE,MAAM82C,mCARC,wBAAAntC,EAAAc,SAAAhB,EAAA1J,SAlDDwE,EAkEnB29C,mBAAqB,SAACvgD,EAAM+N,GACxB,OAAOA,IAASmyC,GAAT,GAAA/yC,OACEnN,EAAKsQ,SADP,OAAAnD,OACqBnN,EAAK2Q,kBAD1B,OAAAxD,OAEGnN,EAAKsvC,mBAFR,GAAAniC,OAIEnN,EAAKsQ,SAJP,OAAAnD,OAIqBnN,EAAK6Q,gBAJ1B,OAAA1D,OAKGnN,EAAKyvC,kBAxEA7sC,EA4EnB49C,iBAAmB,WAId,IAHDzyC,EAGCgD,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAHMmvC,GACPO,EAEC1vC,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAFc,GACf2vC,EACC3vC,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GADmB,GAEhB4vC,EAAMF,EAAa7zC,QAChBhK,EAAKvE,MAAMkS,YAAc,IAAI6P,OAAO,SAAA3P,GAAC,OAClCgwC,EAAa7uC,SAASnB,EAAEi+B,eAE5B9rC,EAAKvE,MAAMkS,WAEbxC,IAASmyC,IAAWnyC,IAASoyC,GACzBO,EAAkB9zC,SACdmB,IAASmyC,GACTS,EAAMA,EAAIvgC,OACN,SAAA3P,GAAC,OACGiwC,EAAkB9uC,SAASnB,EAAEI,kBAC7B6vC,EAAkB9uC,SAASnB,EAAEmwC,sBAE9B7yC,IAASoyC,KAChBQ,EAAMA,EAAIvgC,OACN,SAAA3P,GAAC,OACGiwC,EAAkB9uC,SAASnB,EAAEE,oBAC7B+vC,EAAkB9uC,SAASnB,EAAEw3B,0BAK7C0Y,EAAM,GAGV,IAAIE,EAAM,IAAIryB,IAAImyB,EAAI9gD,IAAI,SAAA6oC,GAAC,OAAI9lC,EAAK29C,mBAAmB7X,EAAG36B,MAEtDwC,EAAa,GAEjBA,EAAW/D,KAAK,CACZwB,MAAO,YACP3C,MAAO,KAGX,IAAIy1C,EAAOtgD,OAAAusB,GAAA,EAAAvsB,CAAIqgD,GAAKl6B,OAAO9mB,IAAI,SAAA6oC,GAC3B,MAAO,CAAE16B,MAAO06B,EAAGr9B,MAAOq9B,KAE9Bn4B,EAAaA,EAAWpD,OAAO2zC,GAE/B,IAAIC,EAAevgD,OAAAusB,GAAA,EAAAvsB,CAAI,IAAIguB,IAAImyB,EAAI9gD,IAAI,SAAA6oC,GAAC,OAAIA,EAAEp4B,aAAYzQ,IAAI,SAAA6oC,GAAC,MAAK,CAChE16B,MAAO06B,EACPr9B,MAAOq9B,KAGPsY,EAAiB,GAYrB,OAVIjzC,IAASmyC,GACTc,EAAiBxgD,OAAAusB,GAAA,EAAAvsB,CAAI,IAAIguB,IAAImyB,EAAI9gD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE73B,oBAAmBhR,IAC3D,SAAA6oC,GAAC,MAAK,CAAE16B,MAAO06B,EAAGr9B,MAAOq9B,KAEtB36B,IAASoyC,KAChBa,EAAiBxgD,OAAAusB,GAAA,EAAAvsB,CACV,IAAIguB,IAAImyB,EAAI9gD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE/3B,sBAC5B9Q,IAAI,SAAA6oC,GAAC,MAAK,CAAE16B,MAAO06B,EAAGr9B,MAAOq9B,MAG5B,CAAEn4B,aAAYwwC,eAAcC,mBA1IpBp+C,EA6InBq+C,iBAAmB,SAACniB,EAAcc,GAC9B,IAAIshB,EAAKt+C,EAAKc,MAAM6M,WAAW2wC,GAC3BC,EAAKv+C,EAAKc,MAAM6M,WAAW4wC,GAC3BC,EAAKx+C,EAAKc,MAAM6M,WAAW6wC,GAC3BC,EAAKz+C,EAAKc,MAAM6M,WAAW8wC,GAE3BzhB,IAAe1I,MACfkqB,EAAKx+C,EAAK49C,iBAAiB,KACxBriC,UAAW,EACdkjC,EAAE7gD,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ4gD,GACVx+C,EAAKvE,MAAMijD,iBAGXxiB,EAAaltB,SAAS,OACtBsvC,EAAKt+C,EAAK49C,iBAAiBL,GAAW,CAAC,KAAM,MAAO,CAAC,UAEjDvgB,IAAe1I,GACfiqB,EAAKv+C,EAAK49C,iBAAiBN,GAAS,CAAC,KAAM,MAAO,CAAC,WAEnDiB,EAAKv+C,EAAK49C,iBAAiBL,GAAW,GAAI,CAAC,eAC3CiB,EAAKx+C,EAAK49C,iBAAiBN,GAAS,GAAI,CAAC,eACtC/hC,UAAW,EACdkjC,EAAKz+C,EAAK49C,iBAAiBN,GAAS,CAAC,KAAM,MAAO,CAAC,UACnDkB,EAAGjjC,UAAW,IAEX2gB,EAAaltB,SAAS,SAC7BsvC,EAAKt+C,EAAK49C,iBACNL,GACA,CAAC,MACD,CAAC,iBAAkB,UAEvBgB,EAAKv+C,EAAK49C,iBAAiBN,GAAS,CAAC,MAAO,CAAC,gBAC7CkB,EAAKx+C,EAAK49C,iBAAiBL,GAAW,CAAC,MAAO,CAAC,gBAC/CkB,EAAKz+C,EAAK49C,iBACNN,GACA,CAAC,MACD,CAAC,iBAAkB,YAGvBgB,EAAKt+C,EAAK49C,iBAAiBN,GAAS,GAAI,IACxCiB,EAAE3gD,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ0gD,GACVE,EAAKx+C,EAAK49C,iBAAiBN,GAAS,GAAI,CAAC,cACzCmB,EAAKz+C,EAAK49C,iBAAiBL,GAAW,GAAI,CAAC,eAG/Cv9C,EAAKU,SACD,CACIiN,WAAY,CAAE2wC,KAAIC,KAAIC,KAAIC,OAE9B,WACIz+C,EAAK2+C,4BA/LE3+C,EAoMnBgtB,mBAAqB,SAAAC,GACjB,IAAI4S,EAAc7U,GAAUhrB,EAAKvE,MAAMwhC,uBAoBvC,GAjBIhQ,EAAUgQ,sBAAsBvD,gBAAgBwC,eAC5Cl8B,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgBwC,cACrDjP,EAAUgQ,sBAAsBD,aAC5Bh9B,EAAKvE,MAAMwhC,sBAAsBD,aAGjC/P,EAAUgQ,sBAAsBvD,gBAAgBwC,eAChDl8B,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgBwC,cAEjDl8B,EAAKvE,MAAMmjD,gBAEf5+C,EAAKq+C,iBACDr+C,EAAKvE,MAAMwhC,sBAAsBvD,gBAAgBwC,aACjDl8B,EAAKvE,MAAMwhC,sBAAsBD,aAKrC/P,EAAUgQ,sBAAsB3C,eAAe9yB,SAC/CxH,EAAKvE,MAAMwhC,sBAAsB3C,eAAe9yB,QAE5CxH,EAAKvE,MAAMwhC,sBAAsB3C,eAAe9yB,OAAQ,CACxD,IAAMq3C,EAEF,aADA7+C,EAAKvE,MAAMwhC,sBAAsB3C,eAAe9yB,OAE1C,GACAxH,EAAKvE,MAAMwhC,sBAAsB3C,eAAe9yB,OAAO+E,MACnD,KAEdvM,EAAK8+C,2BAA2Bjf,EAAa,CACzC,CACIuV,gBAAiB,iBACjB/3C,IAAK,WACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,SACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,aACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,MAM5D,GACI9xB,EAAUgQ,sBAAsBxC,eAAejzB,SAC/CxH,EAAKvE,MAAMwhC,sBAAsBxC,eAAejzB,QAE5CxH,EAAKvE,MAAMwhC,sBAAsBxC,eAAejzB,OAAQ,CACxD,IAAMq3C,EAEF,aADA7+C,EAAKvE,MAAMwhC,sBAAsBxC,eAAejzB,OAE1C,GACAxH,EAAKvE,MAAMwhC,sBAAsBxC,eAAejzB,OAAO+E,MACnD,KAEdvM,EAAK8+C,2BAA2Bjf,EAAa,CACzC,CACIuV,gBAAiB,iBACjB/3C,IAAK,WACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,cACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,kBACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,MAM5D,GACI9xB,EAAUgQ,sBAAsBP,eAAel1B,SAC/CxH,EAAKvE,MAAMwhC,sBAAsBP,eAAel1B,QAE5CxH,EAAKvE,MAAMwhC,sBAAsBP,eAAel1B,OAAQ,CACxD,IAAMq3C,EAEF,aADA7+C,EAAKvE,MAAMwhC,sBAAsBP,eAAel1B,OAE1C,GACAxH,EAAKvE,MAAMwhC,sBAAsBP,eAAel1B,OAAO+E,MACnD,KAEdvM,EAAK8+C,2BAA2Bjf,EAAa,CACzC,CACIuV,gBAAiB,iBACjB/3C,IAAK,WACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,SACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,aACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,MAM5D,GACI9xB,EAAUgQ,sBAAsBN,eAAen1B,SAC/CxH,EAAKvE,MAAMwhC,sBAAsBN,eAAen1B,QAE5CxH,EAAKvE,MAAMwhC,sBAAsBN,eAAen1B,OAAQ,CACxD,IAAMq3C,EAEF,aADA7+C,EAAKvE,MAAMwhC,sBAAsBN,eAAen1B,OAE1C,GACAxH,EAAKvE,MAAMwhC,sBAAsBN,eAAen1B,OAAO+E,MACnD,KAEdvM,EAAK8+C,2BAA2Bjf,EAAa,CACzC,CACIuV,gBAAiB,iBACjB/3C,IAAK,WACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,cACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,IAEhD,CACI3J,gBAAiB,iBACjB/3C,IAAK,kBACLoL,MAAOo2C,EAAM70C,OAAS,EAAI60C,EAAM,GAAGE,OAAS,MAyF5D,GAlFI9xB,EAAUgQ,sBAAsB3C,eAAe5sB,WAC/C1N,EAAKvE,MAAMwhC,sBAAsB3C,eAAe5sB,UAE5C1N,EAAKvE,MAAMwhC,sBAAsB3C,eAAe5sB,UAChD1N,EAAKg/C,2BAA2B,CAC5BC,UAAW,mBAMnBhyB,EAAUgQ,sBAAsBN,eAAejvB,WAC/C1N,EAAKvE,MAAMwhC,sBAAsBN,eAAejvB,UAE5C1N,EAAKvE,MAAMwhC,sBAAsBN,eAAejvB,UAChD1N,EAAKg/C,2BAA2B,CAC5BC,UAAW,mBAMnBhyB,EAAUgQ,sBAAsBxC,eAAe/sB,WAC/C1N,EAAKvE,MAAMwhC,sBAAsBxC,eAAe/sB,UAE5C1N,EAAKvE,MAAMwhC,sBAAsBxC,eAAe/sB,UAChD1N,EAAKg/C,2BAA2B,CAC5BC,UAAW,mBAMnBhyB,EAAUgQ,sBAAsBP,eAAehvB,WAC/C1N,EAAKvE,MAAMwhC,sBAAsBP,eAAehvB,UAE5C1N,EAAKvE,MAAMwhC,sBAAsBP,eAAehvB,UAChD1N,EAAKg/C,2BAA2B,CAC5BC,UAAW,mBAMnBhyB,EAAUgQ,sBAAsB3C,eAAe8B,SAC/Cp8B,EAAKvE,MAAMwhC,sBAAsB3C,eAAe8B,QAE5Cp8B,EAAKvE,MAAMwhC,sBAAsB3C,eAAe8B,QAChDp8B,EAAKk/C,iCAITjyB,EAAUkyB,oBAAsBn/C,EAAKvE,MAAM0jD,mBACvCn/C,EAAKvE,MAAM0jD,mBACXn/C,EAAK2+C,yBAKT1xB,EAAUzH,gBAAgBxb,OAAShK,EAAKvE,MAAM+pB,gBAAgBxb,QAE1DhK,EAAKc,MAAMs+C,iCACXp/C,EAAKq/C,yCAKTpyB,EAAUgQ,sBAAsBxC,eAC3B+B,sBACLx8B,EAAKvE,MAAMwhC,sBAAsBxC,eAAe+B,qBAEhDx8B,EAAKs/C,2BAA2B,CAAEL,UAAW,mBAI7ChyB,EAAUgQ,sBAAsBP,eAC3BF,sBACLx8B,EAAKvE,MAAMwhC,sBAAsBP,eAAeF,qBAEhDx8B,EAAKs/C,2BAA2B,CAAEL,UAAW,mBAI7ChyB,EAAUgQ,sBAAsBxC,eAAeC,mBAC/C16B,EAAKvE,MAAMwhC,sBAAsBxC,eAAeC,iBAClD,CACE,IAAI6kB,EAAwBv/C,EAAKvE,MAAMwhC,sBAClCxC,eAAeC,iBAChB8kB,GAAuB,EACvBD,IAA0BhS,IAAQgS,IAA0B/R,GAC5DgS,GAAuB,EAEvBD,IAA0BjS,IAC1BiS,IAA0B9R,KAE1B+R,GAAuB,GAC3Bx/C,EAAKU,SAAS,CACV++C,kBAAmB1C,GAAmB,CAClCC,iBAAkBwC,EAClBvC,sBAAuBuC,EACjBx/C,EAAKc,MAAM6M,WAAW4wC,GAAGJ,aACzB,GACNjB,kBAAmBsC,EACbx/C,EAAKc,MAAM6M,WAAW4wC,GAAGH,eACzB,GACNjB,uBAAwBqC,EAClBx/C,EAAKc,MAAM6M,WAAW4wC,GAAG5wC,WACzB,OAKlB,GACIsf,EAAUgQ,sBAAsBP,eAAehC,mBAC/C16B,EAAKvE,MAAMwhC,sBAAsBP,eAAehC,iBAClD,CACE,IAAI6kB,EAAwBv/C,EAAKvE,MAAMwhC,sBAClCP,eAAehC,iBAChB8kB,GAAuB,EACvBD,IAA0BhS,IAAQgS,IAA0B/R,GAC5DgS,GAAuB,EAEvBD,IAA0BjS,IAC1BiS,IAA0B9R,KAE1B+R,GAAuB,GAC3Bx/C,EAAKU,SAAS,CACVg/C,kBAAmBtC,GAAmB,CAClCP,oBAAqB2C,EACfx/C,EAAKc,MAAM6M,WAAW6wC,GAAGL,aACzB,GACNrB,gBAAiB0C,EACXx/C,EAAKc,MAAM6M,WAAW6wC,GAAGJ,eACzB,GACNxB,qBAAsB4C,EAChBx/C,EAAKc,MAAM6M,WAAW6wC,GAAG7wC,WACzB,SAleH3N,EAwenBmG,qBAxemBvI,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAweI,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACnBgB,cAActG,EAAK2/C,gBADA,wBAAAt5C,EAAAH,SAAAE,EAAA5K,SAxeJwE,EA4enB2+C,uBAAyB,WACrB3+C,EAAKU,SAAS,CACVk/C,kBAAmBjD,GAAmB,CAClCC,qBAAsB58C,EAAKc,MAAM6M,WAAW2wC,GAAG3wC,WAC/CkvC,oBAAqB78C,EAAKc,MAAM6M,WAAW2wC,GAAGH,aAC9CrB,gBAAiB98C,EAAKc,MAAM6M,WAAW2wC,GAAGF,iBAE9CqB,kBAAmB1C,GAAmB,CAClCC,kBAAkB,EAClBC,sBAAuBj9C,EAAKc,MAAM6M,WAAW4wC,GAAGJ,aAChDjB,kBAAmBl9C,EAAKc,MAAM6M,WAAW4wC,GAAGH,eAC5CjB,uBAAwBn9C,EAAKc,MAAM6M,WAAW4wC,GAAG5wC,aAErD+xC,kBAAmBtC,GAAmB,CAClCP,oBAAqB78C,EAAKc,MAAM6M,WAAW6wC,GAAGL,aAC9CrB,gBAAiB98C,EAAKc,MAAM6M,WAAW6wC,GAAGJ,eAC1CxB,qBAAsB58C,EAAKc,MAAM6M,WAAW6wC,GAAG7wC,WAC/C4N,SAAUvb,EAAKc,MAAM6M,WAAW6wC,GAAGjjC,WAEvCskC,kBAAmBxC,GAAmB,CAClCF,uBAAwBn9C,EAAKc,MAAM6M,WAAW8wC,GAAG9wC,WACjDsvC,sBAAuBj9C,EAAKc,MAAM6M,WAAW8wC,GAAGN,aAChD5iC,SAAUvb,EAAKc,MAAM6M,WAAW8wC,GAAGljC,cAlgB5Bvb,EAugBnBk/C,+BAAiC,WAChBl/C,EAAKvE,MAAMwhC,sBAAsB3C,eAAe8B,OAClDpyB,QAAU,GAEjBhK,EAAKvE,MAAMqkD,yBAAyB,IA3gBzB9/C,EA+gBnBg/C,2BAA6B,SAAAvpC,GAAmB,IAAhBwpC,EAAgBxpC,EAAhBwpC,UACxBc,EAAmB//C,EAAKvE,MAAMwhC,sBAAsBgiB,GACnDvxC,SACL,GAAIqyC,EAAiB/1C,QAAU,EAC3B,GAAkB,mBAAdi1C,EAAgC,CAChC,IAAMe,EAAiBhgD,EAAKvE,MAAMkS,WAAW6P,OACzC,SAAAyiC,GAAM,OACFA,EAAOvyC,WAAaqyC,GACO,cAA3BE,EAAOhyC,kBAEf,GAAI+xC,EAAeh2C,OAAQ,CACvB,IAAMk2C,EAAiBlgD,EAAKc,MAAM6M,WAAW2wC,GAAGF,eAAe5gC,OAC3D,SAAA3P,GAAC,OACGmyC,EACK/iD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE/3B,oBACXiB,SAASnB,EAAEzC,SAkBxB,GAhBApL,EAAKU,SAAS,SAAAwsB,GACV,IAAMrD,EAAMqD,EAAU0yB,kBAAkB31B,UACpC,SAAApc,GAAC,MAAc,WAAVA,EAAExQ,MASX,OAPA6vB,EAAU0yB,kBAAkBx1B,OAAOP,EAAK,EAAG,CACvCxsB,IAAK,SACL+N,MAAO,kBACPD,KAAM,eACN4sB,QAASmoB,IAGN,CACHN,kBAAkBhiD,OAAAusB,GAAA,EAAAvsB,CAAKsvB,EAAU0yB,mBACjCO,sBAAsB,MAGQ,IAAlCngD,EAAKvE,MAAM+rC,mBAKO,IAJA,IAAI5b,IAClBo0B,EAAe/iD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE/3B,qBAC5BwO,MAGEvc,EAAKm1C,mBAAmB,CACpBC,gBAAiB6J,EACjB5hD,IAAK,SACLoL,MAAOu3C,EAAe,GAAGjyC,yBAKtC,CACH,IAAMiyC,EAAiBhgD,EAAKvE,MAAMkS,WAAW6P,OACzC,SAAAyiC,GAAM,OACFA,EAAOvyC,WAAaqyC,GACS,cAA7BE,EAAOlyC,oBAGXmvC,EAAoB,GAQxB,GAPkB,mBAAd+B,EACA/B,EAAoBl9C,EAAKc,MAAM6M,WAAW4wC,GAAGH,eACxB,mBAAda,EACP/B,EAAoBl9C,EAAKc,MAAM6M,WAAW6wC,GAAGJ,eACxB,mBAAda,IACP/B,EAAoBl9C,EAAKc,MAAM6M,WAAW8wC,GAAGL,gBAE7C4B,EAAeh2C,OAAQ,CACvB,IAAMk2C,EAAiBhD,EAAkB1/B,OAAO,SAAA3P,GAAC,OAC7CmyC,EACK/iD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE73B,kBACXe,SAASnB,EAAEzC,SAiBpB,GAfApL,EAAKU,SAAS,SAAAwsB,GACV,IAAMrD,EAAMqD,EAAUuyB,kBAAkBx1B,UACpC,SAAApc,GAAC,MAAc,gBAAVA,EAAExQ,MASX,OAPA6vB,EAAUuyB,kBAAkBr1B,OAAOP,EAAK,EAAG,CACvCxsB,IAAK,cACL+N,MAAO,cACPD,KAAM,eACN4sB,QAASmoB,IAGN,CACHT,kBAAkB7hD,OAAAusB,GAAA,EAAAvsB,CAAKsvB,EAAUuyB,uBAGH,IAAlCz/C,EAAKvE,MAAM+rC,mBAKO,IAJA,IAAI5b,IAClBo0B,EAAe/iD,IAAI,SAAA6oC,GAAC,OAAIA,EAAE73B,mBAC5BsO,MAGEvc,EAAKm1C,mBAAmB,CACpBC,gBAAiB6J,EACjB5hD,IAAK,cACLoL,MAAOu3C,EAAe,GAAG/xC,qBA3mBlCjO,EAonBnBs/C,2BAA6B,SAAAtpC,GAAmB,IAAhBipC,EAAgBjpC,EAAhBipC,UACxBziB,EAAsBx8B,EAAKvE,MAAMwhC,sBAAsBgiB,GACtDziB,oBACD4jB,EAAgBpgD,EAAKvE,MAAMkS,WAAWC,KACtC,SAAAqyC,GAAM,OAAIA,EAAOxT,oBAAsBjQ,IAEvC4jB,GACA12C,WAAW,WACP1J,EAAK8+C,2BAA2B,CAC5B,CACI1J,gBAAiB6J,EACjB5hD,IAAK,cACLoL,MAAO23C,EAAcryC,sBAG9B,MAnoBQ/N,EAuoBnB+0C,uBAAyB,SAAAsL,GACrB,IAAI9K,EAAY8K,EAAS5sC,OAAO,EAAG,GACnC,MACkB,QAAd8hC,GACc,QAAdA,GACc,QAAdA,GACc,QAAdA,GACc,QAAdA,GA9oBWv1C,EAkqBnB02C,qBAAuB,SAAAzK,GACnB,IACIjH,EADiB,IAAIgH,GAAeC,GACNC,UAClClsC,EAAK8+C,2BAA2B,CAC5B,CACI1J,gBAAiB,kBACjB/3C,IAAK,YACLoL,MAAOu8B,EAAavgB,WAExB,CACI2wB,gBAAiB,kBACjB/3C,IAAK,WACLoL,MAAOu8B,EAAajgB,UAExB,CACIqwB,gBAAiB,kBACjB/3C,IAAK,MACLoL,MAAOu8B,EAAa3K,QAnrBbr6B,EAwrBnBsgD,2BAA6B,SAACjjD,EAAKoL,GAC/BzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,iBACjB/3C,MACAoL,WA5rBWzI,EAgsBnBugD,2BAA6B,SAACljD,EAAKoL,GAC/BzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,iBACjB/3C,MACAoL,WApsBWzI,EAwsBnBwgD,2BAA6B,SAACnjD,EAAKoL,GAC/BzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,iBACjB/3C,MACAoL,WA5sBWzI,EAgtBnBygD,2BAA6B,SAACpjD,EAAKoL,GAC/BzI,EAAKm1C,mBAAmB,CACpBC,gBAAiB,iBACjB/3C,MACAoL,WAptBWzI,EAwtBnBm1C,mBAAqB,SAAA5+B,GAAqC,IAAlC6+B,EAAkC7+B,EAAlC6+B,gBAAiB/3C,EAAiBkZ,EAAjBlZ,IAAKoL,EAAY8N,EAAZ9N,MAC1C,GAAY,eAARpL,EAAJ,CAKA,IAAIwiC,EAAc7U,GAAUhrB,EAAKvE,MAAMwhC,uBA2BvC,GA1BA4C,EAAYuV,GAAiB/3C,GAAOoL,EACxB,aAARpL,IAEAwiC,EAAYuV,GAAiB5tC,OAAS,MAK9B,qBAARnK,GACW,QAAVoL,GAA6B,SAAVA,IAGpBo3B,EAAYuV,GAAiB5tC,OAAS,KACtCq4B,EAAYuV,GAAiB1nC,SAAW,KAEhB,mBAApB0nC,IACAvV,EAAYuV,GAAiB5a,YAAc,KAC3CqF,EAAYuV,GAAiB7Y,gBAAkB,MAG3B,mBAApB6Y,IACAvV,EAAYuV,GAAiBhZ,OAAS,KACtCyD,EAAYuV,GAAiB/Y,WAAa,OAII,IAAlDwD,EAAW,gBAAoB1C,eAAsB,KAE7CxvB,EAAexL,KAAKC,MACxBT,aAAaC,QAAQ,gBADjB+L,WAKJ+yC,EAAc/yC,EAClB,GAAwB,mBAApBynC,GAA+C,UAAP/3C,EACxC,GAAc,cAAVoL,EACAo3B,EAAW,eAAmBxiC,GAAOoL,MAClC,CACHi4C,EAAc/yC,EAAW6P,OACrB,SAAAsoB,GAAC,MAA+B,cAA3BA,EAAC,oBAEV,IAAI6a,EAAkBl4C,EACjB8D,MAAM,KACNq0C,MACA7B,OACD8B,EAAkBH,EAAYljC,OAC9B,SAAAsoB,GAAC,OAAIA,EAAC,kBAAwB6a,IAChC,GACF,GACwB,OAApBE,QACoB/jD,IAApB+jD,EACF,CACE,IAAIC,EAAa,GAAAv2C,OAAMs2C,EAAgBnzC,SAAtB,OAAAnD,OACbs2C,EAAgB5yC,gBADH,OAAA1D,OAEXs2C,EAAgBhU,iBACtBhN,EAAW,eAAmBxiC,GAAOyjD,GAOjD,GADAJ,EAAc/yC,EACU,mBAApBynC,GAA+C,UAAP/3C,EACxC,GAAc,cAAVoL,EACAo3B,EAAW,eAAmBxiC,GAAOoL,MAClC,CACHi4C,EAAc/yC,EAAW6P,OACrB,SAAAsoB,GAAC,MAA6B,cAAzBA,EAAC,kBAEV,IAAIib,EAAkBt4C,EACjB8D,MAAM,KACNq0C,MACA7B,OACDiC,EAAkBN,EAAYljC,OAC9B,SAAAsoB,GAAC,OAAIA,EAAC,oBAA0Bib,IAClC,GACF,GACwB,OAApBC,QACoBlkD,IAApBkkD,EACF,CACE,IAAIC,EAAa,GAAA12C,OAAMy2C,EAAgBtzC,SAAtB,OAAAnD,OACby2C,EAAgBjzC,kBADH,OAAAxD,OAEXy2C,EAAgBtU,mBACtB7M,EAAW,eAAmBxiC,GAAO4jD,IAMrDjhD,EAAKvE,MAAMmkC,4BAA4BC,QA9FnC7/B,EAAKU,SAAS,CAAEwgD,WAAYz4C,KA1tBjBzI,EA2zBnBmhD,mBAAqB,SAAA1gD,GACjB,IAAIo/B,EAAc7U,GAAUhrB,EAAKvE,MAAMwhC,uBACvC4C,EAAY7C,WAAav8B,EAAE+H,OAAOC,MAClCzI,EAAKvE,MAAMmkC,4BAA4BC,IA9zBxB7/B,EAi0BnB8+C,2BAA6B,SAACjf,EAAauhB,GACvCA,EAAat3C,QAAQ,SAAA1M,GACjByiC,EAAYziC,EAAKg4C,iBAAiBh4C,EAAKC,KAAOD,EAAKqL,QAEvDzI,EAAKvE,MAAMmkC,4BAA4BC,IAr0BxB7/B,EAw0BnBqhD,kBAx0BmBzjD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAw0BC,SAAAyQ,IAAA,OAAA+S,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,YACyBtF,EAAKc,MAAtCwgD,6BACyB/kC,KAAO,GAFxB,CAAA5G,EAAArQ,KAAA,eAAAqQ,EAAA5E,OAAA,SAGL/Q,EAAKU,SAAS,CACjBwtB,kBAAkB,EAClBqzB,mBAAoB,uBALZ,YAQMvhD,EAAKc,MAAf61B,MACE3sB,OAAS,GATP,CAAA2L,EAAArQ,KAAA,gBAAAqQ,EAAArQ,KAAA,EAUStF,EAAKwhD,cAVd,WAAA7rC,EAAArM,KAcDC,QAdC,CAAAoM,EAAArQ,KAAA,SAeJtF,EAAKvE,MAAMgmD,4BACXzhD,EAAKU,SAAS,CAAEi2B,MAAO,KAhBnBhhB,EAAArQ,KAAA,wBAkBJtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,wBArBjB6N,EAAA5E,OAAA,kBAAA4E,EAAArQ,KAAA,iBA0BRtF,EAAKvE,MAAMgmD,4BA1BH,yBAAA9rC,EAAAzP,SAAAwP,EAAAla,SAx0BDwE,EAo3BnB0hD,uBAAyB,WAAM,IACnBl8B,EAAoBxlB,EAAKvE,MAAzB+pB,gBACJmK,EAAI,EAIR,OAHAnK,EAAgB1b,QAAQ,SAAAvQ,IACA,IAAhBA,EAAEonB,WAAqBgP,QAE3BA,GAAK,KACL3vB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,8BAEd,IAh4BI9H,EAq4BnB2hD,OAr4BmB/jD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAq4BV,SAAAgR,IAAA,IAAA2rC,EAAA,OAAAn5B,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,UACAtF,EAAK0hD,yBADL,CAAAxrC,EAAA5Q,KAAA,eAAA4Q,EAAAnF,OAAA,qBAED48B,GAAe3tC,EAAKvE,MAAMwhC,sBAAuBhB,IAFhD,CAAA/lB,EAAA5Q,KAAA,eAGDtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,mBANpBoO,EAAAnF,OAAA,oBAWL/Q,EAAK6hD,kBAAiB,IAClBD,EAAalU,GAAmB,CAChCzQ,sBAAuBj9B,EAAKvE,MAAMwhC,sBAClCzX,gBAAiBxlB,EAAKvE,MAAM+pB,gBAC5BxV,gBAAiBhQ,EAAKvE,MAAMgzB,UAC5BkI,MAAO32B,EAAKc,MAAM61B,SAENptB,QAlBX,CAAA2M,EAAA5Q,KAAA,gBAmBDtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB85C,EAAW/hD,UAtB/BqW,EAAAnF,OAAA,kBA2BL/Q,EAAKqhD,oBACLrhD,EAAK8hD,kBAAkB1K,wBACvB72C,OAAOwhD,SAAS,EAAG,GA7Bd,yBAAA7rC,EAAAhQ,SAAA+P,EAAAza,SAr4BUwE,EAq6BnBgiD,YAr6BmBpkD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAq6BL,SAAAuR,IAAA,IAAAyrC,EAAA,OAAAx5B,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,YAENtF,EAAKvE,MAAM+pB,gBAAgBxb,OAAS,GACpC2jC,GAAe3tC,EAAKvE,MAAMwhC,sBAAuBhB,KAH3C,CAAAxlB,EAAAnR,KAAA,eAMNtF,EAAKq/C,yCANC5oC,EAAA1F,OAAA,oBAUV/Q,EAAK6hD,kBAAiB,IAClBI,EAA2BvU,GAAmB,CAC9CzQ,sBAAuBj9B,EAAKvE,MAAMwhC,sBAClCzX,gBAAiBxlB,EAAKvE,MAAM+pB,gBAC5BxV,gBAAiBhQ,EAAKvE,MAAMgzB,UAC5BkI,MAAO32B,EAAKc,MAAM61B,SAGQptB,QAlBpB,CAAAkN,EAAAnR,KAAA,eAmBNtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBm6C,EAAyBpiD,UAtBxC4W,EAAA1F,OAAA,iBA2BV/Q,EAAKqhD,oBAGLrhD,EAAKU,SAAS,CAAE0+C,iCAAiC,IA9BvC,yBAAA3oC,EAAAvQ,SAAAsQ,EAAAhb,SAr6BKwE,EAs8BnBq/C,uCAAyC,WAIrC,GAH0Br/C,EAAKvE,MAAM+pB,gBAAgBhI,OACjD,SAAAjkB,GAAC,OAAoB,IAAhBA,EAAEonB,YAEa3W,OAAS,EAC7BhK,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,6CAJzB,CASA,IAAIo6C,EAAgCjT,GAAwB,CACxDzpB,gBAAiBxlB,EAAKvE,MAAM+pB,kBAEhC,IAAK08B,EAA8B34C,QAO/B,OANAvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBo6C,EAA8BriD,eAEnDG,EAAKU,SAAS,CAAE0+C,iCAAiC,IAIrDp/C,EAAKmiD,yBAh+BUniD,EAm+BnBmiD,qBAAuB,WACnB5hD,OAAOwhD,SAAS,EAAG,GADM,IAEjBp0C,EAAe3N,EAAKvE,MAApBkS,WACR3N,EAAKvE,MAAMskC,+BAA+BpyB,GAC1C3N,EAAKvE,MAAMkO,QAAQC,KAAK,0BAv+BT5J,EA0+BnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA3+Bf5H,EA8+BnBoiD,QAAU,WACNpiD,EAAKvE,MAAM4mD,kBACXriD,EAAK8hD,kBAAkB1K,yBAh/BRp3C,EAo/BnBsiD,UAAY,SAAA7oB,GACRz5B,EAAKvE,MAAM8mD,UAAU9oB,IAr/BNz5B,EAw/BnBwiD,WAAa,SAAA/oB,GACT,IAAKz5B,EAAK0hD,yBAA0B,OAAO,EAC3C1hD,EAAKvE,MAAMgnD,WAAWhpB,IA1/BPz5B,EA6/BnB0iD,YA7/BmB9kD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6/BL,SAAA+R,IAAA,IAAAzb,EAAAonD,EAAAn9B,EAAAyX,EAAAvW,EAAAk8B,EAAAC,EAAA,OAAAp6B,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,UAAA/J,EAINyE,EAAKvE,MAJCknD,EAAApnD,EAENkqB,mBAAsBD,EAFhBm9B,EAEgBn9B,gBAAiByX,EAFjC0lB,EAEiC1lB,sBACvCvW,EAHMnrB,EAGNmrB,sBAG2B,IAA3BlB,EAAgBxb,QACfizB,EAAsBvD,gBAAgByC,IAPjC,CAAAjlB,EAAA5R,KAAA,eASNtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,+BAZfoP,EAAAnG,OAAA,oBAiBL2V,EAAsBjf,GAjBjB,CAAAyP,EAAA5R,KAAA,eAkBNtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,mCArBfoP,EAAAnG,OAAA,sBA0B+B/Q,EAAKc,MAAtCwgD,6BACyB/kC,KAAO,GA3B9B,CAAArF,EAAA5R,KAAA,gBAAA4R,EAAAnG,OAAA,SA4BC/Q,EAAKU,SAAS,CACjBwtB,kBAAkB,EAClBqzB,mBAAoB,iBA9BlB,aAiCYvhD,EAAKc,MAAf61B,MACE3sB,OAAS,GAlCb,CAAAkN,EAAA5R,KAAA,gBAAA4R,EAAA5R,KAAA,GAmCetF,EAAKwhD,cAnCpB,WAAAtqC,EAAA5N,KAoCMC,QApCN,CAAA2N,EAAA5R,KAAA,gBAqCEtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,wBAxCvBoP,EAAAnG,OAAA,yBA+CN6xC,EAA2BzgD,KAAKqS,UAChCxU,EAAKvE,MAAMgqB,oBAGXo9B,EAAiB,CACjB9lB,wBAAyBrW,EAAsBjf,GAC/C8M,OAAQ5S,aAAaC,QAAQ,UAC7BqH,KAAM25C,GAGNp9B,EAAgBxb,OAAS,EACzB64C,EAAe1mB,IAAM3W,EAAgB,GAAGkU,gBAAgByC,IAExD0mB,EAAe1mB,IAAMc,EAAsBvD,gBAAgByC,IA5DrDjlB,EAAA5R,KAAA,GA+DYoL,KACjBM,KACGrS,GAAU,kBACVkkD,EACA92C,eAEH6E,MAAM,SAAAnQ,GACErF,aAAqBqF,EAAEoQ,SAASC,SACjC9Q,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,sBAGzB9H,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,wBAhFnB,QAAAoP,EAAA5N,MAoFNtJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,gBAvFf,yBAAAoP,EAAAhR,SAAA8Q,EAAAxb,SA7/BKwE,EAylCnB8iD,WAAa,SAAAvpD,GACLA,EAAEonB,WACN3gB,EAAKvE,MAAM+lC,4BAA4BxW,GAAUzxB,KA3lClCyG,EA8lCnB+iD,aAAe,WACX/iD,EAAKvE,MAAMunD,oBA/lCIhjD,EAkmCnBijD,SAlmCmBrlD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkmCR,SAAAqS,IAAA,IAAAsqC,EAAA,OAAAn5B,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,YACkCtF,EAAKc,MAAtCwgD,6BAEyB/kC,KAAO,GAHjC,CAAA/E,EAAAlS,KAAA,eAAAkS,EAAAzG,OAAA,SAII/Q,EAAKU,SAAS,CACjBwtB,kBAAkB,EAClBqzB,mBAAoB,cANrB,YASevhD,EAAKc,MAAf61B,MACE3sB,OAAS,GAVhB,CAAAwN,EAAAlS,KAAA,gBAAAkS,EAAAlS,KAAA,EAWkBtF,EAAKwhD,cAXvB,OAAAhqC,EAAAlO,KAYQC,SACHvJ,EAAKvE,MAAMgmD,4BACXzhD,EAAKU,SAAS,CACVi2B,MAAO,GACP2qB,6BAA8B,IAAI11B,OAGtC5rB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,wBAtB1B0P,EAAAlS,KAAA,oBA0BCtF,EAAK6hD,kBAAiB,IAClBD,EAAalU,GAAmB,CAChCzQ,sBAAuBj9B,EAAKvE,MAAMwhC,sBAClCzX,gBAAiBxlB,EAAKvE,MAAM+pB,gBAC5BxV,gBAAiBhQ,EAAKvE,MAAMgzB,UAC5BkI,MAAO32B,EAAKc,MAAM61B,SAENptB,QAjCjB,CAAAiO,EAAAlS,KAAA,gBAkCKtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB85C,EAAW/hD,UArCrC2X,EAAAzG,OAAA,kBAyCC/Q,EAAKvE,MAAMgmD,4BAzCZ,QA6CPzhD,EAAK8hD,kBAAkB1K,wBA7ChB,yBAAA5/B,EAAAtR,SAAAoR,EAAA9b,SAlmCQwE,EAmsCnBkjD,eAAiB,SAAA56C,GAEb,OADkCtI,EAAKvE,MAA/BwhC,sBACqB30B,IArsCdtI,EAwsCnBu7C,oBAAsB,SAAC1tC,EAAG1Q,GACtB,IAAMw5B,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OAC7BA,EAAMvM,OAAOjtB,EAAG,GAChB6C,EAAKU,SAAS,CAAEi2B,WA3sCD32B,EA8sCnB26C,OAAS,SAAAwI,GACL,IAAMxsB,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OADPnoB,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAEtB,QAAA6R,EAAAC,EAAiBu0C,EAAjBt0C,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAgC,KAArB40C,EAAqBz0C,EAAAlG,MACxB46C,GAAS,EADel0C,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAE5B,QAAAwS,EAAAC,EAAgBonB,EAAhB9nB,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAAuB,KAAZtB,EAAYyB,EAAA7G,MACf26C,EAAG11B,OAAS7f,EAAE6f,OAAM21B,GAAS,IAHT,MAAAp0C,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,GAKvBg0C,GAAQ1sB,EAAM/sB,KAAKw5C,IAPN,MAAAn0C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAStB1O,EAAKU,SAAS,CAAEi2B,WAvtCD32B,EA0tCnBsjD,uBAAyB,SAAAnmD,GACrB6C,EAAKU,SAAS,CACV4gD,6BAA8BthD,EAAKc,MAAMwgD,6BAA6Br1B,IAClE9uB,MA7tCO6C,EAkuCnBujD,2BAA6B,SAAApmD,GACzB,IAAIqmD,EAAkC,IAAI53B,IACtC5rB,EAAKc,MAAMwgD,8BAEfkC,EAAgCC,OAAOtmD,GACvC6C,EAAKU,SAAS,CACV4gD,6BAA8BkC,KAxuCnBxjD,EA4uCnBguB,gBA5uCmBpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4uCD,SAAA0zC,IAAA,IAAA3R,EAAA0c,EAAAC,EAAA96C,EAAA8tB,EAAA4qB,EAAAU,EAAA,OAAAx5B,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cACR0hC,EAA2Bhc,GAC7BhrB,EAAKvE,MAAMwhC,uBAEXymB,EACA1c,EAAyBvM,eAAepU,eACxCs9B,EACA3c,EAAyBtK,eAAerW,eAC5CrmB,EAAKc,MAAMwgD,6BAA6Bx3C,QAAQ,SAAA3M,GAC5CumD,EAAkBt5B,OAAOjtB,EAAG,GAC5BwmD,EAAyBv5B,OAAOjtB,EAAG,KAEvC6pC,EAAyBvM,eAAepU,eAAiBq9B,EACzD1c,EAAyBtK,eAAerW,eAAiBs9B,EAb3C9K,EAAAvzC,KAAA,EAcRtF,EAAKvE,MAAMmkC,4BAA4BoH,GAd/B,UAAAn+B,EAgBwB7I,EAAKc,MAAnC61B,EAhBM9tB,EAgBN8tB,MAAO4qB,EAhBD14C,EAgBC04C,qBACX5qB,EAAM3sB,OAAS,GAjBL,CAAA6uC,EAAAvzC,KAAA,gBAAAuzC,EAAAvzC,KAAA,GAkBOtF,EAAKwhD,cAlBZ,QAAA3I,EAAAvvC,KAmBHC,QAEHvJ,EAAKU,SAAS,CACVi2B,MAAO,GACP2qB,6BAA8B,IAAI11B,IAClCsC,kBAAkB,EAClBqzB,mBAAoB,KAGxBvhD,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,sBACjBomB,kBAAkB,IAhChB2qB,EAAAvzC,KAAA,iBAqCVtF,EAAKU,SAAS,CACV4gD,6BAA8B,IAAI11B,IAClCsC,kBAAkB,EAClBqzB,mBAAoB,KAxCd,YA4CVU,EAA2BvU,GAAmB,CAC9CzQ,sBAAuBj9B,EAAKvE,MAAMwhC,sBAClCzX,gBAAiBxlB,EAAKvE,MAAM+pB,gBAC5BxV,gBAAiBhQ,EAAKvE,MAAMgzB,UAC5BkI,MAAO32B,EAAKc,MAAM61B,SAEQptB,QAlDhB,CAAAsvC,EAAAvzC,KAAA,gBAmDVtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBm6C,EAAyBpiD,UAtDpCg5C,EAAA9nC,OAAA,kBAAA8nC,EAAAjnB,GA0DN2vB,EA1DM1I,EAAAvzC,KA2DL,sBA3DKuzC,EAAAjnB,GAAA,GA8DL,aA9DKinB,EAAAjnB,GAAA,GAiEL,gBAjEKinB,EAAAjnB,GAAA,2BA4DN5xB,EAAKqhD,oBA5DCxI,EAAA9nC,OAAA,2BA+DN/Q,EAAKijD,WA/DCpK,EAAA9nC,OAAA,2BAkEN/Q,EAAK0iD,cAlEC7J,EAAA9nC,OAAA,qCAAA8nC,EAAA3yC,SAAAyyC,EAAAn9C,SA5uCCwE,EAmzCnB+tB,eAAiB,WACb/tB,EAAKU,SAAS,CACVwtB,kBAAkB,EAClBqzB,mBAAoB,GACpBnC,iCAAiC,KAvzCtBp/C,EA2zCnB4jD,kBA3zCmB,eAAArhB,EAAA3kC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2zCC,SAAAu9B,EAAM8E,GAAN,IAAAr+B,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAs9B,GAAA,cAAAA,EAAAp9B,KAAAo9B,EAAAn9B,MAAA,cACV2D,EAAO,CAAE46C,UAAW,CAACvc,GAAgBwc,OAAQ1lD,MADnCqkC,EAAAn9B,KAAA,EAEC8K,YACb,OACA,8BACAnH,EACA8C,eANY,QAEV7C,EAFUu5B,EAAAn5B,MAQTC,SACHhJ,OAAOb,KAAKwJ,EAAGD,KAAKoL,OAAO,IATf,wBAAAouB,EAAAv8B,SAAAs8B,EAAAhnC,SA3zCD,gBAAAyV,GAAA,OAAAsxB,EAAAlxB,MAAA7V,KAAA2S,YAAA,GAEfnO,EAAKc,MAAQ,CACTijD,cAAe,CACX,CACI1mD,IAAK,MACL+N,MAAO,iBACPD,KAAM,qBAEV,CACI9N,IAAK,MACL+N,MAAO,iBACPD,KAAM,oBAEV,CAAE9N,IAAK,YAAa+N,MAAO,oBAAqBD,KAAM,QACtD,CAAE9N,IAAK,WAAY+N,MAAO,qBAAsBD,KAAM,QACtD,CAAE9N,IAAK,UAAW+N,MAAO,UAAWD,KAAM,SAE9Cy0C,kBAAmB,GACnBH,kBAAmB,GACnBC,kBAAmB,GACnBG,kBAAmB,GACnBlpB,MAAO,GACP/uB,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBu3C,iCAAiC,EACjC3I,eAAgB,KAChBuN,oBAAoB,EACpB1C,6BAA8B,IAAI11B,IAClCsC,kBAAkB,EAClBqzB,mBAAoB,GACpB0C,2BAA4B,GAC5BC,0BAA2B,GAC3BC,oBAAqB,GACrBx2C,WAAY,CACR2wC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,KAIZz+C,EAAKy9C,gBAAkB,KACvBz9C,EAAK09C,iBAAmB,KACxB19C,EAAK8hD,kBAAoB,KACzB9hD,EAAK2/C,eAAiB,KACtB3/C,EAAKokD,gBAAkB1gD,IAAM2gD,YA/CdrkD,sMAw2BP22B,EAAUn7B,KAAKsF,MAAf61B,MACJkK,EAAW,IAAIyjB,SACnB3tB,EAAM7sB,QAAQ,SAAA+D,GACVgzB,EAAS0jB,OAAO,QAAS12C,EAAGA,EAAE6f,iBAEjBlyB,KAAKC,MAAM+oD,sBAAsB3jB,iBAA5C33B,UACCK,SACH/N,KAAKkF,SAAS,CAAEi2B,MAAO,uBAEpBztB,8IAiSMu7C,GAE6B,IAAtCjpD,KAAKC,MAAM+pB,gBAAgBxb,QAGvBxO,KAAKC,MAAMwhC,sBAAsB7C,gBAC5B+C,gBAEkB,GADvB3hC,KAAKC,MAAMwhC,sBAAsB7C,gBAC5B+C,eAEL3hC,KAAKC,MAAMwhC,sBAAsBE,eAAiB3hC,KAAKC,MAClDwhC,sBAAsBP,eAAehvB,SACpC,EACA,EAINlS,KAAKC,MAAMwhC,sBAAsB5R,eACjC7vB,KAAKC,MAAMwhC,sBAAsB5R,cAAcrhB,OAAS,EAExDxO,KAAKC,MAAMwhC,sBAAsBE,eAAiB3hC,KAAKC,MAClDwhC,sBAAsBP,eAAehvB,SACpC,EACA,EAINlS,KAAKC,MAAMwhC,sBAAsBE,eAAiB3hC,KAAKC,MAAMwhC,sBAAsB7C,gBAAgB+C,eAEvG3hC,KAAKC,MAAMwhC,sBAAsBG,YAAa,IAKnB,GADvB5hC,KAAKC,MAAMwhC,sBAAsB7C,gBAC5B+C,gBACL3hC,KAAKC,MAAMwhC,sBAAsB5R,cAAcrhB,OAAS,EAExDxO,KAAKC,MAAMwhC,sBAAsBE,eAAiB3hC,KAAKC,MAAM+pB,gBAAgB,GAAG2X,eAIhF3hC,KAAKC,MAAMwhC,sBAAsBE,eAAiB3hC,KAAKC,MAAMwhC,sBAAsB7C,gBAAgB+C,eAEnGsnB,IACAjpD,KAAKC,MAAMwhC,sBAAsBG,YAAa,qCA0IjD,IAAAl8B,EAAA1F,KAAA0mB,EAQD1mB,KAAKC,MANLC,EAFCwmB,EAEDxmB,QACAmjC,EAHC3c,EAGD2c,SACA5B,EAJC/a,EAID+a,sBACA7N,EALClN,EAKDkN,yBACAyjB,EANC3wB,EAMD2wB,qCACAjU,EAPC1c,EAOD0c,oBAPCl0B,EASsDlP,KAAKsF,MAAxDwgD,EATH52C,EASG42C,6BAA8BpzB,EATjCxjB,EASiCwjB,iBAChCvyB,EACFH,KAAKC,MAAMqjC,gCACX1P,GACAyjB,GACAjU,EACJ,OACI7iB,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACnBsgC,EAAqB,gBAClBA,EAAqB,eAAmB5W,eACnCrc,OAAS,GACV+R,EAAAhgB,EAAAC,cAACw2B,GAAD,CACI1E,YAAa,UACbI,iBAAkBA,EAClBF,gBAAiBxyB,KAAKwyB,gBACtBD,eAAgBvyB,KAAKuyB,gBAJzB,6CAOIhS,EAAAhgB,EAAAC,cAAA,UACKihC,EAAqB,eAEpB5W,eAAeppB,IAAI,SAAClB,EAAGoB,GACrB,GAAImkD,EAA6Bt1B,IAAI7uB,GACjC,OACI4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,WAAaF,GAAIpB,OAOrDkhC,EAAqB,gBAClBA,EAAqB,eAAmB5W,eACnCrc,OAAS,GACV+R,EAAAhgB,EAAAC,cAACw2B,GAAD,CACI1E,YAAa,UACbI,iBAAkBA,EAClBF,gBAAiBxyB,KAAKwyB,gBACtBD,eAAgBvyB,KAAKuyB,gBAJzB,6CAOIhS,EAAAhgB,EAAAC,cAAA,UACKihC,EAAqB,eAEpB5W,eAAeppB,IAAI,SAAClB,EAAGoB,GACrB,GAAImkD,EAA6Bt1B,IAAI7uB,GACjC,OACI4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,WAAaF,GAAIpB,OAQtDggB,EAAAhgB,EAAAC,cAAC0oD,GAAD,CACIC,IAAKnpD,KAAK4oD,gBACV9H,eAAgB9gD,KAAKsF,MAAMmjD,2BAC3B1H,cAAe/gD,KAAKsF,MAAMojD,0BAC1BvI,QAASngD,KAAKsF,MAAMqjD,sBAGvB3oD,KAAKC,MAAMirB,sBAAsBhD,OAC9B3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAChB,iBACGZ,KAAKC,MAAMirB,sBAAsBhD,OAI5CloB,KAAKC,MAAM+pB,gBAAgBxb,OAAS,GACjC+R,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,aACPR,WAAYgjC,EAAWnjC,EAAQmjC,SAAW,IAE1C9iB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC4oD,GAAD,CACIznC,KAAM3hB,KAAKC,MAAM+pB,gBACjBxG,SAAUxjB,KAAK8mD,UACfjX,UAAW7vC,KAAKgnD,WAChBzX,UAAWvvC,KAAKsnD,eAGtBjkB,GACE9iB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS,kBAAM1B,EAAK8gD,gBAHxB,UAU2B,IAAtCxmD,KAAKC,MAAM+pB,gBAAgBxb,QACxB+R,EAAAhgB,EAAAC,cAAC6oD,GAAD,CACIhlD,QAAS,gCAMzBkc,EAAAhgB,EAAAC,cAAC8oD,GAAD,CACIC,SAAU,SAAAC,GAAQ,OAAK9jD,EAAK4gD,kBAAoBkD,GAChDnmB,SAAUA,EACVyZ,cAAe58C,EAAQmjC,WAG3B9iB,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,cACPV,UAAWA,EACXE,WAAYgjC,EAAWnjC,EAAQmjC,SAAW,IAE1C9iB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAOw0B,EAAsBD,WAC7BzxB,SAAU/P,KAAK2lD,oBAEfplC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO6rB,GACP8kB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,iBAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MpCxiDV,aoCyiDU2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,eAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MpC5iDA,uBoC6iDA2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,2BAKlB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,OAGsB,OAAzBxgB,KAAKiiD,iBACF1hC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,OACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,YAGA2f,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WACI58B,KAAKsF,MAAM8+C,kBAGfzoB,WAAY37B,KAAK0nD,eACb,kBAEJ76C,cACI7M,KAAK8kD,8BAIjBvkC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,YAGA2f,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WACI58B,KAAKsF,MAAM2+C,kBAGftoB,WAAY37B,KAAK0nD,eACb,kBAEJ76C,cACI7M,KAAK+kD,6BAIbxkC,EAAAhgB,EAAAC,cAACkpD,GAAD,CAAS7uB,OAAQ,KAGS,OADzB4G,EAAqB,eACjBvC,kBACD3e,EAAAhgB,EAAAC,cAACmpD,EAAA,SAAD,KACIppC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,8BAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACopD,GAAD,CACIzK,OAAQn/C,KAAKm/C,WAIzB5+B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,IACf7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqpD,GAAD,CACI1uB,MAAOn7B,KAAKsF,MAAM61B,MAClB4kB,oBACI//C,KACK+/C,wBAKpBte,EAAqB,eAEpB5W,eAAerc,OAAS,GACtB+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKihB,EAAqB,eAEpB5W,eAAeppB,IACb,SAAClB,EAAGoB,GACA,OACI4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3e,IACI,aACAF,EAEJlB,UACIqlD,EAA6Bt1B,IACzB7uB,GAEEzB,EAAQ4uB,aACR,IAGVvO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItgB,QAAS,CACLgvC,KACIhvC,EAAQ4pD,eAGfnoD,EACG,EAPR,KAUA4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItgB,QAAS,CACLgvC,KACIhvC,EAAQ4pD,cAEhB1iD,QAAS,kBACL1B,EAAK0iD,kBACD3mB,EAAqB,eAGhB5W,eACDlpB,KAIZlB,UACIP,EAAQ6pD,SAIRtoB,EAAqB,eAGhB5W,eACDlpB,IAIZ4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACMslC,EAA6Bt1B,IAC3B7uB,IAEA4e,EAAAhgB,EAAAC,cAAC+iB,EAAD,CACInc,QAAS,kBACL1B,EAAKoiD,uBACDnmD,MAKfmkD,EAA6Bt1B,IAC1B7uB,IAEA4e,EAAAhgB,EAAAC,cAACovC,GAAD,CACIxoC,QAAS,kBACL1B,EAAKqiD,2BACDpmD,cAkB5D4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,YAGA2f,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WACI58B,KAAKsF,MAAM4+C,kBAEfvoB,WAAY37B,KAAK0nD,eACb,kBAEJ76C,cACI7M,KAAKglD,6BAIbzkC,EAAAhgB,EAAAC,cAACkpD,GAAD,CAAS7uB,OAAQ,KAEhB4G,EAAqB,gBAEQ,OAD1BA,EAAqB,eAChBvC,kBACD3e,EAAAhgB,EAAAC,cAACmpD,EAAA,SAAD,KACIppC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,8BAIA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACopD,GAAD,CACIzK,OAAQn/C,KAAKm/C,WAIzB5+B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,IACf7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqpD,GAAD,CACI1uB,MACIn7B,KAAKsF,MAAM61B,MAEf4kB,oBACI//C,KACK+/C,wBAKpBte,EAAqB,eAEpB5W,eAAerc,OAAS,GACtB+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKihB,EAAqB,eAEpB5W,eAAeppB,IACb,SAAClB,EAAGoB,GACA,OACI4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3e,IACI,aACAF,EAEJlB,UACIqlD,EAA6Bt1B,IACzB7uB,GAEEzB,EAAQ4uB,aACR,IAGVvO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItgB,QAAS,CACLgvC,KACIhvC,EAAQ4pD,eAGfnoD,EACG,EAPR,KAWA4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItgB,QAAS,CACLgvC,KACIhvC,EAAQ4pD,cAEhB1iD,QAAS,kBACL1B,EAAK0iD,kBACD3mB,EAAqB,eAGhB5W,eACDlpB,KAIZlB,UACIP,EAAQ6pD,SAIRtoB,EAAqB,eAGhB5W,eACDlpB,IAIZ4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACMslC,EAA6Bt1B,IAC3B7uB,IAEA4e,EAAAhgB,EAAAC,cAAC+iB,EAAD,CACInc,QAAS,kBACL1B,EAAKoiD,uBACDnmD,MAKfmkD,EAA6Bt1B,IAC1B7uB,IAEA4e,EAAAhgB,EAAAC,cAACovC,GAAD,CACIxoC,QAAS,kBACL1B,EAAKqiD,2BACDpmD,cAgBhE4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,YAGA2f,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WACI58B,KAAKsF,MAAM++C,kBAEf1oB,WAAY37B,KAAK0nD,eACb,kBAEJ76C,cACI7M,KAAKilD,gCAOX,IAAb5hB,GACG9iB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,OACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,OACRwG,QAASpH,KAAK4mD,SAHlB,UAQJrmC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTC,QAAS,WACTgH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS,kBAAM1B,EAAKygD,WAHxB,YAQJ5lC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKknD,aAHlB,eAQJ3mC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS,kBACL1B,EAAK8gD,gBAGR,IAPL,aAgBN,IAAbnjB,GACG9iB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,OACRwG,QAASpH,KAAKunD,cAHlB,WAQJhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS,kBAAM1B,EAAK+hD,aAHxB,cAapBlnC,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BA74DLnE,IAAM5D,WA2/D1BgM,eAlFS,SAAShL,GAC7B,IAAM0kD,EAAU5nD,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,GAEpBo5C,EAIAsL,EAJAtL,WACAz0B,EAGA+/B,EAHA//B,mBACAqL,EAEA00B,EAFA10B,mBACAwiB,EACAkS,EADAlS,0BAGA3lC,EAQAusC,EARAvsC,WACAkvC,EAOA3C,EAPA2C,oBACAI,EAMA/C,EANA+C,sBACAC,EAKAhD,EALAgD,kBACAJ,EAIA5C,EAJA4C,gBACAqC,EAGAjF,EAHAiF,kBACAvC,EAEA1C,EAFA0C,qBACAO,EACAjD,EADAiD,uBAEI1uB,EAAwCqC,EAAxCrC,UAAWW,EAA6B0B,EAA7B1B,yBAEf0P,EAGArZ,EAHAqZ,+BACAF,EAEAnZ,EAFAmZ,oBACA4I,EACA/hB,EADA+hB,mBAGA9gB,EAEA4sB,EAFA5sB,sBACAmsB,EACAS,EADAT,qCAEJ,MAAO,CACHptB,qBACAwX,sBAAuBxX,EAAmBwX,sBAC1CC,mBAAoBzX,EAAmByX,mBACvC1X,gBAAiBC,EAAmBD,gBACpCq3B,oBAAqBA,EACrBD,qBAAsBA,EACtBO,uBAAwBA,EACxBF,sBAAuBA,EACvBC,oBACAJ,kBACAnvC,aACAwxC,kBAAmBA,EACnB1wB,YACAW,2BACA0P,iCACAF,sBACA4I,qBACA9gB,wBACAmsB,uCACAhU,SAAUpZ,EAAmBoZ,WAIV,SAAShzB,GAChC,MAAO,CACH+zB,4BAA6B,SAAAiG,GAAO,OAChCh6B,EAAS+zB,GAA4BiG,KACzC9F,+BAAgC,SAAApyB,GAAU,OACtC9B,EAASk0B,GAA+BpyB,KAC5C00C,gBAAiB,kBAAMx2C,E7Bp0DO,CACrCV,KArOyB,uB6ByiElByzC,cAAe,kBAAM/yC,E7Bj0DO,CACnCV,KAxOwB,sB6ByiEjBuzC,cAAe,kBAAM7yC,E7B9zDO,CACnCV,KA3OwB,sB6ByiEjBs2C,0BAA2B,kBAAM51C,E7BhiDO,CAAEV,KAhgBZ,mC6BiiE9B20C,yBAA0B,SAACr3C,EAAOo2B,GAAR,OACtBhzB,E7Bt2D+C,CAC1DV,KArLoC,+BAsLpCs6C,a6Bo2D6Ch9C,KACtC85C,UAAW,SAAA9oB,GAAG,OAAI5tB,E7B9yDD,SAAC4tB,GAAD,MAAU,CAClCtuB,KA5PkB,aA6PlBsuB,IAAKA,G6B4yD6B8oB,CAAU9oB,KACrCgpB,WAAY,SAAAhpB,GAAG,OAAI5tB,E7B1yDD,SAAC4tB,GAAD,MAAU,CACnCtuB,KAhQmB,cAiQnBi5B,QAAS3K,G6BwyD0BgpB,CAAWhpB,KACvCpL,gBAAiB,kBAAMxiB,EAASwiB,OAChCuS,WAAY,SAACC,EAAU11B,GAAX,OAAoBU,EAAS+0B,GAAWC,EAAU11B,KAC9DonC,iCAAkC,kBAC9B1mC,EAAS0mC,OACbmT,2BAA4B,SAAAne,GAAc,OACtC17B,E7Bj9C8B,SAAC07B,GAC1C,MAAO,CACNp8B,KA3kBoC,gCA4kBpCo8B,eAAgBA,G6B88CGme,CAA2Bne,KACxCqL,4BAA6B,SAAAlsB,GAAqB,OAC9C7a,EAAS+mC,GAA4BlsB,KACzC8a,4BAA6B,SAAAjoC,GAAC,OAC1BsS,EAAS21B,GAA4BjoC,KACzCypD,iBAAkB,kBAAMn3C,E7Bx8CO,CACtCV,KAtlB0B,wB6B8hEnBq5C,sBAAuB,SAAA3jB,GAAQ,OAC3Bh1B,E7Bz7CyB,SAACg1B,GAAD,sBAAA3X,EAAAtrB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAc,SAAA+R,EAAOnL,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAClDuG,EAAS41B,MADyCvqB,EAAA5R,KAAA,EAGjCoL,KAAMM,KAAKrS,GAAU,qBAAuB4I,KAAYiN,UAAU,CAAEusB,WAAY,IAAMF,EAAU90B,eAAwB6E,MAAM,SAACnQ,GAC/I,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARoC,WAG5CqJ,EAH4CgO,EAAA5N,MAgB1CL,KAhB0C,CAAAiO,EAAA5R,KAAA,eAiBjDuG,EAAS81B,MAjBwCzqB,EAAAnG,OAAA,SAkB1C,CAAExH,SAAS,EAAO1J,QAAS,wBAlBe,WAoB9CqJ,EAAGD,KAAKM,QApBsC,CAAA2N,EAAA5R,KAAA,gBAqBjDuG,EAAS61B,GAA8Bx4B,IArBUgO,EAAAnG,OAAA,SAsB1C,CAAExH,SAAS,EAAM1J,QAAS,KAtBgB,eAwBjDgM,EAAS81B,MAxBwCzqB,EAAAnG,OAAA,SAyB1C,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBC,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAd,gBAAA2b,GAAA,OAAA+R,EAAA7X,MAAA7V,KAAA2S,YAAA,G6By7ChBq2C,CAAsB3jB,OAI5B/0B,CAGbpO,qBA1Ga,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,OAAQowB,UAAW,IACnCmlB,QAAS,CACLv1C,QAAS,OACTm1B,KAAM,EACN/e,YAAa,GACbnW,WAAY,UAEhBuH,MAAO,CAAE2tB,KAAM,KACfqgB,QAAS,CAAErgB,KAAM,KACjBsgB,UAAW,CAAEp1C,MAAO,QACpBs2C,eAAgB,CAAElkB,OAAQ,GAAIpyB,MAAO,QACrCu2C,OAAQ,CAAEx8C,SAAU,YAEpB6gC,SAAU,GACVymB,aAAc,CAAEvsB,KAAM,QACtBwsB,QAAS,CAAE7Z,OAAQ,WACnBphB,aAAa1sB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMwd,qBAwF3Bzd,CAAmB8/C,KChlEjB7+C,GADWN,eACQM,QAcVgnD,GAAiB,iCAAAt1C,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACnCuG,EAAS+5C,MAD0BxgD,EAAAE,KAAA,EAElBoL,KAAMC,IAAIhS,GAAU,qBAAsBoN,eAAwB6E,MAAM,SAAAnQ,GACxF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAPqB,WAE7BqJ,EAF6B9D,EAAAkE,MAe3BL,KAf2B,CAAA7D,EAAAE,KAAA,eAgBlCuG,EAASg6C,MAhByBzgD,EAAA2L,OAAA,SAiB3B,CAAExH,SAAS,EAAO1J,QAAS,wBAjBA,WAmB/BqJ,EAAGD,KAAKM,QAnBuB,CAAAnE,EAAAE,KAAA,gBAoBlCuG,EACCi6C,GACC58C,EAAGD,KAAKoL,OAAO2V,MAAM/sB,IAAI,SAAC6oC,EAAG3oC,GAE5B,OADA2oC,EAAEr+B,GAAKtK,EACA2oC,MAxBwB1gC,EAAA2L,OAAA,SA4B3B,CAAExH,SAAS,EAAM1J,QAAS,KA5BC,eA8BlCgM,EAASg6C,MA9ByBzgD,EAAA2L,OAAA,SA+B3B,CAAExH,SAAS,EAAO1J,QAAS,gBAAkBqJ,EAAGD,KAAKoC,MAAMxL,UA/BhC,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAmCxBy3C,GAAuB,iBAAO,CACnCz6C,KAhD8B,2BAmDzB26C,GAAqB,SAAAn4C,GAAU,MAAK,CACzCxC,KAnD2B,sBAoD3BwC,WAAYA,IAGPk4C,GAAkB,SAAAE,GAAY,MAAK,CACxC56C,KAvDwB,mBAwDxB46C,iBAGYC,GAAgB,SAAAr4C,GAAU,MAAK,CAC3CxC,KA3DsB,iBA4DtBwC,eAGKkK,GAAY,CACjBouC,qBAAqB,EACrBt4C,WAAY,GACZivC,qBAAsB,GACtBC,oBAAqB,GACrBM,uBAAwB,GACxBF,sBAAuB,GACvBC,kBAAmB,GACnBJ,gBAAiB,GACjBqC,mBAAmB,GA2Cd+G,GAAoB,SAACv4C,EAAYxC,GACtC,IAAMu1C,EAAc/yC,EAAW6P,OAAO,SAAAsoB,GAAC,MA9GjB,YA8GsB36B,EAA4C,cAAzB26B,EAAC,gBAAiE,cAA3BA,EAAC,oBACnGmY,EAAM,IAAIryB,IAAI80B,EAAYzjD,IAAI,SAAA6oC,GAAC,OAAIqgB,GAAqBrgB,EAAG36B,MAE3DkJ,EAAS,GAEbA,EAAOzK,KAAK,CACXwB,MAAO,YACP3C,MAAO,KAGR,IAAIy1C,EAAOtgD,OAAAusB,GAAA,EAAAvsB,CAAIqgD,GAAKl6B,OAAO9mB,IAAI,SAAA6oC,GAC9B,MAAO,CAAE16B,MAAO06B,EAAGr9B,MAAOq9B,KAI3B,OAFAzxB,EAASA,EAAO9J,OAAO2zC,IAKlBiI,GAAuB,SAAC/oD,EAAM+N,GACnC,MAjIsB,YAiIfA,EAAA,GAAAZ,OACDnN,EAAKsQ,SADJ,OAAAnD,OACkBnN,EAAK2Q,kBADvB,OAAAxD,OAC8CnN,EAAKsvC,mBADnD,GAAAniC,OAEDnN,EAAKsQ,SAFJ,OAAAnD,OAEkBnN,EAAK6Q,gBAFvB,OAAA1D,OAE4CnN,EAAKyvC,kBAGnDuZ,GAA0B,SAACz4C,EAAYtQ,EAAK8N,GACjD,IACIk7C,EADAC,EAAO,GAGVD,EA1IqB,YAyIlBl7C,EACY,kBAEA,oBAGhB,IAT0D,IAAA4W,EAAA,SASjD5kB,GAC4B,cAAhCwQ,EAAWxQ,GAAGkpD,KACGC,EAAK14C,KAAK,SAAAxQ,GAAI,OAAIA,EAAKqL,QAAUkF,EAAWxQ,GAAGE,MAC/CipD,EAAK18C,KAAK,CAAEwB,MAAOuC,EAAWxQ,GAAGE,GAAMoL,MAAOkF,EAAWxQ,GAAGE,OAHzEF,EAAI,EAAGA,EAAIwQ,EAAW3D,OAAQ7M,IAAK4kB,EAAnC5kB,GAcT,OARAmpD,EAAKviC,KAAK,SAAChoB,EAAGmB,GACb,OAAInB,EAAE0M,MAAQvL,EAAEuL,OACP,EAED,IAIF69C,GAGOpM,GA3FI,WAA+B,IAA9Bp5C,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACjD,OAAQsH,EAAO+G,MACd,IAhF6B,yBAiF5B,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBmlD,qBAAqB,IAEzC,IAlF0B,sBAmFzB,OAAOroD,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAECmlD,qBAAqB,EACrBt4C,WAAYvJ,EAAOuJ,WACnBivC,qBAAsBsJ,GAAkB9hD,EAAOuJ,WA/E5B,WAgFnBwvC,uBAAwB+I,GAAkB9hD,EAAOuJ,WA/E5B,aAgFrBkvC,oBAAqBuJ,GAAwBhiD,EAAOuJ,WAAY,WAjF7C,WAkFnBsvC,sBAAuBmJ,GAAwBhiD,EAAOuJ,WAAY,WAjF7C,aAkFrBuvC,kBAAmBkJ,GAAwBhiD,EAAOuJ,WAAY,kBAlFzC,aAmFrBmvC,gBAAiBsJ,GAAwBhiD,EAAOuJ,WAAY,oBApFzC,WAqFnBwxC,mBAAmB,IAGrB,IA/FuB,mBAgGtB,OAAOvhD,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBmlD,qBAAqB,IAEzC,IAjGqB,iBAkGpB,OAAOroD,OAAA+d,EAAA,EAAA/d,CAAA,GACHkD,EADJ,CAEC6M,WAAYvJ,EAAOuJ,WACnBivC,qBAAsBsJ,GAAkB9hD,EAAOuJ,WA/F5B,WAgGnBwvC,uBAAwB+I,GAAkB9hD,EAAOuJ,WA/F5B,aAgGrBkvC,oBAAqBuJ,GAAwBhiD,EAAOuJ,WAAY,WAjG7C,WAkGnBsvC,sBAAuBmJ,GAAwBhiD,EAAOuJ,WAAY,WAjG7C,aAkGrBuvC,kBAAmBkJ,GAAwBhiD,EAAOuJ,WAAY,kBAlGzC,aAmGrBmvC,gBAAiBsJ,GAAwBhiD,EAAOuJ,WAAY,oBApGzC,WAqGnBwxC,mBAAmB,IAGrB,QACC,OAAOr+C,IC7GJylD,eACF,SAAAA,EAAY9qD,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA+qD,IACfvmD,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA2oD,GAAAnmD,KAAA5E,KAAMC,KASVqJ,kBAVmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAUC,SAAAC,IAAA,IAAAshD,EAAAC,EAAApa,EAAAnjC,EAAAw9C,EAAA,OAAAj+B,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,eADgBiG,EAAAE,KAAA,EAGkB3D,aAAaC,QAAQ,eAHvC,UAGZ4kD,EAHYphD,EAAAkE,KAIS,IACrBk9C,EALY,CAAAphD,EAAAE,KAAA,YAMZmhD,EAAqBtkD,KAAKC,MAAMokD,GAC5Bna,EAAQtqC,MAASC,OAAO,eACxBykD,EAAmB94C,YAAc84C,EAAmBE,cAAgBta,EAR5D,CAAAjnC,EAAAE,KAAA,SASRtF,EAAKvE,MAAMuqD,cAAcS,EAAmB94C,YATpCvI,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAWStF,EAAKvE,MAAMkqD,iBAXpB,SAWFz8C,EAXE9D,EAAAkE,MAYAC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAZ1F,QAAAuF,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAeKtF,EAAKvE,MAAMkqD,iBAfhB,SAeNz8C,EAfM9D,EAAAkE,MAgBJC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAhBtF,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAVDwE,EA+BnBgtB,mBA/BmB,eAAA3X,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA+BE,SAAAmB,EAAO6mB,GAAP,IAAAof,EAAAoa,EAAAG,EAAA,OAAAn+B,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACb2nB,EAAU45B,UAAY7mD,EAAKvE,MAAMkS,YAAuC,MAAzB3N,EAAKvE,MAAMkS,YACtD3N,EAAKvE,MAAMkS,WAAW3D,OAAS,IAC3BqiC,EAAQtqC,MAASC,OAAO,cACxBykD,EAAqB,CACrBE,YAAata,EACb1+B,WAAY3N,EAAKvE,MAAMkS,YAEvBi5C,EAAyBzkD,KAAKqS,UAAUiyC,GAC5C9kD,aAAa8E,QAAQ,cAAemgD,IAT3B,wBAAAvgD,EAAAH,SAAAE,EAAA5K,SA/BF,gBAAAyV,GAAA,OAAAoE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EA6CnB8mD,yBAA2B,WACvB9mD,EAAKU,SAAS,CAACqmD,yBAAyB,KA9CzB/mD,EAiDnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAhD7B5H,EAAKc,MAAQ,CACTimD,yBAAyB,EACzBn/C,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WANN7H,wEAsDf,OACI+b,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAGAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAACgrD,GAAD,CACIr9C,QAASnO,KAAKC,MAAMkO,QACpBksB,MAAOr6B,KAAKC,MAAMo6B,QAGtB9Z,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BAtErBnE,IAAM5D,WA0FtBgM,eAdS,SAAAhL,GAAS,IACtBw4C,EAAkDx4C,EAAlDw4C,eAAgBY,EAAkCp5C,EAAlCo5C,WAEvB,MAAO,CAACZ,iBAAgB7zB,mBAFiC3kB,EAAtB2kB,mBAES9X,WADvBusC,EAAdvsC,aAIgB,SAAA9B,GACvB,MAAO,CACH85C,eAAgB,kBAAM95C,EAAS85C,OAC/BK,cAAe,SAACa,GAAD,OAAah7C,EAASm6C,GAAca,KACnDtU,iCAAkC,kBAAM1mC,EAAS0mC,SAI1CzmC,CAA6Cy6C,ICtG/CU,GAAmB,WAc5B,MAbc,CACVC,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IAMvBC,GAAkC,SAACvpC,GAc5C,MAbc,CACV4oC,cAAc,EACdC,kBAAmB7oC,EACnB8oC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IAKvBE,GAAwC,WAcjD,MAbc,CACVZ,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IA0BvBG,GAAmB,SAACzuB,GAC7B,QAAex8B,IAAZw8B,EAAuB,MAAM,IAAI3W,MAAM,0BAc1C,MAbc,CACVukC,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IAKvBI,GAAiB,SAACvuB,GAC3B,QAAW38B,IAAP28B,EAAkB,MAAM,IAAI9W,MAAM,kCAEtC,IAAIslC,EAAexuB,GAAO,EAc1B,MAbc,CACVytB,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,gBAAiBS,EACjBR,mBAAoBQ,EACpBP,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IA0DvBM,GAAuB,WAchC,MAbc,CACVhB,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,IAKvBO,GAAiC,WAc1C,MAbc,CACVjB,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,ICrLvBQ,GAAmC,SAAA/3C,GAY5C,MAAQ,CACJlF,KAhBoC,sCAiBpCi5B,QAAQ,CACJ8iB,aAJF72C,EAX2C62C,aAgBzCC,iBALF92C,EAV2C82C,iBAgBzCC,eANF/2C,EAT2C+2C,eAgBzCC,aAPFh3C,EAR2Cg3C,aAgBzCC,eARFj3C,EAP2Ci3C,eAgBzCC,MATFl3C,EAN2Ck3C,MAgBzCC,gBAVFn3C,EAL2Cm3C,gBAgBzCC,kBAXFp3C,EAJ2Co3C,kBAgBzCC,qBAZFr3C,EAH2Cq3C,qBAgBzCC,iBAbFt3C,EAF2Cs3C,iBAgBzCC,2BAdFv3C,EAD2Cu3C,8BAqB/C/vC,GAAY,CACdqvC,cAAc,EACdC,kBAAkB,EAClBC,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,mBAAmB,EACnBC,sBAAsB,EACtBC,kBAAkB,EAClBC,4BAA4B,GAmBjBS,GAhBuB,WAA+B,IAA9BvnD,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACjE,OAAQsH,EAAO+G,MAEX,IAnDoC,sCAoDhC,IAAIi5B,EAAUhgC,EAAOggC,QACrB,OAAOxmC,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EACAsjC,GAIX,QACI,OAAOtjC,ICpENwnD,GAAoB,SAAAj4C,GAAA,MAAuG,CACpIlF,KAHwB,sBAIxBizB,kBAF6B/tB,EAAE+tB,kBAG/BmqB,qBAH6Bl4C,EAAqBk4C,qBAIlDlqB,iBAJ6BhuB,EAA2CguB,iBAKxEC,eAL6BjuB,EAA6DiuB,eAM1FC,oBAN6BluB,EAA6EkuB,sBASxG1mB,GAAY,CACdumB,kBAAmB,UACnBC,iBAAkB,UAClBC,eAAgB,UAChBC,oBAAqB,WAcViqB,GAXY,WAA+B,IAA9B1nD,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACtD,OAAQsH,EAAO+G,MACX,IApBoB,sBAoBpB,IACSizB,EAAkGh6B,EAAlGg6B,kBAAmBmqB,EAA+EnkD,EAA/EmkD,qBAAsBjqB,EAAyDl6B,EAAzDk6B,eAAgBD,EAAyCj6B,EAAzCi6B,iBAAkBE,EAAuBn6B,EAAvBm6B,oBAChF,OAAO3gC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBs9B,oBAAmBmqB,uBAAsBjqB,iBAAgBD,mBAAkBE,wBAElG,QACI,OAAOz9B,ICpBnB,SAAS2nD,GAATp4C,GAA8C,IAArBq4C,EAAqBr4C,EAArBq4C,SAAajtD,EAAQmC,OAAAwhB,EAAA,EAAAxhB,CAAAyS,EAAA,cAC1C,OAAO0L,EAAAhgB,EAAAC,cAAA,MAAA4B,OAAAyF,OAAA,CAAKshD,IAAK+D,GAAcjtD,IAGnC,SAASktD,GAAQltD,GACb,OACIsgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAADpe,OAAAyF,OAAA,CACImI,WAAS,EACTpP,QAAS,WACT6uC,WAAY,CACRwd,kBACAG,WAAWhrD,OAAA+d,EAAA,EAAA/d,CAAA,CACP3B,UAAWR,EAAMotD,YAAYntD,QAAQ8xB,MACrCk7B,SAAUjtD,EAAMspD,SAChBznD,SAAU7B,EAAM6B,UACb7B,EAAMqtD,cAGbrtD,EAAMotD,YAAYE,eAZ1B,CAaI19C,MAAO5P,EAAMotD,YAAYx9C,MACzBC,WAAY7P,EAAMotD,YAAYv9C,cAK1C,IAAM09C,GAAe,CACjBC,KAAM,SAACC,EAAUpoD,GAAX,OAAAlD,OAAA+d,EAAA,EAAA/d,CAAA,GACCsrD,EADD,CAEFnlD,OAAQ,MAIVolD,oLACO,IACEztD,EAAWF,KAAKC,MAAhBC,QAEP,OACIqgB,EAAAhgB,EAAAC,cAACi8B,GAAA,EAADr6B,OAAAyF,OAAA,CACI+lD,WAAY,CAACT,YACbI,eAAgB,CAAC39C,MAAO5P,KAAKC,MAAM2P,MAAOi+C,gBAAiB,CAACC,QAAQ,IACpE5tD,QAASA,GACLF,KAAKC,MAJb,CAKIiQ,OAAQs9C,GACR9wB,WAAc18B,KAAKC,MAAM8f,mBAXd9d,iBA4BZC,wBAXA,SAAAC,GAAK,MAAK,CACrB6vB,MAAO,CAAC5pB,QAAS,OAAQ7F,QAAS,iBAUvBL,CAAmByrD,cCenBI,GA/Ed,SAAAA,EAAAl5C,GAAiD,IAAArQ,EAAAxE,KAAnCguD,EAAmCn5C,EAAnCm5C,YAAaC,EAAsBp5C,EAAtBo5C,OAAQC,EAAcr5C,EAAdq5C,WAAc9rD,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA+tD,GAAA/tD,KAQjDmuD,YAAc,WACb3pD,EAAK4pD,cAAe,EAIpB,IAHA,IAAIC,EAAkB,GAClBC,EAAqB9pD,EAAKwpD,YAAYj9C,MAAM,QAEvCpP,EAAI,EAAGA,EAAI2sD,EAAmB9/C,OAAQ7M,IAAK,CACnD,IAAI4sD,EAAcD,EAAmB3sD,GAAG4hD,OAGxC,GAAmC,IAA/B/+C,EAAKgqD,uBACJhqD,EAAKgqD,wBAA0BD,EAAY//C,OAAQ,MAAO,CAAET,SAAS,EAAO1J,QAAS,2CAK1F,GAHAG,EAAKgqD,sBAAwBD,EAAY//C,OAGrC+8B,SAAS8iB,EAAgBA,EAAgB7/C,OAAS,KAAO+8B,SAASgjB,GACrE,MAAO,CAAExgD,SAAS,EAAO1J,QAAS,kDAEnCgqD,EAAgBjgD,KAAKmgD,GAGtB,MAAO,CAAExgD,SAAS,EAAM1J,QAAS,YA7BerE,KAgCjDyuD,cAAgB,WACf,IAAKjqD,EAAK4pD,aAAc,MAAM,IAAIjnC,MAAM,8CACxC,IAAIunC,EAAYlqD,EAAKwpD,YAAYj9C,MAAM,KACnC49C,EAAW,GAWf,OATAD,EAAUpgD,QAAQ,SAAAsgD,GACjB,GAAIA,EAAO59C,QAAQ,MAAQ,EAAG,CAC7B,IAAI69C,EAAkBrqD,EAAKsqD,kBAAkBF,GAC7CD,EAAWA,EAAS5/C,OAAO8/C,OACrB,CACN,IAAIE,EAAevqD,EAAKypD,OAASzpD,EAAKwqD,gCAAgCzjB,SAASqjB,GAAQK,YACvFN,EAASvgD,KAAK2gD,MAGTJ,GA9CyC3uD,KAiDjD8uD,kBAAoB,SAAAd,GAKnB,IAJA,IACIkB,EADmBlB,EAAYj9C,MAAM,KACEtP,IAAI,SAAA2oC,GAAC,OAAImB,SAASnB,KACzD+kB,EAAYD,EAAoB,GAAKA,EAAoB,GAAK,EAC9DE,EAAS,GACJztD,EAAI,EAAGA,EAAIwtD,EAAWxtD,IAAK,CACnC,IAAI0tD,EAAcH,EAAoB,GAAKvtD,EAC3C0tD,EAAc7qD,EAAKwqD,gCAAgCK,EAAYJ,YAC/D,IAAIK,EAAa9qD,EAAKypD,OAASoB,EAC/BD,EAAOhhD,KAAKkhD,GAEb,OAAOF,GA5DyCpvD,KA+DjDgvD,gCAAkC,SAAAO,GACjC,IAAIC,EAAkB,EAGrBA,EADGhrD,EAAK0pD,WACU1pD,EAAK0pD,WAAa1pD,EAAKypD,OAAOz/C,OAE9BhK,EAAKgqD,sBAGxB,IADA,IAAIiB,EAAkBF,EACfE,EAAgBjhD,OAASghD,GAC/BC,EAAkB,IAAMA,EAEzB,OAAOA,GA1EPzvD,KAAKguD,YAAcA,EACnBhuD,KAAKiuD,OAASA,GAAU,GACxBjuD,KAAKkuD,WAAaA,EAClBluD,KAAKwuD,sBAAwB,EAC7BxuD,KAAKouD,cAAe,GCJTsB,GAA0B,0BAC1BC,GAA0B,0BAC1BC,GAAoB,oBCFpBC,GAAU,CACnBC,UAAW,uCACXC,SAAU,kFACVC,UAAW,mEACXC,SAAU,uDACVC,QAAS,qDAGT5lC,GAAWznB,eACXstD,GAAkB7lC,GAASlnB,iBAE3BgoC,GAAa9gB,GAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,OAArBA,EAAEljB,kBAClD8sD,GAAgBhlB,GAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAChD6sD,GAAgBjlB,GAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAChD8sD,GAAYhmC,GAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,MAArBA,EAAEljB,kBACjDitD,GAAeD,GAAU/sD,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC9CgtD,GAAeF,GAAU/sD,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eACrCitD,GAAc,CACvBC,mBAAoBN,GAAc3sD,cAClCktD,mBAAoBN,GAAc5sD,cAClCmtD,kBAAmBL,GAAa9sD,cAChCotD,kBAAmBL,GAAa/sD,eAGvBqtD,GAAe,CACxBC,cAAa,mHAEbC,2BAA0B,wXAG1BluB,eAAc,kLAEdmuB,oBAAmB,qNAEnBpuB,iBAAgB,uKAEhBquB,wBAAuB,6QAIvBC,iCAAgC,sNAIhCC,oCAAmC,weAMnCC,0CAAyC,+QAIzCC,2CAA0C,4hBAM1CC,mCAAkC,2kBAMlCC,uBAAsB,wDAWbC,GAAqC,SAAA53C,GAAqE,IAAnE63C,EAAmE73C,EAAnE63C,iBAAkBC,EAAiD93C,EAAjD83C,qBAAsBb,EAA2Bj3C,EAA3Bi3C,aAAcjB,EAAah2C,EAAbg2C,QAClG+B,EAAmBF,EACvBE,EAAmBC,GAA0B,CAACH,iBAAkBE,EAAkB/B,QAASA,IAC3F,IAAIiC,EAAgC,GAChCf,EAAgB,GA6CpB,OA3CIY,EAAqBI,kBAAoBJ,EAAqBI,iBAAmB,IACjFD,EAAgCE,GAA0B,CACtDN,iBAAkBZ,EAAaU,uBAC/BS,cAAeN,EAAqBI,iBACpC7xB,gBAAiBuwB,GAAYE,sBAIjCmB,EAA8BtjD,OAAS,IAEvCuiD,EAAgBD,EAAaC,cAC7BA,EAAgBmB,GAAsB,CAClCR,iBAAkBX,EAClBS,uBAAwBM,KAKhCF,EAAmBO,GAAiB,CAChCT,iBAAkBE,EAClBb,cAAeA,IAKnBe,EAAgC,GAC5BH,EAAqBS,kBAAoBT,EAAqBS,iBAAmB,IACjFN,EAAgCE,GAA0B,CACtDN,iBAAkBZ,EAAaU,uBAC/BS,cAAeN,EAAqBS,iBACpClyB,gBAAiBuwB,GAAYC,sBAWrCkB,GANAA,EAAmBM,GAAsB,CACrCR,iBAAkBE,EAClBJ,uBAAwBM,KAIQ/kB,QAAQ,2BAA4BojB,KAKtE+B,GAAwB,SAAAj4C,GAAiD,IAA/Cy3C,EAA+Cz3C,EAA/Cy3C,iBAAkBF,EAA6Bv3C,EAA7Bu3C,uBAC1Ca,EAA4BX,EAIhC,OAFAW,EAA4BA,EAA0BtlB,QAAQ,+BAAgCykB,IAK5FQ,GAA4B,SAAAx3C,GAAwD,IAAtDk3C,EAAsDl3C,EAAtDk3C,iBAAkBO,EAAoCz3C,EAApCy3C,cAAe/xB,EAAqB1lB,EAArB0lB,gBAC7D4xB,EAAgCJ,EAcpC,OAZAI,EAAgCQ,GAAY,CACxCZ,iBAAkBI,EAClBG,cAAeA,EACf/xB,gBAAiBA,IAGrB4xB,EAAgCS,GAAe,CAC3Cb,iBAAkBI,EAClBG,cAAeA,EACf/xB,gBAAiBA,KAMnBqyB,GAAiB,SAAAx3C,GAAyD,IAAvD22C,EAAuD32C,EAAvD22C,iBAAkBO,EAAqCl3C,EAArCk3C,cAAe/xB,EAAsBnlB,EAAtBmlB,gBAClDmyB,EAA4BX,EAQhC,OALIW,EADDJ,GAAiBA,EAAgB,EACJI,EAA0BtlB,QAAQ,kBAAmBklB,EAAc/xB,GAEnEmyB,EAA0BtlB,QAAQ,kBAAmB,IAMnFulB,GAAc,SAAA/2C,GAAwD,IAAtDm2C,EAAsDn2C,EAAtDm2C,iBAAkBO,EAAoC12C,EAApC02C,cAAe/xB,EAAqB3kB,EAArB2kB,gBAE/CmyB,EAA4BX,EAQhC,OALIW,EADDJ,GAAiBA,EAAgB,EACJI,EAA0BtlB,QAAQ,wBAAyB7M,GAE3DmyB,EAA0BtlB,QAAQ,wBAAyB,IAMzFolB,GAAmB,SAAAt2C,GAAuC,IAArC61C,EAAqC71C,EAArC61C,iBAAkBX,EAAmBl1C,EAAnBk1C,cACrCsB,EAA4BX,EAIhC,OAFAW,EAA4BA,EAA0BtlB,QAAQ,mBAAoBgkB,IAMhFc,GAA4B,SAAA7T,GAAiC,IAA/B0T,EAA+B1T,EAA/B0T,iBAAkB7B,EAAa7R,EAAb6R,QAC9CwC,EAA4BX,EAOhC,OAFAW,GADAA,GADAA,GADAA,GADAA,EAA4BA,EAA0BtlB,QAAQ,kBAAmBylB,GAAgB3C,EAAQC,UAAW,0BAC9D/iB,QAAQ,iBAAkBylB,GAAgB3C,EAAQE,SAAU,0BAC5DhjB,QAAQ,kBAAmBylB,GAAgB3C,EAAQG,UAAW,0BAC9DjjB,QAAQ,iBAAkBylB,GAAgB3C,EAAQI,SAAU,oBAC5DljB,QAAQ,gBAAiBylB,GAAgB3C,EAAQK,QAAS,oBAK9GsC,GAAkB,SAACx9C,EAAKy9C,GAO1B,MANY,mCAAA1jD,OAEIiG,EAFJ,0EAAAjG,OAIc0jD,EAJd,eCpMVC,8MA2DFC,sBAAwB,SAAA99C,GAAoD,IACpE+tB,EAAmBmqB,EAAsBlqB,EAAkBC,EADxC2tB,EAAiD57C,EAAjD47C,YAAa5D,EAAoCh4C,EAApCg4C,8BAqDpC,OAnDA/pB,EAAiB2tB,EAAYmC,aAAe,EAAI9B,GAAaG,oBAAsBH,GAAahuB,eAChGD,EAAmBiuB,GAAajuB,iBAE5BgqB,EAA8BhB,cAAgB4E,EAAYmC,aAAe,EACzEhwB,EAAoB6uB,GAAmC,CACnDC,iBAAkBZ,GAAaI,wBAC/BS,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,MAGPhD,EAA8BhB,cAAgB4E,EAAYmC,aAAe,EAC/EhwB,EAAoB6uB,GAAmC,CACnDC,iBAAkBZ,GAAaK,iCAC/BQ,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,KAGRhD,EAA8Bd,QAAUc,EAA8BhB,cAAgB4E,EAAYmC,aAAe,GACtHhwB,EAAoB6uB,GAAmC,CACnDC,iBAAkBZ,GAAaM,oCAC/BO,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,KAEb9C,EAAuB0E,GAAmC,CACtDC,iBAAkBZ,GAAaO,0CAC/BM,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,MAIbjtB,GADMiqB,EAA8Bd,OAAS0E,EAAYmC,aAAe,GAAKnC,EAAYmC,aAAe,EACpFnB,GAAmC,CACnDC,iBAAkBZ,GAAaQ,2CAC/BK,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,KAIO4B,GAAmC,CACnDC,iBAAkBZ,GAAaS,mCAC/BI,qBAAsBlB,EACtBK,aAAcA,GACdjB,QAASA,KAIC,CAAE/sB,iBAAgBD,mBAAkBD,oBAAmBmqB,4GA5GzE/sD,KAAK6yD,2DAGUphC,GACZA,EAAUzH,kBAAoBhqB,KAAKC,MAAM+pB,iBACxCyH,EAAUsQ,mBAAqB/hC,KAAKC,MAAM8hC,kBAC1CtQ,EAAUo7B,8BAA8BnB,eAAiB1rD,KAAKC,MAAM4sD,8BAA8BnB,cAClGj6B,EAAUo7B,8BAA8BlB,mBAAqB3rD,KAAKC,MAAM4sD,8BAA8BlB,kBACtGl6B,EAAUo7B,8BAA8BhB,eAAiB7rD,KAAKC,MAAM4sD,8BAA8BhB,cAClGp6B,EAAUo7B,8BAA8Bf,iBAAmB9rD,KAAKC,MAAM4sD,8BAA8Bf,gBACpGr6B,EAAUo7B,8BAA8Bd,QAAU/rD,KAAKC,MAAM4sD,8BAA8Bd,OAC3Ft6B,EAAUo7B,8BAA8Bb,kBAAoBhsD,KAAKC,MAAM4sD,8BAA8Bb,iBACrGv6B,EAAUo7B,8BAA8BZ,oBAAsBjsD,KAAKC,MAAM4sD,8BAA8BZ,mBACvGx6B,EAAUo7B,8BAA8BX,uBAAyBlsD,KAAKC,MAAM4sD,8BAA8BX,sBAG1GlsD,KAAK6yD,wDAIE,IACJhG,EAAiC7sD,KAAKC,MAAtC4sD,8BAGH4D,GAFa5D,EAA8BlB,kBAAoBkB,EAA8Bf,gBAAkBe,EAA8Bb,gBAE/HhsD,KAAK8yD,uBAAuB9yD,KAAKC,MAAM+pB,kBAErD+oC,EAAc/yD,KAAK2yD,sBAAsB,CACzClC,YAAaA,EACb5D,8BAA+B7sD,KAAKC,MAAM4sD,gCAE9C7sD,KAAKC,MAAM6sD,kBAAkB,CACzBlqB,kBAAmBmwB,EAAYnwB,kBAC/BmqB,qBAAsBgG,EAAYhG,qBAClCjqB,eAAgBiwB,EAAYjwB,eAC5BD,iBAAkBkwB,EAAYlwB,kEAIftY,GACnB,IAAIyoC,EAAqB,CACrBZ,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,GAJY5/C,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAO9B,QAAA6R,EAAAC,EAAgBmX,EAAhBlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA4B,KAAjBjV,EAAiBoV,EAAAlG,MACnBlP,EAAEonB,YAEH6tC,EAAmBZ,iBAAmB7mB,SAASynB,EAAmBZ,kBAAoB7mB,SAASxtC,EAAEoiC,aACjG6yB,EAAmBjB,iBAAmBxmB,SAASynB,EAAmBjB,kBAAoBxmB,SAASxtC,EAAEqiC,aACjG4yB,EAAmBJ,iBAZG,MAAAn/C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAe9B,OAAO8/C,mCA+DP,OACIzyC,EAAAhgB,EAAAC,cAAA,mBAxH8B0H,IAAM5D,WAiJjCgM,eAlBS,SAAUhL,GAC9B,IAAM0kD,EAAU5nD,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,GACjB2kB,EAAqB+/B,EAAW//B,mBAChC4iC,EAAgC7C,EAAW6C,8BACjD,MAAO,CACH7iC,gBAAiBC,EAAmBD,gBACpC+X,iBAAkB9X,EAAmB8X,iBACrC9X,qBACA4iC,kCAImB,SAAUx8C,GACjC,MAAO,CACHy8C,kBAAmB,SAAAjzC,GAAA,IAAE+oB,EAAF/oB,EAAE+oB,kBAAmBmqB,EAArBlzC,EAAqBkzC,qBAAsBlqB,EAA3ChpB,EAA2CgpB,iBAAkBC,EAA7DjpB,EAA6DipB,eAAgBC,EAA7ElpB,EAA6EkpB,oBAA7E,OAAsG1yB,EAASy8C,GAAkB,CAAClqB,oBAAmBmqB,uBAAsBlqB,mBAAkBC,iBAAgBC,4BAIzNzyB,CAA6CoiD,ICvJ/CO,GAAkB,SAAAp+C,GAI3B,IAJmD,IAAtB2Z,EAAsB3Z,EAAtB2Z,MAAO0kC,EAAer+C,EAAfq+C,UAChCC,EAAY,GACZC,EAAavtC,KAAKc,KAAK6H,EAAMhgB,OAAS0kD,GAElCvxD,EAAE,EAAGA,EAAEyxD,EAAYzxD,IAAI,CAM3B,IALA,IAAI0xD,EAAW,GACXC,EAAWJ,EAAUvxD,EAGrB8mB,EAFS5C,KAAKM,IAAI+sC,GAAWvxD,EAAE,GAAG,EAAI6sB,EAAMhgB,OAAS,GAErC8kD,EACZC,EAAE,EAAGA,EAAG9qC,EAAK,EAAG8qC,IAEpBF,EAASjlD,KAAKogB,EAAM8kC,EAAWC,IAEnCJ,EAAU/kD,KAAKilD,GAGnB,OAAOF,GCZP7oC,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEVqwD,GAA2B,eAAA35C,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAG,SAAAC,EAAAmL,GAAA,IAAA4+C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAtpC,EAAAoX,EAAAj0B,EAAAomD,EAAAC,EAAA,OAAA9mC,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACvC2pD,EADuC5+C,EACvC4+C,gBADuCC,EAAA7+C,EAEvC8+C,YAFuC,IAAAD,KAAAE,EAAA/+C,EAGvCg/C,0BAHuC,IAAAD,KAKnCrpC,EAAa,GACjBkpC,EAAgBnlD,QAAQ,SAAA0lD,GACpB,IAAKA,EAAK7uC,UAAW,CACjB,IAAIsK,EAAY,GAChBA,EAAU0O,SAAW61B,EAAK91B,gBAAgBC,SAC1C1O,EAAUmR,OAASozB,EAAKp1B,gBAAgBgC,OACxCrW,EAAWnc,KAAKqhB,MAGpBkS,EAAiB8xB,EAAgB,GAAG9xB,eAdD/3B,EAAAE,KAAA,EAetBoL,KACZM,KACGrS,GAAU,yCACV,CACIonB,WAAYA,EACZopC,KAAMA,EACNhyB,eAAgBA,EAChBkyB,mBAAoBA,EACpBnzB,aAAc+yB,EAAgB,GAAGv1B,gBAAgBwC,cAErDnwB,eAEH6E,MAAM,SAAAnQ,GACH,OAAKA,EAAEoQ,SAEFzV,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACHvH,SAAS,EACT1J,QAASY,EAAEoQ,SAASC,OAAS,qBAJtB,CAAEvH,SAAS,EAAO1J,QADrBY,EALAoQ,SACI5H,KACIoC,MAASxL,SALd,CAAE0J,SAAS,EAAO1J,QAAS,oBA7BP,WAejCqJ,EAfiC9D,EAAAkE,MA6C/BL,KA7C+B,CAAA7D,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,SA8C5B,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGrJ,UA9CF,UAgDlCqJ,EAAGD,KAAKM,QAhD0B,CAAAnE,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAiD5B,CAAExH,SAAS,EAAO1J,QAAS,qBAjDC,eAoDnCyvD,EAA2B,GAAG/kD,OAAO0kD,GACrCM,EAAyBrmD,EAAGD,KAAKoL,OAAO2V,MAC5CslC,EAAyBxlD,QAAQ,SAAAvQ,GAC7B,IAAIkuC,EAAmB8nB,EAAuB3hD,KAC1C,SAAA6hD,GAAG,OAAIA,EAAI91B,WAAapgC,EAAEmgC,gBAAgBC,WAE1C8N,IACAluC,EAAEoiC,YAAc8L,EAAiB9L,YACjCpiC,EAAEqiC,YAAc6L,EAAiB7L,YACjCriC,EAAEmiC,gBAAkB+L,EAAiB/L,mBA7DNt2B,EAAA2L,OAAA,SAgEhC,CAAExH,SAAS,EAAMwc,WAAYupC,IAhEG,yBAAAlqD,EAAAc,SAAAhB,EAAA1J,SAAH,gBAAAyV,GAAA,OAAAoE,EAAAhE,MAAA7V,KAAA2S,YAAA,GCkElCuhD,eACF,SAAAA,EAAYj0D,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAk0D,IACxB1vD,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA8xD,GAAAtvD,KAAA5E,KAAMC,EAAOiJ,KAqNjBirD,mBAAqB,SAAAr2B,GACjB,IAAMmP,EAAcpP,GAAazrB,KAAK,SAAA+hB,GAAC,OAAIA,EAAE2J,UAAYA,IACzD,GAAImP,EAEA,OADAzoC,EAAKU,SAAS,CAAE+nC,YAAaA,EAAYr9B,QAClCq9B,EAAYr9B,OA1NCpL,EA8N5B4vD,iCA9N4B,eAAAv/C,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8NO,SAAAC,EAAOoD,EAAG7H,GAAV,IAAA88B,EAAAsyB,EAAAC,EAAAx2B,EAAAy2B,EAAAt2B,EAAAu2B,EAAAC,EAAAC,EAAA38C,EAAAwX,EAAA,OAAAtC,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAC3Bi4B,EAD2B3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAExBoC,EAAKvE,MAAMgqB,mBAAmB8X,kBAEjCsyB,EAJ2BjyD,OAAA+d,EAAA,EAAA/d,CAAA,GAIHoC,EAAKvE,MAAM4sD,+BAEjCyH,EAAY9vD,EAAKc,MAGb,gBAANwH,GACM,YAANA,GACM,gCAANA,EAX2B,CAAAlD,EAAAE,KAAA,cAcjB,gBAANgD,GACAtI,EAAKU,SAAS,CAAE+nC,YAAahoC,EAAE2K,QAC/BmyB,EAAiBO,YAAcr9B,EAAE2K,MACjCmyB,EAAiB4J,SACb1mC,EAAE2K,MAAQ,IAAMpL,EAAKc,MAAMqvD,cACzB72B,EAAUD,GAAazrB,KAAK,SAAA+hB,GAAC,OAAIA,EAAEvkB,QAAU3K,EAAE2K,WACxCmyB,EAAiBjE,QAAUA,EAAQA,UACnC,YAANhxB,GACPi1B,EAAiBO,YAAc99B,EAAK2vD,mBAAmBlvD,EAAE2K,OACzDmyB,EAAiBjE,QAAU74B,EAAE2K,OAChB,gCAAN9C,IACPi1B,EAAiBG,4BAA8Bj9B,EAAE2K,OAGjDykD,EAAiBxI,eACbwI,EAAmB9H,GACnBxqB,EAAiBjE,SAErBt5B,EAAKvE,MAAM2sD,iCAAiCyH,IAGhD7vD,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAD,qBAtCuBzqD,EAAA2L,OAAA,SAwCpB/Q,EAAKvE,MAAMqkC,uBAAuBvC,IAxCd,UA2CrB,eAANj1B,GAA4B,eAANA,EA3CK,CAAAlD,EAAAE,KAAA,eA4CV,GAEP,eAANgD,GAAyC,QAAnB7H,EAAE+H,OAAOC,OAClB0iD,GACb0E,EAAmB5I,MACN,eAAN3+C,GAAyC,QAAnB7H,EAAE+H,OAAOC,OACzByiD,GACb2E,EAAmB9H,GAAiBxqB,EAAiBjE,UACxC,eAANhxB,GAAyC,QAAnB7H,EAAE+H,OAAOC,OACzB2iD,GACT3xB,EAAMz5B,EAAKvE,MAAMgqB,mBAAmBD,gBAAgBhI,OACpD,SAAAjkB,GAAC,OAAKA,EAAEonB,YACV3W,OACF6lD,EAAmB7H,GAAevuB,KAErB2xB,GACT3xB,EAAMz5B,EAAKvE,MAAMgqB,mBAAmBD,gBAAgBhI,OACpD,SAAAjkB,GAAC,OAAKA,EAAEonB,YACV3W,OACF6lD,EAAmB7H,GAAevuB,IAKlCo2B,EAAiB3I,cACjB2I,EAAiBxI,aAEjBrnD,EAAKU,SAAS,CACV2vD,OAAQtuD,MACH8E,SAAS,GAAI,SACb7E,OAAO,gBAGRD,MACH8E,SAAS,EAAG,SACZ7E,OAAO,cA/EWoD,EAAAE,KAAA,GAkFe0pD,GACtC,CACIC,gBAAiBjvD,EAAKvE,MAAMgqB,mBACvBD,gBACL2pC,KACIU,EAAiB3I,cACjB2I,EAAiBxI,aACrBgI,mBACIrvD,EAAKvE,MAAM4sD,8BACNT,6BA3FU,YAkFvBqI,EAlFuB7qD,EAAAkE,MA+FQC,QA/FR,CAAAnE,EAAAE,KAAA,gBAgGvBtF,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiB,2BACjBD,gBAAiB,UAnGEzC,EAAA2L,OAAA,yBAwGvBm/C,EACAD,EAA8BlqC,WAClC/lB,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAtqC,gBAAiB0qC,EACjBL,qBAGJ7vD,EAAKvE,MAAM0lC,sBAAsB+uB,GACjClwD,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKvE,MAAM2sD,iCAAiCyH,GAnHjBzqD,EAAA2L,OAAA,qBAwHrB,WAANzI,EAxH2B,CAAAlD,EAAAE,KAAA,gBAyHvBiO,EAAS9S,EAAE+H,OAAOC,MAAMgL,OAAO,EAAG,IACtC8pB,EAAiBj1B,GAAKiL,EACtBvT,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAD,qBAEJ7vD,EAAKvE,MAAMqkC,uBAAuBvC,IAC9BxS,EAAmB,GAAGxgB,OACtBvK,EAAKvE,MAAMgqB,mBAAmBD,kBAEjB1b,QAAQ,SAAAvQ,GAChBA,EAAEonB,YAAWpnB,EAAEga,OAASA,KAEjCvT,EAAKvE,MAAM0lC,sBAAsBpW,GAvIN3lB,EAAA2L,OAAA,kBA2IrB,cAANzI,IACAtI,EAAKU,SAAS,CAAEoP,UAAWrP,EAAE+H,OAAOC,QACpC80B,EAAiBj1B,GAAK7H,EAAE+H,OAAOC,MAC/BzI,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAD,qBAEJ7vD,EAAKvE,MAAMqkC,uBAAuBvC,IAGtCA,EAAiBj1B,GAAK7H,EAAE+H,OAAOC,MAC/BzI,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAD,qBAEJ7vD,EAAKvE,MAAMqkC,uBAAuBvC,GA5JH,yBAAAn4B,EAAAc,SAAAhB,EAAA1J,SA9NP,gBAAAyV,EAAAC,GAAA,OAAAb,EAAAgB,MAAA7V,KAAA2S,YAAA,GAAAnO,EA6X5BswD,gBA7X4B1yD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6XV,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAEdtF,EAAKmJ,YAFS,wBAAA9C,EAAAH,SAAAE,EAAA5K,SA7XUwE,EAkY5BuwD,kBAlY4B3yD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkYR,SAAAyQ,IAAA,IAAA+P,EAAA+qC,EAAA3vB,EAAA33B,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAqQ,EAAArQ,KAAA,EACNtF,EAAKmJ,YADC,WAAAwM,EAAArM,KAAA,CAAAqM,EAAArQ,KAAA,YAMJ,MAJAmgB,EAAuBzlB,EAAKvE,MAA5BgqB,oBAGe8X,iBAAiBU,uBAEuB,KAA3DxY,EAAmB8X,iBAAiBS,mBAP5B,CAAAroB,EAAArQ,KAAA,eASRtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,sCAErB9H,EAAKywD,oBAdG96C,EAAA5E,OAAA,UAeD,GAfC,cAkBRy/C,EAAO,IAAIzjD,KAIXyjD,EAF8D,KAA9D/qC,EAAmB8X,iBAAiBU,sBAE7B7xB,YACHqZ,EAAmB8X,iBAAiBU,uBAGjC7xB,YACHqZ,EAAmB8X,iBAAiBS,qBAGtC6C,EAAW,IAAIyjB,UACZC,OAAO,OAAQiM,GA/BZ76C,EAAArQ,KAAA,GAgCGtF,EAAKvE,MAAMmlC,WAAWC,EAAU,aAhCnC,aAgCR33B,EAhCQyM,EAAArM,MAiCLC,QAjCK,CAAAoM,EAAArQ,KAAA,SAAAqQ,EAAArQ,KAAA,wBAmCRtF,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACjB6oD,gBAAgB,IAEpB1wD,EAAKywD,oBAzCG96C,EAAA5E,OAAA,UA2CD,GA3CC,QA8ChB/Q,EAAKywD,oBA9CW,yBAAA96C,EAAAzP,SAAAwP,EAAAla,SAlYQwE,EAmb5B2wD,gBAAkB,SAACp9C,GAAsBpF,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,IAAAA,UAAA,GACrC,IAAKoF,EAMD,OALAvT,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,8BAEd,EAGX,IAAM2hD,EAASl2C,EAAOE,OAAO,EAAG,GAEhC,MAAI,UAAUvJ,KAAKqJ,IACfvT,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,kCAEd,GAkBP9H,EAAKvE,MAAM4sD,8BAA8BnB,cASnB,KAAlB3zC,EAAOvJ,QACPhK,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,wCAEZ,IAGX9H,EAAKvE,MAAM4sD,8BAA8Bb,iBACrCiC,IAAWrwB,KACXp5B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,wBAAAyC,OAA0B6uB,OAEtC,IAhfSp5B,EAsf5B4wD,4BAtf4BhzD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAsfE,SAAAgR,IAAA,OAAAwS,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,wBAAA4Q,EAAAhQ,SAAA+P,EAAAza,SAtfFwE,EAwf5BmJ,UAxf4BvL,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwfhB,SAAAuR,IAAA,IAAAmsC,EAAAplB,EAAA/X,EAAA6iC,EAAAwI,EAAA3nD,EAAAmxB,EAAA9mB,EAAAu9C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA3oC,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,UAAAq9C,EAIJ3iD,EAAKvE,MAAMgqB,mBAFX8X,EAFIolB,EAEJplB,iBACA/X,EAHIm9B,EAGJn9B,gBAEI6iC,EAAkCroD,EAAKvE,MAAvC4sD,8BAEFwI,EAAS,yBACX3nD,GAAK,GAELm/C,EAA8BhB,aAV1B,CAAA5wC,EAAAnR,KAAA,aAYAi4B,EAAgB,UAAcvzB,OAAS,GACvCuzB,EAAgB,UAAcvzB,OAAS,IAbvC,CAAAyM,EAAAnR,KAAA,eAeAtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,gEAlBnB2O,EAAA1F,OAAA,UAoBO,GApBP,UAwBJwsB,EAAiBztB,YACDu4C,EAA8BnB,aACxC,iBACA,iBACMh9C,KAAKqzB,EAAiBztB,YAE9B9P,EAAKU,SAAS,CACV2wD,eACI,kDAERnoD,GAAK,GAKTlJ,EAAKU,SAAS,CAAE2wD,eAAgB,KAIhCh3B,EAAMt4B,IAAOw7B,EAAiBlD,MAG9BguB,EAA8BnB,eAC9BmB,EAA8BhB,aA/C1B,CAAA5wC,EAAAnR,KAAA,YAiDA+0B,EAAIpqB,QAAQlO,MAAS8E,SAAS,GAAI,WAClC7G,EAAKU,SAAS,CACV4wD,SAAU,4CAEdpoD,GAAK,GAELlJ,EAAKU,SAAS,CAAE4wD,SAAU,KAKF/9C,EAExBvT,EAAKvE,MAHLgqB,mBACI8X,iBAAoBhqB,QAIxB80C,EAA8BnB,aAhE9B,CAAAzwC,EAAAnR,KAAA,YAkE8B,kBAA1BtF,EAAKvE,MAAM81D,YACVvxD,EAAK2wD,gBAAgBp9C,GAnE1B,CAAAkD,EAAAnR,KAAA,gBAAAmR,EAAA1F,OAAA,kBAAA0F,EAAAnR,KAAA,iBAyEA+0B,EAAIpqB,QAAQlO,MAAS8E,SAAS,EAAG,WACjC7G,EAAKU,SAAS,CACV4wD,SAAU,2CAEdpoD,GAAK,GAELlJ,EAAKU,SAAS,CAAE4wD,SAAU,KAO1BtxD,EAAKvE,MAHLgqB,mBACI8X,iBAAoBhqB,OApFxB,WAgGRvT,EAAKU,SAAS,CACV8wD,UAAWtoD,EACXuoD,cAAezxD,EAAKc,MAAM2wD,kBAEzBvoD,EApGG,CAAAuN,EAAAnR,KAAA,gBAAAmR,EAAA1F,OAAA,SAoGQ7H,GApGR,WAsGF4nD,EAAiB,CAAC,OAAQ,UAAW,MAAO,WAEpB,kBAA1B9wD,EAAKvE,MAAM81D,WAxGP,CAAA96C,EAAAnR,KAAA,aAyGAtF,EAAKvE,MAAM4sD,8BAA8BZ,kBAzGzC,CAAAhxC,EAAAnR,KAAA,YA0GIyrD,EAAyBvrC,EAAgBhI,OACzC,SAAAjkB,GAAC,OAAKA,EAAEonB,cAGOowC,EAAuBvzC,OACtC,SAAAjkB,GAAC,OAAOA,EAAEga,SAECvJ,OAAS,GAjHxB,CAAAyM,EAAAnR,KAAA,gBAkHItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBkoC,KArHzBv5B,EAAA1F,OAAA,uBA0H4BggD,EAAuBvzC,OAC/C,SAAAjkB,GAAC,OAAIA,EAAEga,OAAOs1B,UAAU,EAAG,KAAOzP,KAEZpvB,OAAS,GA7HnC,CAAAyM,EAAAnR,KAAA,gBA8HItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,qCAjIzB2O,EAAA1F,OAAA,qBAsIIigD,EAAY,IAAIplC,IACpBmlC,EAAuBjnD,QAAQ,SAAAvQ,GAAC,OAAIy3D,EAAU/kC,IAAI1yB,EAAEga,UAChDy9C,EAAUz0C,OAASw0C,EAAuB/mD,OAxI9C,CAAAyM,EAAAnR,KAAA,gBAyIItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,gCA5IzB2O,EAAA1F,OAAA,sBAmJA/Q,EAAKvE,MAAM4sD,8BACNT,2BApJL,CAAAnxC,EAAAnR,KAAA,YAsJIyrD,EAAyBvrC,EAAgBhI,OACzC,SAAAjkB,GAAC,OAAKA,EAAEonB,cAGOowC,EAAuBvzC,OACtC,SAAAjkB,GAAC,OAAOA,EAAEujC,0BAEC9yB,OAAS,GA7JxB,CAAAyM,EAAAnR,KAAA,gBA8JItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBkoC,KAjKzBv5B,EAAA1F,OAAA,uBAsK4BggD,EAAuBvzC,OAC/C,SAAAjkB,GAAC,OACGA,EAAEujC,wBAAwB+L,UAAU,EAAG,KACvCzP,KAEkBpvB,OAAS,GA3KnC,CAAAyM,EAAAnR,KAAA,gBA4KItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,qCA/KzB2O,EAAA1F,OAAA,qBAoLIigD,EAAY,IAAIplC,IACpBmlC,EAAuBjnD,QAAQ,SAAAvQ,GAAC,OAC5By3D,EAAU/kC,IAAI1yB,EAAEujC,2BAEhBk0B,EAAUz0C,OAASw0C,EAAuB/mD,OAxL9C,CAAAyM,EAAAnR,KAAA,gBAyLItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,gCA5LzB2O,EAAA1F,OAAA,sBAkMA/Q,EAAKvE,MAAM4sD,8BAA8BX,qBAlMzC,CAAAjxC,EAAAnR,KAAA,YAmMI6rD,EAA6B3rC,EAAgBhI,OAC7C,SAAAjkB,GAAC,OAAKA,EAAEonB,cAGOwwC,EAA2B3zC,OAC1C,SAAAjkB,GAAC,MAA+B,KAA3BA,EAAEsiC,uBAEI7xB,OAAS,GA1MxB,CAAAyM,EAAAnR,KAAA,gBA2MItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBmoC,KA9MzBx5B,EAAA1F,OAAA,uBAmNsBogD,EAA2B3zC,OAC7C,SAAAjkB,GAAC,MAA+B,KAA3BA,EAAEuiC,sBAA+BviC,EAAEqiC,YAAc,IAExC5xB,OAAS,GAtN3B,CAAAyM,EAAAnR,KAAA,gBAuNItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBooC,KA1NzBz5B,EAAA1F,OAAA,qBA+NIqgD,EAAgB,IAAIxlC,IACxBulC,EAA2BrnD,QAAQ,SAAAvQ,GAAC,OAChC63D,EAAcnlC,IAAI1yB,EAAEsiC,wBAEpBu1B,EAAc70C,OAAS40C,EAA2BnnD,OAnOtD,CAAAyM,EAAAnR,KAAA,gBAoOItF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,yCAvOzB2O,EAAA1F,OAAA,qBAqQR+/C,EAAehnD,QAAQ,SAAAxB,GACnB,IAAMopD,EAAKppD,EAAI,QACa,KAAxBi1B,EAAiBj1B,IAAqC,OAAxBi1B,EAAiBj1B,IAC/CY,GAAK,EACLlJ,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAKb,KAEtB7wD,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAK,OAKK,KAA9Bn0B,EAAgB,OACiB,OAA9BA,EAAgB,QACnB8qB,EAA8BhB,eAC3B9pB,EAAiBY,mBAUrBn+B,EAAKU,SAAS,CAAEixD,gBAAiB,GAAIC,YAAY,KARjD1oD,GAAK,EACLlJ,EAAKU,SAAS,CAAEixD,gBAAiBd,EAAQe,YAAY,IACrD5xD,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,+BAOM,KAA3By1B,EAAiBM,MAjSb,CAAApnB,EAAAnR,KAAA,YAkSC,8BAA8B4E,KAAKqzB,EAAiBM,OAlSrD,CAAApnB,EAAAnR,KAAA,gBAmSAtF,EAAKU,SAAS,CACVixD,gBAAiB,mBACjBC,YAAY,IArShBn7C,EAAA1F,OAAA,UAuSO,GAvSP,eAAA0F,EAAAnR,KAAA,GAySiBtF,EAAK6xD,YAAYt0B,EAAiBM,OAzSnD,WAAApnB,EAAAnN,KAAA,CAAAmN,EAAAnR,KAAA,gBAAAmR,EAAA1F,OAAA,UA4SW,GA5SX,QA8SI/Q,EAAKU,SAAS,CAAEixD,gBAAiB,GAAIC,YAAY,IA9SrD,WAmTgB,CAAC,cAAe,aAExB9nD,QAAQ,SAAAxB,GACpB,IAAMopD,EAAKppD,EAAI,QAGc,KAAxBi1B,EAAiBj1B,IAAqC,OAAxBi1B,EAAiBj1B,KAChD+/C,EAA8BhB,aAK9BrnD,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAK,MAHtBxoD,GAAK,EACLlJ,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAKb,OAM9B7wD,EAAKU,SAAS,CACV8wD,UAAWtoD,EACXuoD,cAAezxD,EAAKc,MAAM2wD,kBAEzBvoD,EAvUG,CAAAuN,EAAAnR,KAAA,gBAAAmR,EAAA1F,OAAA,UAuUQ,GAvUR,eAAA0F,EAAA1F,OAAA,SAwUD7H,GAxUC,yBAAAuN,EAAAvQ,SAAAsQ,EAAAhb,SAxfgBwE,EAm0B5B8xD,eAn0B4Bl0D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAm0BX,SAAA+R,IAAA,IAAAzD,EAAArK,EAAA6hB,EAAA,OAAAtC,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,UACLiO,EAAWvT,EAAKc,MAAhByS,OADK,CAAA2D,EAAA5R,KAAA,eAGTtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,4BANVoP,EAAAnG,OAAA,oBAWR/Q,EAAK2wD,gBAAgBp9C,GAXb,CAAA2D,EAAA5R,KAAA,eAAA4R,EAAAnG,OAAA,wBAAAmG,EAAA5R,KAAA,EAsBItF,EAAKvE,MAAMs2D,aAAa,SAAU/xD,EAAKc,MAAMyS,QAtBjD,QAsBPrK,EAtBOgO,EAAA5N,MAuBNC,SACCwhB,EAAmB/qB,EAAKvE,MAAMgqB,mBAAmBD,gBAAgBvoB,IACjE,SAAA6oC,GAEI,OADAA,EAAEvyB,OAASvT,EAAKc,MAAMyS,OACfuyB,IAGf9lC,EAAKvE,MAAM0lC,sBAAsBpW,GACjC/qB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,cAGrB9H,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBACmB,KAAfoB,EAAGrJ,QAAiBqJ,EAAGrJ,QAAU,qBAzChC,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAn0BWwE,EAi3B5BgyD,oBAAsB,SAAAnyD,GAClBG,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBjI,KAr3BGG,EAy3B5BiyD,cAz3B4Br0D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAy3BZ,SAAAqS,IAAA,IAAAumB,EAAA30B,EAAAgpD,EAAA,OAAAzpC,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,UACJu4B,EAAU79B,EAAKc,MAAf+8B,MADIjgC,OAAAusB,GAAA,EAAAvsB,CAGLoC,EAAKvE,MAAMgqB,mBAAmBD,iBAEhCqY,EALO,CAAArmB,EAAAlS,KAAA,eAMRtF,EAAKgyD,oBAAoB,8BANjBx6C,EAAAzG,OAAA,wBAAAyG,EAAAlS,KAAA,EASKtF,EAAKvE,MAAMs2D,aAAa,QAASl0B,GATtC,QASN30B,EATMsO,EAAAlO,MAULC,UAiCC2oD,EAAehpD,EAAGrJ,QAChBqJ,EAAGrJ,QACH,4BACNG,EAAKgyD,oBAAoBE,IA9CjB,wBAAA16C,EAAAtR,SAAAoR,EAAA9b,SAz3BYwE,EA26B5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA56BN5H,EA+6B5BmyD,UAAY,WACR,IAAI50B,EAAgB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GACboC,EAAKvE,MAAMgqB,mBAAmB8X,kBAErCA,EAAiBY,oBAAsBn+B,EAAKc,MAAMsxD,QAClDpyD,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKU,SAAS,CAAE0xD,SAAUpyD,EAAKc,MAAMsxD,SAAW,WAC5C,IAAMtC,EAAY9vD,EAAKc,MACvBd,EAAKvE,MAAM20D,YAAY,CACnB7yB,mBACAuyB,YACAD,iBAAkB,UA17BF7vD,EA+7B5BywD,kBAAoB,WAEhBzwD,EAAKvE,MAAMg1D,qBAj8BazwD,EAo8B5BqyD,iBAAmB,SAAA5xD,GACf,IACI6xD,EADS7xD,EAAE+H,OAAOC,MACOgL,OAAO,EAAG,IACvCzT,EAAKU,SAAS,CAAE6S,OAAQ++C,KAv8BAtyD,EA08B5BuyD,oBAAsB,SAAA9xD,GAClBT,EAAKU,SAAS,CAAEm9B,MAAOp9B,EAAE+H,OAAOC,SA38BRzI,EA88B5B6xD,YA98B4B,eAAArY,EAAA57C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA88Bd,SAAA0zC,EAAMxsC,GAAN,IAAAqmD,EAAAvpD,EAAAwpD,EAAA,OAAAhqC,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,UACVtF,EAAKU,SAAS,CACVgyD,cAAc,EACdf,gBAAiB,GACjBC,YAAY,EACZe,YAAY,IAEX3yD,EAAKvE,MAAM4sD,8BAA8BhB,aAPpC,CAAAxO,EAAAvzC,KAAA,eAAAuzC,EAAA9nC,OAAA,UAOyD,GAPzD,UASA,KAAN5E,EATM,CAAA0sC,EAAAvzC,KAAA,eAAAuzC,EAAA9nC,OAAA,UASW,GATX,UAUL,8BAA8B7G,KAAKiC,GAV9B,CAAA0sC,EAAAvzC,KAAA,eAWNtF,EAAKU,SAAS,CACVgyD,cAAc,EACdf,gBAAiB,wBACjBC,YAAY,IAdV/Y,EAAA9nC,OAAA,UAgBC,GAhBD,cAkBNyhD,GAAe,EAEbvpD,EAAO,CAAE40B,MAAO1xB,GAQhBsmD,EAAkBriD,YACpB,MACA,oCAF2BxS,OAAA+d,EAAA,EAAA/d,CAAA,CAGzBiX,OAAQ,CAAEgpB,MAAO50B,EAAK40B,QAAY9xB,gBA/B9B8sC,EAAAvzC,KAAA,GAkCJmE,QAAQmpD,IAAI,CAEdH,IACDI,KAAK,SAAAC,GACJ,IAAIC,EAA0BD,EAAU,GAIxC,OAHgCA,EAAU,GAGZvpD,SAC1BvJ,EAAKU,SAAS,CACVgyD,cAAc,EACdf,gBAAiB,oBACjBC,YAAY,SAEhBY,GAAe,IAkBdO,EAAwBxpD,QAUrBwpD,EAAwB9pD,MACxB8pD,EAAwB9pD,KAAKoL,QAE7BrU,EAAKU,SAAS,CACVgyD,cAAc,EACdf,gBAAiB,sBACjBC,YAAY,EACZe,YAAY,SAEhBH,GAAe,KAIvBxyD,EAAKU,SAAS,CACVgyD,cAAc,EACdf,gBAAiB,cACjBC,YAAY,SAEhBY,GAAe,KA3BXxyD,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBirD,EAAwBlzD,eAE7C2yD,GAAe,MAxEb,eAAA3Z,EAAA9nC,OAAA,SAiGHyhD,GAjGG,yBAAA3Z,EAAA3yC,SAAAyyC,EAAAn9C,SA98Bc,gBAAA2V,GAAA,OAAAqoC,EAAAnoC,MAAA7V,KAAA2S,YAAA,GAAAnO,EAkjC5BgzD,iBAljC4B,eAAA9pC,EAAAtrB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkjCT,SAAAu9B,EAAM3E,GAAN,IAAA50B,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAAs9B,GAAA,cAAAA,EAAAp9B,KAAAo9B,EAAAn9B,MAAA,cACT2D,EADSrL,OAAA+d,EAAA,EAAA/d,CAAA,CACAiX,OAAQ,CAAEgpB,UAAY9xB,eADtB02B,EAAAn9B,KAAA,EAEF8K,YAAQ,MAAO,oCAAqCnH,GAFlD,cAAAw5B,EAAA1xB,OAAA,SAAA0xB,EAAAn5B,MAAA,wBAAAm5B,EAAAv8B,SAAAs8B,EAAAhnC,SAljCS,gBAAA4V,GAAA,OAAA8X,EAAA7X,MAAA7V,KAAA2S,YAAA,GAAAnO,EAujC5BizD,mBAAqB,SAAAxyD,GACjBT,EAAKU,SAAS,CAAEwyD,WAAYzyD,EAAE+H,OAAOC,SAxjCbzI,EA2jC5BmzD,sBAAwB,SAAA1yD,GACpBT,EAAKU,SAAS,CAAE0yD,cAAe1/C,YAAgBjT,EAAE+H,OAAOC,UA5jChCzI,EA+jC5BqzD,oBAAsB,SAAA5yD,GAAK,IACf2yD,EAAkBpzD,EAAKc,MAAvBsyD,cACRpzD,EAAKU,SAAS,CAAE4yD,YAAa5/C,YAAgBjT,EAAE+H,OAAOC,SAClD2qD,GACApzD,EAAKU,SAAS,CAAE6yD,UAAWH,EAAgB,IAAM3yD,EAAE+H,OAAOC,SAnkCtCzI,EAukC5BwzD,SAAW,WAAM,IAAA3qD,EAWT7I,EAAKc,MATLsyD,EAFSvqD,EAETuqD,cACAE,EAHSzqD,EAGTyqD,YACAJ,EAJSrqD,EAITqqD,WACAO,EALS5qD,EAKT4qD,iBACAC,EANS7qD,EAMT6qD,eACAC,EAPS9qD,EAOT8qD,iBACAC,EARS/qD,EAQT+qD,eACAC,EATShrD,EASTgrD,cACAC,EAVSjrD,EAUTirD,cAIsBtuC,EACtBxlB,EAAKvE,MADLgqB,mBAAsBD,gBAElB6iC,EAAkCroD,EAAKvE,MAAvC4sD,8BAEJ0L,EAAoB/oC,GAAUxF,GAClC,GACI6iC,EAA8BZ,mBAC9BY,EAA8BT,2BAChC,CACE,IAAIoM,EAAuBV,GAErBF,EAEN,GACsB,KAAlBA,GACA,WAAWlpD,KAAKkpD,IAChB,WAAWlpD,KAAK8pD,GAOhB,YALAh0D,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,oCAIzB,IAEImsD,EAAkB,IAAI1K,GAAgB,CACtCC,YAHY4J,EAAgB,IAAMY,EAIlCvK,OAAQyJ,EACRxJ,WAAYxwB,KAEhB+6B,EAAgBtK,cAEhB,IADA,IAAIuK,EAAQD,EAAgBhK,gBACnB9sD,EAAI,EAAGA,EAAI42D,EAAkB/pD,OAAQ7M,IACtCkrD,EAA8BZ,kBACzBsM,EAAkB52D,GAAGwjB,YACtBozC,EAAkB52D,GAAGoW,OAAS2gD,EAAMC,SAExC9L,EAA8BT,6BAEzBmM,EAAkB52D,GAAGwjB,YACtBozC,EACI52D,GACF2/B,wBAA0Bo3B,EAAMC,UAKlD,GACI9L,EAA8BX,qBAChC,CACE,GACyB,KAArB+L,GACA,WAAWvpD,KAAKupD,IACG,KAAnBC,GACA,WAAWxpD,KAAKwpD,GAOhB,YALA1zD,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,oCAIzB,IAEImsD,EAAkB,IAAI1K,GAAgB,CACtCC,YAHeiK,EAAmB,IAAMC,EAIxCjK,OAAQoK,IAEZI,EAAgBtK,cAEhB,IADA,IAAIuK,EAAQD,EAAgBhK,gBACnB9sD,EAAI,EAAGA,EAAI42D,EAAkB/pD,QACb,IAAjBkqD,EAAMlqD,OADgC7M,IAErC42D,EAAkB52D,GAAGwjB,YACtBozC,EAAkB52D,GAAG0+B,qBAAuBq4B,EAAMC,SAG1D,IAAKR,EACD,IAAK,IAAIx2D,EAAI,EAAGA,EAAI42D,EAAkB/pD,OAAQ7M,IAC1C,GAAyC,IAArC42D,EAAkB52D,GAAGy+B,YAMrB,YALA57B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,8BAOjC,GAAuB,KAAnB8rD,EAAuB,CACvB,GACwB,KAAnBA,GACG,WAAW1pD,KAAK0pD,IACE,KAArBD,GACG,WAAWzpD,KAAKypD,GAOpB,YALA3zD,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,oCAIzB,IACIssD,EAAmB,IAAI7K,GAAgB,CACvCC,YAFemK,EAAmB,IAAMC,EAGxCnK,OAAQqK,IAEZM,EAAiBzK,cAEjB,IADA,IAAI0K,EAASD,EAAiBnK,gBACrB9sD,EAAI,EAAGA,EAAI42D,EAAkB/pD,QACZ,IAAlBqqD,EAAOrqD,OAD+B7M,IAGrC42D,EAAkB52D,GAAGwjB,WACe,IAArCozC,EAAkB52D,GAAGy+B,cAErBm4B,EACI52D,GACF2+B,qBAAuBu4B,EAAOF,UAIhDn0D,EAAKvE,MAAM20D,YAAY,CACnB7yB,iBAAkBv9B,EAAKvE,MAAMgqB,mBAAmB8X,iBAChD/X,gBAAiBuuC,EACjBjE,UAAW9vD,EAAKc,MAChB+uD,iBAAkB,OAGtB7vD,EAAKvE,MAAM0lC,sBAAsB4yB,IAztCT/zD,EA4tC5Bs0D,+BAAiC,SAAA7uC,GAC7B,IAAI8uC,EAAuB32D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ6nB,GAC/B+uC,EAAqB52D,OAAA+d,EAAA,EAAA/d,CAAA,GAClB22D,EAAwBh3B,kBAE3Bk3B,EAAuB,GAAGlqD,OAC1BgqD,EAAwB/uC,iBAe5B,OAZAgvC,EAAsBjhD,OAAS,GAE/BkhD,EAAqB3qD,QAAQ,SAAAmhB,GACzBA,EAAU1X,OAAS,GACnB0X,EAAU6R,wBAA0B,GACpC7R,EAAU4Q,qBAAuB,GACjC5Q,EAAU6Q,qBAAuB,GACjC7Q,EAAU8Q,uBAAwB,IAGtCw4B,EAAwBh3B,iBAAmBi3B,EAC3CD,EAAwB/uC,gBAAkBivC,EACnCF,GAjvCiBv0D,EAovC5B00D,gCAAkC,SAAAC,GAC9B,IACI9E,EAAmBhI,IADN8M,GAEjB30D,EAAKvE,MAAM2sD,iCAAiCyH,IAvvCpB7vD,EA0vC5B40D,sCAAwC,SAAAC,GACpC,IACIhF,EAAmB/H,IADN+M,GAEjB70D,EAAKvE,MAAM2sD,iCAAiCyH,IA7vCpB7vD,EAgwC5B80D,mBAAqB,SAAAr0D,GACjBT,EAAKU,SAAS,CAAEq0D,WAAYt0D,EAAE+H,OAAOC,SAjwCbzI,EAowC5Bg1D,uBAAyB,SAACv0D,EAAGw0D,GACzB,IAGIpF,EAHA0E,EAA0Bv0D,EAAKs0D,+BAC/Bt0D,EAAKvE,MAAMgqB,oBAIf,OAAQhlB,EAAE+H,OAAOC,OACb,IAAK,aACDonD,EAAmB3H,KACnB,MACJ,IAAK,iBACD2H,EAAmB1H,KACnB,MACJ,QACIt2B,QAAQC,IAAI,qBAEU,eAA1B9xB,EAAKvE,MAAM81D,YAEXvxD,EAAKvE,MAAM20D,YAAY,CACnB7yB,iBAAkBg3B,EAAwBh3B,iBAC1C/X,gBAAiB+uC,EAAwB/uC,gBACzCsqC,UAAW9vD,EAAKc,MAChB+uD,qBAGR7vD,EAAKvE,MAAM2sD,iCAAiCyH,GAC5C7vD,EAAKvE,MAAMmmC,yBAAyB2yB,GACpCv0D,EAAKU,SAAS,CAAEw0D,eAAgBz0D,EAAE+H,OAAOC,SA/xCjBzI,EAkyC5Bm1D,sBAAwB,SAAA10D,GACpBT,EAAKU,SAAS,CAAEmzD,cAAepzD,EAAE+H,OAAOC,SAnyChBzI,EAsyC5Bo1D,sBAAwB,SAAA30D,GACpBT,EAAKU,SAAS,CAAEozD,cAAerzD,EAAE+H,OAAOC,SAvyChBzI,EA0yC5Bq1D,yBAA2B,SAAA50D,GACvB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAE+yD,iBAAkB6B,KA5yCVt1D,EA+yC5Bu1D,uBAAyB,SAAA90D,GACrB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEgzD,eAAgB4B,KAjzCRt1D,EAozC5Bw1D,yBAA2B,SAAA/0D,GACvB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEizD,iBAAkB2B,KAtzCVt1D,EAyzC5By1D,uBAAyB,SAAAh1D,GACrB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEkzD,eAAgB0B,KA3zCRt1D,EA8zC5B01D,gBAAkB,SAAAj1D,GACdA,EAAE40B,iBACF50B,EAAEk1D,YAAYC,2BACd51D,EAAKvE,MAAMo6D,sBA/zCX71D,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBiuD,gBAAiB,GACjBC,gBAAiB,GACjBC,UAAW,GACXC,aAAc,GACd3E,SAAU,GACV4E,iBAAkB,GAClBC,kBAAmB,GACnBrmD,UAAW,GACXuhD,eAAgB,GAChB+E,aAAc,GACdC,aAAc,GACd1E,gBAAiB,GACjBC,YAAY,EACZ0E,YAAa,GACbnG,aAAc,GACd1nB,YAAa,GACb2pB,SAAS,EACT7+C,OAAQ,GACRsqB,MAAO,GACPwyB,OAAQ,GACRmB,WAAW,EACXC,cAAe,EACf7D,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,EACdsE,cAAc,EACdQ,WAAY,gBACZI,YAAa,GACbF,cAAe,GACfS,cAAe,GACfJ,iBAAkB,GAClBC,eAAgB,GAChBI,cAAe,GACfF,eAAgB,GAChBD,iBAAkB,GAClBhB,YAAY,EACZ3a,cAAe,GACfkd,eAAgB,aAChBH,WAAY,6BA5CQ/0D,mFAgDR,IAAAu2D,EAGZ/6D,KAAKC,MADLgqB,mBAAsB8X,EAFVg5B,EAEUh5B,iBAAkB/X,EAF5B+wC,EAE4B/wC,gBAI5C,GAA8B,kBAA1BhqB,KAAKC,MAAM81D,WAAgC,CAC3C,IAAI93B,EAAMjU,EAAgBhI,OAAO,SAAAjkB,GAAC,OAAKA,EAAEonB,YAAW3W,OAChD6lD,EAAmB7H,GAAevuB,GACtCj+B,KAAKC,MAAM2sD,iCAAiCyH,GAGhD,GAA6B,KAAzBtyB,EAAiBlD,IAAY,CAC7B,IAAMg2B,EAAStuD,MACV8E,SAAS,EAAG,SACZ7E,OAAO,cACZxG,KAAKkF,SAAS,CAAE2vD,WAGpB,GACiC,KAA7B9yB,EAAiBjE,cACYx8B,IAA7BygC,EAAiBjE,QACnB,KAE4BiE,EACtB/hC,KAAKC,MADLgqB,mBAAsB8X,iBAE1BA,EAAiBO,YAActiC,KAAKm0D,mBAChCpyB,EAAiBjE,SAErB99B,KAAKC,MAAMqkC,uBAAuBvC,GAGtCA,EAAiBU,sBAAwB,GACzCV,EAAiBS,mBAAqB,GACtCxiC,KAAKC,MAAMqkC,uBAAuBvC,GAClC/hC,KAAKC,MAAM2sD,iCAAiCF,yFAGvBj7B,EAAWC,yFAE5BD,EAAUupC,4BACVh7D,KAAKC,MAAM+6D,2BAEPh7D,KAAKC,MAAM+6D,4BACP3G,EAAmB5I,KACvBzrD,KAAKC,MAAM2sD,iCAAiCyH,IAKhD5iC,EAAUxH,mBAAmBD,gBAAgBxb,SAC7CxO,KAAKC,MAAMgqB,mBAAmBD,gBAAgBxb,SAE1CyvB,EAAMj+B,KAAKC,MAAMgqB,mBAAmBD,gBAAgBhI,OACpD,SAAAjkB,GAAC,OAAKA,EAAEonB,YACV3W,OACE6lD,EAAmB7H,GAAevuB,GACtCj+B,KAAKC,MAAM2sD,iCAAiCyH,IAG5C5iC,EAAU6iC,YAAct0D,KAAKC,MAAMq0D,YAC9B2G,mBAAQj7D,KAAKC,MAAMq0D,UAAWt0D,KAAKsF,QACpCtF,KAAKkF,SAAL9C,OAAA+d,EAAA,EAAA/d,CAAA,GAAmBpC,KAAKC,MAAMq0D,aAGlC7iC,EAAUypC,kBAAoBl7D,KAAKC,MAAMi7D,kBACN,IAA/Bl7D,KAAKC,MAAMi7D,iBAA0Bl7D,KAAK+0D,oBAE9CtjC,EAAU0pC,gBAAkBn7D,KAAKC,MAAMk7D,gBACN,IAA7Bn7D,KAAKC,MAAMk7D,eAAwBn7D,KAAK80D,kBAG5CpjC,EAAUukC,gBAAkBj2D,KAAKsF,MAAM2wD,eACnCj2D,KAAKC,MAAMm7D,mBACPp7D,KAAKsF,MAAM0wD,WACXh2D,KAAKC,MAAMm7D,iBAAXh5D,OAAA+d,EAAA,EAAA/d,CAAA,GAAiCpC,KAAKsF,QAE1CtF,KAAKC,MAAMo7D,gBAAXj5D,OAAA+d,EAAA,EAAA/d,CAAA,GAAgCpC,KAAKsF,SAKzCmsB,EAAUxH,mBAAmB8X,iBAAiBO,cAC9CtiC,KAAKC,MAAMgqB,mBAAmB8X,iBAAiBO,aAE/CtiC,KAAKkF,SAAS,CACV+nC,YAAajtC,KAAKC,MAAMgqB,mBAAmB8X,iBACtCO,cAKT7Q,EAAUxH,mBAAmB8X,iBAAiBjE,UAC9C99B,KAAKC,MAAMgqB,mBAAmB8X,iBAAiBjE,SAE/C99B,KAAKm0D,mBACDn0D,KAAKC,MAAMgqB,mBAAmB8X,iBAAiBjE,UAKE,IAArDrM,EAAUxH,mBAAmBmZ,sBACyB,IAAtDpjC,KAAKC,MAAMgqB,mBAAmBmZ,wCAK1B,KADApjC,KAAKC,MAAMgqB,mBAAmB8X,iBAAiBI,+CAG9BniC,KAAKC,MAAMq7D,qBAAqB,CAC7CtH,KAAMh0D,KAAKC,MAAMgqB,mBACjBsX,wBAAyBvhC,KAAKC,MAAMirB,sBAC/Bjf,GACL22B,kBAC8B,8BAA1B5iC,KAAKsF,MAAMi0D,WACLv5D,KAAKC,MAAM+sD,mBAAmBpqB,kBAC9B5iC,KAAKC,MAAM+sD,mBACND,qBACflqB,iBAAkB7iC,KAAKC,MAAM+sD,mBACxBnqB,iBACLC,eAAgB9iC,KAAKC,MAAM+sD,mBACtBlqB,eACLC,oBAAqB/iC,KAAKC,MAAM+sD,mBAC3BjqB,oBACLf,WAAYhiC,KAAKC,MAAM4sD,8BAClBhB,aACL5pB,WAAYjiC,KAAKC,MAAM4sD,8BAClBnB,aACL6P,cACIv7D,KAAKC,MAAM4sD,8BACNV,kBACLnsD,KAAKC,MAAM4sD,8BAA8BnB,aAC7C8P,wBACIx7D,KAAKC,MAAM4sD,8BACNT,2BACTppB,yBAA0BhjC,KAAKC,MAAMgqB,mBAChC+Y,oCA3BHt1B,UA6BCK,SAEH/N,KAAKkF,SAAS,CACVkH,cAAc,EACdE,gBAAiB,iBACjBD,gBAAiB,UACjB6oD,gBAAgB,IAGpBhnD,WACI,kBACIxI,EAAKzF,MAAMkO,QAAQC,KACf,kCAER,MAGJpO,KAAKkF,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACjB6oD,gBAAgB,2IAqnC3B,IAAAv4B,EAAA38B,KAAAD,EAKDC,KAAKC,MAHLC,EAFCH,EAEDG,QACA8sD,EAHCjtD,EAGDitD,mBACAH,EAJC9sD,EAID8sD,8BAJC4O,EASDz7D,KAAKC,MAAMgqB,mBAFX8X,EAPC05B,EAOD15B,iBACA/X,EARCyxC,EAQDzxC,gBAEImtC,EAAen3D,KAAKsF,MAApB6xD,WAVHjoD,EAgBDlP,KAAKsF,MAHLoyD,EAbCxoD,EAaDwoD,WACAE,EAdC1oD,EAcD0oD,cACAE,EAfC5oD,EAeD4oD,YAGJ,OACIv3C,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACk7D,GAAD,MACAn7C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACrBmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,yBAGA2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa3Q,MAAsC,KAA/B7P,KAAKsF,MAAMg1D,iBAC3B/5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOyD,YACHm8C,EAA8BnB,cAElC37C,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,aACAnvD,IAGRxE,UAAWP,EAAQy7D,YAEnBp7C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,MACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YACvByI,MAAO,QAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,KACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YACvByI,MAAO,QAIf2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKxgB,KAAKsF,MAAMg1D,oBAIwB,IAA/CzN,EAA8BnB,cAC3BnrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iCAIJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnB7tB,MAAOjN,KAAKsF,MAAMyS,OAClBnI,MAAO,oBACPG,SAAU/P,KAAK62D,oBAGvBt2C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKs2D,gBAHlB,YASR/1C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnBnrB,KAAM,QACN1C,MAAOjN,KAAKsF,MAAM+8B,MAClBzyB,MAAO,eACPG,SAAU/P,KAAK+2D,uBAGvBx2C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKy2D,eAHlB,cAanB5J,EAA8BjB,gBAC3BrrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,0BAGA2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOyD,YACHm8C,EAA8BhB,cAElC97C,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,aACAnvD,IAGRxE,UAAWP,EAAQy7D,YAEnBp7C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,MACP2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACP4Y,UAAU,IAGlBnQ,MAAO,QAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,KACP2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACP4Y,SACI8sC,EAA8BnB,eAI1C97C,MAAO,UAO1Boa,EAAgBxb,OAAS,GACtB+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,QAKZD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,qBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnB7tB,MAAO80B,EAAiB7P,KACxBriB,MAAgC,KAAzB7P,KAAKsF,MAAMk1D,UAClB1qD,WAAY9P,KAAKsF,MAAMk1D,UACvBzqD,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,OACAnvD,IAGR8a,SACI8sC,EAA8BnB,iBAM9CnrC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,sBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnB7tB,MAAO80B,EAAiB5J,QACxBtoB,MAAmC,KAA5B7P,KAAKsF,MAAMm1D,aAClB3qD,WAAY9P,KAAKsF,MAAMm1D,aACvB1qD,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,UACAnvD,IAGR8a,SACI8sC,EAA8BnB,kBAOlDnrC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,yBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACo7D,GAAD,CACI3uD,MAAO8rB,GACHgJ,EAAiBjE,SAErB/tB,SAAU,SAAAY,GAAC,OACPgsB,EAAKy3B,iCACD,UACAzjD,IAGR4rB,QAASkB,GACT5tB,MAAmC,KAA5B7P,KAAKsF,MAAMu1D,aAClB/qD,WAAY9P,KAAKsF,MAAMu1D,aACvB96C,SACI8sC,EAA8BnB,iBAM9CnrC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,kBAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnBnrB,KAAM,OACN1C,MAAO1G,IACHw7B,EAAiBlD,KACnBr4B,OAAO,cACTqJ,MAA+B,KAAxB7P,KAAKsF,MAAMwwD,SAClBhmD,WAAY9P,KAAKsF,MAAMwwD,SACvBrmB,WAAY,CACR2d,WAAY,CACRlnC,IAAKlmB,KAAKsF,MAAMuvD,SAGxB9kD,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,MACAnvD,IAGR8a,SACI8sC,EAA8BnB,kBAOlDnrC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,iBAEMi9C,EAA8BhB,cAC5BgB,EAA8BnB,cAC9B3pB,EAAiBY,qBACjBpiB,EAAAhgB,EAAAC,cAAA,kBAGR+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ8+C,QACpBz+B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UAAWP,EAAQ46B,UACnBnrB,KAAM,QACN1C,MAAO80B,EAAiBM,MACxBxyB,MACI7P,KAAKsF,MAAM8wD,aACVvJ,EAA8BnB,aAEnC57C,WACI9P,KAAKsF,MAAM6wD,gBAEf36B,OAAQ,SAAAv2B,GAAC,OACL03B,EAAK05B,YAAYpxD,EAAE+H,OAAOC,QAE9B8C,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,QACAnvD,IAGR8a,SACI8sC,EAA8BnB,eAQrCyL,GAEO,kBADJn3D,KAAKC,MAAM81D,YAEX/1D,KAAKC,MACA4sD,8BACAhB,cACDtrC,EAAAhgB,EAAAC,cAAA,KACIq7D,KAAK,IACLz0D,QAAS,SAAAnC,GAAC,OACN03B,EAAKu9B,gBAAgBj1D,KAGzBsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gDASxBD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAEKyqC,EAA8BhB,cAC3BtrC,EAAAhgB,EAAAC,cAAA,kBAGR+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMjf,MAAO,CAAEu6D,YAAa,GAAKl6D,MAAI,EAACwgB,GAAI,GACtC7B,EAAAhgB,EAAAC,cAACo7D,GAAD,CACI3uD,MAAO8rB,GACH/4B,KAAKsF,MAAM2nC,aAEf1Q,QAASsB,GACT9tB,SAAU,SAAAY,GAAC,OACPgsB,EAAKy3B,iCACD,cACAzjD,IAGRd,MAE8B,KAD1B7P,KAAKsF,MACAo1D,iBAET5qD,WACI9P,KAAKsF,MAAMo1D,iBAEf36C,SACI8sC,EAA8BnB,iBAM9CnrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMjf,MAAO,CAAEu6D,YAAa,GAAKl6D,MAAI,EAACwgB,GAAI,GACtC7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACToP,WAAS,EACT/C,MACI80B,EAAiBQ,SAErBxyB,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,WACAnvD,IAGR8a,SACI8sC,EAA8BnB,iBAM9CnrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAEKyqC,EAA8BhB,cAC3BtrC,EAAAhgB,EAAAC,cAAA,kBAGR+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMjf,MAAO,CAAEu6D,YAAa,GAAKl6D,MAAI,EAACwgB,GAAI,GACtC7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACToP,WAAS,EACT/C,MACI80B,EAAiBztB,UAErBzE,MAE4B,KADxB7P,KAAKsF,MACAuwD,eAET/lD,WACI9P,KAAKsF,MAAMuwD,eAEf9lD,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,YACAnvD,IAGR8a,SACI8sC,EAA8BnB,oBAS/B,kBAA1B1rD,KAAKC,MAAM81D,YACRx1C,EAAAhgB,EAAAC,cAACmpD,EAAA,SAAD,KACMkD,EAA8BnB,cAC5BnrC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OACpB2Q,EAAAhgB,EAAAC,cAAA,sBAEMqsD,EAA8BnB,cAC5BnrC,EAAAhgB,EAAAC,cAAA,mBAKZ+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,WACTH,UACIP,EAAQ46B,UAEZ/a,UACK8sC,EAA8Bf,iBAC9Be,EAA8Bb,gBAEnC/+C,MACI80B,EAAiBhqB,OAErBlI,MAEyB,KADrB7P,KAAKsF,MACAw1D,YAEThrD,WACI9P,KAAKsF,MAAMw1D,YAEf/qD,SAAU,SAAA9K,GAAC,OACP03B,EAAKy3B,iCACD,SACAnvD,QAMpBsb,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,WAIhCp9B,EAAAhgB,EAAAC,cAACkpD,GAAD,CAAS7uB,OAAQ,KAEhBgyB,EAA8Bd,OAC3BxrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,wBAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MACIjN,KAAKsF,MAAMo0D,eAEf3pD,SACI/P,KAAKw5D,wBAGTj5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,aACP2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YAEjByI,MAAM,eAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,SACP2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,UACN4Y,UAAU,IAGlBnQ,MAAM,WAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,iBACP2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YAEjByI,MAAM,wBASP,kBAA1B5P,KAAKC,MAAM81D,YACuB,mBAA9B/1D,KAAKsF,MAAMo0D,gBACRn5C,EAAAhgB,EAAAC,cAACmpD,EAAA,SAAD,KACIppC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,eAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAOyqD,EACPj3D,UACIP,EAAQ46B,UAEZ/qB,SACI/P,KAAKy3D,uBAKrBl3C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,mDAIA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACpBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,OACN7G,OAAO,SACPnI,QAAQ,WACRqM,MACI2qD,EAEJ7nD,SACI/P,KACK23D,yBAIjBp3C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,KACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAO6qD,EACP/nD,SACI/P,KACK63D,uBAIjBt3C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QACIpH,KAAKg4D,UAJb,gBAiBhCz3C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,KACpBjC,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACpBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ02D,SACpBr2C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAOjN,KAAKsF,MAAMi0D,WAClBxpD,SACI/P,KAAKs5D,oBAGT/4C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MACI,4BAEJ2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YAEjByI,MAAM,8BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MACI,sBAEJ2wC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YAEjByI,MAAM,0BAKlB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Y,UAAW,OACX/G,QAAS,SAET2f,EAAAhgB,EAAAC,cAAA,OACIu7D,wBAAyB,CACrBC,OACIhP,EAAmBlqB,oBAMvCviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3Q,MAEI,KADA7P,KAAKsF,MAAMs1D,aAGfh6D,QAAS,YAET2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKxgB,KAAKsF,MAAMs1D,gBA+BxBr6C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OACIu7D,wBAAyB,CACrBC,OAGI,8BAFAh8D,KAAKsF,MACAi0D,WAECvM,EAAmBpqB,kBACnBoqB,EAAmBD,+BAUjExsC,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BAxjED/H,aAiqExBgM,eA5ES,SAAShL,GAS7B,MAAO,CACH2kB,mBAHA3kB,EALA2kB,mBASAiB,sBAJA5lB,EAJAwyC,0BAA6B5sB,sBAS7B+wC,cALA32D,EAHA22D,cASAjP,mBANA1nD,EAFA0nD,mBASAH,8BAPAvnD,EADAunD,gCAYmB,SAASx8C,GAChC,MAAO,CACHi0B,uBAAwB,SAAA+F,GAAO,OAC3Bh6B,EAASi0B,GAAuB+F,KACpCixB,qBAAsB,SAAA/0B,GAAA,IAClBytB,EADkBztB,EAClBytB,KACAzyB,EAFkBgF,EAElBhF,wBACAqB,EAHkB2D,EAGlB3D,kBACAC,EAJkB0D,EAIlB1D,iBACAC,EALkByD,EAKlBzD,eACAC,EANkBwD,EAMlBxD,oBACAf,EAPkBuE,EAOlBvE,WACAC,EARkBsE,EAQlBtE,WACAu5B,EATkBj1B,EASlBi1B,wBACAD,EAVkBh1B,EAUlBg1B,cAVkB,OAYlBlrD,E1Cr6DwB,SAAAwJ,GAAA,IACnCm6C,EADmCn6C,EACnCm6C,KACAzyB,EAFmC1nB,EAEnC0nB,wBACAqB,EAHmC/oB,EAGnC+oB,kBACAC,EAJmChpB,EAInCgpB,iBACAC,EALmCjpB,EAKnCipB,eACAC,EANmClpB,EAMnCkpB,oBACAf,EAPmCnoB,EAOnCmoB,WACAC,EARmCpoB,EAQnCooB,WACAs5B,EATmC1hD,EASnC0hD,cACAC,EAVmC3hD,EAUnC2hD,wBAVmC,sBAAAvhD,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAW9B,SAAAC,EAAO2G,GAAP,IAAA0xB,EAAAxX,EAAA2xC,EAAAzuD,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACLuG,EAASq0B,MACD3C,EAAqBiyB,EAArBjyB,iBAEFxX,EAAa,GACnBypC,EAAKhqC,gBAAgB1b,QAAQ,SAACvQ,GAC7B,IAAIo+D,EAAW,GACXp+D,EAAEonB,YAEO,CAAC,WAAY,WAAY,WAAY,YAC7C7W,QAAQ,SAACxB,EAAGnL,GAChBw6D,EAAS/tD,KAAK,CACbyiB,UAAW9yB,EAAEmgC,gBAAgBpxB,GAC7Byc,SAAUxrB,EAAEmgC,gBAAgBpxB,EAAI,YAChC8d,QAAS7sB,EAAE8xB,cAAcluB,GAAK5D,EAAE8xB,cAAcluB,GAAGipB,QAAU,GAC3DwxC,YAAar+D,EAAE8xB,cAAcluB,GAAK5D,EAAE8xB,cAAcluB,GAAGy6D,YAAc,OAGrEr+D,EAAEwjC,wBAA0BA,EAC5BhX,EAAWnc,KAAK,CACfuyB,IAAK5iC,EAAEmgC,gBAAgByC,IAEvB1X,UAAWlrB,EAAE6gC,gBAAgB3V,UAC7BM,SAAUxrB,EAAE6gC,gBAAgBrV,SAC5BsV,IAAK9gC,EAAE6gC,gBAAgBC,IACvBjU,QAAS7sB,EAAE6gC,gBAAgBhU,QAC3Bke,WAAY/qC,EAAE6gC,gBAAgBkK,WAE9BuzB,WAAYt+D,EAAE8xB,cAAc,GAAK9xB,EAAE8xB,cAAc,GAAGmQ,gBAAkB,KAEtEY,OAAQ7iC,EAAE+gC,eAAe8B,OACzBqpB,aAAclsD,EAAEmiC,gBAChBi8B,WACAnsC,eAAgBjyB,EAAE8xB,cAAc,GAAK9xB,EAAE8xB,cAAc,GAAGG,eAAiB,GACzEiQ,WAAYliC,EAAE8xB,cAAc,GAAK9xB,EAAE8xB,cAAc,GAAGoQ,WAAa,GACjEq8B,QAAS,CACR,CACCC,SAAU,EACV37B,OAAQ7iC,EAAE+gC,eAAe8B,OACzBC,WAAY9iC,EAAE+gC,eAAe+B,WAC7B7B,YAAajhC,EAAE+gC,eAAeE,YAC9B9sB,SAAUnU,EAAE+gC,eAAe5sB,SAC3BktB,cAAerhC,EAAE+gC,eAAeC,cAChCnU,QAAS7sB,EAAE+gC,eAAelU,QAC1B4xC,YAAaz+D,EAAE+gC,eAAe09B,YAC9B17B,cAAe/iC,EAAE+gC,eAAegC,eAEjC,CACCy7B,SAAU,EACV37B,OAAQ7iC,EAAEkhC,eAAe2B,OACzB5B,YAAajhC,EAAEkhC,eAAeD,YAC9B+B,gBAAiBhjC,EAAEkhC,eAAe8B,gBAClCD,cAAe/iC,EAAEkhC,eAAe6B,cAChC5uB,SAAUnU,EAAEkhC,eAAe/sB,SAC3BktB,cAAerhC,EAAEkhC,eAAeF,eAAiB,aAEjDnU,QAAS7sB,EAAEkhC,eAAegC,eAC1BpW,eAAgB9sB,EAAEkhC,eAAepU,eACjCH,cAAe3sB,EAAEkhC,eAAeC,iBAChCu9B,QAAS1+D,EAAEkhC,eAAeC,kBAE3B,CACCq9B,SAAU,EACV37B,OAAQ7iC,EAAEmjC,eAAeN,OACzB5B,YAAajhC,EAAEmjC,eAAelC,YAC9B+B,gBAAiBhjC,EAAEmjC,eAAeH,gBAClCD,cAAe/iC,EAAEmjC,eAAeJ,cAChC5uB,SAAUnU,EAAEmjC,eAAehvB,SAC3BktB,cAAerhC,EAAEmjC,eAAenC,eAAiB,aAEjDnU,QAAS7sB,EAAEmjC,eAAeD,eAC1BpW,eAAgB9sB,EAAEmjC,eAAerW,eACjCH,cAAe3sB,EAAEmjC,eAAehC,iBAChCu9B,QAAS1+D,EAAEmjC,eAAehC,kBAE3B,CACCq9B,SAAU,EACV37B,OAAQ7iC,EAAEojC,eAAeP,OACzBC,WAAY9iC,EAAEojC,eAAeN,WAC7B7B,YAAajhC,EAAEojC,eAAenC,YAC9B9sB,SAAUnU,EAAEojC,eAAejvB,SAC3BktB,cAAerhC,EAAEojC,eAAepC,cAChCnU,QAAS7sB,EAAEojC,eAAevW,QAC1B4xC,YAAaz+D,EAAEojC,eAAeq7B,YAC9B17B,cAAe/iC,EAAEojC,eAAeL,gBAGlC/oB,OAAQha,EAAEga,OACVupB,wBAAyBvjC,EAAEujC,wBAC3BjB,qBAAsBtiC,EAAEsiC,qBACxBC,qBAAsBviC,EAAEuiC,qBACxBC,wBAAyBxiC,EAAEsiC,0BAIvB67B,EAAY,CACjB75B,MAAON,EAAiBM,MACxBnQ,KAAM6P,EAAiB7P,KACvBiG,QAAS4J,EAAiB5J,QAC1B0G,IAAKkD,EAAiBlD,IACtBf,QAASiE,EAAiBjE,QAC1BxpB,UAAWytB,EAAiBztB,UAC5BguB,YAAaP,EAAiBO,YAC9BC,SAAUR,EAAiBQ,SAC3BH,WAAYL,EAAiBK,WAC7BO,mBAAoBZ,EAAiBY,mBACrCX,WAAYA,EACZC,WAAYA,EACZC,4BAA6BH,EAAiBG,4BAC9CU,kBAAmBA,EACnBC,iBAAkBA,EAClBC,eAAgBA,EAChBC,oBAAqBA,GAGhBt1B,EAAO,CACZyuD,YACA3xC,aACAxS,OAAQgqB,EAAiBhqB,OACzBiqB,WAAYA,EACZC,WAAYA,EACZs5B,cAAeA,EACfC,wBAAyBA,EACzBt5B,4BAA6BH,EAAiBG,4BAC9CC,aAAcJ,EAAiBI,aAC/BZ,wBAAyBA,EACzByB,yBAA0BjB,EAAiBiB,yBAC3CX,MAAON,EAAiBM,MACxB3B,aAAcszB,EAAKhqC,gBAAgB,GAAGkU,gBAAgBwC,cAhIlD92B,EAAAE,KAAA,EAmIYoL,KAAMM,KAAKrS,GAAU,gCAAiCsK,EAAM8C,eAAwB6E,MAAM,SAACnQ,GAC3G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAxIT,YAmICqJ,EAnID9D,EAAAkE,MAiJEL,KAAKM,QAjJP,CAAAnE,EAAAE,KAAA,gBAkJJuG,EAASs0B,GAA6Bj3B,EAAGD,OAlJrC7D,EAAA2L,OAAA,SAmJG,CAAExH,SAAS,EAAM1J,QAAS,KAnJ7B,eAqJJgM,EAASu0B,MArJLh7B,EAAA2L,OAAA,SAsJG,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAtJ5C,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAX8B,gBAAAyV,GAAA,OAAAwE,EAAApE,MAAA7V,KAAA2S,YAAA,G0Cs6DpB2oD,CAAqB,CACjBtH,OACAzyB,0BACAqB,oBACAC,mBACAC,iBACAC,sBACAf,aACAC,aACAu5B,0BACAD,oBAGZhF,aAAc,SAAC5mD,EAAMgB,GAAP,OAAaN,E1C3tDP,SAACV,EAAMgB,GAAP,sBAAA4K,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAa,SAAAyQ,EAAO7J,GAAP,IAAA5C,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACxCuG,EAAS40B,MAELx3B,EAAgB,WAATkC,EAAoB,CAAE0J,OAAQ,CAAEtB,OAAQpH,IAAQ,CAAE0I,OAAQ,CAAEgpB,MAAO1xB,IAC9ElD,EAAIrL,OAAA+d,EAAA,EAAA/d,CAAA,GAAQqL,EAAS8C,eAJmB4J,EAAArQ,KAAA,EAMvBoL,KAAMC,IAAIhS,GAAU,oCAAqCsK,GAAM2H,MAAM,SAACnQ,GACtF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAX0B,YAMlCqJ,EANkCyM,EAAArM,MAmBjCL,KAAKM,QAnB4B,CAAAoM,EAAArQ,KAAA,gBAoBvCuG,EAAS60B,GAAqBx3B,IApBSyM,EAAA5E,OAAA,SAqBhC,CAAExH,SAAS,EAAM1J,QAAS,KArBM,eAuBvCgM,EAAS80B,MAvB8BhrB,EAAA5E,OAAA,SAwBhC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAxBT,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAb,gBAAA2V,GAAA,OAAA4F,EAAA1F,MAAA7V,KAAA2S,YAAA,G0C2tDgB4jD,CAAa5mD,EAAMgB,KACvD+rD,qBAAsB,kBAAMrsD,E1Cl/DO,CAC1CV,KAjM+B,6B0CmrExBy1B,WAAY,SAACC,EAAU11B,GAAX,OAAoBU,EAAS+0B,GAAWC,EAAU11B,KAC9Dg2B,sBAAuB,SAAA3b,GAAe,OAClC3Z,EAASs1B,GAAsB3b,KACnCoc,yBAA0B,SAAAp0B,GAAG,OACzB3B,EAAS+1B,GAAyBp0B,KACtC86C,kBAAmB,SAAA5O,GAAA,IACftb,EADesb,EACftb,kBACAmqB,EAFe7O,EAEf6O,qBACAlqB,EAHeqb,EAGfrb,iBACAC,EAJeob,EAIfpb,eACAC,EALemb,EAKfnb,oBALe,OAOf1yB,EACIy8C,GAAkB,CACdlqB,oBACAmqB,uBACAlqB,mBACAC,iBACAC,0BAGZ6pB,iCAAkC,SAAAyH,GAAgB,OAC9ChkD,EAASu8C,GAAiCyH,OAIvC/jD,CAGbpO,qBArGa,SAAAC,GAAK,MAAK,CACrBqgB,IAAK,CAAEpa,QAAS,OAAQowB,UAAW,IACnCmlB,QAAS,CACLv1C,QAAS,OACTm1B,KAAM,EACN/e,YAAa,GACbnW,WAAY,UAEhBuH,MAAO,CAAE2tB,KAAM,IAAK/e,YAAa,QACjCo/B,QAAS,CAAErgB,KAAM,KACjBzC,UAAW,CAAEryB,MAAO,QACpBk0D,OAAQ,CAAEx0D,WAAY,QACtBwzD,WAAY,CAAEvzD,QAAS,OAAQyY,cAAe,OAC9C+7C,aAAc,CAAEn0D,MAAO,QACvBwkC,YAAa,CAAExkC,MAAO,OAAQ+V,YAAa,QAC3Csf,QAAS,CAAEr1B,MAAO,QAClBo0D,UAAW,CAAEx0D,WAAY,cACzBy0D,gBAAiB,CAAEr0D,MAAO,QAC1BmuD,QAAS,CAAEr0D,QAAS,QACpBy8C,OAAQ,CAAEx8C,SAAU,cAkFtBN,CAAmBgyD,cC7tEN6I,GAlBU,CACxBC,eAAgB,iBAChBC,YAAa,cACVC,cAAe,gBAClBC,sBAAuB,wBACvBC,uBAAwB,yBACxBC,6BAA8B,+BAC9BC,4BAA6B,8BAC7BC,YAAa,cACbC,qCAAsC,uCACtCC,gCAAiC,kCACjCC,kCAAmC,oCACnCC,eAAgB,iBACbC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,4BAA6B,+BCV7BxzC,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEjBkZ,GAAY,CACjBq8C,MAAO,IAOKqF,GAAW,SAACrF,GAAD,MAAY,CACnC/oD,KALiB,YAMjB+oD,UAGKsF,GAA+B,SAACtwD,GAAD,MAAS,CAC7CiC,KATsC,iCAUtCjC,OAOYuwD,GAAuB,SAACvF,EAAOn3B,GAAR,sBAAA1sB,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAoC,SAAAC,EAAO2G,GAAP,IAAA6tD,EAAAxwD,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACjEo0D,EAAW,CAAEC,SAAUzF,EAAOn3B,wBAAyBA,GADU33B,EAAAE,KAAA,EAEtDoL,KAAMM,KAAKrS,GAAU,kCAAmC+6D,EAAU3tD,eAAwB6E,MAAM,SAACnQ,GACjH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAPyD,WAEjEqJ,EAFiE9D,EAAAkE,MAe/DL,KAf+D,CAAA7D,EAAAE,KAAA,eAgBtEuG,EApBuC,CACxCV,KAboC,iCAgBmC/F,EAAA2L,OAAA,SAiB/D,CAAExH,SAAS,EAAO1J,QAAS,wBAjBoC,WAmBnEqJ,EAAGD,KAAKM,QAnB2D,CAAAnE,EAAAE,KAAA,gBAoBtEuG,EAAS2tD,GAA6BtwD,IApBgC9D,EAAA2L,OAAA,SAqB/D,CAAExH,SAAS,EAAM1J,QAAS,KArBqC,eAuBtEgM,EA3BuC,CACxCV,KAboC,iCAgBmC/F,EAAA2L,OAAA,SAwB/D,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAxBsB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAApC,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAuCrByrD,GAXO,WAA+B,IAA9B94D,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACpD,OAAQsH,EAAO+G,MACd,IAhDgB,YAiDf,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBozD,MAAO9vD,EAAO8vD,QAClC,IAjDqC,iCAkDpC,OAAOt2D,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBozD,MAAO9vD,EAAO8E,GAAGD,KAAKoL,SAC1C,QACC,OAAOvT,ICpDJ+4D,eACL,SAAAA,EAAYp+D,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAq+D,IAC3B75D,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAi8D,GAAAz5D,KAAA5E,KAAMC,EAAOiJ,KAUdmlC,iBAAmB,SAACnV,GACfA,EAAErJ,eAAiBqJ,EAAErJ,cAAc,GAAGI,UACzCzrB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAWiJ,EAAErJ,cAAc,GAAGI,UAC9Byd,iBAAkB,KAIhBxU,EAAErJ,eAAiBqJ,EAAErJ,cAAc,GAAGjF,QACzCpmB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkBxU,EAAErJ,cAAc,GAAGjF,UAGtCpmB,EAAKU,SAAS,CACb8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkB,gBA9BOlpC,EAmC5B0pC,qBAAuB,WACtB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KApCJxpC,EAuC5B8pC,iBAAmB,SAACrpC,GACL,UAAVA,EAAEpD,KAAiB2C,EAAKU,SAAS,CAAEqpC,WAAY,KAAMC,mBAAoB,MAxClDhqC,EA2C5BiqC,eAAiB,SAACpgB,EAAKppB,GACtB,IAAIgI,EAAQhI,EAAE+H,OAAOC,MACjBA,EAAMuB,OAAS,KAClBvB,EAAQA,EAAMogC,UAAU,EAAG,KAE5B,IAAM5E,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMsqB,WAAW8D,IAC1Coa,EAAO1wB,OAAS9K,EAChB,IAAIu7B,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAMsqB,YACxCie,EAAmB5Z,OAAOP,EAAK,EAAGoa,GAClCjkC,EAAKvE,MAAM0lC,sBAAsB6C,IApDNhkC,EAuD5B85D,gCAAkC,SAACjwC,EAAKppB,GACvC,IAAIgI,EAAQhI,EAAE+H,OAAOC,MACjBA,EAAMuB,OAAS,KAClBvB,EAAQA,EAAMogC,UAAU,EAAG,KAE5B,IAAM5E,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMsqB,WAAW8D,IAC1Coa,EAAOnH,wBAA0Br0B,EACjC,IAAIu7B,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAMsqB,YACxCie,EAAmB5Z,OAAOP,EAAK,EAAGoa,GAClCjkC,EAAKvE,MAAM0lC,sBAAsB6C,IAhENhkC,EAmE5BkqC,WAAa,SAAC/sC,EAAG6gB,GAChBhe,EAAKU,SAAS,CAAEqpC,WAAY5sC,KApED6C,EAuE5BmqC,uBAAyB,SAACtgB,EAAKvhB,EAAG7H,GACjC,IAAMwjC,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMsqB,WAAW8D,IAC1Coa,EAAO37B,GAAK7H,EAAE+H,OAAOC,MACrB,IAAIu7B,EAAkBpmC,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAMsqB,YACxCie,EAAmB5Z,OAAOP,EAAK,EAAGoa,GAClCjkC,EAAKvE,MAAM0lC,sBAAsB6C,IA5ENhkC,EA+E5BoqC,mBAAqB,SAACpsB,EAAK0V,GAC1B1zB,EAAKU,SAAS,CAAEspC,mBAAoB,CAAEhsB,MAAK0V,UAhFhB1zB,EAmF5BqqC,aAAe,SAACxgB,GACX7pB,EAAKc,MAAMipC,aAAelgB,GAAK7pB,EAAKU,SAAS,CAAEqpC,WAAY,QApFpC/pC,EAuF5B+5D,8BAAgC,SAAClwC,GAC5B7pB,EAAKc,MAAMipC,aAAelgB,GAAK7pB,EAAKU,SAAS,CAAEqpC,WAAY,QAxFpC/pC,EA2F5BsqC,qBAAuB,SAACtsB,EAAK0V,GAAQ,IAC5BsW,EAAuBhqC,EAAKc,MAA5BkpC,mBACJA,EAAmBhsB,MAAQA,GAAOgsB,EAAmBtW,MAAQA,GAAK1zB,EAAKU,SAAS,CAAEspC,mBAAoB,MA7F/EhqC,EAgG5Bg6D,kBAAoB,SAACj0C,GACpB,OAAOA,EAAWk0C,KAAK,SAACn0B,GAAD,OAAOA,EAAEvyB,UAjGLvT,EAoG5Bk6D,qBAAuB,SAACn0C,GACvB,OAAOA,EAAWk0C,KAAK,SAACn0B,GAAD,OAAOA,EAAEQ,oBAAsBR,EAAEQ,mBAAmBt8B,UArGhDhK,EAwG5Bm6D,mCAAqC,SAACp0C,GACrC,IAAIq0C,GAAa,EAIjB,OAHAr0C,EAAWjc,QAAQ,SAACmhB,GACfA,EAAU6R,0BAAyBs9B,GAAa,KAE9CA,GA7GoBp6D,EAgH5Bq6D,6BAA+B,SAACt0C,GAC/B,IAAIq0C,GAAa,EAIjB,OAHAr0C,EAAWjc,QAAQ,SAACmhB,IACfA,EAAU4Q,sBAAwB5Q,EAAU6Q,wBAAsBs+B,GAAa,KAE7EA,GArHoBp6D,EAwH5Bs6D,0BAA4B,SAACv0C,GAC5B,IAAIq0C,GAAa,EAMjB,OALAr0C,EAAWjc,QAAQ,SAACmhB,GACfA,EAAUkd,UACTld,EAAUkd,SAASxjB,eAAcy1C,GAAa,KAG7CA,GA/HoBp6D,EAkI5Bu6D,UAAY,SAAChnD,GACZse,QAAQC,IAAI9xB,EAAKvE,MAAMshC,yBACvBx8B,OAAOb,KAAK,+BAAsCM,EAAKvE,MAAMshC,wBAA0B,WAAaxpB,IAlIpGvT,EAAKc,MAAQ,CACZ2qB,UAAW,GACXyd,iBAAkB,GAClBM,eAAe,EACfO,WAAY,KACZC,mBAAoB,IAPMhqC,wEAuInB,IAAAkB,EAAA1F,KAAAD,EACwEC,KAAKC,MAA7EC,EADAH,EACAG,QAASwhC,EADT3hC,EACS2hC,mBAAoB2B,EAD7BtjC,EAC6BsjC,SAAU9Y,EADvCxqB,EACuCwqB,WADvCld,GAAAtN,EACmDokC,iBAC4BnkC,KAAKsF,OAApF2qB,EAFA5iB,EAEA4iB,UAAW+d,EAFX3gC,EAEW2gC,cAAeN,EAF1BrgC,EAE0BqgC,iBAAkBa,EAF5ClhC,EAE4CkhC,WAAYC,EAFxDnhC,EAEwDmhC,mBAC5DwwB,EAAah/D,KAAKw+D,kBAAkBj0C,GACpC00C,EAAgBj/D,KAAK0+D,qBAAqBn0C,GAC1C20C,EAA8Bl/D,KAAK2+D,mCAAmCp0C,GACtE40C,EAAwBn/D,KAAK6+D,6BAA6Bt0C,GAC1D60C,EAAqBp/D,KAAK8+D,0BAA0Bv0C,GAExD,OACChK,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQgvC,MACzB3uB,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACCjB,qBAAsBluC,KAAKkuC,qBAC3Bje,UAAWA,EACXyd,iBAAkBA,EAClBM,cAAeA,IAEhBztB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQkvC,OACzB7uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,WACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,wBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oBACC4+C,GAAsB7+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,wBACtBw+C,GAAcz+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACdy+C,GAAiB1+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBACjB0+C,GAA+B3+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,0BAC/B2+C,GAAyB5+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBACzB2+C,GAAyB5+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBACzBxgB,KAAKC,MAAMujB,UAAYjD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBAG1BD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE+J,EAAWvI,OAAO,SAAApgB,GAClB,QAAI8D,EAAKzF,MAAMkkC,mBAGPviC,EAAKujB,YACX1jB,IAAI,SAACguB,EAAW8a,GAClB,IAAIzpC,EAAa,GA4Bb2uB,EAAUtK,WAAWrkB,EAAWsN,KAAKlO,EAAQ00B,SAC7CnF,EAAUwO,MAAQyD,GAAoB5gC,EAAWsN,KAAKlO,EAAQovC,SAElE,IAAI2a,EAAe,GAInB,OAHIx6B,EAAUqb,oBAAsBrb,EAAUqb,mBAAmBt8B,SAChEy7C,EAAY,GAAAl7C,OAAM0gB,EAAUqb,mBAAmBt8B,OAAnC,QAAAO,OAAgD0gB,EAAUqb,mBAAmB,GAAGu0B,UAAhF,wBAGZ9+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK0oC,EAAO9pC,UAAWK,EAAWI,KAAK,MAChDqf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW7Y,UAAU,KAAK+a,MAAM,OAC/BnC,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAAOuvB,EAAUwO,MAE/E1d,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAC5DqgB,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM1B,EAAKzF,MAAMsvC,UAAU9f,IAAYhvB,UAAWgvB,EAAUtK,UAAY,GAAKjlB,EAAQk9B,KAClG3N,EAAUmP,gBAAgB3V,aAI9B1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAAOuvB,EAAUyO,gBAAgByC,MAE/FpgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAC3D+pD,IAGH1pC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAC5DqgB,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQk9B,IAAKh2B,QAAS,kBAAM1B,EAAK2oC,iBAAiB5e,KAAnE,OAWD2vC,GACA7+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAC3DuvB,EAAUkd,SAAWj7B,YAAoB+d,EAAUkd,SAASxjB,cAAgB,OAK/E61C,GAAct5D,EAAKzF,MAAMq/D,kBACzB/+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAS3f,MAAM,SACd0f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKq5D,UAAUtvC,EAAU1X,UAC1E0X,EAAU1X,UAMdknD,GAAiBv5D,EAAKzF,MAAMq/D,kBAC5B/+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEiP,EAAUqb,oBAAsBrb,EAAUqb,mBAAmBrpC,IAAI,SAAAE,GAAC,OAClE4e,EAAAhgB,EAAAC,cAAA,KAAGC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAC3DyB,EAAE49D,cAMNP,IAAet5D,EAAKzF,MAAMq/D,kBAC1B/+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE+tB,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOqoB,EAAUtK,UAAY,KAAOzf,EAAKgpC,WAAWnE,EAAO9a,IACpEhvB,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAEzDuvB,EAAU1X,QAGZw2B,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOwiB,EAAU1X,OACjBhI,SAAU,SAAC9K,GAAD,OAAOS,EAAK+oC,eAAelE,EAAOtlC,IAC5Cu2B,OAAQ,kBAAM91B,EAAKmpC,aAAatE,IAChC56B,KAAK,YAMRuvD,GAA+Bx5D,EAAKzF,MAAMq/D,kBAC1C/+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAS3f,MAAM,SACd0f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKq5D,UAAUtvC,EAAU6R,2BAC1E7R,EAAU6R,2BAMd49B,IAAgCx5D,EAAKzF,MAAMq/D,kBAC3C/+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE+tB,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOqoB,EAAUtK,UAAY,KAAOzf,EAAKgpC,WAAWnE,EAAO9a,IACpEhvB,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAEzDuvB,EAAU6R,yBAGZiN,IAAehE,GACfhqB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOwiB,EAAU6R,wBACjBvxB,SAAU,SAAC9K,GAAD,OAAOS,EAAK44D,gCAAgC/zB,EAAOtlC,IAC7Du2B,OAAQ,kBAAM91B,EAAK64D,8BAA8Bh0B,IACjD56B,KAAK,YAMRwvD,GACA5+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGguB,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,MACxD3X,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOqoB,EAAUtK,UAAY,KAAOzf,EAAKkpC,mBAAmBrE,EAAO,IAC5E9pC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAEzDuvB,EAAU4Q,sBAGZmO,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,KACvD3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOwiB,EAAU4Q,qBACjBtwB,SAAU,SAAC9K,GAAD,OAAOS,EAAKipC,uBAAuBpE,EAAO,uBAAwBtlC,IAC5Eu2B,OAAQ,kBAAM91B,EAAKopC,qBAAqBvE,EAAO,OAMlD40B,GACA5+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGguB,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,MACxD3X,EAAAhgB,EAAAC,cAAA,QACC4G,QAAS,kBAAOqoB,EAAUtK,UAAY,KAAOzf,EAAKkpC,mBAAmBrE,EAAO,IAC5E9pC,UAAWgvB,EAAUtK,UAAYjlB,EAAO,YAAkB,MAEzDuvB,EAAU6Q,sBAGZkO,EAAmBhsB,MAAQ+nB,GAAoC,IAA3BiE,EAAmBtW,KACvD3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgvB,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYjqC,EAAK4oC,iBACjBrhC,MAAOwiB,EAAU6Q,qBACjBvwB,SAAU,SAAC9K,GAAD,OAAOS,EAAKipC,uBAAuBpE,EAAO,uBAAwBtlC,IAC5Eu2B,OAAQ,kBAAM91B,EAAKopC,qBAAqBvE,EAAO,OAMlD7kC,EAAKzF,MAAMujB,UACXjD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGiP,EAAUtK,WAAa5E,EAAAhgB,EAAAC,cAAC+iB,EAAD,CAAiBnc,QAAS,kBAAM1B,EAAKzF,MAAMujB,SAASiM,EAAUwO,MAAMle,SAAUsjB,IAEtG5T,EAAUtK,WAAa5E,EAAAhgB,EAAAC,cAACovC,GAAD,CAAexoC,QAAS,kBAAM1B,EAAKzF,MAAM4vC,UAAUpgB,EAAUwO,sBA7X3D/1B,IAAM5D,WA2a5BgM,eAjBS,SAAChL,GAAU,IAAAwqC,EAK9BxqC,EAHH2kB,mBAAsByX,EAFWoO,EAEXpO,mBAAoB2B,EAFTyM,EAESzM,SAAUc,EAFnB2L,EAEmB3L,iBAAkB5C,EAFrCuO,EAEqCvO,wBAKvE,MAAO,CAAEG,qBAAoB2B,WAAU+6B,cAFnC94D,EAFH84D,cAIqDj6B,mBAAkB5C,4BAG9C,SAAClxB,GAC3B,MAAO,CACNs1B,sBAAuB,SAAC3b,GAAD,OAAqB3Z,EAASs1B,GAAsB3b,KAC3E+zC,SAAU,SAACrF,GAAD,OAAWroD,EAAS0tD,GAASrF,OAI1BpoD,CAGbpO,qBApCa,SAACC,GAAD,MAAY,CAC1B+sC,KAAM,CAAEzmC,MAAO,OAAQ+vB,UAAgC,EAArBr2B,EAAMf,QAAQqd,KAAUsxB,UAAW,QACrEX,MAAO,CAAEzc,SAAU,KACnBiC,QAAS,CAAExX,WAAY,QACvB4yB,YAAa,CAAE7oC,MAAO,OAAQ0xB,eAAgB,gBAC9CuE,IAAK,CAAE6S,OAAQ,EAAGC,OAAQ,UAAWC,aAAc,oBACnDb,QAAS,CAAE5mC,gBAAiB0nC,QAAK,KACjCV,eAAgB,CAAE1mC,SAAU,aAC5B00C,UAAW,CAAExN,OAAQ,UAAWC,aAAc,qBA4B7CjuC,CAAmBm8D,0BCtbfmB,eACF,SAAAA,EAAYv/D,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAw/D,IACfh7D,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAo9D,GAAA56D,KAAA5E,KAAMC,KAIVw/D,eAAiB,WACbj7D,EAAKk7D,UAAUC,QACfn7D,EAAKvE,MAAM2mD,WAPIpiD,EAUnBo7D,MAAQ,WACJp7D,EAAKvE,MAAM2/D,OAASp7D,EAAKvE,MAAM2/D,MAAMp7D,EAAKk7D,UAAUG,cATpDr7D,EAAKk7D,UAAY,KAFFl7D,wEAcV,IAAAkB,EAAA1F,KACL,OACIugB,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU+O,QACzBqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU2+D,cAAc5vD,QACvCqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOjf,MAAOvB,KAAKC,MAAM8/D,YACrBx/C,EAAAhgB,EAAAC,cAACw/D,GAAAz/D,EAAD,CACI4oD,IAAK,SAACA,GACFzjD,EAAKg6D,UAAYvW,GAErB8W,SAAUjgE,KAAKC,MAAMggE,SACrBC,YAAalgE,KAAKC,MAAM8/D,WACxBH,MAAO5/D,KAAK4/D,UAKxBr/C,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAUg/D,cAAcjwD,QACvCqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIpZ,QAASpH,KAAKy/D,eACdt4D,MAAM,YACNvG,QAAQ,aAEPZ,KAAKC,MAAMmgE,gBAAkBpgE,KAAKC,MAAMmgE,gBAAkB,4BArCrDl4D,IAAM5D,WA8C9B4L,GAAS,CACX/O,UAAW,CACP+O,OAAQ,CAACzH,MAAO,QAChBq3D,cAAe,CACX5vD,OAAQ,IAEZiwD,cAAe,CACXjwD,OAAQ,CAACxN,WAAY,OAelB88D,MCnDTa,eACL,SAAAA,EAAYpgE,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqgE,IAC3B77D,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAi+D,GAAAz7D,KAAA5E,KAAMC,EAAOiJ,KA0Bdo3D,wBA3B4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2BF,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACzBtF,EAAK+7D,cACHv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAA3B,GACNvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANW,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SA3BEwE,EAqC5Bg8D,aAAe,SAAA3mD,EAAqE4mD,GAAgB,IAAlF1+B,EAAkFloB,EAAlFkoB,iBAAkBuyB,EAAgEz6C,EAAhEy6C,UAAWtqC,EAAqDnQ,EAArDmQ,gBAAiBqqC,EAAoCx6C,EAApCw6C,sBAC3C/yD,IAAhBm/D,IAA2BA,EAAc1D,GAAiBI,uBAE9D,IACIuD,EAAa,CAChBC,KAFYx6D,aAAaC,QAAQ,YAGjCuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBC,eACzBvvD,KAAM,CAAEs0B,mBAAkBuyB,YAAWtqC,kBAAiBqqC,qBAEnDwM,EAAal6D,KAAKqS,UAAU0nD,GAC7Bl8D,EAAK+7D,eACE/7D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAS3B,GAC3E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eAlDZzqD,EAuD5Bu8D,gBAAkB,SAACJ,EAAME,GACxB,IAAIH,EAAa/5D,KAAKC,MAAMi6D,GAE5B,GAAIH,EAAWE,SAAW7D,GAAiBC,eAA3C,CACA,IAAMgE,EAAc76D,aAAaC,QAAQ,YACzC,GAAIs6D,EAAWC,OAASK,GAEdN,EAAWjzD,KAAM,KAAAwzD,EACiDP,EAAWjzD,KAA9Es0B,EADkBk/B,EAClBl/B,iBAAkBuyB,EADA2M,EACA3M,UAAWtqC,EADXi3C,EACWj3C,gBAAiBqqC,EAD5B4M,EAC4B5M,iBAQtD,GAPGtyB,GAAkBv9B,EAAKvE,MAAMqkC,uBAAuBvC,GACpDsyB,GAAkB7vD,EAAKvE,MAAM2sD,iCAAiCyH,GAC7DC,GAAW9vD,EAAKU,SAAS,CAAEovD,cAC3BtqC,GAAiBxlB,EAAKvE,MAAM0lC,sBAAsB3b,GAClD02C,EAAW/wD,OAASotD,GAAiBQ,aACxC/4D,EAAKU,SAAS,CAAEg8D,cAAc,EAAMC,iBAAiB,EAAO7M,cAE1DoM,EAAW/wD,OAASotD,GAAiBe,4BAA4B,KAC/Cr5B,EAAci8B,EAAWjzD,KAAzBg3B,UACRjgC,EAAKvE,MAAMukC,gBAAgBC,GACvCjgC,EAAKU,SAAS,CAAC81D,2BAA0B,QA1EhBx2D,EA+EzB61D,mBAAqB,WACvB71D,EAAKg8D,aAAa,GAAIzD,GAAiBa,mBAhFZp5D,EAmF5B48D,gBAAkB,WACjB,MAAO,CACN7gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAK68D,eACpD9gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,SAtFyBlc,EA2F5B68D,cAAgB,WACf78D,EAAKg8D,aACJ,CACCz+B,iBAAkBv9B,EAAKvE,MAAMgqB,mBAAmB8X,iBAChD/X,gBAAiBxlB,EAAKvE,MAAMgqB,mBAAmBD,gBAC/CqqC,iBAAkB7vD,EAAKvE,MAAM4sD,+BAE9BkQ,GAAiBK,wBAElB54D,EAAKU,SAAS,CAAEi8D,iBAAiB,KApGN38D,EAuG5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAxGH5H,EA2G5BywD,kBAAoB,WACnBzwD,EAAKU,SAAS,CAAEg2D,iBAAiB,KA5GN12D,EA+G5B88D,SAAW,WAEV98D,EAAKU,SAAS,CAAEg2D,iBAAiB,KAjHN12D,EAoH5BoiD,QApH4BxkD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAoHlB,SAAAmB,IAAA,IAAA0pD,EAAA,OAAArnC,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACTtF,EAAKvE,MAAMshE,wBADF12D,EAAAf,KAAA,EAEetF,EAAKg9D,yBAAyB5a,UAF7C,OAEH0N,EAFGzpD,EAAAiD,KAGTtJ,EAAKg8D,aAAa,CACjBz+B,iBAAkBv9B,EAAKvE,MAAMgqB,mBAAmB8X,iBAChDuyB,cAED9vD,EAAKU,SAAS,CAAEg8D,cAAc,IAPrB,wBAAAr2D,EAAAH,SAAAE,EAAA5K,SApHkBwE,EA8H5B8iD,WAAa,SAAAvpD,GACRA,EAAEonB,YACN3gB,EAAKvE,MAAM+lC,4BAA4BxW,GAAUzxB,IACjDyG,EAAKvE,MAAMkO,QAAQC,KAAK,iBAjIG5J,EAqI5Bi9D,eAAiB,SAAAj/B,GAChB,IAAM6H,EAAOjoC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMgqB,mBAAmB8X,kBAC7CA,EAAgB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQioC,EAAR,CAAiB7H,uBACvCh+B,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKg8D,aAAa,CAAEz+B,sBAzIOv9B,EA6I5Bk9D,iBAAmB,WAClB,IAAMr3B,EAAOjoC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMgqB,mBAAmB8X,kBAC7CA,EAAgB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQioC,EAAR,CAAiB7H,mBAAoB,KAC3Dh+B,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKg8D,aAAa,CAAEz+B,sBAjJOv9B,EAoJ5Bm9D,kBAAoB,SAAAr8D,GACnBd,EAAKU,SAASI,IAnJdd,EAAKc,MAAQ,CACZgvD,UAAW,GACXloD,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6uD,iBAAiB,EACjBgG,cAAc,EACdC,iBAAiB,EACjBnG,2BAA2B,GAG5Bx2D,EAAKg9D,yBAA2B,KAbLh9D,mFAgBR,IAAAkB,EAAA1F,KACnB8O,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,yBAEA3D,KAAKugE,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpE9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAyQ,IAAA,OAAA+S,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAqQ,EAAArQ,KAAA,EACpBpE,EAAK46D,0BADe,wBAAAnmD,EAAAzP,SAAAwP,EAAAla,2CAmInB,IAAA28B,EAAA38B,KAAAD,EACgCC,KAAKC,MAArCC,EADAH,EACAG,QAAS+pB,EADTlqB,EACSkqB,mBACX9pB,EAAY8pB,EAAmBgZ,+BAAiChZ,EAAmBkZ,uBAAyBlZ,EAAmBmZ,oBAF7H/1B,EAGkCrN,KAAKsF,MAAvC47D,EAHA7zD,EAGA6zD,aAAcC,EAHd9zD,EAGc8zD,gBAEtB,OACC5gD,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,oBAAqBG,eAAgBhB,KAAKohE,gBAAiBjhE,UAAWA,GAC3FogB,EAAAhgB,EAAAC,cAACyhE,GAAD,CACsBrN,YAAa50D,KAAKwgE,aACvClM,UAAWt0D,KAAKsF,MAAMgvD,UACtB4G,gBAAiBl7D,KAAKsF,MAAM41D,gBAC5BjG,kBAAmBj1D,KAAKi1D,kBACxBc,WAAY,gBACZ5nD,QAASnO,KAAKC,MAAMkO,QACpBo7C,SAAU,SAAAC,GAAQ,OAAK7sB,EAAK6kC,yBAA2BhY,GACvDmY,kBAAmB3hE,KAAK2hE,kBACxBtH,mBAAsBr6D,KAAKq6D,mBAC3BW,0BAA6Bh7D,KAAKsF,MAAM01D,4BAGzCz6C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,WACrC0xD,IAAoBD,GACrB3gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC0hE,GAAD,CACCjC,SAAU,QACVF,WAAY,CAAEt3D,MAAO,IAAKoyB,OAAQ,KAClC+kC,MAAO5/D,KAAKyhE,eACZ7a,QAAS5mD,KAAK0hE,oBAK8C,KAA9Dz3C,EAAmB8X,iBAAiBU,uBACpCliB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKkH,EAAmB8X,iBAAiBU,sBAAuBxf,IAAI,OAK5E1C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,MAAOpH,WAAY,UAC/DkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ7Y,UAAWgb,IAAMxb,MAAO,UAAWvG,QAAQ,OAAOkH,GAAI,eAA9D,uBAKDyY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAK4mD,SAAvD,UAKDrmC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYmf,SAAUohD,EAAiB/5D,QAASpH,KAAKshE,UAAvF,WAKD/gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,IACPs/D,GAAgBC,GACjB5gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASH,UAAWP,EAAQiiE,SAAjD,qCAIAjB,GACA3gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASH,UAAWP,EAAQiiE,SAAjD,sBASJl4C,EAAmBD,gBAAgBxb,OAAS,GAC5C+R,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cACrB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAEf8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACjC2e,EAAAhgB,EAAAC,cAAC4hE,GAAD,CACCrgC,iBAAoB9X,EAAmB8X,iBACvCxX,WAAYN,EAAmBD,gBAC/BulB,UAAWvvC,KAAKsnD,WAChB/lB,wBAAyBtX,EAAmBsX,8BAQlDhhB,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BA/PvGnE,IAAM5D,WA4RzBgM,eAlBS,SAAAhL,GAGvB,MAAO,CAAE2kB,mBAFsB3kB,EAAvB2kB,qBAKkB,SAAA5Z,GAC1B,MAAO,CACNi0B,uBAAwB,SAAA+F,GAAO,OAAIh6B,EAASi0B,GAAuB+F,KACnE1E,sBAAuB,SAAA3b,GAAe,OAAI3Z,EAASs1B,GAAsB3b,KACzEu3C,sBAAuB,kBAAMlxD,E/C6Sa,CAC3CV,KA3iB+B,6B+C8P9Bq2B,4BAA6B,SAAAjoC,GAAC,OAAIsS,EAAS21B,GAA4BjoC,KACjE6uD,iCAAkC,SAACyH,GAAD,OAAsBhkD,EAASu8C,GAAiCyH,KAClG7vB,gBAAiB,SAACzsB,GAAD,OAAY1H,EAASm0B,GAAgBzsB,OAK/CzH,CAA6CpO,qBAvB7C,SAAAC,GAAK,MAAK,CACxBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBghE,QAAS,CAAEh7D,MAAO+W,SAAM,KAAMlV,SAAU,WAqBmB9G,CAAmBm+D,KC9SzEgC,oLAGE,OACI9hD,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU+O,QACzBqQ,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU0+C,YAAY3vC,QACrCqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAQ,MAApB,IAA2BZ,KAAKC,MAAMY,MAAtC,MAEHb,KAAKC,MAAMqiE,YACR/hD,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO2O,GAAO/O,UAAU+7B,WAAWhtB,QACpCqQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAQ,YACRuG,MAAOnH,KAAKC,MAAMkH,OAAS,UAC3BC,QAASpH,KAAKC,MAAMsiE,eAEnBviE,KAAKC,MAAMuiE,qBAfZt6D,IAAM5D,WAyB5B4L,GAAS,CACX/O,UAAW,CACP+O,OAAQ,CACJzH,MAAO,OACPL,QAAS,QAEby3C,YAAY,CACR3vC,OAAQ,IAGZgtB,WAAW,CACPhtB,OAAQ,CACJ/H,WAAY,OA0Bbk6D,yBC7DX/3C,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEVs/D,GAAa,CACzBC,8BAA6B,eAAAC,EAAAvgE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAE,SAAAC,EAAO6gB,GAAP,IAAAq4C,EAAA/pD,EAAA7F,EAAAC,EAAAC,EAAAE,EAAAD,EAAA0vD,EAAAn1D,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC1B84D,EAAmB3P,GAAgB,CAAEzkC,MAAOjE,EAAY2oC,UAAW,KACnEr6C,EAAS,GAFiB7F,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAAsI,EAAAC,KAAA,EAAAuJ,EAGHwvD,EAHGvvD,OAAAC,YAAA,UAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,KAAA,CAAA3J,EAAAE,KAAA,gBAGrB+4D,EAHqB1vD,EAAAlG,MAAArD,EAAAE,KAAA,GAIZoL,KAAMM,KAAKrS,GAAU,uCAAwC,CAAEonB,WAAYs4C,GAAkBtyD,eAAwB6E,MAAM,SAACnQ,GAC5I,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAEvH,SAAS,EAAO1J,QAASY,EAAEoQ,SAASC,OAAS,qBAF9C,CAAEvH,SAAS,EAAO1J,QADrBY,EALHoQ,SACC5H,KACCoC,MAASxL,WATe,YAIvBqJ,EAJuB9D,EAAAkE,MAiBrBL,KAjBqB,CAAA7D,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAkBrB,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGrJ,UAlBT,WAoBxBqJ,EAAGD,KAAKM,QApBgB,CAAAnE,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAqBrB,CAAExH,SAAS,EAAO1J,QAAS,qBArBN,QAwB7BwU,EAAOzK,KAAPyH,MAAAgD,EAAMzW,OAAAusB,GAAA,EAAAvsB,CAASsL,EAAGD,KAAKoL,OAAO2V,QAxBD,QAAAxb,GAAA,EAAApJ,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAwsB,GAAAxsB,EAAA,SAAAqJ,GAAA,EAAAC,EAAAtJ,EAAAwsB,GAAA,QAAAxsB,EAAAC,KAAA,GAAAD,EAAAC,KAAA,GAAAmJ,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAA9J,EAAAC,KAAA,IAAAoJ,EAAA,CAAArJ,EAAAE,KAAA,eAAAoJ,EAAA,eAAAtJ,EAAAk5D,OAAA,mBAAAl5D,EAAAk5D,OAAA,mBAAAl5D,EAAA2L,OAAA,SA2BvB,CAAExH,SAAS,EAAM8K,OAAQA,IA3BF,yBAAAjP,EAAAc,SAAAhB,EAAA1J,KAAA,+BAAF,gBAAAyV,GAAA,OAAAktD,EAAA9sD,MAAA7V,KAAA2S,YAAA,ICVjBowD,GAAsB,iBACtBC,GAAqB,gBACrBC,GAAgB,WAChBC,GAAsB,iBCkE/B54C,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEjBkZ,GAAY,CACdgP,gCAAgC,EAChCxG,MAAO,CAAE5Y,GAAI,IACbse,WAAY,CACR,CACI44C,gBAAiB,CAAC,GAAI,IACtB5iC,uBAAuB,EACvBe,wBAAyB,GACzBvpB,OAAQ,GACRqpB,WAAY,KAGpBb,uBAAuB,EACvB9V,mBAAoB,GACpB4E,mBAAoB,GACpBrG,WAAY,CAAE8f,WAAY,GAAI7f,UAAW,GAAIM,SAAU,IACvD2yC,UAAW,CACPv5B,oBAAoB,EACpBH,mBAAoB,GACpBC,sBAAuB,GACvBy+B,cAAc,EACdt+B,kBAAmB,GACnBC,iBAAkB,GAClBC,eAAgB,GAChBC,oBAAqB,IAEzBxB,wBAAyB,GACzBY,aAAc,GACdihC,yBAAyB,EACzBC,sDAAsD,EACtDC,sDAAsD,EACtDC,gBAAiB,EACjBC,wCAAwC,EACxCC,0BAA0B,EAC1BC,uBAAwB,GACxBC,SAAU,EACVC,sCAAsC,EACtCC,4BAA6B,GAC7BnK,eAAgB,QAChB1uC,cAAe,GACf84C,GAAI,GACJC,6BAA6B,EAC7BC,uCAAuC,EACvCC,sCAAsC,GA8B7BC,GAAkC,SAAArqD,GAAA,IAC3C+9B,EAD2C/9B,EAC3C+9B,QACA1vB,EAF2CrO,EAE3CqO,MACA2E,EAH2ChT,EAG3CgT,WAH2C,sBAAA5S,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAIzC,SAAAC,EAAO2G,EAAUouC,GAAjB,IAAA0lB,EAAA12D,EAAAC,EAAA02D,EAAAjyD,EAAA,OAAA8a,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACFuG,EAAS+b,MAEL+3C,EAAY,GACZvsB,IAASusB,EAAY,CAAEvsB,QAASA,IAChC1vB,IAAOi8C,EAAY,CAAEE,YAAan8C,IAClC2E,IAAYs3C,EAAUt3C,WAAaA,GAEjCpf,EARJrL,OAAA+d,EAAA,EAAA/d,CAAA,CAQaiX,OAAQ8qD,GAAc5zD,eARnC3G,EAAAE,KAAA,EASeoL,KACZC,IAAIhS,GAAU,+BAAgCsK,GAC9C2H,MAAM,SAAAnQ,GACH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aAhB/B,YASIqJ,EATJ9D,EAAAkE,MA6BKL,KAAKM,QA7BV,CAAAnE,EAAAE,KAAA,gBAAAs6D,EAgCM3lB,IADctsC,EA/BpBiyD,EA+BM1lB,WAAcvsC,WAElB9B,EAASi0D,GAAwC52D,EAAIyE,IAjCvDvI,EAAA2L,OAAA,SAkCS,CAAExH,SAAS,EAAM1J,QAAS,KAlCnC,eAoCEgM,EAASk0D,MApCX36D,EAAA2L,OAAA,SAqCS,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArClD,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAJyC,gBAAAyV,EAAAC,GAAA,OAAAuE,EAAApE,MAAA7V,KAAA2S,YAAA,IAqQzCyZ,GAAkC,iBAAO,CAC3Czc,KAhYA,mDAmYE20D,GAA0C,SAAC52D,EAAIyE,GAAL,MAAqB,CACjExC,KAlYA,8CAmYAjC,KACAyE,eAGEoyD,GAAuC,iBAAO,CAChD50D,KAtYA,6CA8YS60D,GAA8B,SAAAtI,GAAS,MAAK,CACrDvsD,KAxYmC,iCAyYnCusD,cA6CEuI,GAA0C,iBAAO,CACnD90D,KAlbA,gDAobE+0D,GAAwC,SAAAh3D,GAAE,MAAK,CACjDiC,KAnbA,2CAobAjC,OAEEi3D,GAAqC,iBAAO,CAC9Ch1D,KArbA,0CA4dEi1D,GAA4B,iBAAO,CACrCj1D,KA5dkC,kCA+dhCk1D,GAA0B,SAAAn3D,GAAE,MAAK,CACnCiC,KA/d+B,6BAge/BjC,OAGEo3D,GAAuB,iBAAO,CAChCn1D,KAne4B,4BAif1Bo1D,GAA2B,2BAQ3BC,GAAoB,oBA0CpBC,GAAwC,iBAAO,CACjDt1D,KAliBA,8CAqiBEu1D,GAAsC,SAAAx3D,GAAE,MAAK,CAC/CiC,KApiBA,yCAqiBAjC,OAGEy3D,GAAmC,iBAAO,CAC5Cx1D,KAviBA,wCA0iBSy1D,GAAgC,SAACt4D,EAAG6D,GAAJ,MAAW,CACpDhB,KA1iBsC,oCA2iBtC7C,IACA6D,MAGS00D,GAAmC,SAAArzD,GAAG,MAAK,CACpDrC,KA9iBA,wCA+iBAqC,QAwZWszD,GA7XiB,WAA+B,IACvDh3C,EAAcC,EAAeg3C,EAAuBz4D,EAAG6D,EAAGqB,EAAKwzD,EADtClgE,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAAAmkE,EAAA,WAG3D,OAAQ78D,EAAO+G,MACX,IAjnBJ,sCAknBQ,OAAAgB,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYia,KAEhB,IAjnBJ,iDAknBQ,OAAA1L,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB+lB,gCAAgC,KAEvD,IAlnBJ,8CAknBI,IAAArO,EAWQpU,EAAO8E,GATPD,KACIoL,OACIgM,EAJhB7H,EAIgB6H,MACAmG,EALhBhO,EAKgBgO,cACAT,EANhBvN,EAMgBuN,WACAvB,EAPhBhM,EAOgBgM,WACAwB,EARhBxN,EAQgBwN,mBAINk7C,EAAqB,GACrBj7C,EAAqB,GACrB4E,EAAqB,GAoB3B,OAnBA9E,EAAWjc,QAAQ,SAACmhB,EAAW9tB,GAC3B8tB,EAAUk2C,YAAa,EACW,OAA9Bl2C,EAAU0zC,kBACV1zC,EAAU0zC,gBAAkB,CAAC,GAAI,MAET,IAAxB1zC,EAAUtK,YAEHsK,EAAUL,WACjBC,EAAmBjhB,KAAKqhB,GACjBA,EAAU1X,QAEjB0X,EAAUm2C,KAAOp7C,EAAmB7oB,GACpC8oB,EAAmBrc,KAAKqhB,KACM,IAAvBA,EAAUvK,WAEjBuK,EAAUm2C,KAAOp7C,EAAmB7oB,GACpC+jE,EAAmBt3D,KAAKqhB,OAGhC,CAAA9e,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI+lB,gCAAgC,EAChCxG,QACA0F,WAAYm7C,EACZj7C,mBAAoBA,EACpB4E,qBACArG,aACAgC,mBAGR,IA7pBJ,2CA8pBQ,OAAAra,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB+lB,gCAAgC,KAEvD,IA/pB4B,8BAgqBxB,OAAA1a,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB89D,yBAAyB,KAEhD,IAjqByB,2BAkqBrB,IAAIyC,EAAWj9D,EAAOggC,QAElBrZ,EAAgBntB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,YAC7Bu7C,EAAuBv2C,EAAiBvN,OACxC,SAAA/c,GAAC,OAAIA,EAAE0gE,aAGX,GAC+B,IAA3BE,EAAShtD,OAAOrK,QAChBs3D,EAAqBt3D,SACpBs3D,EAAqB,GAAG/tD,OAC3B,CAEE,IAAIiR,EAAa88C,EAAqB1zD,KAAK,SAAAnN,GAAC,OAAIA,EAAEyqB,eAC7C1G,IACDA,EAAa88C,EAAqB,IAEtC98C,EAAWjR,OAAS8tD,EAAShtD,OAAO,GAAGd,OACvCiR,EAAWoY,WACPpY,EAAWjR,OrD9sBK,QqD+sBpBiR,EAAW8hB,mBACP+6B,EAAShtD,OAAO,GAAGkyB,sBAEvB+6B,EAAqBx3D,QAAQ,SAACvQ,EAAGwsC,GACxBxsC,EAAEga,SACHha,EAAEga,OAAS8tD,EAAShtD,OAAO0xB,GAAOxyB,QAElCha,EAAEga,SACFha,EAAEqjC,WAAarjC,EAAEga,OrDvtBL,SqDytBhB,IAAM2qC,EAAOmjB,EAAShtD,OAAOzG,KACzB,SAAAk4B,GAAC,OAAIA,EAAEvyB,SAAWha,EAAEga,SAExBha,EAAE+sC,mBAAqB4X,GAAQA,EAAK3X,mBAI5C,OAAAp6B,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIilB,WAAYgF,EACZ6zC,yBAAyB,KAGjC,IA5sBsB,wBA6sBlB,OAAAzyD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB89D,yBAAyB,KAEhD,IA9qBJ,+DA+qBQ,OAAAzyD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI+9D,sDAAsD,KAG9D,IAlrBJ,4DAmrBQ,IAAIwC,EAAWj9D,EAAOggC,QAElBrZ,EAAmB,GAAGxgB,OAAOzJ,EAAMilB,YAEnCs7C,GAAYA,EAAS7hC,iBACrBzU,EAAiBjhB,QAAQ,SAAAvQ,GACrB,IAAIkuC,EAAmB45B,EAAS7hC,gBAAgB5xB,KAC5C,SAAAg4B,GAAC,OAAIA,EAAEjM,WAAapgC,EAAEogC,WAEtB8N,IACAluC,EAAEga,OAASk0B,EAAiBl0B,UAIxC,IAAIwpB,EAA0BskC,EAAStkC,wBACvC,OAAA5wB,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI+9D,sDAAsD,EACtD94C,WAAYgF,EACZgS,wBAAyBA,EACzB+hC,sDAAsD,KAG9D,IAxsBJ,yDAysBQ,OAAA3yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI+9D,sDAAsD,KAG9D,IAlvBkB,oBAmvBd,OAAA1yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBilB,WAAY3hB,EAAO2hB,cAE1C,IApvBkC,oCAqvB9B,OAAA5Z,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI+lB,gCAAgC,EAChCxG,MAAOjc,EAAOggC,QAAQ/jB,MACtBq3C,UAAWtzD,EAAOggC,QAAQszB,UAC1BlzC,WAAYpgB,EAAOggC,QAAQ5f,WAC3BuB,WAAY3hB,EAAOggC,QAAQre,WAC3B4X,aAAcv5B,EAAOggC,QAAQzG,gBAGrC,IA9vByB,2BA+vBrB,OAAAxxB,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIi+D,gBAAiB36D,EAAO26D,mBAGhC,IAnwB+B,iCAowB3B,OAAA5yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB42D,UAAU95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAMwG,EAAOszD,cAE9C,IAjwBJ,8CAkwBQ,OAAAvrD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBk+D,wCAAwC,KAE/D,IAlwBJ,2CAmwBQ,OAAA7yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIk+D,wCAAwC,EACxCrhC,aAAcv5B,EAAO8E,GAAGD,KAAKoL,OAAO,MAG5C,IAvwBJ,wCAwwBQ,OAAAlI,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBk+D,wCAAwC,KAE/D,IAzwB8B,gCA0wB1B,OAAA7yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBm+D,0BAA0B,KAEjD,IA3wB2B,6BA4wBvB,IAAMC,EAAyB96D,EAAO8E,GAAGD,KAAKoL,OAAOgX,cAErDtB,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,YAC1B,IAAMxU,EAAO,CAAC,WAAY,WAAY,WAAY,YAC9CgwD,EAA4B,GAE1BC,EAAqB5jE,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMmlB,oBACpCw7C,EAAmB,IAAI71C,IACvB81C,EAAiB33C,EAAc9sB,IAAI,SAAC1D,EAAG4D,GACvC,IAD6C,IAAA4kB,EAAA,WACxC,IAAIzZ,EAAKiJ,EAAJua,GACN,GAAa,KAATvyB,EAAE+O,GAAW,CACb,IAAIY,EAAKg2D,EAAuBtxD,KAC5B,SAAAygC,GAAC,OAAIA,EAAE/iB,eAAiB/xB,EAAE+O,KAG1Bq5D,EAAkBpoE,EAAEsxC,QAAQj9B,KAC5B,SAAAg0D,GAAE,OAAIA,EAAGv1C,YAAcnjB,EAAGoiB,eAE9B,GACIzF,GAA0B3c,EAAGsiB,kBAC7B5F,GAIA,OAFA47C,EAAsB53D,KAAtBhM,OAAA+d,EAAA,EAAA/d,CAAA,GAAgCrE,IAChCgoE,EAA0B33D,KAAKrQ,EAAEkO,IACjC,CAAA0E,EAAO,MAEP5S,EAAEiyB,eAAiBtiB,EAAGsiB,eACtBjyB,EAAEkiC,WAAavyB,EAAGuyB,WAClBliC,EAAE4nE,YAAa,EACfQ,EAAgB/J,YAAc1uD,EAAG0uD,YAC7Br+D,EAAEsxC,SAAWtxC,EAAEsxC,QAAQ,KACvBtxC,EAAEsxC,QAAQ,GAAGg3B,YAAc34D,EAAG24D,aAGlC34D,EAAG44D,uBACHL,EAAiBx1C,IAAI1yB,EAAEkO,MA1BnCqkB,EAAA,EAAAA,EAAcva,EAAdvH,OAAA8hB,IAAoB,KAAAi2C,EAAAhgD,IAAA,qBAAAggD,EAAA,OAAAA,EAAA51D,EA8BpB,OAAO5S,IASX,OAPAmoE,EAAiBA,EAAelkD,OAAO,SAAAooB,GAAC,OAAU,OAANA,IAE5C27B,EAA0Bz3D,QAAQ,SAAArC,GAC9B,IAAMoiB,EAAM63C,EAAez3C,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,KAAOA,KACtC,IAAToiB,GAAYE,EAAcK,OAAOP,EAAK,KAG9C,CAAA1d,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIm+D,0BAA0B,EAC1BE,SAAUsC,EAAiBllD,KAC3BwJ,WAAY27C,EACZz7C,mBAAoBu7C,EACpBtC,4BAGR,IAp0BwB,0BAq0BpB,OAAA/yD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBm+D,0BAA0B,KAEjD,KAAKsB,GACD,YAAmBzjE,IAAfsH,EAAOylB,MACPC,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMilB,WAAW3hB,EAAOylB,OAC/Bs3C,YAAcr3C,EAAaq3C,WACxCr3C,EAAa+R,qBAAuB,KACpC/R,EAAagS,qBAAuB,KACpChS,EAAa4R,gBAAkB,KAC/B5R,EAAa6R,YAAc,KAC3B7R,EAAa8R,YAAc,KAC3B9R,EAAaiS,uBAAwB,GAErChS,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOhmB,EAAOylB,IAAK,EAAGC,GACpC,CAAA3d,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBilB,WAAYgE,WAEbjtB,IAAlBsH,EAAO0M,SACPiZ,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZjc,QAAQ,SAAAvQ,GAClBA,EAAE4nE,WAAa/8D,EAAO0M,SAE1B,CAAA3E,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBilB,WAAYgE,MAEnC,CAAA5d,EAAOrL,GAEX,KAAK0/D,GAAL,IACY32C,EAAoBzlB,EAApBylB,IAAKxsB,EAAe+G,EAAf/G,IAAKoL,EAAUrE,EAAVqE,MAKlB,OAJAqhB,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,EAAMilB,WAAW8D,KACxBxsB,GAAOoL,GACpBshB,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GAC7B,CAAA3d,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBilB,WAAYgE,KAEnC,IAr2BJ,4CAs2BQ,OAAA5d,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBs+D,sCAAsC,KAE7D,IAt2BJ,yCAs2BI,IAGsBp1C,EAEd5lB,EAAO8E,GAHPD,KACIoL,OAAU2V,MAKlB,GADA+2C,EAAqBnjE,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAM+pB,oBACb,IAAjBb,EAAMhgB,OACN,OAAAmC,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIs+D,sCAAsC,KAI9C,GADAsC,EAAiB,GACb13C,EAAMhgB,OAAS,EAAG,CAElB+f,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,YAC1B,IAHkB,IAAA9D,EAAA,SAGT9kB,GACL,IAAI6kE,EAAmB,EACnBC,EAAuB,EACd,CACT,WACA,WACA,WACA,YAECn4D,QAAQ,SAAAxB,GACT,GAA4B,KAAxByhB,EAAc5sB,GAAGmL,GAAW,KAAAkG,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAC5B,QAAA6R,EAAAC,EAAcob,EAAdnb,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAqB,KAAZ/N,EAAYkO,EAAAlG,MACjB,GAAIshB,EAAc5sB,GAAGmL,KAAO7H,EAAE4rB,UAAW,CACrCtC,EAAc5sB,GAAGoW,OAAS9S,EAAE8S,OAC5BwW,EAAc5sB,GAAGwnB,aACblkB,EAAEkkB,aACNo8C,EAAsBn3D,KAClBmgB,EAAc5sB,IAElB6kE,IACA,QAVoB,MAAA/yD,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,OAehCszD,IAAqBC,EACrBP,EAAe93D,KAAKmgB,EAAc5sB,IAElC8kE,KA5BC9kE,EAAI,EAAGA,EAAI4sB,EAAc/f,OAAQ7M,IAAK8kB,EAAtC9kB,GAiCb,OAAAgP,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEIs+D,sCAAsC,EACtCr5C,WAAY27C,EACZ72C,mBAAoBk2C,KAG5B,IA95BJ,sCA+5BQ,OAAA50D,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBs+D,sCAAsC,KAE7D,IAh6BkC,oCAk6B9B,OADG92D,EAASlE,EAATkE,EAAG6D,EAAM/H,EAAN+H,EACN,CAAAA,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAoB0K,EAAI6D,KAE5B,IAl6BJ,wCAs6BQ,OAHGqB,EAAQpJ,EAARoJ,IACHwzD,EAAQpjE,OAAA+d,EAAA,EAAA/d,CAAA,GAAQkD,GAEhB,CAAAqL,EADA60D,EAAQpjE,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ4T,YAAUwvD,EAAUxzD,KAGxC,IA17BgC,kCA27B5B,OAAArB,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBy+D,6BAA6B,KAEpD,IA97B0B,4BAi8B1B,IAl8B6B,+BAm8BzB,OAAApzD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmBy+D,6BAA6B,KAEpD,IA/6BJ,8CAg7BQ,OAAApzD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAYkD,EAAZ,CAAmB0+D,uCAAuC,KAE9D,IAh7BJ,2CAi7BQ,OAAArzD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI0+D,uCAAuC,EACvCC,sCAAsC,KAG9C,IAr7BJ,wCAs7BQ,OAAAtzD,EAAAvO,OAAA+d,EAAA,EAAA/d,CAAA,GACOkD,EADP,CAEI0+D,uCAAuC,EACvCC,sCAAsC,KAG9C,QACI,OAAAtzD,EAAOrL,IAzX4C,wBAAAmgE,EAAA,OAAAA,EAAA90D,gIClnBzD+1D,eACL,SAAAA,EAAYzmE,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA0mE,IAC3BliE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAskE,GAAA9hE,KAAA5E,KAAMC,EAAOiJ,KAmDdytD,UApD4Bv0D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAoDhB,SAAAC,IAAA,IAAAwyD,EAAA,OAAAjvC,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAEiBoyD,EACxB13D,EAAKvE,MADRqlE,wBAA2BpJ,UAE5BA,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmBv5B,oBAAqBu5B,EAAUv5B,qBAJhD/4B,EAAAE,KAAA,EAKLtF,EAAKvE,MAAMukE,4BAA4BtI,GALlC,OAMX13D,EAAKvE,MAAM0mE,gBANA,wBAAA/8D,EAAAc,SAAAhB,EAAA1J,SAlDXwE,EAAKc,MAAQ,CACZ8sD,iBAAkB,EAClBwU,iBAAkB,GAJQpiE,mFAQR,IAES+lB,EACxBvqB,KAAKC,MADRqlE,wBAA2B/6C,WAExBonC,EAAuB3xD,KAAK8yD,uBAAuBvoC,GACvDvqB,KAAK2yD,sBAAsBhB,kDAGLpnC,GAChB,IAAIyoC,EAAqB,CACrBZ,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,GAJS5/C,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAO3B,QAAA6R,EAAAC,EAAgBmX,EAAhBlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA4B,KAAjBjV,EAAiBoV,EAAAlG,OACnBlP,EAAEonB,WAAapnB,EAAE4nE,aAClB3S,EAAmBZ,iBAAmB7mB,SAASynB,EAAmBZ,kBAAoB7mB,SAASxtC,EAAEoiC,aAC7G6yB,EAAmBjB,iBAAmBxmB,SAASynB,EAAmBjB,kBAAoBxmB,SAASxtC,EAAEqiC,aACjG4yB,EAAmBJ,iBAXY,MAAAn/C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAc3B,OAAO8/C,gDAGQrB,GAAsB,IAKvC/uB,EAAmBE,EAHKo5B,EACxBl8D,KAAKC,MADRqlE,wBAA2BpJ,UAExB2K,EAAYzkE,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,GAExBp5B,EAAiBguB,GAAaG,oBAC9BruB,EAAoB6uB,GAAmC,CACtDC,iBAAkBZ,GAAaS,mCAC/BI,qBAAsBA,EACtBb,aAAcA,GACdjB,QAASA,KAGVgX,EAAajkC,kBAAoBA,EACjCikC,EAAa/jC,eAAiBA,EAC9B9iC,KAAKC,MAAMukE,4BAA4BqC,oCAY/B,IAAA9mE,EAIJC,KAAKC,MAFRC,EAFOH,EAEPG,QAFO4mE,EAAA/mE,EAGPulE,wBAA2BzgD,EAHpBiiD,EAGoBjiD,MAAOmE,EAH3B89C,EAG2B99C,WAAYuB,EAHvCu8C,EAGuCv8C,WAAY2xC,EAHnD4K,EAGmD5K,UAAWxC,EAH9DoN,EAG8DpN,eAGtE,OACCn5C,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,uBAGD2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaqE,EAAMqD,SAIrB3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAGD2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaqE,EAAMgE,eAIrBtI,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAGD2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAawI,EAAWO,SAAW,IAAMP,EAAWC,aAItD1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAGD2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACtB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaja,MAASC,OAAO,sBAKhC+Z,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACumE,GAAAxmE,EAAD,CAAOE,UAAWP,EAAQgvC,MACzB3uB,EAAAhgB,EAAAC,cAACwmE,GAAAzmE,EAAD,CAAOE,UAAWP,EAAQkvC,OACzB7uB,EAAAhgB,EAAAC,cAACymE,GAAA1mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAC0mE,GAAA3mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,8BACAggB,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,mBACAggB,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,kBACoB,UAAnBm5D,GAA8Bn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,oBACX,aAAnBm5D,GAAiCn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,wBACd,aAAnBm5D,GAAiCn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,wBACd,UAAnBm5D,GAA8Bn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,sBAC9Bm5D,IAAmBuJ,IAAiB1iD,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,4BAGvCggB,EAAAhgB,EAAAC,cAAC4mE,GAAA7mE,EAAD,KACEgqB,EACCvI,OAAO,SAACjkB,GAAD,OAAOA,EAAE4nE,aAChBlkE,IAAI,SAACguB,EAAW8a,GAChB,OACChqB,EAAAhgB,EAAAC,cAAC0mE,GAAA3mE,EAAD,CAAUsB,IAAK0oC,GACdhqB,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,CAAWoH,UAAU,KAAK+a,MAAM,OAC/BnC,EAAAhgB,EAAAC,cAAA,SAAIivB,EAAUkR,MAEfpgB,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KAAYkvB,EAAUxG,WACtB1I,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KAAYkvB,EAAUlG,UACF,UAAnBmwC,GACAn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAA,SAAIivB,EAAU1X,SAGf2hD,IAAmBuJ,IACnB1iD,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAA,SAAIivB,EAAU6R,0BAII,aAAnBo4B,GACAn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAA,SAAIivB,EAAU4Q,uBAII,aAAnBq5B,GACAn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,KACCggB,EAAAhgB,EAAAC,cAAA,SAAIivB,EAAU6Q,uBAII,UAAnBo5B,GACAn5C,EAAAhgB,EAAAC,cAAC2mE,GAAA5mE,EAAD,SACGkvB,EAAU0Q,YAAc1Q,EAAU0Q,YAAc,EADnD,WAC8D1Q,EAAU2Q,YAAc3Q,EAAU2Q,YAAc,EAD9G,eAWT7f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY7Y,UAAW,OAAQ/G,QAAS,SACvC2f,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQE,EAAUp5B,oBAIpDviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQE,EAAUt5B,+BArLvB16B,IAAM5D,WAoNxBgM,eAVS,SAAChL,GAGxB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKkB,SAACj1D,GAAD,MAAe,CACzCm0D,4BAA6B,SAACtI,GAAD,OAAe7rD,EAASm0D,GAA4BtI,OAGnE5rD,CAGbpO,qBAlBa,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBghE,QAAS,CAAEh7D,MAAO+W,SAAM,KAAMlV,SAAU,WAgBvC9G,CAAmBwkE,KChOjBp8C,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEVkkE,GAAe,iCAAAxyD,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC9BuG,EAASi3D,MADqB19D,EAAAE,KAAA,EAGboL,KAAMC,IAAIhS,GAAU,uBAAwBoN,eAAwB6E,MAAM,SAAAnQ,GACvF,OAAKA,EAAEoQ,SAGFzV,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAH1B,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAAS,+BAL1B,WAGxBqJ,EAHwB9D,EAAAkE,MAatBL,KAbsB,CAAA7D,EAAAE,KAAA,eAc1BuG,EAASk3D,MAdiB39D,EAAA2L,OAAA,SAenB,CAACxH,SAAS,EAAO1J,QAAS,wBAfP,WAiB1BqJ,EAAGD,KAAKM,QAjBkB,CAAAnE,EAAAE,KAAA,gBAkB1BuG,EAASm3D,GAAqB95D,IAlBJ9D,EAAA2L,OAAA,SAmBnB,CAACxH,SAAS,EAAM1J,QAAS,KAnBN,eAqB1BgM,EAASk3D,MArBiB39D,EAAA2L,OAAA,SAsBnB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAtBrB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IA6BtB20D,GAAyB,iBAAO,CAClC33D,KAL8B,8BAQ5B63D,GAAuB,SAAA95D,GAAE,MAAK,CAChCiC,KAR2B,yBAS3BjC,OAGE65D,GAAoB,iBAAO,CAC7B53D,KAZwB,wBAgEtB83D,GAAsB,iBAAO,CAC/B93D,KAL0B,0BAQxB+3D,GAAoB,SAAAh6D,GAAE,MAAK,CAC7BiC,KARuB,qBASvBjC,OAGEi6D,GAAiB,iBAAO,CAC1Bh4D,KAZoB,oBA4ClBi4D,GAAuB,iBAAO,CAChCj4D,KAL2B,2BAQzBk4D,GAAqB,SAAAn6D,GAAE,MAAK,CAC9BiC,KARwB,sBASxBjC,OAGEo6D,GAAkB,iBAAO,CAC3Bn4D,KAZqB,qBA6CnBo4D,GAAuB,iBAAO,CAChCp4D,KAL2B,2BAQzBq4D,GAAqB,SAAAt6D,GAAE,MAAK,CAC9BiC,KARwB,sBASxBjC,OAGEu6D,GAAkB,iBAAO,CAC3Bt4D,KAZqB,qBAenB0M,GAAY,CACd6rD,uBAAuB,EACvBC,QAAS,CAAC,CAACl8D,GAAI,EAAGimB,KAAM,GAAIk2C,IAAK,GAAIC,MAAO,EAAGC,aAAc,IAC7DC,oBAAoB,EACpBC,qBAAqB,EACrBC,qBAAqB,GA2DVC,GAxDI,WAA+B,IAC1Cr6C,EAAKs6C,EAAQR,EADD7iE,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAE9C,OAAQsH,EAAO+G,MACX,IA/K0B,4BAgLtB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4iE,uBAAuB,IAE7C,IAjLuB,yBAkLnB,OAAO9lE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4iE,uBAAuB,EAAOC,QAASv/D,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAEnF,IAnLoB,sBAoLhB,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4iE,uBAAuB,IAE7C,IA1HsB,wBA2HlB,OAAO9lE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBijE,oBAAoB,IAE1C,IA5HmB,qBA+HnB,IA9HgB,kBA+HZ,OAAOnmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBijE,oBAAoB,IAE1C,IAzFuB,yBA0FnB,OAAOnmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBkjE,qBAAqB,IAE3C,IA3FoB,sBA8FpB,IA7FiB,mBA8Fb,OAAOpmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBkjE,qBAAqB,IAE3C,IAzL6B,+BAyL7B,IACSv8D,EAAYrD,EAAZqD,GAAIa,EAAQlE,EAARkE,EAAG6D,EAAK/H,EAAL+H,EAEZ,OAAa,KADb0d,EAAM/oB,EAAM6iE,QAAQ15C,UAAU,SAAA/sB,GAAC,OAAIA,EAAEuK,KAAOA,OAExC08D,EAAMvmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAM6iE,QAAQ95C,KACpBvhB,GAAK6D,GACZw3D,EAAO/lE,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAM6iE,UACZv5C,OAAOP,EAAK,EAAGs6C,GAChBvmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB6iE,aAEf7iE,EAEX,IAnEuB,yBAoEnB,OAAOlD,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmjE,qBAAqB,IAE3C,IArEoB,sBAwEpB,IAvEiB,mBAwEb,OAAOrmE,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmjE,qBAAqB,IAE3C,QACI,OAAOnjE,cCxPbsjE,eACL,SAAAA,EAAY3oE,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA4oE,IAC3BpkE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAwmE,GAAAhkE,KAAA5E,KAAMC,EAAOiJ,KAUd2/D,iBAAmB,WAAM,IAED7+C,EACnBxlB,EAAKvE,MADRgqB,mBAAsBD,gBAEf6iC,EAAkCroD,EAAKvE,MAAvC4sD,8BAEFic,EAAQ,GAgBd,OAfA9+C,EAAgB1b,QAAQ,SAACvQ,GACpBA,EAAEonB,WACN2jD,EAAM16D,KACLmS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK9D,EAAEkgC,IAAK17B,QAAS,SAC9Bge,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYziB,EAAEmgC,gBAAgBC,UAC9B5d,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEziB,EAAE6gC,gBAAgB3V,UADpB,IACgClrB,EAAE6gC,gBAAgBrV,WAEhDsjC,EAA8BX,sBAAwB3rC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYziB,EAAEga,QACrE80C,EAA8BX,sBAAwB3rC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYziB,EAAEsiC,sBACpEwsB,EAA8BX,sBAAwB3rC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYziB,EAAEuiC,sBACrE/f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,SAAAzR,OAAgBhR,EAAEoiC,YAAlB,YAAApxB,OAAwChR,EAAEqiC,YAA1C,aAII0oC,GAjCoBtkE,EAoC5BukE,mBAAqB,WASpB,OANIvkE,EAAKvE,MADRgqB,mBAAsBD,gBAGGg/C,OAAO,SAACC,EAAKlrE,GACtC,OAAQA,EAAEonB,UAAsC8jD,EAA1BA,EAAMlrE,EAAEmiC,iBAC5B,IAzCH17B,EAAKc,MAAQ,CACZs1D,aAAc,IAHYp2D,mFAQ3BsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,kEAwCQ,IAAA5D,EACoDC,KAAKC,MAAzDC,EADAH,EACAG,QAAS+pB,EADTlqB,EACSkqB,mBAAoB+iC,EAD7BjtD,EAC6BitD,mBAC7BjrB,EAAqB9X,EAArB8X,iBAER,OACCxhB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACk7D,GAAD,MAEAn7C,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,oBAAqBG,eAAgBhB,KAAKC,MAAMe,gBACrEuf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,qBACA2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACRmgC,EAAiB7P,KADnB,IAC0B6P,EAAiB5J,UAI5C5X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,wBACA2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAE2E,MAASC,OAAO,uBAG7B+Z,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC4hE,GAAD,CACCrgC,iBAAkB9X,EAAmB8X,iBACrCxX,WAAYN,EAAmBD,gBAC/Bs1C,kBAAkB,EAClBnxD,QAAUnO,KAAKC,MAAMkO,QACrBohC,UAAW,gBAIbhvB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY7Y,UAAU,OAAO/G,QAAS,QAASH,UAAWP,EAAQgpE,aACjE3oD,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQhP,EAAmBlqB,qBA2BhB,KAA3Cf,EAAiBU,uBAAwE,KAAxCV,EAAiBS,qBACnEjiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UAC5C8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OACCuiB,IAAgD,KAA3Cgf,EAAiBU,sBAA+BV,EAAiBU,sBAAwBV,EAAiBS,mBAC/Gvf,IAAI,GACJxiB,UAAW,eAIb8f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY7Y,UAAU,OAAO/G,QAAS,SACrC2f,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQhP,EAAmBpqB,mCA9HhCt+B,aAgKvBgM,eAbS,SAAChL,GAGxB,MAAO,CAAE2kB,mBAFyE3kB,EAA1E2kB,mBAEqB4iC,8BAFqDvnD,EAAtDunD,8BAEgCG,mBAFsB1nD,EAAvB0nD,qBAKjC,SAAC38C,GAC3B,MAAO,CACN84D,YAAa,kBAAM94D,EtD2Xa,CAAEV,KAzfd,mBsD+HpBy5D,2BAA4B,kBAAM/4D,EtDgDa,CAChDV,KAzMqC,qCsD4JvBW,CAGbpO,qBAxBa,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,eAmBxB9G,CAAmB0mE,KChJfS,eACF,SAAAA,EAAYppE,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqpE,IACxB7kE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAinE,GAAAzkE,KAAA5E,KAAMC,EAAOiJ,KAsCjBo3D,wBAvC4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAuCF,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACtBtF,EAAK+7D,cACAv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAA3B,GACHvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANE,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SAvCEwE,EAiD5Bu8D,gBAAkB,SAACJ,EAAME,GACrB,IAAIH,EAAa/5D,KAAKC,MAAMi6D,GAE5B,GAAIH,EAAWE,SAAW7D,GAAiBC,eAA3C,CACA,IAAMgE,EAAc76D,aAAaC,QAAQ,YACzC,GAAIs6D,EAAWC,OAASK,GAEpBN,EAAWjzD,KAAM,KAAAwzD,EAKbP,EAAWjzD,KAHXs0B,EAFak/B,EAEbl/B,iBACAuyB,EAHa2M,EAGb3M,UACAtqC,EAJai3C,EAIbj3C,gBAEJxlB,EAAKvE,MAAMqkC,uBAAuBvC,GAC9BuyB,GAAW9vD,EAAKU,SAAS,CAAEovD,cAC3BtqC,GACAxlB,EAAKvE,MAAM0lC,sBAAsB3b,GACjC02C,EAAW/wD,OAASotD,GAAiBQ,aACrC/4D,EAAKU,SAAS,CACVg8D,cAAc,EACdC,iBAAiB,EACjB7M,iBAtEY9vD,EA4E5B8kE,WAAa,SAAA5Q,GAAS,IACZ4M,EAA4B9gE,EAAKvE,MAAjCqlE,wBACNvgE,OAAOb,KACH,+BACIohE,EAAwB/jC,0BA9EhC/8B,EAAKc,MAAQ,CACTs1D,aAAc,GACdxI,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,GANMpuD,mFAUR,IAAAkB,EAAA1F,KAChB8O,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,8BAEA3D,KAAKugE,eAAgB,IAAIqB,MACpBC,QAAQl/D,MACRm/D,QACL9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACjBpE,EAAK46D,0BADY,wBAAAz1D,EAAAH,SAAAE,EAAA5K,UARX,IAaeuqB,EAC3BvqB,KAAKC,MADLqlE,wBAA2B/6C,WAE3B6nC,EAAmB,EACnBL,EAAmB,EACnBa,EAAe,EAjBH5/C,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAkBhB,QAAA6R,EAAAC,EAAgBmX,EAAhBlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA4B,KAAjBjV,EAAiBoV,EAAAlG,MACnBlP,EAAEonB,YACHitC,GAAsCr0D,EAAEoiC,YACxC4xB,GAAsCh0D,EAAEqiC,YACxCwyB,MAtBQ,MAAAn/C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GA0BhBlT,KAAKkF,SAAS,CAAEktD,mBAAkBL,mBAAkBa,kDAgD/C,IAAAj2B,EAAA38B,KAAAD,EAUDC,KAAKC,MARLC,EAFCH,EAEDG,QAFC4mE,EAAA/mE,EAGDulE,wBACIpJ,EAJH4K,EAIG5K,UACAlzC,EALH89C,EAKG99C,WACAnE,EANHiiD,EAMGjiD,MACA0F,EAPHu8C,EAOGv8C,WACAmvC,EARHoN,EAQGpN,eAGF6P,EAAeh/C,EAAW9oB,IAAI,SAAA6oC,GAChC,MAAO,CACHvyB,OAAQuyB,EAAEhJ,wBACJgJ,EAAEhJ,wBACFgJ,EAAEvyB,OACR4yB,iBAAkBL,EAAEK,iBAAmBL,EAAEK,iBAAmB,GAC5DC,eAAgBN,EAAEK,iBAAmBL,EAAEM,eAAiB,GACxDC,wBAAyBP,EAAEO,wBACrBP,EAAEO,wBACF,GACNC,mBAAoBR,EAAEQ,sBAI9B,OACIvqB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIpZ,QAAS,WACLu1B,EAAK2sC,WAAWC,IAEpB3oE,QAAQ,aAJZ,oBASJ2f,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,4BACPG,eAAgBhB,KAAKC,MAAMe,gBAE3Buf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,uBAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaqE,EAAMqD,SAI3B3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaqE,EAAMgE,eAI3BtI,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKwI,EAAWO,SACR,IACAP,EAAWC,aAK3B1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKja,MAASC,OAAO,sBAMjC+Z,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACumE,GAAAxmE,EAAD,CAAOE,UAAWP,EAAQgvC,MACtB3uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQkvC,OACtB7uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,8BAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,mBAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,mBACEk5C,IACEqJ,IACArJ,IACIwJ,IACJxJ,IACIsJ,KACJziD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBAIHk5C,IACGuJ,IACA1iD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,0BAKJD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBAIAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,2BAIAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,8BAKRD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK+J,EACIvI,OAAO,SAAAjkB,GAAC,OAAIA,EAAE4nE,aACdlkE,IAAI,SAACguB,EAAW8a,GACb,OACIhqB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK0oC,GACXhqB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Y,UAAU,KACV+a,MAAM,OAENnC,EAAAhgB,EAAAC,cAAA,SAEQivB,EAAUkR,MAItBpgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAEQiP,EAAUxG,WAGlB1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAEQiP,EAAUlG,UAGlBhJ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAMID,EAAAhgB,EAAAC,cAAA,YAEQivB,EAAU1X,SAuBtBwI,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKiP,EAAUqb,oBACPrb,EACKqb,mBACAt8B,QACD+R,EAAAhgB,EAAAC,cAAA,YAEQivB,EACKqb,mBACAt8B,OACP,IALN,MAQQihB,EACKqb,mBAAmB,GACnBu0B,UACP,IAXN,uBAiBZ9+C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKiP,EAAUqb,oBACPrb,EACKqb,mBACAt8B,QACD+R,EAAAhgB,EAAAC,cAAA,YAEQivB,EACKqb,mBAAmB,GACnB0+B,YAKzBjpD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKiP,EAAUqb,oBACPrb,EACKqb,mBACAt8B,QACD+R,EAAAhgB,EAAAC,cAAA,YAEQivB,EACKqb,mBAAmB,GACnB2+B,iBAYzDlpD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Y,UAAW,OACX/G,QAAS,SAET2f,EAAAhgB,EAAAC,cAAA,OACIu7D,wBAAyB,CACrBC,OAAQE,EAAUp5B,oBAMlCviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OACIu7D,wBAAyB,CACrBC,OAAQE,EAAUt5B,sBAI9BriB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEVysD,EAAUz5B,uBACPliB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAIJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OACIuiB,IACIm5C,EAAUz5B,sBAEdxf,IAAI,mBAnZT3e,aA8b5BgM,eAdS,SAAAhL,GAGpB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKe,SAAAj1D,GACvB,MAAO,CACHq5D,gCAAiC,kBAC7Br5D,EJhW0C,CAClDV,KAnGA,yCImcIouD,SAAU,SAAArF,GAAK,OAAIroD,EAAS0tD,GAASrF,OAI9BpoD,CAGbpO,qBAhCa,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CACLv1C,QAAS,OACTm1B,KAAM,EACN/e,YAAa,GACbnW,WAAY,UAEhBw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,aACzB2gE,aAAc,CAAEnxC,UAAW,QAC3BklB,UAAW,CAAExN,OAAQ,UAAWC,aAAc,qBAoBhDjuC,CAAmBmnE,KChcfO,GAAgB,gBAChBC,GAA8B,8BAC9BC,GAAyB,yBACzBC,GAA+B,+BAC/BC,GAA0B,0BAE5B1/C,GAAWznB,eAGTw9D,IAFiB/1C,GAASrnB,SAA0HqnB,GAASpnB,yBAGlK,SAAAm9D,EAAYpgE,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqgE,IAClB77D,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAi+D,GAAAz7D,KAAA5E,KAAMC,KAoBPqJ,kBArBmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqBC,SAAAmB,IAAA,IAAA8C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACN3D,aAAaC,QAAQ,YADf,CAAAyE,EAAAf,KAAA,eAGlBtF,EAAKylE,eAHap/D,EAAA0K,OAAA,wBAMnB/Q,EAAK+7D,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpEt9D,EAAK87D,0BACL97D,EAAK+7D,cAAcwB,GAAG,iBAAkBv9D,EAAKu8D,iBAC7Cv8D,EAAK+7D,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACpBtF,EAAK87D,0BADe,wBAAA12D,EAAAc,SAAAhB,EAAA1J,UATR6K,EAAAf,KAAA,GAaFtF,EAAKvE,MAAMonE,eAbT,SAab35D,EAba7C,EAAAiD,MAcXC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAdhF,yBAAAwG,EAAAH,SAAAE,EAAA5K,SArBDwE,EAiDnB87D,wBAjDmBl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiDO,SAAAyQ,IAAA,OAAA+S,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OACzBtF,EAAK+7D,cACHv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAA3B,GACNvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANW,wBAAAnc,EAAAzP,SAAAwP,EAAAla,SAjDPwE,EA2DnBg8D,aAAe,SAAC/yD,GAA+D,IAAzDgzD,EAAyD9tD,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAA3CoqD,GAAiBI,sBAEhDuD,EAAa,CAChBC,KAFYx6D,aAAaC,QAAQ,YAGjCuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBE,YACzBxvD,QAEGozD,EAAal6D,KAAKqS,UAAU0nD,GAChCl8D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAS3B,GAC9E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eArERzqD,EAyEnB0lE,aAAe,WACdnlE,OAAOD,SAAW,gBA1EAN,EA6EnBu8D,gBAAkB,SAACJ,EAAME,GACxB,IAAIH,EAAa/5D,KAAKC,MAAMi6D,GAE5B,GAAIH,EAAW/wD,OAASotD,GAAiBY,eAIxC,OAFAtnC,QAAQC,IAAI,uBACZvxB,OAAOD,SAAW,gBAInB,GAAI47D,EAAWE,SAAW7D,GAAiBE,YAA3C,CAEA,IAAM+D,EAAc76D,aAAaC,QAAQ,YACzC,GAAIs6D,EAAWC,OAASK,EAOxB,GAFAvnB,aAAaj1C,EAAK2lE,iBAEdzJ,EAAW/wD,OAASotD,GAAiBI,uBACxC,GAAIuD,EAAWjzD,KAAM,KAAAwzD,EACuDP,EAAWjzD,KAA9Es0B,EADYk/B,EACZl/B,iBAAkBuyB,EADN2M,EACM3M,UAAWtqC,EADjBi3C,EACiBj3C,gBAAiBqqC,EADlC4M,EACkC5M,iBACvCtyB,GAAkBv9B,EAAKvE,MAAMqkC,uBAAuBvC,GACpDsyB,GAAkB7vD,EAAKvE,MAAM2sD,iCAAiCyH,GACzEC,GAAW9vD,EAAKU,SAAS,CAAEovD,cAC3BtqC,GAAiBxlB,EAAKvE,MAAM0lC,sBAAsB3b,SAEjD,GAAI02C,EAAW/wD,OAASotD,GAAiBK,uBAAwB,CACvE54D,EAAKU,SAAS,CAAEklE,aAAcP,GAA6B1O,eAAe,EAAOD,iBAAiB,IAD3B,IAAAmP,EAEd3J,EAAWjzD,KAA5Ds0B,EAF+DsoC,EAE/DtoC,iBAAkBuyB,EAF6C+V,EAE7C/V,UAAWtqC,EAFkCqgD,EAElCrgD,gBACrCxlB,EAAKvE,MAAMqkC,uBAAuBvC,GAC9BuyB,GAAW9vD,EAAKU,SAAS,CAAEovD,cAC3BtqC,GAAiBxlB,EAAKvE,MAAM0lC,sBAAsB3b,QAChD,GAAI02C,EAAW/wD,OAASotD,GAAiBM,6BAA8B,CAC7E74D,EAAKU,SAAS,CAAEklE,aAAcN,KAD+C,IAAAQ,EAEE5J,EAAWjzD,KAAlFoX,EAFqEylD,EAErEzlD,MAAOmE,EAF8DshD,EAE9DthD,WAAYuB,EAFkD+/C,EAElD//C,WAAY2xC,EAFsCoO,EAEtCpO,UAAW/5B,EAF2BmoC,EAE3BnoC,aAAco3B,EAFa+Q,EAEb/Q,WAChE/0D,EAAKU,SAAS,CAAEq0D,eAChB/0D,EAAKvE,MAAMsqE,8BAA8B,CAAE1lD,QAAOmE,aAAYuB,aAAY2xC,YAAW/5B,sBAC/E,GAAIu+B,EAAW/wD,OAASotD,GAAiBS,qCAAsC,KAAAgN,EACvC9J,EAAWjzD,KAAjDs0B,EAD6EyoC,EAC7EzoC,iBAAkB/X,EAD2DwgD,EAC3DxgD,gBAC1BxlB,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKvE,MAAM0lC,sBAAsB3b,GACjCxlB,EAAKU,SAAS,CAAEklE,aAAcL,KAC9BvlE,EAAK2lE,gBAAkBj8D,WAAW,kBAAM1J,EAAKU,SAAS,CAAEklE,aAAcR,MAAkB,UAClF,GAAIlJ,EAAW/wD,OAASotD,GAAiBU,gCAAiC,KAAAgN,EACb/J,EAAWjzD,KAAtEoX,EADwE4lD,EACxE5lD,MAAOmE,EADiEyhD,EACjEzhD,WAAYuB,EADqDkgD,EACrDlgD,WAAY2xC,EADyCuO,EACzCvO,UAAW/5B,EAD8BsoC,EAC9BtoC,aAClD39B,EAAKvE,MAAMsqE,8BAA8B,CAAE1lD,QAAOmE,aAAYuB,aAAY2xC,YAAW/5B,iBACrF39B,EAAKU,SAAS,CAAEklE,aAAcJ,KAC9BxlE,EAAK2lE,gBAAkBj8D,WAAW,kBAAM1J,EAAKU,SAAS,CAAEklE,aAAcR,MAAkB,UAClF,GAAIlJ,EAAW/wD,OAASotD,GAAiBW,kCAC/Cl5D,EAAKU,SAAS,CAAEklE,aAAcR,UACxB,GAAGlJ,EAAW/wD,OAASotD,GAAiBe,4BAA4B,KACzDr5B,EAAci8B,EAAWjzD,KAAzBg3B,UACRjgC,EAAKvE,MAAMukC,gBAAgBC,GAC3BjgC,EAAKU,SAAS,CAAC81D,2BAA0B,IAEzCx2D,EAAKkmE,WAAWtrD,aACnB,GAAGshD,EAAW/wD,OAASotD,GAAiBa,iBAAiB,CACzD,GAAGp5D,EAAKc,MAAM8kE,eAAiBR,GAAgB,OAC5CplE,EAAKkmE,WAAa3lE,OAAOb,KAAK,4MAC9Bw8D,EAAW/wD,OAASotD,GAAiBc,mBACrCr5D,EAAKkmE,WAAWtrD,aAhDzBiX,QAAQC,IAAI,mBA3FK9xB,EA+InBmmE,OAAS,WACRnmE,EAAKU,SAAS,CAAEi2D,eAAe,KAhJb32D,EAmJnB+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KApJZ5H,EAuJnB42D,iBAAmB,SAAA9G,GAAa,IAERvyB,EACnBv9B,EAAKvE,MADRgqB,mBAAsB8X,iBAGvB,GAA+C,KAA3CA,EAAiBU,sBAMpB,OALAj+B,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,uCAEX,EAIR9H,EAAKg8D,aAAa,CAAEz+B,mBAAkBuyB,aAAayI,GAAiBQ,aACpE/4D,EAAKU,SAAS,CAAEi2D,eAAe,EAAOiP,aAAcR,KACpDplE,EAAKvE,MAAMmpE,8BAxKO5kE,EA2KnBywD,kBAAoB,WACnBzwD,EAAKU,SAAS,CAAEg2D,iBAAiB,KA5Kf12D,EA+KnB62D,gBAAkB,SAAA/G,GAAa,IAEPvyB,EACnBv9B,EAAKvE,MADRgqB,mBAAsB8X,iBAEvBv9B,EAAKg8D,aAAa,CAAEz+B,mBAAkBuyB,cACtC9vD,EAAKU,SAAS,CAAEi2D,eAAe,KApLb32D,EAwLnBi9D,eAAiB,SAAAh/B,GAChB,IAAM4H,EAAOjoC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMgqB,mBAAmB8X,kBAC7CA,EAAgB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQioC,EAAR,CAAiB5H,0BACvCj+B,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKg8D,aAAa,CAAEz+B,sBA5LFv9B,EAgMnBk9D,iBAAmB,WAClB,IAAMr3B,EAAOjoC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQoC,EAAKvE,MAAMgqB,mBAAmB8X,kBAC7CA,EAAgB3/B,OAAA+d,EAAA,EAAA/d,CAAA,GAAQioC,EAAR,CAAiB5H,sBAAuB,KAC9Dj+B,EAAKvE,MAAMqkC,uBAAuBvC,GAClCv9B,EAAKg8D,aAAa,CAAEz+B,sBApMFv9B,EAwMnBomE,6BAA+B,SAAAnoC,GAAyB,IAE3By5B,EACxB13D,EAAKvE,MADRqlE,wBAA2BpJ,UAE5BA,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmBz5B,0BAC5Bj+B,EAAKvE,MAAMukE,4BAA4BtI,GACvC13D,EAAKg8D,aAAa,CAAEtE,aAAaa,GAAiBO,8BA9MhC94D,EAkNnBqmE,+BAAiC,WAAM,IAEV3O,EACxB13D,EAAKvE,MADRqlE,wBAA2BpJ,UAE5BA,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmBz5B,sBAAuB,KACnDj+B,EAAKvE,MAAMukE,4BAA4BtI,GACvC13D,EAAKg8D,aAAa,CAAEtE,aAAaa,GAAiBO,8BAxNhC94D,EA2NnBoiD,QA3NmBxkD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2NT,SAAAgR,IAAA,IAAA65C,EAAA,OAAArnC,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACTtF,EAAKvE,MAAMshE,wBADF7mD,EAAA5Q,KAAA,EAEetF,EAAKg9D,yBAAyB5a,UAF7C,OAEH0N,EAFG55C,EAAA5M,KAGTtJ,EAAKg8D,aAAa,CACjBz+B,iBAAkBv9B,EAAKvE,MAAMgqB,mBAAmB8X,iBAChDuyB,cALQ,wBAAA55C,EAAAhQ,SAAA+P,EAAAza,SA3NSwE,EAoOnBmiE,cAAgB,WAAM,IAEOzK,EACxB13D,EAAKvE,MADRqlE,wBAA2BpJ,UAE5B13D,EAAKg8D,aAAa,CAAEtE,aAAaa,GAAiBO,8BAxOhC94D,EA2OnBsmE,YAAc,WAAM,IAES5O,EACxB13D,EAAKvE,MADRqlE,wBAA2BpJ,UAEvBA,EAAUz5B,uBAAmD,gBAA1Bj+B,EAAKc,MAAMi0D,YAQnD2C,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmBgF,cAAc,IAC1C18D,EAAKvE,MAAMukE,4BAA4BtI,GACvC13D,EAAKg8D,aAAa,CAAEtE,aAAaa,GAAiBO,6BAClD94D,EAAKU,SAAS,CAAEklE,aAAcR,MAV7BplE,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,2BAnPD9H,EA6PnBumE,SAAW,WACV5kE,aAAaw5D,QACbn7D,EAAKvE,MAAMwZ,eAAe,aAAc,MACxCjV,EAAKylE,gBAhQazlE,EAoQnBylE,aAAe,WACdzlE,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,uDAtQlB9H,EAAKwmE,WAAa,KAClBxmE,EAAKc,MAAQ,CACZgvD,UAAW,GACXloD,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6uD,iBAAiB,EACjBC,eAAe,EACfiP,aAAc,gBACda,cAAe,GACNjQ,2BAA2B,EACpCzB,WAAY,IAGb/0D,EAAKg9D,yBAA2B,KAChCh9D,EAAK0mE,eAAiB,KACtB1mE,EAAK2lE,gBAAkB,KAlBL3lE,kFAsCAitB,EAAWC,GAAW,IAAAy5C,EAGpCnrE,KAAKC,MADRmrE,WAAcjD,EAFyBgD,EAEzBhD,QAASD,EAFgBiD,EAEhBjD,sBAExB,IAAmD,IAA/Cz2C,EAAU25C,WAAWlD,wBAA4D,IAA1BA,EAAiC,CAC3F,IAAM+C,EAAgB9C,EAAQnmD,OAAO,SAAAtgB,GAAC,OAAKA,EAAEyjB,YAC7C8lD,EAAc1iD,KAAK,SAAC8iD,EAAIC,GAAL,OAAYD,EAAG/C,aAAegD,EAAGhD,eACpDtoE,KAAKkF,SAAS,CAAE+lE,oDAgOT,IAAAvlE,EAAA1F,KAAAD,EACgCC,KAAKC,MAArCC,EADAH,EACAG,QAAS+pB,EADTlqB,EACSkqB,mBACTghD,EAAkBjrE,KAAKsF,MAAvB2lE,cAwBR,OAtBIjrE,KAAKsF,MAAM8kE,eAAiBR,IAAiBqB,EAAcz8D,OAAS,GAC3C,OAAxBxO,KAAKkrE,iBACRlrE,KAAKkrE,eAAiBK,KAAMC,SAAS,CACpCC,QAAS,gBACTC,SAAU,IACVC,OAAQ,SACRl8D,UAAW,YACXm8D,KAAMX,EAAcz8D,OAAS,IAE9BN,WAAW,WACVxI,EAAKwlE,eAAez6C,IAAI,CAAEo7C,MAAO,MACjCnmE,EAAKwlE,eAAez6C,IAAI,CACvBpT,QAAS,CAAC,EAAG,GACbyuD,MAAO,CAAC,IAAM,GACdC,WAAY,CAAC,OAAQ,GACrBF,MAAON,KAAMS,QAAQ,OAEtBtmE,EAAKwlE,eAAez6C,IAAI,CAAEo7C,MAAO,OAC/B,MAKJtrD,EAAAhgB,EAAAC,cAAA,WACER,KAAKsF,MAAM8kE,eAAiBP,IAC5BtpD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+rE,eACvB1rD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC0rE,GAAD,CAAenwC,QAAS,EAAGl7B,MAAM,sBACjC0f,EAAAhgB,EAAAC,cAACyhE,GAAD,CACClgC,iBAAkB9X,EAAmB8X,iBACrC6yB,YAAa50D,KAAKwgE,aAClBlM,UAAWt0D,KAAKsF,MAAMgvD,UACtB4G,gBAAiBl7D,KAAKsF,MAAM41D,gBAC5BC,cAAen7D,KAAKsF,MAAM61D,cAC1BC,iBAAkBp7D,KAAKo7D,iBACvBnG,kBAAmBj1D,KAAKi1D,kBACxBoG,gBAAiBr7D,KAAKq7D,gBACtBtF,WAAY,aACZxM,SAAU,SAAAC,GAAQ,OAAK9jD,EAAK87D,yBAA2BhY,GAC5BwR,0BAA2Bh7D,KAAKsF,MAAM01D,6BAIlE/wC,EAAmBD,gBAAgBxb,OAAS,GAC5C+R,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cACrB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACwB2e,EAAAhgB,EAAAC,cAAC4hE,GAAD,CACIrgC,iBAAoB9X,EAAmB8X,iBACvCxX,WAAYN,EAAmBD,gBAC/BulB,UAAWvvC,KAAKsnD,gBAMzD/mC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,MAAOpH,WAAW,YACzDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC0hE,GAAD,CACCjC,SAAU,QACVF,WAAY,CAAEt3D,MAAO,IAAKoyB,OAAQ,KAClC+kC,MAAO5/D,KAAKyhE,eACZ7a,QAAS5mD,KAAK0hE,oBAGhBnhD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAW1G,UAAWP,EAAQisE,QAASvrE,QAAQ,YAAYmgB,KAAK,QAAQ3Z,QAASpH,KAAK2qE,QAArG,YASJ3qE,KAAKsF,MAAM8kE,eAAiBR,IAAiBqB,EAAcz8D,OAAS,GACpE+R,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQgd,YACtB+tD,EAAcxpE,IAAI,SAACC,EAAGC,GACtB,IAAIyqE,EAAQ,GAEZ,OADU,IAANzqE,IAASyqE,EAAQ,SACd7rD,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAKH,EAAEuK,GAAI8W,IAAKrhB,EAAE2qE,aAAcppD,IAAI,SAASxiB,UAAWK,KAAWZ,EAAQ8iB,MAAO,SAAUopD,OAEzG7rD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAK+qE,SAAUtqE,UAAWP,EAAQosE,WAAzF,WAMDtsE,KAAKsF,MAAM8kE,eAAiBN,IAC5BvpD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+rE,eACvB1rD,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,qBACrB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAAC+rE,GAAD,CAAoB5F,cAAe3mE,KAAK2mE,gBAEb,gBAA1B3mE,KAAKsF,MAAMi0D,YACXh5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC0hE,GAAD,CACCjC,SAAU,QACVF,WAAY,CAAEt3D,MAAO,IAAKoyB,OAAQ,KAClC+kC,MAAO5/D,KAAK4qE,6BACZhkB,QAAS5mD,KAAK6qE,kCAIjBtqD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAK8qE,aAA5D,aAUL9qE,KAAKsF,MAAM8kE,eAAiBJ,IAC5BzpD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+rE,eACvB1rD,EAAAhgB,EAAAC,cAACgsE,GAAD,CAA8BxrE,eAAgBhB,KAAKohE,mBAIxB,iCAA5BphE,KAAKsF,MAAM8kE,cACX7pD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+rE,eACvB1rD,EAAAhgB,EAAAC,cAACisE,GAAD,CAAyBzrE,eAAgBhB,KAAKohE,mBAIhD7gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAnZvGnE,IAAM5D,YA+bzBgM,gBA9BS,SAAShL,GAEhC,MAAO,CAAE2kB,mBAD2D3kB,EAA5D2kB,mBACqBq7C,wBADuChgE,EAAxCggE,wBAC0B8F,WADc9lE,EAAf8lE,aAI3B,SAAS/6D,GACnC,MAAO,CACNi0B,uBAAwB,SAAA+F,GAAO,OAAIh6B,EAASi0B,GAAuB+F,KACnE++B,2BAA4B,SAAA/+B,GAAO,OAAIh6B,ExD1PQ,CAChDV,KAzMqC,mCwDmcpCg2B,sBAAuB,SAAA0E,GAAO,OAAIh6B,EAASs1B,GAAsB0E,KACjEk3B,sBAAuB,kBAAMlxD,ExDqIa,CAC3CV,KA3iB+B,6BwDsa9B46D,8BAA+B,SAAAxvD,GAAA,IL/UYlG,EK+UTgQ,EAAH9J,EAAG8J,MAAOmE,EAAVjO,EAAUiO,WAAYuB,EAAtBxP,EAAsBwP,WAAY2xC,EAAlCnhD,EAAkCmhD,UAAW/5B,EAA7CpnB,EAA6ConB,aAA7C,OAC9B9xB,ELzUQ,CACHV,KA5GkC,oCA6GlCi5B,QAAS,CAAE/jB,OAT0BhQ,EKiVX,CAC7BgQ,QACAmE,aACAuB,aACA2xC,YACA/5B,iBLrVDtd,MAQsBmE,WAHpBnU,EAJFmU,WAOkCuB,WAHhC1V,EAHF0V,WAM8C2xC,UAH5CrnD,EAFFqnD,UAKyD/5B,aAHvDttB,EADFstB,iBKoVF1oB,eAAgB,SAAC3M,EAAG6D,GAAJ,OAAUN,EAASoJ,aAAe3M,EAAG6D,KACrD6zD,4BAA6B,SAAAtI,GAAS,OAAI7rD,EAASm0D,GAA4BtI,KAC/EmL,aAAc,kBAAMh3D,EAASg3D,OACvBza,iCAAkC,SAACyH,GAAD,OAAsBhkD,EAASu8C,GAAiCyH,KAClG7vB,gBAAiB,SAACzsB,GAAD,OAAY1H,EAASm0B,GAAgBzsB,OAK/CzH,CAA6CpO,qBAtC7C,SAAAC,GAAK,MAAK,CACxB8pE,cAAe,CAAEnQ,YAAa,GAAI4Q,aAAc,GAAIhqE,WAAY,IAChEypE,QAAS,CAAE7pE,aAAc,GAAIu4B,OAAQ,IACrCyxC,UAAW,CAAE9pE,SAAU,WAAY+a,IAAK,OAAQG,MAAO,QACvDsF,MAAO,CAAE2pD,UAAW,QAAS9xC,OAAQ,QAASpyB,MAAO,OAAQjG,SAAU,YACvE0a,WAAY,CAAE2d,OAAQ,QAASpyB,MAAO,OAAQ2U,WAAY,QAASwvD,SAAU,SAAUpqE,SAAU,cAiCtCN,CAAmBm+D,2BChezEwM,oLAEO,IACE3sE,EAAWF,KAAKC,MAAhBC,QAOD8T,EAAwBpO,YAAe,CAACvH,OACxCyuE,EAAsBlnE,YAAe,CAACzH,OAE5C,OACIoiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKxM,GACDuM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAXT,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAACusE,GAAA,EAAD3qE,OAAAyF,OAAA,CAASC,GAAI,2BAA+B7H,EAA5C,CAC9B8H,gBAAiB7H,EAAQ8H,YAUrB,cACC8kE,GAAuBvsD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAVnC,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAACusE,GAAA,EAAD3qE,OAAAyF,OAAA,CAASC,GAAI,yBAA6B7H,EAA1C,CAC5B8H,gBAAiB7H,EAAQ8H,YASG,oBAjBdE,IAAM5D,WA6BjBpC,wBANA,SAAAC,GAAK,MAAK,CACrB6F,OAAQ,CACJU,gBAAiBvG,EAAMwG,QAAQC,OAAOC,YAI/B3G,CAAmB2qE,ICrB5BG,+LAGEl+D,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,2CAIA,OACI4c,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACrBmf,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MACCj5D,eAA2BuM,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,6BACvCkM,gBAA4BC,eAA4BE,gBAC3DoM,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,2BACXkM,gBAA4BC,gBAA6BE,eAA4BD,eACxFqM,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,mCAlBdI,IAAM5D,WAyBX0oE,yBCTThlD,eACF,SAAAA,EAAY/nB,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgoB,IACfxjB,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4lB,GAAApjB,KAAA5E,KAAMC,KAaVqJ,kBAdmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAcC,SAAAC,IAAA,IAAAyjE,EAAAz/D,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAEO,KADnBqjE,EAAUhnE,aAAaC,QAAQ+R,OACvB3J,SAAc2+D,EAAU,OACpC3oE,EAAK4oE,yBAAyB,MAAOD,GAHrBvjE,EAAAE,KAAA,EAKCtF,EAAKvE,MAAMm4C,mBALZ,OAKV1qC,EALU9D,EAAAkE,KAMhBtJ,EAAKU,SAAS,CACVizC,aAAc,CACV,CACIt2C,IAAK,iBACL+N,MAAO,mBACPD,KAAM,qBAEV,CAAE9N,IAAK,MAAO+N,MAAO,OAAQD,KAAM,OAAQoQ,UAAU,GACrD,CACIle,IAAK,0BACL+N,MAAO,gCACPD,KAAM,qBAEV,CAAE9N,IAAK,cAAe+N,MAAO,gBAAiBD,KAAM,QACpD,CACI9N,IAAK,eACL+N,MAAO,iBACPD,KAAM,SACN4sB,QAAU7uB,GAAMA,EAAGmL,QAAW,OAxB1B,wBAAAjP,EAAAc,SAAAhB,EAAA1J,SAdDwE,EA4CtB6oE,iBAAmB,WAClB,IAGIr4D,EAHWnS,eACQM,QAEH,uBAEpB,IACC,IAAImqE,EAASlrE,OAAA+d,EAAA,EAAA/d,CAAA,CAAImrE,OAAQ,MAAOC,KAAK,QAAWj9D,eAE9Bk9D,MAAMz4D,EAAIs4D,GAAWjW,KAAK,SAAChiD,GAE5C,IAAKA,EAASq4D,GAEb,MADAr3C,QAAQC,IAAI,SAASthB,EAAI,oBAAoBK,GACvC,IAAI8R,MAAM9R,GAGFA,EAAS2/C,OAAOqC,KAAK,SAAAsW,GAEnCC,kBAAOD,EAAU,6BACbv4D,MAAM,SAAA3B,GAAS4iB,QAAQC,IAAI,gCAAgC7iB,OAG9D2B,MAAM,SAAAy4D,GAAUx3C,QAAQC,IAAI,yCAAyCu3C,KAIrE,MAAOh+D,GAEV,MADAwmB,QAAQxmB,MAAM,0BAA2BA,GACnC,IAAIsX,MAAMtX,KAxEIrL,EA4EnB26C,OAAS,SAACwI,EAAemmB,GACQ,IAAzBnmB,EAAcn5C,QACdhK,EAAKU,SAAS,CACV6oE,aAAcpmB,EAAc,GAC5BqmB,OAAQ,KAhFDxpE,EAqFnBypE,cAAgB,SAAAp0D,GAMV,IALF2O,EAKE3O,EALF2O,eACAvP,EAIEY,EAJFZ,IACAmM,EAGEvL,EAHFuL,wBACAyD,EAEEhP,EAFFgP,YACA6X,EACE7mB,EADF6mB,aAEA,IAAKlY,EAED,OADAhkB,EAAK0pE,mBAAmB,mCACjB,EAEX,IAAKj1D,EAED,OADAzU,EAAK0pE,mBAAmB,uBACjB,EAEX,IAAKxtC,EAED,OADAl8B,EAAK0pE,mBAAmB,iCACjB,EAGX,IAAK9oD,EAID,OAHA5gB,EAAK0pE,mBACD,gDAEG,EAEX,IAAKrlD,EAED,OADArkB,EAAK0pE,mBAAmB,gCACjB,EAGX,IAAIC,EAAe5nE,MAASkqB,IAAI,EAAG,QACnC,OAAMxc,eAA4BD,gBAE1BzN,IAAOiiB,GAAgBhd,SAAS2iE,IASpC5nE,IAAOiiB,GAAgB/T,QAAQlO,IAAO6e,MACtC5gB,EAAK0pE,mBACD,8DAEG,IAZH1pE,EAAK0pE,mBACD,qDAEG,IA3HA1pE,EA0InB0pE,mBAAqB,SAAA7pE,GACjBG,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBjI,EACjBgI,gBAAiB,WA9IN7H,EAkJnB88D,SAlJmBl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkJR,SAAAmB,IAAA,IAAA8C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,WACWtF,EAAKypE,cAAczpE,EAAKvE,MAAMk4C,cADzC,CAAAttC,EAAAf,KAAA,eAAAe,EAAAf,KAAA,EAGctF,EAAKvE,MAAMmuE,oBACxB5pE,EAAKc,MAAMyoE,aACXvpE,EAAKvE,MAAMk4C,cALZ,QAGGzqC,EAHH7C,EAAAiD,MAOAC,QACGvJ,EAAKU,SAAS,CAAEmpE,oBAAoB,IACpC7pE,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,UAZxB,wBAAAxB,EAAAH,SAAAE,EAAA5K,SAlJQwE,EAmKnB4oE,yBAA2B,SAACvrE,EAAKoL,GAC7B,IAAIkrC,EAAe3oB,GAAUhrB,EAAKvE,MAAMk4C,cACxCA,EAAat2C,GAAOoL,EACpBzI,EAAKvE,MAAMquE,mBAAmBn2B,IAtKf3zC,EAyKnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA1Kf5H,EA6KnB+pE,MAAQ,WACJxpE,OAAOD,SAAW,cA9KHN,EAiLnBgqE,oBAAsB,WAClBzpE,OAAOD,SAAW,2BAlLHN,EAqLnBiqE,sBAAwB,WACpBjqE,EAAKU,SAAS,CAAEmpE,oBAAoB,KApLpC7pE,EAAKc,MAAQ,CACT26C,WAAW,EACX8tB,aAAc,GACd51B,aAAc,GACd/rC,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBlM,WAAW,EACXkuE,oBAAoB,GAVT7pE,wEA0Lf,OACI+b,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItc,KAAMlE,KAAKsF,MAAM+oE,mBACjBlqE,QAASnE,KAAKyuE,uBAEdluD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,6EAGI2f,EAAAhgB,EAAAC,cAAA,WAHJ,+CAOJ+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAKuuE,MAAOpnE,MAAM,WAAnC,OAGAoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIpZ,QAASpH,KAAKwuE,oBACdrnE,MAAM,UACNqoC,WAAS,GAHb,yBAURjvB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,UACNvG,QAAS,YACTwG,QAASpH,KAAKqtE,kBAHlB,yBASJ9sD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WAAY58B,KAAKsF,MAAM6yC,aACvBxc,WAAY37B,KAAKC,MAAMk4C,aACvBtrC,cAAe7M,KAAKotE,4BAI5B7sD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACopD,GAAD,CACIzK,OAAQn/C,KAAKm/C,OACbC,OAAQ,YAGXp/C,KAAKsF,MAAMyoE,aAAa77C,MACrB3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAM,WACbnH,KAAKsF,MAAMyoE,aAAa77C,OAKrC3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,OACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAQ,YACRuG,MAAM,UACNC,QAASpH,KAAKshE,SACdvhD,SACoC,MAAhC/f,KAAKsF,MAAMyoE,aAAa77C,MALhC,cAehB3R,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BA/QNnE,IAAM5D,WAwSzBgM,eAlBS,SAAShL,GAG7B,MAAO,CACH6yC,aAH0B7yC,EAAtBszC,kBACAT,eAMe,SAAS9nC,GAChC,MAAO,CACH+9D,oBAAqB,SAACM,EAAMv2B,GAAP,OACjB9nC,EtClSuB,SAACq+D,EAAMv2B,GAAP,sBAAAtjC,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAwB,SAAAC,EAAM2G,GAAN,IAAAg1B,EAAAspC,EAAAC,EAAAC,EAAAC,EAAAz1D,EAAAxJ,EAAAnC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACvDuG,EAASkoC,OAEHlT,EAAW,IAAIyjB,UACZC,OAAO,YAAa2lB,EAAMA,EAAKx8C,MACpCy8C,EAAgB,kBAAoBx2B,EAAa3vB,eACjDomD,EAAY,OAASz2B,EAAal/B,IAClC41D,EAAoB,2BAA6B12B,EAAa/yB,wBAC9D0pD,EAAoB,eAAiB32B,EAAatvB,YAClDxP,EAAS,IAAMs1D,EAAgB,IAAMC,EAAY,IAAMC,EAAoB,IAAMC,EACjF32B,GAAgBA,EAAazX,eAC7BrnB,GAAU,iBAAmB8+B,EAAazX,cAE1C7wB,EAAQ,GAb2CjG,EAAAE,KAAA,GActCoL,KAAMM,KAAKrS,GAAU,wBAA0BkW,EAAQgsB,EAAU90B,eAAwB6E,MAAM,SAAAnQ,GAC5G,IAAKrF,aAAqBqF,EAAEoQ,SAASC,QAAU,KACVjR,EAAcY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,QAEjC,OADAwL,EAAQxL,EACD,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,aAE3C,MAAO,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBApBjB,YAcjD5H,EAdiD9D,EAAAkE,MAsB/CL,KAtB+C,CAAA7D,EAAAE,KAAA,gBAuBnDuG,EAASooC,GAAoB,CAAC5oC,MAAOA,KAvBcjG,EAAA2L,OAAA,SAwB5C,CAACxH,SAAS,EAAO1J,QAAS,wBAxBkB,YA0BnDqJ,EAAGD,KAAKM,QA1B2C,CAAAnE,EAAAE,KAAA,gBA2BnDuG,EAASmoC,MA3B0C5uC,EAAA2L,OAAA,SA4B5C,CAACxH,SAAS,EAAM1J,QAAS,KA5BmB,eA8BnDgM,EAASooC,GAAoB,CAAC5oC,MAAOA,KA9BcjG,EAAA2L,OAAA,SA+B5C,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA/BI,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAxB,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GsCkSdy7D,CAAoBM,EAAMv2B,KACvCm2B,mBAAoB,SAAAn2B,GAAY,OAC5B9nC,EtC1NsB,SAAC8nC,GAAD,MAAmB,CACjDxoC,KA7FyB,uBA8FzBwoC,gBsCwNiBm2B,CAAmBn2B,KAChCC,iBAAkB,kBAAM/nC,EAAS+nC,SAI1B9nC,CAGb0X,aCxTI+mD,GAAc,cAEdC,eACF,SAAAA,EAAY/uE,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgvE,IACfxqE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4sE,GAAApqE,KAAA5E,KAAMC,KAeVqJ,kBAhBmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgBC,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,6BADgB,wBAAAiG,EAAAc,SAAAhB,EAAA1J,SAhBDwE,EA0BnB8e,OAAS,SAAAd,GAC2B,qBAA5Bhe,EAAKc,MAAMssB,cAAqCptB,EAAKvE,MAAMkO,QAAQC,KAAK,yBAA2BoU,EAAIvW,IAC3E,oBAA5BzH,EAAKc,MAAMssB,cAAoCptB,EAAKvE,MAAMkO,QAAQC,KAAK,2BAA6BoU,EAAIvW,KA5B7FzH,EA+BnBgf,SAAW,SAAAhB,GACPhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMiE,cAAenU,KAhCvChe,EAmCnBguB,gBAnCmBpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAmCD,SAAAmB,IAAA,IAAAyC,EAAAspB,EAAAxO,EAAA1a,EAAAC,EAAA0kB,EAAA,OAAAnF,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAuD,EACqB7I,EAAKc,MAAjCqxB,EADOtpB,EACPspB,cAAexO,EADR9a,EACQ8a,UAChB1a,EAAO,CAACxB,GAAI0qB,EAAc1qB,IAFlBpB,EAAAf,KAAA,EAGGtF,EAAKvE,MAAMwtB,UAAUhgB,GAHxB,QAGRC,EAHQ7C,EAAAiD,MAIPC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,SAAWqqB,EAAczO,MAAQ,WAClDwK,kBAAkB,EAClBiE,cAAe,KAEbvE,EAAaxsB,YAAe,kBAClCpB,EAAKvE,MAAM0sB,YAAY,CAACxE,YAAW0E,WAAYuF,KAE/C5tB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,EAClBiE,cAAe,KApBT,wBAAA9rB,EAAAH,SAAAE,EAAA5K,SAnCCwE,EA4DnB+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,EAAOiE,cAAe,MA7DxCnyB,EAgEnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAjEd5H,EAoEnByqE,cAAgB,SAAAC,GAAU,OAAI1qE,EAAKU,SAAS,CAACgqE,gBApE1B1qE,EAsEnBqtB,gBAAkB,SAAC1J,EAAWyJ,GAC1BptB,EAAKU,SAAS,CAACijB,YAAWyJ,kBArE1BptB,EAAKc,MAAQ,CACT4pE,WAAYH,GACZxL,gBAAiB,GACjBpjE,WAAW,EACXiM,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBulB,aAAc,kBACdzJ,UAAWpE,EACX2O,kBAAkB,EAClBiE,cAAe,IAZJnyB,kFAoBAitB,EAAWC,IACa,IAAnCD,EAAUrG,uBAAqE,IAApCprB,KAAKC,MAAMmrB,sBACtDprB,KAAKkF,SAAS,CAACiqE,eAAgBnvE,KAAKC,MAAMqrB,0CAoDzC,IAAA5lB,EAAA1F,KAAAD,EAC4DC,KAAKC,MAA/DC,EADFH,EACEG,QAASkrB,EADXrrB,EACWqrB,qBAAsB4sB,EADjCj4C,EACiCi4C,wBADjC9oC,EAE2DlP,KAAKsF,MAFhEwxB,GAAA5nB,EAEEwjB,iBAFFxjB,EAEoBynB,eAFpBG,EAEoC5O,MAFpC4O,EAE2CC,YAEhD,OACIxW,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WAIpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAAoBV,UAAWirB,GAAwB4sB,GACzEz3B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAEnCzP,KAAKsF,MAAM4pE,aAAeH,IACvBxuD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC4uE,GAAD,CAAqBC,OAAQ,kBAAM3pE,EAAKupE,cAlG1D,oBA0GF1uD,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,KAAMhC,KAAKsF,MAAMnF,YACnCogB,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAzG/CnE,IAAM5D,WA4IrBgM,eAxBS,SAAUhL,GAAO,IAC9BszC,EAA4DtzC,EAA5DszC,kBAAmBxqB,EAAyC9oB,EAAzC8oB,kBAAmBnE,EAAsB3kB,EAAtB2kB,mBAEtCqB,EAAgC8C,EAAhC9C,OAAQF,EAAwBgD,EAAxBhD,qBACR4sB,EAAoEY,EAApEZ,wBAAyBD,EAA2Ca,EAA3Cb,qBAAsBloC,EAAqB+oC,EAArB/oC,MAAO8oC,EAAcC,EAAdD,WAE7D,MAAO,CACH3uB,gBAAiBC,EAAmBD,gBACpCguB,0BACAD,uBACAloC,QACA8oC,aACArtB,SACAF,yBAImB,SAAU/a,GACjC,MAAO,CACHsc,YAAa,SAAA1S,GAAA,IAAEkO,EAAFlO,EAAEkO,UAAW0E,EAAb5S,EAAa4S,WAAb,OAA6Bxc,EAASsc,GAAY,CAACxE,YAAW0E,iBAC3EY,UAAW,SAAAhgB,GAAI,OAAI4C,EAASod,GAAUhgB,OAI/B6C,CAA6CpO,qBA5B7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aA2BmCe,CAAmB8sE,KC9IzEA,eACF,SAAAA,EAAY/uE,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgvE,IACfxqE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4sE,GAAApqE,KAAA5E,KAAMC,KAaVqJ,kBAdmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAcC,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,2BAEAa,EAAKU,SAAS,CAAC0sB,aAAc,qBAHb,wBAAAhoB,EAAAc,SAAAhB,EAAA1J,SAdDwE,EA0BnB8e,OAAS,SAAAd,GAC2B,qBAA5Bhe,EAAKc,MAAMssB,cAAqCptB,EAAKvE,MAAMkO,QAAQC,KAAK,yBAA2BoU,EAAIvW,IAC3E,oBAA5BzH,EAAKc,MAAMssB,cAAoCptB,EAAKvE,MAAMkO,QAAQC,KAAK,2BAA6BoU,EAAIvW,KA5B7FzH,EA+BnBgf,SAAW,SAAAhB,GACPhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMiE,cAAenU,KAhCvChe,EAmCnBguB,gBAnCmBpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAmCD,SAAAmB,IAAA,IAAAyC,EAAAspB,EAAAxO,EAAA1a,EAAAC,EAAA0kB,EAAA,OAAAnF,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAuD,EACqB7I,EAAKc,MAAjCqxB,EADOtpB,EACPspB,cAAexO,EADR9a,EACQ8a,UAChB1a,EAAO,CAACxB,GAAI0qB,EAAc1qB,IAFlBpB,EAAAf,KAAA,EAGGtF,EAAKvE,MAAMwtB,UAAUhgB,GAHxB,QAGRC,EAHQ7C,EAAAiD,MAIPC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,SAAWqqB,EAAczO,MAAQ,WAClDwK,kBAAkB,EAClBiE,cAAe,KAEbvE,EAAaxsB,YAAe,kBAClCpB,EAAKvE,MAAM0sB,YAAY,CAACxE,YAAW0E,WAAWuF,KAE9C5tB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,EAClBiE,cAAe,KApBT,wBAAA9rB,EAAAH,SAAAE,EAAA5K,SAnCCwE,EA4DnB+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,EAAOiE,cAAe,MA7DxCnyB,EAgEnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAjEd5H,EAoEnBqtB,gBAAkB,SAAC1J,EAAWyJ,GAC1BptB,EAAKU,SAAS,CAACijB,YAAWyJ,kBAnE1BptB,EAAKc,MAAQ,CACTnF,WAAW,EACXiM,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBulB,aAAc,GACdzJ,UAAWnE,EACX0O,kBAAkB,EAClBiE,cAAe,IAVJnyB,kFAoBAitB,EAAWC,IACa,IAAnCD,EAAUrG,uBAAqE,IAApCprB,KAAKC,MAAMmrB,sBACtDprB,KAAKkF,SAAS,CAACiqE,eAAgBnvE,KAAKC,MAAMqrB,0CAkDzC,IAAAvrB,EAC2CC,KAAKC,MAA9CC,EADFH,EACEG,QAASorB,EADXvrB,EACWurB,OAAQF,EADnBrrB,EACmBqrB,qBADnBlc,EAEoFlP,KAAKsF,MAAvF6iB,EAFFjZ,EAEEiZ,UAAWyJ,EAFb1iB,EAEa0iB,aAAcc,EAF3BxjB,EAE2BwjB,iBAF3BoE,EAAA5nB,EAE6CynB,cAAgBzO,EAF7D4O,EAE6D5O,MAAO6O,EAFpED,EAEoEC,YAEzE,OACIxW,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACw2B,GAAD,CAActE,iBAAkBA,EAC5BJ,YAAa,yCACbC,eAAgBvyB,KAAKuyB,eAAgBC,gBAAiBxyB,KAAKwyB,iBAC3DjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUsnB,KAGvC3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUm2B,OAM/CxW,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBAAkBV,UAAWirB,GAC/C7K,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIC,QAAS,YACvCkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC02B,GAAD,CACItF,aAAcA,EACdC,gBAAiB7xB,KAAK6xB,oBAGlCtR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC22B,GAAD,CACItN,aAAcyB,EAGdnD,UAAWA,QAO/B5H,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,KAAMhC,KAAKsF,MAAMnF,YACnCogB,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAnI/CnE,IAAM5D,WAsKrBgM,eAxBS,SAAUhL,GAAO,IAC9BszC,EAA4DtzC,EAA5DszC,kBAAmBxqB,EAAyC9oB,EAAzC8oB,kBAAmBnE,EAAsB3kB,EAAtB2kB,mBAEtCqB,EAAgC8C,EAAhC9C,OAAQF,EAAwBgD,EAAxBhD,qBACR4sB,EAAoEY,EAApEZ,wBAAyBD,EAA2Ca,EAA3Cb,qBAAsBloC,EAAqB+oC,EAArB/oC,MAAO8oC,EAAcC,EAAdD,WAE7D,MAAO,CACH3uB,gBAAiBC,EAAmBD,gBACpCguB,0BACAD,uBACAloC,QACA8oC,aACArtB,SACAF,yBAImB,SAAU/a,GACjC,MAAO,CACHsc,YAAa,SAAA1S,GAAA,IAAEkO,EAAFlO,EAAEkO,UAAWiK,EAAbnY,EAAamY,WAAb,OAA6B/hB,EAASsc,GAAY,CAACxE,YAAWiK,iBAC3E3E,UAAW,SAAAhgB,GAAI,OAAI4C,EAASod,GAAUhgB,OAI/B6C,CAA6CpO,qBA5B7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aA2BmCe,CAAmB8sE,KC/J3E3/B,GAAU,GAERkgC,8MACF1iE,cAAgB,SAACZ,EAAIa,EAAG7H,GACpB,IAAM0L,EAAI1L,EAAE+H,OAAS/H,EAAE+H,OAAOC,MAAQhI,EACtCT,EAAKvE,MAAMwsB,gBAAgBxgB,EAAIa,EAAG6D,GAC9B1L,EAAE+H,QAAQxI,EAAKgrE,mCAAmCvjE,EAAIa,EAAG7H,EAAE+H,OAAOC,UAe1EwiE,mBAAqB,SAAApgC,GAAW,IACrBnvC,EAAWsE,EAAKvE,MAAhBC,QAEP,OAAOqgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ/f,UAAWP,EAAQwvE,aAC9BtoE,QAAS,kBAAM5C,EAAKvE,MAAM0vE,oBAAoBtgC,KAAWhlB,GAA0BglB,EAAQtf,WAGnG6/C,iBAAmB,SAAChgD,EAAM7xB,GAAM,IAAAgC,EACAyE,EAAKvE,MAA1BC,EADqBH,EACrBG,QAAS2vE,EADY9vE,EACZ8vE,SAEhB,OAAOtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ/f,UAAWP,EAAQ4vE,WAC9B1oE,QAAS,kBAAM5C,EAAKvE,MAAM8vE,kBAAkBngD,EAAM7xB,IAClDgiB,UAAkC,IAAxBhiB,EAAEoxB,YAAYliB,OAAkB4iE,GAFvC,SAKXrsD,SAAW,SAAAvX,GACPzH,EAAKvE,MAAMssB,aAAatgB,MAG5B+jE,OAAS,SAAA/jE,GACLzH,EAAKvE,MAAMusB,aAAavgB,MAG5BgkE,YAAc,SAAAlgD,GAAS,IACZ7vB,EAAWsE,EAAKvE,MAAhBC,QACP,OAAOqgB,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQ6vB,OAAQA,MAG5CmgD,cAAgB,SAAAnyE,GAAK,IACVmC,EAAWsE,EAAKvE,MAAhBC,QAEP,OAAInC,EAAE+wB,aAAqB5uB,EAAQ00B,QAC/B72B,EAAE8R,MAAc3P,EAAQiwE,oBAA5B,qGA5C+BlkE,EAAIa,EAAG6D,GAAG,IAErCy/D,EADepwE,KAAKC,MAAMmuB,kBAAzB7D,WAC4BnY,KAAK,SAAAqd,GAAS,OAAIA,EAAUxjB,GAAGgB,QAAUhB,IACrEmkE,GACAA,EAAgB1gD,aAAaziB,OAG9BjN,KAAKC,MAAMowE,kCAAkCvjE,EAAG6D,oCA2C/C,IAAAjL,EAAA1F,KAAA0mB,EAC0D1mB,KAAKC,MAA7DC,EADFwmB,EACExmB,QAASsQ,EADXkW,EACWlW,QAAS/C,EADpBiZ,EACoBjZ,KAAM6iE,EAD1B5pD,EAC0B4pD,SAAUT,EADpCnpD,EACoCmpD,SAAUU,EAD9C7pD,EAC8C6pD,SAEnD,OACIhwD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,UAAY,0BAClCof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOje,QAAS,SACZge,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKhQ,EAAQ/O,IAAI,SAAA+uE,GACT,OAAOjwD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK2uE,GAAIA,OAIvCjwD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK/S,EAAKhM,IAAI,SAAC1D,EAAG4D,GACV,OAAO4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK9D,EAAEkO,GAAGgB,MAAQ,IAAMtL,EACrClB,UAAWiF,EAAKwqE,cAAcnyE,IAC7BuyE,EAAS7uE,IAAI,SAAAqL,GACV,GAAU,QAANA,EAAa,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GACxC4e,EAAAhgB,EAAAC,cAAA,WAAMmB,EAAI,IAGd,GAAU,cAANmL,EAAmB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAC9C4e,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQuwE,eACnB1yE,EAAEkO,GAAGgB,QAAUsjE,GAAYhwD,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQ0pC,IAAzB,KAC5BrpB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,MACZ8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,SAK/B,GAAU,aAANjjB,EAAkB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAC7C4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,MACZ8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,QAG3B,GAAU,eAANjjB,EAAoB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAC/C4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,MACZ8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,QAG3B,GAAU,gBAANjjB,EAAqB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAChD4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,MACZ8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,QAG3B,GAAU,eAANjjB,EAAoB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAC/C4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,OAAS,GACrB8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,QAG3B,GAAU,gBAANjjB,EAAqB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAChD4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAOlP,EAAE+O,GAAGG,OAAS,GACrB8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAKuqE,YAAYlyE,EAAE+O,GAAGijB,QAG3B,GAAU,QAANjjB,EAAa,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GACxC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAAQ4G,KAAM,OAC3C1C,MAAOuE,YAAsBzT,EAAE+O,GAAGG,OAClC8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEb9xE,EAAE+O,GAAGijB,OAGV,GAAU,oBAANjjB,EAAyB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAChC3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAClByT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAAQ4G,KAAM,OAC3C1C,MAAOuE,YAAsBzT,EAAE+O,GAAGG,OAClC8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEb9xE,EAAE+O,GAAGijB,OAGV,GAAU,qBAANjjB,EAA0B,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACjC3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAClByT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAAQ4G,KAAM,OAC3C1C,MAAOuE,YAAsBzT,EAAE+O,GAAGG,QAAU,GAC5C8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEb9xE,EAAE+O,GAAGijB,OAGV,GAAU,oBAANjjB,EAAyB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAChC3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAClByT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAAQ4G,KAAM,OAC3C1C,MAAOuE,YAAsBzT,EAAE+O,GAAGG,QAAU,GAC5C8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEb9xE,EAAE+O,GAAGijB,OAGV,GAAU,qBAANjjB,EAA0B,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACjC3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAClByT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAAQ4G,KAAM,OAC3C1C,MAAOuE,YAAsBzT,EAAE+O,GAAGG,QAAU,GAC5C8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAOH,EAAG7H,IACjDwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEb9xE,EAAE+O,GAAGijB,OAGV,GAAU,WAANjjB,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAEga,OAAO9K,OAIlB,GAAU,4BAANH,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAEujC,wBAAwBr0B,OAInC,GAAU,yBAANH,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAEsiC,qBAAqBpzB,OAIhC,GAAU,yBAANH,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAEuiC,qBAAqBrzB,OAIhC,GAAU,iBAANH,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAEksD,aAAah9C,OAIxB,GAAU,iBAANH,EACA,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAC/B/O,EAAE2xB,aAAaziB,OAAS,OAIjC,GAAU,YAANH,EAAiB,CACA,CAAC,WAAY,WAAY,WAAY,YAC7CwB,QAAQ,SAAAw/B,GACT/vC,EAAE+vC,IAAKuB,GAAQjhC,KAAKrQ,EAAE+vC,MAE9B,IAAMg7B,EAAQz5B,GAAQ5tC,IAAI,SAACkP,EAAGggE,GAC1B,GAAgB,OAAZhgE,EAAE1D,OAA8B,OAAZ0D,EAAEof,MACtB,OAAOxP,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAKiL,EAAI6jE,GAChBpwD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0wE,aACpBrwD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,QAC7BkE,MAAO0D,EAAE1D,MACT8C,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAO,WAAa0jE,EAAK,GAAI1rE,IACpEwqC,WAAY,CACRvvC,QAAS,CACL8xB,MAAO9xB,EAAQwwE,KAGvB3wD,SAAU8vD,IAEbnqE,EAAK+pE,mBAAmB9+D,IACvBk/D,GAAYnqE,EAAKkqE,iBAAiBjuE,EAAG5D,OAOvD,OAFAsxC,GAAU,GAEH9uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GACvB4e,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ2wE,IAAK/H,IAIpC,MAAU,QAANh8D,EACOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAGgB,MAAQH,GAChCyT,EAAAhgB,EAAAC,cAAA,SAAIzC,EAAE4iC,IAAI1zB,OAETvH,EAAKuqE,YAAYlyE,EAAE8R,OAAS9R,EAAE8R,MAAMxL,UAInC,mBAANyI,EACOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GAAI+P,YAAoB3T,EAAEyqB,eAAevb,QAG9D,YAANH,GAAoB+iE,EAWd,WAAN/iE,GAAmB+iE,OAAvB,EACWtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,IACrB5D,EAAE+wB,cACJvO,EAAAhgB,EAAAC,cAAC+iB,EAAD,CACIxD,SAAUhiB,EAAEoxB,YAAYliB,MACxB7F,QAAS,kBAAM1B,EAAK8d,SAASzlB,EAAEkO,GAAGgB,UAErClP,EAAE+wB,cACHvO,EAAAhgB,EAAAC,cAACovC,GAAD,CACI7vB,SAAUhiB,EAAEoxB,YAAYliB,MACxB7F,QAAS,kBAAM1B,EAAKsqE,OAAOjyE,EAAEkO,GAAGgB,WApBjCsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKiL,EAAInL,GACvB4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIsC,QAAS/kB,EAAE8wB,QAAQ5hB,MACnB8S,UAAkC,IAAxBhiB,EAAEoxB,YAAYliB,OAAkBlP,EAAE+wB,aAC5C3nB,MAAO,UACP4I,SAAU,kBAAMrK,EAAKmH,cAAc9O,EAAEkO,GAAGgB,MAAO,WAAYlP,EAAE8wB,QAAQ5hB,0BAvU/E3I,aAiavBgM,eAfS,SAAAhL,GAGpB,MAAO,CAAC8oB,kBAFoB9oB,EAArB8oB,oBAKgB,SAAA/d,GACvB,MAAO,CACHoc,gBAAiB,SAAC9qB,EAAGmL,EAAG6D,GAAP,OAAaN,EAASoc,GAAgB9qB,EAAGmL,EAAG6D,KAC7D4b,aAAc,SAAAtgB,GAAE,OAAIoE,EAASkc,GAAatgB,KAC1CugB,aAAc,SAAAvgB,GAAE,OAAIoE,EAASmc,GAAavgB,KAC1CokE,kCAAmC,SAACvjE,EAAG6D,GAAJ,OAAUN,EjF9OJ,SAACvD,EAAG6D,GACjD,MAAO,CACHhB,KA9JuC,yCA+JvC7C,IAAG6D,KiF2OmD0/D,CAAkCvjE,EAAG6D,OAIpFL,CAA6CpO,qBA9D7C,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,UACjB0vE,GAAI,CAACtuE,QAAS,SAAUyG,SAAU,QAASP,MAAO,SAClDioE,GAAI,CAAC1nE,SAAU,SACf0mE,aAAc,CACVvoE,MAAOhF,EAAMwG,QAAQmoE,UAAUC,KAC/B3oE,QAAS,SACT6nC,OAAQ,EACRztC,SAAU,WACVwG,SAAU,QACVuU,IAAK,QACLG,MAAO,QACPiV,SAAU,OACVlwB,UAAW,OACXgG,MAAO,SACPoyB,OAAQ,SACRt4B,QAAS,GAEbutE,WAAY,CACR1nE,QAAS,SACT6nC,OAAQ,EACRztC,SAAU,WACVwG,SAAU,QACVuU,IAAK,QACLG,MAAO,UACPiV,SAAU,OACVlwB,UAAW,OACXgG,MAAO,SACPoyB,OAAQ,SACRt4B,QAAS,GAEbqyB,QAAS,CACLxX,WAAY,OACZ4zD,aAAc,CACV7pE,MAAO,OACP0xB,eAAgB,iBAGxBo4C,QAAS,CAAC7zD,WAAY8zD,QAAK,KAC3BC,QAAS,CAAC/zD,WAAY+wB,QAAK,KAC3BgiC,eAAgB,CAAC/yD,WAAY+wB,QAAK,KAClCpe,MAAO,CAAC5oB,MAAOiqE,OAAG,MAClBR,YAAa,CAACpuE,SAAU,YACxBiuE,cAAe,CAACjuE,SAAU,YAC1BonC,GAAI,CAACpnC,SAAU,WAAY+a,IAAK,QAASE,KAAM,WAkBSvb,CAAmBqtE,KCxbzE8B,8MACFC,YAAc,WACVvsE,OAAOwhD,SAAS,EAAG,4EAInB,OACIhmC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,WAAWwG,QAASpH,KAAKsxE,aAA3D,sBAPiBrvE,iBAYdovE,MCgFTE,eAuBF,SAAAA,EAAYtxE,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAuxE,IACxB/sE,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmvE,GAAA3sE,KAAA5E,KAAMC,EAAOiJ,KAvBjBsoE,cAAgB,CACZ,sBACA,uBACA,sBACA,uBACA,sBACA,uBACA,sBACA,wBAcwBhtE,EAX5BitE,eAAiB,CACb,aACA,kBACA,cACA,mBACA,aACA,kBACA,cACA,oBAGwBjtE,EA4G5B8E,kBA5G4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4GR,SAAAC,IAAA,IAAAgoE,EAAAxmB,EAAAx9C,EAAAmX,EAAAsD,EAAAwpD,EAAAtkE,EAAAukE,EAAAC,EAAAC,EAAA,OAAA7kD,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAEW,MADCtF,EAAKvE,MAAzBsjE,gBACY,GAFJ,CAAA35D,EAAAE,KAAA,gBAGR4nE,GAAiB,GACjBx9D,eAA0BC,iBAC1Bu9D,GAAiB,GALT9nE,EAAAE,KAAA,EAMKtF,EAAKvE,MAAM8xE,sBAAsB,CAC9C7pD,MAAO1jB,EAAKvE,MAAMsjE,gBAClB12C,WAAY6kD,IARJ,QAMNhkE,EANM9D,EAAAkE,MAUJC,SACJvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAdhBuF,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAsBCtF,EAAKvE,MAAMm4C,mBAtBZ,QAsBV1qC,EAtBU9D,EAAAkE,KAuBhBtJ,EAAKU,SAAS,CACV0sE,aAAc,CACV,CACI/vE,IAAK,iBACL+N,MAAO,mBACPD,KAAM,oBACN2sC,cAAc,GAElB,CACIz6C,IAAK,cACL+N,MAAO,gBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,MACL+N,MAAO,OACPD,KAAM,OACN2sC,cAAc,EACdv8B,UAAU,GAEd,CACIle,IAAK,0BACL+N,MAAO,gCACPD,KAAM,oBACN2sC,cAAc,GAElB,CACIz6C,IAAK,eACL+N,MAAO,iBACPD,KAAM,SACN4sB,QAAU7uB,GAAMA,EAAGmL,QAAW,OAKlCgM,EAAUrgB,EAAKvE,MAAf4kB,MACJsD,EAAYvD,GAAaC,GAC7BrgB,EAAKU,SAAS,CAAEijB,cAEZwpD,GAAe,EA/DH/nE,EAAAwsB,GAiERjO,EAjEQve,EAAAE,KAAAF,EAAAwsB,KAkEPtS,EAlEO,GAAAla,EAAAwsB,KAoEPrS,EApEO,GAAAna,EAAAwsB,KA6HPpS,EA7HO,GAAApa,EAAAwsB,KA8OPnS,EA9OO,GAAAra,EAAAwsB,KA+QPjS,GA/QO,GAAAva,EAAAwsB,KAsVPhS,GAtVO,GAAAxa,EAAAwsB,KAwXPlS,EAxXO,GAAAta,EAAAwsB,KAyZP/R,GAzZO,2BAAAza,EAAA2L,OAAA,2BAqEJvB,eAEAxP,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,cACA,WAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,eACA,WAEJ7oE,OAAQ,aACRuf,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,IAEfntE,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,GA1HX/nE,EAAA2L,OAAA,wBA8HJtB,cA9HI,CAAArK,EAAAE,KAAA,gBA+HJtF,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,cACA,YAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,eACA,YAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,EAxJX/nE,EAAA2L,OAAA,wBA4JJpB,cA5JI,CAAAvK,EAAAE,KAAA,gBA6JJtF,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,cACA,YAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,eACA,YAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,EAtLX/nE,EAAA2L,OAAA,2BA0LJvB,cACAxP,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,EAlNX/nE,EAAA2L,OAAA,2BAgPJvB,eACAC,eACAE,eACAD,iBAEA1P,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,GA5QX/nE,EAAA2L,OAAA,2BAiRJvB,eACAC,eACAE,eACAD,iBAEA1P,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,UACA,oBACA,iBACA,iBACA,gBACA,cACA,oBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,SACA,0BACA,uBACA,uBACA,eACA,eACA,mBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,GAEIntE,EAAKvE,MAApBsqB,WA3TA3gB,EAAA2L,OAAA,2BAwVJvB,eACAC,eACAE,eACAD,iBAEA1P,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAEnBP,GAAe,GApXX/nE,EAAA2L,OAAA,2BA0XJtB,eACAE,eACAH,gBAEAxP,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAGvBP,GAAe,EAtZP/nE,EAAA2L,OAAA,2BA0ZJvB,eACAxP,EAAKU,SAAS,CACV8sE,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,gBAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,iBAEJtpD,YACA0nD,UAAU,EACVqC,eAAe,IAGvBP,GAAe,EAnbP/nE,EAAA2L,OAAA,0BAubF,IAAI4R,MAAM,8BAvbR,QA0bZwqD,IAActkE,EACgC7I,EAAKc,MAA7CssE,EADQvkE,EACRukE,aAAcC,EADNxkE,EACMwkE,sBACpBD,EAAatjE,QAAQ,SAAA+D,GACjBA,EAAE0N,UAAW,IAEjB8xD,EAAsBvjE,QAAQ,SAAA+D,GAC1BA,EAAE0N,UAAW,IAEjBvb,EAAKU,SAAS,CAAE0sE,eAAcC,2BAGXrtE,EAAKc,MAApB6sE,cAEEN,EAA0BrtE,EAAKc,MAA/BusE,uBACgBvjE,QAAQ,SAAA+D,GAC1BA,EAAE0N,UAAW,IAEjBvb,EAAKU,SAAS,CAAE2sE,2BA3cJ,yBAAAjoE,EAAAc,SAAAhB,EAAA1J,SA5GQwE,EAqoB5B4tE,iBAAmB,SAACtlE,EAAG6D,GACnBnM,EAAKvE,MAAMoyE,gBAAgB,QAASvlE,EAAG6D,IAtoBfnM,EAyoB5B8tE,0BAA4B,SAACxlE,EAAG6D,GAC5BnM,EAAKvE,MAAMoyE,gBAAgB,aAAcvlE,EAAG6D,IA1oBpBnM,EA6oB5B+tE,kCAAoC,WAChC,IAAItmC,EAAmBznC,EAAKvE,MAAMsqB,WAAWnY,KACzC,SAAAqd,GAAS,OACLA,EAAUxG,UAAUhc,QAAUzI,EAAKvE,MAAM+oB,WAAWC,WACpDwG,EAAUlG,SAAStc,QAAUzI,EAAKvE,MAAM+oB,WAAWO,WAEtD0iB,GAAkBznC,EAAKvE,MAAMuyE,+BAA+B,MAC7DvmC,GACAznC,EAAKvE,MAAMuyE,+BACPvmC,EAAiBhgC,GAAGgB,QAtpBJzI,EA0pB5BiuE,UAAY,SAAAxmE,GACR,IAAMoiB,EAAM7pB,EAAKvE,MAAMsqB,WAAWkE,UAAU,SAAA1wB,GAAC,OAAIA,EAAEkO,GAAGgB,QAAUhB,IAC1DymE,EAAWluE,EAAKvE,MAAMsqB,WAAW8D,GACvC7pB,EAAKU,SAAS,CAAEwtE,WAAU97B,YAAY,KA7pBdpyC,EAgqB5BmuE,YAAc,SAAA1mE,GACVzH,EAAKvE,MAAMssB,aAAatgB,IAjqBAzH,EAoqB5BouE,UAAY,SAAA3mE,GACRzH,EAAKvE,MAAMusB,aAAavgB,IArqBAzH,EAwqB5BquE,WAAa,WACTruE,EAAKU,SAAS,CAAE0xC,YAAY,KAzqBJpyC,EA4qB5BsuE,iBAAmB,SAAChmE,EAAG6D,GACnBnM,EAAKU,SAAS,CACVwtE,SAAStwE,OAAA+d,EAAA,EAAA/d,CAAA,GAAMoC,EAAKc,MAAMotE,SAAlBtwE,OAAA8sB,GAAA,EAAA9sB,CAAA,GAA6B0K,EAAI,CAAEG,MAAO0D,QA9qB9BnM,EAkrB5BuuE,eAlrB4B3wE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkrBX,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACItF,EAAKvE,MAAM+yE,wBACxBxuE,EAAKc,MAAMotE,UAFF,OAAA7nE,EAAAiD,KAINC,SACHvJ,EAAKU,SAAS,CAAE0xC,YAAY,EAAO87B,SAAU,KALpC,wBAAA7nE,EAAAH,SAAAE,EAAA5K,SAlrBWwE,EA4rB5ByuE,iBAAmB,WACfzuE,EAAKU,SAAS,CAAE0xC,YAAY,EAAO87B,SAAU,MA7rBrBluE,EAgsB5B0uE,eAAiB,SAAAjuE,GACbT,EAAKU,SAAS,CAAE0D,OAAQ3D,EAAE+H,OAAOC,SAjsBTzI,EAosB5B2uE,aAAe,SAAA5oD,GACX,IAAI6oD,EAAgB,EAMpB,OALA7oD,EAAWjc,QAAQ,SAAAvQ,IACS,IAApBA,EAAE8wB,QAAQ5hB,QACVmmE,GAAiB,OAGrBA,EAAgB,MAChB5uE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,uCAEd,IAjtBa9H,EAstB5B6uE,yBAA2B,SAAA9oD,GACvB,IAAI7c,GAAK,EACL4lE,EAAiB,EACbC,EAAa/uE,EAAKc,MAAlBiuE,SAH6BvgE,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAIrC,QAAA6R,EAAAC,EAAcmX,EAAdlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA0B,KAAjBjV,EAAiBoV,EAAAlG,MAElBod,GAA0BtsB,EAAEogC,SAASpO,SAAW3F,IAC/CrsB,EAAE+wB,cAEHwkD,KAT6B,MAAA7/D,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAuBrC,OAZIogE,EAAiB,IACjB9uE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBACIgnE,EACA,OACAC,EACA,gEAER7lE,GAAK,GAEFA,GA7uBiBlJ,EAgvB5BkuB,iBAAmB,WACfluB,EAAKU,SAAS,CAAEsuE,cAAc,KAjvBNhvE,EAovB5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAAEsuE,cAAc,EAAOC,eAAe,KArvB5BjvE,EAwvB5BguB,gBAAkB,WACdhuB,EAAKU,SACD,CAAEsuE,cAAc,EAAOC,eAAe,GAD1CrxE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAEI,SAAAyQ,IAAA,IAAA2Q,EAAAi7B,EAAAoC,EAAAvmD,EAAA,OAAAsrB,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OAQI,IALa+gB,EACTrmB,EAAKvE,MADL4kB,MAASgG,eAELi7B,EAAiCthD,EAAKc,MAAtCwgD,6BAEJoC,EAAoB,GACfvmD,EAAI,EAAGA,EAAIkpB,EAAerc,OAAQ7M,IAClCmkD,EAA6Bt1B,IAAI7uB,IAClCumD,EAAkB95C,KAAKyc,EAAelpB,IAVlD,OAAAwY,EAAArQ,KAAA,EAYUtF,EAAKvE,MAAMoyE,gBACb,QACA,iBACAnqB,GAfR,OAiBI1jD,EAAK88D,WAjBT,wBAAAnnD,EAAAzP,SAAAwP,EAAAla,WA3vBoBwE,EAixB5BkvE,sBAAwB,WAAM,IAClB7uD,EAAUrgB,EAAKvE,MAAf4kB,MACAihC,EAAiCthD,EAAKc,MAAtCwgD,6BACRthD,EAAKU,SAAS,CACVyuE,mBAAoB,GACpBC,sBAAuB,GACvBC,gBAAiB,KAGrB,IAAIpgE,EAAM,GAmBV,MAlB4B,OAAxBoR,EAAM6F,eAAwBjX,EAAIrF,KAAK,sBACtCyW,EAAM8F,kBAAkBlX,EAAIrF,KAAK,yBAElC5J,EAAKc,MAAM61B,MAAM3sB,OAAS,IAGtBqW,EAAMiG,wBAAwBtc,OAAS,EACvCiF,EAAIrF,KAAK,mBAGL03C,EAA6B/kC,OAC7B8D,EAAMiG,wBAAwBtc,QAE9BiF,EAAIrF,KAAK,sBAKjBqF,EAAIjF,OAAS,KACbiF,EAAInF,QAAQ,SAAAxB,GACRtI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIwnC,OAEzB9vC,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,oCAEd,IAtzBa9H,EA2zB5BsvE,mBAAqB,WAAM,IACfvpD,EAAe/lB,EAAKvE,MAApBsqB,WADe5W,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAGvB,QAAAwS,EAAAC,EAAcwW,EAAdlX,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAA0B,KAAjB5V,EAAiB+V,EAAA7G,MACtB,GAAIlP,EAAE2xB,aAAaziB,MAAO,OAAOlP,EAAEkO,GAAGgB,OAJnB,MAAAwG,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,GAMvB,MAAO,IAj0BiBrP,EAo0B5BuvE,mBAAqB,WAAM,IAAAh0E,EAMnByE,EAAKvE,MAHIuoB,EAHUzoB,EAGnB8kB,MAAS2D,eAHUwrD,EAAAj0E,EAInBipB,WAAmBirD,EAJAD,EAILn1C,IAAY5V,EAJP+qD,EAIO/qD,UAAWM,EAJlByqD,EAIkBzqD,SACrCgB,EALmBxqB,EAKnBwqB,WAEA2pD,EAAS3tE,IAAOiiB,GAAgBnd,SAAS,EAAG,SAChD,GAAI9E,IAAO0tE,GAAOx/D,QAAQy/D,GAMtB,OALA1vE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,GAAAyC,OAAKka,EAAL,KAAAla,OAAkBwa,EAAlB,2DAEZ,EAEX,IAAI4qD,GAAQ,EAhBW7nC,GAAA,EAAAC,GAAA,EAAAC,OAAAlrC,EAAA,IAiBvB,QAAAmrC,EAAAC,EAAcniB,EAAdlX,OAAAC,cAAAg5B,GAAAG,EAAAC,EAAA5iC,QAAAyJ,MAAA+4B,GAAA,EAA0B,KAAjBvuC,EAAiB0uC,EAAAx/B,MACtB,GAAI1G,IAAOxI,EAAE8gC,IAAI5xB,OAAOwH,QAAQy/D,GAAS,CACrC1vE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,GAAAyC,OAAKhR,EAAEkrB,UAAUhc,MAAjB,KAAA8B,OACXhR,EAAEwrB,SAAStc,MADA,0DAInBknE,GAAQ,EACR,QA3Be,MAAA1gE,GAAA84B,GAAA,EAAAC,EAAA/4B,EAAA,YAAA64B,GAAA,MAAAI,EAAAh5B,QAAAg5B,EAAAh5B,SAAA,WAAA64B,EAAA,MAAAC,GA8BvB,OAAO2nC,GAl2BiB3vE,EAq2B5B4vE,wBAA0B,WACtB,IAAIjY,EAAW,GACP5xC,EAAe/lB,EAAKvE,MAApBsqB,WAFoB8pD,GAAA,EAAAC,GAAA,EAAAC,OAAAjzE,EAAA,IAI5B,QAAAkzE,EAAAC,EAAsBlqD,EAAtBlX,OAAAC,cAAA+gE,GAAAG,EAAAC,EAAA3qE,QAAAyJ,MAAA8gE,GAAA,EAAkC,KAAzB5kD,EAAyB+kD,EAAAvnE,MAC9BkvD,EAAS/tD,KAAKqhB,EAAU0O,SAASlxB,OAC7BwiB,EAAU2O,SAASnxB,OACnBkvD,EAAS/tD,KAAKqhB,EAAU2O,SAASnxB,OACjCwiB,EAAU4O,SAASpxB,OACnBkvD,EAAS/tD,KAAKqhB,EAAU4O,SAASpxB,OACjCwiB,EAAU6O,SAASrxB,OACnBkvD,EAAS/tD,KAAKqhB,EAAU6O,SAASrxB,QAXb,MAAAwG,GAAA6gE,GAAA,EAAAC,EAAA9gE,EAAA,YAAA4gE,GAAA,MAAAI,EAAA/gE,QAAA+gE,EAAA/gE,SAAA,WAAA4gE,EAAA,MAAAC,GAa5B,OAAI,IAAInkD,IAAI+rC,GAAUp7C,OAASo7C,EAAS3tD,SACpChK,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,yCAEZ,IAx3Ba9H,EA83B5B88D,SA93B4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA83BjB,SAAAgR,IAAA,IAAAiM,EAAAuE,EAAAa,EAAA5c,EAAAiZ,EAAA29B,EAAA2tB,EAAAiB,EAAAv4B,EAAAt3B,EAAA1W,EAAAT,EAAA6c,EAAAoqD,EAAA93B,EAAA7zB,EAAA4rD,EAAAC,EAAAC,EAAA,OAAA7nD,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,UAAA4c,EAIHliB,EAAKvE,MAFYgrB,EAFdvE,EAEHsE,cAAiBC,cACjBa,EAHGpF,EAGHoF,iBAHG5c,EASH1K,EAAKc,MAHL6iB,EANGjZ,EAMHiZ,UACA29B,EAPG52C,EAOH42C,6BACA2tB,EARGvkE,EAQHukE,gBAGA3nD,EAAiBtd,OAAS,GAXvB,CAAAkM,EAAA5Q,KAAA,eAYHtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBACI,oDAhBLoO,EAAAnF,OAAA,qBAqBH0V,GAAkBzmB,EAAKkvE,wBArBpB,CAAAh5D,EAAA5Q,KAAA,eAAA4Q,EAAAnF,OAAA,oBAuBF/Q,EAAKuvE,qBAvBH,CAAAr5D,EAAA5Q,KAAA,eAAA4Q,EAAAnF,OAAA,sBA2BHuwC,EAA6B/kC,KAAO,IAAM0yD,EA3BvC,CAAA/4D,EAAA5Q,KAAA,gBAAA4Q,EAAAnF,OAAA,SA4BI/Q,EAAKkuB,oBA5BT,WAoDHgiD,EAAiB,GACjBvsD,IAAcpE,IAEV2wD,EADAlwE,EAAKc,MAAMyvE,YAEP,qEAGA,0EAGR5sD,IAAcnE,IACd0wD,EACI,wGAEkB,cAAtBlwE,EAAKc,MAAMsD,OAlER,CAAA8R,EAAA5Q,KAAA,gBAAAqyC,EAmEwB33C,EAAKvE,MAAxB4kB,EAnELs3B,EAmEKt3B,MAAO1W,EAnEZguC,EAmEYhuC,QAnEZuM,EAAA5Q,KAAA,GAoEctF,EAAKvE,MAAM+0E,yBAAyBnwD,GApElD,SAoEGnX,EApEHgN,EAAA5M,MAqEIC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,0BAErB4B,WAAW,WACPC,EAAQC,KAAK,4BACd,MAEH5J,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAlFzB,WAwFmB,eAAtBG,EAAKc,MAAMsD,QACW,oBAAtBpE,EAAKc,MAAMsD,OAzFR,CAAA8R,EAAA5Q,KAAA,YA4FuB,eAAtBtF,EAAKc,MAAMsD,OA5FZ,CAAA8R,EAAA5Q,KAAA,gBAAA4Q,EAAA5Q,KAAA,GA6FOtF,EAAKvE,MAAMg1E,eAAc,GA7FhC,WA8FK1qD,EAAe/lB,EAAKvE,MAApBsqB,WAGH/lB,EAAK2uE,aAAa5oD,GAjGpB,CAAA7P,EAAA5Q,KAAA,gBAAA4Q,EAAAnF,OAAA,uBAqGe/Q,EAAKc,MAAf61B,MACE3sB,OAAS,GAtGhB,CAAAkM,EAAA5Q,KAAA,gBAAA4Q,EAAA5Q,KAAA,GAuGuBtF,EAAKwhD,cAvG5B,YAuGO2uB,EAvGPj6D,EAAA5M,MAwGcC,QAxGd,CAAA2M,EAAA5Q,KAAA,gBAyGKtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBACI,0BAA4BqoE,EAAQtwE,UA7GjDqW,EAAAnF,OAAA,yBAAAsnC,EAmH2Br4C,EAAKvE,MAA3B+oB,EAnHL6zB,EAmHK7zB,WAAYnE,EAnHjBg4B,EAmHiBh4B,MAChBgwD,EAAkB,GAClBrwE,EAAKc,MAAM6iB,YAAcpE,GAA+Bvf,EAAKc,MAAMyvE,cACnEF,EAAkBrwD,IAClBhgB,EAAKc,MAAM6iB,YAAcnE,IACzB6wD,EAAkBpwD,IAClBjgB,EAAKc,MAAM6iB,YAAclE,IACzB4wD,EAAkBnwD,IA1HnBhK,EAAA5Q,KAAA,GA2HwBtF,EAAKvE,MAAMi1E,yBAAyB,CAC3D3qD,aACAvB,aACAnE,QACAgwD,oBA/HD,SA2HCC,EA3HDp6D,EAAA5M,MAiIiBC,SAqBhBvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiBooE,IAErBxmE,WAAW,WACPnJ,OAAOD,SAAW,cACnB,OA3BCgwE,EAAej8D,QAAUi8D,EAAej8D,OAAOrK,SAC/C+b,EAAWjc,QAAQ,SAAAvQ,GAAC,OAAKA,EAAE8R,MAAQ,OACnC0a,EACKvI,OACG,SAAAyN,GAAS,OAAkC,IAA9BA,EAAUtK,UAAUlY,QAEpCqB,QAAQ,SAACvQ,EAAG4D,GACT5D,EAAE8R,MAAQilE,EAAej8D,OAAOlX,MAG5C6C,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBACKwoE,EAAejlE,OACZilE,EAAejlE,MAAMxL,SACzBywE,EAAezwE,SACf,wBACJgI,gBAAiB,WAnJtB,yBAAAqO,EAAAhQ,SAAA+P,EAAAza,SA93BiBwE,EAgiC5B2wE,iBAhiC4B/yE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgiCT,SAAAuR,IAAA,IAAA05D,EAAAU,EAAApsD,EAAAnE,EAAA0F,EAAAsqD,EAAAC,EAAA,OAAA7nD,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cACX4qE,EAAiB,wCADNU,EAG2B5wE,EAAKvE,MAAvC+oB,EAHOosD,EAGPpsD,WAAYnE,EAHLuwD,EAGKvwD,MAAO0F,EAHZ6qD,EAGY7qD,WACrBsqD,EAAkBlwD,GAJT1J,EAAAnR,KAAA,EAKYtF,EAAKvE,MAAMi1E,yBAAyB,CAC3D3qD,aACAvB,aACAnE,QACAgwD,oBATW,QAKXC,EALW75D,EAAAnN,MAWKC,SAShBvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiBooE,IAErBxmE,WAAW,WACPnJ,OAAOD,SAAW,cACnB,MAfHN,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBwoE,EAAejlE,MAC1BilE,EAAejlE,MAAMxL,QACrB,wBACNgI,gBAAiB,UAjBV,wBAAA4O,EAAAvQ,SAAAsQ,EAAAhb,SAhiCSwE,EAwkC5B6wE,WAAa,SAACppE,EAAI0E,GACdnM,EAAKvE,MAAMwsB,gBAAgBxgB,EAAI,WAAY0E,IAzkCnBnM,EA4kC5B8wE,WAAa,WACT9wE,EAAKvE,MAAMg1E,eAAc,IA7kCDzwE,EAglC5B+wE,aAAe,WACX/wE,EAAKvE,MAAMg1E,eAAc,IAjlCDzwE,EAolC5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KArlCN5H,EAwlC5BmrE,oBAAsB,SAAAtgC,GAClB,IAAIpf,EAAY,GACZ,WAAWvhB,KAAK2gC,EAAQzkB,WACxBqF,EAAYre,YAA4By9B,EAAQzkB,UAEpDxoB,OAAO2T,KAAKka,GAAWzhB,OAAS,EAC1BhK,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,YACAyd,iBAAkB,KAEtBlpC,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkB2B,EAAQzkB,WAtmCZpmB,EAmpC5B0pC,qBAAuB,WACnB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KAppCPxpC,EAupC5BgxE,cAAgB,SAAC1oE,EAAG7H,GAChBT,EAAKvE,MAAMoyE,gBAAgB,QAASvlE,EAAG7H,EAAE+H,OAAOC,QAxpCxBzI,EA2pC5Bg1D,uBAAyB,SAAAv0D,GACrBT,EAAKvE,MAAMoyE,gBAAgB,QAAS,iBAAkBptE,EAAE+H,OAAOC,QA5pCvCzI,EA+pC5BixE,6BAA+B,SAAC3oE,EAAG7H,GAC/BT,EAAKvE,MAAMoyE,gBAAgB,QAASvlE,EAAG7H,EAAE+H,OAAOC,QAhqCxBzI,EAmqC5B26C,OAAS,SAAAwI,GACL,IAAMxsB,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OADPu6C,GAAA,EAAAC,GAAA,EAAAC,OAAAt0E,EAAA,IAEtB,QAAAu0E,EAAAC,EAAiBnuB,EAAjBt0C,OAAAC,cAAAoiE,GAAAG,EAAAC,EAAAhsE,QAAAyJ,MAAAmiE,GAAA,EAAgC,KAArB9tB,EAAqBiuB,EAAA5oE,MACxB46C,GAAS,EADekuB,GAAA,EAAAC,GAAA,EAAAC,OAAA30E,EAAA,IAE5B,QAAA40E,EAAAC,EAAgBh7C,EAAhB9nB,OAAAC,cAAAyiE,GAAAG,EAAAC,EAAArsE,QAAAyJ,MAAAwiE,GAAA,EAAuB,KAAZ1jE,EAAY6jE,EAAAjpE,MACf26C,EAAG11B,OAAS7f,EAAE6f,OAAM21B,GAAS,IAHT,MAAAp0C,GAAAuiE,GAAA,EAAAC,EAAAxiE,EAAA,YAAAsiE,GAAA,MAAAI,EAAAziE,QAAAyiE,EAAAziE,SAAA,WAAAsiE,EAAA,MAAAC,GAKvBpuB,GAAQ1sB,EAAM/sB,KAAKw5C,IAPN,MAAAn0C,GAAAkiE,GAAA,EAAAC,EAAAniE,EAAA,YAAAiiE,GAAA,MAAAI,EAAApiE,QAAAoiE,EAAApiE,SAAA,WAAAiiE,EAAA,MAAAC,GAStBpxE,EAAKU,SAAS,CAAEi2B,WA5qCQ32B,EA+qC5Bu7C,oBAAsB,SAAC1tC,EAAG1Q,GACtB,IAAMw5B,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OAC7BA,EAAMvM,OAAOjtB,EAAG,GAChB6C,EAAKU,SAAS,CAAEi2B,WAlrCQ32B,EAqrC5B4jD,kBAAoB,SAAAguB,GAChBrxE,OAAOb,KAAKkyE,IAtrCY5xE,EAyrC5B6xE,SAAW,WACP7xE,EAAKvE,MAAMkO,QAAQmoE,UA1rCK9xE,EA6rC5B+xE,aAAe,WAAM,IAAAC,EACwBhyE,EAAKvE,MAAtC4kB,EADS2xD,EACT3xD,MAAOqG,EADEsrD,EACFtrD,sBACXurD,EACAvrD,EAAsB1C,gBACtB0C,EAAsB/B,aAE1B,OAAI+B,EAAsB/B,aACtB,aAAApa,OAAoB2C,YAAoB+kE,GAAxC,KACO5xD,EAAMG,SACN,WACAH,EAAMK,SACN,WAEA,IA1sCa1gB,EA8sC5BkyE,yBAA2B,SAAAh1D,GACvB,IAAIjU,EAAIrL,OAAA+d,EAAA,EAAA/d,CAAA,GAAQsf,GAEhB,OADAjU,EAAKoxB,IAAMrtB,YAAsBkQ,EAAOmd,KACjCpxB,GAjtCiBjJ,EAotC5BsjD,uBAAyB,SAAAz5B,GACrB7pB,EAAKU,SAAS,CACV4gD,6BAA8BthD,EAAKc,MAAMwgD,6BAA6Br1B,IAClEpC,MAvtCgB7pB,EA4tC5BujD,2BAA6B,SAAA15B,GACzB7pB,EAAKc,MAAMwgD,6BAA6BmC,OAAO55B,GAC/C7pB,EAAKU,SAAS,CACV4gD,6BAA8BthD,EAAKc,MAC9BwgD,gCAhuCethD,EAouC5BmyE,gBAAkB,WACdnyE,EAAKU,SAAS,CAAE0xE,qBAAqB,KAruCbpyE,EAwuC5BqyE,sBAAwB,WACpBryE,EAAKU,SAAS,CAAE0xE,qBAAqB,KAzuCbpyE,EA4uC5BsyE,uBAAyB,WACrB,IAAMvsD,EAAUnoB,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKvE,MAAMsqB,YAClCA,EAAWjc,QAAQ,SAAAvQ,GAEf,IADA,IAAMgY,EAAO,CAAC,WAAY,WAAY,WAAY,YAClDua,EAAA,EAAAA,EAAcva,EAAdvH,OAAA8hB,IAAoB,CAAf,IAAIxjB,EAAKiJ,EAAJua,GAEa,KAAfvyB,EAAE+O,GAAGG,OACLod,GAA0BtsB,EAAE+O,GAAGijB,SAAW3F,KAE1CrsB,EAAE+wB,cAAe,MAI7BtqB,EAAKU,SAAS,CAAE0xE,qBAAqB,IACrCpyE,EAAKvE,MAAM82E,oBAAoBxsD,IA1vCP/lB,EAw0C5BwyE,iBAAmB,SAACC,EAAS5yE,GACzB,OAAI,UAAUqK,KAAKuoE,IAA+B,KAAnBA,EAAQzoE,SAEnCN,WAAW,WACP,IAAM5B,EAAkBjI,GAAO,cAAA0K,OAEXkoE,EAFW,wBAG/BzyE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,qBAEL,MACI,IAr1Ca9H,EA01C5B0yE,mBAAqB,WAAM,IAcf3G,EAAa/rE,EAAKc,MAAlBirE,SAEJ/rE,EAAKsvE,uBAAyBvD,EAC9B/rE,EAAKU,SAAS,CAAEiyE,UAAU,IAE1B3yE,EAAKU,SAAS,CACV6vE,aAAa,GACd,WACCvwE,EAAK88D,cAh3CW98D,EAq3C5B4yE,cAAgB,WAAM,IACV7G,EAAa/rE,EAAKc,MAAlBirE,SAEJ/rE,EAAKsvE,uBAAyBvD,EAC9B/rE,EAAKU,SAAS,CAAEiyE,UAAU,IAE1B3yE,EAAKU,SAAS,CACV6vE,aAAa,GACd,WACCvwE,EAAK88D,cA93CW98D,EAm4C5B6yE,mBAAqB,WACjB7yE,EAAKU,SAAS,CAAEitE,YAAa3tE,EAAKc,MAAM6sE,cAp4ChB3tE,EAu4C5B8yE,iBAAmB,WACf9yE,EAAKU,SAAS,CAAEiyE,UAAU,KAx4CF3yE,EA24C5B+yE,kBAAoB,WAChB/yE,EAAKU,SAAS,CAAEiyE,UAAU,GAAS,WAAM,IAC7B5sD,EAAe/lB,EAAKvE,MAApBsqB,WACAgmD,EAAa/rE,EAAKc,MAAlBirE,SACEhmD,EAAWnY,KAAK,SAAArU,GACtB,GAAIA,EAAEkO,GAAGgB,QAAUsjE,IAAaxyE,EAAE+wB,aAAc,OAAO/wB,IAEvDyG,EAAKU,SAAS,CAAEsyE,gBAAgB,IAAUhzE,EAAK88D,cAl5C/B98D,EAs5C5BizE,uBAAyB,WACrBjzE,EAAKU,SAAS,CAAEsyE,gBAAgB,GAAS,WACrChzE,EAAK88D,cAx5Ce98D,EA45C5BkzE,uBAAyB,WACrBlzE,EAAKU,SAAS,CAAEsyE,gBAAgB,GAAS,WAAM,IACnCjH,EAAa/rE,EAAKc,MAAlBirE,SACR/rE,EAAKvE,MAAMssB,aAAagkD,GACxB/rE,EAAK88D,cAh6Ce98D,EAo6C5BmzE,wBAA0B,WAGtB,IAH4B,IACpB3uD,EAAexkB,EAAKvE,MAApB+oB,WACFjT,EAAO,CAAC,WAAY,WAAY,WAAY,YAClD6a,EAAA,EAAAA,EAAc7a,EAAdvH,OAAAoiB,IAAoB,CAAf,IAAI9jB,EAAKiJ,EAAJ6a,GACN,GAAsB,KAAlB5H,EAAWlc,KACNtI,EAAKwyE,iBAAiBhuD,EAAWlc,IAAK,QAv6CnDtI,EAAKc,MAAQ,CACTyvE,aAAa,EACbn+B,YAAY,EACZ87B,SAAU,GACV9pE,OAAQ,kBACRgvE,iBAAkB,EAClBC,YAAY,EACZzrE,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB4jB,UAAW,GACX+d,eAAe,EACfN,iBAAkB,GAClBoqC,iBAAkB,EAClBC,cAAe,EACfC,cAAe,EACfC,cAAe,EACf1E,SAAU,EACVvB,kBAAiB,CACb,MACA,aACA,YACA,OAJajjE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKVoC,EAAKgtE,eALK,CAMb,mBACA,cACA,UACA,WAEJS,mBAAkB,CACd,MACA,YACA,WACA,OAJcljE,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAKXoC,EAAKitE,gBALM,CAMd,MACA,eACA,UACA,WAEJt2C,MAAO,GACPy2C,aAAc,GACdC,sBAAuB,CACnB,CACIhwE,IAAK,YACL+N,MAAO,gBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,WACL+N,MAAO,eACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,MACL+N,MAAO,SACPD,KAAM,oBACN2sC,cAAc,GAElB,CACIz6C,IAAK,MACL+N,MAAO,wBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,OACL+N,MAAO,wBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,OACL+N,MAAO,wBACPD,KAAM,OACN2sC,cAAc,GAElB,CACIz6C,IAAK,OACL+N,MAAO,wBACPD,KAAM,OACN2sC,cAAc,IAGtBn0B,UAAW,GACX0nD,UAAU,EACVqC,eAAe,EACfpsB,6BAA8B,IAAI11B,IAClCojD,cAAc,EACdC,eAAe,EACfE,mBAAoB,GACpBC,sBAAuB,GACvBC,gBAAiB,GACjB+C,qBAAqB,EACrBzE,YAAY,EACZ5B,SAAU,GACV4G,UAAU,EACVK,gBAAgB,GAGpBhzE,EAAK0zE,eAAiB1zE,EAAKvE,MAAM6E,SAASqzE,SAASpnE,MAAM,KAAKq0C,MAC9D5gD,EAAK4zE,cAAgB,KAzGG5zE,kFA2jBTitB,EAAWC,GAC1B,IACiD,IAA7CD,EAAUpG,iCACoC,IAA9CrrB,KAAKC,MAAMorB,+BACb,KAAAgtD,GAAA,EAAAC,GAAA,EAAAC,OAAAj3E,EAAA,IACE,QAAAk3E,EAAAC,EAAcz4E,KAAKC,MAAMsqB,WAAzBlX,OAAAC,cAAA+kE,GAAAG,EAAAC,EAAA3uE,QAAAyJ,MAAA8kE,GAAA,EAAqC,KAA5Bt6E,EAA4By6E,EAAAvrE,MACjC,IAA6B,IAAzBlP,EAAE2xB,aAAaziB,MAAgB,CAC/BjN,KAAKkF,SAAS,CAAEqrE,SAAUxyE,EAAEkO,GAAGgB,QAC/B,QAJV,MAAAwG,GAAA6kE,GAAA,EAAAC,EAAA9kE,EAAA,YAAA4kE,GAAA,MAAAI,EAAA/kE,QAAA+kE,EAAA/kE,SAAA,WAAA4kE,EAAA,MAAAC,IASF,GAAI9mD,EAAUlH,aAAevqB,KAAKC,MAAMsqB,WAAY,CAChD,IAAImuD,EAAe,EAMnB14E,KAAKC,MAAMsqB,WAAWjc,QAAQ,SAAAvQ,GAgBtBA,EAAE8wB,QAAQ5hB,OAAOyrE,MAGzB,IAAInF,EAAWvzE,KAAKC,MAAMsqB,WAAW/b,OACjCspE,EAAmBvE,EAtBH,EAuBdsE,EAAaa,IAAiBZ,EAEpC93E,KAAKkF,SAAS,CACV2yE,aACAD,iBA9BmB,EA+BnBE,mBACAC,cA/BgB,EAgChBC,cA/BgB,EAgChBC,cA/BgB,EAgChB1E,aAQR,GAJI9hD,EAAUzI,aAAehpB,KAAKC,MAAM+oB,YACpChpB,KAAKuyE,oCAGL7gD,EAAUygD,aAAenyE,KAAKsF,MAAM6sE,WAAY,KAC1CN,EAA0B7xE,KAAKsF,MAA/BusE,sBACF7xE,KAAKsF,MAAM6sE,WACXN,EAAsBvjE,QAAQ,SAAA+D,UACnBA,EAAE0N,WAGb8xD,EAAsBvjE,QAAQ,SAAA+D,GAC1BA,EAAE0N,UAAW,IAIrB/f,KAAKkF,SAAS,CAAE2sE,wLA+bZ12C,EAAUn7B,KAAKsF,MAAf61B,MACJkK,EAAW,IAAIyjB,SACnB3tB,EAAM7sB,QAAQ,SAAA+D,GACVgzB,EAAS0jB,OAAO,QAAS12C,EAAGA,EAAE6f,iBAErBlyB,KAAKC,MAAM04E,oBAAoBtzC,8KAyWvC,IAAA3/B,EAAA1F,KAAA44E,EAcD54E,KAAKC,MAZLC,EAFC04E,EAED14E,QACA2kB,EAHC+zD,EAGD/zD,MACAmE,EAJC4vD,EAID5vD,WACAuB,EALCquD,EAKDruD,WACAc,EANCutD,EAMDvtD,+BACAE,EAPCqtD,EAODrtD,kCACAI,EARCitD,EAQDjtD,mCACAE,EATC+sD,EASD/sD,6BACAH,EAVCktD,EAUDltD,kCACAK,EAXC6sD,EAWD7sD,2CACAD,EAZC8sD,EAYD9sD,iBACArB,EAbCmuD,EAaDnuD,mBAbCouD,EAkCD74E,KAAKsF,MAlBLiuE,EAhBCsF,EAgBDtF,SACAvB,EAjBC6G,EAiBD7G,kBACAC,EAlBC4G,EAkBD5G,mBACA92C,EAnBC09C,EAmBD19C,MACA02C,EApBCgH,EAoBDhH,sBACAD,EArBCiH,EAqBDjH,aACAzpD,EAtBC0wD,EAsBD1wD,UACA0nD,EAvBCgJ,EAuBDhJ,SACA/pB,EAxBC+yB,EAwBD/yB,6BACA0tB,EAzBCqF,EAyBDrF,aACAG,EA1BCkF,EA0BDlF,mBACAC,EA3BCiF,EA2BDjF,sBACAC,EA5BCgF,EA4BDhF,gBACA+C,EA7BCiC,EA6BDjC,oBACAzE,EA9BC0G,EA8BD1G,WACA5B,EA/BCsI,EA+BDtI,SACAiH,EAhCCqB,EAgCDrB,eACAL,EAjCC0B,EAiCD1B,SAEA2B,EAAsBvuD,EAAWvI,OACjC,SAAAyN,GAAS,OAAkC,IAA9BA,EAAUtK,UAAUlY,QAE/B9M,EACFkrB,GACAE,GACAM,GACAH,GACAK,EAEJ,OACIxL,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItc,KAAMszE,EACNvpC,OAAQ,OACR9pC,QAASnE,KAAK+4E,wBAEdx4D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,2CAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oDAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,OACRwG,QAASpH,KAAKy3E,wBAHlB,UAOAl3D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAK03E,wBAHlB,YAURn3D,EAAAhgB,EAAAC,cAACi9C,GAAD,CACI7G,WAAYugC,EACZt2E,MAAO,sBACPi2C,WAAY,UACZ3yC,QAASnE,KAAKs3E,iBACdzgC,SAAU72C,KAAKu3E,mBALnB,mDASAh3D,EAAAhgB,EAAAC,cAACw2B,GAAD,CACItE,iBAAkBkkD,EAClBtkD,YAAa,GACbE,gBAAiBxyB,KAAK82E,uBACtBvkD,eAAgBvyB,KAAK62E,uBAJzB,2CAQAt2D,EAAAhgB,EAAAC,cAACw2B,GAAD,CACItE,iBAAkB8gD,EAClBlhD,YAAa,UACbE,gBAAiBxyB,KAAKwyB,gBACtBD,eAAgBvyB,KAAKuyB,gBAJzB,6CAOIhS,EAAAhgB,EAAAC,cAAA,UACKqkB,EAAMgG,eAAeppB,IAAI,SAAClB,EAAGoB,GAC1B,GAAImkD,EAA6Bt1B,IAAI7uB,GACjC,OAAO4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,WAAaF,GAAIpB,OAMjDggB,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACIlf,UAAWjwB,KAAKsF,MAAM2qB,UACtByd,iBAAkB1tC,KAAKsF,MAAMooC,iBAC7BM,cAAehuC,KAAKsF,MAAM0oC,cAC1BE,qBAAsBluC,KAAKkuC,uBAG/B3tB,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAK,wBAAAkO,OACD/O,KAAKC,MAAM4kB,MAAMqD,MAAQloB,KAAKC,MAAM4kB,MAAMqD,MAAQ,GADjD,KAAAnZ,OAED/O,KAAKu2E,gBACTp2E,UAAWA,GAEV0kB,GACGtE,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WAAYg1C,EACZj2C,WAAY9W,EACZhY,cAAe7M,KAAKoyE,mBAG3BvtD,GAAStE,EAAAhgB,EAAAC,cAACkpD,GAAD,CAAS7uB,OAAQ,KAC1BhW,EAAMkG,iBACHxK,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,oBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIT,UAAQ,EACRhX,OAAO,SACPnI,QAAQ,WACRqM,MAAO4X,EAAMkG,gBACb/a,WAAS,EACTzO,MAAO,CAAE4G,WAAY,aAOzCoY,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,sBACPV,UAAWA,GAEV6oB,GACGzI,EAAAhgB,EAAAC,cAACipD,GAAD,CACI1tB,QAAS,EACTa,WAAYi1C,EACZl2C,WAAY37B,KAAK02E,yBACb1tD,GAEJnc,cAAe7M,KAAKsyE,4BAI5B/xD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOklE,EACPpiE,SAAU/P,KAAKq3E,mBACflwE,MAAO,YAGf4Y,SAAU8vD,EACVjgE,MAAO,qBAGVoZ,GAAczI,EAAAhgB,EAAAC,cAACkpD,GAAD,CAAS7uB,OAAQ,MAGpCta,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,kBAAmBV,UAAWA,GAChDogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAOjN,KAAKC,MAAM4kB,MAAM60C,eACxB3pD,SAAU/P,KAAKw5D,wBAEfj5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO81D,GACPnlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,8BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO+1D,GACPplB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,6BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOi2D,GACPtlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,0BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOg2D,GACPrlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,qCAKtB2Q,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,gBAAiBV,UAAWA,GAC9CogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,YAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAO4X,EAAM6F,cACb3a,SAAU,SAAA9K,GAAC,OACPS,EAAK8vE,cAAc,gBAAiBvwE,KAGxCsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,KACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACT5Q,MAAO,KACPmQ,SAAU8vD,IAEdtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,MACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACT5Q,MAAO,MACPmQ,SAAU8vD,IAEdtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,OACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACT5Q,MAAO,OACPmQ,SAAU8vD,OAGf8D,GACCpzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAgB3Q,OAAK,GAChB8jE,MAMI,OAAxB9uD,EAAM6F,eACHnK,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,oBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRoP,WAAS,EACT/C,MAAO4X,EAAM8F,kBAAoB,GACjC5a,SAAU,SAAA9K,GAAC,OACPS,EAAK+vE,6BACD,mBACAxwE,IAGR8a,SAAU8vD,EACVhgE,QAAS+jE,EACT9jE,WAAY8jE,OAM1B/D,GAAoC,OAAxBhrD,EAAM6F,eAChBnK,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,wBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACopD,GAAD,CAAiBzK,OAAQn/C,KAAKm/C,WAC3B00B,GACCtzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAgB3Q,OAAK,GAChBgkE,MAMnBhE,GAAoC,OAAxBhrD,EAAM6F,eAChBnK,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACV,KAEL7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,UACK26B,EAAM15B,IAAI,SAAC4Q,EAAG1Q,GAAJ,OACP4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,QAAUF,GACf4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAEyQ,EAAE6f,MACd3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CACIjgB,UACIP,EAAQ6pD,QAEZ5iD,MAAO,YACPC,QAAS,kBACL1B,EAAKq6C,oBACD1tC,EACA1Q,cAa3CkjB,EAAMiG,wBAAwBtc,OAAS,GACpC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,aAArB,yBAIJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKqE,EAAMiG,wBAAwBrpB,IAC3B,SAAC20E,EAAOz0E,GAAR,OACI4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3e,IAAK,aAAeF,EACpBlB,UACIqlD,EAA6Bt1B,IACzB7uB,GAEEzB,EAAQ4uB,aACR,IAGVvO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACItgB,QAAS,CACLgvC,KACIhvC,EAAQ4pD,eAGfnoD,EAAI,EANT,KAQA4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIpZ,QAAS,kBACL1B,EAAK0iD,kBACDguB,IAGRl2E,QAAS,CACLgvC,KACIhvC,EAAQ4pD,cAEhBrpD,UACIP,EAAQ6pD,SAIRllC,EACKgG,eACDlpB,IAIZ4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACMslC,EAA6Bt1B,IAC3B7uB,IAEA4e,EAAAhgB,EAAAC,cAAC+iB,EAAD,CACInc,QAAS,kBACL1B,EAAKoiD,uBACDnmD,IAGRoe,SACI8vD,IAIX/pB,EAA6Bt1B,IAC1B7uB,IAEA4e,EAAAhgB,EAAAC,cAACovC,GAAD,CACIxoC,QAAS,kBACL1B,EAAKqiD,2BACDpmD,IAGRoe,SACI8vD,aAepDtvD,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,UACPV,UAAWA,GAAawrB,GAExBpL,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI4b,WAAS,EACTpsB,WAAS,EACT2R,KAAM,EACN1V,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAO4X,EAAM+F,QACb7a,SAAU,SAAA9K,GAAC,OACPS,EAAK0sE,iBAAiB,UAAWntE,EAAE+H,OAAOC,WAKtDsT,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,aACPV,UAAWA,GAAawrB,GAExBpL,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACsO,UAAW,UACvB8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,4BAC8B2yE,KAItChzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASo4E,WAAW,GAAzC,sBACwB,IACnBh5E,KAAKsF,MAAM2yE,gBAGpB13D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASo4E,WAAW,GACnCn0D,EAAMG,SAEF,WADA,6BAFV,KAIOhlB,KAAKsF,MAAM0yE,gBAGtBz3D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASo4E,WAAW,GAAzC,qBACuBh5E,KAAKsF,MAAMyyE,iBAI1Cx3D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACL,MAAO,CAAEkH,MAAO,YACvB8X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIpZ,QAAS,WACL,IAAMm6B,EAA0B77B,EAAKzF,MAAMirB,sBAAsBjf,GACjElH,OAAOb,KACH,gCAAkCq9B,IAG1C3gC,QAAQ,aAPZ,oBAYJ2f,EAAAhgB,EAAAC,cAAA,WACA+f,EAAAhgB,EAAAC,cAACy4E,GAAD,CACIxrE,KAAMqrE,EACNtoE,QAASwhE,EACT1B,SAAU2B,EACVoD,WAAYr1E,KAAKq1E,WACjB7xD,SAAUxjB,KAAK2yE,YACf3C,OAAQhwE,KAAK4yE,UACbjD,oBAAqB3vE,KAAK2vE,oBAE1BY,SAAUA,EACVV,SAAUA,MAIhBA,GACEtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,SACZ5H,UAAWP,EAAQg5E,aAElB/wD,IAAcnE,GACXzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAS,YAClB2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI2oC,IAAK,SAAAA,GACDzjD,EAAK0yE,cAAgBjvB,GAEzBp3B,QAAQ,UAJZ,UAQC5J,IACGnE,GACAzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAOjN,KAAKsF,MAAMsD,OAClBopB,MACIzR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI0R,KAAK,SACLjmB,GAAG,SACHgmB,WAAY,KAGpBriB,MAAO,SACPupE,cAAY,EACZppE,SACI/P,KAAKkzE,eAETtyE,QAAS,SACTsxB,KAAK,UAEL3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MACI,mBAFR,oBAOAsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,cADX,eAKAsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,aADX,iBAUnBkb,IAAcnE,GACXzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,IACJ5B,KAAKsF,MAAMuyE,YACTt3D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YAKRwG,QAASpH,KAAKs1E,YAPlB,aAYHt1E,KAAKsF,MAAMuyE,YACRt3D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YAKRwG,QAASpH,KAAKu1E,cAPlB,iBAiBG,cAAtBv1E,KAAKsF,MAAMsD,QACR2X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,kBACH2D,MAAM,uBACN7G,OAAO,SACPiH,WAAS,EACTpP,QAAQ,WACRqM,MAAO4X,EAAMkG,gBACbhb,SAAU,SAAA9K,GAAC,OACPS,EAAK0sE,iBACD,kBACAntE,EAAE+H,OAAOC,aAqC/B4iE,GACEtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTC,QAAS,gBACTZ,UAAWP,EAAQg5E,aAEnB34D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,SACZqH,GAAI,GAEJ6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPC,QAASpH,KAAKq2E,UAFlB,WAOJ91D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRmf,SACI+L,EAAiBtd,OAAS,EAE9BpH,QAASpH,KAAKk3E,oBAEb/uD,IACGpE,GACA,sBACHoE,IACGnE,GACA,WAGZzD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK2H,IACGpE,GACAxD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRmf,SACI+L,EAAiBtd,OAAS,EAE9BpH,QAASpH,KAAKo3E,eANlB,mBAcZ72D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC44E,GAAD,QAKXvJ,GACG57D,eACAkU,IAAclE,GACV1D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTC,QAAS,iBAETkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,SACZqH,GAAI,GAEJ6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRmf,SACI+L,EAAiBtd,OAAS,EAE9BpH,QAASpH,KAAKm1E,kBANlB,sBAaR50D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC44E,GAAD,QAKhB74D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACP,QAAS,oBAIrCopB,EAAmBjc,OAAS,GACzB+R,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,uBAClB0f,EAAAhgB,EAAAC,cAACy4E,GAAD,CACIxrE,KAAMgd,EACNja,QAASwhE,EACT1B,SAAU2B,EACVtC,oBAAqB3vE,KAAK2vE,oBAC1BE,UAAU,KAKtBtvD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BAxsEP/H,aAwyElBgM,eAhFS,SAAAhL,GAAS,IAAA+zE,EAiBzB/zE,EAfA8oB,kBAiBJ,MAAO,CACH7D,WApByB8uD,EAGrB9uD,WAkBJvB,WArByBqwD,EAIrBrwD,WAkBJnE,MAtByBw0D,EAKrBx0D,MAkBJwG,+BAvByBguD,EAMrBhuD,+BAkBJE,kCAxByB8tD,EAOrB9tD,kCAkBJI,mCAzByB0tD,EAQrB1tD,mCAkBJE,6BA1ByBwtD,EASrBxtD,6BAkBJb,cA3ByBquD,EAUrBruD,cAkBJU,kCA5ByB2tD,EAWrB3tD,kCAkBJI,iBA7ByButD,EAYrBvtD,iBAkBJC,2CA9ByBstD,EAarBttD,2CAkBJtB,mBA/ByB4uD,EAcrB5uD,mBAkBJS,sBAhCyBmuD,EAerBnuD,wBAqBe,SAAA7a,GACvB,MAAO,CACH2iE,wBAAyB,SAAAtkD,GAAM,OAC3Bre,EnFhrE2B,SAAAqe,GAAM,MAAK,CAC9C/e,KArJgC,8BAsJhC+e,UmF8qEiBskD,CAAwBtkD,KACrCnC,aAAc,SAAAtgB,GAAE,OAAIoE,EAASkc,GAAatgB,KAC1CugB,aAAc,SAAAvgB,GAAE,OAAIoE,EAASmc,GAAavgB,KAC1CwgB,gBAAiB,SAAChK,EAAM3V,EAAG6D,GAAV,OAAgBN,EAASoc,GAAgBhK,EAAM3V,EAAG6D,KACnE0hE,gBAAiB,SAACpjD,EAASniB,EAAG6D,GAAb,OACbN,EnFvoEmB,SAAC4e,EAASniB,EAAG6D,GAAb,MAAoB,CAC/ChB,KA/LsB,oBAgMtBsf,UAASniB,IAAG6D,KmFqoEK0hE,CAAgBpjD,EAASniB,EAAG6D,KACzCskE,cAAe,SAAA3/D,GAAM,OAAIjF,EnF5nEJ,SAAAiF,GAAM,MAAK,CACpC3F,KA1MmB,iBA2MnB2F,UmF0nEsC2/D,CAAc3/D,KAChDy8D,sBAAuB,SAAAtkE,GAAI,OAAI4C,EnF3tEF,SAAA4J,GAAA,IAAE29B,EAAF39B,EAAE29B,QAAS1vB,EAAXjO,EAAWiO,MAAO2E,EAAlB5S,EAAkB4S,WAAlB,sBAAArS,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAkC,SAAAmB,EAAMyF,GAAN,IAAA8zD,EAAAz2D,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACnEuG,EAAS+b,MAEL+3C,EAAY,IACZvsB,IAASusB,GAAqB,WAAAp1D,OAAc6oC,EAAd,MAC9B1vB,IAAOi8C,GAAqB,eAAAp1D,OAAkBmZ,EAAlB,MAC5B2E,IAAYs3C,GAAqB,cAAAp1D,OAAiB8d,EAAjB,MAN8BhiB,EAAAf,KAAA,EAOlDoL,KAAMC,IAAIhS,GAAO,+BAAoCghE,EAAW5zD,eAAwB6E,MAAM,SAAAnQ,GAC3G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAT0B,YAO7DqJ,EAP6D7C,EAAAiD,MAc5DL,KAAKM,QAduD,CAAAlD,EAAAf,KAAA,gBAe/DuG,EAASgc,GAA8B3e,IAfwB7C,EAAA0K,OAAA,SAgBxD,CAACxH,SAAS,EAAM1J,QAAS,KAhB+B,eAkB/DgM,EAASic,MAlBsDzhB,EAAA0K,OAAA,SAmBxD,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBgB,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAlC,gBAAA0V,GAAA,OAAA8E,EAAA3E,MAAA7V,KAAA2S,YAAA,GmF2tEWo/D,CAAsBtkE,KAC9DynE,yBAA0B,SAAAr5D,GAAA,IACtB0O,EADsB1O,EACtB0O,WACA1F,EAFsBhJ,EAEtBgJ,MACAmE,EAHsBnN,EAGtBmN,WACA6rD,EAJsBh5D,EAItBg5D,gBAJsB,OAMtBxkE,EnFtxE4B,SAAAwE,GAAA,IAAE0V,EAAF1V,EAAE0V,WAAY1F,EAAdhQ,EAAcgQ,MAAOmE,EAArBnU,EAAqBmU,WAAY6rD,EAAjChgE,EAAiCggE,gBAAjC,sBAAAh7D,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAsD,SAAAC,EAAM2G,GAAN,IAAA6c,EAAA7T,EAAAigE,EAAAC,EAAA7rE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACtFojB,EAAY,EAEZ2nD,IAAoBrwD,KAA8B0I,EAAY,GAC9D2nD,IAAoBpwD,KAA6ByI,EAAY,GAC7D2nD,IAAoBnwD,KAA8BwI,EAAY,GAC9D2nD,IAAoBlwD,KAA+BuI,EAAY,GAE/D7T,EARsF,oBAAAtK,OAQzDme,GAE7BosD,EAAW,CACX9uD,mBAAoBD,EACpB1F,QACAmE,cAGJ3Y,EAAS4b,MACLstD,EAAa,CAACxrE,SAAS,GAjB+DnE,EAAAE,KAAA,GAkBzEoL,KAAMM,KAAKrS,GAAO,kCAAuCkW,EAAQigE,EAAU/oE,eAAwB6E,MAAM,SAAAnQ,GACtH,GAAKrF,aAAqBqF,EAAEoQ,SAASC,QAIjCikE,EAAa,CAACxrE,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,0BAJxB,KACVjR,EAAcY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,QACjCk1E,EAAa,CAACxrE,SAAS,EAAO8B,MAAO,CAACxL,QAASA,OArBmC,WAkBpFqJ,EAlBoF9D,EAAAkE,MA0B/D,IAAvByrE,EAAWxrE,QA1B2E,CAAAnE,EAAAE,KAAA,gBA2BtFuG,EAAS8b,MA3B6EviB,EAAA2L,OAAA,SA4B/EgkE,GA5B+E,YA8BtF7rE,EAAGD,KAAKM,QA9B8E,CAAAnE,EAAAE,KAAA,gBA+BtFuG,EAAS6b,GAAiCxe,IA/B4C9D,EAAA2L,OAAA,SAgC/E,CAACxH,SAAS,EAAM1J,QAAS,KAhCsD,eAkCtFgM,EAAS8b,MAlC6EviB,EAAA2L,OAAA,SAmC/E,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,OAASnC,EAAGD,KAAKoC,MAAMxL,QAASwU,OAAQnL,EAAGD,KAAKoL,SAnCH,yBAAAjP,EAAAc,SAAAhB,EAAA1J,SAAtD,gBAAAyV,GAAA,OAAAoE,EAAAhE,MAAA7V,KAAA2S,YAAA,GmFuxExBuiE,CAAyB,CACrB3qD,aACA1F,QACAmE,aACA6rD,sBAGZG,yBAA0B,SAAAvnE,GAAI,OAC1B4C,EnF9kE4B,SAAA5C,GAAI,sBAAAoO,EAAAzZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC5CuG,EAASid,MADmC5S,EAAA5Q,KAAA,EAG3BoL,KAAMM,KAAKrS,GAAU,kCAAmCsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACzG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALG,YAGtCqJ,EAHsCgN,EAAA5M,MAUrCL,KAAKM,QAVgC,CAAA2M,EAAA5Q,KAAA,eAWxCuG,EAASkd,GAAiC7f,IAXFgN,EAAAnF,OAAA,SAYjC,CAACxH,SAAS,EAAM1J,QAAS,KAZQ,cAcxCgM,EAASmd,MAd+B9S,EAAAnF,OAAA,SAejC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfP,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAAiG,EAAAhG,MAAA7V,KAAA2S,YAAA,GmF8kEvBqiE,CAAyBvnE,KAGtCkrE,oBAAqB,SAAAlrE,GAAI,OAAI4C,EnFj+DF,SAAA5C,GAAI,sBAAA84B,EAAAnkC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAqS,EAAMzL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cACvCuG,EAASyd,MAD8B9R,EAAAlS,KAAA,EAGtBoL,KAAMM,KAAKrS,GAAU,qBAAuB4I,KAAYiN,UAAU,CAACusB,WAAY,IAAK93B,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACrI,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALF,WAGjCqJ,EAHiCsO,EAAAlO,MAU/BL,KAV+B,CAAAuO,EAAAlS,KAAA,eAWnCuG,EAAS2d,MAX0BhS,EAAAzG,OAAA,SAY5B,CAACxH,SAAS,EAAO1J,QAAS,wBAZE,WAcnCqJ,EAAGD,KAAKM,QAd2B,CAAAiO,EAAAlS,KAAA,gBAenCuG,EAAS0d,GAA4BrgB,IAfFsO,EAAAzG,OAAA,SAgB5B,CAACxH,SAAS,EAAM1J,QAAS,KAhBG,eAkBnCgM,EAAS2d,MAlB0BhS,EAAAzG,OAAA,SAmB5B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBZ,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SAAJ,gBAAAoc,GAAA,OAAAmqB,EAAA1wB,MAAA7V,KAAA2S,YAAA,GmFi+DOgmE,CAAoBlrE,KAC1DspE,oBAAqB,SAAAxsD,GAAU,OAC3Bla,EnFnqEuB,SAAAka,GAAU,MAAK,CAC9C5a,KA3L0B,wBA4L1B4a,WAAYA,GmFiqEKwsD,CAAoBxsD,KAGjCivD,wBAAyB,SAAC1sE,EAAG6D,GAAJ,OACrBN,EnF7pE2B,SAACvD,EAAG6D,GAAJ,MAAW,CAC9ChB,KAAM+c,GACN5f,IAAG6D,KmF2pEc6oE,CAAwB1sE,EAAG6D,KACxC6hE,+BAAgC,SAAAvmE,GAAE,OAC9BoE,EnFhrEkC,SAACpE,GAC3C,MAAO,CACH0D,KApKmC,qCAqKnC1D,MmF6qEaumE,CAA+BvmE,KAC5CwtE,yCAA0C,SAAAhsE,GAAI,OAC1C4C,EnF35D4C,SAAA5C,GAAI,sBAAAs5B,EAAA3kC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAu9B,EAAM32B,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAs9B,GAAA,cAAAA,EAAAp9B,KAAAo9B,EAAAn9B,MAAA,cAC5DuG,EAAS4d,MADmDgZ,EAAAn9B,KAAA,EAG3CoL,KAAMM,KAAKrS,GAAU,qCAAsCsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC5G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALmB,WAGtDqJ,EAHsDu5B,EAAAn5B,MAUpDL,KAVoD,CAAAw5B,EAAAn9B,KAAA,eAWxDuG,EAAS8d,MAX+C8Y,EAAA1xB,OAAA,SAYjD,CAACxH,SAAS,EAAO1J,QAAS,wBAZuB,WAcxDqJ,EAAGD,KAAKM,QAdgD,CAAAk5B,EAAAn9B,KAAA,gBAexDuG,EAAS6d,GAAiDxgB,IAfFu5B,EAAA1xB,OAAA,SAgBjD,CAACxH,SAAS,EAAM1J,QAAS,KAhBwB,eAkBxDgM,EAAS8d,MAlB+C8Y,EAAA1xB,OAAA,SAmBjD,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBS,yBAAA4iC,EAAAv8B,SAAAs8B,EAAAhnC,SAAJ,gBAAAqnC,GAAA,OAAAN,EAAAlxB,MAAA7V,KAAA2S,YAAA,GmF25DvC8mE,CAAyChsE,KACtD2qC,iBAAkB,kBAAM/nC,EAAS+nC,SAI1B9nC,CAGbpO,qBA5Fa,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBwL,OAAQ,CAAElE,MAAO,SACjBqhD,aAAc,CAAEvsB,KAAM,QACtBwsB,QAAS,CAAE7Z,OAAQ,WACnBphB,aAAa1sB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMwd,mBACzBu5D,YAAa,CAAE1gD,UAAW,UAsF5Bt2B,CAAmBqvE,KCt4EjBjnD,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEVu2E,GAAgB,SAAAjsE,GAAI,sBAAAoH,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACjCuG,EAASspE,MADwB/vE,EAAAE,KAAA,EAGhBoL,KAAMC,IAAIhS,GAAU,uBAAwBsK,GAAM2H,MAAM,SAAAnQ,GACrE,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALR,WAG3BqJ,EAH2B9D,EAAAkE,MAUzBL,KAVyB,CAAA7D,EAAAE,KAAA,eAW7BuG,EAASupE,MAXoBhwE,EAAA2L,OAAA,SAYtB,CAACxH,SAAS,EAAO1J,QAAS,wBAZJ,WAc7BqJ,EAAGD,KAAKM,QAdqB,CAAAnE,EAAAE,KAAA,gBAe7BuG,EAASwpE,GAAsBnsE,IAfF9D,EAAA2L,OAAA,SAgBtB,CAACxH,SAAS,EAAM1J,QAAS,KAhBH,eAkB7BgM,EAASupE,MAlBoBhwE,EAAA2L,OAAA,SAmBtB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBlB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IA2B3BgnE,GAA0B,iBAAO,CACnChqE,KAL+B,+BAQ7BkqE,GAAwB,SAAAnsE,GAAE,MAAK,CACjCiC,KAR4B,0BAS5BjC,OAGEksE,GAAqB,iBAAO,CAC9BjqE,KAZyB,yBA0CvBmqE,GAA0C,iBAAO,CACnDnqE,KALgD,gDAQ9CoqE,GAAwC,SAAArsE,GAAE,MAAK,CACjDiC,KAR6C,2CAS7CjC,OAGEssE,GAAqC,iBAAO,CAC9CrqE,KAZ0C,0CAe1C0M,GAAY,CACZ49D,aAAc,GACdC,yBAA0B,GAC1BC,wCAAwC,EACxCC,kCAAmC,GACnCC,8CAA+C,IAiCpCC,GA7BM,WAA+B,IAC5CJ,EAA0BD,EADZ30E,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAEhD,OAAQsH,EAAO+G,MAEX,IAtE2B,6BAuEvB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBi1E,wBAAwB,IAE9C,IAxEwB,0BAwExB,IAAAv9D,EACgDpU,EAAO8E,GAAGD,KAAKoL,OAC3D,OADEqhE,EADNl9D,EACMk9D,yBAA0BD,EADhCj9D,EACgCi9D,aACrB73E,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBi1E,wBAAwB,EAAOL,2BAA0BD,iBAE/E,IA3EqB,uBA4EjB,OAAO73E,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBi1E,wBAAwB,IAE9C,IAxC4C,8CAyCxC,OAAOn4E,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB60E,wCAAwC,IAE9D,IA1CyC,2CA0CzC,IAAAK,EACgD5xE,EAAO8E,GAAGD,KAAKoL,OAC3D,OADEqhE,EADNM,EACMN,yBAA0BD,EADhCO,EACgCP,aACrB73E,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB60E,wCAAwC,EAAOC,kCAAmCH,EAAcI,8CAA+CH,IAErK,IA7CsC,wCA8ClC,OAAO93E,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB60E,wCAAwC,IAE9D,QACI,OAAO70E,IC/Gbm1E,GAAqB,CACvB,CAAC54E,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,WAAY+N,MAAO,QACzB,CAAC/N,IAAK,sBAAuB+N,MAAO,QACpC,CAAC/N,IAAK,aAAc+N,MAAO,QAC3B,CAAC/N,IAAK,oBAAqB+N,MAAO,YAClC,CAAC/N,IAAK,eAAgB+N,MAAO,SAC7B,CAAC/N,IAAK,gBAAiB+N,MAAO,kBAC9B,CAAC/N,IAAK,WAAY+N,MAAO,cAGvB8qE,eACF,SAAAA,EAAYz6E,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA06E,IACxBl2E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAs4E,GAAA91E,KAAA5E,KAAMC,EAAOiJ,KAQjBI,kBAT4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KASR,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,wBAAAF,EAAAc,SAAAhB,EAAA1J,SATQwE,EAa5BgtB,mBAb4B,eAAA3X,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAaP,SAAAmB,EAAO6mB,EAAWC,GAAlB,IAAAjkB,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACb2nB,EAAUpG,iCAAmC7mB,EAAKvE,MAAMorB,+BAD3C,CAAAxgB,EAAAf,KAAA,YAETtF,EAAKvE,MAAM4kB,MAAM5Y,GAFR,CAAApB,EAAAf,KAAA,eAGH2D,EAHGrL,OAAA+d,EAAA,EAAA/d,CAAA,CAGKiX,OAAQ,CAACu+B,QAASpzC,EAAKvE,MAAM4kB,MAAM5Y,KAAQsE,eAHhD1F,EAAAf,KAAA,EAIQtF,EAAKvE,MAAMy5E,cAAcjsE,GAJjC,OAAA5C,EAAAiD,KAAA,wBAAAjD,EAAAH,SAAAE,EAAA5K,SAbO,gBAAAyV,EAAAC,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EAuB5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAxBL5H,EA2B5Bm2E,iBAAmB,SAAAC,GACf,IAAIC,EAAsB,GAAG9rE,OAAO6rE,GAIpC,OAHAC,EAAoBvsE,QAAQ,SAAAwsE,GAAkB,OAC1CA,EAAmBC,oBAAsBx0E,IAAOu0E,EAAmBE,YAAYx0E,OAAO,gBAEnFq0E,GA9BPr2E,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WALG7H,wEAmCnB,IAAAy2E,EACsEj7E,KAAKC,MAAzEq6E,aAAeJ,EADjBe,EACiBf,yBAA0BK,EAD3CU,EAC2CV,uBAEhD,OACIh6D,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cAAeV,UAAWo6E,GAC3CL,EAAyB1rE,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACspB,EAAD,CACpCpI,OAAQ+4D,GACR94D,KAAM3hB,KAAK26E,iBAAiBT,MAGpC35D,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAhDjD/H,aAmEbgM,eAbS,SAAAhL,GAAS,IACtBg1E,EAAmCh1E,EAAnCg1E,aAAclsD,EAAqB9oB,EAArB8oB,kBAGrB,MAAO,CAACksD,eAAcz1D,MAF0BuJ,EAAzCvJ,MAEsBwG,+BAFmB+C,EAAlC/C,iCAKS,SAAAhb,GACvB,MAAO,CACHqpE,cAAe,SAAAjsE,GAAI,OAAI4C,EAASqpE,GAAcjsE,OAIvC6C,CAA6CoqE,IC1EtDQ,8MAKFC,gBAAkB,WACd32E,EAAKvE,MAAMkO,QAAQC,KAAK,6GAJxBU,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,mEAOK,IAAA5D,EACoBC,KAAKC,MAAvBC,EADFH,EACEG,QAASm6B,EADXt6B,EACWs6B,MAGhB,OAD+Bz0B,YAAe,CAACrH,OAM3CgiB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,yBAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,WAAWwG,QAASpH,KAAKm7E,iBAA3D,oBAGJ56D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC46E,GAAD,CACI7X,gBAAiBlpC,EAAMhhB,OAAOpN,GAC9BnH,SAAU9E,KAAKC,MAAM6E,SACrBqJ,QAASnO,KAAKC,MAAMkO,QACpBktE,eAAgB,wBAChBC,kBAAmB,SACnBnzD,UAAWnE,OAM3BzD,EAAAhgB,EAAAC,cAAC+6E,GAAD,QA9BDh7D,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,gBAdCxD,aAwDnBpC,wBAJA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAGVe,CAAmBg5E,IClE9B5wD,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAEVq4E,GAAqB,SAACj6C,GAAD,sBAAA1sB,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA6B,SAAAC,EAAO2G,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC9DuG,EAASorE,MADqD7xE,EAAAE,KAAA,EAG7CoL,KACfC,IAAIhS,GAAU,4CADCf,OAAA+d,EAAA,EAAA/d,CAAA,CAC8CiX,OAAQ,CAAEkoB,wBAAyBA,IAA8BhxB,gBAC9H6E,MAAM,SAACnQ,GACP,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAV+C,WAGxDqJ,EAHwD9D,EAAAkE,MAmBtDL,KAnBsD,CAAA7D,EAAAE,KAAA,eAoB7DuG,EAASqrE,MApBoD9xE,EAAA2L,OAAA,SAqBtD,CAAExH,SAAS,EAAO1J,QAAS,wBArB2B,WAuB1DqJ,EAAGD,KAAKM,QAvBkD,CAAAnE,EAAAE,KAAA,gBAwB7DuG,EAASsrE,GAA2BjuE,IAxByB9D,EAAA2L,OAAA,SAyBtD,CAAExH,SAAS,EAAM1J,QAAS,KAzB4B,eA2B7DgM,EAASqrE,MA3BoD9xE,EAAA2L,OAAA,SA4BtD,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA5Ba,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAA7B,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAoC5B8oE,GAA+B,iBAAO,CAC3C9rE,KALwC,qCAQnCgsE,GAA6B,SAACjuE,GAAD,MAAS,CAC3CiC,KARqC,gCASrCjC,OAGKguE,GAA0B,iBAAO,CACtC/rE,KAZkC,+BAe/B0M,GAAY,CACfu/D,6BAA6B,EAC7BC,YAAa,IAmBCC,GAhBS,WAA+B,IAA9Bx2E,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACtD,OAAQsH,EAAO+G,MACd,IAxBuC,mCAyBtC,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBs2E,6BAA6B,IAEjD,IA1BoC,gCA2BnC,OAAOx5E,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBu2E,YAAajzE,EAAO8E,GAAGD,KAAKoL,OAAQ+iE,6BAA6B,IAErF,IA5BiC,6BA6BhC,OAAOx5E,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBs2E,6BAA6B,IAEjD,QACC,OAAOt2E,IChEJy2E,eACL,SAAAA,EAAY97E,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA+7E,IAC3Bv3E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA25E,GAAAn3E,KAAA5E,KAAMC,EAAOiJ,KAUdI,kBAX4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAWR,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,wBAAAF,EAAAc,SAAAhB,EAAA1J,SAXQwE,EAa5BgtB,mBAb4B,eAAA3X,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAaP,SAAAmB,EAAO6mB,EAAWC,GAAlB,OAAAzE,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,wBAAAe,EAAAH,SAAAE,EAAA5K,SAbO,gBAAAyV,EAAAC,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EAe5Bw3E,kBAf4B55E,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAeR,SAAAyQ,IAAA,IAAAzM,EAAAysE,EAAA+B,EAAAxgE,EAAA4+D,EAAA,OAAAptD,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,WACftF,EAAKvE,MAAMmuB,kBAAkBvJ,QAASrgB,EAAKvE,MAAMmuB,kBAAkBvJ,MAAM5Y,GAD1D,CAAAkO,EAAArQ,KAAA,eAEZ2D,EAFYrL,OAAA+d,EAAA,EAAA/d,CAAA,CAEHiX,OAAQ,CAAEu+B,QAASpzC,EAAKvE,MAAMmuB,kBAAkBvJ,MAAM5Y,KAASsE,eAF5D4J,EAAArQ,KAAA,EAGDtF,EAAKvE,MAAMy5E,cAAcjsE,GAHxB,OAAA0M,EAAArM,KAKXC,UACkBmsE,EAA+B11E,EAAKvE,MAApDq6E,aAAgBJ,yBACxB11E,EAAK03E,iBAAiBhC,IAPL,WAWf11E,EAAKvE,MAAMk8E,oCAAoCjxD,wBAAyB1mB,EAAKvE,MAAMk8E,oCAAoCjxD,sBAAsBjf,GAX9H,CAAAkO,EAAArQ,KAAA,gBAYdmyE,EAAMz3E,EAAKvE,MAAMk8E,oCAAoCjxD,sBAAsBjf,GACzEwB,EAbYrL,OAAA+d,EAAA,EAAA/d,CAAA,CAaHiX,OAAQ,CAAEkoB,wBAAyB06C,IAAU1rE,eAb1C4J,EAAArQ,KAAA,GAcDtF,EAAKvE,MAAMm8E,8BAA8B3uE,GAdxC,QAAA0M,EAAArM,KAgBXC,UACkBssE,EAAoD71E,EAAKvE,MAAzEq6E,aAAgBD,8CACxB71E,EAAK03E,iBAAiB7B,IAlBL,YAqBf71E,EAAKvE,MAAMshC,wBArBI,CAAApnB,EAAArQ,KAAA,gBAAAqQ,EAAArQ,KAAA,GAqB2BtF,EAAKvE,MAAMu7E,mBAAmBh3E,EAAKvE,MAAMshC,yBArBpE,yBAAApnB,EAAAzP,SAAAwP,EAAAla,SAfQwE,EAuC5B03E,iBAAmB,SAACzuE,GACnB,IAAM4uE,EAAY,GACZC,EAAW,GACbC,EAAW,GACf9uE,EAAKa,QAAQ,SAACtQ,GACW,OAApBA,EAAE2Y,eAA6C,gBAAnB3Y,EAAE0Y,cAAqD,UAAnB1Y,EAAE0Y,cAA+C,cAAnB1Y,EAAE0Y,cAAmD,eAAnB1Y,EAAE0Y,eAE9G,OAApB1Y,EAAE2Y,eAA0C,OAAf3Y,EAAE4Y,UAAoC,KAAf5Y,EAAE4Y,YAGtD5Y,EAAEg9E,WAAW/iE,OAAO,EAAG,MAAQskE,IAClCA,EAAWv+E,EAAEg9E,WAAW/iE,OAAO,EAAG,IAClCokE,EAAUjuE,KAAKmuE,IAEZA,IACCD,EAASjmE,eAAekmE,GACJ,YAAnBv+E,EAAE0Y,aACqB,OAApB1Y,EAAE2Y,eAAyC,OAAf3Y,EAAE4Y,UAA4C,OAApB5Y,EAAE2Y,eAAyC,OAAf3Y,EAAE4Y,UACzF0lE,EAASC,GAAU3xD,QAAQxc,KAAKpQ,GAGjCs+E,EAASC,GAAUC,QAAQpuE,KAAKpQ,IAGjCs+E,EAASC,GAAY,CAAEC,QAAS,GAAI5xD,QAAS,IACtB,YAAnB5sB,EAAE0Y,aACqB,OAApB1Y,EAAE2Y,eAAyC,OAAf3Y,EAAE4Y,UAA4C,OAApB5Y,EAAE2Y,eAAyC,OAAf3Y,EAAE4Y,UACzF0lE,EAASC,GAAU3xD,QAAQxc,KAAKpQ,GAGjCs+E,EAASC,GAAUC,QAAQpuE,KAAKpQ,QA9BR,IAAAuoB,EAAA,SAoCnBzZ,GACR,GAAIwvE,EAASxvE,GAAG0vE,QAAQhuE,OAAS,GAAK8tE,EAASxvE,GAAG8d,QAAQpc,OAAS,EAAG,CACrE,IAAM6f,EAAMguD,EAAU5tD,UAAU,SAACzwB,GAAD,OAAOA,IAAM8O,KAChC,IAATuhB,GAAYguD,EAAUztD,OAAOP,EAAK,KAHxC,IAAK,IAAIvhB,KAAKwvE,EAAU/1D,EAAfzZ,GAMTtI,EAAKU,SAAS,CAAEu3E,MAAOJ,EAAWK,cAAeJ,KAjFtB93E,EAoF5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAnF9B5H,EAAKc,MAAQ,CACZ8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBowE,MAAO,GACPC,cAAe,IAPWl4E,wEAwFnB,IAAAzE,EACiKC,KAAKC,MAAtKC,EADAH,EACAG,QADA+6E,EAAAl7E,EACSu6E,aAAgBC,EADzBU,EACyBV,uBAAwBJ,EADjDc,EACiDd,uCADjDwC,EAAA58E,EAC2F68E,oBAAoDf,GAD/Ic,EACkHf,4BADlHe,EAC+Id,aAD/IxuE,EAEyBrN,KAAKsF,MAA9Bm3E,EAFApvE,EAEAovE,MAAOC,EAFPrvE,EAEOqvE,cAEX9uE,EAAW,GACf,OACC2S,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cAAeV,UAAWo6E,GAA0BJ,GACzE55D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKg8E,mBAA5D,yBAKDh8E,KAAKsF,MAAMm3E,MAAMjuE,OAAS,GAC1B+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACzBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBAGFD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEi8D,EAAMjuE,OAAS,GACfiuE,EAAMh7E,IAAI,SAACzD,GAEV,OADA4P,EAAW8uE,EAAc1+E,GAAGw+E,QAAQ,GAAKE,EAAc1+E,GAAGw+E,QAAQ,GAAG5uE,SAAW8uE,EAAc1+E,GAAG4sB,QAAQ,GAAGhd,SAE3G2S,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK7D,GACduiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE7O,YAAwB3T,GACzBuiB,EAAAhgB,EAAAC,cAAA,WACCoN,GAEF2S,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ28E,IACrB/mE,YAAW4mE,EAAc1+E,GAAGw+E,UAC5BE,EAAc1+E,GAAGw+E,QAAQ/6E,IAAI,SAAC0yB,GAC7B,OAAO5T,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAKsyB,EAAEloB,IAAKwK,YAAuB0d,QAIlD5T,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACE1K,YAAW4mE,EAAc1+E,GAAG4sB,UAC5BrK,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ28E,IACrBH,EAAc1+E,GAAG4sB,QAAQnpB,IAAI,SAAC0yB,GAC9B,OAAO5T,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,UAAYsyB,EAAEloB,IAAKwK,YAAuB0d,cAarE0nD,GAAeA,EAAYrtE,OAAS,GACpC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACzBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,mBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBAGFD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEq7D,EAAYp6E,IAAI,SAAC6oC,EAAG3oC,GACpB,OACC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAKF,GACd4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB24B,EAAEnhB,eACtC5I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY8pB,EAAE18B,UACd2S,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY8pB,EAAEwyC,sBAStBv8D,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BA/K5G/H,aAoMdgM,eAVS,SAAChL,GAGxB,MAAO,CAAEg1E,aAF6Fh1E,EAA9Fg1E,aAEelsD,kBAF+E9oB,EAAhF8oB,kBAEoB+tD,oCAF4D72E,EAA7D62E,oCAEsCS,oBAFuBt3E,EAAxBs3E,sBAKpD,SAACvsE,GAC3B,MAAO,CAAEqpE,cAAe,SAACjsE,GAAD,OAAU4C,EAASqpE,GAAcjsE,KAAQ2uE,8BAA+B,SAAC3uE,GAAD,OAAU4C,EJ3J9D,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACjDuG,EAASypE,MADwCjvE,EAAAf,KAAA,EAGhCoL,KAAMC,IAAIhS,GAAU,uDAAwDsK,GAAM2H,MAAM,SAAAnQ,GACrG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALQ,WAG3CqJ,EAH2C7C,EAAAiD,MAUzCL,KAVyC,CAAA5C,EAAAf,KAAA,eAW7CuG,EAAS2pE,MAXoCnvE,EAAA0K,OAAA,SAYtC,CAACxH,SAAS,EAAO1J,QAAS,wBAZY,WAc7CqJ,EAAGD,KAAKM,QAdqC,CAAAlD,EAAAf,KAAA,gBAe7CuG,EAAS0pE,GAAsCrsE,IAfF7C,EAAA0K,OAAA,SAgBtC,CAACxH,SAAS,EAAM1J,QAAS,KAhBa,eAkB7CgM,EAAS2pE,MAlBoCnvE,EAAA0K,OAAA,SAmBtC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBF,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GI2JmEypE,CAA8B3uE,KAAQ+tE,mBAAoB,SAAC/tE,GAAD,OAAU4C,EAASmrE,GAAmB/tE,OAGrM6C,CAGbpO,qBAlBa,SAAC66E,GAAD,MAAa,CAC3B57E,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAM26E,EAAO57E,UAAd,CAAyBq3B,UAAW,KAC7CqkD,GAAI,CAAE/gB,YAAa,UAgBlB55D,CAAmB65E,KCpMfiB,8MAKL7B,gBAAkB,WACjB32E,EAAKvE,MAAMkO,QAAQC,KAAK,kGAJxBU,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,0DAOQ,IAAA5D,EAKJC,KAAKC,MAHRC,EAFOH,EAEPG,QACAm6B,EAHOt6B,EAGPs6B,MACqBnP,EAJdnrB,EAIPquB,kBAAqBlD,sBAEtB,OACC3K,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MACA1sD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,gBACrB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,WAAWwG,QAASpH,KAAKm7E,iBAA3D,sBAID56D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAC46E,GAAD,CAAoB7X,gBAAiBlpC,EAAMhhB,OAAOpN,GAAInH,SAAU9E,KAAKC,MAAM6E,SAAUqJ,QAASnO,KAAKC,MAAMkO,aAK3G2H,YAAWoV,IACX3K,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,qBACrB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB4X,mBAG/DviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB0X,sBAG/DriB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB6X,wBAG/DxiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,0BAGD2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKmI,EAAsB+xD,sBAAuBh6D,IAAI,QAM/D1C,EAAAhgB,EAAAC,cAAC08E,GAAD,CACmB37C,wBAAyBrW,EAAsBjf,cA9D7C3H,aAgFXgM,eANS,SAAChL,GAGxB,MAAO,CAAE8oB,kBAFqB9oB,EAAtB8oB,oBAOR,KAFc9d,CAGbpO,qBAba,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,aAYrBe,CAAmB86E,KC7DjB3tC,GAAU,GAER8tC,eACF,SAAAA,EAAYl9E,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAm9E,IACxB34E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+6E,GAAAv4E,KAAA5E,KAAMC,EAAOiJ,KAUjBk0E,qBAAuB,SAAC/uD,EAAKtwB,GACzB,IAAKA,EAAE6nE,KAAM,OAAOrlD,EAAAhgB,EAAAC,cAAA,kBACpB,IAAMuvB,EAAQhyB,EAAE6nE,KAAK,UAAYv3C,EAAM,UAAU0B,MACjD,OAAIA,EAEIxP,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS5C,EAAK64E,sBAAsBttD,IAEpCxP,EAAAhgB,EAAAC,cAAC+6C,GAAD,YAPZ,GAdwB/2C,EA0B5B84E,yBAA2B,SAAAC,GAAiB,IAAAx9E,EAIpCyE,EAAKvE,MAFLC,EAFoCH,EAEpCG,QAC2BwjE,EAHS3jE,EAGpCulE,wBAA2B5B,uBAG3B8Z,EAAgB9Z,EAAuBtxD,KACvC,SAAAqrE,GAAU,OAAIA,EAAW3tD,eAAiBytD,IAE9C,GAAI7Z,EAAuBl1D,OAAS,GAAKgvE,EAAe,CACpD,IAAMxtD,EAAiBwtD,EAAcxtD,eACrC,OAAI3F,GAA0B2F,KAAoB7F,GAE1C5J,EAAAhgB,EAAAC,cAAC66C,GAAD,CACIxG,YAAa30C,EAAQoe,KACrBlX,QAAS,kBACL5C,EAAK82C,uBAAuBkiC,MAKxCnzD,GAA0B2F,KAAoB9F,GAG1C3J,EAAAhgB,EAAAC,cAAC+6C,GAAD,CACI1G,YAAa30C,EAAQoe,KACrB02B,QAAM,EACN5tC,QAAS,kBACL5C,EAAK82C,uBAAuBkiC,MAMpCj9D,EAAAhgB,EAAAC,cAAC+6C,GAAD,CACI1G,YAAa30C,EAAQoe,KACrBlX,QAAS,kBACL5C,EAAK82C,uBAAuBkiC,QA/DxBh5E,EAuE5B82C,uBAAyB,SAAA5tC,GACjBA,EAAGuiB,UACHzrB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAWviB,EAAGuiB,UACdyd,iBAAkB,KAGtBhgC,EAAGkd,QACGpmB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkBhgC,EAAGkd,UAEzBpmB,EAAKU,SAAS,CACV8oC,eAAe,EACf/d,UAAW,GACXyd,iBAAkB,mCAxFRlpC,EA6F5B0pC,qBAAuB,WACnB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KA9FPxpC,EAiG5B64E,sBAAwB,aAjGI74E,EAqG5Bk5E,mBAAqB,SAAArvD,GACjB7pB,EAAKvE,MAAM09E,uBAAuBtvD,IAtGV7pB,EAyG5BkqC,WAAa,SAACrgB,EAAKtwB,GACXA,EAAE4nE,YAAYnhE,EAAKU,SAAS,CAAEqpC,WAAYlgB,KA1GtB7pB,EA6G5Bo5E,4BAA8B,SAACvvD,EAAKtwB,GAC5BA,EAAE4nE,YAAYnhE,EAAKU,SAAS,CAAEqpC,WAAYlgB,KA9GtB7pB,EAiH5BiqC,eAAiB,SAACpgB,EAAKppB,GACnB,IAAI8S,EAAS9S,EAAE+H,OAAOC,MAClB8K,EAAOvJ,OAAS,KAChBuJ,EAASA,EAAOE,OAAO,EAAG,KAE9BzT,EAAKvE,MAAM49E,gBAAgBxvD,EAAM,EAAG,SAAUtW,IAtHtBvT,EAyH5B85D,gCAAkC,SAACjwC,EAAKppB,GACpC,IAAI8S,EAAS9S,EAAE+H,OAAOC,MAClB8K,EAAOvJ,OAAS,KAChBuJ,EAASA,EAAOE,OAAO,EAAG,KAE9BzT,EAAKvE,MAAM49E,gBAAgBxvD,EAAM,EAAG,0BAA2BtW,IA9HvCvT,EAiI5B8pC,iBAAmB,SAAArpC,GACD,UAAVA,EAAEpD,KACF2C,EAAKU,SAAS,CAAEqpC,WAAY,KAAMC,mBAAoB,MAnIlChqC,EAsI5Bs5E,kCAAoC,SAAA74E,GAClB,UAAVA,EAAEpD,KACF2C,EAAKU,SAAS,CAAEqpC,WAAY,KAAMC,mBAAoB,MAxIlChqC,EA2I5BqqC,aAAe,SAAAxgB,GACP7pB,EAAKc,MAAMipC,aAAelgB,GAAK7pB,EAAKU,SAAS,CAAEqpC,WAAY,QA5IvC/pC,EA+I5B+5D,8BAAgC,SAAAlwC,GACxB7pB,EAAKc,MAAMipC,aAAelgB,GAAK7pB,EAAKU,SAAS,CAAEqpC,WAAY,QAhJvC/pC,EAmJ5BoqC,mBAAqB,SAACpsB,EAAK0V,GACvB1zB,EAAKU,SAAS,CAAEspC,mBAAoB,CAAEhsB,MAAK0V,UApJnB1zB,EAuJ5BmqC,uBAAyB,SAACtgB,EAAK0vD,EAAY94E,GACvC,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IAGlBxiB,EAC3B/lB,EAAKvE,MADLqlE,wBAA2B/6C,WAEzBke,EAAMrmC,OAAA+d,EAAA,EAAA/d,CAAA,GAAQmoB,EAAW8D,IACZ,IAAf0vD,EACAt1C,EAAOpI,qBAAuBy5B,EAE9BrxB,EAAOnI,qBAAuBw5B,EAElC,IAAIvrC,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOmoB,GACxBgE,EAAcK,OAAOP,EAAK,EAAGoa,GAC7BjkC,EAAKvE,MAAMmlE,8BAA8B,aAAc72C,IArK/B/pB,EAwK5BsqC,qBAAuB,SAACzgB,EAAK6J,GAAQ,IACzBsW,EAAuBhqC,EAAKc,MAA5BkpC,mBACJA,EAAmBhsB,MAAQ6L,GAAOmgB,EAAmBtW,MAAQA,GAC7D1zB,EAAKU,SAAS,CAAEspC,mBAAoB,MA3KhBhqC,EA8K5Bw5E,YAAc,SAACjgF,EAAG+O,EAAGnL,GAAM,IACfzB,EAAYsE,EAAKvE,MAAjBC,QAWR,GAAU,QAAN4M,EAAa,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAAInL,GAEnD,GAZqB,CACjB,YACA,WACA,MACA,aACA,cACA,aACA,eAKa6R,SAAS1G,GAAI,CAC1B,QAAaxL,IAATvD,EAAE+O,GAAkB,OACxB,OAAOyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAAI/O,EAAE+O,IAGxC,GACU,oBAANA,GACM,qBAANA,GACM,oBAANA,GACM,qBAANA,EAEA,OACIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAClB4E,YAAoB3T,EAAE+O,KAKnC,GAAU,YAANA,EAAiB,CACjB,CAAC,WAAY,WAAY,WAAY,YAAYwB,QAAQ,SAAAw/B,GACvC,KAAV/vC,EAAE+vC,IAAYuB,GAAQjhC,KAAKrQ,EAAE+vC,MAErC,IAAMg7B,EAAQz5B,GAAQ5tC,IAAI,SAACkP,EAAGggE,GAC1B,GAAIhgE,EACA,OACI4P,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK9D,EAAEkO,GAAK0kE,EAAIlwE,UAAWP,EAAQ+9E,aAClCttE,EADL,IACSnM,EAAK44E,qBAAqBzM,EAAK,EAAG5yE,GACtCyG,EAAK84E,yBAAyB3sE,MAO/C,OAFA0+B,GAAU,GAGN9uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GACnByT,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ2wE,IAAK/H,IAKxC,GAAU,QAANh8D,EACA,OACIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAClB4E,YAAoB3T,EAAE8gC,MAKnC,GAAU,SAAN/xB,EACA,OACIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GACnByT,EAAAhgB,EAAAC,cAAC6iB,EAAD,CACItD,SAAUhiB,EAAEoxB,aAAepxB,EAAEoxB,YAC7B/nB,QAAS,kBAAM5C,EAAKvE,MAAMqjB,OAAOvlB,EAAEkO,QAMnD,GAAU,WAANa,EACA,OACIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,IACjB/O,EAAE+wB,cACAvO,EAAAhgB,EAAAC,cAAC+iB,EAAD,CACIxD,SAAUhiB,EAAEoxB,YACZ/nB,QAAS,kBAAM5C,EAAKvE,MAAMujB,SAASzlB,EAAEkO,OAI5ClO,EAAE+wB,cACCvO,EAAAhgB,EAAAC,cAACovC,GAAD,CACI7vB,SAAUhiB,EAAEoxB,YACZ/nB,QAAS,kBAAM5C,EAAKvE,MAAM+vE,OAAOjyE,EAAEkO,QAOvD,GAAU,WAANa,EAAgB,KACRyhC,EAAe/pC,EAAKc,MAApBipC,WACR,OACIhuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAClByhC,IAAe5sC,GACZ4e,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM5C,EAAKkqC,WAAW/sC,EAAG5D,KACnCA,EAAEga,QAGVw2B,IAAe5sC,GACZ4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN3C,MAAOlP,EAAEga,OACThI,SAAU,SAAA9K,GAAC,OAAIT,EAAKiqC,eAAe9sC,EAAGsD,IACtCuqC,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYnrC,EAAK8pC,iBACjB9S,OAAQ,kBAAMh3B,EAAKqqC,aAAaltC,IAChCoe,UAAWhiB,EAAE4nE,WACbh2D,KAAK,YAOzB,GAAU,4BAAN7C,EAAiC,KACzByhC,EAAe/pC,EAAKc,MAApBipC,WACR,OACIhuB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAClByhC,IAAe5sC,GACZ4e,EAAAhgB,EAAAC,cAAA,QACI4G,QAAS,kBACL5C,EAAKo5E,4BAA4Bj8E,EAAG5D,KAGvCA,EAAEujC,yBAGViN,IAAe5sC,GACZ4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN3C,MAAOlP,EAAEujC,wBACTvxB,SAAU,SAAA9K,GAAC,OACPT,EAAK85D,gCAAgC38D,EAAGsD,IAE5CuqC,WAAS,EACTC,WAAY,CAAEhvC,UAAWP,EAAQwvC,gBACjCC,WAAYnrC,EAAKs5E,kCACjBtiD,OAAQ,kBAAMh3B,EAAK+5D,8BAA8B58D,IACjDoe,UAAWhiB,EAAE4nE,WACbh2D,KAAK,YAOzB,GAAU,iBAAN7C,EACA,OACIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GAClB4E,YAAoB3T,EAAE+O,KA7JZ,IAkKf0hC,EAAuBhqC,EAAKc,MAA5BkpC,mBACJngB,EAAM1sB,EAAI,EACd,MAAU,cAANmL,EAEIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,IACjB0hC,EAAmBhsB,MAAQ6L,GACE,IAA3BmgB,EAAmBtW,MACnB3X,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM5C,EAAKoqC,mBAAmBvgB,EAAK,KAC7CtwB,EAAEsiC,sBAGVmO,EAAmBhsB,MAAQ6L,GACG,IAA3BmgB,EAAmBtW,KACf3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN3C,MAAOlP,EAAEsiC,qBACTtwB,SAAU,SAAA9K,GAAC,OACPT,EAAKmqC,uBAAuBtgB,EAAK,EAAGppB,IAExCuqC,WAAS,EACTC,WAAY,CACRhvC,UAAWP,EAAQwvC,gBAEvBC,WAAYnrC,EAAK8pC,iBACjB9S,OAAQ,kBAAMh3B,EAAKsqC,qBAAqBzgB,EAAK,IAC7CtO,UAAWhiB,EAAE4nE,cAO3B,cAAN74D,EAEIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,IACjB0hC,EAAmBhsB,MAAQ6L,GACE,IAA3BmgB,EAAmBtW,MACnB3X,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM5C,EAAKoqC,mBAAmBvgB,EAAK,KAC7CtwB,EAAEuiC,sBAGVkO,EAAmBhsB,MAAQ6L,GACG,IAA3BmgB,EAAmBtW,KACf3X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACN3C,MAAOlP,EAAEuiC,qBACTvwB,SAAU,SAAA9K,GAAC,OACPT,EAAKmqC,uBAAuBtgB,EAAK,EAAGppB,IAExCuqC,WAAS,EACTC,WAAY,CACRhvC,UAAWP,EAAQwvC,gBAEvBC,WAAYnrC,EAAK8pC,iBACjB9S,OAAQ,kBAAMh3B,EAAKsqC,qBAAqBzgB,EAAK,IAC7CtO,UAAWhiB,EAAE4nE,cAO3B,eAAN74D,EAEIyT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK9D,EAAEkO,GAAKa,GACnByT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIsC,QAAS/kB,EAAE4nE,WACXx+D,MAAO,UACP4I,SAAU,kBAAMvL,EAAKk5E,mBAAmB/7E,EAAI,OAMrD,MA1ZP6C,EAAKc,MAAQ,CACT2qB,UAAW,GACXyd,iBAAkB,GAClBM,eAAe,EACfO,WAAY,KACZC,mBAAoB,IAPAhqC,wEA+ZnB,IAAAkB,EAAA1F,KAAA0mB,EAOD1mB,KAAKC,MALLC,EAFCwmB,EAEDxmB,QACAuN,EAHCiZ,EAGDjZ,KACA+C,EAJCkW,EAIDlW,QACA8/D,EALC5pD,EAKD4pD,SAC2B7M,EAN1B/8C,EAMD4+C,wBAA2B7B,yBAN1Bp2D,EAQkDrN,KAAKsF,MAApD2qB,EARH5iB,EAQG4iB,UAAWyd,EARdrgC,EAQcqgC,iBAAkBM,EARhC3gC,EAQgC2gC,cAErC,OACIztB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACIlf,UAAWA,EACXyd,iBAAkBA,EAClBQ,qBAAsBluC,KAAKkuC,qBAC3BF,cAAeA,IAEnBztB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQa,MAAQ,0BAC9Bwf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOje,QAAS,SACZge,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUX,OAAK,GACVrP,EAAQ/O,IAAI,SAAAkP,GAAC,OACV4P,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK8O,GAAIA,OAIhC4P,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK/S,EAAKhM,IAAI,SAAC1D,EAAG4D,GAAJ,OACN4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK9D,EAAEkO,IACZqkE,EAAS7uE,IAAI,SAAAqL,GAAC,OACXpH,EAAKs4E,YAAYjgF,EAAG+O,EAAGnL,EAAI,UAM/C4e,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,KAAMyhE,aArcRn/D,aAqerBgM,eAjBS,SAAAhL,GAGpB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKe,SAAAj1D,GACvB,MAAO,CACHstE,uBAAwB,SAACtvD,EAAK/Y,GAAN,OACpBjF,EpByB0B,SAACge,EAAK/Y,GAAN,MAAkB,CACpD3F,KAAMo1D,GACN12C,MACA/Y,UoB5BiBqoE,CAAuBtvD,EAAK/Y,KACzCuoE,gBAAiB,SAACxvD,EAAKxsB,EAAKyT,GAAX,OACbjF,EpB8BmB,SAACge,EAAKxsB,EAAKoL,GAAX,MAAsB,CACjD0C,KAAMq1D,GACN32C,MACAxsB,MACAoL,SoBlCiB4wE,CAAgBxvD,EAAKxsB,EAAKyT,KACvC8vD,8BAA+B,SAACt4D,EAAG6D,GAAJ,OAC3BN,EAAS+0D,GAA8Bt4D,EAAG6D,OAIvCL,CAGbpO,qBA5Ba,SAAAC,GAAK,MAAK,CACrB0uE,GAAI,CAAEtuE,QAAS,UAEf+b,KAAM,CAAEf,IAAK,SAAUG,MAAO,WAE9BgyB,eAAgB,CAAE1mC,SAAU,eAuB9B9G,CAAmBi7E,KCtdf3L,GAAgB,CAClB,sBACA,uBACA,sBACA,uBACA,sBACA,uBACA,sBACA,wBAGEC,GAAiB,CACnB,aACA,kBACA,cACA,mBACA,aACA,kBACA,cACA,oBAGEyM,GAAiC,CACnC,MACA,aACA,YACA,OAJmCnvE,OAKhCyiE,GALgC,CAMnC,qBAEE2M,GAAmC,CACrC,MACA,YACA,WACA,OAJqCpvE,OAKlC0iE,GALkC,CAMrC,QAEEnnD,GAAWznB,eACXu7E,GAA2B,CAC7B,MACA,aACA,YACA,OAJ6BrvE,OAK1ByiE,GAL0B,CAM7B,mBACA,UACA,oBAEE6M,GAA6B,CAC/B,MACA,YACA,WACA,OAJ+BtvE,OAK5B0iE,GAL4B,CAM/B,MACA,SACA,iBAGE6M,eACF,SAAAA,EAAYr+E,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAs+E,IACf95E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAk8E,GAAA15E,KAAA5E,KAAMC,KAwDVqJ,kBAzDmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAyDC,SAAAC,IAAA,IAAA60E,EAAAtyE,EAAA63D,EAAApK,EAAA,OAAAzsC,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACRy0E,EAAe/5E,EAAKc,MAApBi5E,WAGStyE,EAEbzH,EAAKvE,MAHLqlE,wBACIzgD,MAAS5Y,GAIbsyE,GAAqB,KAAPtyE,EACdzH,EAAKg6E,gBAAgBD,KAGUza,EAC3Bt/D,EAAKvE,MADLqlE,wBAA2BxB,IAEtB2a,WACLj6E,EAAKU,SAAS,CAAEu5E,UAAW3a,EAAG2a,UAAWC,YAAY,IACnD5a,EAAGmQ,OACLzvE,EAAKU,SAAS,CAAE+uE,MAAOnQ,EAAGmQ,MAAOyK,YAAY,KAGlBhlB,EAC3Bl1D,EAAKvE,MADLqlE,wBAA2B5L,kBAGRqJ,IACnBrJ,IAAmBsJ,KAEnBx+D,EAAKU,SAAS,CACVy5E,mBAAkB,CACd,MACA,aACA,YACA,OAJc5vE,OAKXyiE,GALW,CAMd,mBACA,aACA,cAGRhtE,EAAKU,SAAS,CACV05E,qBAAoB,CAChB,MACA,YACA,WACA,OAJgB7vE,OAKb0iE,GALa,CAMhB,MACA,aACA,cAmCR/X,IAAmBuJ,KACnBz+D,EAAKU,SAAS,CACVy5E,mBAAkB,CACd,MACA,aACA,YACA,OAJc5vE,OAKXyiE,GALW,CAMd,mBACA,aACA,wBAGRhtE,EAAKU,SAAS,CACV05E,qBAAoB,CAChB,MACA,YACA,WACA,OAJgB7vE,OAKb0iE,GALa,CAMhB,MACA,aACA,8BAIRjtE,EAAKvE,MAAMqlE,wBAAwB/6C,WAAWjc,QAAQ,SAAAvQ,GAClDA,EAAEujC,wBAA0B,OA7GxB,wBAAA13B,EAAAc,SAAAhB,EAAA1J,SAzDDwE,EAyTnBq6E,8BAAgC,WAC5Br6E,EAAKU,SAAS,CACV45E,2BAA2B,KA3ThBt6E,EA+TnB8wE,WAAa,WACT9wE,EAAKu6E,yBAAwB,IAhUdv6E,EAmUnB+wE,aAAe,WACX/wE,EAAKu6E,yBAAwB,IApUdv6E,EAuUnBu6E,wBAA0B,SAACz5E,GAAU,IAEFilB,EAC3B/lB,EAAKvE,MADLqlE,wBAA2B/6C,WAE3BguC,EAAoB/oC,GAAUjF,GAClCguC,EAAkBjqD,QAAQ,SAAAvQ,GACtBA,EAAE4nE,WAAargE,IAEnBd,EAAKvE,MAAMolE,iCAAiC,CAAE96C,WAAYguC,IAC1D/zD,EAAKU,SAAS,CACV85E,qBAAsB15E,KAjVXd,EAqVnBwzD,SArVmB51D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqVR,SAAAmB,IAAA,IAAAk8D,EAAAv8C,EAAAmvC,EAAAnB,EAAA0mB,EAAA5xE,EAAA6xE,EAAAC,EAAAznB,EAAAe,EAAAC,EAAA,OAAAzrC,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UAAAg9D,EAGHtiE,EAAKvE,MADLqlE,wBAA2B/6C,EAFxBu8C,EAEwBv8C,WAAYmvC,EAFpCoN,EAEoCpN,eAEvCnB,EAAoB/oC,GAAUjF,GAJ3B00D,EAKgBt4E,KAAKC,MAAMT,aAAaC,QAAQ,gBALhD64E,EAKC9sE,WAGJunD,IAAmBqJ,IACnBrJ,IAAmBuJ,GAThB,CAAAp4D,EAAAf,KAAA,YAAAuD,EAeC7I,EAAKc,MAHL45E,EAZD7xE,EAYC6xE,oBACAC,EAbD9xE,EAaC8xE,kBACAznB,EAdDrqD,EAcCqqD,WAGsB,KAAtBynB,IACA,WAAWzwE,KAAKywE,IACQ,KAAxBD,IACA,WAAWxwE,KAAKwwE,GApBjB,CAAAr0E,EAAAf,KAAA,eAsBCtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,oCAzBtBzB,EAAA0K,OAAA,kBA+BCkjD,EAAkB,IAAI1K,GAAgB,CACtCC,YAFkBkxB,EAAsB,IAAMC,EAG9ClxB,OAAQyJ,EACRxJ,WAAYxwB,MAEAywB,cACZuK,EAAQD,EAAgBhK,gBAExBiL,IAAmBqJ,GACnBxK,EAAoB/zD,EAAK46E,sBAAsB,CAC3C70D,WAAYguC,EACZG,MAAOA,EACPgB,eAAgBqJ,KAEbrJ,IAAmBuJ,KAC1B1K,EAAoB/zD,EAAK46E,sBAAsB,CAC3C70D,WAAYguC,EACZG,MAAOA,EACPgB,eAAgBuJ,MAjDrB,QAsDPz+D,EAAKvE,MAAMo/E,iBAAiB9mB,GAtDrB,yBAAA1tD,EAAAH,SAAAE,EAAA5K,SArVQwE,EA8YnB86E,oBAAsB,SAAArlE,GAAwC,IAArCsQ,EAAqCtQ,EAArCsQ,WAAYg1D,EAAyBtlE,EAAzBslE,mBAC7BC,GAAiB,EAErB,GACID,IAAuBtc,IACvB14C,EAAWk0C,KAAK,SAAAn0B,GAAC,OAAKA,EAAEhJ,0BAOxB,OALA98B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBkoC,MAEd,EAZ+C,IAAAxhC,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAe1D,QAAA6R,EAAAC,EAAcmX,EAAdlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA0B,KAAjBjV,EAAiBoV,EAAAlG,MACtB,IAAKlP,EAAE4nE,aAAe5nE,EAAEga,QAAUha,EAAEsiC,sBAAuB,CACvD77B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBqoC,KAErB6qC,GAAiB,EACjB,MAGJ,GAAKzhF,EAAE4nE,YAEH4Z,IAAuBxc,GAAqB,CAC5C,IAAKhlE,EAAEga,OAAQ,CACXvT,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBkoC,KAErBgrC,GAAiB,EACjB,MAEJ,GAAIzhF,EAAEga,OAAOE,OAAO,EAAG,KAAO2lB,GAAiB,CAC3Cp5B,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,qCAErBkzE,GAAiB,EACjB,SA7C8C,MAAA/rE,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAkD1D,GAAIqsE,IAAuBxc,GAAqB,CAC5C,IAAIxN,EAAyBhrC,EAAWvI,OACpC,SAAAjkB,GAAC,OAAqB,IAAjBA,EAAE4nE,aAEXpQ,EAAyBhrC,EAAWvI,OAAO,SAAAjkB,GAAC,QAAMA,EAAEga,SAEpD,IAAIy9C,EAAY,IAAIplC,IAEpB,GADAmlC,EAAuBjnD,QAAQ,SAAAvQ,GAAC,OAAIy3D,EAAU/kC,IAAI1yB,EAAEga,UAChDy9C,EAAUz0C,OAASw0C,EAAuB/mD,OAM1C,YALAhK,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,gCAM7B,OAAOkzE,GAldQh7E,EAqdnBi7E,UArdmBr9E,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqdP,SAAAyQ,IAAA,IAAAwlE,EAAAn1D,EAAAmvC,EAAA,OAAAzsC,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,UAAA41E,EAGJl7E,EAAKvE,MADLqlE,wBAA2B/6C,EAFvBm1D,EAEuBn1D,WAAYmvC,EAFnCgmB,EAEmChmB,eAEtBl1D,EAAK86E,oBAAoB,CAC1C/0D,aACAg1D,mBAAoB7lB,IANhB,CAAAv/C,EAAArQ,KAAA,eAAAqQ,EAAA5E,OAAA,iBASR/Q,EAAKvE,MAAMkO,QAAQC,KAAK,0BAThB,wBAAA+L,EAAAzP,SAAAwP,EAAAla,SArdOwE,EA2fnBm7E,kBAAoB,SAAA/kD,GAChBp2B,EAAKU,SAAS,CAAEwyD,WAAY98B,EAAM5tB,OAAOC,SA5f1BzI,EA+fnB+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KAhgBf5H,EAmgBnB6qE,OAAS,WACLtqE,OAAOD,SAAWC,OAAOD,SAAS+2D,MApgBnBr3D,EAugBnBo7E,iBAvgBmB,eAAA7kE,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAugBA,SAAAgR,EAAMxV,GAAN,IAAAs5E,EAAA,OAAAtxD,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,OACXy0E,EAAat5E,EAAE+H,OAAOC,MAC1BzI,EAAKU,SAAS,CAAEq5E,WAAYA,IAC5B/5E,EAAKg6E,gBAAgBD,GAHN,wBAAA7jE,EAAAhQ,SAAA+P,EAAAza,SAvgBA,gBAAAyV,GAAA,OAAAsF,EAAAlF,MAAA7V,KAAA2S,YAAA,GAAAnO,EA6gBnBg6E,gBA7gBmB,eAAAjjE,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6gBD,SAAAuR,EAAMujE,GAAN,IAAA7wE,EAAAmyE,EAAA70D,EAAA,OAAAiC,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,UACY,KAAtBy0E,EAAW/vE,QAAiD,MAAhC+vE,EAAW,GAAGjsE,cADhC,CAAA2I,EAAAnR,KAAA,eAAAmR,EAAAnR,KAAA,EAGOtF,EAAKvE,MAAMikE,gCAAgC,CACxDh8C,MAAOq2D,EACP1xD,YAAY,IALN,QAGJnf,EAHIuN,EAAAnN,MAOFC,SACJvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAGxBqJ,EAAGK,UAAS8xE,EAGRr7E,EAAKvE,MADLqlE,wBAFQua,EAEmBt1D,WAAYS,EAF/B60D,EAE+B70D,cAE3CxmB,EAAKvE,MAAMmlE,8BACP,iBACA5gE,EAAKvE,MAAMqlE,wBAAwBzgD,MAAM60C,gBAGxC1uC,EAAc80D,6BACft7E,EAAKU,SAAS,CACV41C,mBAAmB,EACnBD,mBAAoB,iCA1BtB,wBAAA5/B,EAAAvQ,SAAAsQ,EAAAhb,SA7gBC,gBAAA0V,GAAA,OAAA6F,EAAA1F,MAAA7V,KAAA2S,YAAA,GAAAnO,EA8iBnBu7E,iBAAmB,SAAA96E,GACf,IAAIskB,EAAWtkB,EAAE+H,OAAOC,MACxBwsC,aAAaj1C,EAAKy2C,gBAClBz2C,EAAKy2C,eAAiB/sC,WAAW,WAC7B,IAAI6iC,EAAQ,OACRxnB,EAAS8Q,MAAM0W,IAAUxnB,EAAS8Q,MAAM0W,GAAOviC,QAAU,GACzDhK,EAAK02C,qBAAqB3xB,IAE/B,KACH/kB,EAAKU,SAAS,CAAE86E,WAAYz2D,KAvjBb/kB,EA0jBnBy7E,YAAc,SAAAh7E,GACV,IAAIi7E,EAAUj7E,EAAE+H,OAAOC,MACvBwsC,aAAaj1C,EAAKy2C,gBAClBz2C,EAAKy2C,eAAiB/sC,WAAW,WAC7B,IAAI6iC,EAAQ,OACRmvC,EAAQ7lD,MAAM0W,IAAUmvC,EAAQ7lD,MAAM0W,GAAOviC,QAAU,GACvDhK,EAAK02C,qBAAqBglC,IAE/B,KACH17E,EAAKU,SAAS,CAAE+uE,MAAOiM,KAnkBR17E,EAskBnB27E,gBAAkB,SAAAl7E,GACd,IAAIm7E,EAAYn7E,EAAE+H,OAAOC,MACzBwsC,aAAaj1C,EAAK67E,kBAClB77E,EAAK67E,iBAAmBnyE,WAAW,WAC3BkyE,EAAU5xE,QAAU,IACpBhK,EAAK87E,qBAAqBF,IAE/B,KACH57E,EAAKU,SAAS,CAAEu5E,UAAW2B,KA9kBZ57E,EAilBnB+7E,gBAAkB,SAAAt7E,KAjlBCT,EAqlBnBg8E,eAAiB,SAAAv7E,KArlBET,EAylBnBi8E,kBAAoB,SAAA5kE,GAAmB,IAAhBgjB,EAAgBhjB,EAAhBgjB,IAAKyK,EAAWztB,EAAXytB,KAwBxB,GAvBIzK,IAEIt4B,IAAOs4B,GAAKwU,OACR9sC,IAAO/B,EAAKvE,MAAMqlE,wBAAwBt8C,WAAW6V,KACrD,QAGJr6B,EAAKU,SAAS,CAAEw5E,YAAY,IAC5Bl6E,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,2BAGrB9H,EAAKU,SAAS,CAAEw5E,YAAY,IAC5Bl6E,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,8BAKzBg9B,EAAM,KAAAo3C,EAMFl8E,EAAKvE,MAAMqlE,wBAAwBt8C,WAJnCmV,EAFEuiD,EAEFviD,SACAC,EAHEsiD,EAGFtiD,SACAC,EAJEqiD,EAIFriD,SACAC,EALEoiD,EAKFpiD,SAGAgL,IAASnL,GACTmL,IAASlL,GACTkL,IAASjL,GACTiL,IAAShL,GAET95B,EAAKU,SAAS,CAAEw5E,YAAY,IAC5Bl6E,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,2BAGrB9H,EAAKU,SAAS,CAAEw5E,YAAY,IAC5Bl6E,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,+BAzoBd9H,EA+oBnB02C,qBAAuB,SAAAzK,GACnB,IACIjH,EADiB,IAAIgH,GAAeC,GACNC,UAClClsC,EAAKU,SAAS,CAAE86E,WAAYx2C,EAAajgB,WACzC/kB,EAAKU,SAAS,CAAE+uE,MAAO1tE,IAAOijC,EAAa3K,KAAKr4B,OAAO,gBACvDhC,EAAKvE,MAAMolE,iCAAiC,CACxCvB,GAAI,CACAmQ,MAAO1tE,IAAOijC,EAAa3K,KAAKr4B,OAAO,cACvCw5E,WAAYx2C,EAAajgB,YAGjC/kB,EAAKi8E,kBAAkB,CAAE5hD,IAAK2K,EAAa3K,OA1pB5Br6B,EA6pBnB87E,qBAAuB,SAAAK,GACnB,IACIx3C,EADqB,IAAIoM,GAAmBorC,GACNjwC,UAC1ClsC,EAAKU,SAAS,CAAEu5E,UAAWt1C,EAAiBG,OAC5C9kC,EAAKvE,MAAMolE,iCAAiC,CACxCvB,GAAI,CAAE2a,UAAWt1C,EAAiBG,QAEtC9kC,EAAKi8E,kBAAkB,CAAEn3C,KAAMH,EAAiBG,QApqBjC9kC,EAuqBnBo8E,cAAgB,SAAArC,GACZx5E,OAAOb,KAAK,uBAAyBq6E,IAxqBtB/5E,EA2qBnBg1D,uBAAyB,SAAAv0D,GACrB,IAAIszD,EAAoB/zD,EAAK46E,sBAAsB,CAC/C70D,WAAY/lB,EAAKvE,MAAMqlE,wBAAwB/6C,WAC/CmuC,MAAO,GACPgB,eAAgBsJ,KAEpBx+D,EAAKvE,MAAMmlE,8BACP,iBACAngE,EAAE+H,OAAOC,OAEbzI,EAAKvE,MAAMo/E,iBAAiB9mB,IArrBb/zD,EAwrBnB46E,sBAAwB,SAAAphC,GASpB,IAT+D,IAAxCzzB,EAAwCyzB,EAAxCzzB,WAAYmuC,EAA4B1a,EAA5B0a,MAAOgB,EAAqB1b,EAArB0b,eACtCtuB,EAAa9gB,GAASjnB,gBAAgB+O,KACtC,SAAAoU,GAAC,MAAyB,OAArBA,EAAEljB,kBAEP+nC,EAAaD,EAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC7C8nC,EAAaF,EAAW7nC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC7C+0D,EAAoB/oC,GAAUjF,GAC1BpY,EAAexL,KAAKC,MAAMT,aAAaC,QAAQ,gBAA/C+L,WAECxQ,EAAI,EAAGA,EAAI42D,EAAkB/pD,OAAQ7M,IAC1C,GAAK42D,EAAkB52D,GAAGgkE,YAOnB,GAAIpN,EAAkB52D,GAAGgkE,WAAY,CAkBxC,GAjBIjM,IAAmBqJ,IACfrK,IAAOH,EAAkB52D,GAAGoW,OAAS2gD,EAAMC,SAE/Ce,IAAmBuJ,IACfvK,IACAH,EACI52D,GACF2/B,wBAA0Bo3B,EAAMC,SAG1CJ,EAAkB52D,GAAGi/B,OAAS3uB,YAC1BsmD,EAAkB52D,GAAGuqC,WACrB/5B,GAEuBy/B,GACvB2mB,EAAkB52D,GAAGi/B,QAEC,CACtB,IAAIigD,EAAmBv2D,GAASjnB,gBAAgB+O,KAC5C,SAAAoU,GAAC,MAAyB,cAArBA,EAAEljB,kBAEPw9E,EAAsBD,EAAiBt9E,SAAS6O,KAChD,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAEPu9E,EAAsBF,EAAiBt9E,SAAS6O,KAChD,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAEX+0D,EAAkB52D,GAAGw+B,YACjBkL,EAAW5nC,cACXq9E,EAAoBr9E,cACxB80D,EAAkB52D,GAAGy+B,YACjBkL,EAAW7nC,cACXs9E,EAAoBt9E,cACxB80D,EAAkB52D,GAAGu+B,gBACjBqL,SAASgtB,EAAkB52D,GAAGw+B,aAC9BoL,SAASgtB,EAAkB52D,GAAGy+B,kBAElCm4B,EAAkB52D,GAAGw+B,YAAckL,EAAW5nC,cAC9C80D,EAAkB52D,GAAGy+B,YAAckL,EAAW7nC,cAC9C80D,EAAkB52D,GAAGu+B,gBACjBqL,SAASgtB,EAAkB52D,GAAGw+B,aAC9BoL,SAASgtB,EAAkB52D,GAAGy+B,mBA/CtCm4B,EAAkB52D,GAAGoW,OAAS,GAC9BwgD,EAAkB52D,GAAG2/B,wBAA0B,GAC/Ci3B,EAAkB52D,GAAGu+B,gBAAkB,KACvCq4B,EAAkB52D,GAAGw+B,YAAc,KACnCo4B,EAAkB52D,GAAGy+B,YAAc,KA+C3C,OAAOm4B,GAvvBQ/zD,EA0vBnBm1D,sBAAwB,SAAA10D,GACpBT,EAAKU,SAAS,CAAEmzD,cAAepzD,EAAE+H,OAAOC,SA3vBzBzI,EA8vBnBo1D,sBAAwB,SAAA30D,GACpBT,EAAKU,SAAS,CAAEozD,cAAerzD,EAAE+H,OAAOC,SA/vBzBzI,EAkwBnBw8E,yBAA2B,SAAApmD,GACvBp2B,EAAKU,SAAS,CACVi6E,kBAAmBjnE,YAAgB0iB,EAAM5tB,OAAOC,UApwBrCzI,EAwwBnBy8E,2BAA6B,SAAArmD,GACzBp2B,EAAKU,SAAS,CACVg6E,oBAAqBhnE,YAAgB0iB,EAAM5tB,OAAOC,UA1wBvCzI,EA8wBnB08E,wBAA0B,SAAAj8E,GACtB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAE+yD,iBAAkB6B,KAhxBnBt1D,EAmxBnB28E,sBAAwB,SAAAl8E,GACpB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEgzD,eAAgB4B,KArxBjBt1D,EAwxBnB48E,wBAA0B,SAAAn8E,GACtB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEizD,iBAAkB2B,KA1xBnBt1D,EA6xBnB68E,sBAAwB,SAAAp8E,GACpB,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAS,CAAEkzD,eAAgB0B,KA/xBjBt1D,EAkyBnB88E,qBAAuB,WACnB98E,EAAKU,SAAS,CAAE41C,mBAAmB,KAjyBnCt2C,EAAKc,MAAQ,CACTiuE,SAAU,EACV7b,WAAY,gBACZtrD,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBk1E,iBAAiB,EACjBC,aAAa,EACbpyD,YAAY,EACZmvD,WAAY/5E,EAAKvE,MAAMs+E,WACvByB,WAAY,GACZ/L,MAAO,GACPwK,UAAW,GACXC,YAAY,EACZrmB,cAAe,GACfC,cAAe,GACf4mB,oBAAqB,GACrBC,kBAAmB,GACnBlnB,iBAAkB,GAClBC,eAAgB,GAChBC,iBAAkB,GAClBC,eAAgB,GAChBumB,mBAAkB,CACd,MACA,aACA,YACA,OAJc5vE,OAKXyiE,GALW,CAMd,mBACA,aACA,YAEJoN,qBAAoB,CAChB,MACA,YACA,WACA,OAJgB7vE,OAKb0iE,GALa,CAMhB,MACA,aACA,WAEJ32B,mBAAmB,EACnBD,mBAAoB,GACpB4N,2BAA4B,GAC5BC,0BAA2B,GAC3BC,oBAAqB,GACrBm2B,2BAA2B,EAC3BE,sBAAsB,GAE1Bx6E,EAAKy2C,eAAiB,KACtBz2C,EAAK67E,iBAAmB,KACxB77E,EAAKokD,gBAAkB1gD,IAAM2gD,YAtDdrkD,kFA4KAitB,EAAWC,GAAW,IAAA+vD,EAGjCzhF,KAAKC,MADLqlE,wBAA2B/6C,EAFMk3D,EAENl3D,WAAY1F,EAFN48D,EAEM58D,MAU3C,GAPI4M,EAAU6zC,wBAAwB/6C,aAAeA,IACjDvqB,KAAKkF,SAAS,CAAEquE,SAAUhpD,EAAW/b,SACrCxO,KAAKkF,SAAS,CACV85E,qBAAsBz0D,EAAWm3D,MAAM,SAAA3jF,GAAC,OAAIA,EAAE4nE,gBAIlDl0C,EAAU6zC,wBAAwBzgD,QAAUA,EAAO,CAC9CA,EAAMG,WAAYH,EAAMK,UACzBllB,KAAKkF,SAAS,CAAEq8E,iBAAiB,IAIrC,IAAMv2E,EAAMzE,OAERyE,EAAIQ,SAASjF,IAAOse,EAAM2D,kBAC1Bxd,EAAImoC,cACA5sC,IAAOse,EAAMO,yBAAyBqL,IAAI,EAAG,UAGjDzwB,KAAKkF,SAAS,CAAEs8E,aAAa,IAG7B38D,EAAMI,YACNjlB,KAAKkF,SAAS,CAAEkqB,YAAY,IAIpC,GACIqC,EAAU6zC,wBAAwB5L,iBAClC15D,KAAKC,MAAMqlE,wBAAwB5L,eACrC,KAEiCA,EAC3B15D,KAAKC,MADLqlE,wBAA2B5L,eAG3BA,IAAmBqJ,IACnBrJ,IAAmBsJ,KAEnBhjE,KAAKkF,SAAS,CACVy5E,mBAAkB,CACd,MACA,aACA,YACA,OAJc5vE,OAKXyiE,GALW,CAMd,mBACA,aACA,cAGRxxE,KAAKkF,SAAS,CACV05E,qBAAoB,CAChB,MACA,YACA,WACA,OAJgB7vE,OAKb0iE,GALa,CAMhB,MACA,aACA,cAKR/X,IAAmBuJ,KACnBjjE,KAAKkF,SAAS,CACVy5E,mBAAkB,CACd,MACA,aACA,YACA,OAJc5vE,OAKXyiE,GALW,CAMd,mBACA,aACA,wBAGRxxE,KAAKkF,SAAS,CACV05E,qBAAoB,CAChB,MACA,YACA,WACA,OAJgB7vE,OAKb0iE,GALa,CAMhB,MACA,aACA,+BAmCZ,IAAMlnD,EAAavqB,KAAKC,MAAMqlE,wBAAwB/6C,WACtDA,EAAWjc,QAAQ,SAAAvQ,GACfA,EAAEuiC,qBAAuB,GACzBviC,EAAEsiC,qBAAuB,GACzBtiC,EAAEwiC,uBAAwB,EAC1BxiC,EAAEolE,gBAAkB,GACpBplE,EAAEga,OAAS,GACXha,EAAEujC,wBAA0B,KAGhCthC,KAAKC,MAAMolE,iCAAiC,CAAE96C,iDAif7C,IAAA7kB,EAAA1F,KAAAD,EAWDC,KAAKC,MATLC,EAFCH,EAEDG,QAFCyhF,EAAA5hF,EAGDulE,wBACIj6C,EAJHs2D,EAIGt2D,+BACAxG,EALH88D,EAKG98D,MACA0F,EANHo3D,EAMGp3D,WACAE,EAPHk3D,EAOGl3D,mBACAk5C,EARHge,EAQGhe,SACAjK,EATHioB,EASGjoB,eATHxqD,EAwBDlP,KAAKsF,MAXLi8E,EAbCryE,EAaDqyE,gBACAnyD,EAdClgB,EAcDkgB,WACAmvD,EAfCrvE,EAeDqvE,WACAG,EAhBCxvE,EAgBDwvE,WACAQ,EAjBChwE,EAiBDgwE,oBACAC,EAlBCjwE,EAkBDiwE,kBACAR,EAnBCzvE,EAmBDyvE,mBACAC,EApBC1vE,EAoBD0vE,qBACA9jC,EArBC5rC,EAqBD4rC,kBACAD,EAtBC3rC,EAsBD2rC,mBACAikC,EAvBC5vE,EAuBD4vE,0BAGJ,IAAKyC,EAAiB,CAClB,IAAIl9E,EAAU,GAUd,OATKwgB,EAAM8P,WACPtwB,EAAO,cAAA0K,OAAiB8V,EAAMqD,MAAvB,2BACPrD,EAAMK,WACN7gB,EAAO,cAAA0K,OACH8V,EAAMqD,MADH,kDAAAnZ,OAGH8V,EAAMkG,kBAIVxK,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,SACXpO,QAAS,UAETkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC6oD,GAAD,CAAmBhlD,QAASA,KAEhCkc,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ0hF,SAC1BrhE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,WACRwG,QAASpH,KAAKqvE,QAHlB,WAapB,OAAIjgD,EAEI7O,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,SACXpO,QAAS,UAETkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC6oD,GAAD,CACIhlD,QAAO,cAAA0K,OACH8V,EAAMqD,MADH,yBAKf3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACnB,UAAWP,EAAQ0hF,SAC1BrhE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,WACRwG,QAASpH,KAAKqvE,QAHlB,WAchB9uD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAAC0oD,GAAD,CACIC,IAAKnpD,KAAK4oD,gBACV9H,eAAgB9gD,KAAKsF,MAAMmjD,2BAC3B1H,cAAe/gD,KAAKsF,MAAMojD,0BAC1BvI,QAASngD,KAAKsF,MAAMqjD,sBAGxBpoC,EAAAhgB,EAAAC,cAACi9C,GAAD,CACI7G,WAAYkE,EACZj6C,MAAOg6C,EACP12C,QAASnE,KAAKshF,qBACdxqC,WAAY,IAJhB,qFAUAv2B,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,gBACPV,UACIkrB,GACArrB,KAAKC,MAAMqlE,wBACNvB,6BAGTxjD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACnCzP,KAAKC,MAAMs+E,YACRh+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAAS,kBACL1B,EAAKk7E,cAAcrC,KAJ3B,iBAYRh+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,uBAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,iBACHrL,QAAQ,WACRoP,WAAS,EACTD,SAAU/P,KAAK4/E,iBACf3yE,MAAOjN,KAAKsF,MAAMi5E,eAK9Bh+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,eAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,YACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT/C,MAAOjN,KAAKsF,MAAMm5E,UAClB1uE,SAAU/P,KAAKmgF,oBAK3B5/D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,QACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT/C,MAAOjN,KAAKsF,MAAM2uE,MAClBlkE,SAAU/P,KAAKigF,gBAK3B1/D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GAAI0S,GAAI,GACnB7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,aACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT/C,MACIjN,KAAKsF,MAAMo5E,WACL1+E,KAAKC,MAAMqlE,wBACNt8C,WAAWO,SAChB,GAEVxJ,UAAU,MAKrB2+D,GACGn+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBACuB+iE,EADvB,UACwC,IACnCp5C,EAAW/b,OACRic,EAAmBjc,UAMtCkwE,GACGn+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,wBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAOysD,EACP3pD,SAAU/P,KAAKw5D,wBAEfj5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIT,UACK++D,EAEL7xE,MAAO81D,GACPnlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,8BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIT,UACK++D,EAEL7xE,MAAO+1D,GACPplB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,6BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIT,UAAU,EACV9S,MAAOi2D,GACPtlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,0BAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIT,UACK++D,EAEL7xE,MAAOg2D,GACPrlB,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,0CAIlB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QACIpH,KAAK6+E,+BAJb,uBAUFnlB,IAAmBqJ,IACjBrJ,IAAmBuJ,KACnB1iD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJyG,WAAY,SACZjH,QAAS,IAETmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,gBAIJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,YACH+D,WAAS,EACTpP,QAAQ,WACRmP,SACI/P,KAAK2/E,kBAET1yE,MACIjN,KAAKsF,MAAMoyD,WAEfmqB,aAAc,UAI1BthE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJyG,WAAY,SACZjH,QAAS,IAETmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oDAKJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,OACNI,WAAS,EACTpP,QAAQ,WACRmP,SACI/P,KACKihF,2BAETh0E,MAAOiyE,EACP2C,aAAc,SAGtBthE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,KACNI,WAAS,EACTpP,QAAQ,WACRmP,SACI/P,KACKghF,yBAET/zE,MAAOkyE,EACP0C,aAAc,SAGtBthE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKg4D,UAHlB,cAcvBh4D,KAAKsF,MAAMo5E,YACRn+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACL,MAAO,CAAEkH,MAAO,SACvB8X,EAAAhgB,EAAAC,cAACshF,GAAD,CACIr0E,KAAM8c,EACN/Z,QAASmuE,EACTrO,SAAUsO,KAIlBr+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRmf,SAAUwK,EAAW/b,OAAS,EAC9BpH,QAASpH,KAAKy/E,WAJlB,YASJl/D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,IACJ5B,KAAKsF,MAAM05E,sBACTz+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKs1E,YAHlB,aAQHt1E,KAAKsF,MAAM05E,sBACRz+D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKu1E,cAHlB,oBAe3Bv1E,KAAKsF,MAAMo5E,YACRn+D,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,uBAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACL,MAAO,CAAEkH,MAAO,SACvB8X,EAAAhgB,EAAAC,cAACshF,GAAD,CACIr0E,KACIzN,KAAKC,MAAMqlE,wBACNj2C,mBAET7e,QAAS4tE,GACT9N,SAAU+N,QAO7Br+E,KAAKsF,MAAMo5E,YACRn+D,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,2BAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACL,MAAO,CAAEkH,MAAO,SACvB8X,EAAAhgB,EAAAC,cAACshF,GAAD,CACIr0E,KACIzN,KAAKC,MAAMqlE,wBACN76C,mBAETja,QAAS0tE,GACT5N,SACI6N,QAQxB59D,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BAlvCNnE,IAAM5D,WAqxCzBgM,eAtBS,SAAAhL,GAGpB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKe,SAAAj1D,GACvB,MAAO,CACHgvE,iBAAkB,SAAA90D,GAAU,OAAIla,ErBr9BR,SAAAka,GAAU,MAAK,CAC3C5a,KAtYsB,oBAuYtB4a,cqBm9B6C80D,CAAiB90D,KAC1D25C,gCAAiC,SAAAlyC,GAAK,OAClC3hB,EAAS6zD,GAAgClyC,KAC7C+vD,gBAAiB,SAAAt0E,GAAI,OAAI4C,ErBz5BF,SAAA5C,GAAI,sBAAA84B,EAAAnkC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAA+R,EAAMnL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cACnCuG,EAASu0D,MAD0BlpD,EAAA5R,KAAA,EAGlBoL,KACZM,KAAKrS,GAAU,yBAA0BsK,EAAM8C,eAC/C6E,MAAM,SAAAnQ,GACH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aAVE,WAG7BqJ,EAH6BgO,EAAA5N,MAuB3BL,KAvB2B,CAAAiO,EAAA5R,KAAA,eAwB/BuG,EAASy0D,MAxBsBppD,EAAAnG,OAAA,SAyBxB,CAAExH,SAAS,EAAO1J,QAAS,wBAzBH,WA2B/BqJ,EAAGD,KAAKM,QA3BuB,CAAA2N,EAAA5R,KAAA,gBA4B/BuG,EAASw0D,GAAwBn3D,IA5BFgO,EAAAnG,OAAA,SA6BxB,CAAExH,SAAS,EAAM1J,QAAS,KA7BF,eA+B/BgM,EAASy0D,MA/BsBppD,EAAAnG,OAAA,SAgCxB,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAhCjB,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAJ,gBAAAoc,GAAA,OAAAmqB,EAAA1wB,MAAA7V,KAAA2S,YAAA,GqBy5BOovE,CAAgBt0E,KAClDo2D,4BAA6B,SAAAp2D,GAAI,OAC7B4C,ErBr1B+B,SAAA5C,GAAI,sBAAAywC,EAAA97C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAqS,EAAMzL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAC/CuG,EAAS40D,MADsCjpD,EAAAlS,KAAA,EAG9BoL,KACZM,KACGrS,GAAU,qCACVsK,EACA8C,eAEH6E,MAAM,SAAAnQ,GACH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aAdc,WAGzCqJ,EAHyCsO,EAAAlO,MA2BvCL,KA3BuC,CAAAuO,EAAAlS,KAAA,eA4B3CuG,EAAS80D,MA5BkCnpD,EAAAzG,OAAA,SA6BpC,CAAExH,SAAS,EAAO1J,QAAS,wBA7BS,WA+B3CqJ,EAAGD,KAAKM,QA/BmC,CAAAiO,EAAAlS,KAAA,gBAgC3CuG,EAAS60D,GAAoCx3D,IAhCFsO,EAAAzG,OAAA,SAiCpC,CAAExH,SAAS,EAAM1J,QAAS,KAjCU,eAmC3CgM,EAAS80D,MAnCkCnpD,EAAAzG,OAAA,SAoCpC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UApCL,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SAAJ,gBAAAm+C,GAAA,OAAAD,EAAAroC,MAAA7V,KAAA2S,YAAA,GqBq1B1BkxD,CAA4Bp2D,KACzC23D,8BAA+B,SAACt4D,EAAG6D,GAAJ,OAC3BN,EAAS+0D,GAA8Bt4D,EAAG6D,KAC9C00D,iCAAkC,SAAArzD,GAAG,OACjC3B,EAASg1D,GAAiCrzD,KAC9CgwE,mBAAoB,SAAAtpB,GAAK,OAAIroD,ErBhhCH,SAAAqoD,GAAK,sBAAA1a,EAAA57C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAAipE,EAAA5rE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACvCuG,EAZO,CAAEV,KAnU2B,oCAiVhC2pE,EAAW,CAAE5gB,MAAOA,GAHeh+C,EAAA5Q,KAAA,EAKtBoL,KACZM,KACGrS,GAAU,6BACVm2E,EACA/oE,eAEH6E,MAAM,SAAAnQ,GAEH,OADAoL,EAfD,CAAEV,KA5UqB,8BA4VjB/P,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aAjBM,cAKjCqJ,EALiCgN,EAAA5M,KA+BvCuC,EAtCO,CAAEV,KAzUwB,iCAgVM+K,EAAAnF,OAAA,SAgChC7H,EAAGD,MAhC6B,wBAAAiN,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAAqb,GAAA,OAAA2iC,EAAAnoC,MAAA7V,KAAA2S,YAAA,GqBghCOqvE,CAAmBtpB,OAIlDpoD,CAGbpO,qBA/Ba,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBiuC,MAAO,CAAE3mC,MAAO,OAAQ23C,UAAW,QACnCwhC,QAAS,CAAEK,UAAW,YA4BxB//E,CAAmBo8E,KCz3Cf4D,eACF,SAAAA,EAAYjiF,GAAO,IAAAuE,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAkiF,IACf19E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA8/E,GAAAt9E,KAAA5E,KAAMC,KAMVqJ,kBAPmBlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAOC,SAAAC,IAAA,IAAAshD,EAAAC,EAAApa,EAAA,OAAA5jB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,2BADgBiG,EAAAE,KAAA,EAGkB3D,aAAaC,QAAQ,eAHvC,UAGZ4kD,EAHYphD,EAAAkE,KAIS,IACrBk9C,EALY,CAAAphD,EAAAE,KAAA,YAMZmhD,EAAqBtkD,KAAKC,MAAMokD,GAC5Bna,EAAQtqC,MAASC,OAAO,eACxBykD,EAAmB94C,YAAc84C,EAAmBE,cAAgBta,EAR5D,CAAAjnC,EAAAE,KAAA,SASRtF,EAAKvE,MAAMuqD,cAAcS,EAAmB94C,YATpCvI,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAWFtF,EAAKvE,MAAMkqD,iBAXT,QAAAvgD,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAeNtF,EAAKvE,MAAMkqD,iBAfL,yBAAAvgD,EAAAc,SAAAhB,EAAA1J,SALhBwE,EAAKc,MAAQ,CACTnF,WAAW,GAHAqE,kFA0BAitB,EAAWC,GAC1B,GAAID,EAAUtf,aAAenS,KAAKC,MAAMkS,YAAuC,MAAzBnS,KAAKC,MAAMkS,YACzDnS,KAAKC,MAAMkS,WAAW3D,OAAS,EAAG,CAClC,IACIy8C,EAAqB,CACrBE,YAFQ5kD,MAASC,OAAO,cAGxB2L,WAAYnS,KAAKC,MAAMkS,YAEvBi5C,EAAyBzkD,KAAKqS,UAAUiyC,GAC5C9kD,aAAa8E,QAAQ,cAAemgD,qCAQ5C,OAD6BxlD,YAAe,CAACzH,OAMzCoiB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAC2hF,GAAD,CAAqBh0E,QAASnO,KAAKC,MAAMkO,UAGxCnO,KAAKsF,MAAMnF,WAAaogB,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,OAdtB/uD,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,gBA7CLI,IAAM5D,WAkFnBgM,eAfS,SAAAhL,GAGpB,MAAO,CAACggE,wBAF0BhgE,EAA3BggE,wBAE0BnzD,WADE7M,EAA5Bo5C,WAAavsC,aAIG,SAAA9B,GACvB,MAAO,CACH6zD,gCAAiC,SAAAtsB,GAAO,OAAIvnC,EAAS6zD,GAAgCtsB,KACrFwqC,sBAAuB,SAAAxqC,GAAO,OAAIvnC,EtB6Be,CACrDV,KA1F6B,2BA2F7B4zD,gBsB/BqE3rB,KACjEuS,eAAgB,kBAAM95C,EAAS85C,OAC/BK,cAAe,SAACa,GAAD,OAAah7C,EAASm6C,GAAca,OAI5C/6C,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,IAiBmCD,CAAmBggF,KCtFzEG,eAEF,SAAAA,EAAYpiF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqiF,IACxB79E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAigF,GAAAz9E,KAAA5E,KAAMC,EAAOiJ,KAQjBI,kBAT4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KASR,SAAAC,IAAA,IAAAshD,EAAAC,EAAApa,EAAAnjC,EAAAw9C,EAAAl5C,EAAA,OAAAib,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,4BAAAoL,OAA2DvK,EAAKvE,MAAMo6B,MAAMhhB,OAAOpN,IADnErC,EAAAE,KAAA,EAGkB3D,aAAaC,QAAQ,eAHvC,UAGZ4kD,EAHYphD,EAAAkE,KAIS,IACrBk9C,EALY,CAAAphD,EAAAE,KAAA,YAMZmhD,EAAqBtkD,KAAKC,MAAMokD,GAC5Bna,EAAQtqC,MAASC,OAAO,eACxBykD,EAAmB94C,YAAc84C,EAAmBE,cAAgBta,EAR5D,CAAAjnC,EAAAE,KAAA,SASRtF,EAAKvE,MAAMuqD,cAAcS,EAAmB94C,YATpCvI,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAWStF,EAAKvE,MAAMkqD,iBAXpB,SAWFz8C,EAXE9D,EAAAkE,MAYAC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAZ1F,QAAAuF,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAeKtF,EAAKvE,MAAMkqD,iBAfhB,SAeNz8C,EAfM9D,EAAAkE,MAgBJC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAhBtF,QAoBV2N,EAAM,CAACkqD,UAAW,CAAC15B,mBAAoB,KAC7Ch+B,EAAKvE,MAAMolE,iCAAiCrzD,GArB5B,yBAAApI,EAAAc,SAAAhB,EAAA1J,SATQwE,EAiC5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAhC7B5H,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WALG7H,kFAqCTitB,EAAWC,GAC1B,GAAID,EAAUtf,aAAenS,KAAKC,MAAMkS,YAAuC,MAAzBnS,KAAKC,MAAMkS,YACzDnS,KAAKC,MAAMkS,WAAW3D,OAAS,EAAG,CAClC,IACIy8C,EAAqB,CACrBE,YAFQ5kD,MAASC,OAAO,cAGxB2L,WAAYnS,KAAKC,MAAMkS,YAEvBi5C,EAAyBzkD,KAAKqS,UAAUiyC,GAC5C9kD,aAAa8E,QAAQ,cAAemgD,qCAKvC,IACE/wB,EAASr6B,KAAKC,MAAdo6B,MACP,OACI9Z,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAC2hF,GAAD,CACI5D,WAAYlkD,EAAMhhB,OAAOpN,GACzBnH,SAAU9E,KAAKC,MAAM6E,SACrBqJ,QAASnO,KAAKC,MAAMkO,UAGxBoS,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BArEzC/H,aA4FrBgM,eAbS,SAAAhL,GAEpB,MAAO,CAAC6M,WADoD7M,EAArDo5C,WAAavsC,WACAmzD,wBADwChgE,EAA3BggE,0BAIV,SAAAj1D,GACvB,MAAO,CACH85C,eAAgB,kBAAM95C,EAAS85C,OAC/BK,cAAe,SAACa,GAAD,OAAah7C,EAASm6C,GAAca,KACnDga,iCAAkC,SAAArzD,GAAG,OAAI3B,EAASg1D,GAAiCrzD,OAI5E1B,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAgBmCe,CAAmBmgF,KC5FzEC,+LAGExzE,SAASjO,MAAT,8EAIA,IAAM0hF,EAAsB38E,YAAe,CAACnH,KAAqCC,KAC7EC,MAAsC,MAEpC6jF,EAAqB58E,YAAe,CAAChH,KAAoCC,KAC3EC,MAAqC,MAEnC2jF,EAAoB78E,YAAe,CAAC7G,KAAiCC,KACvEC,MAAkC,MAEhCyjF,EAAoB98E,YAAe,CAAC1G,KAAmCC,KACzEC,MAAoC,MAExC,OAAOmhB,EAAAhgB,EAAAC,cAAA,WACF+hF,GAAuBhiE,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,qCACpCy6E,GAAuBC,GAAsBjiE,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,wCAC3Dy6E,IAAwBC,GAAsBC,GAChDliE,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,yCACZy6E,IAAwBC,IAAuBC,GAAqBC,GACtEniE,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,mCAzBEI,IAAM5D,WA8BnBg+E,wBC7BTK,eACF,SAAAA,EAAY1iF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA2iF,IACxBn+E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAugF,GAAA/9E,KAAA5E,KAAMC,EAAOiJ,KAwBjB05E,kBAAoB,SAAA1wD,GAAI,OAAI,SAAAjtB,GAAK,IAAA49E,EACvBC,EAAW5wD,EAAO,QACxB1tB,EAAKU,UAAL29E,EAAA,GAAAzgF,OAAA8sB,GAAA,EAAA9sB,CAAAygF,EAAgB3wD,EAAOjtB,EAAE+H,OAAOC,OAAhC7K,OAAA8sB,GAAA,EAAA9sB,CAAAygF,EAAwCC,EAAW,IAAnDD,MA3BwBr+E,EA8B5BmrC,WAAa,SAAA1qC,GACT,GAAc,UAAVA,EAAEpD,IAAiB,CAEnB,IAAIyJ,EAAiB/E,MAASC,SAC9BL,aAAa8E,QAAQM,KAAgCD,GAErD9G,EAAK88D,aApCe98D,EA8C5B88D,SA9C4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8CjB,SAAAC,IAAA,IAAA2D,EAAAiL,EAAAC,EAAA7K,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAEPtF,EAAKU,SAAS,CAACkH,cAAc,IACxB5H,EAAKu+E,WAHH,CAAAn5E,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,oBAMF/Q,EAAKvE,MAAMqc,WANT,CAAA1S,EAAAE,KAAA,gBAAAuD,EAOwC7I,EAAKc,MAAzCgT,EAPJjL,EAOIiL,uBAAwBC,EAP5BlL,EAO4BkL,SAP5B3O,EAAAE,KAAA,EAQctF,EAAKvE,MAAMoY,MAAMC,EAAwBC,GARvD,QAQG7K,EARH9D,EAAAkE,MASIC,QAC4BvJ,EAAKvE,MAA7BwF,qBAEDjB,EAAKvE,MAAMkO,QAAQC,KAAK,oBACxB5J,EAAKvE,MAAMkO,QAAQC,KAAK,cAE9B5J,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAflFuF,EAAAE,KAAA,iBAkBHtF,EAAKvE,MAAMkO,QAAQC,KAAK,cAlBrB,yBAAAxE,EAAAc,SAAAhB,EAAA1J,SA9CiBwE,EAgF5Bw+E,SAhF4B5gF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgFjB,SAAAmB,IAAA,IAAAsE,EAAAoJ,EAAAC,EAAA9K,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAoF,EACoC1K,EAAKc,MAAzCgT,EADApJ,EACAoJ,uBAAwBC,EADxBrJ,EACwBqJ,SACzB9K,EAAO,CAAC6K,yBAAwBC,YAF/B1N,EAAAf,KAAA,EAGUtF,EAAKvE,MAAMsa,YAAY9M,GAHjC,QAGDC,EAHC7C,EAAAiD,MAIJC,QACGvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,aAChF9H,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UANhF,wBAAAwG,EAAAH,SAAAE,EAAA5K,SAhFiBwE,EAyF5B8b,kBAAoB,WAChB9b,EAAKU,SAAS,CAACkH,cAAc,KA1FL5H,EA6F5By+E,YA7F4B,eAAAhpE,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6Fd,SAAAyQ,EAAMjV,GAAN,IAAA4zE,EAAAvgE,EAAAC,EAAA2qE,EAAAvmE,EAAAlP,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,UACN7E,GAAGA,EAAE40B,iBADCg/C,EAGsCr0E,EAAKc,MAA9CgT,EAHGugE,EAGHvgE,uBAAwBC,EAHrBsgE,EAGqBtgE,SAEnB,MAF6B2qE,EAH/BrK,EAG+BqK,KAH/B,CAAA/oE,EAAArQ,KAAA,eAMNtF,EAAKU,SAAS,CAACi+E,SAAU,2BANnBhpE,EAAA5E,OAAA,iBASN/Q,EAAKU,SAAS,CAACi+E,SAAU,KATnB,cAYHxmE,EAAOnY,EAAKvE,MAAZ0c,IACDlP,EAAO,CAAC6K,yBAAwBC,WAAU2qE,MAAKvmE,OAb3CxC,EAAArQ,KAAA,GAcOtF,EAAKvE,MAAM2b,wBAAwBnO,GAd1C,SAcJC,EAdIyM,EAAArM,MAeHC,QACHvJ,EAAKvE,MAAMkO,QAAQC,KAAK,cAExB5J,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAlB3E,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SA7Fc,gBAAAyV,GAAA,OAAAwE,EAAApE,MAAA7V,KAAA2S,YAAA,GAExBnO,EAAKc,MAAQ,CACTgT,uBAAwB,GACxB8qE,4BAA6B,GAC7B7qE,SAAU,GACV8qE,cAAe,GACfC,iBAAiB,EACjBJ,IAAK,GACLC,SAAU,GACV/2E,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,IAZG7H,mFAiBxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,UAEoBwC,aAAaC,QAAQ,gBAErCpG,KAAKC,MAAMkO,QAAQC,KAAK,iDAsB5B,MAF0C,KAAtCpO,KAAKsF,MAAMgT,wBAA+BtY,KAAKkF,SAAS,CAACk+E,4BAA6B,2BAC9D,KAAxBpjF,KAAKsF,MAAMiT,UAAiBvY,KAAKkF,SAAS,CAACm+E,cAAe,6BACf,KAAtCrjF,KAAKsF,MAAMgT,wBAAyD,KAAxBtY,KAAKsF,MAAMiT,2CAwE3D,IAAAxY,EAC6FC,KAAKC,MAAhGC,EADFH,EACEG,QAASqc,EADXxc,EACWwc,YAAaG,EADxB3c,EACwB2c,qBAAsBE,EAD9C7c,EAC8C6c,iCAAkCtI,EADhFvU,EACgFuU,UADhFivE,EAEsEvjF,KAAKsF,MAAzEg+E,EAFFC,EAEED,gBAAiBJ,EAFnBK,EAEmBL,IAAK72E,EAFxBk3E,EAEwBl3E,gBAAiBC,EAFzCi3E,EAEyCj3E,gBAAiB62E,EAF1DI,EAE0DJ,SACzDhjF,EAAYoc,GAAeG,GAAwBE,EAEzD,OACI2D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIX,UAAWP,EAAQsjF,gBAC5CjjE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQujF,cACpBljE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQwjF,UACpBnjE,EAAAhgB,EAAAC,cAACmjF,GAAA,EAAD,CAAMl7E,MAAO,WAGjB8X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQa,QACpBuiF,GAAmB/iE,EAAAhgB,EAAAC,cAAA,QAAMojF,YAAU,EAAC/B,aAAa,MAAMvgB,SAAUthE,KAAKshE,UACpE/gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgvB,WAAS,EACT3/B,MAAkD,KAA3C7P,KAAKsF,MAAM89E,4BAClBtzE,WAAY9P,KAAKsF,MAAM89E,4BACvBn3E,GAAG,WACHrL,QAAQ,WACRgP,MAAM,QACN7G,OAAO,SACPiH,WAAW,EACX/C,MAAOjN,KAAKsF,MAAMgT,uBAClBq3B,WAAY3vC,KAAK2vC,WACjB5/B,SAAU/P,KAAK4iF,kBAAkB,6BAIzCriE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3Q,MAAoC,KAA7B7P,KAAKsF,MAAM+9E,cAClBvzE,WAAY9P,KAAKsF,MAAM+9E,cACvBp3E,GAAG,WACHrL,QAAQ,WACRgP,MAAM,WACND,KAAK,WACL5G,OAAO,SACPiH,WAAW,EACX/C,MAAOjN,KAAKsF,MAAMiT,SAClBo3B,WAAY3vC,KAAK2vC,WACjB5/B,SAAU/P,KAAK4iF,kBAAkB,eAIxC5iF,KAAKsF,MAAM8G,cACZmU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CAAmBjjF,QAASyL,EAAiBhI,QAASiI,EAClDnI,QAASnE,KAAKsgB,qBAGtBC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CAAM7a,GAAI,mBACNyY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYw4D,WAAW,GAAvB,qBAIRz4D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAM,UAAU4Z,KAAK,QAAQngB,QAAQ,YACzCwG,QAASpH,KAAKshE,UAAU/gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,MAD5B,aAMX4iE,GAAmB/iE,EAAAhgB,EAAAC,cAAA,QAAMojF,YAAU,EAAC/B,aAAa,MAAMvgB,SAAUthE,KAAKijF,aACnE1iE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qCACQyT,YAAcC,KAE1BiM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW7Q,KAAK,WAAW1D,GAAG,MAAM2D,MAAM,MAAM7G,OAAO,SAASnI,QAAQ,WACpEqM,MAAOi2E,EACPnzE,SAAU/P,KAAK4iF,kBAAkB,OACjC/yE,QAASszE,EACTrzE,WAAYqzE,EACZ3zC,WAAS,KAGhBxvC,KAAKsF,MAAM8G,cACZmU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CAAmBjjF,QAASyL,EAAiBhI,QAASiI,EAClDnI,QAASnE,KAAKsgB,qBAEtBC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIC,QAAS,UACvCkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,WAAWwG,QAASpH,KAAKgjF,UAA3D,eAGJziE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKijF,aADlB,cAOf9iF,GAAaogB,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,MAAM,cAvNpCsC,aA4PXgM,eA7BS,SAAAhL,GAAS,IAAAw+E,EAMzBx+E,EAJA0J,SAMJ,MAAO,CACHsN,WATyBwnE,EAGrBxnE,WAMQE,kBATasnE,EAGTtnE,kBAMeD,YATNunE,EAGUvnE,YAMSI,IATnBmnE,EAGuBnnE,IAMCD,qBATxBonE,EAG4BpnE,qBAOrDE,iCAVyBknE,EAIrBlnE,iCAM8BtI,UAVTwvE,EAIaxvE,UAMO7O,qBAVpBq+E,EAIwBr+E,uBAU9B,SAAA4K,GACvB,MAAO,CACHgI,MAAO,SAAC/P,EAAUiQ,GAAX,OAAwBlI,EAASgI,aAAM/P,EAAUiQ,KACxDgC,YAAa,SAACjS,EAAUiQ,GAAX,OAAwBlI,EAASkK,aAAYjS,EAAUiQ,KACpEqD,wBAAyB,SAACtT,EAAUiQ,EAAU2qE,EAAKvmE,GAA1B,OAAkCtM,EAASuL,aAAwBtT,EAAUiQ,EAAU2qE,EAAKvmE,OAW9GrM,CAA6CpO,qBAP7C,CACXshF,eAAgB,CAAC/6E,MAAO,OAAQoyB,OAAQ,SACxC4oD,aAAc,CAACh7E,MAAO,QAASoyB,OAAQ,QAAS3E,UAAW,SAAUntB,OAAQ,QAC7E26E,SAAU,CAACnhF,QAAS,QACpBxB,MAAO,CAACwB,QAAS,OAAQC,SAAU,aAGqBN,CAAmBygF,KCvQzEoB,oLAEE,OACIxjE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACrBmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,IAAE,GAAb,qBAJazN,iBAYd8hF,MCTTC,eACF,SAAAA,EAAY/jF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAgkF,IACxBx/E,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA4hF,GAAAp/E,KAAA5E,KAAMC,EAAOiJ,KAgBjB+6E,kBAAoB,SAAAh/E,GAChB,GAAoB,WAAhBA,EAAE+H,OAAOf,GAAiB,CAC1B,IAAI+lB,EAAQ/sB,EAAE+H,OAAOC,MACrBwsC,aAAaj1C,EAAK0/E,eAClB1/E,EAAK0/E,cAAgBh2E,WAAW,WACxB1J,EAAK2/E,WAAWnyD,GAChBxtB,EAAK4/E,YAAYC,QAAQ1oC,SAC1B,KAIX,GAAoB,aAAhB12C,EAAE+H,OAAOf,GAAmB,CAC5B,IAAI+lB,EAAQ/sB,EAAE+H,OAAOC,MACrBwsC,aAAaj1C,EAAK8/E,iBAClB9/E,EAAK8/E,gBAAkBp2E,WAAW,WAC1B1J,EAAK+/E,aAAavyD,GAClBxtB,EAAKvE,MAAMukF,yBAAyBhgF,EAAKc,OACzCd,EAAKvE,MAAMwkF,cACZ,OAnCajgF,EAyC5B2/E,WAAa,SAAAnyD,GAOTxtB,EAAKU,SAAS,CAAC2jC,OAAQ7W,KAhDCxtB,EAmD5B+/E,aAAe,SAAAvyD,GACXxtB,EAAKU,SAAS,CAAC6jC,SAAU/W,KApDDxtB,EAuD5BkgF,WAAa,SAAA1yD,GACT,IACIqI,EAAQrI,EAAMqI,MADT,eAET,GAAKA,EACL,OAAOA,EAAM,IAzDb71B,EAAKc,MAAQ,CACTujC,OAAQ,GACRE,SAAU,IAEdvkC,EAAKmgF,UAAYz8E,IAAM2gD,YACvBrkD,EAAK4/E,YAAcl8E,IAAM2gD,YACzBrkD,EAAK0/E,cAAgB,KACrB1/E,EAAK8/E,gBAAkB,KATC9/E,sFAaxBi1C,aAAaz5C,KAAKkkF,eAClBzqC,aAAaz5C,KAAKskF,kDAgDb,IACEpkF,EAAWF,KAAKC,MAAhBC,QACP,OACIqgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACE,QAAS,UACrBkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,EAAGjP,UAAWP,EAAQiB,WACjCof,EAAAhgB,EAAAC,cAAA,QAAMqhF,aAAc,OAChBthE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW5Q,MAAM,SAASiyE,aAAc,QAAS51E,GAAG,SAASrL,QAAS,WAClEoP,WAAW,EACXD,SAAU/P,KAAKikF,kBAAmBz0C,WAAW,EAAM0d,SAAUltD,KAAK2kF,aAG1EpkE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW5Q,MAAM,WAAWiyE,aAAc,QAAS51E,GAAG,WAClDrL,QAAS,WACToP,WAAW,EACXD,SAAU/P,KAAKikF,kBAAmB/2B,SAAUltD,KAAKokF,0BAhF5D9/E,aAuGVgM,eAAQ,KAPI,SAAUD,GACjC,MAAO,CACHm0E,yBAA0B,SAAAlwB,GAAS,OAAIjkD,E9E0IO,CACrDV,KAlOoC,+BAmOpCi5B,Q8E5IgF0rB,KACzEswB,gBAAiB,SAAAC,GAAG,OAAIx0E,E/GtGY,CACxCV,KAJgB,cAKhBtL,Q+GoGqDwgF,OAI1Cv0E,CAAkCpO,qBAblC,CACXf,UAAW,CACPq3B,UAAW,SAW8Bt2B,CAAmB8hF,KCnG9Dc,eACF,SAAAA,EAAY7kF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA8kF,IACxBtgF,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA0iF,GAAAlgF,KAAA5E,KAAMC,EAAOiJ,KAajBgE,UAd4B9K,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAchB,SAAAC,IAAA,IAAA+D,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WACJtF,EAAKu+E,WADD,CAAAn5E,EAAAE,KAAA,eAEE2D,EAAO,CAACsL,OAAQvU,EAAKc,MAAMyT,QAF7BnP,EAAAE,KAAA,EAGatF,EAAKvE,MAAM2Z,eAAenM,GAHvC,OAAA7D,EAAAkE,KAIJtJ,EAAKU,SAAS,CACV6/E,eAAe,EACfC,cAAe,mEANf,wBAAAp7E,EAAAc,SAAAhB,EAAA1J,SAdgBwE,EA4C5BqI,cAAgB,SAAA5H,GACZT,EAAKU,SAAS,CAAC6T,OAAQ9T,EAAE+H,OAAOC,SA7CRzI,EAgD5B8b,kBAAoB,WAChB9b,EAAKU,SAAS,CAAC8/E,cAAe,MA/C9BxgF,EAAKc,MAAQ,CACTyT,OAAQ,GACRksE,YAAa,GACbF,eAAe,EACfC,cAAe,IANKxgF,mFAWxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,uDAuBA,IAAI+J,GAAK,EAOT,MAN0B,KAAtB1N,KAAKsF,MAAMyT,QACX/Y,KAAKkF,SAAS,CAAC+/E,YAAa3wC,KAC5B5mC,GAAK,GAEL1N,KAAKkF,SAAS,CAAC+/E,YAAa,KAEzBv3E,mCAWF,IAAA3N,EACsCC,KAAKC,MAAzCC,EADFH,EACEG,QAASuc,EADX1c,EACW0c,wBADXpP,EAEuDrN,KAAKsF,MAA1Dy/E,EAFF13E,EAEE03E,cAAeC,EAFjB33E,EAEiB23E,cAAejsE,EAFhC1L,EAEgC0L,OAAQksE,EAFxC53E,EAEwC43E,YAE7C,OACI1kE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACV,UAAWP,EAAQiB,WAE/Bof,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQs/C,OACpBj/B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,oBAGJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQa,OACtBwf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,YACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACrBmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,IACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAI,SAAUrL,QAAS,WAC9BqM,MAAO8L,EACPnJ,MAAO,mBACP+qB,YAAa,8BAA+B3qB,WAAW,EACvDD,SAAU/P,KAAK6M,cACfgD,QAASo1E,EAAan1E,WAAYm1E,EAClCpD,aAAa,UAInBkD,GAAiBxkE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,IAC9B6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ5f,QAAS,YAAauG,MAAO,UACjCC,QAASpH,KAAKkN,WADlB,cAOf63E,GAAmC,KAAlBC,GAClBzkE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CAAmBjjF,QAAS,UAAWyD,QAAS2gF,EAC5C7gF,QAASnE,KAAKsgB,sBAGpBykE,GAAmC,KAAlBC,GACnBzkE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CAAmBjjF,QAAS,QAASyD,QAAS2gF,EAC1C7gF,QAASnE,KAAKsgB,qBAGH,KAAlB0kE,GAAwBzkE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC/B2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ7Y,UAAWgb,IAAM7a,GAAI,IAAKX,MAAO,UAAWvG,QAAS,aAA7D,mBAIR2f,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,KAAMya,eA3GjBnY,aAwIpBgM,eAZS,SAAAhL,GAGpB,MAAO,CAACmX,wBAFsCnX,EAAvC0J,SAAWyN,0BAKK,SAAApM,GACvB,MAAO,CACHuJ,eAAgB,SAAAnM,GAAI,OAAI4C,EAASuJ,aAAenM,OAIzC6C,CAA6CpO,qBAnB7C,CACXf,UAAW,CAACsH,MAAO,OAAQoyB,OAAQ,SACnC2kB,MAAO,CAAC/2C,MAAO,OAAQoyB,OAAQ,OAAQ3E,UAAW,SAAUxX,SAAU,OAAQ3V,OAAQ,QACtFm8E,OAAQ,CAAChvD,UAAW,UACpBn1B,MAAO,CAACwB,QAAS,OAAQC,SAAU,aAeqBN,CAAmB4iF,KC3IzEK,eACF,SAAAA,EAAYllF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAmlF,IACxB3gF,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+iF,GAAAvgF,KAAA5E,KAAMC,EAAOiJ,KAejBo4D,SAAW,WACH98D,EAAKmJ,aAjBenJ,EA0B5BqI,cAAgB,SAACC,EAAG7H,KAxBhBT,EAAKc,MAAQ,CACTgI,gBAAiB,GACjBuB,qBAAsB,GACtBtB,YAAa,GACbkB,iBAAkB,GAClB22E,gBAAiB,GACjBC,qBAAsB,IARF7gF,mFAaxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,yFAiBK,IAAA+B,EAAA1F,KACEE,EAAWF,KAAKC,MAAhBC,QADFmN,EAEiHrN,KAAKsF,MAApHgI,EAFFD,EAEEC,gBAAiBuB,EAFnBxB,EAEmBwB,qBAAsBtB,EAFzCF,EAEyCE,YAAakB,EAFtDpB,EAEsDoB,iBAAkB22E,EAFxE/3E,EAEwE+3E,gBAAiBC,EAFzFh4E,EAEyFg4E,qBAE9F,OACI9kE,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,kBAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,kBAAkB2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAC7DqM,MAAOK,EACPuC,QAAShB,EACTiB,WAAYjB,EACZkB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,kBAAmB5H,QAIjEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,cAAc2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WACzDqM,MAAOM,EACPsC,QAASpB,EACTqB,WAAYrB,EACZsB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,cAAe5H,QAI7Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,yBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,kBAAkB2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAC7DqM,MAAOm4E,EACPv1E,QAASw1E,EACTv1E,WAAYu1E,EACZt1E,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,kBAAmB5H,QAIjEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,sBApFEh9D,aAmGnBpC,wBAJA,SAAA66E,GAAM,MAAK,CACtB57E,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAK26E,EAAO57E,aAGXe,CAAmBijF,uBCvF9B76D,GAAWznB,eACXM,GAAUmnB,GAASnnB,QA4BjBmiF,GAAuB,iBAAO,CAChC31E,KAzC2B,2BA4CzB41E,GAAqB,iBAAO,CAC9B51E,KA5CwB,wBA+CtB61E,GAAkB,iBAAO,CAC3B71E,KA/CqB,qBA0EnB81E,GAAuB,iBAAO,CAChC91E,KA1E2B,2BA6EzB+1E,GAAqB,SAAAh4E,GAAE,MAAK,CAC9BiC,KA7EwB,sBA8ExBjC,OAGEi4E,GAAkB,iBAAO,CAC3Bh2E,KAjFqB,qBAiHnBi2E,GAAuB,iBAAO,CAChCj2E,KAjH2B,2BAoHzBk2E,GAAqB,SAAAn4E,GAAE,MAAK,CAC9BiC,KApHwB,sBAqHxBjC,OAGEo4E,GAAkB,iBAAO,CAC3Bn2E,KAxHqB,qBA6HnB0M,GAAY,CACd0pE,cAAe,GACfhzE,YAAa,GACbizE,qBAAqB,EACrBC,qBAAqB,EACrBC,qBAAqB,GA6CVC,GA1Ce,WAA+B,IACrDC,EADuB9gF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAGzD,OAAQsH,EAAO+G,MAEX,IApJgC,kCAqJ5B,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAXlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAmBwG,EAAOkE,EAAIlE,EAAO+H,IAEzC,IAtJsC,wCAwJlC,OADAy1E,EAAchkF,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMyN,YAAb3Q,OAAA8sB,GAAA,EAAA9sB,CAAA,GAA2BwG,EAAOkE,EAAIlE,EAAO+H,IACpDvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByN,YAAaqzE,IAEnC,IAxJoB,sBA0JhB,IAAK,IAAIt5E,KADTs5E,EAAchkF,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMyN,aAEvBqzE,EAAet5E,IAAK,EAExB,OAAO1K,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByN,YAAaqzE,EAAgBL,cAAe,KAElE,IA7JuB,yBAgKvB,IA/JoB,sBAkKpB,IAjKiB,mBAoKjB,IAnKuB,yBAsKvB,IArKoB,sBAwKpB,IAvKiB,mBAwKb,OAAO3jF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,GAEf,QACI,OAAOA,ICtLfglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAqCjBkjF,GAAmC,iBAAO,CAC5C12E,KAnCyC,yCAsCvC22E,GAAiC,iBAAO,CAC1C32E,KAtCsC,sCAyCpC42E,GAA8B,iBAAO,CACvC52E,KAzCmC,mCA4CjC0M,GAAY,CACd6V,KAAM,GACN3Y,aAAc,GACdjF,UAAW,GACX2E,IAAK,GACLutE,UAAW,GACXC,iCAAiC,EACjCC,gBAAiB,GACjBC,cAAe,IAsBJC,GAnBc,WAA+B,IAA9BthF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACxD,OAAQsH,EAAO+G,MACX,IA5D+B,kCA6D3B,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAXlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAmBwG,EAAOkE,EAAIlE,EAAO+H,IAEzC,IA9DqC,uCA+DjC,OAAOvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmhF,iCAAiC,IAEvD,IAhEkC,oCAiE9B,OAAOrkF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAU+W,IAEzB,IAlE+B,iCAmE3B,OAAOja,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmhF,iCAAiC,IAEvD,QACI,OAAOnhF,ICtDfglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAqBjB0jF,GAAwB,iBAAO,CACjCl3E,KA3B6B,6BA8B3Bm3E,GAAsB,SAAAp5E,GAAE,MAAK,CAC/BiC,KA9B0B,wBA+B1BjC,OAGEq5E,GAAmB,iBAAO,CAC5Bp3E,KAlCuB,uBAwDrBq3E,GAAqB,iBAAO,CAC9Br3E,KA7EyB,yBAgFvBs3E,GAAmB,SAAAv5E,GAAE,MAAK,CAC5BiC,KAhFsB,oBAiFtBjC,OAGEw5E,GAAgB,SAAA38B,GAAY,MAAK,CACnC56C,KApFmB,iBAqFnB46C,iBAsBE48B,GAA2B,iBAAO,CACpCx3E,KA3G+B,+BA8G7By3E,GAAyB,SAAA15E,GAAE,MAAK,CAClCiC,KA9G4B,0BA+G5BjC,OAGE25E,GAAsB,iBAAO,CAC/B13E,KAlHyB,yBAwIvB23E,GAAqB,iBAAO,CAC9B33E,KAxIyB,yBA2IvB43E,GAAmB,SAAA75E,GAAE,MAAK,CAC5BiC,KA3IsB,oBA4ItBjC,OAGE85E,GAAgB,iBAAO,CACzB73E,KA/ImB,mBAqKjB83E,GAAuB,iBAAO,CAChC93E,KArK2B,2BAwKzB+3E,GAAqB,SAAAh6E,GAAE,MAAK,CAC9BiC,KAxKwB,sBAyKxBjC,OAGEi6E,GAAkB,iBAAO,CAC3Bh4E,KA5KqB,qBAqMnBi4E,GAAuB,iBAAO,CAChCj4E,KArM2B,2BAwMzBk4E,GAAqB,SAAAn6E,GAAE,MAAK,CAC9BiC,KAxMwB,sBAyMxBjC,OAGEo6E,GAAkB,iBAAO,CAC3Bn4E,KA5MqB,qBAkOnBo4E,GAAuB,iBAAO,CAChCp4E,KAlO2B,2BAqOzBq4E,GAAqB,SAAAt6E,GAAE,MAAK,CAC9BiC,KArOwB,sBAsOxBjC,OAGEu6E,GAAkB,iBAAO,CAC3Bt4E,KAzOqB,qBAqQnBu4E,GAA4B,iBAAO,CACrCv4E,KAJkC,kCAMhCw4E,GAA0B,SAAAz6E,GAAE,MAAK,CACnCiC,KAN+B,6BAO/BjC,OAEE06E,GAAuB,iBAAO,CAChCz4E,KAT4B,4BAqC1B04E,GAA+B,iBAAO,CACxC14E,KAJmC,qCAMjC24E,GAA6B,SAAA56E,GAAE,MAAK,CACtCiC,KANgC,gCAOhCjC,OAEE66E,GAA0B,iBAAO,CACnC54E,KAT6B,+BAY3B0M,GAAY,CACdmsE,mBAAmB,EACnBvvD,MAAO,GACPwvD,yBAAyB,EACzB11E,YAAa,GACb21E,mBAAmB,EACnBC,MAAO,GACPC,qBAAqB,EACrBC,0BAA0B,EAC1BC,cAAc,EACdC,6BAA6B,GAwFlBjrC,GArFQ,WAA+B,IAC9CsoC,EADgB9gF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAGlD,OAAQsH,EAAO+G,MACX,IAtVqB,uBAuVjB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBkjF,mBAAmB,IAEzC,IAxVkB,oBAyVd,OAAOpmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBkjF,mBAAmB,EAAOvvD,MAAOrwB,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAE7E,IA1Ve,iBA2VX,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBkjF,mBAAmB,IAEzC,IA5V2B,6BA6VvB,OAAOpmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmjF,yBAAyB,IAE/C,IA9VwB,0BAmWpB,OAJArC,EAAchkF,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMyN,aAC3BnK,EAAO8E,GAAGD,KAAKoL,OAAO2V,MAAMlgB,QAAQ,SAAA3M,GAChCykF,EAAezkF,EAAEuwB,OAAQ,IAEtB9vB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmjF,yBAAyB,EAAO11E,YAAaqzE,IAEnE,IApWqB,uBAqWjB,OAAOhkF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBmjF,yBAAyB,IAE/C,IAtWqB,uBAuWjB,OAAOrmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBojF,mBAAmB,IAEzC,IAxWkB,oBAyWd,OAAOtmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBojF,mBAAmB,EAAOC,MAAO//E,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAE7E,IA1We,iBA2WX,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBojF,mBAAmB,IAEzC,IA5WuB,yBA6WnB,OAAOtmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsjF,qBAAqB,IAE3C,IA9WoB,sBAiXpB,IAhXiB,mBAiXb,OAAOxmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsjF,qBAAqB,IAE3C,IAlXuB,yBAmXnB,OAAOxmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0jF,qBAAqB,IAE3C,IApXoB,sBAuXpB,IAtXiB,mBAuXb,OAAO5mF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0jF,qBAAqB,IAE3C,IArXyB,2BAsXrB,OAAO5mF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2jF,sBAAsB,IAE5C,IAvXsB,wBAwXlB,OAAO7mF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2jF,sBAAsB,EAAOhwD,MAAOrwB,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAEhF,IAzXmB,qBA0Xf,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2jF,sBAAsB,IAE5C,IA7H8B,gCA8H1B,OAAO7mF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBujF,0BAA0B,IAEhD,IA/H2B,6BAgIvB,OAAOzmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBujF,0BAA0B,EAAOC,aAAclgF,EAAO8E,GAAGD,KAAKoL,SAEpF,IAjIwB,0BAkIpB,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBujF,0BAA0B,IAEhD,IAlG+B,mCAmG3B,OAAOzmF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByjF,6BAA6B,IAEnD,IApG4B,gCAuG5B,IAtGyB,6BAuGrB,OAAO3mF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkByjF,6BAA6B,IAEnD,QACI,OAAOzjF,ICnafglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QA6BjB+lF,GAA6B,iBAAO,CACtCv5E,KALiC,iCAQ/Bw5E,GAA2B,SAAAz7E,GAAE,MAAK,CACpCiC,KAR8B,4BAS9BjC,OAGE07E,GAAwB,iBAAO,CACjCz5E,KAZ2B,2BA0CzB05E,GAAiC,iBAAO,CAC1C15E,KALuC,uCAQrC25E,GAA+B,SAAA57E,GAAE,MAAK,CACxCiC,KARoC,kCASpCjC,OAGE67E,GAA4B,iBAAO,CACrC55E,KAZiC,iCA0C/B65E,GAAqC,iBAAO,CAC9C75E,KAL4C,4CAQ1C85E,GAAmC,SAAA/7E,GAAE,MAAK,CAC5CiC,KARyC,uCASzCjC,OAGEg8E,GAAgC,iBAAO,CACzC/5E,KAZsC,sCA0CpCg6E,GAAsC,iBAAO,CAC/Ch6E,KAL6C,6CAQ3Ci6E,GAAoC,SAAAl8E,GAAE,MAAK,CAC7CiC,KAR0C,wCAS1CjC,OAGEm8E,GAAiC,iBAAO,CAC1Cl6E,KAZuC,uCAerC0M,GAAY,CACdytE,2BAA2B,EAC3Bv/D,WAAY,GACZw/D,+BAA+B,EAC/Bz+D,OAAQ,GACR0+D,mCAAmC,EACnCC,oCAAoC,EACpCC,8BAA+B,IA+CpBC,GA5CI,WAA+B,IAA9B7kF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAC9C,OAAQsH,EAAO+G,MAEX,IAtJ6B,+BAuJzB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwkF,2BAA2B,IAEjD,IAxJ0B,4BAyJtB,OAAO1nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwkF,2BAA2B,EAAOv/D,WAAY3hB,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAE1F,IA1JuB,yBA2JnB,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwkF,2BAA2B,IAEjD,IAvHmC,qCAwH/B,OAAO1nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBykF,+BAA+B,IAErD,IAzHgC,kCA0H5B,OAAO3nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBykF,+BAA+B,EAAOz+D,OAAQ1iB,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAE1F,IA3H6B,+BA4HzB,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBykF,+BAA+B,IAErD,IAxFwC,0CAyFpC,OAAO3nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0kF,mCAAmC,IAEzD,IA1FqC,uCA2FjC,OAAO5nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0kF,mCAAmC,EAAOE,8BAA+BthF,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAErH,IA5FkC,oCA6F9B,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0kF,mCAAmC,IAEzD,IAzDyC,2CA0DrC,OAAO5nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2kF,oCAAoC,IAE1D,IA3DsC,wCA4DlC,OAAO7nF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2kF,oCAAoC,EAAOC,8BAA+BthF,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAEtH,IA7DmC,qCA8D/B,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB2kF,oCAAoC,IAE1D,QACI,OAAO3kF,ICrNfglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QA0CjBinF,GAAqC,iBAAO,CACjDz6E,KAL6C,0CAQxC06E,GAAmC,SAAA38E,GAAE,MAAK,CAC/CiC,KAR0C,qCAS1CjC,OAGK48E,GAAgC,iBAAO,CAC5C36E,KAZuC,oCAgDlC46E,GAAmC,iBAAO,CAC/C56E,KAL8C,2CAQzC66E,GAAgC,SAAA/8E,GAAI,MAAK,CAC9CkC,KAR0C,qCAS1ClC,SAGKg9E,GAA6B,iBAAO,CACzC96E,KAZuC,oCAelC0M,GAAY,CACjBquE,mCAAmC,EACnCC,iCAAiC,GA4BnBC,GAzBO,WAA+B,IAA9BtlF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EACpD,OAAQsH,EAAO+G,MACd,IAtE4C,wCAuE3C,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBolF,mCAAmC,IAEvD,IAxEyC,qCAyExC,OAAOtoF,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBolF,mCAAmC,EAAOG,wBAAyBjiF,EAAO8E,KAE9F,IA1EsC,kCA2ErC,OAAOtL,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBolF,mCAAmC,IAEvD,IAjC6C,yCAkC5C,OAAOtoF,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBqlF,iCAAiC,IAErD,IAnCyC,qCAoCxC,OAAOvoF,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBqlF,iCAAiC,EAAOG,gBAAiBliF,EAAO6E,OAEpF,IArCsC,kCAsCrC,OAAOrL,OAAA+d,EAAA,EAAA/d,CAAA,GAAKkD,EAAZ,CAAmBqlF,iCAAiC,EAAOG,gBAAiB,KAE7E,QACC,OAAOxlF,IC1HNglB,GAAWznB,eACXM,GAAUmnB,GAASnnB,QAIV4nF,GAAwC,SAAAt9E,GAAI,sBAAAoH,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACzDuG,EAAS26E,MADgDphF,EAAAE,KAAA,EAGxCoL,KAAMC,IAAIhS,GAAU,+DAAgEsK,GAAM2H,MAAM,SAAAnQ,GAC7G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALgB,WAGnDqJ,EAHmD9D,EAAAkE,MAUjDL,KAViD,CAAA7D,EAAAE,KAAA,eAWrDuG,EAAS46E,MAX4CrhF,EAAA2L,OAAA,SAY9C,CAACxH,SAAS,EAAO1J,QAAS,wBAZoB,WAcrDqJ,EAAGD,KAAKM,QAd6C,CAAAnE,EAAAE,KAAA,gBAerDuG,EAAS66E,GAA8Cx9E,IAfF9D,EAAA2L,OAAA,SAgB9C,CAACxH,SAAS,EAAM1J,QAAS,KAhBqB,eAkBrDgM,EAAS46E,MAlB4CrhF,EAAA2L,OAAA,SAmB9C,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBM,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAuBnDq4E,GAAkD,iBAAO,CAC3Dr7E,KAjCyD,yDAoCvDu7E,GAAgD,SAAAx9E,GAAE,MAAK,CACzDiC,KApCsD,oDAqCtDjC,OAGEu9E,GAA6C,iBAAO,CACtDt7E,KAxCmD,mDA+CjDw7E,GAAoD,oDAOpDC,GAAyC,yCA6BzCC,GAAqD,iBAAO,CAC9D17E,KAL4D,4DAQ1D27E,GAAmD,SAAA59E,GAAE,MAAK,CAC5DiC,KARyD,uDASzDjC,OAGE69E,GAAgD,iBAAO,CACzD57E,KAZsD,sDA0CpD67E,GAA4B,iBAAO,CACrC77E,KALgC,gCAQ9B87E,GAA0B,SAAA/9E,GAAE,MAAK,CACnCiC,KAR6B,2BAS7BjC,OAGEg+E,GAAuB,iBAAO,CAChC/7E,KAZ0B,0BA0CxBg8E,GAAuD,iBAAO,CAChEh8E,KAL8D,8DAQ5Di8E,GAAqD,SAAAl+E,GAAE,MAAK,CAC9DiC,KAR2D,yDAS3DjC,OAGEm+E,GAAkD,iBAAO,CAC3Dl8E,KAZwD,wDAoBtDm8E,GAAgD,gDAIhDC,GAAc,CAChBl7D,UAAa,GACbtH,SAAY,GACZtd,GAAM,GACNowD,WAAc,GACd2vB,OAAU,CACN,CACIzvB,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,GACjBo9B,YAAe,GACf9xC,cAAiB,GACjB+xC,QAAW,GACX7xC,QAAW,GACXkhB,cAAiB,IAErB,CACIywB,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,GACjBo9B,YAAe,GACf9xC,cAAiB,GACjB+xC,QAAW,GACX7xC,QAAW,GACXkhB,cAAiB,IAErB,CACIywB,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,GACjBo9B,YAAe,GACf9xC,cAAiB,GACjB+xC,QAAW,GACX7xC,QAAW,GACXkhB,cAAiB,IAErB,CACIywB,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,GACjBo9B,YAAe,GACf9xC,cAAiB,GACjB+xC,QAAW,GACX7xC,QAAW,GACXkhB,cAAiB,MAKvBzvB,GAAY,CACd6O,sBAAuB,CACnBjf,GAAI,GACJqrC,mBAAoB,GACpBC,kBAAmB,GACnBC,mBAAoB,GACpBC,WAAY,EACZlX,uBAAuB,EACvBmX,gBAAgB,EAChBC,aAAc,KACdC,QAAS,EACTjV,oBAAoB,EACpBkV,YAAa,IAEjBttB,WAAY,CACR,CACIte,GAAM,GACN2rC,QAAW,GACXq0C,cAAiB,EACjBl0E,OAAU,GACVkR,UAAa,GACbM,SAAY,GACZsV,IAAO,GACPiK,WAAc,GACdojD,mBAAsB,GACtBtrD,OAAU,GACVy7B,WAAc,GACdhtB,QAAW,CAACjtC,OAAA+d,EAAA,EAAA/d,CAAA,GACJ2pF,GADG,CACUC,OAAO5pF,OAAAusB,GAAA,EAAAvsB,CAAK2pF,GAAYC,UADlC5pF,OAAA+d,EAAA,EAAA/d,CAAA,GAEH2pF,GAFG,CAEUC,OAAO5pF,OAAAusB,GAAA,EAAAvsB,CAAK2pF,GAAYC,UAFlC5pF,OAAA+d,EAAA,EAAA/d,CAAA,GAGH2pF,GAHG,CAGUC,OAAO5pF,OAAAusB,GAAA,EAAAvsB,CAAK2pF,GAAYC,UAHlC5pF,OAAA+d,EAAA,EAAA/d,CAAA,GAIH2pF,GAJG,CAIUC,OAAO5pF,OAAAusB,GAAA,EAAAvsB,CAAK2pF,GAAYC,WAE7CvyB,WAAc,GACdt7B,SAAY,GACZC,SAAY,GACZC,SAAY,GACZC,SAAY,GACZ6N,gBAAmB,sBACnBD,WAAc,GACdG,iBAAoB,sBACpBD,YAAe,GACfjnB,WAAa,EACbiK,YAAc,EACdlK,UAAY,EACZqc,wBAA2B,EAC3BkW,WAAc,GACd00C,gBAAmB,GACnBC,iBAAoB,GACpBjjE,aAAgB,GAChB6G,eAAkB,GAClBiQ,WAAc,KAGtBosD,WAAY,EACZC,gDAAgD,EAChDC,mDAAmD,EACnDC,qDAAqD,GA2H1CrQ,GAxH6B,WAA+B,IAEnE7tD,EAAcC,EAAeF,EAAKvhB,EAAG6D,EAAG87E,EAA2CC,EAAYC,EAAYnnB,EAAUxzD,EAFhF1M,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAGvE,OAAQsH,EAAO+G,MAEX,IArTqD,uDAsTjD,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBgnF,gDAAgD,IAEtE,IAvTkD,oDAuTlD,IAAAtvE,EACkEpU,EAAO8E,GAA9DD,KAAOoL,OAASqS,EAD3BlO,EAC2BkO,sBAAuBX,EADlDvN,EACkDuN,WAC9C,OAAOnoB,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CACc4lB,wBAAuBX,aAAY+hE,gDAAgD,IAGrG,IA5T+C,iDA6T3C,OAAOlqF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBgnF,gDAAgD,IAEtE,KAAKnB,GAQD,GAPE98D,EAAmBzlB,EAAnBylB,IAAKo+D,EAAc7jF,EAAd6jF,KAAM3/E,EAAQlE,EAARkE,EAAG6D,EAAK/H,EAAL+H,EAEH,KAAT87E,IAA0C,IAA1B3/E,EAAEkE,QAAQ,cAC1Bsd,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACvBvhB,GAAK6D,GAGT,KAAT87E,IAAyC,IAA1B3/E,EAAEkE,QAAQ,WAAmB,EAC5Csd,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACvBvhB,GAAK6D,EAClB,IAAIi8E,EAAUrhD,SAASz+B,EAAEA,EAAE0B,OAAS,IACpCo+E,IACAt+D,EAAa+gB,QAAQu9C,GAAS/7D,UAAYlgB,EAG9C,GAAa,aAAT87E,EAAqB,CACrBn+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,IACpC,IAAIu+D,EAAUrhD,SAASz+B,EAAEA,EAAE0B,OAAS,IACpCo+E,IACAt+D,EAAa+gB,QAAQu9C,GAASrjE,SAAW5Y,EA8B7C,MA3Ba,YAAT87E,KACAn+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACbghB,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAC7CzvD,GAAK6D,GAGJ,YAAT87E,KACAn+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACbghB,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAC7CzvD,GAAK6D,GAGJ,YAAT87E,KACAn+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACbghB,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAC7CzvD,GAAK6D,GAGJ,YAAT87E,KACAn+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACbghB,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAC7CzvD,GAAK6D,IAGjB4d,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GAEtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBilB,WAAYgE,IAElC,KAAK68D,GAED,OADEt+E,EAAQlE,EAARkE,EAAG6D,EAAK/H,EAAL+H,EACEvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAXlD,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAmB0K,EAAI6D,IAE3B,IAxSwD,0DAySpD,OAAOvO,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBinF,mDAAmD,IAEzE,IA1SqD,uDA6SrD,IA5SkD,oDA6S9C,OAAOnqF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBinF,mDAAmD,IAEzE,IAzQ4B,8BA0QxB,OAAOnqF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBinF,mDAAmD,IACzE,IA1QyB,2BA2QzB,IA1QsB,wBA2QlB,OAAOnqF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBinF,mDAAmD,IAEzE,IAvO0D,4DAwOtD,OAAOnqF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBknF,qDAAqD,IAE3E,IAzOuD,yDAmPnD,OARAn+D,EAAM/oB,EAAM+mF,WAEZK,GADAp+D,EAAYlsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,EAAMilB,WAAW8D,KACVghB,QAAQ,GAAG28C,OAAOv9D,UAAU,SAAAjI,GAAC,OAAmB,IAAfA,EAAE+1C,YAC7DowB,EAAar+D,EAAa+gB,QAAQ,GAAG28C,OAAOU,IACjC7hE,eAAXzoB,OAAAusB,GAAA,EAAAvsB,CAAgCuqF,EAAW9hE,gBAA3C9b,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAA8DwG,EAAO8E,GAAGD,KAAKoL,SAC7EyV,EAAa+gB,QAAQ,GAAG28C,OAAOU,GAAcC,GAC7Cp+D,EAAansB,OAAAusB,GAAA,EAAAvsB,CAAOkD,EAAMilB,aACZqE,OAAOP,EAAK,EAAGC,GACtBlsB,OAAA+d,EAAA,EAAA/d,CAAA,GACAkD,EADP,CACcknF,qDAAqD,EAC/DjiE,WAAYgE,IAGpB,IAvPoD,sDAwPhD,OAAOnsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBknF,qDAAqD,IAE3E,KAAKV,GAID,OAHE95E,EAAOpJ,EAAPoJ,IACFwzD,EAAQpjE,OAAA+d,EAAA,EAAA/d,CAAA,GAAOkD,GACfkgE,EAAQpjE,OAAA+d,EAAA,EAAA/d,CAAA,GAAO4T,YAAUwvD,EAAUxzD,IAGvC,QACI,OAAO1M,ICxZfnC,GADWN,eACQM,QAEV0pF,GAAa,iCAAAh4E,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC5BuG,EAASy8E,MADmBljF,EAAAE,KAAA,EAGXoL,KAAMC,IAAIhS,GAAU,oBAAqBoN,eAAwB6E,MAAM,SAAAnQ,GACpF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALb,YAGtBqJ,EAHsB9D,EAAAkE,MAUrBL,KAAKM,QAVgB,CAAAnE,EAAAE,KAAA,eAWxBuG,EAAS08E,GAAmBr/E,EAAGD,KAAKoL,OAAO2V,QAXnB5kB,EAAA2L,OAAA,SAYjB,CAACxH,SAAS,EAAM1J,QAAS,KAZR,cAcxBgM,EAAS28E,MAdepjF,EAAA2L,OAAA,SAejB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfvB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,IAmBpBm6E,GAAuB,iBAAO,CAChCn9E,KApC4B,4BAuC1Bo9E,GAAqB,SAAAE,GAAK,MAAK,CACjCt9E,KAvCyB,uBAwCzBs9E,UAGED,GAAkB,iBAAO,CAC3Br9E,KA3CsB,sBAuEpBu9E,GAAuB,iBAAO,CAChCv9E,KApE2B,2BAuEzBw9E,GAAqB,iBAAO,CAC9Bx9E,KAvEwB,wBA0EtBy9E,GAAkB,iBAAO,CAC3Bz9E,KA1EqB,qBAkGnB09E,GAAuB,iBAAO,CAChC19E,KAlG2B,2BAqGzB29E,GAAqB,SAAA5/E,GAAE,MAAK,CAC9BiC,KArGwB,sBAsGxBjC,OAGE6/E,GAAkB,iBAAO,CAC3B59E,KAzGqB,qBAqInB69E,GAAoB,iBAAO,CAC7B79E,KA9IwB,wBAiJtB89E,GAAkB,iBAAO,CAC3B99E,KAjJqB,qBAoJnB+9E,GAAe,iBAAO,CACxB/9E,KApJkB,kBAuJhB0M,GAAY,CACdsxE,qBAAqB,EACrBV,MAAO,GACPW,qBAAqB,EACrBC,qBAAqB,EACrBC,kBAAkB,GA+CPC,GA5CE,WAA+B,IAA9BzoF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAE5C,OAAQsH,EAAO+G,MACX,IAvKwB,0BAwKpB,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqoF,qBAAqB,IAE3C,IAzKqB,uBA0KjB,OAAOvrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqoF,qBAAqB,EAAOV,MAAOrkF,EAAOqkF,QAEhE,IA3KkB,oBA4Kd,OAAO7qF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqoF,qBAAqB,IAE3C,IA1KuB,yBA2KnB,OAAOvrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsoF,qBAAqB,IAE3C,IA5KoB,sBA+KpB,IA9KiB,mBA+Kb,OAAOxrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBsoF,qBAAqB,IAE3C,IAhLuB,yBAiLnB,OAAOxrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBuoF,qBAAqB,IAE3C,IAlLoB,sBAqLpB,IApLiB,mBAqLb,OAAOzrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBuoF,qBAAqB,IAE3C,IA/LoB,sBAgMhB,OAAOzrF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwoF,kBAAkB,IAExC,IAjMiB,mBAoMjB,IAnMc,gBAoMV,OAAO1rF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwoF,kBAAkB,IAExC,QACI,OAAOxoF,IC9LfnC,GADWN,eACQM,QAoBjB6qF,GAAmC,iBAAO,CAC5Cr+E,KAnCyC,yCAsCvCs+E,GAAiC,SAAAC,GAAgB,MAAK,CACxDv+E,KAtCsC,mCAuCtCu+E,qBAGEC,GAA8B,iBAAO,CACvCx+E,KA1CmC,mCAgEjCy+E,GAAkC,iBAAO,CAC3Cz+E,KA7DuC,uCAgErC0+E,GAAgC,iBAAO,CACzC1+E,KAhEoC,oCAmElC2+E,GAA6B,iBAAO,CACtC3+E,KAnEiC,iCA0F/B4+E,GAAkC,iBAAO,CAC3C5+E,KA1FuC,uCA6FrC6+E,GAAgC,SAAA9gF,GAAE,MAAK,CACzCiC,KA7FoC,kCA8FpCjC,OAGE+gF,GAA6B,iBAAO,CACtC9+E,KAjGiC,iCAsH/B++E,GAAgC,iBAAO,CACzC/+E,KA/HqC,qCAkInCg/E,GAA8B,iBAAO,CACvCh/E,KAlIkC,kCAqIhCi/E,GAA2B,iBAAO,CACpCj/E,KArI+B,+BAwI7B0M,GAAY,CACdwyE,iCAAiC,EACjCX,iBAAkB,GAClBY,gCAAgC,EAChCC,gCAAgC,EAChCC,8BAA8B,GA+CnBC,GA5Ca,WAA+B,IAA9B3pF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAEvD,OAAQsH,EAAO+G,MACX,IAxJqC,uCAyJjC,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBupF,iCAAiC,IAEvD,IA1JkC,mCA2J9B,OAAOzsF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBupF,iCAAiC,EAAOX,iBAAkBtlF,EAAOslF,mBAEvF,IA5J+B,iCA6J3B,OAAO9rF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBupF,iCAAiC,IAEvD,IA3JmC,qCA4J/B,OAAOzsF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwpF,gCAAgC,IAEtD,IA7JgC,kCAgKhC,IA/J6B,+BAgKzB,OAAO1sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBwpF,gCAAgC,IAEtD,IAjKmC,qCAkK/B,OAAO1sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBypF,gCAAgC,IAEtD,IAnKgC,kCAsKhC,IArK6B,+BAsKzB,OAAO3sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBypF,gCAAgC,IAEtD,IAhLiC,mCAiL7B,OAAO3sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0pF,8BAA8B,IAEpD,IAlL8B,gCAqL9B,IApL2B,6BAqLvB,OAAO5sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB0pF,8BAA8B,IAEpD,QACI,OAAO1pF,IC3LfnC,GADWN,eACQM,QAEjBkZ,GAAY,CACd6yE,gCAAgC,EAEhCC,wBAAyB,CACrBljF,GAAM,KACN8qB,YAAe,KACfq4D,WAAc,KACdC,iBAAoB,KACpBrqE,UAAY,EACZsqE,aAAgB,KAChBC,WAAc,KACdC,iBAAoB,KACpBtqE,UAAY,EACZuqE,aAAgB,KAChBvnE,MAAS,GACT0C,QAAW,KACXL,WAAc,CACV,CACIte,GAAM,KACN2rC,QAAW,KACX7/B,OAAU,KACVupB,wBAA2B,KAC3BrY,UAAa,GACbM,SAAY,GACZsV,IAAO,KACPrW,eAAkB,KAClBsgB,WAAc,KACdojD,mBAAsB,KACtBtrD,OAAU,KACVy7B,WAAc,KACdhtB,QAAW,CACP,CACIxe,UAAa,GACbtH,SAAY,GACZtd,GAAM,KACNowD,WAAc,GACdqzB,SAAW,EACXtzB,YAAe,GACf9mD,OAAU,KACV02E,OAAU,CACN,CACI//E,GAAM,KACNswD,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,KACjBo9B,YAAe,KACf9xC,cAAiB,KACjB+xC,QAAW,KACX7xC,QAAW,KACXC,eAAkB,GAClBC,wBAA2B,MAE/B,CACI7e,GAAM,KACNswD,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,KACjBo9B,YAAe,KACf9xC,cAAiB,KACjB+xC,QAAW,KACX7xC,QAAW,KACXC,eAAkB,GAClBC,wBAA2B,MAE/B,CACI7e,GAAM,KACNswD,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,KACjBo9B,YAAe,KACf9xC,cAAiB,KACjB+xC,QAAW,KACX7xC,QAAW,KACXC,eAAkB,GAClBC,wBAA2B,MAE/B,CACI7e,GAAM,KACNswD,SAAY,EACZ37B,OAAU,GACV5B,YAAe,GACf9sB,SAAY,GACZktB,cAAiB,KACjBo9B,YAAe,KACf9xC,cAAiB,KACjB+xC,QAAW,KACX7xC,QAAW,KACXC,eAAkB,GAClBC,wBAA2B,WAOnD6kE,eAAkB,GAClBjkD,SAAY,GACZ3zB,OAAU,GACVkR,UAAa,GACbM,SAAY,GACZ8Y,MAAS,GACTyO,YAAe,GACfx8B,UAAa,GACbuqB,IAAO,GACPyD,YAAe,GACfxE,QAAW,GACXyE,SAAY,GACZq+B,OAAU,GACV71C,gBAAmB,KACnB6kE,yBAA4B,KAC5BC,eAAkB,KAClBC,aAAgB,GAChB3mE,aAAgB,OAsDlB4mE,GAAoC,iBAAO,CAC7CpgF,KAnD2C,2CAsDzCqgF,GAAkC,SAAAtiF,GAAE,MAAK,CAC3CiC,KAtDwC,sCAuDxCjC,OAGEuiF,GAA+B,iBAAO,CACxCtgF,KA1DqC,qCAiFnCugF,GAAuC,iBAAO,CAChDvgF,KAhF6C,6CAmF3CwgF,GAAqC,SAAAziF,GAAE,MAAK,CAC9CiC,KAnF0C,wCAoF1CjC,OAGE0iF,GAAkC,iBAAO,CAC3CzgF,KAvFuC,uCA6GrC0gF,GAAwC,SAAC5iF,GAAD,MAAW,CACrDkC,KAxG8C,4CAyG9ClC,SAGE6iF,GAAqC,iBAAO,CAC9C3gF,KA5G2C,2CAsIzC4gF,GAA2C,iBAAO,CACpD5gF,KA5IiD,iDA+I/C6gF,GAAyC,SAAA9iF,GAAE,MAAK,CAClDiC,KA/I8C,4CAgJ9CjC,OAGE+iF,GAAsC,iBAAO,CAC/C9gF,KAnJ2C,2CA8KzC+gF,GAA0C,iBAAO,CACnD/gF,KA1KgD,gDA6K9CghF,GAAwC,SAAAjjF,GAAE,MAAK,CACjDiC,KA7K6C,2CA8K7CjC,OAGEkjF,GAAqC,iBAAO,CAC9CjhF,KAjL0C,0CAuMxCkhF,GAAqC,iBAAO,CAC9ClhF,KAtM0C,0CAyMxCmhF,GAAmC,SAAApjF,GAAE,MAAK,CAC5CiC,KAzMuC,qCA0MvCjC,OAGEqjF,GAAgC,iBAAO,CACzCphF,KA7MoC,oCA6RzBqhF,GA3Ee,WAA+B,IAAAC,EAA9B3rF,EAA8BqN,UAAAnE,OAAA,QAAAlN,IAAAqR,UAAA,GAAAA,UAAA,GAAtB0J,GAAWzT,EAAW+J,UAAAnE,OAAA,EAAAmE,UAAA,QAAArR,EAC5D,OAAQsH,EAAO+G,MACd,IAzO6C,yCA0OnC,OAAOvN,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4pF,gCAAgC,IAEtD,IA3OoC,sCA4OhC,OAAO9sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4pF,gCAAgC,EAAOgC,mBAAoBtoF,EAAO8E,GAAGD,KAAKoL,OAAO2V,QAEvG,IA7OiC,mCA8O7B,OAAOpsB,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB4pF,gCAAgC,IAEtD,IA9OyC,2CA+OrC,OAAO9sF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB6rF,qCAAqC,IAE3D,IAhPsC,wCAiPlC,OAAO/uF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB6rF,qCAAqC,EAAOhC,wBAAyBvmF,EAAO8E,GAAGD,KAAKoL,SAE1G,IAlPmC,qCAmP/B,OAAOzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB6rF,qCAAqC,IAE3D,IAnP6C,+CAoPzC,OAAO/uF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8rF,mCAAmC,IAEzD,IAlP0C,4CAoPtC,IAAIC,EAA6B7hE,qBAAUlqB,EAAM6pF,yBAFrDn8E,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAGI,QAAA6R,EAAAC,EAAuBi+E,EAA2B9mE,WAAlDlX,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA8D,KAArD8/B,EAAqD3/B,EAAAlG,MAC1D,GAAI6lC,EAAW7mC,KAAOrD,EAAO6E,KAAK6jF,YAG9B,IAFA,IAAMC,EAAe,CAAC,WAAY,WAAY,YAC1C5vF,EAAI,EACR2uB,EAAA,EAAAA,EAAoBihE,EAApB/iF,OAAA8hB,IAAkC,CAA7B,IAAIupB,EAAW03C,EAAJjhE,GACR1nB,EAAO6E,KAAK+jF,eAAe7vF,KAC3BmxC,EAAW+G,GAAWjxC,EAAO6E,KAAK+jF,eAAe7vF,IAErDA,MAXhB,MAAA8R,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAkBI,OAFA+9E,EAAAI,EAA2BI,WAAUrjF,KAArCyH,MAAAo7E,EAAA7uF,OAAAusB,GAAA,EAAAvsB,CAA6CwG,EAAO6E,KAAKoL,SAElDzW,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8rF,mCAAmC,EAAOjC,wBAAyBkC,IAEzF,IArQuC,yCAsQnC,OAAOjvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8rF,mCAAmC,IAEzD,IA5Q0C,4CA6QtC,OAAOhvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8rF,mCAAmC,EAAOjC,wBAAyBvmF,EAAO8E,KAEhG,IA9QuC,yCA+QnC,OAAOtL,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkB8rF,mCAAmC,IAEzD,IA5Q4C,8CA6QxC,OAAOhvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBosF,kCAAkC,IAExD,IA9QyC,2CA+QrC,OAAOtvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBosF,kCAAkC,EAAOvC,wBAAyBvmF,EAAO8E,KAE/F,IAhRsC,wCAiRlC,OAAOtL,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBosF,kCAAkC,IAExD,IAjRsC,wCAkRlC,OAAOtvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqsF,mCAAmC,IAEzD,IAnRmC,qCAsRnC,IArRgC,kCAsR5B,OAAOvvF,OAAA+d,EAAA,EAAA/d,CAAA,GAAIkD,EAAX,CAAkBqsF,mCAAmC,IAE/D,QACC,OAAOrsF,ICtZKssF,gBAAgB,CAC9B3nE,sBACA/J,qBACAlR,cACAof,qBACAk3C,2BACAusB,yBACAj5C,qBACAguC,wBACA9oC,kBACAY,cACAppB,sBACAwiB,6BACAwiC,gBACAlP,cACA+e,cACA2H,iBACA3V,uCACArmD,kBACAi8D,YACAC,uBACAhlC,sBACAH,iCACAuR,iBACA4yB,yBACApU,mCChDKqV,GAAmBltF,OAAOmtF,sCAAwCC,KAGzDC,GAFDC,aAAYC,GAAaL,GAAiBM,aAAgBC,QCElEC,oLACI,IAAA1yF,EACkFC,KAAKC,MAA5EqE,EADXvE,EACA4H,UAAsB2U,EADtBvc,EACsBuc,WAAkCo2E,GADxD3yF,EACkC0F,qBADlC1F,EACwD2yF,cAAiBC,EADzEvwF,OAAAwhB,EAAA,EAAAxhB,CAAArC,EAAA,kEAOR,GAAmB,OAAfuc,EAAqB,CACxB,IAAI7W,EACA6W,GAAa,EACb7V,EAAgCN,aAAaC,QAAQM,MACzD,GAAID,EAEHhB,EADsBkB,KAAKC,MAAMC,YAAQJ,IACFK,aAUxC,OARoBX,aAAaC,QAAQ,iBACxBkW,GAAa,GAE9Btc,KAAKC,MAAMyZ,6BAA6B,CACvC,CAAE7X,IAAK,aAAcoL,MAAOqP,GAC5B,CAAEza,IAAK,uBAAwBoL,MAAOxH,KAGhC,KAIR,OAAK6W,GAAco2E,EACXnyE,EAAAhgB,EAAAC,cAACoyF,EAAA,EAADxwF,OAAAyF,OAAA,GAAW8qF,EAAX,CAAiBzvE,OAAQ,SAAAjjB,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,CAAEqwE,SAAUua,EAAcptF,MAAO,CAAEutF,KAAM5yF,EAAM6E,kBAGpF,IAAfwX,EACIiE,EAAAhgB,EAAAC,cAACoyF,EAAA,EAADxwF,OAAAyF,OAAA,GAAW8qF,EAAX,CAAiBzvE,OAAQ,SAAAjjB,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC8D,EAAcrE,QAExDkG,aAAaw5D,QACNp/C,EAAAhgB,EAAAC,cAACoyF,EAAA,EAADxwF,OAAAyF,OAAA,GAAW8qF,EAAX,CAAiBzvE,OAAQ,SAAAjjB,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,CAAEqwE,SAAU,IAAK7yE,MAAO,CAAEutF,KAAM5yF,EAAM6E,yBApCnER,aAwDdgM,eAfS,SAAAhL,GAAS,IAAAw+E,EAG5Bx+E,EADH0J,SAGD,MAAO,CAAEsN,WALuBwnE,EAEnBxnE,WAGQ7W,qBALWq+E,EAEPr+E,uBAMC,SAAA4K,GAC1B,MAAO,CACNoJ,eAAgB,SAAC3M,EAAG6D,GAAJ,OAAUN,EAASoJ,aAAe3M,EAAG6D,KACrD+I,6BAA8B,SAAAC,GAAkB,OAAItJ,EAASqJ,aAA6BC,OAI7ErJ,CAA6CmiF,eC1DtDK,8MACF1rF,QAAU,SAAAU,GACN/C,OAAOD,SAAWgD,2EAGb,IAAApC,EAAA1F,KAAAD,EACmDC,KAAKC,MAAtD6H,EADF/H,EACE+H,GAAIC,EADNhI,EACMgI,gBAAiBtH,EADvBV,EACuBU,UAAmBsyF,EAD1ChzF,EACkCs6B,MAAQ04D,KAGzC14D,EADK,IAAI24D,OAAOlrF,GACL4G,KAAKqkF,GAAQhrF,EAAkB,GAEhD,OACIwY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAAS,kBAAM1B,EAAK0B,QAAQU,IAChCrH,UAAWK,KAAWL,EAAW45B,IAASr6B,KAAKC,MAAM6B,iBAbvCwC,aAkBf2uF,gBAAWH,ICZpBI,oLAEO,IACEhzF,EAAWF,KAAKC,MAAhBC,QAEDqiF,EAAsB38E,YAAe,CAACnH,KAAqCC,KAC7EC,MAAsC,MACpC6jF,EAAqB58E,YAAe,CAAChH,KAAoCC,KAC3EC,MAAqC,MACnC2jF,EAAoB78E,YAAe,CAAC7G,KAAiCC,KACvEC,MAAkC,MAChCyjF,EAAoB98E,YAAe,CAAC1G,KAAmCC,KAAqCC,MAAoC,MAuBtJ,OACImhB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK+hE,GAAuBhiE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAvB7B,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,mCAAuC7H,EAA5D,CAClC8H,gBAAiB7H,EAAQ8H,YAsBG,mBAEvBw6E,GAAsBjiE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAtB1B,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,sCAA0C7H,EAA/D,CACpC8H,gBAAiB7H,EAAQ8H,YAqBE,gBAEtBy6E,GAAqBliE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UArBxB,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,uCAA2C7H,EAAhE,CACrC8H,gBAAiB7H,EAAQ8H,YAoBC,eAKrB06E,GAAqBniE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAtBnC,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,0BAA8B7H,EAAnD,CAC1B8H,gBAAiB7H,EAAQ8H,YAqBC,UAErBuY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAnBhB,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,wBAA4B7H,EAAjD,CACmB8H,gBAAiB7H,EAAQ8H,YAkB/D,QAEAu6E,GAAuBhiE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAxBtC,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,4BAAgC7H,EAArD,CACzB8H,gBAAiB7H,EAAQ8H,YAuBG,UAEvBu6E,GAAuBhiE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UApB5B,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,oCAAwC7H,EAA7D,CACO8H,gBAAiB7H,EAAQ8H,YAmBvC,4BAnDTE,IAAM5D,WA+DtBpC,wBANA,SAAAC,GAAK,MAAK,CACrB6F,OAAQ,CACJU,gBAAiBvG,EAAMwG,QAAQC,OAAOC,YAI/B3G,CAAmBgxF,IC7C5BE,GAAe,CACjB,CAACvxF,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,YAAa+N,MAAO,cAC1B,CAAC/N,IAAK,UAAW+N,MAAO,aAGtByjF,eACF,SAAAA,EAAYpzF,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqzF,IACxB7uF,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAixF,GAAAzuF,KAAA5E,KAAMC,EAAOiJ,KAgBjBI,kBAjB4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiBR,SAAAC,IAAA,IAAAgE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,qCADgBiG,EAAAE,KAAA,EAGCtF,EAAKvE,MAAM4yB,kBAHZ,QAGVnlB,EAHU9D,EAAAkE,MAIRC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAJlF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SAjBQwE,EAyB5B8uF,MAzB4BlxF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAyBpB,SAAAmB,IAAA,IAAAyC,EAAAqH,EAAAC,EAAAlH,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UAAAuD,EACyB7I,EAAKc,MAA3BoP,EADHrH,EACGqH,UAAWC,EADdtH,EACcsH,SACdnQ,EAAKmJ,UAAU+G,EAAWC,GAF1B,CAAA9J,EAAAf,KAAA,eAGM2D,EAAO,CAACiH,YAAWC,WAHzB9J,EAAAf,KAAA,EAKiBtF,EAAKvE,MAAMszF,YAAY9lF,GALxC,QAKMC,EALN7C,EAAAiD,MAMOC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,mBAChF9H,EAAKvE,MAAM4yB,mBAEXruB,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAVrF,wBAAAwG,EAAAH,SAAAE,EAAA5K,SAzBoBwE,EAwC5BmJ,UAAY,SAAC+G,EAAWC,EAAS1I,GAC7B,GAAkB,KAAdyI,GAAgC,KAAZC,EAEpB,OADAnQ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,2BACvE,EAEX,GAAI/F,IAAOmO,GAAWD,QAAQlO,IAAOoO,IAEjC,OADAnQ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,gDACvE,EAPyB,IAWR2mB,EAAczuB,EAAKvE,MAAxCq1B,mBAAqBrC,UACxBvlB,GAAK,EAZ2BsF,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAapC,QAAA6R,EAAAC,EAAc6f,EAAd5f,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAyB,KAAhBmhB,EAAgBhhB,EAAAlG,MACrB,IAAIhB,GAAMkoB,EAAEloB,KAAOA,EAAnB,CACA,IAAMunF,EAAejtF,IAAOmO,GACtB++E,EAAaltF,IAAOoO,GACpB++E,EAAgBntF,IAAO4tB,EAAEzf,WACzBi/E,EAAcptF,IAAO4tB,EAAExf,SAC7B,GAAK6+E,EAAapgD,eAAeugD,IAAgBH,EAAargD,cAAcugD,IACpEA,EAActgD,eAAeqgD,IAAeC,EAAcvgD,cAAcqgD,GAAgB,CAC5FhvF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,gDAAAyC,OAAkD2C,YAAoBgiF,GAAtE,MAAA3kF,OAAyF2C,YAAoBiiF,MAEhIjmF,GAAK,EACL,SA3B4B,MAAA+F,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GA8BpC,OAAOxF,GAtEiBlJ,EAyE5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KA1EL5H,EA6E5BovF,iBAAmB,SAAC3uF,GAChBT,EAAKU,SAAS,CAACwP,UAAWzP,EAAE+H,OAAOC,SA9EXzI,EAiF5BqvF,eAAiB,SAAC5uF,GACdT,EAAKU,SAAS,CAACyP,QAAS1P,EAAE+H,OAAOC,SAlFTzI,EAqF5BsvF,iBAAmB,SAACt/E,GAChB,IAAIu/E,EAAqB,GAUzB,OATAv/E,EAAgBlG,QAAQ,SAAA0lF,GAChB,IAAIC,EAAkB,CAClBhoF,GAAI+nF,EAAO/nF,GACXyI,UAAWnO,IAAOytF,EAAOt/E,WAAWlO,OAAO,cAC3CmO,QAASpO,IAAOytF,EAAOr/E,SAASnO,OAAO,eAE3CutF,EAAmB3lF,KAAK6lF,KAGzBF,GAhGiBvvF,EAmG5BiuE,UAAY,SAAAjwD,GAAO,IAETzkB,EADoCyG,EAAKvE,MAAxCq1B,mBAAqBrC,UACR7gB,KAAK,SAAA+hB,GAAC,OAAIA,EAAEloB,KAAOuW,EAAIvW,KAC3CzH,EAAKU,SAAS,CAACgvF,aAAcn2F,EAAG64C,YAAY,KAtGpBpyC,EAyG5BmuE,YAAc,SAAAnwD,GACVhe,EAAKU,SAAS,CAACivF,eAAgB3xE,EAAKkQ,kBAAkB,KA1G9BluB,EA6G5B+iD,aAAe,WACX/iD,EAAKU,SAAS,CAACgvF,aAAc,GAAIt9C,YAAY,KA9GrBpyC,EAiH5B4vF,WAjH4BhyF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiHf,SAAAyQ,IAAA,IAAAm6E,EAAA3/E,EAAAC,EAAA1I,EAAAwB,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,UAAAuqF,EACwC7vF,EAAKc,MAA/C4uF,aAAex/E,EADb2/E,EACa3/E,UAAWC,EADxB0/E,EACwB1/E,QAAS1I,EADjCooF,EACiCpoF,IACtCzH,EAAKmJ,UAAU+G,EAAWC,EAAS1I,GAF9B,CAAAkO,EAAArQ,KAAA,eAGC2D,EAAO,CAACiH,YAAWC,UAAS1I,MAH7BkO,EAAArQ,KAAA,EAIYtF,EAAKvE,MAAMq0F,eAAe7mF,GAJtC,QAICC,EAJDyM,EAAArM,MAKEC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,mBACjBsqC,YAAY,EACZs9C,aAAc,KAElB1vF,EAAKvE,MAAM4yB,mBAEXruB,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAfhF,wBAAA8V,EAAAzP,SAAAwP,EAAAla,SAjHewE,EAqI5B+vF,aAAe,SAACznF,EAAG6D,GACfnM,EAAKU,SAAS,CAACgvF,aAAa9xF,OAAA+d,EAAA,EAAA/d,CAAA,GAAKoC,EAAKc,MAAM4uF,aAAjB9xF,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAgC0K,EAAI6D,EAAE3D,OAAOC,WAtIhDzI,EAyI5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACivF,eAAgB,GAAIzhE,kBAAkB,KA1I7BluB,EA6I5BguB,gBA7I4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6IV,SAAAgR,IAAA,IAAAxO,EAAAwB,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACUmC,EAAOzH,EAAKc,MAA7B6uF,eAAiBloF,GAClBwB,EAAO,CAACA,KAAM,CAACxB,OAFPyO,EAAA5Q,KAAA,EAGGtF,EAAKvE,MAAMk0F,eAAe1mF,GAH7B,QAGRC,EAHQgN,EAAA5M,MAIPC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,mBACf6nF,eAAgB,GAChBzhE,kBAAkB,IAEtBluB,EAAKvE,MAAM4yB,mBAEXruB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAjBd,wBAAAqW,EAAAhQ,SAAA+P,EAAAza,SA3IdwE,EAAKc,MAAQ,CACToP,UAAW,GACXC,QAAS,GACT6/E,eAAgB,GAChBC,aAAc,GACdroF,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6nF,aAAc,GACdC,eAAgB,GAChBzhE,kBAAkB,EAClBkkB,YAAY,GAbQpyC,wEAmKnB,IAAAkB,EAAA1F,KAAAD,EACiCC,KAAKC,MAApCC,EADFH,EACEG,QAASo1B,EADXv1B,EACWu1B,mBADXpmB,EAEsDlP,KAAKsF,MAAzDoP,EAFFxF,EAEEwF,UAAWC,EAFbzF,EAEayF,QAASu/E,EAFtBhlF,EAEsBglF,aAAcC,EAFpCjlF,EAEoCilF,eAEnCO,EAAoB9uF,YAAe,CAACjH,OACpCg2F,EAAsB/uF,YAAe,CAAClH,OACtCk2F,EAAoBhvF,YAAe,CAACnH,QAAyCi2F,GAAqBC,EAExG,OACIp0E,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAGCzyF,OAAO2T,KAAKo+E,GAAgB3lF,OAAS,GACtC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMotB,iBAAkBvuB,QAASnE,KAAKuyB,gBACrDhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,yDACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUuzF,EAAez/E,aAGtD6L,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,cAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUuzF,EAAex/E,WAItD4L,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASuG,MAAO,aACjCoZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAASjgB,UAAWP,EAAQoe,OADhC,wCAMZiC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKuyB,gBAAvD,UACAhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASpH,KAAKwyB,iBAA9D,iBAORjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMsxC,WAAY3I,OAAQ,OAAQ9pC,QAASnE,KAAKunD,cAC/DhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,OAAO7G,OAAO,SAASnI,QAAQ,WACtD+O,KAAM,OACNE,MAAqC,KAA9B7P,KAAKsF,MAAMkvF,eAAuB1kF,WAAY9P,KAAKsF,MAAMkvF,eAChEzkF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,YAAatvF,IAC9CgI,MAAO1G,IAAO2tF,EAAax/E,WAAWlO,OAAO,cAC7CwJ,WAAS,KAEjBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,KAAK2D,MAAM,KAAK7G,OAAO,SACjC4G,KAAM,OACNE,MAAmC,KAA5B7P,KAAKsF,MAAMmvF,aAClB3kF,WAAY9P,KAAKsF,MAAMmvF,aACvB1kF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,UAAWtvF,IAC5CgI,MAAO1G,IAAO2tF,EAAav/E,SAASnO,OAAO,cAC3C5F,QAAQ,WAAWoP,WAAS,OAI5CuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKunD,cAAvD,UACAhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKo0F,YAA5D,UAKR7zE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACnByzF,GAAqBr0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAC1D8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAClBV,UAAWm1B,EAAmB1B,0BAC7B0B,EAAmBrC,UAAUzkB,OAAS,GACvC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,OACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,IACX6Q,EAAAhgB,EAAAC,cAACspB,EAAD,CACIpI,OAAQ0xE,GACRzxE,KAAM3hB,KAAK8zF,iBAAiBx+D,EAAmBrC,WAC/CpR,WAAY6yE,EAEZpxE,OAAQtjB,KAAKyyE,gBAQjClyD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL+yF,GACDp0E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,2BAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,OACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,OAAO7G,OAAO,SAASnI,QAAQ,WACtD+O,KAAM,OACN1C,MAAOyH,EACP3E,SAAU/P,KAAK4zF,iBACf/lC,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,KAElDuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,KAAK2D,MAAM,KAAK7G,OAAO,SAASnI,QAAQ,WAAW+O,KAAM,OACnE1C,MAAO0H,EACP5E,SAAU/P,KAAK6zF,eACfhmC,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,KAElDuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,EAAGrH,WAAY,SAAUlH,WAAS,GAC7Cof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKszF,OADlB,sBAQxB/yE,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAxShD/H,aAiUdgM,eAfS,SAAAhL,GAGpB,MAAO,CAACgwB,mBAFqBhwB,EAAtBgwB,qBAKgB,SAAAjlB,GACvB,MAAO,CACHwiB,gBAAiB,kBAAMxiB,EAASwiB,OAChCyhE,eAAgB,SAAA7mF,GAAI,OAAI4C,E9GzSF,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAClCuG,EAAS6iB,MADyBroB,EAAAf,KAAA,EAGjBoL,KAAM4/E,IAAI3xF,GAAU,mBAAoBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACzF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALP,YAG5BqJ,EAH4B7C,EAAAiD,MAU3BL,KAAKM,QAVsB,CAAAlD,EAAAf,KAAA,eAW9BuG,EAAS8iB,GAAuBzlB,EAAGD,KAAKoL,SAXVhO,EAAA0K,OAAA,SAYvB,CAACxH,SAAS,EAAM1J,QAAS,KAZF,cAc9BgM,EAASgjB,MAdqBxoB,EAAA0K,OAAA,SAevB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfjB,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,G8GySO2hF,CAAe7mF,KAChD8lF,YAAa,SAAA9lF,GAAI,OAAI4C,E9GtPF,SAAA5C,GAAI,sBAAA+M,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC/BuG,EAASijB,MADsB5Y,EAAA5Q,KAAA,EAGdoL,KAAMM,KAAKrS,GAAU,mBAAoBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC1F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALV,YAGzBqJ,EAHyBgN,EAAA5M,MAUxBL,KAAKM,QAVmB,CAAA2M,EAAA5Q,KAAA,eAW3BuG,EAASkjB,GAAoB7lB,IAXFgN,EAAAnF,OAAA,SAYpB,CAACxH,SAAS,EAAM1J,QAAS,KAZL,cAc3BgM,EAASmjB,MAdkB9Y,EAAAnF,OAAA,SAepB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfpB,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,G8GsPO4gF,CAAY9lF,KAC1C0mF,eAAgB,SAAA1mF,GAAI,OAAI4C,E9G3QF,SAAA5C,GAAI,sBAAAwM,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA0kF,EAAArnF,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAClCuG,EAASojB,MAEHshE,EAH4B3yF,OAAA+d,EAAA,EAAA/d,CAAA,GAGdqL,EAAS8C,eAHK4J,EAAArQ,KAAA,EAIjBoL,KAAM+yC,OAAO9kD,GAAU,mBAAoB4xF,GAAS3/E,MAAM,SAAAnQ,GACvE,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aANP,YAI5BqJ,EAJ4ByM,EAAArM,MAW3BL,KAAKM,QAXsB,CAAAoM,EAAArQ,KAAA,gBAY9BuG,EAASqjB,GAAuBhmB,IAZFyM,EAAA5E,OAAA,SAavB,CAACxH,SAAS,EAAM1J,QAAS,KAbF,eAe9BgM,EAASsjB,MAfqBxZ,EAAA5E,OAAA,SAgBvB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAhBjB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,G8G2QOwhF,CAAe1mF,OAIzC6C,CAA6CpO,qBAnB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAkBmCe,CAAmBmxF,uFC5UzE2B,GAA6B,CAClC,CAAEnzF,IAAK,MAAO+N,MAAO,OACrB,CAAE/N,IAAK,KAAM+N,MAAO,MACpB,CAAE/N,IAAK,OAAQ+N,MAAO,QACtB,CAAE/N,IAAK,YAAa+N,MAAO,aAC3B,CAAE/N,IAAK,YAAa+N,MAAO,QAC3B,CAAE/N,IAAK,SAAU+N,MAAO,WAGnBqlF,eACL,SAAAA,EAAYh1F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAi1F,IAC3BzwF,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA6yF,GAAArwF,KAAA5E,KAAMC,EAAOiJ,KAyBdI,kBA1B4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA0BR,SAAAC,IAAA,IAAAgE,EAAAowC,EAAA,OAAA7wB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACnBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,wCAEAa,EAAKvE,MAAM4sF,aAEPn/E,EAAK,GALU9D,EAAAE,KAAA,EAMRtF,EAAKvE,MAAMi1F,WANH,cAMnBxnF,EANmB9D,EAAAkE,MAOXC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAPhFuF,EAAAE,KAAA,EASRtF,EAAKvE,MAAMk1F,WATH,QASnBznF,EATmB9D,EAAAkE,MAUXC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAE/FqJ,EAAGK,UACE+vC,EAAmBt5C,EAAKvE,MAAxB69C,eACRt5C,EAAKU,SAAS,CAAEkwF,cAAe5wF,EAAK6wF,iBAAiBv3C,EAAe6qC,UAdlD,yBAAA/+E,EAAAc,SAAAhB,EAAA1J,SA1BQwE,EA4C5B8wF,6BAA+B,SAAArwF,GAC9BT,EAAKU,SAAS,CACb0sB,aAAc3sB,EAAE+H,OAAOC,MACvBmoF,cAAe5wF,EAAK+wF,sBAAsB/wF,EAAKgxF,oBAAoBhxF,EAAKvE,MAAM69C,eAAe6qC,MAAOnkF,EAAKc,MAAMmwF,YAAaxwF,EAAE+H,OAAOC,UA/C3GzI,EA6D5BkxF,aAAe,SAAAzwF,GACdT,EAAKvE,MAAM01F,2BAA2B,YAAa,CAAC1wF,EAAE2K,SA9D3BpL,EAiE5BoxF,YAAc,SAAA3wF,GACbT,EAAKvE,MAAM01F,2BAA2B,MAAO1wF,EAAE2K,QAlEpBpL,EAqE5B88D,SArE4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqEjB,SAAAmB,IAAA,IAAAg8E,EAAAl5E,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACF88E,EAAyBpiF,EAAKvE,MAA9B2mF,sBAEJpiF,EAAKmJ,UAAUi5E,EAAsB,SAH/B,CAAA/7E,EAAAf,KAAA,eAAAe,EAAAf,KAAA,EAIQtF,EAAKvE,MAAM41F,uBAAuBjP,GAJ1C,QAIHl5E,EAJG7C,EAAAiD,MAKFC,SACNvJ,EAAKvE,MAAMk1F,WACX3wF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,oBAAAyC,OAAsB63E,EAAqB10D,SAG3D1tB,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAb1E,wBAAAwG,EAAAH,SAAAE,EAAA5K,SArEiBwE,EAuF5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAxFH5H,EA2F5BmJ,UAAY,SAAC+T,EAAQo0E,GACpB,IAAIpoF,GAAK,EAYT,GAVuB,CAAC,OAAQ,eAAgB,aACjCY,QAAQ,SAAAxB,GACtB,IAAIopD,EAAKppD,EAAIgpF,EACK,KAAdp0E,EAAO5U,IACVtI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAK,2BACtBxoD,GAAK,GAELlJ,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB8zD,EAAK,QAGnBxoD,EAAI,OAAOA,EAEhB,GAAK,MAAMgB,KAAKgT,EAAOpN,WAOtB9P,EAAKc,MAAMsxC,WAAapyC,EAAKU,SAAS,CAAE6wF,mBAAoB,KAAQvxF,EAAKU,SAAS,CAAE2wD,eAAgB,UAFpG,GAJArxD,EAAKc,MAAMsxC,WACRpyC,EAAKU,SAAS,CAAE6wF,mBAAoB,+DACpCvxF,EAAKU,SAAS,CAAE2wD,eAAgB,iEACnCnoD,GAAK,GACI,OAAOA,EAiBjB,MAZK,8BAA8BgB,KAAKgT,EAAOnI,gBAC9C/U,EAAKU,SAAS,CAAE8wF,kBAAmB,qBACnCtoF,GAAK,GAG6B,IAA/BgU,EAAM,UAAclT,QACvBhK,EAAKU,SAAS,CAAE+wF,eAAgB,2BAChCvoF,GAAK,GAELlJ,EAAKU,SAAS,CAAE+wF,eAAgB,KAG5BvoF,GAAWA,GAhIWlJ,EAqI5B0xF,aAAe,SAACppF,EAAG7H,GAClB,GAAU,cAAN6H,GACC,WAAW4B,KAAKzJ,EAAE+H,OAAOC,OAAQ,OAAO,EAE7CzI,EAAKvE,MAAM01F,2BAA2B7oF,EAAG7H,EAAE+H,OAAOC,QAzIvBzI,EA4I5B2xF,WAAa,SAAA3zE,GACZhe,EAAKU,SAAS,CAAEkxF,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GAAMogB,GAAOo0B,YAAY,EAAMy/C,gBAAiB7zE,EAAI0P,QA7IrD1tB,EAgJ5B8xF,aAAe,SAAA9zE,GACdhe,EAAKU,SAAS,CAAEwtB,kBAAkB,EAAM6jE,aAAc/zE,KAjJ3Bhe,EAoJ5BgyF,gBAAkB,SAAA71B,GACZA,EAAK/9C,WAGVpe,EAAKU,SAAS,CAAEuxF,kBAAkB,EAAMC,cAAe/1B,KAxJ5Bn8D,EA2J5BmyF,aA3J4Bv0F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2Jb,SAAAyQ,IAAA,IAAA08E,EAAA1kE,EAAA3Y,EAAAtN,EAAAyB,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAA8sF,EACqBpyF,EAAKc,MAAMoxF,cAAtCxkE,EADM0kE,EACN1kE,KAAM3Y,EADAq9E,EACAr9E,aAActN,EADd2qF,EACc3qF,GADdkO,EAAArQ,KAAA,EAEGtF,EAAKvE,MAAM42F,WAAW,CACtC3kE,OACA3Y,eACAtN,OALa,QAERyB,EAFQyM,EAAArM,MAOPC,QACNvJ,EAAKU,SAAS,SAAAwsB,GAAS,MAAK,CAC3BtlB,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,kBAAAyC,OAAoBmjB,GACnCukE,kBAAkB,EAClBC,cAAe,KACfN,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GACRsvB,EAAU0kE,YADH,CAEVxzE,WAAW,OAIbpe,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UApBrE,wBAAA8V,EAAAzP,SAAAwP,EAAAla,SA3JawE,EAmL5BsyF,eAAiB,WAChBtyF,EAAKU,SAAS,CAAEuxF,kBAAkB,EAAOC,cAAe,QApL7BlyF,EAuL5B4vF,WAvL4BhyF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAuLf,SAAAgR,IAAA,IAAA/M,EAAAowC,EAAA6qC,EAAA8M,EAAA,OAAAxoE,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,WACRtF,EAAKmJ,UAAUnJ,EAAKc,MAAM8wF,YAAa,aAD/B,CAAA17E,EAAA5Q,KAAA,gBAEXtF,EAAKU,SAAS,CAAE0xC,YAAY,IAFjBl8B,EAAA5Q,KAAA,EAGMtF,EAAKvE,MAAM82F,WAAWvyF,EAAKc,MAAM8wF,aAHvC,YAGL1oF,EAHKgN,EAAA5M,MAIJC,QAJI,CAAA2M,EAAA5Q,KAAA,gBAAA4Q,EAAA5Q,KAAA,EAKgBtF,EAAKvE,MAAMk1F,WAL3B,OAAAz6E,EAAA5M,KAMMC,UACP+vC,EAAmBt5C,EAAKvE,MAAxB69C,eACF6qC,EAAQ7qC,EAAe6qC,OACrB8M,EAAejxF,EAAKc,MAApBmwF,YACOxoF,MAAMuB,QAAU,EAC9BhK,EAAKU,SAAS,CACbkwF,cAAe5wF,EAAK+wF,sBAAsB/wF,EAAKgxF,oBAAoB7M,EAAO8M,GAAajxF,EAAKc,MAAMssB,gBAGnGptB,EAAKU,SAAS,CAAEkwF,cAAe5wF,EAAK+wF,sBAAsB5M,EAAOnkF,EAAKc,MAAMssB,iBAI9EptB,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,iBAAAyC,OAAmBvK,EAAKc,MAAM8wF,YAAYlkE,MACzDkkE,YAAa,KAvBJ17E,EAAA5Q,KAAA,iBA0BVtF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpB+xF,YAAa,KA9BJ,yBAAA17E,EAAAhQ,SAAA+P,EAAAza,SAvLewE,EA2N5B+iD,aAAe,WACd/iD,EAAKU,SAAS,CAAE0xC,YAAY,EAAOogD,sBAAuB,GAAIjB,mBAAoB,GAAIkB,cAAe,MA5N1EzyF,EA+N5B+vF,aAAe,SAACznF,EAAG7H,GAClB,GAAU,cAAN6H,GACC,WAAW4B,KAAKzJ,EAAE+H,OAAOC,OAAQ,OAAO,EAE7CzI,EAAKU,SAAS,CAAEkxF,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GAAMoC,EAAKc,MAAM8wF,YAAlBh0F,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAgC0K,EAAI7H,EAAE+H,OAAOC,WAnO7CzI,EAsO5B0yF,iBAAmB,SAAAvmF,GAClBnM,EAAKU,SAAS,CAAEkxF,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GAAMoC,EAAKc,MAAM8wF,YAAlB,CAA+B5P,UAAW,CAAC71E,EAAEf,YAvO7CpL,EA0O5B2yF,gBAAkB,SAAAxmF,GACjBnM,EAAKU,SAAS,CAAEkxF,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GAAMoC,EAAKc,MAAM8wF,YAAlB,CAA+Bn9E,IAAKtI,EAAEf,WA3OtCpL,EA8O5B4yF,mBAAqB,SAAAzmF,GACpBnM,EAAKU,SAAS,CAAEkxF,YAAYh0F,OAAA+d,EAAA,EAAA/d,CAAA,GAAMoC,EAAKc,MAAM8wF,YAAlB,CAA+BvzE,SAAUlS,EAAE1D,WA/O3CzI,EAkP5B+tB,eAAiB,WAChB/tB,EAAKU,SAAS,CAAEwtB,kBAAkB,EAAO6jE,aAAc,MAnP5B/xF,EAsP5BguB,gBAtP4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAsPV,SAAAuR,IAAA,IAAAtN,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cACjBtF,EAAKU,SAAS,CAAEwtB,kBAAkB,IADjBzX,EAAAnR,KAAA,EAGAtF,EAAKvE,MAAMo3F,WAAW7yF,EAAKc,MAAMixF,aAAatqF,IAH9C,QAGXyB,EAHWuN,EAAAnN,MAIVC,SACNvJ,EAAKvE,MAAMk1F,WACX3wF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,iBAAAyC,OAAmBvK,EAAKc,MAAMixF,aAAarkE,MAC1DqkE,aAAc,MAGf/xF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAgC,KAAfoB,EAAGrJ,QAAiBqJ,EAAGrJ,QAAU,qBAhBnC,wBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SAtPUwE,EA2Q5B6wF,iBAAmB,SAAAp8D,GAClB,OAAOA,EAAMjX,OAAO,SAAAkX,GAAC,MAAe,UAAXA,EAAEhH,QA5QA1tB,EA+Q5B8yF,iBAAmB,SAAAr+D,GAClB,OAAOA,EAAMjX,OAAO,SAAAkX,GAAC,MAAe,UAAXA,EAAEhH,QAhRA1tB,EAmR5B6d,eAAiB,SAAApd,GAAK,IAEf0jF,EADqBnkF,EAAKvE,MAAxB69C,eACqB6qC,MACvBh4E,EAAI1L,EAAEgI,MAAMqF,cACd3B,EAAEnC,OAAS,GACdhK,EAAKU,SAAS,CACbkwF,cAAe5wF,EAAK+wF,sBAAsB/wF,EAAKgxF,oBAAoB7M,EAAO1jF,GAAIT,EAAKc,MAAMssB,gBAGvFjhB,EAAEnC,OAAS,GACdhK,EAAKU,SAAS,CAAEkwF,cAAe5wF,EAAK+wF,sBAAsB5M,EAAOnkF,EAAKc,MAAMssB,gBAE7EptB,EAAKU,SAAS,CAAEuwF,WAAY,CAAE7lF,MAAO3K,EAAE2K,MAAO3C,MAAOhI,EAAEgI,UA7RvDzI,EAAKc,MAAQ,CACZk1D,UAAW,GACXw7B,kBAAmB,GACnBngC,eAAgB,GAChBohC,cAAe,GACfD,sBAAuB,GACvBjB,mBAAoB,GACpBE,eAAgB,GAChB7pF,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBuqC,YAAY,EACZ6/C,kBAAkB,EAClBL,YAAa,GACbC,gBAAiB,GACjB3jE,kBAAkB,EAClB6jE,aAAc,GACdnB,cAAe,GACfsB,cAAe,GACfjB,WAAY,CAAE7lF,MAAO,WAAY3C,MAAO,IACxC2kB,aAAc,OAtBYptB,qFAmDNmkF,EAAO/2D,GAC5B,MAAwB,QAAjBA,EAAyB+2D,EAAyB,WAAjB/2D,EAA4B+2D,EAAM3mE,OAAO,SAAAu1E,GAAC,OAAIA,EAAE10E,WAAY8lE,EAAM3mE,OAAO,SAAAu1E,GAAC,OAAKA,EAAE10E,uDAGtG8lE,EAAO8M,GAC1B,OAAO9M,EAAM3mE,OAAO,SAAAu1E,GACnB,OAAOA,EAAE/Q,UAAUh4E,OAAS,IAA8E,IAA1E+oF,EAAE/Q,UAAU,GAAGl0E,cAActB,QAAQykF,EAAWxoF,MAAMqF,kDAyO/E,IAAA5M,EAAA1F,KAAAD,EACkDC,KAAKC,MAAvDC,EADAH,EACAG,QAAS0mF,EADT7mF,EACS6mF,qBAAsB9oC,EAD/B/9C,EAC+B+9C,eAD/BzwC,EAEwFrN,KAAKsF,MAA7F8wF,EAFA/oF,EAEA+oF,YAAaC,EAFbhpF,EAEagpF,gBAAiBE,EAF9BlpF,EAE8BkpF,aAAcd,EAF5CpoF,EAE4CooF,WAAYL,EAFxD/nF,EAEwD+nF,cAAexjE,EAFvEvkB,EAEuEukB,aAEzE+iE,EAAsB/uF,YAAe,CAAC/G,OACtC61F,EAAoB9uF,YAAe,CAAC9G,OACpC81F,EAAoBhvF,YAAe,CAAChH,QAAwC+1F,GAAuBD,EAEnG8C,EAAgBx+D,GAAmB8kB,EAAe7kB,OAGxD,OAFAu+D,EAAcC,QAAQ,CAAE7nF,MAAO,WAAY3C,MAAO,KAGjDsT,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAGCzyF,OAAO2T,KAAKwgF,GAAc/nF,OAAS,GACnC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMotB,iBAAkBvuB,QAASnE,KAAKuyB,gBACxDhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,8CACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,YAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU21F,EAAarkE,QAG9C3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU21F,EAAa/P,UAAU,MAGxDjmE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASuG,MAAO,aACpCoZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAASjgB,UAAWP,EAAQoe,OAD7B,wCAMHiC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKuyB,gBAAvD,UAGAhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASpH,KAAKwyB,iBAA9D,iBASHjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMsxC,WAAY3I,OAAQ,OAAQ9pC,QAASnE,KAAKunD,cAClEhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBAAsB61E,EAAtB,KACA91E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACo7D,GAAD,CACC3uD,MAAO8rB,GAAcq9D,EAAY5P,WACjC/lF,UAAWP,EAAQo8B,OACnBC,QAASvD,GAAmBh5B,KAAKs3F,iBAAiBx5C,EAAe7kB,QACjElpB,SAAU,SAAA9K,GAAC,OAAIS,EAAKwxF,iBAAiBjyF,IACrC2K,MAAO,OACPC,MAAqC,KAA9B7P,KAAKsF,MAAM2wF,eAClBnmF,WAAY9P,KAAKsF,MAAM2wF,kBAIzB11E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACo7D,GAAD,CACC3uD,MAAO,CAAE2C,MAAOwmF,EAAYvzE,SAAW,SAAW,WAAY5V,MAAOmpF,EAAYvzE,UACjFpiB,UAAWP,EAAQo8B,OACnBC,QAAS,CACR,CAAE3sB,MAAO,SAAU3C,OAAO,GAC1B,CAAE2C,MAAO,WAAY3C,OAAO,IAE7B8C,SAAU,SAAA9K,GAAC,OAAIS,EAAK0xF,mBAAmBnyF,IACvC2K,MAAO,YAIT2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACo7D,GAAD,CACC3uD,MAAO8rB,GAAcq9D,EAAYn9E,KACjCxY,UAAWP,EAAQo8B,OACnBC,QAASv8B,KAAKC,MAAM8xF,SAAS9E,MAAMxrF,IAAI,SAAAi2F,GAAI,MAAK,CAAE9nF,MAAO8nF,EAAKC,SAAU1qF,MAAOyqF,EAAKC,YACpF5nF,SAAU,SAAA9K,GAAC,OAAIS,EAAKyxF,gBAAgBlyF,IACpC2K,MAAO,SAIT2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,OACH2D,MAAM,OACN7G,OAAO,SACPnI,QAAQ,WACRiP,MAAoC,KAA7B7P,KAAKsF,MAAM2xF,cAClBnnF,WAAY9P,KAAKsF,MAAM2xF,cACvBlnF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,OAAQtvF,IACzCgI,MAAOmpF,EAAYlkE,KACnBliB,WAAS,KAGXuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,eACH2D,MAAM,gBACN7G,OAAO,SACP4G,KAAM,QACNE,MAA4C,KAArC7P,KAAKsF,MAAM0xF,sBAClBlnF,WAAY9P,KAAKsF,MAAM0xF,sBACvBjnF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,eAAgBtvF,IACjDgI,MAAOmpF,EAAY78E,aACnB3Y,QAAQ,WACRoP,WAAS,KAGXuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,kBACH2D,MAAM,gBACN7G,OAAO,SACP8G,MAAyC,KAAlC7P,KAAKsF,MAAMywF,mBAClBjmF,WAA8C,KAAlC9P,KAAKsF,MAAMywF,mBAA4B/1F,KAAKsF,MAAMywF,mBAAqB,6BACnFhmF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,YAAatvF,IAC9CgI,MAAOmpF,EAAY9hF,WAAa,GAChC1T,QAAQ,WACRoP,WAAS,KAGXuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,oBAAoB7G,OAAO,SAASnI,QAAQ,WACtE+O,KAAM,OACN1C,MAAOmpF,EAAY1P,iBAAmB0P,EAAY1P,gBAAgB31E,MAAM,KAAK,GAC7EhB,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,kBAAmBtvF,IACpD4oD,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,KAE5CuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,kBAAkB7G,OAAO,SAASnI,QAAQ,WACpE+O,KAAM,OACN1C,MAAOmpF,EAAYzP,eAAiByP,EAAYzP,cAAc51E,MAAM,KAAK,GACzEhB,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,gBAAiBtvF,IAClD4oD,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,MAG7CuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACo3F,GAAAr3F,EAAD,CACCq9C,QACCr9B,EAAAhgB,EAAAC,cAACq3F,GAAAt3F,EAAD,CACCuiB,QAASszE,EAAYxzE,UACrBzb,MAAM,UACN4I,SAAU,kBAAMrK,EAAK8wF,gBAAgBJ,IACrCnpF,MAAOmpF,EAAYxzE,YAGrBhT,MAAOwmF,EAAYxzE,UAAY,cAAgB,wBAKnDrC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKunD,cAAvD,UAGAhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKo0F,YAA5D,UAOF7zE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMmxF,iBAAkBtyF,QAASnE,KAAK82F,gBACxDv2E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,6CACsCD,EAAAhgB,EAAAC,cAAA,cAAS61F,GAD/C,KAGA91E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAK82F,gBAAvD,MAGAv2E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAK22F,cAA5D,SAMFp2E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACtByzF,GACAr0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACCe,MAAO,gBACPV,UAAW29C,EAAe4qC,mBAAqB5qC,EAAe8qC,qBAAuB9qC,EAAekrC,qBAEpGzoE,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc3uD,MAAOwoF,EAAYl5D,QAASi7D,EAAeznF,SAAU,SAAA9K,GAAC,OAAIS,EAAK2c,eAAepd,IAAI2K,MAAO,gBAEvG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAQ,MAApB,UACA2f,EAAAhgB,EAAAC,cAACs3F,GAAAv3F,EAAD,CACCiiB,KAAK,EACLrD,aAAW,SACX+S,KAAK,oBACLniB,SAAU,SAAA9K,GAAC,OAAIS,EAAK4vF,6BAA6BrwF,IACjDgI,MAAO2kB,GAEPrR,EAAAhgB,EAAAC,cAACo3F,GAAAr3F,EAAD,CAAkB0M,MAAM,MAAM2wC,QAASr9B,EAAAhgB,EAAAC,cAACu3F,GAAAx3F,EAAD,MAAWqP,MAAM,QACxD2Q,EAAAhgB,EAAAC,cAACo3F,GAAAr3F,EAAD,CAAkB0M,MAAM,SAAS2wC,QAASr9B,EAAAhgB,EAAAC,cAACu3F,GAAAx3F,EAAD,MAAWqP,MAAM,WAC3D2Q,EAAAhgB,EAAAC,cAACo3F,GAAAr3F,EAAD,CAAkB0M,MAAM,WAAW2wC,QAASr9B,EAAAhgB,EAAAC,cAACu3F,GAAAx3F,EAAD,MAAWqP,MAAM,cAc9D2Q,EAAAhgB,EAAAC,cAACspB,EAAD,CACCpI,OAAQszE,GACR9yE,a3H5iBkC,qB2H6iBlCP,KAAMyzE,EACN9xE,OAAQtjB,KAAKm2F,WACb3yE,SAAUxjB,KAAKs2F,aACfz0E,WAAY6yE,EACZ5yE,YAAa4yE,MAIfC,GACAp0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,qBAAsBV,UAAWymF,EAAqBH,iCAC3ElmE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,OACH2D,MAAM,OACN7G,OAAO,SACPnI,QAAQ,WACRiP,MAAgC,KAAzB7P,KAAKsF,MAAMk1D,UAClB1qD,WAAY9P,KAAKsF,MAAMk1D,UACvBzqD,SAAU,SAAA9K,GAAC,OAAIS,EAAKwwF,aAAa,OAAQjxF,IACzCgI,MAAO25E,EAAqB10D,KAC5BliB,WAAS,KAGXuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,eACH2D,MAAM,gBACN7G,OAAO,SACP8G,MAAwC,KAAjC7P,KAAKsF,MAAM0wF,kBAClBlmF,WAAY9P,KAAKsF,MAAM0wF,kBACvBjmF,SAAU,SAAA9K,GAAC,OAAIS,EAAKwwF,aAAa,eAAgBjxF,IACjDgI,MAAO25E,EAAqBrtE,aAC5B3Y,QAAQ,WACRoP,WAAS,KAGXuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,kBACH2D,MAAM,gBACN7G,OAAO,SACP8G,MAAqC,KAA9B7P,KAAKsF,MAAMuwD,eAClB/lD,WAA0C,KAA9B9P,KAAKsF,MAAMuwD,eAAwB71D,KAAKsF,MAAMuwD,eAAiB,qCAC3E9lD,SAAU,SAAA9K,GAAC,OAAIS,EAAKwwF,aAAa,YAAajxF,IAC9CgI,MAAO25E,EAAqBtyE,UAC5B1T,QAAQ,WACRoP,WAAS,MAKZuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACo7D,GAAD,CACC3uD,MAAO8rB,GAAc6tD,EAAqB3tE,KAC1CsjB,QAASv8B,KAAKC,MAAM8xF,SAAS9E,MAAMxrF,IAAI,SAAAi2F,GAAI,MAAK,CAAE9nF,MAAO8nF,EAAKC,SAAU1qF,MAAOyqF,EAAKC,YACpF5nF,SAAU,SAAA9K,GAAC,OAAIS,EAAKkwF,YAAY3wF,IAChC2K,MAAO,UAKV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACo7D,GAAD,CACC3uD,MAAO8rB,GAAc6tD,EAAqBJ,WAC1CjqD,QAASvD,GAAmBh5B,KAAKs3F,iBAAiBx5C,EAAe7kB,QACjElpB,SAAU,SAAA9K,GAAC,OAAIS,EAAKgwF,aAAazwF,IACjC2K,MAAO,OACPC,MAAqC,KAA9B7P,KAAKsF,MAAM2wF,eAClBnmF,WAAY9P,KAAKsF,MAAM2wF,mBAK1B11E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC7Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,oBAAoB7G,OAAO,SAASnI,QAAQ,WACtE+O,KAAM,OACNI,SAAU,SAAA9K,GAAC,OAAIS,EAAKwwF,aAAa,kBAAmBjxF,IACpDgI,MAAO25E,EAAqBF,gBAC5B74B,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,KAE5CuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,kBAAkB7G,OAAO,SAASnI,QAAQ,WACpE+O,KAAM,OACNI,SAAU,SAAA9K,GAAC,OAAIS,EAAKwwF,aAAa,gBAAiBjxF,IAClDgI,MAAO25E,EAAqBD,cAC5B94B,gBAAiB,CAACC,QAAQ,GAAO99C,WAAS,MAI7CuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,gBAWR/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAvnB1G/H,aAspBhBgM,eAnBS,SAAAhL,GAGvB,MAAO,CAAEshF,qBAFkDthF,EAAnDshF,qBAEuB9oC,eAF4Bx4C,EAA7Bw4C,eAEiBi0C,SAFYzsF,EAAbysF,WAKpB,SAAA1hF,GAC1B,MAAO,CACNslF,2BAA4B,SAAC7oF,EAAG6D,GAAJ,OAAUN,Ed/pBE,SAACvD,EAAG6D,GAAJ,MAAW,CACjDhB,KANmC,kCAOnC7C,IAAG6D,Kc6pB0CglF,CAA2B7oF,EAAG6D,KAC7EukF,SAAU,kBAAM7kF,Eb/mBM,eAAAwJ,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC1BuG,EAAS22E,MADiBn8E,EAAAf,KAAA,EAGToL,KAAMC,IAAIhS,GAAU,eAAgBoN,eAAwB6E,MAAM,SAAAnQ,GAC/E,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALf,YAGpBqJ,EAHoB7C,EAAAiD,QAUhBJ,EAAGD,KAAKM,QAVQ,CAAAlD,EAAAf,KAAA,eAWtBuG,EAAS42E,GAAiBv5E,IAXJ7C,EAAA0K,OAAA,SAYf,CAACxH,SAAS,EAAM1J,QAAS,KAZV,cActBgM,EAAS62E,MAdar8E,EAAA0K,OAAA,SAef,CAACxH,SAAS,EAAM1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfxB,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAN,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,KagnBtBkjF,uBAAwB,SAAAn0E,GAAM,OAAIrR,Ed5pBE,SAAAqR,GAAM,sBAAA7M,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA6hB,EAAA5d,EAAAiF,EAAAitE,EAAAvtE,EAAAytE,EAAAC,EAAAl5E,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC5CuG,EAASg2E,MAEFn0D,EAAiFxQ,EAAjFwQ,KAAM5d,EAA2EoN,EAA3EpN,UAAWiF,EAAgEmI,EAAhEnI,aAAcitE,EAAkD9kE,EAAlD8kE,UAAWvtE,EAAuCyI,EAAvCzI,IAAKytE,EAAkChlE,EAAlCglE,gBAAiBC,EAAiBjlE,EAAjBilE,cACjEl5E,EAAO,CAACykB,OAAM5d,YAAWiF,eAAcitE,YAAWvtE,MAAKytE,kBAAiBC,iBAJlC/8E,EAAAE,KAAA,EAM3BoL,KAAMM,KAAKrS,GAAU,kBAAmBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACzF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aARG,YAMtCqJ,EANsC9D,EAAAkE,MAarCL,KAAKM,QAbgC,CAAAnE,EAAAE,KAAA,gBAcxCuG,EAASi2E,MAd+B18E,EAAA2L,OAAA,SAejC,CAACxH,SAAS,EAAM1J,QAAS,KAfQ,WAiBxCgM,EAASk2E,OACN74E,EAAGD,KAAKoC,MAlB6B,CAAAjG,EAAAE,KAAA,aAmBjC4D,EAAGD,KAAKoC,MAAMxL,QAnBmB,CAAAuF,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAmBH,CAACxH,SAAQ,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBpC,eAAAuF,EAAA2L,OAAA,SAqBjC,CAACxH,SAAS,EAAO1J,QAAS,uBArBO,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,Gc4pBCkjF,CAAuBn0E,KAClEyzE,SAAU,kBAAM9kF,EbhjBM,eAAAmK,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC1BuG,EAASi3E,MADiB5sE,EAAA5Q,KAAA,EAGToL,KAAMC,IAAIhS,GAAU,kBAAmBoN,eAAwB6E,MAAM,SAAAnQ,GAClF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALf,YAGpBqJ,EAHoBgN,EAAA5M,QAUhBJ,EAAGD,KAAKM,QAVQ,CAAA2M,EAAA5Q,KAAA,eAWtBuG,EAASk3E,GAAiB75E,IAXJgN,EAAAnF,OAAA,SAYf,CAACxH,SAAS,EAAM1J,QAAS,KAZV,cActBgM,EAASm3E,MAda9sE,EAAAnF,OAAA,SAef,CAACxH,SAAS,EAAO1J,QAAS,yBAfX,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAN,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,KaijBtB0kF,WAAY,SAAAprF,GAAE,OAAIoE,EbjhBM,SAAApE,GAAE,sBAAA8O,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAuR,EAAM3K,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cAC5BuG,EAASo3E,MADmBxsE,EAAAnR,KAAA,EAGXoL,KAAM+yC,OAAO9kD,GAAU,sBAAwB8I,EAAIsE,eAAwB6E,MAAM,SAAAnQ,GAC9F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALb,YAGtBqJ,EAHsBuN,EAAAnN,QAUlBJ,EAAGD,KAAKM,QAVU,CAAAkN,EAAAnR,KAAA,eAWxBuG,EAASq3E,GAAmBh6E,IAXJuN,EAAA1F,OAAA,SAYjB,CAACxH,SAAS,EAAM1J,QAAS,KAZR,cAcxBgM,EAASs3E,MAde1sE,EAAA1F,OAAA,SAejB,CAACxH,SAAS,EAAO1J,QAAS,KAfT,yBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SAAJ,gBAAAqb,GAAA,OAAAN,EAAAlF,MAAA7V,KAAA2S,YAAA,GaihBC0kF,CAAWprF,KACtC8qF,WAAY,SAAAp2B,GAAI,OAAItwD,EblfI,SAAAswD,GAAI,sBAAAplD,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAA+R,EAAMnL,GAAN,IAAApE,EAAAimB,EAAA5d,EAAAiF,EAAAitE,EAAAvtE,EAAA4J,EAAA6jE,EAAAC,EAAAl5E,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAC9BuG,EAASu3E,MAEF37E,EAA+F00D,EAA/F10D,GAAIimB,EAA2FyuC,EAA3FzuC,KAAM5d,EAAqFqsD,EAArFrsD,UAAWiF,EAA0EonD,EAA1EpnD,aAAcitE,EAA4D7lB,EAA5D6lB,UAAWvtE,EAAiD0nD,EAAjD1nD,IAAK4J,EAA4C89C,EAA5C99C,SAAU6jE,EAAkC/lB,EAAlC+lB,gBAAiBC,EAAiBhmB,EAAjBgmB,cAC/El5E,EAAO,CAACxB,KAAIimB,OAAM5d,YAAWiF,eAAcitE,YAAWvtE,MAAK4J,WAAU6jE,kBAAiBC,iBAJ9DjrE,EAAA5R,KAAA,EAMboL,KAAM4/E,IAAI3xF,GAAU,kBAAmBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACxF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aARX,YAMxBqJ,EANwBgO,EAAA5N,QAapBJ,EAAGD,KAAKM,QAbY,CAAA2N,EAAA5R,KAAA,gBAc1BuG,EAASw3E,GAAmBn6E,IAdFgO,EAAAnG,OAAA,SAenB,CAACxH,SAAS,EAAM1J,QAAS,KAfN,eAiB1BgM,EAASy3E,MAjBiBpsE,EAAAnG,OAAA,SAkBnB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAlBrB,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAJ,gBAAA2b,GAAA,OAAAJ,EAAA1F,MAAA7V,KAAA2S,YAAA,GakfCokF,CAAWp2B,KACxCk2B,WAAY,SAAAl2B,GAAI,OAAItwD,EbhdI,SAAAswD,GAAI,sBAAA9kD,EAAAzZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAqS,EAAMzL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAC9BuG,EAAS03E,MADqB/rE,EAAAlS,KAAA,EAGboL,KAAMM,KAAKrS,GAAU,0BAA2Bw9D,EAAMpwD,eAAwB6E,MAAM,SAAAnQ,GACjG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALX,YAGxBqJ,EAHwBsO,EAAAlO,QAUpBJ,EAAGD,KAAKM,QAVY,CAAAiO,EAAAlS,KAAA,eAW1BuG,EAAS23E,GAAmBt6E,IAXFsO,EAAAzG,OAAA,SAYnB,CAACxH,SAAS,EAAM1J,QAAS,KAZN,cAc1BgM,EAAS43E,MAdiBjsE,EAAAzG,OAAA,SAenB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfrB,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SAAJ,gBAAAoc,GAAA,OAAAP,EAAAhG,MAAA7V,KAAA2S,YAAA,GagdCkkF,CAAWl2B,KACxCksB,WAAY,kBAAMx8E,EAASw8E,SAIdv8E,CAA6CpO,qBAzB7C,SAAAC,GAAK,MAAK,CACxBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBmd,KAAM,CAAElW,QAAS,eAAgBwqB,cAAe,UAChD0J,OAAQ,CAAE9D,UAAW,SAsBsCt2B,CAAmB+yF,KCpYhE+C,oLA9SF,IAAAxzF,EAAAxE,KAwCL,OACIugB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,eAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAxBG,CACf,CAAC3e,IAAK,oBAAqB+N,MAAO,UAClC,CAAC/N,IAAK,oBAAqB+N,MAAO,WAuBNnO,IAAI,SAAAE,GACZ,OAAO4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACHo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAASte,EAAKvE,MAAMwN,KAAK9L,EAAEE,KAC3BkO,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAASt2F,EAAEE,MACtCsF,MAAM,YAEVyI,MAAOjO,EAAEiO,aAO7B2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAGAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,UAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAtDF,CACV,CAAC3e,IAAK,iBAAkB+N,MAAO,YAC/B,CAAC/N,IAAK,gBAAiB+N,MAAO,WAC9B,CAAC/N,IAAK,eAAgB+N,MAAO,UAC7B,CAAC/N,IAAK,aAAc+N,MAAO,SAmDJnO,IAAI,SAAAy2F,GACP,OAAO33E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACHo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAASte,EAAKvE,MAAMwN,KAAKyqF,EAAEr2F,KAC3BkO,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAASC,EAAEr2F,MACtCsF,MAAM,YAEVyI,MAAOsoF,EAAEtoF,aAO7B2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,WAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAzDD,CACX,CAAC3e,IAAK,eAAgB+N,MAAO,SAC7B,CAAC/N,IAAK,mBAAoB+N,MAAO,cAwDTnO,IAAI,SAAAE,GACR,OAAO4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACHo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAASte,EAAKvE,MAAMwN,KAAK9L,EAAEE,KAC3BkO,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAASt2F,EAAEE,MACtCsF,MAAM,YAEVyI,MAAOjO,EAAEiO,aAO7B2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,uBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,qBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,sBACpC9wF,MAAM,YAEVyI,MAAO,YAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,oBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,qBACpC9wF,MAAM,YAEVyI,MAAO,WAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,oBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,qBACpC9wF,MAAM,YAEVyI,MAAO,mDAMvB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,WAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAzHD,CACX,CAAC3e,IAAK,gBAAiB+N,MAAO,UAC9B,CAAC/N,IAAK,kBAAmB+N,MAAO,YAChC,CAAC/N,IAAK,uBAAwB+N,MAAO,kBAuHbnO,IAAI,SAAAE,GACR,OAAO4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACHo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAASte,EAAKvE,MAAMwN,KAAK9L,EAAEE,KAC3BkO,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAASt2F,EAAEE,MACtCsF,MAAM,YAEVyI,MAAOjO,EAAEiO,aAO7B2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,yBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,0BACpC9wF,MAAM,YAEVyI,MAAO,YAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,0BACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,2BACpC9wF,MAAM,YAEVyI,MAAO,aAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,wBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,yBACpC9wF,MAAM,YAEVyI,MAAO,WAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,wBACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,yBACpC9wF,MAAM,YAEVyI,MAAO,mDAMvB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,sBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,kCACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,mCACpC9wF,MAAM,YAEVyI,MAAO,kBAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,8BACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,+BACpC9wF,MAAM,YAEVyI,MAAO,cAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,gCACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,iCACpC9wF,MAAM,YAEVyI,MAAO,uCAEX2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK,qCACzBsC,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,sCACpC9wF,MAAM,YAEVyI,MAAO,wBAMvB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,eAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAlQT,CACd,CAACvgB,IAAK,0BAA2B+N,MAAO,iBACxC,CAAC/N,IAAK,4BAA6B+N,MAAO,mBAC1C,CAAC/N,IAAK,0BAA2B+N,MAAO,iBACxC,CAAC/N,IAAK,yBAA0B+N,MAAO,gBACvC,CAAC/N,IAAK,2BAA4B+N,MAAO,kBACzC,CAAC/N,IAAK,yBAA0B+N,MAAO,gBACvC,CAAC/N,IAAK,sBAAuB+N,MAAO,aACpC,CAAC/N,IAAK,wBAAyB+N,MAAO,eACtC,CAAC/N,IAAK,sBAAuB+N,MAAO,aACpC,CAAC/N,IAAK,wBAAyB+N,MAAO,eACtC,CAAC/N,IAAK,0BAA2B+N,MAAO,iBACxC,CAAC/N,IAAK,wBAAyB+N,MAAO,gBAuPfnO,IAAI,SAAA1D,GACX,OAAOwiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACHD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAASte,EAAKvE,MAAMwN,KAAK1P,EAAE8D,KAC3BkO,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAASl6F,EAAE8D,MACtCsF,MAAM,YAEVyI,MAAO7R,EAAE6R,aAO7B2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAEAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACrCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,YAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACLsC,QAAS9iB,KAAKC,MAAMwN,KAAK0qF,OACzBpoF,SAAU,kBAAMvL,EAAKvE,MAAMg4F,SAAS,WACpC9wF,MAAM,YAEVyI,MAAO,qCAMvB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,cAzS2Blc,aCqCvCnB,GADWN,eACQM,QAEjBi1F,GAAqB,CACvB,CAACv2F,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,cAAe+N,MAAO,cAG1ByoF,eACF,SAAAA,EAAYp4F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAq4F,IACxB7zF,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAi2F,GAAAzzF,KAAA5E,KAAMC,EAAOiJ,KAcjBI,kBAf4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAeR,SAAAC,IAAA,IAAAqJ,EAAAjG,EAAA,OAAAmgB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,yCACAa,EAAKvE,MAAMq4F,cAFK1uF,EAAAE,KAAA,EAGCtF,EAAKvE,MAAMs4F,iBAHZ,OAIhB,GAJgB3uF,EAAAkE,KAITC,QAAS,CAEZ,IAASjB,KADHiG,EAAc,GACNvO,EAAKvE,MAAM69C,eAAe/qC,YACpCA,EAAYjG,IAAK,EAErBtI,EAAKvE,MAAMu4F,4BAA4B,cAAvCp2F,OAAA+d,EAAA,EAAA/d,CAAA,GAA0D2Q,IAT9C,wBAAAnJ,EAAAc,SAAAhB,EAAA1J,SAfQwE,EA4B5Bi0F,oBAAsB,SAAA3rF,GAClBtI,EAAKvE,MAAMy4F,mCAAmC5rF,GAAItI,EAAKvE,MAAM4xF,sBAAsB9+E,YAAYjG,KA7BvEtI,EAgC5Bm0F,aAhC4B,eAAA9+E,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgCb,SAAAmB,EAAM4X,GAAN,IAAA/U,EAAAC,EAAAkrF,EAAA7lF,EAAAjG,EAAA,OAAAmgB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACXtF,EAAKU,SAAS,CAAC2zF,yBAAyB,IAGlCprF,EAJKrL,OAAA+d,EAAA,EAAA/d,CAAA,CAIGiX,OAAQ,CAACy/E,GAAIt2E,EAAIvW,KAAQsE,eAJ5B1F,EAAAf,KAAA,EAKMoL,KAAMC,IAAIhS,GAAU,uBAAwBsK,GAAM2H,MAAM,SAAAnQ,GACrE,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAP9B,OAeX,IAVMqJ,EALK7C,EAAAiD,MAYHL,MACJjJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,wBAE9EoB,EAAGD,KAAKM,QAAS,CAIjB,IAASjB,KAHF8rF,EAA0BlrF,EAAGD,KAAKoL,OAAlC+/E,uBAED7lF,EAAc,GACNvO,EAAKvE,MAAM69C,eAAe/qC,YACpCA,EAAYjG,KAAO8rF,EAAuBplF,SAAS1G,GAGvDtI,EAAKU,SAAS,CAAC0xC,YAAY,EAAMtH,QAAQltC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKogB,EAAN,CAAWzP,gBAAc8lF,yBAAyB,SAE1Fr0F,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGD,KAAKoC,MAAMxL,UAzBrF,wBAAAwG,EAAAH,SAAAE,EAAA5K,SAhCa,gBAAAyV,GAAA,OAAAoE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EA6D5Bu0F,eAAiB,SAAAv2E,GACbhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMsmE,aAAcx2E,KA9D7Bhe,EAiE5B+iD,aAAe,WACX/iD,EAAKU,SAAS,CAAC0xC,YAAY,EAAOtH,QAAS,MAlEnB9qC,EAqE5B4vF,WArE4BhyF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqEf,SAAAyQ,IAAA,IAAAxM,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAqQ,EAAArQ,KAAA,EACQtF,EAAKvE,MAAMg5F,WAAWz0F,EAAKc,MAAMgqC,SADzC,OACH5hC,EADGyM,EAAArM,KAETtJ,EAAKU,SAAS,CAAC0xC,YAAY,EAAOtH,QAAS,KACvC5hC,EAAGK,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,eACjBsqC,YAAY,EACZtH,QAAS,KAEb9qC,EAAKvE,MAAMq4F,eAEX9zF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBuyC,YAAY,EACZtH,QAAS,KAlBR,wBAAAn1B,EAAAzP,SAAAwP,EAAAla,SArEewE,EA4F5B88D,SA5F4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4FjB,SAAAgR,IAAA,IAAA/M,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,WACHtF,EAAKmJ,YADF,CAAA+M,EAAA5Q,KAAA,eAAA4Q,EAAA5Q,KAAA,EAEctF,EAAKvE,MAAMi5F,WAAW10F,EAAKvE,MAAM4xF,uBAF/C,QAEGnkF,EAFHgN,EAAA5M,MAGIC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,iBAChF9H,EAAKvE,MAAMq4F,eAEX9zF,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAPlF,wBAAAqW,EAAAhQ,SAAA+P,EAAAza,SA5FiBwE,EAgH5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAjHL5H,EAoH5ByzF,SAAW,SAACnrF,GACRtI,EAAKU,SAAS,CACVoqC,QAAQltC,OAAA+d,EAAA,EAAA/d,CAAA,GACDoC,EAAKc,MAAMgqC,QADX,CAEHv8B,YAAY3Q,OAAA+d,EAAA,EAAA/d,CAAA,GAAKoC,EAAKc,MAAMgqC,QAAQv8B,YAAzB3Q,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAuC0K,GAAKtI,EAAKc,MAAMgqC,QAAQv8B,YAAYjG,UAxHtEtI,EA6H5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,EAAOsmE,aAAc,MA9H9Bx0F,EAiI5BguB,gBAjI4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiIV,SAAAuR,IAAA,IAAAtN,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cAAAmR,EAAAnR,KAAA,EACGtF,EAAKvE,MAAMk5F,WAAW30F,EAAKc,MAAM0zF,aAAa/sF,IADjD,QACRyB,EADQuN,EAAAnN,MAGPC,SACHvJ,EAAKvE,MAAMq4F,cACX9zF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,eACjBomB,kBAAkB,KAGtBluB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,IAhBZ,wBAAAzX,EAAAvQ,SAAAsQ,EAAAhb,SAjIUwE,EAsJ5B8yF,iBAAmB,SAAAr+D,GACf,OAAOA,EAAMjX,OAAO,SAAAkX,GAAC,MAAe,UAAXA,EAAEhH,QArJ3B1tB,EAAKc,MAAQ,CACTsxC,YAAY,EACZwiD,mBAAoB,GACpBhtF,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBijC,QAAS,GACT0pD,aAAc,GACdtmE,kBAAkB,EAClBmmE,yBAAyB,GAXLr0F,2EAyGxB,MAAuD,KAAnDxE,KAAKC,MAAM4xF,sBAAsB9L,gBACjC/lF,KAAKkF,SAAS,CAACk0F,mBAAoB,4BAC5B,oCA+CN,IAAA1zF,EAAA1F,KAAAD,EACoDC,KAAKC,MAAvDC,EADFH,EACEG,QAAS2xF,EADX9xF,EACW8xF,sBAAuB/zC,EADlC/9C,EACkC+9C,eAChCk7C,EAAgBh5F,KAAKsF,MAArB0zF,aACDK,EAAoBj3F,OAAO2T,KAAK87E,EAAsB9+E,aAAavE,OAAS,EAE5EmmF,EAAsB/uF,YAAe,CAAC5G,OACtC01F,EAAoB9uF,YAAe,CAAC3G,OACpC21F,EAAoBhvF,YAAe,CAAC7G,QAAqC21F,GAAqBC,EAEpG,OACIp0E,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAGCzyF,OAAO2T,KAAKijF,GAAcxqF,OAAS,GACpC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMotB,iBAAkBvuB,QAASnE,KAAKuyB,gBACrDhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,8CACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,YAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUo4F,EAAa9mE,QAGpD3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASuG,MAAO,aACjCoZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAASjgB,UAAWP,EAAQoe,OADhC,wCAMZiC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKuyB,gBAAvD,UACAhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASpH,KAAKwyB,iBAA9D,iBAMRjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMsxC,WAAY3I,OAAQ,OAAQ9pC,QAASnE,KAAKunD,cAC/DhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBAAsBxgB,KAAKsF,MAAMgqC,QAAQpd,MACxC9vB,OAAO2T,KAAK/V,KAAKsF,MAAMgqC,SAAS9gC,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAC3CD,EAAAhgB,EAAAC,cAAC84F,GAAD,CACI7rF,KAAMzN,KAAKsF,MAAMgqC,QAAQv8B,YACzBklF,SAAUj4F,KAAKi4F,WAElBpG,EAAsB5L,qBAAuB1lE,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,MAAM,KAE1Eue,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKunD,cAAvD,UACAhnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKo0F,YAA5D,UAIR7zE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACnByzF,GAAqBr0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAC1D8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,aAAcV,UAAW29C,EAAemrC,sBACzDnrC,EAAe7kB,MAAMzqB,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACspB,EAAD,CAChCpI,OAAQ02E,GACRz2E,KAAM3hB,KAAKs3F,iBAAiBx5C,EAAe7kB,OAC3CnX,YAAa4yE,EACb7yE,WAAY6yE,EACZpxE,OAAQtjB,KAAK24F,aACbn1E,SAAUxjB,KAAK+4F,mBAK1BpE,GAAuBp0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC9B2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,sBAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,WAAW2D,MAAM,mBAAmB7G,OAAO,SACrD+G,WAAY9P,KAAKsF,MAAM8zF,mBACvBvpF,MAAyC,KAAlC7P,KAAKsF,MAAM8zF,mBAClBx4F,QAAQ,WACR+5B,YAAa,YAAa3qB,WAAS,EACnC/C,MAAO4kF,EAAsB9L,cAC7Bh2E,SAAU,SAAA9K,GAAC,OAAIS,EAAKzF,MAAMu4F,4BAA4B,gBAAiBvzF,EAAE+H,OAAOC,WAGvFosF,GACD94E,EAAAhgB,EAAAC,cAAC84F,GAAD,CACI7rF,KAAMokF,EAAsB9+E,YAC5BklF,SAAUj4F,KAAKy4F,sBAEnBl4E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKshE,UADlB,gBAQxB/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAlQ7C/H,aA8RjBgM,eAlBS,SAAAhL,GAGpB,MAAO,CAACusF,sBAFwCvsF,EAAzCusF,sBAEwB/zC,eAFiBx4C,EAAlBw4C,iBAKP,SAAAztC,GACvB,MAAO,CACHmoF,4BAA6B,SAAC1rF,EAAG6D,GAAJ,OAAUN,EjBlOJ,SAACvD,EAAG6D,GAAJ,MAAW,CAClDhB,KA5FoC,kCA6FpC7C,IAAG6D,KiBgOiD6nF,CAA4B1rF,EAAG6D,KAC/E4nF,eAAgB,kBAAMloF,EfrOA,eAAA4J,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAChCuG,EAAS82E,MADuBhtE,EAAArQ,KAAA,EAGfoL,KAAMC,IAAIhS,GAAU,cAAeoN,eAAwB6E,MAAM,SAAAnQ,GAC9E,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALT,YAG1BqJ,EAH0ByM,EAAArM,MAUzBL,KAAKM,QAVoB,CAAAoM,EAAArQ,KAAA,eAW5BuG,EAAS+2E,GAAuB15E,IAXJyM,EAAA5E,OAAA,SAYrB,CAACxH,SAAS,EAAM1J,QAAS,KAZJ,cAc5BgM,EAASg3E,MAdmBltE,EAAA5E,OAAA,SAerB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfnB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAN,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,KesOtB2lF,YAAa,kBAAMjoF,EfvSA,eAAAwE,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC7BuG,EAASw2E,MADoBj9E,EAAAE,KAAA,EAGZoL,KAAMC,IAAIhS,GAAU,eAAgBoN,eAAwB6E,MAAM,SAAAnQ,GAC/E,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALZ,YAGvBqJ,EAHuB9D,EAAAkE,QAUnBJ,EAAGD,KAAKM,QAVW,CAAAnE,EAAAE,KAAA,eAWzBuG,EAASy2E,GAAoBp5E,IAXJ9D,EAAA2L,OAAA,SAYlB,CAACxH,SAAS,EAAM1J,QAAS,KAZP,cAczBgM,EAAS02E,MAdgBn9E,EAAA2L,OAAA,SAelB,CAACxH,SAAS,EAAM1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfrB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAN,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,KewSnBsmF,WAAY,SAAAv3E,GAAM,OAAIrR,EjB1QJ,SAAAqR,GAAM,sBAAA7H,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA0C,EAAAjG,EAAAW,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAIhC,IAASgD,KAHTuD,EAASo1E,MAEH1yE,EAAc,GACN2O,EAAO3O,aACa,IAA1B2O,EAAO3O,YAAYjG,IAAaiG,EAAY3E,KAAKtB,GALzB,OAO1BW,EAP0BrL,OAAA+d,EAAA,EAAA/d,CAAA,GAOfsf,EAPe,CAOP3O,gBAPOlI,EAAAf,KAAA,EAQfoL,KAAM4/E,IAAI3xF,GAAU,eAAgBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACrF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAVT,YAQ1BqJ,EAR0B7C,EAAAiD,MAezBL,KAAKM,QAfoB,CAAAlD,EAAAf,KAAA,gBAgB5BuG,EAASq1E,GAAmBh4E,IAhBA7C,EAAA0K,OAAA,SAiBrB,CAACxH,SAAS,EAAM1J,QAAS,KAjBJ,eAmB5BgM,EAASs1E,MAnBmB96E,EAAA0K,OAAA,SAoBrB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UApBnB,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GiB0QOsmF,CAAWv3E,KAC1Cg3E,mCAAoC,SAAC5rF,EAAG6D,GAAJ,OAAUN,EjBjOJ,SAACvD,EAAG6D,GAAJ,MAAW,CACzDhB,KAhG0C,wCAiG1C7C,IAAG6D,KiB+NwD+nF,CAAmC5rF,EAAG6D,KAC7FuoF,WAAY,SAAAx3E,GAAM,OAAIrR,EjBjTJ,SAAAqR,GAAM,sBAAA7M,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAO2G,GAAP,IAAA0C,EAAAjG,EAAAW,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIhC,IAASgD,KAHTuD,EAASi1E,MAEHvyE,EAAc,GACN2O,EAAO3O,aACa,IAA1B2O,EAAO3O,YAAYjG,IAAaiG,EAAY3E,KAAKtB,GALzB,OAQ1BW,EAAO,CAACykB,KAAMxQ,EAAOqkE,cAAe5sD,YAAazX,EAAOqkE,cAAehzE,eAR7CnJ,EAAAE,KAAA,EASfoL,KAAMM,KAAKrS,GAAU,QAASsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC/E,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAXT,YAS1BqJ,EAT0B9D,EAAAkE,MAgBzBL,KAAKM,QAhBoB,CAAAnE,EAAAE,KAAA,gBAiB5BuG,EAASk1E,GAAmB73E,IAjBA9D,EAAA2L,OAAA,SAkBrB,CAACxH,SAAS,EAAM1J,QAAS,KAlBJ,eAoB5BgM,EAASm1E,MApBmB57E,EAAA2L,OAAA,SAqBrB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArBnB,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GiBiTOumF,CAAWx3E,KAC1Cy3E,WAAY,SAAAL,GAAE,OAAIzoF,EjB9NA,SAAAyoF,GAAE,sBAAA7+E,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAC5BuG,EAASu1E,MADmBzrE,EAAArQ,KAAA,EAGXoL,KAAM+yC,OAAO9kD,GAAU,mBAAqB21F,EAAIvoF,eAAwB6E,MAAM,SAAAnQ,GAC3F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALb,YAGtBqJ,EAHsByM,EAAArM,MAUrBL,KAAKM,QAVgB,CAAAoM,EAAArQ,KAAA,eAWxBuG,EAASw1E,GAAmBn4E,IAXJyM,EAAA5E,OAAA,SAYjB,CAACxH,SAAS,EAAM1J,QAAS,KAZR,cAcxBgM,EAASy1E,MAde3rE,EAAA5E,OAAA,SAejB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfvB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GiB8NOwmF,CAAWL,OAI/BxoF,CAA6CpO,qBAtB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAqBmCe,CAAmBm2F,KClUzEkB,GAAsB,CACxB,CAAC13F,IAAK,KAAM+N,MAAO,OACnB,CAAC/N,IAAK,eAAgB+N,MAAO,iBAC7B,CAAC/N,IAAK,gBAAiB+N,MAAO,kBAC9B,CAAC/N,IAAK,SAAU+N,MAAO,WAGrB4pF,GAAO,CACT,CAACvtF,GAAI,EAAGwtF,aAAc,UAAWC,cAAe,MAAOC,OAAQ,QAG7DC,8MAMFt4B,SAAW,gGAHPxyD,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,oEAOK,IACEzD,EAAWF,KAAKC,MAAhBC,QAEP,OACIqgB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,KACIygB,EAAAhgB,EAAAC,cAACspB,EAAD,CAAapI,OAAQ63E,GAAqB53E,KAAM63E,OAKxDj5E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,gDAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc7rD,SAAU/P,KAAK65F,eAAgBjqF,MAAO,WAExD2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,eAAe2D,MAAM,gBAAgB7G,OAAO,SACtDnI,QAAQ,WACRoP,WAAS,KAEjBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc7rD,SAAU/P,KAAK65F,eAAgBjqF,MAAO,oBAExD2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKshE,UADlB,wBA5Cbh9D,aA6DZgM,eAAQ,KAAM,KAAdA,CAAoBpO,qBAJpB,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAGUe,CAAmB03F,KCzEhDE,GAAqB,CACvB,CAACj4F,IAAK,KAAM+N,MAAO,OACnB,CAAC/N,IAAK,eAAgB+N,MAAO,wBAG3B4pF,GAAO,CACT,CAACvtF,GAAI,EAAG8tF,aAAc,8BACtB,CAAC9tF,GAAI,EAAG8tF,aAAc,+BAGpBC,8MAMFC,SAAW,gGAHPnrF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,qEAOK,IACEzD,EAAWF,KAAKC,MAAhBC,QAEP,OACIqgB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,kBAClB0f,EAAAhgB,EAAAC,cAACspB,EAAD,CACIpI,OAAQo4E,GACRn4E,KAAM63E,GACN53E,YAAU,EACVC,YAAU,EACVC,aAAW,IAEfvB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKi6F,UAA5D,qBA9BA31F,aA4CbgM,eAAQ,KAAM,KAAdA,CAAoBpO,qBAJpB,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAGUe,CAAmB83F,KC5ChDE,GAAsB,CACxB,CAACr4F,IAAK,MAAO+N,MAAO,UACpB,CAAC/N,IAAK,OAAQ+N,MAAO,eACrB,CAAC/N,IAAK,eAAgB+N,MAAO,UAG3BuqF,eACF,SAAAA,EAAYl6F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAm6F,IACxB31F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+3F,GAAAv1F,KAAA5E,KAAMC,EAAOiJ,KAWjBI,kBAZ4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAYR,SAAAC,IAAA,IAAAgE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACCtF,EAAKvE,MAAMonE,eADZ,QACV35D,EADU9D,EAAAkE,MAERC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAFlF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SAZQwE,EAqC5B41F,cAAgB,SAACzxB,EAAQ1jE,GACrBT,EAAKvE,MAAMo6F,0BAA0B1xB,EAAO18D,GAAI,eAAgBhH,EAAE+H,OAAOC,QAtCjDzI,EAyC5Bgf,SAAW,SAAA82E,GACP91F,EAAKU,SAAS,CAACo1F,iBAAgB5nE,kBAAkB,KA1CzBluB,EA6C5BguB,gBA7C4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6CV,SAAAmB,IAAA,IAAA6C,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACR2D,EAAO,CAAC8sF,WAAY,CAACn4F,OAAA+d,EAAA,EAAA/d,CAAA,GAAIoC,EAAKc,MAAMg1F,kBAD5BzvF,EAAAf,KAAA,EAEGtF,EAAKvE,MAAMu6F,WAAW/sF,GAFzB,QAERC,EAFQ7C,EAAAiD,MAGPC,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,kBAAAyC,OAAoBvK,EAAKc,MAAMg1F,eAAepoE,MAC7DQ,kBAAkB,IAGtBluB,EAAKvE,MAAMonE,gBAEX7iE,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,IAjBZ,wBAAA7nB,EAAAH,SAAAE,EAAA5K,SA7CUwE,EAmE5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,KApETluB,EAuE5Bi2F,aAAe,SAAC9xB,EAAQ1jE,GACpBT,EAAKvE,MAAMo6F,0BAA0B1xB,EAAO18D,GAAI,OAAQhH,EAAE+H,OAAOC,QAxEzCzI,EA2E5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KA1E7B5H,EAAKc,MAAQ,CACT2lE,cAAe,GACfqvB,eAAgB,GAChB5nE,kBAAkB,EAClBtmB,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WARG7H,kFAiBTitB,EAAWC,GAAW,IAAAy5C,EACkBnrE,KAAKC,MAArDmrE,WAAalD,EADiBiD,EACjBjD,sBAAuBC,EADNgD,EACMhD,QAC3C,IAAmD,IAA/C12C,EAAU25C,WAAWlD,wBAA4D,IAA1BA,EAAiC,KACpEC,EAAYnoE,KAAKC,MAA9BmrE,WAAajD,QACpB,GAAIA,EAAQ35D,OAAS,GAAK25D,EAAQ,GAAGC,IAAK,CACtC,IAAM6C,EAAgB9C,EAAQnmD,OAAO,SAAAtgB,GAAC,OAAKA,EAAEyjB,YAC7C8lD,EAAc1iD,KAAK,SAAC8iD,EAAIC,GAAL,OAAYD,EAAG/C,aAAegD,EAAGhD,eACpDtoE,KAAKkF,SAAS,CAAC+lE,mBAIvB,GAAIx5C,EAAU25C,WAAWjD,UAAYA,GAC7BA,EAAQ35D,OAAS,GAAK25D,EAAQ,GAAGC,IAAK,CACtC,IAAM6C,EAAgB9C,EAAQnmD,OAAO,SAAAtgB,GAAC,OAAKA,EAAEyjB,YAC7C8lD,EAAc1iD,KAAK,SAAC8iD,EAAIC,GAAL,OAAYD,EAAG/C,aAAegD,EAAGhD,eACpDtoE,KAAKkF,SAAS,CAAC+lE,oDA+ClB,IAAAvlE,EAAA1F,KACEE,EAAWF,KAAKC,MAAhBC,QADFmN,EAEmCrN,KAAKsF,MAAtC2lE,EAFF59D,EAEE49D,cAAeqvB,EAFjBjtF,EAEiBitF,eAEhB5F,EAAoB9uF,YAAe,CAACxG,OAE1C,OACImhB,EAAAhgB,EAAAC,cAAA,WAEK4B,OAAO2T,KAAKukF,GAAgB9rF,OAAS,GACtC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMlE,KAAKsF,MAAMotB,iBAAkBvuB,QAASnE,KAAKuyB,gBACrDhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gDACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU05F,EAAepoE,QAGtD3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACT,WAAS,EAACC,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,aAIR2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QAASuG,MAAO,aACjCoZ,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CAASjgB,UAAWP,EAAQoe,OADhC,wCAMZiC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,OAAOwG,QAASpH,KAAKuyB,gBAAvD,UACAhS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASpH,KAAKwyB,iBAA9D,iBAMRjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACtBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK05E,GAAoBz4F,IAAI,SAAA4Q,GACrB,OAAOkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKwQ,EAAExQ,KAAMwQ,EAAEzC,SAEpC8kF,GAAqBn0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,iBAI9BD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKyqD,EAAcz8D,OAAS,GAAKy8D,EAAcxpE,IAAI,SAACC,EAAG+gB,GAC/C,OAAOlC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAKH,EAAEuK,GAAIyuF,WAAS,GAChCR,GAAoBz4F,IAAI,SAAA4Q,GACrB,OAAOkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKH,EAAEuK,GAAKoG,EAAExQ,KACjB,QAAVwQ,EAAExQ,KAAiB0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU6hB,EAAO,GAE/C,QAAVpQ,EAAExQ,KAAiB0e,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKrhB,EAAE2qE,aAAcppD,IAAK,GAC/CxiB,UAAWP,EAAQ8iB,QAEZ,SAAV3Q,EAAExQ,KAAkB0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG3C,MAAOvL,EAAEwwB,MAAQ,GAC5DniB,SAAU,SAAA9K,GAAC,OAAIS,EAAK+0F,aAAa/4F,EAAGuD,IACpC8a,UAAW20E,IAGJ,iBAAVriF,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GACnB3C,MAAOvL,EAAE4mE,aACTv4D,SAAU,SAAA9K,GAAC,OAAIS,EAAK00F,cAAc14F,EAAGuD,IAAI0K,KAAM,SAC/CoQ,UAAW20E,OAKtBA,GACDn0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAWD,EAAAhgB,EAAAC,cAAC+iB,EAAD,CAAiBnc,QAAS,kBAAM1B,EAAK8d,SAAS9hB,aAM7E6e,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAtKnD/H,aA+LXgM,eAdS,SAAAhL,GAGpB,MAAO,CAAC8lE,WAFa9lE,EAAd8lE,aAKgB,SAAA/6D,GACvB,MAAO,CACHg3D,aAAc,kBAAMh3D,EAASg3D,OAC7BgzB,0BAA2B,SAACpuF,EAAIa,EAAG6D,GAAR,OAAcN,EhDhKR,SAACpE,EAAIa,EAAG6D,GAAR,MAAe,CACpDhB,KAFiC,+BAGjC1D,KAAIa,IAAG6D,KgD8J+C0pF,CAA0BpuF,EAAIa,EAAG6D,KACnF6pF,WAAY,SAAA/sF,GAAI,OAAI4C,EhDpGF,SAAA5C,GAAI,sBAAAwM,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAC9BuG,EAASu3D,MADqBztD,EAAArQ,KAAA,EAGboL,KAAMM,KAAKrS,GAAU,qBAAsBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC5F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,SAC9BrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAE3B,CAACpC,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAIlC,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAV1C,WAGxB5H,EAHwByM,EAAArM,MAYtBL,KAZsB,CAAA0M,EAAArQ,KAAA,eAa1BuG,EAASy3D,MAbiB3tD,EAAA5E,OAAA,SAcnB,CAACxH,SAAS,EAAO1J,QAAS,wBAdP,WAgB1BqJ,EAAGD,KAAKM,QAhBkB,CAAAoM,EAAArQ,KAAA,gBAiB1BuG,EAASw3D,GAAmBn6D,IAjBFyM,EAAA5E,OAAA,SAkBnB,CAACxH,SAAS,EAAM1J,QAAS,KAlBN,eAoB1BgM,EAASy3D,MApBiB3tD,EAAA5E,OAAA,SAqBnB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArBrB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GgDoGO6nF,CAAW/sF,OAIjC6C,CAA6CpO,qBAnB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,WACrB6hB,MAAO,CAACtE,SAAU,OAAQjW,MAAO,WAiBuBvG,CAAmBi4F,KCvMzEQ,eACF,SAAAA,EAAY16F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA26F,IACxBn2F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAu4F,GAAA/1F,KAAA5E,KAAMC,EAAOiJ,KAajBI,kBAd4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAcR,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,4BADgB,wBAAAiG,EAAAc,SAAAhB,EAAA1J,SAdQwE,EA2B5Bo2F,eAAiB,WAAM,IAAAvtF,EACgB7I,EAAKc,MAAjCu1F,EADYxtF,EACZwtF,WAAY9sB,EADA1gE,EACA0gE,aACfrgE,GAAK,EAcT,MAbmB,KAAfmtF,GACAr2F,EAAKU,SAAS,CAAC41F,gBAAiBxmD,KAChC5mC,GAAK,GAELlJ,EAAKU,SAAS,CAAC41F,gBAAiB,KAGR,kBAAjB/sB,GACPvpE,EAAKU,SAAS,CAAC61F,kBAAmBzmD,KAClC5mC,GAAK,GAELlJ,EAAKU,SAAS,CAAC61F,kBAAmB,KAE/BrtF,GA3CiBlJ,EA8C5B88D,SA9C4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8CjB,SAAAmB,IAAA,IAAAy6B,EAAA0oC,EAAA7+D,EAAA2rF,EAAAG,EAAA3hF,EAAA3L,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACFtF,EAAKo2F,iBADH,CAAA/vF,EAAAf,KAAA,eAAAe,EAAA0K,OAAA,wBAGD8vB,EAAW,IAAIyjB,SACdilB,EAAgBvpE,EAAKc,MAArByoE,aACP1oC,EAAS0jB,OAAO,OAAQglB,EAAcA,EAAa77C,MAL5ChjB,EAOkC1K,EAAKc,MAAvCu1F,EAPA3rF,EAOA2rF,WAAYG,EAPZ9rF,EAOY8rF,mBACb3hF,EAAS,CAAC6Y,KAAM2oE,EAAYvyB,aAAc0yB,GARzCnwF,EAAAf,KAAA,EASUtF,EAAKvE,MAAMg7F,UAAU5hF,EAAQgsB,GATvC,OASD33B,EATC7C,EAAAiD,KAUPtJ,EAAKvE,MAAMonE,eACX35D,EAAGK,QACGvJ,EAAKU,SAAS,CACZkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,kBACjByhE,aAAc,GACd8sB,WAAY,GACZG,mBAAoBx2F,EAAKc,MAAM01F,mBAAqB,IAEtDx2F,EAAKU,SAAS,CACZkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpB0pE,aAAc,KAxBf,yBAAAljE,EAAAH,SAAAE,EAAA5K,SA9CiBwE,EA2E5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KA5EL5H,EA+E5B26C,OAAS,SAACwI,EAAemmB,GACQ,IAAzBnmB,EAAcn5C,OACdhK,EAAKU,SAAS,CAAC6oE,aAAcpmB,EAAc,KAE3CnjD,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,qCAE9EwhE,EAAct/D,OAAS,GACvBhK,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAe,GAAAyC,OAAK++D,EAAc,GAAG57C,KAAtB,+CAtFxD1tB,EA0F5BijD,SA1F4BrlD,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA0FjB,SAAAyQ,IAAA,IAAAxM,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAqQ,EAAArQ,KAAA,EACUtF,EAAKvE,MAAMi7F,aADrB,QACDxtF,EADCyM,EAAArM,MAEAC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,oBAChF9H,EAAKvE,MAAMonE,gBAEX7iE,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAN9E,wBAAA8V,EAAAzP,SAAAwP,EAAAla,SA1FiBwE,EAoG5B22F,qBAAuB,SAACruF,EAAG7H,GACb,SAAN6H,GAActI,EAAKU,SAAS,CAAC21F,WAAY51F,EAAE+H,OAAOC,QAC5C,UAANH,GAAetI,EAAKU,SAAS,CAAC81F,mBAAoB/1F,EAAE+H,OAAOC,SApG/DzI,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB0hE,aAAc,GACdgtB,kBAAmB,GACnBF,WAAY,GACZC,gBAAiB,GACjBE,mBAAoB,IAVAx2F,kFAkBTitB,EAAWC,GAAW,IACjBw2C,EAA0BloE,KAAKC,MAA5CmrE,WAAalD,sBAChBC,EAAU,CAAC,CAACl8D,GAAI,EAAGimB,KAAM,GAAIk2C,IAAK,GAAIC,MAAO,EAAGC,aAAc,IAClE,IAAmD,IAA/C72C,EAAU25C,WAAWlD,wBAA4D,IAA1BA,EAAiC,CACxF,IAAM8yB,EAAqB7yB,EAAQA,EAAQ35D,OAAS,GAAG85D,aAAe,EACtEtoE,KAAKkF,SAAS,CAAC81F,yDAkFd,IAAAt1F,EAAA1F,KAAAD,EAC+EC,KAAKC,MAAlFC,EADFH,EACEG,QADFirE,EAAAprE,EACWqrE,WAAalD,EADxBiD,EACwBjD,sBAAuBK,EAD/C4C,EAC+C5C,mBAAoBJ,EADnEgD,EACmEhD,QADnE0Q,EAEwC74E,KAAKsF,MAA3Cw1F,EAFFjiB,EAEEiiB,gBAAiBC,EAFnBliB,EAEmBkiB,kBAElBrG,EAAoB9uF,YAAe,CAACxG,OACpCu1F,EAAsB/uF,YAAe,CAACzG,OACtCy1F,EAAoBhvF,YAAe,CAAC1G,QAAuCw1F,GAAqBC,EAEtG,OACIp0E,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACnByzF,GAAqBr0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAC1D8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,UAAWV,UAAW+nE,GACxC3nD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC46F,GAAD,OAEH1G,GAAqBvsB,EAAQ35D,OAAO,GAAK25D,EAAQ,GAAGC,KAAO7nD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAClE2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKynD,UADlB,cAOfktC,GAAuBp0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC9B2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,aAAcV,UAAWooE,GAC3ChoD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,aAAa2D,MAAM,cAAc7G,OAAO,SAClDnI,QAAQ,WAAWmP,SAAU,SAAA9K,GAAC,OAAIS,EAAKy1F,qBAAqB,OAAQl2F,IACpE+K,WAAS,EAACH,QAASirF,EAAiBhrF,WAAYgrF,KAExDv6E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,eAAe2D,MAAM,QAAQ7G,OAAO,SAC9CnI,QAAQ,WAAWmP,SAAU,SAAA9K,GAAC,OAAIS,EAAKy1F,qBAAqB,QAASl2F,IACrE+K,WAAS,MAIrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACopD,GAAD,CAAiBzK,OAAQn/C,KAAKm/C,OAAQC,OAAQ,YAC7Cp/C,KAAKsF,MAAMyoE,aAAa77C,MACrB3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYrZ,MAAM,WACbnH,KAAKsF,MAAMyoE,aAAa77C,MAGhC6oE,GAAqBx6E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,QACvCuG,MAAO,aAAc4zF,KAGjCx6E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKshE,UADlB,aAKZ/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,6BA5K9D/H,aAuMZgM,eAdS,SAAAhL,GAGpB,MAAO,CAAC8lE,WAFa9lE,EAAd8lE,aAKgB,SAAA/6D,GACvB,MAAO,CACHg3D,aAAc,kBAAMh3D,EAASg3D,OAC7B4zB,UAAW,SAAC5hF,EAAQgsB,GAAT,OAAsBh1B,EjD3JhB,SAACgJ,EAAQgsB,GAAT,sBAAAxrB,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAsB,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA+K,EAAA,OAAAwU,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC3CuG,EAASo3D,MADkC58D,EAAAf,KAAA,EAG1BoL,KAAMM,KAAKrS,GAAU,oBAAsB4I,KAAYiN,UAAU,CAACusB,WAAY,IAAKF,GAAUjwB,MAAM,SAAAnQ,GAChH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,SAC9BrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAE3B,CAACpC,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAIlC,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAV7B,WAGrC5H,EAHqC7C,EAAAiD,MAYnCL,KAZmC,CAAA5C,EAAAf,KAAA,eAavCuG,EAASs3D,MAb8B98D,EAAA0K,OAAA,SAchC,CAACxH,SAAS,EAAO1J,QAAS,wBAdM,WAgBvCqJ,EAAGD,KAAKM,QAhB+B,CAAAlD,EAAAf,KAAA,gBAiBvCuP,EAAO+uD,IAAM16D,EAAGD,KAAKoL,OAAO,GAjBWhO,EAAAf,KAAA,GAkBrBoL,KAAMM,KAAKrS,GAAU,uBAAwBkW,EAAQ9I,eAAwB6E,MAAM,SAAAnQ,GACjG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,SAC9BrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAE3B,CAACpC,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAAExL,QADSY,EAA1CoQ,SAAW5H,KAAOoC,MAASxL,WAInC,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAzBjC,aAkBjCmD,EAlBiC5N,EAAAiD,MA2B/BL,KAAKM,QA3B0B,CAAAlD,EAAAf,KAAA,gBA4BnCuG,EAASq3D,GAAkBh6D,IA5BQ7C,EAAA0K,OAAA,SA6B5B,CAACxH,SAAS,EAAM1J,QAAS,KA7BG,eA+BvCgM,EAASs3D,MA/B8B98D,EAAA0K,OAAA,SAgChC,CAACxH,SAAS,EAAO1J,QAASoU,EAAIhL,KAAKoC,MAAMxL,UAhCT,eAkCvCgM,EAASs3D,MAlC8B98D,EAAA0K,OAAA,SAmChC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnCR,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAtB,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GiD2JyBsoF,CAAU5hF,EAAQgsB,KAC5D61D,WAAY,kBAAM7qF,EjD1DA,eAAAmK,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAAgR,EAAOpK,EAAUouC,GAAjB,IAAAhxC,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC5BuG,EAAS03D,MAEHt6D,EAAO,CAAC8sF,WAAY97C,IAAW2sB,WAAWjD,SAHpBztD,EAAA5Q,KAAA,EAIXoL,KAAMM,KAAKrS,GAAU,qBAAsBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC5F,OAAKrF,aAAqBqF,EAAEoQ,SAASC,SAC9BrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAE3B,CAACpC,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAIlC,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAX5C,WAItB5H,EAJsBgN,EAAA5M,MAapBL,KAboB,CAAAiN,EAAA5Q,KAAA,eAcxBuG,EAAS43D,MAdevtD,EAAAnF,OAAA,SAejB,CAACxH,SAAS,EAAO1J,QAAS,wBAfT,WAiBxBqJ,EAAGD,KAAKM,QAjBgB,CAAA2M,EAAA5Q,KAAA,gBAkBxBuG,EAAS23D,GAAmBt6D,IAlBJgN,EAAAnF,OAAA,SAmBjB,CAACxH,SAAS,EAAM1J,QAAS,KAnBR,eAqBxBgM,EAAS43D,MArBevtD,EAAAnF,OAAA,SAsBjB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAtBvB,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAN,gBAAA4V,EAAAyF,GAAA,OAAAb,EAAA3E,MAAA7V,KAAA2S,YAAA,OiD8DXrC,CAA6CpO,qBAlB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAiBmCe,CAAmBy4F,gBC/MzEU,eACF,SAAAA,EAAYp7F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAq7F,IACxB72F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAi5F,GAAAz2F,KAAA5E,KAAMC,EAAOiJ,KAMjBI,kBAAoB,WAChBwF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,WACA0yB,QAAQC,IAAI,qBACZnwB,aAAaw5D,QACbn7D,EAAKvE,MAAMwZ,eAAe,aAAc,MAExCjV,EAAK+7D,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpEt9D,EAAK87D,0BACL97D,EAAK+7D,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACjBtF,EAAK87D,0BADY,wBAAA12D,EAAAc,SAAAhB,EAAA1J,UAI3BkO,WAAW,kBAAMnJ,OAAOD,SAAWC,OAAOD,SAAS87B,QAAQ,MAnBnCp8B,EAsB5B87D,wBAtB4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAsBF,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OACtBtF,EAAK+7D,cAAcv6C,QAClBqxC,KAAK,WAAOhhC,QAAQC,IAAI,uBAAwB9xB,EAAKg8D,iBAAkBprD,MAAM,SAAA3B,GAC1EvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CAJM,wBAAAzrB,EAAAH,SAAAE,EAAA5K,SAtBEwE,EA8B5Bg8D,aAAe,WACX,IAAIC,EAAc1D,GAAiBY,eAG/B+C,EAAa,CACbC,KAFSx6D,aAAaC,QAAQ,YAG9BuJ,KAAM8wD,GAENI,EAAal6D,KAAKqS,UAAU0nD,GAChCl8D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAU3B,GAC5E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eAtC7BzqD,EAAKc,MAAQ,CACTg2F,WAAW,GAHS92F,wEA6CxB,OACI+b,EAAAhgB,EAAAC,cAAA,WACKR,KAAKsF,MAAMg2F,WAAa/6E,EAAAhgB,EAAAC,cAAC+6F,GAAA,EAAD,CAAUzzF,GAAG,cAhD3B7F,iBAgEZqO,eAAQ,KANI,SAAAD,GACvB,MAAO,CACHoJ,eAAgB,SAAC3M,EAAG6D,GAAJ,OAAUN,EAASoJ,aAAe3M,EAAG6D,OAI9CL,CAAkCpO,qBAVlC,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aASwBe,CAAmBm5F,KC7D9DG,eACL,SAAAA,EAAYv7F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAw7F,IAC3Bh3F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAo5F,GAAA52F,KAAA5E,KAAMC,EAAOiJ,KAqCdo3D,wBAtC4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAsCF,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACzBtF,EAAK+7D,cACHv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAC3B,GACPvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANW,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SAtCEwE,EAgD5Bg8D,aAAe,SAACi7B,EAASh7B,GACxB,IACIC,EAAa,CAChBC,KAFYx6D,aAAaC,QAAQ,YAGjCuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBC,eACzBvvD,KAAMguF,GAEH56B,EAAal6D,KAAKqS,UAAU0nD,GAChCl8D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAS3B,GAC9E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eA1DCzqD,EA8D5Bu8D,gBAAkB,SAACJ,EAAME,GACxB,IAAIH,EAAa/5D,KAAKC,MAAMi6D,GAE5B,GAAIH,EAAWE,SAAW7D,GAAiBC,eAA3C,CACA,IAAMgE,EAAc76D,aAAaC,QAAQ,YACzC,GAAIs6D,EAAWC,OAASK,GAEpBN,EAAWjzD,KAAM,KAAAwzD,EACqCP,EAAWjzD,KAA5Ds0B,EADYk/B,EACZl/B,iBAAkBuyB,EADN2M,EACM3M,UAAWtqC,EADjBi3C,EACiBj3C,gBACrCxlB,EAAKvE,MAAMqkC,uBAAuBvC,GAC9BuyB,GAAW9vD,EAAKU,SAAS,CAAEovD,cAC3BtqC,GAAiBxlB,EAAKvE,MAAM0lC,sBAAsB3b,GAClD02C,EAAW/wD,OAASotD,GAAiBQ,aACxC/4D,EAAKU,SAAS,CAAEg8D,cAAc,EAAMC,iBAAiB,EAAO7M,iBA3EnC9vD,EAgF5B48D,gBAAkB,WACjB,MAAO,CACN7gD,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAKk3F,SACpDn7E,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,OAEDH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAK68D,eACpD9gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,UAvFwBlc,EA6F5B68D,cAAgB,WACf78D,EAAKg8D,aACJ,CACCz+B,iBAAkBv9B,EAAKvE,MAAMgqB,mBAAmB8X,iBAChD/X,gBAAiBxlB,EAAKvE,MAAMgqB,mBAAmBD,iBAEhD+yC,GAAiBS,uCAnGSh5D,EAuG5Bk3F,QAAU,WACT32F,OAAO42F,SAxGoBn3F,EA2G5Bo3F,YAAc,WACbp3F,EAAKg8D,aAAa,GAAIzD,GAAiBW,mCACvCl5D,EAAKvE,MAAMmpE,6BAIXrkE,OAAOD,SAASioC,QAAQ,gBAjHGvoC,EAoH5B8kE,WAAa,WACZvkE,OAAOb,KAAK,+BAAiCM,EAAKvE,MAAMgqB,mBAAmBsX,0BArHhD/8B,EAwH5Bq3F,sBAAwB,WACvB,QACEr3F,EAAKvE,MAAMgqB,mBAAmB+Z,iBAAmBx/B,EAAKvE,MAAMgqB,mBAAmB+Z,gBAAgBx1B,QAC/FhK,EAAKvE,MAAMgqB,mBAAmBga,wBAA0Bz/B,EAAKvE,MAAMgqB,mBAAmBga,uBAAuBz1B,SAzH/GhK,EAAKc,MAAQ,CACZs1D,aAAc,GACdxI,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,EACdkpC,WAAY,IAPct3F,mFAWR,IAAAkB,EAAA1F,KACnB8O,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,iCAEA3D,KAAKugE,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpE9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACpBpE,EAAK46D,0BADe,wBAAAz1D,EAAAH,SAAAE,EAAA5K,UANR,IAWIgqB,EACnBhqB,KAAKC,MADRgqB,mBAAsBD,gBAEnBooC,EAAmB,EACnBL,EAAmB,EACnBa,EAAe,EAfA5/C,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAgBnB,QAAA6R,EAAAC,EAAgB4W,EAAhB3W,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAiC,KAAtBjV,EAAsBoV,EAAAlG,MAC3BlP,EAAEonB,YACNitC,GAAsCr0D,EAAEoiC,YACxC4xB,GAAsCh0D,EAAEqiC,YACxCwyB,MApBiB,MAAAn/C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAwBnBlT,KAAKkF,SAAS,CAAEktD,mBAAkBL,mBAAkBa,kDA+F5C,IACA1yD,EAAYF,KAAKC,MAAjBC,QAER,OACCqgB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACisE,GAAD,CAAyBzrE,eAAgBhB,KAAKohE,gBAAiBjzD,QAASnO,KAAKC,MAAMkO,UAEnFoS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,MAAOpH,WAAY,UAC/DkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAK47F,YAAah7F,QAAQ,aACzC,IADF,iBAEgB,MAGjB2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAKspE,WAAYvpD,SAAU/f,KAAK67F,wBAAyBj7F,QAAQ,aAAlF,wBAvJkC0D,aAwL1BgM,eAdS,SAAChL,GAGxB,MAAO,CAAE2kB,mBAFsB3kB,EAAvB2kB,qBAKkB,SAAC5Z,GAC3B,MAAO,CACN+4D,2BAA4B,kBAAM/4D,ExGuBa,CAChDV,KAzMqC,mCwGmLpCy2B,yBAA0B,SAACp0B,GAAD,OAAS3B,EAAS+1B,GAAyBp0B,OAIxD1B,CAGbpO,qBAzBa,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,eAoBxB9G,CAAmBs5F,KC5LfO,eACL,SAAAA,EAAY97F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA+7F,IAC3Bv3F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA25F,GAAAn3F,KAAA5E,KAAMC,EAAOiJ,KAUdk4D,gBAAkB,WACjB,MAAO,CACN7gD,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAKk3F,SACpDn7E,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,OAEDH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAK68D,eACpD9gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,UAlBwBlc,EAwB5B87D,wBAxB4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwBF,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACzBtF,EAAK+7D,cACHv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAA3B,GACNvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANW,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SAxBEwE,EAkC5Bg8D,aAAe,SAACi7B,EAASh7B,GACxB,IACIC,EAAa,CAChBC,KAFYx6D,aAAaC,QAAQ,YAGjCuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBC,eACzBvvD,KAAMguF,GAEH56B,EAAal6D,KAAKqS,UAAU0nD,GAChCl8D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAS3B,GAC9E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eA5CCzqD,EAyD5B68D,cAAgB,WACf78D,EAAKg8D,aACJ,CACC37C,MAAOrgB,EAAKvE,MAAMqlE,wBAAwBzgD,MAC1CmE,WAAYxkB,EAAKvE,MAAMqlE,wBAAwBt8C,WAC/CkzC,UAAW13D,EAAKvE,MAAMqlE,wBAAwBpJ,UAC9C3xC,WAAY/lB,EAAKvE,MAAMqlE,wBAAwB/6C,WAC/C4X,aAAc39B,EAAKvE,MAAMqlE,wBAAwBnjC,cAElD46B,GAAiBU,kCAlESj5D,EAsE5Bk3F,QAAU,WACT32F,OAAO42F,SAvEoBn3F,EA0E5Bo3F,YAAc,WACbp3F,EAAKvE,MAAMypE,kCACX3kE,OAAOD,SAASioC,QAAQ,4BA1ExBvoC,EAAKc,MAAQ,CACZs1D,aAAc,GACdxI,iBAAkB,EAClBL,iBAAkB,EAClBa,aAAc,EACdkpC,WAAY,IAPct3F,mFAgDR,IAAAkB,EAAA1F,KACnBA,KAAKugE,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpE9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACpBpE,EAAK46D,0BADe,wBAAAz1D,EAAAH,SAAAE,EAAA5K,2CA4B3B,OACCugB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACgsE,GAAD,CAA8BxrE,eAAgBhB,KAAKohE,gBAAiBjzD,QAASnO,KAAKC,MAAMkO,kBAtFxD7J,aAiHrBgM,eAZS,SAAAhL,GAGvB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKkB,SAAAj1D,GAC1B,MAAO,CACNq5D,gCAAiC,kBAAMr5D,EtDHa,CAClDV,KAnGA,2CsDyGWW,CAA6CpO,qBArB7C,SAAAC,GAAK,MAAK,CACxBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,aACzB2gE,aAAc,CAAEnxC,UAAW,UAegCt2B,CAAmB65F,KC/GzE1Z,8MAEF/4E,uCAAoB,SAAAI,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,oCADgB,wBAAAiG,EAAAc,SAAAhB,EAAA1J,WAIpBm7E,gBAAkB,WACd32E,EAAKvE,MAAMkO,QAAQC,KAAK,oGAGnB,IAAArO,EACoBC,KAAKC,MAAvBC,EADFH,EACEG,QAASm6B,EADXt6B,EACWs6B,MAGhB,OAD8Bz0B,YAAe,CAACvH,OAM1CkiB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACysE,GAAD,MAEA1sD,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,yBAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,WAAWwG,QAASpH,KAAKm7E,iBAA3D,oBAGJ56D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC46E,GAAD,CACI7X,gBAAiBlpC,EAAMhhB,OAAOpN,GAC9BnH,SAAU9E,KAAKC,MAAM6E,SACrBqJ,QAASnO,KAAKC,MAAMkO,QACpBktE,eAAgB,0BAChBC,kBAAmB,sBACnBnzD,UAAWpE,OAM3BxD,EAAAhgB,EAAAC,cAAC+6E,GAAD,QA9BDh7D,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,gBAfGxD,aAwDrBpC,wBAJA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAGVe,CAAmBmgF,yBC9CnBngF,4BAnBA,CACdgtC,KAAM,CACL1tC,SAAU,IAiBGU,CAbf,SAA6BjC,GAAO,IAC3BC,EAAYD,EAAZC,QACR,OACCqgB,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQgvC,MACvB3uB,EAAAhgB,EAAAC,cAACw7F,GAAAz7F,EAAD,SCUG07F,eACF,SAAAA,EAAYh8F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAi8F,IACxBz3F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA65F,GAAAr3F,KAAA5E,KAAMC,EAAOiJ,KA0CjBo3D,wBA3C4Bl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2CF,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACtBtF,EAAK+7D,cACAv6C,QACAqxC,KAAK,kBAAMhhC,QAAQC,IAAI,yBACvBlhB,MAAM,SAAA3B,GACHvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CANE,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SA3CEwE,EAqD5Bg8D,aAAe,SAAC/yD,EAAMgzD,GAClB,IACIC,EAAa,CACbC,KAFSx6D,aAAaC,QAAQ,YAG9BuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBC,eACzBvvD,KAAMA,GAGNozD,EAAal6D,KAAKqS,UAAU0nD,GAChCl8D,EAAK+7D,cACAO,OAAO,cAAe,UAAWD,GACjCzrD,MAAM,SAAS3B,GACZ,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eAlETzqD,EAsE5Bu8D,gBAAkB,SAACJ,EAAME,GACrB,IAAIH,EAAa/5D,KAAKC,MAAMi6D,GAE5B,GAAIH,EAAWE,SAAW7D,GAAiBC,eAA3C,CACA,IAAMgE,EAAc76D,aAAaC,QAAQ,YACzC,GAAIs6D,EAAWC,OAASK,GAYpBN,EAAW/wD,OAASotD,GAAiBO,4BAA6B,KAC1DpB,EAAcwE,EAAWjzD,KAAzByuD,UACR13D,EAAKvE,MAAMukE,4BAA4BtI,MAzFnB13D,EA6F5B48D,gBAAkB,WACd,MAAO,CAIH7gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAKrZ,MAAO,UAAWvG,QAAQ,QAAQwG,QAAS5C,EAAK68D,eACjD9gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,SAnGgBlc,EAwG5Bk3F,QAAU,WACN32F,OAAO42F,SAzGiBn3F,EA4G5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA7GN5H,EAgH5B03F,6CAhH4B95F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgHmB,SAAAmB,IAAA,IAAA06D,EAAAjwD,EAAA,OAAA4X,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACrCw7D,EAA4B9gE,EAAKvE,MAAjCqlE,wBADqCz6D,EAAAf,KAAA,EAEtBtF,EAAKvE,MAAMk8F,4CAC5B,CACInzE,WAAYs8C,EAAwBt8C,WACpCnE,MAAOygD,EAAwBzgD,MAC/B0F,WAAY+6C,EAAwB/6C,WACpC4X,aAAcmjC,EAAwBnjC,aACtC+5B,UAAWoJ,EAAwBpJ,UACnCxC,eAAgB4L,EAAwB5L,iBATL,WAEvCrkD,EAFuCxK,EAAAiD,MAY7BC,QAZ6B,CAAAlD,EAAAf,KAAA,eAavCtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB+I,EAAShR,UAhBSwG,EAAA0K,OAAA,UAkBhC,GAlBgC,cAAA1K,EAAA0K,OAAA,UAoBhC,GApBgC,yBAAA1K,EAAAH,SAAAE,EAAA5K,SAhHnBwE,EAwI5Bm+D,+BAxI4BvgE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwIK,SAAAyQ,IAAA,IAAAkiF,EAAAC,EAAA,OAAApvE,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACzBsyF,EAAqB53F,EAAKvE,MAAMqlE,wBAAwB/6C,WAAWvI,OACnE,SAAAooB,GAAC,QAAMA,EAAEryB,SAFgBoC,EAAArQ,KAAA,EAKCtF,EAAKvE,MAAMq8F,6BACrCF,GANyB,WAKzBC,EALyBliF,EAAArM,MAQNC,QARM,CAAAoM,EAAArQ,KAAA,eASzBtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB+vF,EAAkBh4F,UAZd8V,EAAA5E,OAAA,SAclB,MAdkB,cAAA4E,EAAA5E,OAAA,SAgBlB8mF,GAhBkB,yBAAAliF,EAAAzP,SAAAwP,EAAAla,SAxILwE,EA4J5B+3F,iBA5J4B,eAAA/hF,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4JT,SAAAgR,EAAM+hF,GAAN,IAAAl3B,EAAAjwD,EAAA,OAAA4X,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACTw7D,EAA4B9gE,EAAKvE,MAAjCqlE,wBADS5qD,EAAA5Q,KAAA,EAEMtF,EAAKvE,MAAMw8F,gBAAgB,CAC5CzzE,WAAYs8C,EAAwBt8C,WACpCnE,MAAOygD,EAAwBzgD,MAC/B0F,WAAY+6C,EAAwB/6C,WACpC4X,aAAcmjC,EAAwBnjC,aACtC+5B,UAAWoJ,EAAwBpJ,UACnCxC,eAAgB4L,EAAwB5L,eACxCn4B,wBACI+jC,EAAwB/jC,wBAC5Bi7D,uBAAwBA,IAXb,WAEXnnF,EAFWqF,EAAA5M,MAaDC,QAbC,CAAA2M,EAAA5Q,KAAA,eAcXtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB+I,EAAShR,UAjBnBqW,EAAAnF,OAAA,UAmBJ,GAnBI,cAAAmF,EAAAnF,OAAA,UAqBJ,GArBI,yBAAAmF,EAAAhQ,SAAA+P,EAAAza,SA5JS,gBAAAyV,GAAA,OAAA+E,EAAA3E,MAAA7V,KAAA2S,YAAA,GAAAnO,EAqL5B88D,SArL4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqLjB,SAAAuR,IAAA,IAAA8rD,EAAA5K,EAAAlH,EAAA3vB,EAAA33B,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,UAAAg9D,EAIHtiE,EAAKvE,MAAMqlE,wBAFXpJ,EAFG4K,EAEH5K,UAFG4K,EAGHpN,eAIiC,KAAjCwC,EAAU15B,oBAC0B,KAApC05B,EAAUz5B,uBACgB,gBAA1Bj+B,EAAKc,MAAMi0D,WATR,CAAAt+C,EAAAnR,KAAA,eAWHtF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,0BAdlB2O,EAAA1F,OAAA,oBAmBuB,gBAA1B/Q,EAAKc,MAAMi0D,WAnBR,CAAAt+C,EAAAnR,KAAA,gBAoBGkrD,EAAOpkD,YACTsrD,EAAU15B,mBACJ05B,EAAU15B,mBACV05B,EAAUz5B,wBAEd4C,EAAW,IAAIyjB,UACZC,OAAO,OAAQiM,GA1BrB/5C,EAAAnR,KAAA,GA4BYtF,EAAKvE,MAAMy8F,8BAA8Br3D,GA5BrD,YA4BC33B,EA5BDuN,EAAAnN,MA6BKC,QA7BL,CAAAkN,EAAAnR,KAAA,gBA8BCtF,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,UAjCtB4O,EAAA1F,OAAA,UAmCQ,GAnCR,eAAA0F,EAAAnR,KAAA,GAwC6CtF,EAAK03F,+CAxClD,WAAAjhF,EAAAnN,KAAA,CAAAmN,EAAAnR,KAAA,gBAAAmR,EAAA1F,OAAA,yBA0CsB,KA1CtB0F,EAAAnR,KAAA,GAqDctF,EAAK+3F,iBAXG,MA1CtB,QAAAthF,EAAAnN,MAsDOtJ,EAAKvE,MAAMkO,QAAQC,KAAK,4BAtD/B,yBAAA6M,EAAAvQ,SAAAsQ,EAAAhb,SArLiBwE,EAiR5B68D,cAAgB,WACZ,IAAIs7B,EAAsB,GAC1Bn4F,EAAKvE,MAAMqlE,wBAAwB/6C,WAAWjc,QAAQ,SAAAmhB,GAClD,IAAImtE,EAAqB,CACrBz+D,SAAU1O,EAAU0O,SACpBC,SAAU3O,EAAU2O,SACpBC,SAAU5O,EAAU4O,SACpBC,SAAU7O,EAAU6O,SACpBrV,UAAWwG,EAAUxG,UACrBM,SAAUkG,EAAUlG,SACpBxR,OAAQ0X,EAAU1X,OAClBsoB,qBAAsB5Q,EAAU4Q,qBAChCC,qBAAsB7Q,EAAU6Q,qBAChCr0B,GAAIwjB,EAAUxjB,GACd05D,WAAYl2C,EAAUk2C,WACtBzlC,gBAAiBzQ,EAAUyQ,gBAC3BC,YAAa1Q,EAAU0Q,YACvBC,YAAa3Q,EAAU2Q,aAE3Bu8D,EAAoBvuF,KAAKwuF,KAE7Bp4F,EAAKg8D,aACD,CACI37C,MAAOrgB,EAAKvE,MAAMqlE,wBAAwBzgD,MAC1C0F,WAAYoyE,EACZ3zE,WAAYxkB,EAAKvE,MAAMqlE,wBAAwBt8C,WAC/CkzC,UAAW13D,EAAKvE,MAAMqlE,wBAAwBpJ,UAC9C/5B,aAAc39B,EAAKvE,MAAMqlE,wBAAwBnjC,aACjDo3B,WAAY/0D,EAAKc,MAAMi0D,YAE3BwD,GAAiBM,8BAErB74D,EAAKU,SAAS,CAAEi8D,iBAAiB,KAjTT38D,EAoT5B6qE,OAAS,WAAM,IAGMnnD,EAEb1jB,EAAKvE,MAHLqlE,wBACIzgD,MAASqD,MAGO1jB,EAAKc,MAArBu3F,YAED93F,OAAOD,SAAW,aACnBN,EAAKvE,MAAMkO,QAAQC,KAAK,yBAA2B8Z,IA7TjC1jB,EAgU5Bi9D,eAhU4B,eAAAlmD,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgUX,SAAA+R,EAAMgnB,GAAN,IAAA05B,EAAA,OAAAjvC,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAEkBoyD,EAC3B13D,EAAKvE,MADLqlE,wBAA2BpJ,UAE/BA,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmB15B,uBAJf9mB,EAAA5R,KAAA,EAKPtF,EAAKvE,MAAMukE,4BAA4BtI,GALhC,wBAAAxgD,EAAAhR,SAAA8Q,EAAAxb,SAhUW,gBAAA0V,GAAA,OAAA6F,EAAA1F,MAAA7V,KAAA2S,YAAA,GAAAnO,EAwU5Bk9D,iBAxU4Bt/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwUT,SAAAqS,IAAA,IAAAogD,EAAA,OAAAjvC,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAEgBoyD,EAC3B13D,EAAKvE,MADLqlE,wBAA2BpJ,UAE/BA,EAAS95D,OAAA+d,EAAA,EAAA/d,CAAA,GAAQ85D,EAAR,CAAmB15B,mBAAoB,KAJjCxmB,EAAAlS,KAAA,EAKTtF,EAAKvE,MAAMukE,4BAA4BtI,GAL9B,wBAAAlgD,EAAAtR,SAAAoR,EAAA9b,SAxUSwE,EAgV5B80D,mBAAqB,SAAAr0D,GACjBT,EAAKU,SAAS,CAAEq0D,WAAYt0D,EAAE+H,OAAOC,SA/UrCzI,EAAKc,MAAQ,CACTgvD,UAAW,GACXloD,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6uD,iBAAiB,EACjBgG,cAAc,EACdC,iBAAiB,EACjB07B,aAAa,EACbp0C,2BAA4B,GAC5BC,0BAA2B,GAC3BC,oBAAqB,GACrB4Q,WAAY,eAGhB/0D,EAAKg9D,yBAA2B,KAjBRh9D,mFAoBR,IAAAkB,EAAA1F,KAChB8O,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,oBAEA3D,KAAKugE,eAAgB,IAAIqB,MACpBC,QAAQl/D,MACRm/D,QACL9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAA0zC,IAAA,OAAAlwB,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cAAAuzC,EAAAvzC,KAAA,EACjBpE,EAAK46D,0BADY,wBAAAjjB,EAAA3yC,SAAAyyC,EAAAn9C,UAI3BA,KAAKC,MAAMkO,QAAQ2uF,OAAO,SAAAh4F,GACEY,EAAKJ,MAArBu3F,cAGoD,IAAxD/3F,EAASqzE,SAASnnE,QAAQ,2BAE1BjM,OAAOD,SAAW,iDA8SrB,IAAA/E,EASDC,KAAKC,MAPLC,EAFCH,EAEDG,QAFCw/E,EAAA3/E,EAGDulE,wBACIpJ,EAJHwjB,EAIGxjB,UACAsH,EALHkc,EAKGlc,uCACAJ,EANHsc,EAMGtc,wBACAY,EAPH0b,EAOG1b,sCAPH32D,EAUkDrN,KAAKsF,MAApD67D,EAVH9zD,EAUG8zD,gBAAiBD,EAVpB7zD,EAUoB6zD,aAAc27B,EAVlCxvF,EAUkCwvF,YACjC18F,EACFqjE,GACAJ,GACAY,EAEJ,OACIzjD,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CACIe,MAAO,oBACPG,eAAgBhB,KAAKohE,gBACrBjhE,UAAWA,EACXC,eAAgBy8F,GAEhBt8E,EAAAhgB,EAAAC,cAAC+rE,GAAD,MAEAhsD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgC,KAAG,EACHvV,MAAOjN,KAAKsF,MAAMi0D,WAClBxpD,SAAU/P,KAAKs5D,oBAEf/4C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,cACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,gCAEV2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvT,MAAO,MACP2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAM,YACtByI,MAAM,2BAKhBuxD,IAAoBD,GAA0C,gBAA1BlhE,KAAKsF,MAAMi0D,YAC7Ch5C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IAC1Bmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC0hE,GAAD,CACIjC,SAAU,QACVF,WAAY,CAAEt3D,MAAO,IAAKoyB,OAAQ,KAClC+kC,MAAO5/D,KAAKyhE,eACZ7a,QAAS5mD,KAAK0hE,qBAM9BnhD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACxCysD,EAAUz5B,uBACPliB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,2BAIJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OACIuiB,IACIm5C,EAAUz5B,sBAEdxf,IAAI,OAMpB1C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTiH,WAAY,UAEZkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPC,QAASpH,KAAKqvE,QAEbwtB,EACK,oBACA,qBAGdt8E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRmf,SAAU88E,EACVz1F,QAASpH,KAAKshE,UAJlB,WASHH,GACG5gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,IACJs6D,EAAUgF,cACR3gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,QACTH,UAAWP,EAAQiiE,SAFvB,qCAQHjG,EAAUgF,cACP3gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5f,QAAS,QACTH,UAAWP,EAAQiiE,SAFvB,uBAa3BniE,KAAKsF,MAAM0+D,uCACRzjD,EAAAhgB,EAAAC,cAACu8F,GAAD,MAEJx8E,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CACIM,KAAMlE,KAAKsF,MAAM8G,aACjBjI,QAASnE,KAAKuM,cACdlI,QAASrE,KAAKsF,MAAMgH,gBACpB1L,QAASZ,KAAKsF,MAAM+G,0BAteXnE,IAAM5D,WA2iBpBgM,eAzDS,SAAAhL,GAGpB,MAAO,CAAEggE,wBAF2BhgE,EAA5BggE,0BAKe,SAAAj1D,GACvB,MAAO,CACHosF,gBAAiB,SAAA/uE,GAAA,IACb1E,EADa0E,EACb1E,WACAkzC,EAFaxuC,EAEbwuC,UACAr3C,EAHa6I,EAGb7I,MACA0F,EAJamD,EAIbnD,WACA4X,EALazU,EAKbyU,aACAu3B,EANahsC,EAMbgsC,eACAn4B,EAPa7T,EAOb6T,wBACAi7D,EARa9uE,EAQb8uE,uBARa,OAUbnsF,EzDlVmB,SAAAmK,GAAA,IAC3BwO,EAD2BxO,EAC3BwO,WACAkzC,EAF2B1hD,EAE3B0hD,UACAr3C,EAH2BrK,EAG3BqK,MACA0F,EAJ2B/P,EAI3B+P,WACA4X,EAL2B3nB,EAK3B2nB,aACAu3B,EAN2Bl/C,EAM3Bk/C,eACAn4B,EAP2B/mB,EAO3B+mB,wBACAi7D,EAR2BhiF,EAQ3BgiF,uBAR2B,sBAAAzhF,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KASzB,SAAAmB,EAAMyF,GAAN,IAAAkf,EAAAytE,EAAA1jB,EAAA5rE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACFuG,EAvBqC,CACrCV,KAnKgC,gCA2LhC4f,GADIA,EAAmBC,GAAUjF,IACG9oB,IAAI,SAAA1D,GAGpC,OAFIA,EAAE6nE,aAAa7nE,EAAE6nE,KACrB7nE,EAAEksD,aAAelsD,EAAEmiC,gBACZniC,IAEPi/F,EARF56F,OAAA+d,EAAA,EAAA/d,CAAA,GAQyB85D,EARzB,CAQoC15B,mBAAoB,KAEtD82C,EAAW,CACXtwD,aACAkzC,UAAW8gC,EACXn4E,QACA0F,WAAYgF,EAAiBvN,OAAO,SAAAjkB,GAAC,OAAIA,EAAE4nE,aAC3CxjC,eACAo5B,cACI7B,IAAmBsJ,IACnBtJ,IAAmBwJ,GACvBzW,aAAciN,IAAmBwJ,GACjC1H,wBACI9B,IAAmBuJ,IACnBvJ,IAAmBqJ,GACvBxhC,wBAAyBA,GAvB3B12B,EAAAf,KAAA,EA0BeoL,KACZM,KACGrS,GAAU,yBACVm2E,EACA/oE,eAEH6E,MAAM,SAAAnQ,GACH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aArC/B,YA0BIqJ,EA1BJ7C,EAAAiD,MAmDKL,KAAKM,QAnDV,CAAAlD,EAAAf,KAAA,gBAoDEuG,EAtEyC,CAC7CV,KAtK6B,2BAuK7Bi5B,QAqEgC,CACpB/vB,OAAQnL,EAAGD,KAAKoL,OAChB2jF,4BAvDV3xF,EAAA0K,OAAA,SA0DS,CAAExH,SAAS,EAAM1J,QAAS,KA1DnC,eA4DEgM,EAzE4B,CAChCV,KA1K0B,0BAsLxB9E,EAAA0K,OAAA,SA6DS,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA7DlD,yBAAAwG,EAAAH,SAAAE,EAAA5K,SATyB,gBAAA2V,GAAA,OAAAoF,EAAAlF,MAAA7V,KAAA2S,YAAA,GyDmVf8pF,CAAgB,CACZzzE,aACAkzC,YACAr3C,QACA0F,aACA4X,eACAu3B,iBACAn4B,0BACAi7D,6BAGZh4B,4BAA6B,SAAAtI,GAAS,OAClC7rD,EAASm0D,GAA4BtI,KACzCwgC,8BAA+B,SAACr3D,EAAU11B,GAAX,OAC3BU,EzD9HiC,SAAAg1B,GAAQ,sBAAA3X,EAAAtrB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAuR,EAAM3K,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cACrDuG,EAASo0D,MAD4CxpD,EAAAnR,KAAA,EAGpCoL,KACZM,KACGrS,GACI,oBACA4I,KAAYiN,UAAU,CAAEusB,WAAY,IACxCF,EACA90B,eAEH6E,MAAM,SAAAnQ,GACH,IAAKrF,aAAqBqF,EAAEoQ,SAASC,SAC7BrQ,EAAEoQ,SAAS5H,MAAQxI,EAAEoQ,SAAS5H,KAAKoC,MAAO,KAIrBxL,EAGjBY,EALAoQ,SACI5H,KACIoC,MAASxL,QAKrB,OADAgM,EAASs0D,MACF,CAAEl3D,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,aAIlD,OADAgM,EAASs0D,MACF,CACHl3D,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,yBA7BD,YAG/C5H,EAH+CuN,EAAAnN,MAiC9CL,KAAKM,QAjCyC,CAAAkN,EAAAnR,KAAA,eAkCjDuG,EAASq0D,GAAsCh3D,IAlCEuN,EAAA1F,OAAA,SAmC1C,CAAExH,SAAS,EAAM1J,QAAS,KAnCgB,cAqCjDgM,EAASs0D,MArCwC1pD,EAAA1F,OAAA,SAsC1C,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAtCC,yBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SAAJ,gBAAA2b,GAAA,OAAA+R,EAAA7X,MAAA7V,KAAA2S,YAAA,GyD8HhC+pF,CAA8Br3D,KAC3Ci3D,6BAA8B,SAAA5jC,GAAK,OAC/BroD,GzDuEgCka,EyDvEMmuC,EzDuEI,eAAA3xB,EAAA3kC,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAA0zC,EAAM9sC,GAAN,IAAA5C,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cACtDuG,EAbiD,CACjDV,KAjjBA,gDA4jBsD0tC,EAAAvzC,KAAA,EAEnC24D,GAAWC,8BAA8Bn4C,GAFN,WAEhD9c,EAFgD4vC,EAAAvvC,MAG5CC,QAH4C,CAAAsvC,EAAAvzC,KAAA,eAIlDuG,EARyC,CAC7CV,KArjBA,0CAwjBsD0tC,EAAA9nC,OAAA,SAK3C9H,GAL2C,cAOlD4C,EAf4C,CAChDV,KAnjBA,6CA0jBsD0tC,EAAA9nC,OAAA,SAQ3C9H,GAR2C,yBAAA4vC,EAAA3yC,SAAAyyC,EAAAn9C,SAAJ,gBAAAqnC,GAAA,OAAAN,EAAAlxB,MAAA7V,KAAA2S,YAAA,KAAV,IAAA4X,GyDtEpC4xE,4CAA6C,SAAA51D,GAAA,IACzCvd,EADyCud,EACzCvd,WACAkzC,EAFyC31B,EAEzC21B,UACAr3C,EAHyC0hB,EAGzC1hB,MACA0F,EAJyCgc,EAIzChc,WACA4X,EALyCoE,EAKzCpE,aACAu3B,EANyCnzB,EAMzCmzB,eANyC,OAQzCrpD,EzDrR+C,SAAAkL,GAAA,IACvDyN,EADuDzN,EACvDyN,WACAkzC,EAFuD3gD,EAEvD2gD,UACAr3C,EAHuDtJ,EAGvDsJ,MACA0F,EAJuDhP,EAIvDgP,WACA4X,EALuD5mB,EAKvD4mB,aACAu3B,EANuDn+C,EAMvDm+C,eANuD,sBAAA79C,EAAAzZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAOrD,SAAAyQ,EAAM7J,GAAN,IAAAkf,EAAAytE,EAAA1jB,EAAA5rE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACFuG,EArBiE,CACjEV,KAvNA,iEA8OA4f,GADAA,GADIA,EAAmBC,GAAUjF,IACGvI,OAAO,SAAAjkB,GAAC,OAAqB,IAAjBA,EAAE4nE,cACdlkE,IAAI,SAAA1D,GAGpC,OAFIA,EAAE6nE,aAAa7nE,EAAE6nE,KACrB7nE,EAAEksD,aAAelsD,EAAEmiC,gBACZniC,IAEPi/F,EATF56F,OAAA+d,EAAA,EAAA/d,CAAA,GASyB85D,EATzB,CASoC15B,mBAAoB,KAEtD82C,EAAW,CACXtwD,aACAkzC,UAAW8gC,EACXn4E,QACA0F,WAAYgF,EACZ4S,eACAo5B,cACI7B,IAAmBsJ,IACnBtJ,IAAmBwJ,GACvBzW,aAAciN,IAAmBwJ,GACjC1H,wBACI9B,IAAmBuJ,IACnBvJ,IAAmBqJ,IAvBzB5oD,EAAArQ,KAAA,EA0BeoL,KACZM,KACGrS,GAAU,gCACVm2E,EACA/oE,eAEH6E,MAAM,SAAAnQ,GACH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CACH7H,KAAM,CACFM,SAAS,EACT8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBALnC,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALAoQ,SACI5H,KACIoC,MAASxL,aArC/B,YA0BIqJ,EA1BJyM,EAAArM,MAmDKL,KAAKM,QAnDV,CAAAoM,EAAArQ,KAAA,gBAoDEuG,EApEqE,CACzEV,KAzNA,4DA0NAi5B,QAmE4Dl7B,EAAGD,KAAKoL,SArDlEsB,EAAA5E,OAAA,SAuDS,CAAExH,SAAS,EAAM1J,QAAS,KAvDnC,eAyDEgM,EApEwD,CAC5DV,KA5NA,2DAsOEwK,EAAA5E,OAAA,SA0DS,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UA1DlD,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAPqD,gBAAA4V,GAAA,OAAAiG,EAAAhG,MAAA7V,KAAA2S,YAAA,GyDsR3CwpF,CAA4C,CACxCnzE,aACAkzC,YACAr3C,QACA0F,aACA4X,eACAu3B,uBAMLppD,CAGbpO,qBAjEa,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBghE,QAAS,CAAEh7D,MAAO+W,SAAM,KAAMlV,SAAU,WA+D1C9G,CAAmB+5F,KCnjBNgB,oLAVP,OAAIr3F,YAAevG,MACRkhB,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBAErBlC,YAAetG,MACRihB,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,kBAElByY,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBARFxD,aCgBrB44F,eACL,SAAAA,EAAYj9F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAk9F,IAC3B14F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA86F,GAAAt4F,KAAA5E,KAAMC,EAAOiJ,KAQdi0F,cAAgB,SAACn/F,GAAM,IACdkC,EAAYsE,EAAKvE,MAAjBC,QAGR,OACCqgB,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ+2E,SAFX,CAAC,WAAY,WAAY,WAAY,YAG1Cx1E,IAAI,SAACwD,EAAGtD,GACb,MAAa,KAAT3D,EAAEiH,GAAkBsb,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAK7D,EAAEiO,GAAK,GAAKtK,IACvC4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK7D,EAAEiO,GAAK,GAAKhH,GAAIjH,EAAEiH,QAjBVT,EAuB5B44F,eAAiB,SAACp/F,EAAGqwB,GACpB7pB,EAAKvE,MAAMkO,QAAQC,KAAK,qBAAuBpQ,EAAEmgC,SAAW,IAAM9P,IAxBvC7pB,EA2B5B4e,OAAS,SAACplB,EAAGqwB,GACZ7pB,EAAKvE,MAAMkO,QAAQC,KAAK,kCAAoCpQ,EAAEujC,0BA5BnC/8B,EA+B5BK,YAAc,SAAC8K,EAAM0tF,GACP,UAAT1tF,EACH5K,OAAOb,KAAK,uBAAyBm5F,GAClB,eAAT1tF,EACD5K,OAAOb,KAAK,kCAAoCm5F,GAChC,sBAAT1tF,GACP5K,OAAOb,KAAK,8BAAgCm5F,IArC3B74F,EAyC5B84F,gBAAkB,SAACt/F,GAClB,OAAIA,EAAEujC,wBAAgChhB,EAAAhgB,EAAAC,cAAA,yBAClCxC,EAAE45C,SAAW55C,EAAE6mB,OAAoB,MAAX7mB,EAAE6mB,MACtBtE,EAAAhgB,EAAAC,cAAA,YAAO8kB,GAActnB,EAAE6mB,aAD/B,GA3C2BrgB,EAgDzB+4F,4BAA8B,SAACv/F,EAAGkC,GACpC,OAAKlC,EAAEw/F,kBACHx/F,EAAEw/F,kBAAkBx4E,SACfzE,EAAAhgB,EAAAC,cAAA,QAAMC,UAAaP,EAAQu9F,eAA3B,YACEz/F,EAAEw/F,kBAAkBt4E,SACtB3E,EAAAhgB,EAAAC,cAAA,QAAMC,UAAaP,EAAQu9F,eAA3B,YAEAl9E,EAAAhgB,EAAAC,cAAA,QAAMC,UAAaP,EAAQu9F,eAA3B,WANwB,IAjDNj5F,EA2D5Bk5F,WAAa,SAAC1/F,EAAGkC,GAChB,GAAIlC,EAAE+Z,OACL,OAAI/Z,EAAE+Z,OAAOC,WAAW,SAChBuI,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAS3f,MAAM,SACpB0f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM5C,EAAKm5F,gBAAgB3/F,EAAE+Z,OAAQ/Z,EAAEujC,2BAClFvjC,EAAE+Z,SAGI/Z,EAAE+Z,OAAOC,WAAW,SACvBuI,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAE+Z,QAET,IAtEkBvT,EA2E5Bo5F,qBAAuB,SAACr9F,EAAGmB,EAAGm8F,GAC7B,OAAIn8F,EAAEm8F,GAAWt9F,EAAEs9F,IACV,EAELn8F,EAAEm8F,GAAWt9F,EAAEs9F,GACX,EAED,GAlFoBr5F,EAqF5Bs5F,cAAgB,SAACz1B,EAAOw1B,GACvB,MAAiB,SAAVx1B,EAAmB,SAAC9nE,EAAGmB,GAAJ,OAAU8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,IAAW,SAACt9F,EAAGmB,GAAJ,OAAW8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,KAtF/Fr5F,EAmG5Bu6D,UAnG4B38D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAmGhB,SAAAC,IAAA,IAAAsL,EAAA3H,EAAA0wF,EAAAC,EAAA,OAAA/wE,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACPkL,EAAM,4BADC3H,EAEmC7I,EAAKc,MAA3Cy4F,EAFG1wF,EAEH0wF,aAAaC,EAFV3wF,EAEU2wF,wBAGpBhpF,EAAMA,EAAM,OAASgpF,EACrBx5F,EAAKU,SAAS,CAAE84F,qBAAsB,QAEnCD,IACH/oF,EAAMA,EAAM,WAAa+oF,EAAY9uC,WACrCzqD,EAAKU,SAAS,CAAE64F,YAAa,QAE9Bh5F,OAAOb,KAAKa,OAAOD,SAAS87B,OAAS5rB,GAZ1B,wBAAApL,EAAAc,SAAAhB,EAAA1J,SAnGgBwE,EAkH5By5F,kBAAoB,WACnBz5F,EAAKU,SAAS,CAAEg5F,mBAAmB,KAnHR15F,EAsH5Bm5F,gBAAkB,SAACQ,EAAMlyF,GACxBzH,EAAKU,SAAS,CAAEg5F,mBAAmB,EAAMH,YAAaI,EAAMH,qBAAsB/xF,KAvHvDzH,EA0H5B45F,eAAiB,WAChB55F,EAAKU,SAAS,CAAEg5F,mBAAmB,EAAOH,YAAa,KAAMC,qBAAsB,QA3HxDx5F,EA8H5B65F,gBA9H4Bj8F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8HV,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACjBtF,EAAKU,SAAS,CAAEg5F,mBAAmB,IADlBrzF,EAAAf,KAAA,EAEXtF,EAAKu6D,YAFM,wBAAAl0D,EAAAH,SAAAE,EAAA5K,SA5HjBwE,EAAKc,MAAQ,CACZ+iE,MAAO,MACPw1B,QAAS,SACTK,mBAAmB,EACnBH,YAAa,MANav5F,0EAyFjB85F,EAAOC,GACjB,IAAMC,EAAiBF,EAAM78F,IAAI,SAACg9F,EAAIl0D,GAAL,MAAe,CAACk0D,EAAIl0D,KAMrD,OALAi0D,EAAej2E,KAAK,SAAChoB,EAAGmB,GACvB,IAAM2mE,EAAQk2B,EAAWh+F,EAAE,GAAImB,EAAE,IACjC,OAAc,IAAV2mE,EAAoBA,EACjB9nE,EAAE,GAAKmB,EAAE,KAEV88F,EAAe/8F,IAAI,SAACg9F,GAAD,OAAQA,EAAG,sCAmC7B,IAAA/4F,EAAA1F,KAAAD,EAC0BC,KAAKC,MAA/BC,EADAH,EACAG,QAASuN,EADT1N,EACS0N,KAAMiU,EADf3hB,EACe2hB,OADfxS,EAEsClP,KAAKsF,MAA3C+iE,EAFAn5D,EAEAm5D,MAAOw1B,EAFP3uF,EAEO2uF,QAASK,EAFhBhvF,EAEgBgvF,kBAClBQ,EAAa,CAAC,YAAa,WAAY,uBAAwB,uBAAwB,eAKvFC,EAAiB,CACtB1uD,OAAQ,EACR2uD,KAAM,gBACN/jE,OAAQ,EACR9xB,QAAS,EACT6jE,SAAU,SACVrqE,QAAS,EACTC,SAAU,WACV+a,IAAK,GACL9U,MAAO,GA+BR,OACC8X,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,WAAWP,EAAQiB,UAAW,0BACpCof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAjCJ,SAA2BP,GAAO,IACzB4+F,EAAkB5+F,EAAlB4+F,cAIR,OACCt+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEkB,EAAOjgB,IAAI,SAACq9F,GAAD,OACXv+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACC3e,IAAKi9F,EAASj9F,IACdy+C,MAAOw+C,EAASC,QAAU,QAAU,OACpCx8F,QAASu8F,EAASE,eAAiB,OAAS,UAC5CC,cAAepB,IAAYiB,EAASj9F,KAAMwmE,GAE1C9nD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCxY,OAAQ61F,IAAYiB,EAASj9F,IAC7B4N,UAAWouF,IAAYiB,EAASj9F,IAAMwmE,EAAQ,MAC9CjhE,SAhBqB83F,EAgBMJ,EAASj9F,IAhBF,SAAC+4B,GACxCikE,EAAcjkE,EAAOskE,MAiBfJ,EAASlvF,MACTiuF,IAAYiB,EAASj9F,IAAM0e,EAAAhgB,EAAAC,cAAA,QAAMe,MAAOo9F,GAA2B,SAAVt2B,EAAmB,oBAAsB,oBAA6B,OAnB5G,IAAC62B,OA+BxB,CAAmBh/F,QAASA,EAASmoE,MAAOA,EAAOw1B,QAASA,EAASgB,cAhD/C,SAACjkE,EAAOskE,GACjC,IAAMC,EAAQtB,IAAYqB,GAAarB,IAAYqB,GAAsB,SAAV72B,EAC/D3iE,EAAKR,SAAS,CAAEmjE,MAAO82B,EAAQ,MAAQ,OAAQtB,QAASqB,OA+CrD3+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACExgB,KAAKo/F,WAAW3xF,EAAMzN,KAAK89F,cAAcz1B,EAAOw1B,IAAUp8F,IAAI,SAACzD,EAAGqwB,GAClE,OACC9N,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK7D,EAAEiO,IACfyV,EAAOjgB,IAAI,SAAC4Q,GACZ,OACCkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK7D,EAAEiO,GAAKoG,EAAExQ,KACb,QAAVwQ,EAAExQ,KAAiB0e,EAAAhgB,EAAAC,cAAA,YAAO6tB,EAAM,GAEtB,QAAVhc,EAAExQ,KAAiB7D,EAAE2iC,IAErB+9D,EAAWlrF,SAASnB,EAAExQ,MAAQ0e,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAEqU,EAAExQ,MAE/B,WAAVwQ,EAAExQ,KAAoB6D,EAAKg4F,WAAW1/F,EAAGkC,GAEQ,4BAAVmS,EAAExQ,KACC0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAS3f,MAAM,SACxD0f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKi4F,gBAAgB3/F,EAAEqU,EAAExQ,KAAM7D,EAAEujC,2BAClFvjC,EAAEqU,EAAExQ,OAKG,YAAVwQ,EAAExQ,KAAqB6D,EAAKy3F,cAAcn/F,GAEhC,gBAAVqU,EAAExQ,KAAyB7D,EAAE45C,SAAW55C,EAAE6mB,OAC1CtE,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKb,YAAY,QAAS7G,EAAE6mB,MAAMqD,SACnFlqB,EAAE6mB,MAAMqD,OAIA,4BAAV7V,EAAExQ,KAAqC7D,EAAEujC,0BAA4BvjC,EAAE6mB,OACvEtE,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKb,YAAY,aAAc7G,EAAEujC,2BAClFvjC,EAAEktB,sBAAsBhD,MACtBlqB,EAAEktB,sBAAsBhD,MACxB,IAAM3hB,IAAOvI,EAAEmrB,cAAc3iB,OAAO,QAAU,IAAMxI,EAAEujC,yBAIhD,WAAVlvB,EAAExQ,KAAoB6D,EAAK43F,gBAAgBt/F,GAEjC,gBAAVqU,EAAExQ,KAAyB7D,EAAEw/F,mBACaj9E,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQm/F,mBAAoBj4F,QAAS,kBAAM1B,EAAKb,YAAY,oBAAqB7G,EAAEw/F,kBAAkBvxF,MAC9JjO,EAAEw/F,kBAAkBt1E,OAIZ,iBAAV7V,EAAExQ,KAA0B6D,EAAK63F,4BAA4Bv/F,EAAGkC,WAYzEqgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQtc,KAAMg6F,EAAmB/5F,QAASnE,KAAKi+F,kBAAmBx9E,kBAAgB,qBAAqBxB,mBAAiB,4BACvHsB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAavU,GAAG,sBAAsB,+CACtCsU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAmBvU,GAAG,4BAA4BjM,KAAKsF,MAAMy4F,YAAX,WAAAhvF,OAAoC/O,KAAKsF,MAAMy4F,aAAgB,KAElHx9E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAKo+F,eAAgBj3F,MAAM,WAA5C,MAGAoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAKq+F,gBAAiBl3F,MAAM,UAAUqoC,WAAS,GAAhE,kBA7PyBlrC,aAiSjBgM,eAzBS,SAAChL,GAGxB,MAAO,CAAE84D,cAFiB94D,EAAlB84D,gBAKkB,SAAC/tD,GAC3B,MAAO,CAAE4tD,qBAAsB,SAACvF,EAAOn3B,GAAR,OAAoClxB,EAAS4tD,GAAqBvF,EAAOn3B,OAkB1FjxB,CAGbpO,qBAlBa,SAACC,GAAD,MAAY,CAC1BhB,UAAWgB,EAAMhB,UACjB81E,QAAS,CAAE10E,QAAS,UACpBm7C,UAAW,CACVxN,OAAQ,UACRC,aAAc,mBAEfkvD,mBAAoB,CACnBnvD,OAAQ,UACRC,aAAc,kBACdhpC,MAAO,QAERs2F,cAAe,CAAEt2F,MAAO,UAMvBjF,CAAmBg7F,KCxTfoC,oLACO,IACEp/F,EAAWF,KAAKC,MAAhBC,QASP,OACIqgB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UATV,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,qBAA0B7H,EAA/C,CAC7B8H,gBAAiB7H,EAAQ8H,YAQrB,aACAuY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UARd,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,iBAAsB7H,EAA3C,CACzB8H,gBAAiB7H,EAAQ8H,YAOrB,SACAuY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWQ,UAPJ,SAAA1H,GAAK,OAAIsgB,EAAAhgB,EAAAC,cAAC2yF,GAAD/wF,OAAAyF,OAAA,CAAiBC,GAAI,4BAAiC7H,EAAtD,CACnC8H,gBAAiB7H,EAAQ8H,YAMrB,4BAfQ1D,aAyBTpC,wBAJA,SAAAC,GAAK,MAAK,CACrB6F,OAAQ,CAACU,gBAAiBvG,EAAMwG,QAAQC,OAAOC,YAGpC3G,CAAmBo9F,ICZ5BC,GAAS,CACd,CAAE19F,IAAK,MAAO+N,MAAO,OACrB,CAAE/N,IAAK,MAAO+N,MAAO,OACrB,CAAE/N,IAAK,YAAa+N,MAAO,cAC3B,CAAE/N,IAAK,WAAY+N,MAAO,aAC1B,CAAE/N,IAAK,cAAe+N,MAAO,iBAC7B,CAAE/N,IAAK,UAAW+N,MAAO,YACzB,CAAE/N,IAAK,SAAU+N,MAAO,WACxB,CAAE/N,IAAK,0BAA2B+N,MAAO,qBACzC,CAAE/N,IAAK,uBAAwB+N,MAAO,kBACtC,CAAE/N,IAAK,uBAAwB+N,MAAO,kBACtC,CAAE/N,IAAK,cAAe+N,MAAO,aAC7B,CAAE/N,IAAK,0BAA2B+N,MAAO,cACzC,CAAE/N,IAAK,SAAU+N,MAAO,UACxB,CAAE/N,IAAK,cAAe+N,MAAO,gBAC7B,CAAE/N,IAAK,eAAgB+N,MAAO,qBAGzB4vF,eACL,SAAAA,EAAYv/F,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAw/F,IAC3Bh7F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAo9F,GAAA56F,KAAA5E,KAAMC,EAAOiJ,KA6Bdu2F,qBAAuB,SAAC3yF,EAAG7H,GAChB,eAAN6H,GAA4B,aAANA,EAAkBtI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgL,YAA0B7S,EAAE+H,OAAOC,SAC/FzI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAI7H,EAAE+H,OAAOC,SAhCRzI,EAmC5Bk7F,8BAAgC,SAAC5yF,EAAG7H,GACnC,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgtD,KArCMt1D,EAwC5B2wD,gBAAkB,SAACp9C,GAClB,OAAIA,GAA6B,KAAlBA,EAAOvJ,SAAiB,UAAUE,KAAKqJ,KACrDvT,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAe,YAAAyC,OAAcgJ,EAAd,2BACtE,IA3CmBvT,EAgD5BmJ,UAAY,WAAM,IAAAN,EAC+G7I,EAAKc,MAAlEq6F,GADlDtyF,EACTszB,IADStzB,EACJ4b,UADI5b,EACOkc,SADPlc,EACiB8+B,gBADjB9+B,EACkCmb,eADlCnb,EACkDsyF,YAAYC,EAD9DvyF,EAC8DuyF,SAAUC,EADxExyF,EACwEwyF,kBAAmBC,EAD3FzyF,EAC2FyyF,gBAY5G,QAAKt7F,EAAK2wD,gBAAgBwqC,OACrBn7F,EAAK2wD,gBAAgByqC,OACrBp7F,EAAK2wD,gBAAgB0qC,MACrBr7F,EAAK2wD,gBAAgB2qC,MAhECt7F,EAoE5B88D,SApE4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAoEjB,SAAAC,IAAA,IAAA+D,EAAAsyF,EAAAryF,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACLtF,EAAKmJ,YADA,CAAA/D,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,oBAmBN9H,EAAO,GACPsyF,GAAY,EAjBD,CACd,MACA,gBACA,YACA,WACA,aACA,WACA,oBACA,kBACA,gBACA,cACA,MACA,kBACA,kBAKMzxF,QAAQ,SAAC+D,GACO,KAAlB7N,EAAKc,MAAM+M,KACd5E,EAAK4E,GAAK7N,EAAKc,MAAM+M,GACrB0tF,GAAY,KAKdtyF,EAAKuyF,YAAcx7F,EAAKc,MAAM06F,aAE1BD,EA/BM,CAAAn2F,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAgCQtF,EAAKvE,MAAMggG,iBAAiBxyF,GAhCpC,SAgCHC,EAhCG9D,EAAAkE,MAiCDC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UACnGG,EAAKU,SAAS,CAAEg7F,aAAa,IAlCpB,yBAAAt2F,EAAAc,SAAAhB,EAAA1J,SApEiBwE,EA0G5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAzG9B5H,EAAKc,MAAQ,CACZq7B,IAAK,GACLyc,cAAe,GACfn0B,UAAW,GACXM,SAAU,GACVo2E,WAAY,GACZC,SAAU,GACVC,kBAAmB,GACnBC,gBAAiB,GACjBK,cAAe,GACfC,YAAa,GACbvhE,IAAK,GACLsN,gBAAiB,GACjB3jB,eAAgB,GAChBw3E,YAAa,GACbp2D,GAAI,GACJy2D,GAAI,GACJj0F,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6zF,aAAa,GAtBa17F,mFA2B3BsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,sDAmFQ,IAAA+B,EAAA1F,KAAAD,EAIJC,KAAKC,MAFRC,EAFOH,EAEPG,QAFOogG,EAAAvgG,EAGPoqF,WAAc5/D,EAHP+1E,EAGO/1E,WAAYu/D,EAHnBwW,EAGmBxW,0BAHnB56E,EAqBJlP,KAAKsF,MAfR83C,EANOluC,EAMPkuC,cACAzc,EAPOzxB,EAOPyxB,IACA1X,EARO/Z,EAQP+Z,UACAM,EATOra,EASPqa,SACAo2E,EAVOzwF,EAUPywF,WACAC,EAXO1wF,EAWP0wF,SACAC,EAZO3wF,EAYP2wF,kBACAC,EAbO5wF,EAaP4wF,gBACAK,EAdOjxF,EAcPixF,cACAC,EAfOlxF,EAePkxF,YACAvhE,EAhBO3vB,EAgBP2vB,IACAsN,EAjBOj9B,EAiBPi9B,gBACA3jB,EAlBOtZ,EAkBPsZ,eACAw3E,EAnBO9wF,EAmBP8wF,YACAE,EApBOhxF,EAoBPgxF,YAGD,OAAKt6F,YAAevG,MAKnBkhB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAAC+/F,GAAD,MAEAhgF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAAoBV,UAAW2pF,GACpDvpE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,QAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,MAAM2D,MAAM,MAAMhP,QAAQ,WAAWqM,MAAO0zB,EAAK5wB,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,MAAOx6F,QAGnHsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,UACH2D,MAAM,WACNhP,QAAQ,WACRqM,MAAOmwC,EACPrtC,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,gBAAiBx6F,QAI/Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,eAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,OAAOhP,QAAQ,WAAWqM,MAAOgc,EAAWlZ,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,YAAax6F,QAGjIsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,cAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,OAAOhP,QAAQ,WAAWqM,MAAOsc,EAAUxZ,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,WAAYx6F,QAG/Hsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,YAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,EAAGiH,WAAY,UAC5CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,aACH2D,MAAM,eACNhP,QAAQ,WACRqM,MAAO0yF,EACP5vF,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,aAAcx6F,OAG3Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,OAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,WACH2D,MAAM,aACNhP,QAAQ,WACRqM,MAAO2yF,EACP7vF,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,WAAYx6F,UAM5Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,sBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,EAAGiH,WAAY,UAC5CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,oBACH2D,MAAM,yBACNhP,QAAQ,WACRqM,MAAO4yF,EACP9vF,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,oBAAqBx6F,OAGlEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,OAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,kBACH2D,MAAM,uBACNhP,QAAQ,WACRqM,MAAO6yF,EACP/vF,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,kBAAmBx6F,UAMnEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,EAAGiH,WAAY,UAC5CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,gBACH2D,MAAM,kBACNhP,QAAQ,WACRqM,MAAOkzF,EACPpwF,SAAU,SAAC9K,GAAD,OAAOS,EAAKg6F,8BAA8B,gBAAiBz6F,OAGvEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,OAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,cACH2D,MAAM,gBACNhP,QAAQ,WACRqM,MAAOmzF,EACPrwF,SAAU,SAAC9K,GAAD,OAAOS,EAAKg6F,8BAA8B,cAAez6F,UAMxEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,MACH2D,MAAM,gBACNhP,QAAQ,WACR+O,KAAM,OACNk+C,gBAAiB,CAAEC,QAAQ,GAC3B7gD,MAAO4xB,EACP9uB,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,MAAOx6F,QAIrDsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,mBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,kBACH0D,KAAK,OACLC,MAAM,iBACNhP,QAAQ,WACRqM,MAAOk/B,EACPp8B,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,kBAAmBx6F,IAC9D4oD,gBAAiB,CAAEC,QAAQ,OAI9BvtC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,iBACH0D,KAAK,OACLC,MAAM,kBACNhP,QAAQ,WACRqM,MAAOub,EACPzY,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,iBAAkBx6F,IAC7D4oD,gBAAiB,CAAEC,QAAQ,OAI9BvtC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,cACH2D,MAAM,gBACNhP,QAAQ,WACRqM,MAAO+yF,EACPjwF,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,cAAex6F,QAsB7Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UAC5C8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,cAQH4+B,GACA3/E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBACpB0pB,EAAW/b,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACggG,GAAD,CAAmB/yF,KAAM8c,EAAY7I,OAAQ69E,GAAQpxF,QAASnO,KAAKC,MAAMkO,QAASsyF,iBAAe,IAE1Hl2E,EAAW/b,OAAS,GAAK+R,EAAAhgB,EAAAC,cAAC6oD,GAAD,CAAmBhlD,QAAS,uBAIzDkc,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,mBA9O/HkU,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBAvIYxD,aA4YrBgM,eAbS,SAAChL,GAGxB,MAAO,CAAE6kF,WAFmD7kF,EAApD6kF,WAEahO,oCAFuC72E,EAAxC62E,sCAKM,SAAC9rE,GAC3B,MAAO,CACN4vF,iBAAkB,SAACxyF,GAAD,OAAU4C,E5BlaE,SAAA5C,GAAI,sBAAAoH,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACpCuG,EAAS64E,MAD2Bt/E,EAAAE,KAAA,EAGnBoL,KAAMM,KAAKrS,GAAU,8BAA+BsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACrG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALL,WAG9BqJ,EAH8B9D,EAAAkE,MAU5BL,KAV4B,CAAA7D,EAAAE,KAAA,eAWhCuG,EAAS+4E,MAXuBx/E,EAAA2L,OAAA,SAYzB,CAACxH,SAAS,EAAO1J,QAAS,wBAZD,WAchCqJ,EAAGD,KAAKM,QAdwB,CAAAnE,EAAAE,KAAA,gBAehCuG,EAAS84E,GAAyBz7E,IAfF9D,EAAA2L,OAAA,SAgBzB,CAACxH,SAAS,EAAM1J,QAAS,KAhBA,eAkBhCgM,EAAS+4E,MAlBuBx/E,EAAA2L,OAAA,SAmBzB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBf,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,G4BkaGstF,CAAiBxyF,KACtDs9E,sCAAuC,SAACt9E,GAAD,OAAU4C,EAAS06E,GAAsCt9E,OAInF6C,CAGbpO,qBApBa,SAACC,GAAD,MAAY,CAC1BhB,UAAWgB,EAAMhB,YAmBhBe,CAAmBs9F,KCtafkB,GAA2B,CAChCC,UAAW,GACXC,eAAgB,GAChBC,UAAW,GACXC,eAAgB,GAChBC,OAAQ,GACRC,YAAa,GACbC,0BAA0B,EAC1BC,WAAY,GACZC,gBAAiB,GACjBC,iBAAkB,GAClBC,sBAAuB,IAGlBC,eACL,SAAAA,EAAYrhG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAshG,IAC3B98F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAk/F,GAAA18F,KAAA5E,KAAMC,EAAOiJ,KAWdI,kBAZ4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAYR,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACnBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,qBADmB,wBAAAiG,EAAAc,SAAAhB,EAAA1J,SAZQwE,EAgB5BqI,cAAgB,SAAChL,EAAKoD,GACrBT,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiBP,EAAMoD,EAAE+H,OAAOC,SAjBLzI,EAoB5B88D,SAAW,WACV,GAAI98D,EAAKu+E,SAAS,CAAC,YAAa,YAAa,WAAY,KAAA11E,EACvB7I,EAAKc,MAA9Bq7F,EADgDtzF,EAChDszF,UAAWE,EADqCxzF,EACrCwzF,UACfF,EAAU3oF,WAAW2lB,KAAmBkjE,EAAU7oF,WAAW2lB,IAChEn5B,EAAKU,SAAL9C,OAAA+d,EAAA,EAAA/d,CAAA,CAAgBgK,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,8CAAiDo0F,KAC5Hl8F,EAAKU,SAAS,CAAE+7F,0BAA0B,MAzBrBz8F,EA6B5B+8F,iBA7B4Bn/F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6BT,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACZtF,EAAKg9F,mBADO,wBAAA32F,EAAAH,SAAAE,EAAA5K,SA7BSwE,EAiC5Bi9F,iBAAmB,WAClBj9F,EAAKU,SAAS,CAAE+7F,0BAA0B,KAlCfz8F,EAqC5Bg9F,iBArC4Bp/F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqCT,SAAAyQ,IAAA,IAAAhL,EAAAyxF,EAAAE,EAAAE,EAAAG,EAAAE,EAAA3zF,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAoF,EACqD1K,EAAKc,MAApEq7F,EADUzxF,EACVyxF,UAAWE,EADD3xF,EACC2xF,UAAWE,EADZ7xF,EACY6xF,OAAQG,EADpBhyF,EACoBgyF,WAAYE,EADhClyF,EACgCkyF,iBAC5C3zF,EAAO,CAAEkzF,YAAWE,YAAWE,SAAQG,aAAYE,oBAFvCjnF,EAAArQ,KAAA,EAGDtF,EAAKvE,MAAMyhG,yBAAyBj0F,GAHnC,QAGZC,EAHYyM,EAAArM,MAIfC,QACAvJ,EAAKU,SAAL9C,OAAA+d,EAAA,EAAA/d,CAAA,CAAgBgK,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,iBAAoBo0F,KACrGl8F,EAAKU,SAAL9C,OAAA+d,EAAA,EAAA/d,CAAA,CAAgBgK,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,SAAYq8F,KAN/E,wBAAAvmF,EAAAzP,SAAAwP,EAAAla,SArCSwE,EA8C5Bm9F,cA9C4Bv/F,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8CZ,SAAAgR,IAAA,IAAA1C,EAAA,OAAAkV,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACPiO,EAAWvT,EAAKc,MAAhByS,OADO2C,EAAA5Q,KAAA,EAELtF,EAAKvE,MAAM2hG,sBAAsB7pF,GAF5B,WAAA2C,EAAA5M,KAAA,CAAA4M,EAAA5Q,KAAA,QAGdtF,EAAKU,SAAS,CAAEy7F,UAAW5oF,IAHb,wBAAA2C,EAAAhQ,SAAA+P,EAAAza,SA9CYwE,EAmE5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAjE9B5H,EAAKc,MAALlD,OAAA+d,EAAA,EAAA/d,CAAA,CACC2V,OAAQ,GACR3L,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WACdq0F,IARuBl8F,wEAqDnB6J,GACR,IAAIX,GAAK,EADSsF,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAElB,QAAA6R,EAAAC,EAAgB/E,EAAhBgF,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAA0B,KAAflG,EAAeqG,EAAAlG,MACnB61E,EAAWh2E,EAAI,QACC,KAAlB9M,KAAKsF,MAAMwH,IACd9M,KAAKkF,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0gF,EAAWxuC,KAC5B5mC,GAAK,GAEL1N,KAAKkF,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0gF,EAAW,MARZ,MAAArvE,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAWlB,OAAOxF,mCAOC,IAAAhI,EAAA1F,KAAAD,EAIJC,KAAKC,MAFRC,EAFOH,EAEPG,QAFO2hG,EAAA9hG,EAGP+xF,cAAiBpH,EAHVmX,EAGUnX,kCAAmCC,EAH7CkX,EAG6ClX,gCAAiCG,EAH9E+W,EAG8E/W,gBAH9EjS,EAkBJ74E,KAAKsF,MAZRyS,EANO8gE,EAMP9gE,OACA4oF,EAPO9nB,EAOP8nB,UACAC,EARO/nB,EAQP+nB,eACAC,EATOhoB,EASPgoB,UACAC,EAVOjoB,EAUPioB,eACAC,EAXOloB,EAWPkoB,OACAC,EAZOnoB,EAYPmoB,YACAC,EAbOpoB,EAaPooB,yBACAC,EAdOroB,EAcPqoB,WACAC,EAfOtoB,EAePsoB,gBACAC,EAhBOvoB,EAgBPuoB,iBACAC,EAjBOxoB,EAiBPwoB,sBAGD,OACC9gF,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,sBAAuBV,UAAWwqF,GACvDpqE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,aAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAAWqM,MAAO8K,EAAQhI,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,SAAU5H,QAG1Hsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAK2hG,eAA5D,iBAKA7W,GACAvqE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACmB,IAA3BkpF,EAAgBt8E,QAAgB+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,mBAChCkqF,EAAgBt8E,OAAS,GACzB+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQkvC,OACzB7uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,WACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,qBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,oBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,2BACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,6BACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,yBAGFD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEsqE,EAAgBt8E,OAAS,GACzBs8E,EAAgBrpF,IAAI,SAACy3B,EAAGv3B,GACvB,OACC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAKF,GACd4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAImB,EAAI,IAET4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAI04B,EAAE4oE,kBAEPvhF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAI04B,EAAEmmC,UAAF,OAAAtwD,OAAqBmqB,EAAEmmC,UAAU0iC,QAAQ,IAAO,QAErDxhF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAIkR,YAAoBwnB,EAAE8oE,mBAE3BzhF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAIkR,YAAoBwnB,EAAEuwC,WAE3BlpD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAImR,YAAwBunB,EAAE+oE,iBAE/B1hF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAI04B,EAAEgpE,qBAEP3hF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAAA,SAAI04B,EAAEipE,yBAahBlB,GACD1gF,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,kBAAmBV,UAAWuqF,GACnDnqE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAO0zF,EACP5wF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,YAAa5H,IAC/C4K,QAAS+wF,EACT9wF,WAAY8wF,MAIfrgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAO4zF,EACP9wF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,YAAa5H,IAC/C4K,QAASixF,EACThxF,WAAYgxF,MAIfvgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,GACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAO8zF,EACPhxF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,SAAU5H,IAC5C4K,QAASmxF,EACTlxF,WAAYkxF,MAIfzgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,aAQH2/B,GACA1gF,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,4BAA6BV,UAAWuqF,GAC7DnqE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,gBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAU+/F,KAGjCpgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,gBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUigG,KAGjCtgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAAUmgG,KAGjCxgF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,OAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,UACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAOi0F,EACPnxF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,aAAc5H,IAChD4K,QAASsxF,EACTrxF,WAAYqxF,MAIf5gF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,aAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,WACND,KAAK,WACL5G,OAAO,SACPnI,QAAQ,WACRqM,MAAOm0F,EACPrxF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,mBAAoB5H,IACtD4K,QAASwxF,EACTvxF,WAAYuxF,MAIf9gF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKyhG,kBAA5D,WAIDlhF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKuhG,kBAA5D,eASNhhF,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAxTrG/H,aA+UrBgM,eAbS,SAAAhL,GAGvB,MAAO,CAAEwsF,cAFiBxsF,EAAlBwsF,gBAKkB,SAAAzhF,GAC1B,MAAO,CACNqxF,yBAA0B,SAAAj0F,GAAI,OAAI4C,E5BrVI,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC/CuG,EAAS+5E,MADsCv/E,EAAAf,KAAA,EAG9BoL,KAAMM,KAAKrS,GAAU,0BAA2BsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACpG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARiC,WAGzCqJ,EAHyC7C,EAAAiD,MAgBvCL,KAhBuC,CAAA5C,EAAAf,KAAA,eAiB9CuG,EAASi6E,MAjBqCz/E,EAAA0K,OAAA,SAkBvC,CAAExH,SAAS,EAAO1J,QAAS,wBAlBY,WAoB3CqJ,EAAGD,KAAKM,QApBmC,CAAAlD,EAAAf,KAAA,gBAqB9CuG,EAASg6E,GAAiC38E,IArBI7C,EAAA0K,OAAA,SAsBvC,CAAExH,SAAS,EAAM1J,QAAS,KAtBa,eAwB9CgM,EAASi6E,MAxBqCz/E,EAAA0K,OAAA,SAyBvC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBF,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,G4BqVC+uF,CAAyBj0F,KACpEm0F,sBAAuB,SAAA7pF,GAAM,OAAI1H,E5BxSE,SAAA0H,GAAM,sBAAAkC,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAC9CuG,EAASk6E,MADqCpwE,EAAArQ,KAAA,EAG7BoL,KAAMC,IAAIhS,GAAU,wCAA0C4U,EAAQxH,eAAwB6E,MAAM,SAAAnQ,GACpH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aARgC,WAGxCqJ,EAHwCyM,EAAArM,MAgBtCL,KAhBsC,CAAA0M,EAAArQ,KAAA,eAiB7CuG,EAASo6E,MAjBoCtwE,EAAA5E,OAAA,SAkBtC,CAAExH,SAAS,EAAO1J,QAAS,wBAlBW,WAoB1CqJ,EAAGD,KAAKM,QApBkC,CAAAoM,EAAArQ,KAAA,gBAqB7CuG,EAASm6E,GAA8B98E,EAAGD,KAAKoL,OAAO2V,QArBTrU,EAAA5E,OAAA,SAsBtC,CAAExH,SAAS,EAAM1J,QAAS,KAtBY,eAwB7CgM,EAASo6E,MAxBoCtwE,EAAA5E,OAAA,SAyBtC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAzBH,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,G4BwSCivF,CAAsB7pF,OAInDzH,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,CACxBhB,UAAWgB,EAAMhB,YAgB0Ce,CAAmBo/F,KCzUhEc,+LAjBPtzF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,0CAIA,OACI4c,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACrBmf,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC3BiG,eAAkCmM,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,oCAblDI,IAAM5D,WCcnB+9F,eACF,SAAAA,EAAYpiG,EAAOiJ,GAAS,IAAA1E,EAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqiG,IACxB79F,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAigG,GAAAz9F,KAAA5E,KAAMC,EAAOiJ,KA4CjB05E,kBAAoB,SAAA1wD,GAAI,OAAI,SAAAjtB,GAAK,IAAA49E,EACvBC,EAAW5wD,EAAO,QACxB1tB,EAAKU,UAAL29E,EAAA,GAAAzgF,OAAA8sB,GAAA,EAAA9sB,CAAAygF,EAAiB3wD,EAAOjtB,EAAE+H,OAAOC,OAAjC7K,OAAA8sB,GAAA,EAAA9sB,CAAAygF,EAAyCC,EAAW,IAApDD,MA/CwBr+E,EAmE5B89F,kBAAoB,WAChB,IAAMh4E,EAAWznB,eAEjB,OAAOkC,OAAOw9F,WAAWC,QAAQl4E,EAAS5mB,iBAAkB,CACxDkF,OAAQ,WAvEYpE,EA2E5B88D,SA3E4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2EjB,SAAAC,IAAA,IAAA2D,EAAAiL,EAAAC,EAAAkqF,EAAAh1F,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACPtF,EAAKU,SAAS,CAAEkH,cAAc,IACzB5H,EAAKu+E,WAFH,CAAAn5E,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,oBAIF/Q,EAAKvE,MAAMqc,WAJT,CAAA1S,EAAAE,KAAA,gBAAAuD,EAK0C7I,EAAKc,MAA1CgT,EALLjL,EAKKiL,uBAAwBC,EAL7BlL,EAK6BkL,SAL7B3O,EAAAE,KAAA,EAMwBtF,EAAK89F,oBAN7B,cAMGG,EANH74F,EAAAkE,KAOGL,EAAO,CAAE6K,yBAAwBC,WAAUkqF,gBAP9C74F,EAAAE,KAAA,GAQctF,EAAKvE,MAAMsa,YAAY9M,GARrC,SAQGC,EARH9D,EAAAkE,MASAC,QACGvJ,EAAKU,SAAS,CAAEo+E,iBAAiB,IACjC9+E,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAd3BuF,EAAAE,KAAA,iBAiBHtF,EAAKvE,MAAMkO,QAAQC,KAAK,cAjBrB,yBAAAxE,EAAAc,SAAAhB,EAAA1J,SA3EiBwE,EAgG5Bk+F,cAhG4BtgG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgGZ,SAAAmB,IAAA,IAAAsE,EAAAoJ,EAAAC,EAAAkqF,EAAAh1F,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACZtF,EAAKU,SAAS,CAAEkH,cAAc,IACzB5H,EAAKu+E,WAFE,CAAAl4E,EAAAf,KAAA,eAAAe,EAAA0K,OAAA,oBAIP/Q,EAAKvE,MAAMqc,WAJJ,CAAAzR,EAAAf,KAAA,gBAAAoF,EAKqC1K,EAAKc,MAA1CgT,EALApJ,EAKAoJ,uBAAwBC,EALxBrJ,EAKwBqJ,SALxB1N,EAAAf,KAAA,EAMmBtF,EAAK89F,oBANxB,cAMFG,EANE53F,EAAAiD,KAOFL,EAAO,CAAE6K,yBAAwBC,WAAUkqF,gBAPzC53F,EAAAf,KAAA,GAQStF,EAAKvE,MAAM6a,iBAAiBrN,GARrC,QAQFC,EARE7C,EAAAiD,KASRtJ,EAAK89F,oBACL50F,EAAGK,QACGvJ,EAAKU,SAAS,CAAEy9F,sBAAsB,IACtCn+F,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,UAftBwG,EAAAf,KAAA,iBAkBRtF,EAAKvE,MAAMkO,QAAQC,KAAK,cAlBhB,yBAAAvD,EAAAH,SAAAE,EAAA5K,SAhGYwE,EAsH5Bw+E,SAtH4B5gF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAsHjB,SAAAyQ,IAAA,IAAAuoF,EAAA5pB,EAAAvgE,EAAAC,EAAA9K,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACPtF,EAAKU,SAAS,CAAE09F,iBAAkB,IAD3BzoF,EAAArQ,KAAA,EAGoBtF,EAAK89F,oBAHzB,cAGDG,EAHCtoF,EAAArM,KAAA+qE,EAIsCr0E,EAAKc,MAA1CgT,EAJDugE,EAICvgE,uBAAwBC,EAJzBsgE,EAIyBtgE,SAC1B9K,EAAO,CAAE6K,yBAAwBC,WAAUkqF,gBAL1CtoF,EAAArQ,KAAA,EAMUtF,EAAKvE,MAAMsa,YAAY9M,GANjC,QAMDC,EANCyM,EAAArM,MAOJC,QACGvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,WACjBu2F,kBAAmBr+F,EAAKc,MAAMu9F,kBAAoB,IAEtDr+F,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBw+F,kBAAmBr+F,EAAKc,MAAMu9F,kBAAoB,IAlBrD,yBAAA1oF,EAAAzP,SAAAwP,EAAAla,SAtHiBwE,EA4I5Bs+F,iBA5I4B1gG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4IT,SAAAgR,IAAA,IAAA8oE,EAAAjrE,EAAAC,EAAAkqF,EAAAh1F,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACftF,EAAKU,SAAS,CAAE09F,iBAAkB,IADnBrf,EAG8B/+E,EAAKc,MAA1CgT,EAHOirE,EAGPjrE,uBAAwBC,EAHjBgrE,EAGiBhrE,SAHjBmC,EAAA5Q,KAAA,EAIYtF,EAAK89F,oBAJjB,cAITG,EAJS/nF,EAAA5M,KAKTL,EAAO,CAAE6K,yBAAwBC,WAAUkqF,gBALlC/nF,EAAA5Q,KAAA,EAMEtF,EAAKvE,MAAM6a,iBAAiBrN,GAN9B,QAMTC,EANSgN,EAAA5M,MAOZC,QACGvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,WACjBu2F,kBAAmBr+F,EAAKc,MAAMu9F,kBAAoB,IAEtDr+F,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBw+F,kBAAmBr+F,EAAKc,MAAMu9F,kBAAoB,IAlB7C,yBAAAnoF,EAAAhQ,SAAA+P,EAAAza,SA5ISwE,EAkK5Bu+F,wBAlK4B3gG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkKF,SAAAuR,IAAA,OAAAiS,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cAAAmR,EAAAnR,KAAA,EAChBtF,EAAKs+F,mBADW,OAEtBt+F,EAAKU,SAAS,CAAEo+E,iBAAiB,EAAOqf,sBAAsB,IAFxC,wBAAA1nF,EAAAvQ,SAAAsQ,EAAAhb,SAlKEwE,EAuK5B8b,kBAAoB,WAChB9b,EAAKU,SAAS,CAAEkH,cAAc,KAxKN5H,EA2K5By+E,YA3K4B,eAAA1nE,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA2Kd,SAAA+R,EAAMvW,GAAN,IAAA+9F,EAAA1qF,EAAAC,EAAA2qE,EAAAvmE,EAAAlP,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,UACN7E,GAAGA,EAAE40B,iBADCmpE,EAGwCx+F,EAAKc,MAA/CgT,EAHE0qF,EAGF1qF,uBAAwBC,EAHtByqF,EAGsBzqF,SAEpB,MAF8B2qE,EAHhC8f,EAGgC9f,KAHhC,CAAAxnE,EAAA5R,KAAA,eAMNtF,EAAKU,SAAS,CAAEi+E,SAAU,2BANpBznE,EAAAnG,OAAA,iBASN/Q,EAAKU,SAAS,CAAEi+E,SAAU,KATpB,cAYFxmE,EAAQnY,EAAKvE,MAAb0c,IACFlP,EAAO,CAAE6K,yBAAwBC,WAAU2qE,MAAKvmE,OAb5CjB,EAAA5R,KAAA,GAcOtF,EAAKvE,MAAM2b,wBAAwBnO,GAd1C,SAcJC,EAdIgO,EAAA5N,MAgBHC,QAC8BvJ,EAAKvE,MAA9BwF,qBAGFjB,EAAKvE,MAAMkO,QAAQC,KAAK,oBACxB5J,EAAKvE,MAAMkO,QAAQC,KAAK,eAE9B5J,EAAKU,SAAS,CACV09F,iBAAkBp+F,EAAKc,MAAMs9F,iBAAmB,IAEpDp+F,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,WA7BlB,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SA3Kc,gBAAAyV,GAAA,OAAA8F,EAAA1F,MAAA7V,KAAA2S,YAAA,GAAAnO,EA6M5By+F,iBA7M4B,eAAApnF,EAAAzZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6MT,SAAAqS,EAAM7W,GAAN,IAAAi+F,EAAA5qF,EAAAC,EAAA2qE,EAAAz1E,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,UACX7E,GAAGA,EAAE40B,iBADMqpE,EAGmC1+F,EAAKc,MAA/CgT,EAHO4qF,EAGP5qF,uBAAwBC,EAHjB2qF,EAGiB3qF,SAEpB,MAF8B2qE,EAH3BggB,EAG2BhgB,KAH3B,CAAAlnE,EAAAlS,KAAA,eAMXtF,EAAKU,SAAS,CAAEi+E,SAAU,2BANfnnE,EAAAzG,OAAA,iBASX/Q,EAAKU,SAAS,CAAEi+E,SAAU,KATf,cAYT11E,EAAO,CAAE6K,yBAAwBC,WAAU2qE,OAZlClnE,EAAAlS,KAAA,GAaEtF,EAAKvE,MAAMqb,6BAA6B7N,GAb1C,SAaTC,EAbSsO,EAAAlO,MAeRC,QAC8BvJ,EAAKvE,MAA9BwF,qBAGFjB,EAAKvE,MAAMkO,QAAQC,KAAK,oBACxB5J,EAAKvE,MAAMkO,QAAQC,KAAK,eAE9B5J,EAAKU,SAAS,CACV09F,iBAAkBp+F,EAAKc,MAAMs9F,iBAAmB,IAEpDp+F,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,WA5Bb,yBAAA2X,EAAAtR,SAAAoR,EAAA9b,SA7MS,gBAAA0V,GAAA,OAAAmG,EAAAhG,MAAA7V,KAAA2S,YAAA,GAExBnO,EAAKc,MAAQ,CACTgT,uBAAwB,GACxB8qE,4BAA6B,GAC7B7qE,SAAU,GACV8qE,cAAe,GACfC,iBAAiB,EACjBqf,sBAAsB,EACtBzf,IAAK,GACLC,SAAU,GACV/2E,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,GACjBw2F,kBAAmB,EACnBM,mBAAmB,EACnBP,iBAAkB,GAGtB,IAAMt4E,EAAWznB,eACXugG,EAASt0F,SAAStO,cAAc,UApBd,OAqBxB4iG,EAAOrgF,IAAP,kDAAAhU,OACIub,EAAS5mB,kBAGboL,SAAS6R,KAAK0iF,YAAYD,GAzBF5+F,mFA6BxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,UAEoBwC,aAAaC,QAAQ,gBAErCpG,KAAKC,MAAMkO,QAAQC,KAAK,yDAIbsjB,GACXA,EAAUmxE,oBAAsB7iG,KAAKsF,MAAMu9F,mBACvC7iG,KAAKsF,MAAMu9F,kBAAoB,GAC/B7iG,KAAKkF,SAAS,CAAEi+F,mBAAmB,uCAqB3C,MAN0C,KAAtCnjG,KAAKsF,MAAMgT,wBACXtY,KAAKkF,SAAS,CACVk+E,4BAA6B,2BAET,KAAxBpjF,KAAKsF,MAAMiT,UACXvY,KAAKkF,SAAS,CAAEm+E,cAAe,6BAEO,KAAtCrjF,KAAKsF,MAAMgT,wBACa,KAAxBtY,KAAKsF,MAAMiT,2CA+KV,IAAAxY,EAODC,KAAKC,MALLC,EAFCH,EAEDG,QACAqc,EAHCxc,EAGDwc,YACAG,EAJC3c,EAID2c,qBACAE,EALC7c,EAKD6c,iCACAtI,EANCvU,EAMDuU,UANCgvF,EAgBDtjG,KAAKsF,MAPLg+E,EATCggB,EASDhgB,gBACAqf,EAVCW,EAUDX,qBACAzf,EAXCogB,EAWDpgB,IACA72E,EAZCi3F,EAYDj3F,gBACAC,EAbCg3F,EAaDh3F,gBACA62E,EAdCmgB,EAcDngB,SACA7qE,EAfCgrF,EAeDhrF,uBAEEnY,EACFoc,GACAG,GACAE,EAEJ,OACI2D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIX,UAAWP,EAAQsjF,gBAC5CjjE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQujF,cACpBljE,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQwjF,UACpBnjE,EAAAhgB,EAAAC,cAACmjF,GAAA,EAAD,CAAMl7E,MAAO,WAGjB8X,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQa,QACpBuiF,IAAoBqf,GAClBpiF,EAAAhgB,EAAAC,cAAA,QAAMojF,YAAU,EAAC/B,aAAa,OAC1BthE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIgvB,WAAS,EACT3/B,MAGI,KAFA7P,KAAKsF,MACA89E,4BAGTtzE,WACI9P,KAAKsF,MACA89E,4BAETn3E,GAAG,WACHrL,QAAQ,WACRgP,MAAM,QACN7G,OAAO,SACPiH,WAAW,EACXzO,MAAO,CAAEkH,MAAO,KAChBwE,MACIjN,KAAKsF,MACAgT,uBAETq3B,WAAY3vC,KAAK2vC,WACjB5/B,SAAU/P,KAAK4iF,kBACX,6BAKZriE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI3Q,MACiC,KAA7B7P,KAAKsF,MAAM+9E,cAEfvzE,WACI9P,KAAKsF,MAAM+9E,cAEfp3E,GAAG,WACHrL,QAAQ,WACRgP,MAAM,WACND,KAAK,WACL5G,OAAO,SACPiH,WAAW,EACXzO,MAAO,CAAEkH,MAAO,KAChBwE,MAAOjN,KAAKsF,MAAMiT,SAClBo3B,WAAY3vC,KAAK2vC,WACjB5/B,SAAU/P,KAAK4iF,kBACX,eAKX5iF,KAAKsF,MAAM8G,cACRmU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CACIjjF,QAASyL,EACThI,QAASiI,EACTnI,QAASnE,KAAKsgB,qBAK1BC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACmiB,EAAA,EAAD,CAAM7a,GAAI,mBACNyY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYw4D,WAAW,GAAvB,qBAMRz4D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYw4D,WAAW,GAAvB,kDAMJz4D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,GACXof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,UACN4Z,KAAK,QACLngB,QAAQ,YACRwG,QAASpH,KAAKshE,UAEd/gD,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,MANJ,YASJH,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAM,UACN4Z,KAAK,QACLngB,QAAQ,YACRwG,QAASpH,KAAK0iG,eAEdniF,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,MANJ,cAcnB4iE,GACG/iE,EAAAhgB,EAAAC,cAAA,QACIojF,YAAU,EACV/B,aAAa,MACbvgB,SAAUthE,KAAKijF,aAEf1iE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oCACsC,IACjCyT,YAAcC,KAGvBiM,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,WACL1D,GAAG,MACH2D,MAAM,MACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAOi2E,EACPnzE,SAAU/P,KAAK4iF,kBACX,OAEJ/yE,QAASszE,EACTrzE,WAAYqzE,EACZ3zC,WAAS,KAGhBxvC,KAAKsF,MAAM8G,cACRmU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CACIjjF,QAASyL,EACThI,QAASiI,EACTnI,QAASnE,KAAKsgB,qBAI1BC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTC,QAAS,UAETkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,WACRwG,QACIpH,KAAK+iG,wBAEThjF,SACI/f,KAAKsF,MAAM69F,mBAPnB,yBAaJ5iF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,WACRwG,QAASpH,KAAKgjF,SACdjjE,SACI/f,KAAKsF,MAAM69F,mBALnB,eAWJ5iF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKijF,YACdljE,SACI/f,KAAKsF,MACAs9F,iBAAmB,GANhC,cAiBnBD,GACGpiF,EAAAhgB,EAAAC,cAAA,QACIojF,YAAU,EACV/B,aAAa,MACbvgB,SAAUthE,KAAKijG,kBAEf1iF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTC,QAAS,GACTqO,UAAW,UAEX8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oCACsC,IACjCyT,YACGiE,KAIZiI,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,WACL1D,GAAG,MACH2D,MAAM,MACN7G,OAAO,SACPnI,QAAQ,WACRqM,MAAOi2E,EACPnzE,SAAU/P,KAAK4iF,kBACX,OAEJ/yE,QAASszE,EACTrzE,WAAYqzE,EACZ3zC,WAAS,KAGhBxvC,KAAKsF,MAAM8G,cACRmU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACqjF,GAAA,EAAD,CACIjjF,QAASyL,EACThI,QAASiI,EACTnI,QAASnE,KAAKsgB,qBAI1BC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrf,WAAS,EACTS,MAAI,EACJR,QAAS,GACTC,QAAS,UAETkf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,WACRwG,QAASpH,KAAK8iG,iBACd/iF,SACI/f,KAAKsF,MAAM69F,mBALnB,eAWJ5iF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIrZ,MAAO,UACPvG,QAAQ,YACRwG,QAASpH,KAAKijG,iBACdljF,SACI/f,KAAKsF,MACAs9F,iBAAmB,GANhC,cAiBnBziG,GAAaogB,EAAAhgB,EAAAC,cAAC8uE,GAAA,EAAD,CAAkBttE,MAAM,cAviBnCsC,aAmmBZgM,eApDS,SAAAhL,GAAS,IAAAw+E,EAYzBx+E,EAVA0J,SAYJ,MAAO,CACHsN,WAfyBwnE,EAGrBxnE,WAaJE,kBAhByBsnE,EAIrBtnE,kBAaJD,YAjByBunE,EAKrBvnE,YAaJI,IAlByBmnE,EAMrBnnE,IAaJD,qBAnByBonE,EAOrBpnE,qBAaJE,iCApByBknE,EAQrBlnE,iCAaJtI,UArByBwvE,EASrBxvE,UAaJ7O,qBAtByBq+E,EAUrBr+E,uBAgBe,SAAA4K,GACvB,MAAO,CACHgI,MAAO,SAAC/P,EAAUiQ,GAAX,OAAwBlI,EAASgI,aAAM/P,EAAUiQ,KACxDgC,YAAa,SAACjS,EAAUiQ,GAAX,OACTlI,EAASkK,aAAYjS,EAAUiQ,KACnCqD,wBAAyB,SAACtT,EAAUiQ,EAAU2qE,EAAKvmE,GAA1B,OACrBtM,EAASuL,aAAwBtT,EAAUiQ,EAAU2qE,EAAKvmE,KAC9D7B,iBAAkB,SAACxS,EAAUiQ,GAAX,OACdlI,EAASyK,aAAiBxS,EAAUiQ,KACxC+C,6BAA8B,SAAChT,EAAUiQ,GAAX,OAC1BlI,EAASiL,aAA6BhT,EAAUiQ,OAgB7CjI,CAGbpO,qBAfa,CACXshF,eAAgB,CAAE/6E,MAAO,OAAQoyB,OAAQ,SACzC4oD,aAAc,CACVh7E,MAAO,QACPoyB,OAAQ,QACR3E,UAAW,SACXntB,OAAQ,QAEZ26E,SAAU,CAAEnhF,QAAS,QACrBxB,MAAO,CAAEwB,QAAS,OAAQC,SAAU,aAMtCN,CAAmBmgG,KC3nBf9C,GAAS,CACX,CAAC19F,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,YAAa+N,MAAO,cAC1B,CAAC/N,IAAK,WAAY+N,MAAO,aACzB,CAAC/N,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,cAAe+N,MAAO,iBAC5B,CAAC/N,IAAK,UAAW+N,MAAO,YACxB,CAAC/N,IAAK,SAAU+N,MAAO,WACvB,CAAC/N,IAAK,iBAAkB+N,MAAO,mBAC/B,CAAC/N,IAAK,aAAc+N,MAAO,eAC3B,CAAC/N,IAAK,YAAa+N,MAAO,cAC1B,CAAC/N,IAAK,uBAAwB+N,MAAO,kBACrC,CAAC/N,IAAK,uBAAwB+N,MAAO,kBACrC,CAAC/N,IAAK,eAAgB+N,MAAO,kBAG3B2zF,8MAEFC,eAAiB,SAAAxlG,GAEb,OAAOuiB,EAAAhgB,EAAAC,cAAA,UADM,CAAC,WAAY,WAAY,WAAY,YAExCiB,IAAI,SAAAqL,GACN,MAAa,KAAT9O,EAAE8O,GAAkByT,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK7D,EAAEiO,GAAKa,GAAI9O,EAAE8O,IAClCyT,EAAAhgB,EAAAC,cAAA,wFAKf,IAAAkF,EAAA1F,KAAAD,EAC+BC,KAAKC,MAAlCC,EADFH,EACEG,QAASuN,EADX1N,EACW0N,KAAM4+E,EADjBtsF,EACiBssF,WAEtB,OACI9rE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WAEtBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOje,QAAS,SACZge,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK++E,GAAO99F,IAAI,SAAA4Q,GACR,OAAOkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAKwQ,EAAExQ,KAAMwQ,EAAEzC,WAK7C2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACK/S,EAAKhM,IAAI,SAACzD,EAAGykB,GACV,OAAOlC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK7D,EAAEiO,GAAIxL,UAAWgiB,IAAS4pE,EAAansF,EAAQovC,QAAU,IAC1EiwD,GAAO99F,IAAI,SAAA4Q,GACR,OAAOkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK7D,EAAEiO,GAAKoG,EAAExQ,KACjB,QAAVwQ,EAAExQ,KAAiB4gB,EAAO,EAEhB,cAAVpQ,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQgyB,KACrB9qB,QAAS,kBAAM1B,EAAKzF,MAAMwjG,YAAYhhF,EAAMzkB,KAAKA,EAAEirB,WAE5C,aAAV5W,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQgyB,KACrB9qB,QAAS,kBAAM1B,EAAKzF,MAAMwjG,YAAYhhF,EAAMzkB,KAAKA,EAAEurB,UAE5C,QAAVlX,EAAExQ,KAAiB0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAE2iC,KAEf,gBAAVtuB,EAAExQ,KAAyB0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEgiG,aAEvB,YAAV3tF,EAAExQ,KAAqB6D,EAAK89F,eAAexlG,GAEjC,WAAVqU,EAAExQ,KAAoB0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAE+Z,QAElB,mBAAV1F,EAAExQ,KAA4B0e,EAAAhgB,EAAAC,cAAA,SAAI6pB,GAA0BrsB,EAAEgyB,iBAEpD,eAAV3d,EAAExQ,KAAwB0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEiiC,YAEtB,cAAV5tB,EAAExQ,KAAuB0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEuF,UAAYvF,EAAEuF,SAASiL,QAAUxQ,EAAEuF,SAAS,GAAGg8D,WAEpE,yBAAVltD,EAAExQ,KAAkC0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEqiC,sBAEhC,yBAAVhuB,EAAExQ,KAAkC0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEsiC,sBAEhC,iBAAVjuB,EAAExQ,KAA0B0e,EAAAhgB,EAAAC,cAAA,SAAIxC,EAAEisD,8BA5DnC3lD,aA+EzBpC,wBANA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,WACrB+wB,KAAM,CAACge,OAAQ,UAAWC,aAAc,mBACxCb,QAAS,CAAC5mC,gBAAiB0nC,QAAK,OAGrBluC,CAAmBqhG,wBC9F5BG,oLACI,IAAAl/F,EAAAxE,KACRq2B,QAAQC,IAAIt2B,KAAKC,OADT,IAAAF,EAE6FC,KAAKC,MAAlGC,EAFAH,EAEAG,QAAS2qB,EAFT9qB,EAES8qB,eAAgBC,EAFzB/qB,EAEyB+qB,wBAAyBg7B,EAFlD/lD,EAEkD+lD,6BAA8B+pB,EAFhF9vE,EAEgF8vE,SAExF,OADkB/pB,GAAgC9lD,KAAKC,MAAM6nD,wBAA0B9nD,KAAKC,MAAM8nD,2BAkBjGxnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEsK,EAAwBrpB,IAAI,SAAC20E,EAAOz0E,GAAR,OAC5B4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK,aAAeF,EAAGlB,UAAWqlD,EAA6Bt1B,IAAI7uB,GAAKzB,EAAQ4uB,aAAe,IACxGvO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAActgB,QAAS,CAAEgvC,KAAMhvC,EAAQ4pD,eAAiBnoD,EAAI,EAA5D,KACA4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAcpZ,QAAS,kBAAM5C,EAAKvE,MAAMmoD,kBAAkBguB,IAAQl2E,QAAS,CAAEgvC,KAAMhvC,EAAQ4pD,cAAgBrpD,UAAWP,EAAQ6pD,SAC5Hl/B,EAAelpB,IAEhB6C,EAAKvE,MAAM6nD,wBACXvnC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACGslC,EAA6Bt1B,IAAI7uB,IAAM4e,EAAAhgB,EAAAC,cAAC+iB,EAAD,CAAiBnc,QAAS,kBAAM5C,EAAKvE,MAAM6nD,uBAAuBnmD,IAAIoe,SAAU8vD,IACxH/pB,EAA6Bt1B,IAAI7uB,IAAM4e,EAAAhgB,EAAAC,cAACovC,GAAD,CAAexoC,QAAS,kBAAM5C,EAAKvE,MAAM8nD,2BAA2BpmD,IAAIoe,SAAU8vD,UA1B/HtvD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEsK,EAAwBrpB,IAAI,SAAC20E,EAAOz0E,GAAR,OAC5B4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK,aAAeF,GAC7B4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAActgB,QAAS,CAAEgvC,KAAMhvC,EAAQ4pD,eAAiBnoD,EAAI,EAA5D,KACA4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAcpZ,QAAS,kBAAM5C,EAAKvE,MAAMmoD,kBAAkBguB,IAAQl2E,QAAS,CAAEgvC,KAAMhvC,EAAQ4pD,cAAgBrpD,UAAWP,EAAQ6pD,SAC5Hl/B,EAAelpB,gBAbU2C,aA4CnCo/F,GAAqBC,WAAa,CACjC94E,eAAgB+4E,KAAUtF,MAAMuF,WAChCz7C,kBAAmBw7C,KAAUE,KAAKD,WAClC97C,2BAA4B67C,KAAUE,KAAKD,WAC3C/9C,6BAA8B89C,KAAUE,KAAKD,YAG9C,IAOe3hG,wBAPA,SAAAC,GAAK,MAAK,CACxBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB2oD,aAAc,CAAEvsB,KAAM,QACtBwsB,QAAS,CAAE7Z,OAAQ,WACnBphB,aAAa1sB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMwd,qBAGXzd,CAAmBwhG,ICnD5BK,GAAiB,CACnBC,SAAU,GACVpjE,OAAQ,GACRxB,cAAe,GACfJ,YAAa,GACbpU,QAAS,IAGPq5E,8MAEFp3F,cAAgB,SAAC4/E,EAAM3/E,EAAG7H,GACtBT,EAAKvE,MAAM4M,cAAc4/E,EAAM3/E,EAAG7H,MAGtCmjD,kBAAoB,SAACpzC,GACjBjQ,OAAOb,KAAK8Q,4EAGP,IAAAtP,EAAA1F,KAAAD,EACkFC,KAAKC,MAArFC,EADFH,EACEG,QAAS2vE,EADX9vE,EACW8vE,SAAUpgD,EADrB1vB,EACqB0vB,UAAW0L,EADhCp7B,EACgCo7B,MAAO2qB,EADvC/lD,EACuC+lD,6BAA8Bo+C,EADrEnkG,EACqEmkG,UACtEC,EAAUJ,GACVK,EAAUL,GACVM,EAAUN,GACVO,EAAUP,GASd,OARIt0E,EAAU4f,QAAQ7gC,OAAS,IAC3B21F,EAAU10E,EAAU4f,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAClD6nC,EAAU30E,EAAU4f,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAClD8nC,EAAU50E,EAAU4f,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,WAClD+nC,EAAU70E,EAAU4f,QAAQ,GAAG28C,OAAO55E,KAAK,SAAAoU,GAAC,OAAmB,IAAfA,EAAE+1C,YAKlDh8C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOwiB,EAAUxG,UACjBlZ,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,YAAa5H,QAI/Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOwiB,EAAUlG,SACjBxZ,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,WAAY5H,SAMlEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACf7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAM,OACN1D,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOuE,YAAsBie,EAAUoP,KACvC9uB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,MAAO5H,QAIrDsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,OAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOwiB,EAAUkR,IACjB5wB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,MAAO5H,SAK7Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,WAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOwiB,EAAU7E,QACjB7a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,UAAW5H,QAI7Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOwiB,EAAUuwE,YACjBjwF,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,GAAI,cAAe5H,QAIhEwqB,EAAUkgE,gBAAkBlgE,EAAUkgE,eAAenhF,OAAS,GAC3D+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC+jG,GAAD,CACI15E,eAAgB4E,EAAUkgE,gBAAkB,GAC5C7kE,wBAAyB2E,EAAU3E,yBAA2B,GAC9Ds9B,kBAAmBpoD,KAAKooD,yBASpD7nC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,OAGJD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,cAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,SAAU2S,GAAI,GACvD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,aAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOk3F,EAAQjyF,SACf6N,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,WAAY5H,QAIrEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOk3F,EAAQvjE,OACf7gB,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,SAAU5H,QAInEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAM,OACN1D,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOuE,YAAsB2yF,EAAQ/kE,eACrCrvB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,QAI1Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOk3F,EAAQnlE,YACfjf,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,SAItEi/F,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1DkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,UAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI4b,WAAS,EACTnwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOk3F,EAAQv5E,QACf7a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,UAAW5H,SAMxEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,SAAU2S,GAAI,GACvD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,aAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOm3F,EAAQlyF,SACf6N,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,QAIxEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOm3F,EAAQxjE,OACf7gB,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,SAAU5H,QAInEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAM,OACN1D,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOuE,YAAsB4yF,EAAQhlE,eACrCrvB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,QAI1Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAOm3F,EAAQplE,YACfjf,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,SAItEi/F,GAAa3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UACzDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYgC,KAAG,EAACvV,MAAOm3F,EAAQ15E,cAAe3a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,KACxGsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,KAAM2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,OAClG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,MAAO2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,QACnG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,OAAQ2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,SACpG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,QAAS2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,aAKtF,OAA1Bw0F,EAAQ15E,gBAA2Bw5E,GAChC3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,0BAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI4b,WAAS,EACTnwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAOm3F,EAAQx5E,QACf7a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,UAAW5H,QAM7C,OAA1Bm/F,EAAQ15E,gBAA2Bw5E,GAChC3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,8BAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACopD,GAAD,CAAiBzK,OAAQn/C,KAAKm/C,WAKf,OAA1BilD,EAAQ15E,gBAA2Bw5E,GAChC3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACV,KAEL7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAAA,UACK26B,EAAM15B,IAAI,SAAC4Q,EAAG1Q,GAAJ,OACP4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,QAAUF,GACf4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAEyQ,EAAE6f,MACd3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CACIjgB,UAAWP,EAAQ6pD,QACnB5iD,MAAO,YACPC,QAAS,kBAAM1B,EAAKq6C,oBAAoB1tC,EAAG1Q,cAWpD,OAA1ByiG,EAAQ15E,eAA0B05E,EAAQv5E,gBAAkBu5E,EAAQv5E,eAAerc,OAAS,IAAM01F,GAC/F3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC+jG,GAAD,CACI15E,eAAgBu5E,EAAQv5E,eACxBC,wBAAyBs5E,EAAQt5E,wBACjCs9B,kBAAmBpoD,KAAKooD,kBACxBtC,6BAA8BA,EAC9BgC,uBAAwB9nD,KAAK8nD,uBAC7BC,2BAA4B/nD,KAAK+nD,+BAMpDm8C,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,SAAU2S,GAAI,GAClE7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,aAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZo3F,QAAgC/iG,IAAZ+iG,EAAyBA,EAAQnyF,SAAW,GACzE6N,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,WAAY5H,QAIrEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZo3F,QAAgC/iG,IAAZ+iG,EAAyBA,EAAQzjE,OAAS,GACvE7gB,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,SAAU5H,QAInEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAM,OACN1D,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAqB,OAAZo3F,QAAgC/iG,IAAZ+iG,EAAyB7yF,YAAsB6yF,EAAQjlE,eAAiB,GACrGrvB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,QAI1Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZo3F,QAAgC/iG,IAAZ+iG,EAAyBA,EAAQrlE,YAAc,GAC5Ejf,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,SAItEi/F,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1DkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,UAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI4b,WAAS,EACTnwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAqB,OAAZo3F,QAAgC/iG,IAAZ+iG,EAAyBA,EAAQz5E,QAAU,GACxE7a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,UAAW5H,SAO3Ei/F,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,SAAU2S,GAAI,GAClE7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,MAArB,aAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyBA,EAAQpyF,SAAW,GACzE6N,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,QAIxEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,mBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyBA,EAAQ1jE,OAAS,GACvE7gB,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,SAAU5H,QAInEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAM,OACN1D,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyB9yF,YAAsB8yF,EAAQllE,eAAiB,GACrGrvB,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,QAI1Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyBA,EAAQtlE,YAAc,GAC5Ejf,SAAU8vD,EACV7/D,WAAS,EACTD,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,cAAe5H,SAItEi/F,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1DkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYgC,KAAG,EACXvV,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyBA,EAAQ55E,cAAgB,GAC9E3a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,gBAAiB5H,KAC9Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,KAAM2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,OAClG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,MAAO2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,QACnG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,OAAQ2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,SACpG2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAkBvT,MAAO,QAAS2wC,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAOrZ,MAAO,YAAa4Y,SAAU8vD,IAAcjgE,MAAO,aAKpG,OAAZ00F,QAAgChjG,IAAZgjG,GAAmD,OAA1BA,EAAQ55E,gBAA2Bw5E,GAC7E3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,0BAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI4b,WAAS,EACTnwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRoP,WAAS,EACT+P,SAAU8vD,EACV5iE,MAAqB,OAAZq3F,QAAgChjG,IAAZgjG,EAAyBA,EAAQ15E,QAAU,GACxE7a,SAAU,SAAA9K,GAAC,OAAIS,EAAKmH,cAAc,UAAW,UAAW5H,QAM3D,OAAZq/F,QAAgChjG,IAAZgjG,GAAmD,OAA1BA,EAAQ55E,gBAA2Bw5E,GAC7E3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,8BAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACopD,GAAD,CAAiBzK,OAAQn/C,KAAKm/C,WAK7B,OAAZmlD,QAAgChjG,IAAZgjG,GAAmD,OAA1BA,EAAQ55E,gBAA2Bw5E,GAC7E3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACV,KAEL7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAAA,UACK26B,EAAM15B,IAAI,SAAC4Q,EAAG1Q,GAAJ,OACP4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,QAAUF,GACf4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAEyQ,EAAE6f,MACd3R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACkgB,EAAA,EAAD,CACIjgB,UAAWP,EAAQ6pD,QACnB5iD,MAAO,YACPC,QAAS,kBAAM1B,EAAKq6C,oBAAoB1tC,EAAG1Q,cAWlE,OAAZ2iG,QAAgChjG,IAAZgjG,GAAmD,OAA1BA,EAAQ55E,eAA0B45E,EAAQz5E,gBAAkBy5E,EAAQz5E,eAAerc,OAAS,IAAM01F,GAC5I3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC+jG,GAAD,CACI15E,eAAgBy5E,EAAQz5E,eACxBC,wBAAyBw5E,EAAQx5E,wBACjCs9B,kBAAmBpoD,KAAKooD,kBACxBtC,6BAA8BA,EAC9BgC,uBAAwB9nD,KAAK8nD,uBAC7BC,2BAA4B/nD,KAAK+nD,wCA3nBtCzjD,aAupBhBpC,wBAdA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB4oD,QAAS,CAAE7Z,OAAQ,aAYRhuC,CAAmB+hG,ICjqB5BO,8MAEFC,uBAAyB,SAAC33F,EAAG7H,GACzBT,EAAKvE,MAAMwkG,uBAAuB33F,EAAE7H,MAGxCy/F,aAAe,SAAC1vF,GACZjQ,OAAOb,KAAK8Q,4EAGP,IAAAtP,EAAA1F,KAAAD,EAC8CC,KAAKC,MAAjDC,EADFH,EACEG,QAAS2vE,EADX9vE,EACW8vE,SAAU3kD,EADrBnrB,EACqBmrB,sBAE1B,OACI3K,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsBosB,mBAC7BvnC,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,qBAAsBx/F,IACjE+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,sBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsBqsB,kBAC7BxnC,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,oBAAqBx/F,IAChE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,yBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsBy5E,iBAC7B50F,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,mBAAoBx/F,IAC/D+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,OACL1D,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOuE,YAAsB0Z,EAAsB05E,cACnD70F,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,eAAgBx/F,IAC3D+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,WAErDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsB25E,qBAC7B90F,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,uBAAwBx/F,IACnE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsB45E,eAC7B/0F,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,iBAAkBx/F,IAC7D+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsB65E,kBAC7Bh1F,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,oBAAqBx/F,IAChE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB85E,eAGtEzkF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsBssB,mBAC7BznC,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,qBAAsBx/F,IACjE+K,WAAS,OAMxBkb,EAAsB+5E,eAAiB/5E,EAAsB+5E,cAAcz2F,OAAS,GACjF+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,SAAU+Z,GAAI,GACxD7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC+jG,GAAD,CACI15E,eAAgBK,EAAsBg6E,YAAc,GACpDp6E,wBAAyBI,EAAsB+5E,eAAiB,GAChE78C,kBAAmBpoD,KAAK0kG,mBAQhDnkF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB4X,mBAGlEviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAS,YAClB2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACTsC,QAASoI,EAAsByX,mBAC/BliC,UAAWP,EAAQ28D,UACnBjtD,MACI2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY7Y,UAAU,OAAO/G,QAAS,QAASH,UAAWP,EAAQgpE,aAC9D3oD,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB2X,yBAOlFtiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQ9wC,EAAsB0X,sBAGlEriB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,IACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,yBACA2f,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKmI,EAAsB+xD,sBAAuBh6D,IAAI,MAG/D1C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOie,EAAsBN,QAC7B7a,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,UAAWx/F,IACtD+K,WAAS,cAvON1L,aA6PhBpC,wBAZA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB4oD,QAAS,CAAE7Z,OAAQ,aAURhuC,CAAmBsiG,IChQ5BW,eACL,SAAAA,EAAYllG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAmlG,IAC3B3gG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+iG,GAAAvgG,KAAA5E,KAAMC,EAAOiJ,KAQdqD,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAVH5H,EAa5Bg3E,mBAb4Bp5E,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAaP,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WAChBtF,EAAKvE,MAAMshC,wBADK,CAAA33B,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EAC0BtF,EAAKvE,MAAMu7E,mBAAmBh3E,EAAKvE,MAAMshC,yBADnE,wBAAA33B,EAAAc,SAAAhB,EAAA1J,SAXpBwE,EAAKc,MAAQ,CACZ8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WALS7H,wEAiBnB,IAAAzE,EAIJC,KAAKC,MAFRC,EAFOH,EAEPG,QAFOy8E,EAAA58E,EAGP68E,oBAAuBhB,EAHhBe,EAGgBf,4BAA6BC,EAH7Cc,EAG6Cd,YAGrD,OACCt7D,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,qBAAsBV,UAAWy7E,GACtDr7D,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKw7E,oBAA5D,cAKDK,GAAeA,EAAYrtE,OAAS,GACpC+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACzBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,aACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,mBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBAGFD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEq7D,EAAYp6E,IAAI,SAAC6oC,EAAG3oC,GACpB,OACC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAKF,GACd4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB24B,EAAEnhB,eACtC5I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY8pB,EAAE18B,UACd2S,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY8pB,EAAEwyC,sBAStBv8D,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BA3DtG/H,aCiB7B+X,IDiES/L,YAZS,SAAChL,GAGxB,MAAO,CAAEs3E,oBAFuBt3E,EAAxBs3E,sBAKkB,SAACvsE,GAC3B,MAAO,CACNmrE,mBAAoB,SAAC/tE,GAAD,OAAU4C,EAASmrE,GAAmB/tE,OAI7C6C,CAGbpO,qBApBa,SAAC66E,GAAD,MAAa,CAC3B57E,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAM26E,EAAO57E,UAAd,CAAyBq3B,UAAW,KAC7CqkD,GAAI,CAAE/gB,YAAa,UAkBlB55D,CAAmBijG,KCpEH,CACjB/4F,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBmnE,cAAc,EACd4xB,uBAAuB,EACvBt/C,6BAA8B,IAAI11B,IAClCqjD,eAAe,EACf5D,UAAU,EACVtuC,wBAAyB,EACzBpG,MAAO,GACPkqE,WAAY,KAGPC,eACL,SAAAA,EAAYrlG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAslG,IAC3B9gG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAkjG,GAAA1gG,KAAA5E,KAAMC,EAAOiJ,KAKdI,kBAN4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAMR,SAAAC,IAAA,IAAAuC,EAAAwB,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAGPmC,EAERzH,EAAKvE,MAHRo6B,MACChhB,OAAUpN,GAGZzH,EAAKU,SAAS,CAAEq8B,yBAA0Bt1B,IAC1C6C,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,qCAAAoL,OAAoE9C,GAE9DwB,EATarL,OAAA+d,EAAA,EAAA/d,CAAA,CASJiX,OAAQ,CAAEkoB,wBAAyBt1B,IAASsE,eATxC3G,EAAAE,KAAA,EAUFtF,EAAKvE,MAAM8qF,sCAAsCt9E,GAV/C,QAUbC,EAVa9D,EAAAkE,MAWXC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAC9FuB,YAAe,sBACnBpB,EAAKU,SAAS,CAAE2qE,UAAU,IAbR,wBAAAjmE,EAAAc,SAAAhB,EAAA1J,SANQwE,EAuB5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAxBH5H,EA2B5Bi/F,YAAc,SAACp1E,EAAKtwB,GACnByG,EAAKvE,MAAMslG,qCAAqC,aAAcl3E,IA5BnC7pB,EA+B5BghG,gBAAkB,SAACn3E,EAAKo+D,EAAMgZ,EAAMxgG,GACnC,IAAMpD,EAAM,WAAa4jG,EAAO,GAChCjhG,EAAKvE,MAAMylG,8CAA8Cr3E,EAAKo+D,EAAM5qF,EAAKoD,EAAE+H,OAAOC,QAjCvDzI,EAoC5BqI,cAAgB,SAAC4/E,EAAM3/E,EAAG7H,GACzB,IAAIopB,EAAM7pB,EAAKvE,MAAMk8E,oCAAoCkQ,WACzD7nF,EAAKvE,MAAMylG,8CAA8Cr3E,EAAKo+D,EAAM3/E,EAAG7H,EAAE+H,OAAOC,QAtCrDzI,EAyC5BigG,uBAAyB,SAAC33F,EAAG7H,GAC5BT,EAAKvE,MAAM0lG,0CAA0C,CAAEz6E,sBAAsB9oB,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAI0K,EAAI7H,EAAE+H,OAAOC,UA1CnEzI,EA6C5BohG,mBAAqB,SAAC3gG,GACrBT,EAAKU,SAAS,CAAEmgG,WAAYpgG,EAAE+H,OAAOC,SA9CVzI,EAiD5B88D,SAjD4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAiDjB,SAAAmB,IAAA,IAAAyC,EAAAy4C,EAAA2tB,EAAAt4C,EAAA0qE,EAAA36E,EAAAX,EAAA9c,EAAAC,EAAAzB,EAAAwP,EAAA,OAAAwR,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UAAAuD,EACqD7I,EAAKc,MAA5DwgD,EADEz4C,EACFy4C,6BAA8B2tB,EAD5BpmE,EAC4BomE,cAAet4C,EAD3C9tB,EAC2C8tB,QAEjD2qB,EAA6B/kC,KAAO,IAAM0yD,EAHpC,CAAA5oE,EAAAf,KAAA,eAAAe,EAAA0K,OAAA,SAIF/Q,EAAKkuB,oBAJH,YAONyI,EAAM3sB,OAAS,GAPT,CAAA3D,EAAAf,KAAA,gBAAAe,EAAAf,KAAA,EAQatF,EAAKwhD,cARlB,UAAAn7C,EAAAiD,KASIC,QATJ,CAAAlD,EAAAf,KAAA,gBAURtF,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,uBAVvEzB,EAAA0K,OAAA,yBAAAswF,EAiBNrhG,EAAKvE,MADRk8E,oCAAuCjxD,EAhB9B26E,EAgB8B36E,sBAAuBX,EAhBrDs7E,EAgBqDt7E,WAEzD9c,EAAO,CAAEyd,wBAAuBX,cAEtC/lB,EAAKU,SAAL9C,OAAA+d,EAAA,EAAA/d,CAAA,GAAmBia,GAAnB,CAA8B8e,MAAO,GAAI2qB,6BAA8B,IAAI11B,OApBjEvlB,EAAAf,KAAA,GAqBOtF,EAAKvE,MAAM6lG,yCAAyCr4F,GArB3D,SAqBJC,EArBI7C,EAAAiD,MAsBHC,SAGM9B,EAERzH,EAAKvE,MAHRo6B,MACChhB,OAAUpN,GAGNwB,EANSrL,OAAA+d,EAAA,EAAA/d,CAAA,CAMAiX,OAAQ,CAAEkoB,wBAAyBt1B,IAASsE,eAC3D/L,EAAKvE,MAAM8qF,sCAAsCt9E,GACjDjJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,oBAEjF9H,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAhCzE,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAjDiBwE,EA8F5BkuB,iBAAmB,WAClBluB,EAAKU,SAAS,CAAEsuE,cAAc,KA/FHhvE,EAkG5BuhG,0BAA4B,WAC3BvhG,EAAKU,SAAS,CAAEkgG,uBAAuB,KAnGZ5gG,EAsG5B4jD,kBAAoB,SAACpzC,GACpBjQ,OAAOb,KAAK8Q,IAvGexQ,EA0G5BujD,2BAA6B,SAAC15B,GAC7B,IAAI25B,EAAkC,IAAI53B,IAAI5rB,EAAKc,MAAMwgD,8BACzDkC,EAAgCC,OAAO55B,GACvC7pB,EAAKU,SAAS,CAAE4gD,6BAA8BkC,KA7GnBxjD,EAgH5BsjD,uBAAyB,SAACz5B,GACzB7pB,EAAKU,SAAS,CAAE4gD,6BAA8BthD,EAAKc,MAAMwgD,6BAA6Br1B,IAAIpC,MAjH/D7pB,EAoH5B+tB,eAAiB,WAChB/tB,EAAKU,SAAS,CAAEsuE,cAAc,EAAOC,eAAe,KArHzBjvE,EAwH5BwhG,wBAA0B,WACzBxhG,EAAKU,SAAS,CAAEkgG,uBAAuB,KAzHZ5gG,EA4H5BguB,gBAAkB,WACjBhuB,EAAKU,SAAS,CAAEsuE,cAAc,EAAOC,eAAe,GAApDrxE,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA4D,SAAAyQ,IAAA,IAAA+rF,EAAA5Z,EAAA9hE,EAAA65E,EAAAv5E,EAAAq9B,EAAAvmD,EAAA,OAAAsrB,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OAS3D,IAT2Dm8F,EAIvDzhG,EAAKvE,MADRk8E,oCAAuCkQ,EAHmB4Z,EAGnB5Z,WAAY9hE,EAHO07E,EAGP17E,WAEhD65E,EAAU75E,EAAW8hE,GAAYh9C,QAAQ,GAAG28C,OAAO55E,KAAK,SAACoU,GAAD,OAAsB,IAAfA,EAAE+1C,WACjE1xC,EAAiBu5E,EAAQv5E,eAEzBq9B,EAAoB,GACfvmD,EAAI,EAAGA,EAAIkpB,EAAerc,OAAQ7M,IACrC6C,EAAKc,MAAMwgD,6BAA6Bt1B,IAAI7uB,IAAIumD,EAAkB95C,KAAKyc,EAAelpB,IAVjC,OAAAwY,EAAArQ,KAAA,EAYrDtF,EAAKvE,MAAMylG,8CAA8CrZ,EAAY,UAAW,iBAAkBnkC,GAZ7C,OAa3D1jD,EAAK88D,WAbsD,wBAAAnnD,EAAAzP,SAAAwP,EAAAla,WA7HjCwE,EA8I5B0hG,yBAA2B,WAC1B1hG,EAAKU,SAAS,CAAEkgG,uBAAuB,GAAvChjG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAgD,SAAAgR,IAAA,IAAA/M,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAAA4Q,EAAA5Q,KAAA,EAC9BtF,EAAKvE,MAAMkmG,gBAAgB,CAC3C5kE,wBAAyB/8B,EAAKc,MAAMi8B,wBACpC6kE,OAAQ5hG,EAAKc,MAAM+/F,aAH2B,QACzC33F,EADyCgN,EAAA5M,MAMxCC,QACNvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,uBAGjF9H,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAVpC,wBAAAqW,EAAAhQ,SAAA+P,EAAAza,WA/IrBwE,EA8J5Bu7C,oBAAsB,SAAC1tC,EAAG1Q,GACzB,IAAMw5B,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OAC7BA,EAAMvM,OAAOjtB,EAAG,GAChB6C,EAAKU,SAAS,CAAEi2B,WAjKW32B,EAoK5B26C,OAAS,SAACwI,GACT,IAAMxsB,EAAK/4B,OAAAusB,GAAA,EAAAvsB,CAAOoC,EAAKc,MAAM61B,OADFnoB,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAE3B,QAAA6R,EAAAC,EAAiBu0C,EAAjBt0C,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAgC,KAArB40C,EAAqBz0C,EAAAlG,MAC3B46C,GAAS,EADkBl0C,GAAA,EAAAC,GAAA,EAAAC,OAAAvS,EAAA,IAE/B,QAAAwS,EAAAC,EAAgBonB,EAAhB9nB,OAAAC,cAAAK,GAAAG,EAAAC,EAAAjK,QAAAyJ,MAAAI,GAAA,EAAuB,KAAZtB,EAAYyB,EAAA7G,MAClB26C,EAAG11B,OAAS7f,EAAE6f,OAAM21B,GAAS,IAHH,MAAAp0C,GAAAG,GAAA,EAAAC,EAAAJ,EAAA,YAAAE,GAAA,MAAAI,EAAAL,QAAAK,EAAAL,SAAA,WAAAE,EAAA,MAAAC,GAK1Bg0C,GAAQ1sB,EAAM/sB,KAAKw5C,IAPE,MAAAn0C,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAS3B1O,EAAKU,SAAS,CAAEi2B,WA7KW32B,EAgL5BmyD,UAAY,WAAM,IAGUh0B,EAEvBn+B,EAAKvE,MAHRk8E,oCACCjxD,sBAAyByX,mBAG3Bn+B,EAAKvE,MAAM0lG,0CAA0C,CAAEz6E,sBAAuB,CAAEyX,oBAAqBA,MApLrGn+B,EAAKc,MAALlD,OAAA+d,EAAA,EAAA/d,CAAA,GAAkBia,IAClB7X,EAAK6hG,SAAW,CAAC,WAAY,WAAY,WAAY,YAH1B7hG,oMAsFnB22B,EAAUn7B,KAAKsF,MAAf61B,MACJkK,EAAW,IAAIyjB,SACnB3tB,EAAM7sB,QAAQ,SAAC+D,GACdgzB,EAAS0jB,OAAO,QAAS12C,EAAGA,EAAE6f,iBAElBlyB,KAAKC,MAAMqmG,2CAA2CjhE,8KA8F3D,IAAA3/B,EAAA1F,KAAAD,EAWJC,KAAKC,MATRC,EAFOH,EAEPG,QAFOqmG,EAAAxmG,EAGPo8E,oCACCjxD,EAJMq7E,EAINr7E,sBACAX,EALMg8E,EAKNh8E,WACA8hE,EANMka,EAMNla,WACAC,EAPMia,EAONja,+CACAC,EARMga,EAQNha,kDACAC,EATM+Z,EASN/Z,oDATMt9E,EAYuFlP,KAAKsF,MAA5F8/F,EAZAl2F,EAYAk2F,sBAAuB5xB,EAZvBtkE,EAYuBskE,aAAc1tB,EAZrC52C,EAYqC42C,6BAA8B3qB,EAZnEjsB,EAYmEisB,MAAO00C,EAZ1E3gE,EAY0E2gE,SAU9Eu0B,EAAU,CACbJ,SAAU,GACVpjE,OAAQ,GACRxB,cAAe,GACfJ,YAAa,GACbtU,cAAe,MAEZH,EAAW8hE,GAAYh9C,QAAQ7gC,OAAS,IACjC+b,EAAW8hE,GAAYh9C,QAAQ,GAAG28C,OAAO55E,KAAK,SAACoU,GAAD,OAAsB,IAAfA,EAAE+1C,WACjE6nC,EAAU75E,EAAW8hE,GAAYh9C,QAAQ,GAAG28C,OAAO55E,KAAK,SAACoU,GAAD,OAAsB,IAAfA,EAAE+1C,YAGlE,IAAMp8D,EACLmsF,GAAkDC,GAAqDC,EACxG,OACCjsE,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACI,OAA1BijG,EAAQ15E,eAA0B05E,EAAQv5E,gBAC1CtK,EAAAhgB,EAAAC,cAACw2B,GAAD,CAActE,iBAAkB8gD,EAAclhD,YAAa,UAAWE,gBAAiBxyB,KAAKwyB,gBAAiBD,eAAgBvyB,KAAKuyB,gBAAlI,6CAEChS,EAAAhgB,EAAAC,cAAA,UACE4jG,EAAQv5E,eAAeppB,IAAI,SAAClB,EAAGoB,GAC/B,OAAImkD,EAA6Bt1B,IAAI7uB,GAC7B4e,EAAAhgB,EAAAC,cAAA,MAAIqB,IAAK,WAAaF,GAAIpB,GAE1BggB,EAAAhgB,EAAAC,cAAA,gBAOZ+f,EAAAhgB,EAAAC,cAACw2B,GAAD,CACCtE,iBAAkB0yE,EAClB9yE,YAAa,UACbG,oBAAoB,EACpBD,gBAAiBxyB,KAAKkmG,yBACtB3zE,eAAgBvyB,KAAKgmG,yBALtB,iDAQCzlF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIiH,WAAY,UACxCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,WAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACd7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCzX,OAAO,SACPnI,QAAQ,WACRmP,SAAU,SAAA9K,GAAC,OAAIS,EAAKkgG,mBAAmB3gG,IACvC+K,WAAS,OAMbuQ,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,aAAcV,UAAWA,GAC9CogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACgmG,GAAD,CAA2B/4F,KAAM8c,EAAYk5E,YAAazjG,KAAKyjG,YAAapX,WAAYA,OAK3F9rE,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cAAeV,UAAWA,GAC/CogB,EAAAhgB,EAAAC,cAACimG,GAAD,CACC52B,SAAUA,EACVpgD,UAAWlF,EAAW8hE,GACtBlxD,MAAOA,EACP2qB,6BAA8BA,EAC9Bj5C,cAAe7M,KAAK6M,cACpBq3F,WAAS,KAIX3jF,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,oBAAqBV,UAAWA,GACrDogB,EAAAhgB,EAAAC,cAACkmG,GAAD,CAAkB72B,SAAUA,EAAU3kD,sBAAuBA,EAAuBu5E,uBAAwBzkG,KAAKykG,2BAGhH50B,GACDtvD,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBAAkBV,UAAWA,GAClDogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,IACxBmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,WAID/gD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,YAAavG,QAAQ,YAAYwG,QAASpH,KAAK+lG,2BAA9D,WAQJxlF,EAAAhgB,EAAAC,cAAC08E,GAAD,CAAgB37C,wBAAyBvhC,KAAKC,MAAMo6B,MAAMhhB,OAAOpN,MAIlEsU,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAvTzF/H,aAoVjCgM,eAlBS,SAAChL,GAGxB,MAAO,CAAE62E,oCAFuC72E,EAAxC62E,sCAKkB,SAAC9rE,GAC3B,MAAO,CACN06E,sCAAuC,SAACt9E,GAAD,OAAU4C,EAAS06E,GAAsCt9E,KAChGi4F,8CAA+C,SAACr3E,EAAKo+D,EAAM3/E,EAAG6D,GAAf,OAAqBN,EnC9TT,SAACge,EAAKo+D,EAAM3/E,EAAG6D,GAAf,MAAsB,CAC/EhB,KAAMw7E,GACN98D,MAAKo+D,OAAM3/E,IAAG6D,KmC4T6D+0F,CAA8Cr3E,EAAKo+D,EAAM3/E,EAAG6D,KACzIw1F,gBAAiB,SAAC14F,GAAD,OAAU4C,EnC1QE,SAAA5C,GAAI,sBAAAwM,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACnCuG,EAASm7E,MAD0BrxE,EAAArQ,KAAA,EAGlBoL,KAAMM,KAAKrS,GAAU,yCAA0CsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAChH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALN,WAG7BqJ,EAH6ByM,EAAArM,MAU3BL,KAV2B,CAAA0M,EAAArQ,KAAA,eAW/BuG,EAASq7E,MAXsBvxE,EAAA5E,OAAA,SAYxB,CAACxH,SAAS,EAAO1J,QAAS,wBAZF,WAc/BqJ,EAAGD,KAAKM,QAduB,CAAAoM,EAAArQ,KAAA,gBAe/BuG,EAASo7E,GAAwB/9E,IAfFyM,EAAA5E,OAAA,SAgBxB,CAACxH,SAAS,EAAM1J,QAAS,KAhBD,eAkB/BgM,EAASq7E,MAlBsBvxE,EAAA5E,OAAA,SAmBxB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBhB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GmC0QGwzF,CAAgB14F,KACpD83F,qCAAsC,SAACz4F,EAAG6D,GAAJ,OAAUN,EnC1TE,SAACvD,EAAG6D,GAAJ,MAAW,CAC3DhB,KAAMy7E,GACNt+E,IAAG6D,KmCwToD40F,CAAqCz4F,EAAG6D,KACjGm1F,yCAA0C,SAACr4F,GAAD,OAAU4C,EnCpTE,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC5DuG,EAASg7E,MADmDxgF,EAAAf,KAAA,EAG3CoL,KAAMM,KAAKrS,GAAU,kEAAmEsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACzI,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALmB,WAGtDqJ,EAHsD7C,EAAAiD,MAUpDL,KAVoD,CAAA5C,EAAAf,KAAA,eAWxDuG,EAASk7E,MAX+C1gF,EAAA0K,OAAA,SAYjD,CAACxH,SAAS,EAAO1J,QAAS,wBAZuB,WAcxDqJ,EAAGD,KAAKM,QAdgD,CAAAlD,EAAAf,KAAA,gBAexDuG,EAASi7E,GAAiD59E,IAfF7C,EAAA0K,OAAA,SAgBjD,CAACxH,SAAS,EAAM1J,QAAS,KAhBwB,eAkBxDgM,EAASk7E,MAlB+C1gF,EAAA0K,OAAA,SAmBjD,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBS,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GmCoTGmzF,CAAyCr4F,KACtG64F,2CAA4C,SAACjhE,GAAD,OAAch1B,GnCrOF5C,EmCqOsD43B,EnCrOlD,eAAA7qB,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC9DuG,EAASs7E,MADqDjxE,EAAA5Q,KAAA,EAG7CoL,KAAMM,KAAKrS,GAAU,qBAAuB4I,KAAYiN,UAAU,CAACusB,WAAY,IAAK93B,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACrI,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALqB,WAGxDqJ,EAHwDgN,EAAA5M,MAUtDL,KAVsD,CAAAiN,EAAA5Q,KAAA,eAW1DuG,EAASw7E,MAXiDnxE,EAAAnF,OAAA,SAYnD,CAACxH,SAAS,EAAO1J,QAAS,wBAZyB,WAc1DqJ,EAAGD,KAAKM,QAdkD,CAAA2M,EAAA5Q,KAAA,gBAe1DuG,EAASu7E,GAAmDl+E,IAfFgN,EAAAnF,OAAA,SAgBnD,CAACxH,SAAS,EAAM1J,QAAS,KAhB0B,eAkB1DgM,EAASw7E,MAlBiDnxE,EAAAnF,OAAA,SAmBnD,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBW,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,KAAJ,IAAAlF,GmCsOxDk4F,0CAA2C,SAAC3zF,GAAD,OAAS3B,EnC9LG,SAAA2B,GAAG,MAAK,CAC7DrC,KAAMm8E,GACN95E,OmC4L2D2zF,CAA0C3zF,OAI1F1B,CAGbpO,qBA1Ba,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB4oD,QAAS,CAAE7Z,OAAQ,aAwBlBhuC,CAAmBojG,KCpWfzsD,GAAc,WACdC,GAAc,WACdC,GAAc,WACdC,GAAc,WAGd2tD,GAA8B,sBAG9BC,GAAgC,wBAEhCC,eACL,SAAAA,EAAY5mG,GAAO,IAAA6mG,EAAAtiG,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA6mG,IAClBriG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAykG,GAAAjiG,KAAA5E,KAAMC,KA+CPuxB,mBAAqB,SAACC,EAAWC,KAhDdltB,EAuDnB+0C,uBAAyB,SAACwtD,GACzB,IAAKA,EACJ,OAAO,EAGR,IAAIhtD,EAAYgtD,EAAO9uF,OAAO,EAAG,GACjC,MACgB,QAAd8hC,GAAqC,QAAdA,GAAqC,QAAdA,GAAqC,QAAdA,GAAqC,QAAdA,GA9D5Ev1C,EAsEnBw1C,4BAA8B,SAACn4C,EAAKoL,GACnCzI,EAAKg1C,2BAA2B33C,EAAKoL,GAErCwsC,aAAaj1C,EAAK01C,cAClB11C,EAAK01C,aAAehsC,WAAW,WAC1BjB,EAAMuB,QAAU,IACnBhK,EAAK21C,mBAAmBt4C,EAAKoL,IAE5B,MA9EezI,EAiFnB21C,mBAAqB,SAACt4C,EAAKoL,GAC1B,KAAIA,EAAMuB,OAAS,IAAnB,CACA,IACI4rC,EADqB,IAAI7E,GAAmBtoC,GAChByjC,UAChC,GACC0J,EAAO9Q,OAAS9kC,EAAKvE,MAAMwvB,UAAUopB,KACrCuB,EAAO9Q,OAAS9kC,EAAKvE,MAAMwvB,UAAUqpB,KACrCsB,EAAO9Q,OAAS9kC,EAAKvE,MAAMwvB,UAAUspB,IAIrC,OAFAv0C,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,8BACjF9H,EAAKg1C,2BAA2B33C,EAAK,IAGtC2C,EAAKg1C,2BAA2B33C,EAAKu4C,EAAO9Q,MAC5C9kC,EAAKvE,MAAMo6C,0BAA0B,CAAEhR,WAAYxnC,EAAKsnC,iBAAkBiR,MA/FxD51C,EAyInB+1C,eAAiB,SAACC,GACjBA,EAAQlsC,QAAQ,SAACu6B,EAAQlnC,GACxB6C,EAAKw1C,4BAAL,UAAAjrC,OAA2CpN,EAAI,GAAKknC,MA3InCrkC,EA+InB60C,kBA/ImBj3C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA+IC,SAAAC,IAAA,IAAA3J,EAAA0vB,EAAA4T,EAAAh2B,EAAAi8B,EAAA3nC,EAAAE,EAAAmlG,EAAAn3E,EAAAupB,EAAA6tD,EAAAC,EAAA52E,EAAAupB,EAAAstD,EAAAhrC,EAAAirC,EAAA15F,EAAAy5C,EAAAtiC,EAAAqG,EAAAm8E,EAAA,OAAAp6E,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAMnB,IANmB/J,EACayE,EAAKvE,MAA7BwvB,EADW1vB,EACX0vB,UAAW4T,EADAtjC,EACAsjC,SADAh2B,EAEU7I,EAAKc,MAA1BgkC,EAFWj8B,EAEXi8B,KAFWj8B,EAELi6F,WAGd73E,EAAU4f,QAAQzgB,OAAO,GAChBjtB,EAAI,EAAGA,EAAI,EAAGA,IAGlB2nC,EAFAznC,EAAM,WAAaF,EAAI,KAEI,KAAd2nC,EAAKznC,MACjBmlG,EAAax3E,GAAUC,EAAU4f,QAAQ,KAClCxe,UAAYyY,EAAKznC,GAC5B4tB,EAAU5tB,GAAOynC,EAAKznC,GACtB4tB,EAAU4f,QAAQjhC,KAAK44F,IAbN,GAiBdv3E,EAAU4f,QAAQ,GAjBJ,CAAAzlC,EAAAE,KAAA,eAkBlBtF,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAe,kCAlB3D1C,EAAA2L,OAAA,qBA2Bf/Q,EAAK+iG,qBAAqB93E,GA3BX,CAAA7lB,EAAAE,KAAA,SA4BZ+lB,EAAgB,GAClBupB,EAAW,CAACP,GAAaC,GAAaC,GAAaC,IACnDiuD,EAAiB,GACjBC,GAAgB,EA/BF52E,EAAA,eAAAA,EAgCE8oB,EAhCF5qC,QAAA,CAAA5E,EAAAE,KAAA,YAgCT+vC,EAAWT,EAhCF9oB,IAiCbb,EAAUoqB,GAjCG,CAAAjwC,EAAAE,KAAA,YAmCX,mBAAmB4E,KAAK+gB,EAAUoqB,IAnCvB,CAAAjwC,EAAAE,KAAA,gBAoCftF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,0CAAAyC,OAA4C0gB,EAAUoqB,GAAtD,OAvCDjwC,EAAA2L,OAAA,qBA2CX0xF,EAAezzF,SAASic,EAAUoqB,IA3CvB,CAAAjwC,EAAAE,KAAA,SA4Cf+lB,EAAczhB,KAAK,CAClB0hB,aAAcL,EAAUoqB,GACxBtwB,SAAUkG,EAAU4f,QAAQwK,EAAU,cA9CxBjwC,EAAAE,KAAA,wBAiDfo9F,GAAgB,EAChB1iG,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,iCAAmCmjB,EAAUoqB,KArDhDjwC,EAAA2L,OAAA,oBA0DjB0xF,EAAe74F,KAAKqhB,EAAUoqB,IA1Db,QAAAvpB,IAAA1mB,EAAAE,KAAA,qBA4Ddo9F,EA5Dc,CAAAt9F,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,yBA8DV+xF,EAAe9iG,EAAKc,MAApBgiG,WACJnrC,EAAW,GACX1sC,EAAUqpB,KAAgBrpB,EAAUqpB,MAAiBwuD,EAAWxuD,KAAcqjB,EAAS/tD,KAAKqhB,EAAUqpB,KACtGrpB,EAAUspB,KAAgBtpB,EAAUspB,MAAiBuuD,EAAWvuD,KAAcojB,EAAS/tD,KAAKqhB,EAAUspB,KACtGtpB,EAAUupB,KAAgBvpB,EAAUupB,MAAiBsuD,EAAWtuD,KAAcmjB,EAAS/tD,KAAKqhB,EAAUupB,KAEpGouD,EAAgB,CAAEjrC,SAAUA,GApEhBvyD,EAAAE,KAAA,GAsEDtF,EAAKvE,MAAMqmC,4BAA4B8gE,GAtEtC,YAsEZ15F,EAtEY9D,EAAAkE,MAuEVC,SAASvJ,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,WAC/FqJ,EAAGK,QAxEW,CAAAnE,EAAAE,KAAA,YAAAq9C,EA6Eb3iD,EAAKvE,MAHRgqB,mBACC4Z,wBAA2Bhf,EA3EZsiC,EA2EYtiC,MAAOqG,EA3EnBi8B,EA2EmBj8B,wBAI/B9oB,OAAO2T,KAAK8O,GAAOrW,OAAS,GAAKpM,OAAO2T,KAAKmV,GAAuB1c,OAAS,IAAO60B,EA/ExE,CAAAz5B,EAAAE,KAAA,gBAAAF,EAAA2L,OAAA,SAgFT/Q,EAAKU,SAAS,CAAE21C,mBAAoB8rD,GAA6B7rD,mBAAmB,EAAMC,wBAAyB,MAhF1G,eAAAnxC,EAAAE,KAAA,GAoFiBtF,EAAKvE,MAAMwnC,wCAAwC2/D,GApFpE,YAoFXC,EApFWz9F,EAAAkE,MAqFQC,QArFR,CAAAnE,EAAAE,KAAA,gBAsFhBtF,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAtFlEuF,EAAA2L,OAAA,sBAyFd8xF,EAAoBt5F,QAzFN,CAAAnE,EAAAE,KAAA,cA0Fbu9F,EAAoBxuF,OAAO2V,MAAMhgB,OAAS,GA1F7B,CAAA5E,EAAAE,KAAA,gBA2FftF,EAAKU,SAAS,CACb21C,mBAAoB+rD,GACpB9rD,mBAAmB,EACnBC,wBAAyB,GACzBwB,YAAa8qD,EAAoBxuF,OAAO2V,MAAM,GAAGg5E,sBA/FnC59F,EAAA2L,OAAA,kBAsGjB/Q,EAAK03C,cAtGY,yBAAAtyC,EAAAc,SAAAhB,EAAA1J,SA/IDwE,EAgUnBijG,aAhUmBrlG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAgUJ,SAAAmB,IAAA,IAAA8b,EAAA+a,EAAA6H,EAAAioD,EAAAC,EAAA5gE,EAAAipB,EAAApsC,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,OAWd,IAXc4c,EAMVliB,EAAKvE,MANKymB,EAEb+I,UAECgS,EAJY/a,EAGbuD,mBACCwX,sBAGM6H,EAAS9kC,EAAKc,MAAdgkC,KAEFioD,EAAe,CAACz4C,GAAaC,GAAaC,IAC5Cw4C,EAAiB,GACrB5gE,EAAA,EAAAA,EAAoB2gE,EAApB/iF,OAAAoiB,IACK0Y,EADIuQ,EAAW03C,EAAc3gE,KAEhC4gE,EAAepjF,KAAKk7B,EAAKuQ,IAbb,OAiBRpsC,EAAO,CAAE6jF,YAAa7vD,EAAsBx1B,GAAIulF,eAAgBA,GAjBxD3mF,EAAAf,KAAA,EAkBGtF,EAAKvE,MAAMynG,8BAA8Bj6F,GAlB5C,QAkBRC,EAlBQ7C,EAAAiD,MAmBDC,QAEHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiB,UACjBD,gBAAiB,UACjB6oD,gBAAgB,EAC5ByyC,UAAW,gBACXr+D,KAAMA,EACNg+D,WAAYh+D,EACZs+D,iBAAiB,EACjBC,2BAA2B,IAGnBrjG,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACjB6oD,gBAAgB,EAChByyC,UAAW,kBAtCX,yBAAA98F,EAAAH,SAAAE,EAAA5K,SAhUIwE,EA2WnB+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KA5WZ5H,EA+WnB22C,gBAAkB,SAACrrB,GAAiB,IAC3B+3E,EAA8BrjG,EAAKc,MAAnCuiG,0BAGNpmE,EAEEj9B,EAAKvE,MAHRgqB,mBACCwX,sBAIF,GAAIomE,EAA2B,CAC9B,IAAIh4E,EAAgB4R,EAAsB5R,cAE1C,IAAKA,GAAkC,KAAjBC,EAAqB,OAAO,KAElD,IAAM9xB,EAAI6xB,EAAczd,KAAK,SAACpU,GAAD,OAAOA,EAAE8xB,eAAiBA,IACvD,YAAUxuB,IAANtD,EAAwB,KAExBqsB,GAA0BrsB,EAAEgyB,kBAAoB7F,KACnB,IAA5B3lB,EAAKc,MAAM81C,cAAuB52C,EAAKU,SAAS,CAAEk2C,cAAc,IAC7D76B,EAAAhgB,EAAAC,cAAC66C,GAAD,CAA0Bj0C,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,OAClEqsB,GAA0BrsB,EAAEgyB,kBAAoB9F,GACnD3J,EAAAhgB,EAAAC,cAAC+6C,GAAD,CAAoBvG,QAAM,EAAC5tC,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,MAEtEuiB,EAAAhgB,EAAAC,cAACg7C,GAAD,CAAsBp0C,QAAS,kBAAM5C,EAAK82C,uBAAuBt9C,MAG1E,OAAO,MAxYWwG,EA2YnB82C,uBAAyB,SAAC5tC,GACrBA,EAAGuiB,UACNzrB,EAAKU,SAAS,CAAE8oC,eAAe,EAAM/d,UAAWviB,EAAGuiB,UAAWyd,iBAAkB,KAEhFhgC,EAAGkd,QACApmB,EAAKU,SAAS,CAAE8oC,eAAe,EAAM/d,UAAW,GAAIyd,iBAAkBhgC,EAAGkd,UACzEpmB,EAAKU,SAAS,CAAE8oC,eAAe,EAAM/d,UAAW,GAAIyd,iBAAkB,mCAjZxDlpC,EAqZnB0pC,qBAAuB,WACtB1pC,EAAKU,SAAS,CAAE8oC,eAAe,KAtZbxpC,EAyZnBy3C,eAzZmB75C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAyZF,SAAAyQ,IAAA,OAAA+S,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,OAChBtF,EAAKU,SAAS,CAAE41C,mBAAmB,IADnB,wBAAA3gC,EAAAzP,SAAAwP,EAAAla,SAzZEwE,EA6ZnB03C,YA7ZmB95C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA6ZL,SAAAgR,IAAA,IAAA6sF,EAAA73E,EAAAI,EAAAupB,EAAA0uD,EAAAjuD,EAAAnsC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,OAMb,IALAtF,EAAKU,SAAS,CAAE41C,mBAAmB,IAC3BwsD,EAAe9iG,EAAKc,MAApBgiG,WACA73E,EAAcjrB,EAAKvE,MAAnBwvB,UACFI,EAAgB,GAClBupB,EAAW,CAACN,GAAaC,GAAaC,IAC1C8uD,EAAA,EAAAA,EAAoB1uD,EAApB5qC,OAAAs5F,IACKr4E,EADIoqB,EAAWT,EAAU0uD,KACHr4E,EAAUoqB,KAAaytD,EAAWztD,IAC3DhqB,EAAczhB,KAAK,CAClB0hB,aAAcL,EAAUoqB,GACxBtwB,SAAUkG,EAAUlG,WAVV,KAcTsG,EAAcrhB,OAAS,GAdd,CAAAkM,EAAA5Q,KAAA,gBAAA4Q,EAAA5Q,KAAA,EAeKtF,EAAKvE,MAAM4kC,0BAA0B,CAAEhV,cAAeA,EAAe0R,wBAAyB,OAfnG,QAeN7zB,EAfMgN,EAAA5M,MAgBJC,QAGPvJ,EAAKujG,6BAFLvjG,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAjBvEqW,EAAA5Q,KAAA,iBAsBZtF,EAAKU,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,6DAtBnE,yBAAAoO,EAAAhQ,SAAA+P,EAAAza,SA7ZKwE,EA8cnBK,YA9cmB,eAAAkW,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA8cL,SAAAuR,EAAO/O,GAAP,OAAAghB,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,OACK,8BAClB/E,OAAOb,KADW,8BACA+H,GAFL,wBAAAgP,EAAAvQ,SAAAsQ,EAAAhb,SA9cK,gBAAAyV,GAAA,OAAAsF,EAAAlF,MAAA7V,KAAA2S,YAAA,GAElBnO,EAAKc,MAAQ,CACZg0C,gBAAcwtD,EAAA,GAAA1kG,OAAA8sB,GAAA,EAAA9sB,CAAA0kG,EACZjuD,GAAc,IADFz2C,OAAA8sB,GAAA,EAAA9sB,CAAA0kG,EAEZhuD,GAAc,IAFF12C,OAAA8sB,GAAA,EAAA9sB,CAAA0kG,EAGZ/tD,GAAc,IAHF32C,OAAA8sB,GAAA,EAAA9sB,CAAA0kG,EAIZ9tD,GAAc,IAJF8tD,GAMdx9D,KAAM,CACLnL,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,IAEXgpE,WAAY,CACXnpE,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,IAEX+d,iBAAkB,CACjB,CAAEx6C,IAAK,CAACg3C,IAAcjpC,MAAO,kBAAmBD,KAAM,OAAQ2sC,cAAc,GAC5E,CAAEz6C,IAAK,CAACi3C,IAAclpC,MAAO,iBAAkBD,KAAM,OAAQ2sC,cAAc,GAC3E,CAAEz6C,IAAK,CAACk3C,IAAcnpC,MAAO,iBAAkBD,KAAM,OAAQ2sC,cAAc,GAC3E,CAAEz6C,IAAK,CAACm3C,IAAcppC,MAAO,iBAAkBD,KAAM,OAAQ2sC,cAAc,IAE5ElwC,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB2hC,eAAe,EACfN,iBAAkB,GAClBzd,UAAW,GACX4rB,iBAAkB,EAClBT,cAAc,EACdN,mBAAmB,EACnBD,mBAAoB,GACpBE,wBAAyB,MACzBwB,YAAY,GACZqrD,iBAAiB,EACjBC,2BAA2B,GAG5BrjG,EAAKk3C,YAAc,GACnBl3C,EAAK01C,aAAe,KACpB11C,EAAKk1C,oBAAsB,KA7CTl1C,qIAkGMy5B,GACxB,IAAIwe,EAAY,CACfte,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,IAEXL,EAAIoR,QAAQ/gC,QAAQ,SAAC0D,EAAKrQ,GACrBqQ,EAAI6e,YAEP4rB,EADU,WAAa96C,EAAI,IACVqQ,EAAI6e,aAGvB7wB,KAAKkF,SAAS,CAAEokC,KAAMmT,EAAW6qD,WAAY7qD,uDAGnB56C,EAAKoL,GAC/B,IAAIwvC,EAASr6C,OAAA+d,EAAA,EAAA/d,CAAA,GAAQpC,KAAKsF,MAAMgkC,MAChCmT,EAAU56C,GAAOoL,EACjBjN,KAAKkF,SAAS,CAAEokC,KAAMmT,IACtBz8C,KAAKgoG,2BAA2BvrD,sDAGNA,GAG1B,IAHqC,IAC7B6qD,EAAetnG,KAAKsF,MAApBgiG,WACJW,GAAO,EACFtmG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC3B,IAAIE,EAAM,WAAaF,EAAI,GAC3B,GAAI86C,EAAU56C,KAASylG,EAAWzlG,GAAM,CACvComG,GAAO,EACPjoG,KAAKkF,SAAS,CAAE0iG,iBAAiB,EAAMC,2BAA2B,IAClE,OAGGI,GACJjoG,KAAKkF,SAAS,CAAE0iG,iBAAiB,EAAOC,2BAA2B,iDAqHhDp4E,GAEpB,GAAuC,KAAnCA,EAAU4f,QAAQ,GAAGxe,gBAAuDvvB,IAAnCmuB,EAAU4f,QAAQ,GAAGxe,UAAlE,CAIC,GAAK7wB,KAAKu5C,uBAAuB9pB,EAAU4f,QAAQ,GAAGxe,WAMvD,OAXS,EAMP7wB,KAAKkF,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBioC,UAJhFv0C,KAAKkF,SAAS,CAAEkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAe,8FAY7CwmC,EAAY4J,GAG7C,IAFA,IAAIC,EAAU7J,EAAW5U,gBAEhBv8B,EAAI,EAAGA,EAAI+6C,EAAaluC,OAAQ7M,IACxC,GAAImxC,EAAW7U,MAAQye,EAAa/6C,GAAGs8B,IAAvC,CAGA,GAAI0e,EAAQre,WAEVqe,EAAQre,WAAaoe,EAAa/6C,GAAGu8B,gBAAgBC,UACrDwe,EAAQre,WAAaoe,EAAa/6C,GAAGu8B,gBAAgBE,UACrDue,EAAQre,WAAaoe,EAAa/6C,GAAGu8B,gBAAgBG,UACrDse,EAAQre,WAAaoe,EAAa/6C,GAAGu8B,gBAAgBI,UAErD,OAAO,EAIT,GAAIqe,EAAQte,WAEVse,EAAQte,WAAaqe,EAAa/6C,GAAGu8B,gBAAgBC,UACrDwe,EAAQte,WAAaqe,EAAa/6C,GAAGu8B,gBAAgBE,UACrDue,EAAQte,WAAaqe,EAAa/6C,GAAGu8B,gBAAgBG,UACrDse,EAAQte,WAAaqe,EAAa/6C,GAAGu8B,gBAAgB0e,SAErD,OAAO,EAIT,GAAID,EAAQve,WAEVue,EAAQve,WAAase,EAAa/6C,GAAGu8B,gBAAgBC,UACrDwe,EAAQve,WAAase,EAAa/6C,GAAGu8B,gBAAgBE,UACrDue,EAAQve,WAAase,EAAa/6C,GAAGu8B,gBAAgBG,UACrDse,EAAQve,WAAase,EAAa/6C,GAAGu8B,gBAAgBI,UAErD,OAAO,EAIT,GAAIqe,EAAQxe,WAEVwe,EAAQxe,WAAaue,EAAa/6C,GAAGu8B,gBAAgBC,UACrDwe,EAAQxe,WAAaue,EAAa/6C,GAAGu8B,gBAAgBE,UACrDue,EAAQxe,WAAaue,EAAa/6C,GAAGu8B,gBAAgBG,UACrDse,EAAQxe,WAAaue,EAAa/6C,GAAGu8B,gBAAgBI,UAErD,OAAO,EAKV,OAAO,uDA0HqB,IAOxBzO,EAFA7vB,KAAKC,MAHRgqB,mBACCwX,sBAIwC5R,cAE1C,GAAKA,EAEE,CACN,IAAIo4E,GAAO,EADLj1F,GAAA,EAAAC,GAAA,EAAAC,OAAA5R,EAAA,IAEN,QAAA6R,EAAAC,EAAyByc,EAAzBxc,OAAAC,cAAAN,GAAAG,EAAAC,EAAAtJ,QAAAyJ,MAAAP,GAAA,EAAwC,KAA/Bk1F,EAA+B/0F,EAAAlG,MACnCod,GAA0B69E,EAAal4E,kBAAoB7F,IAC3DE,GAA0B69E,EAAal4E,kBAAoB9F,KAC9D+9E,GAAO,IALH,MAAAx0F,GAAAR,GAAA,EAAAC,EAAAO,EAAA,YAAAT,GAAA,MAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,MAAAC,GAQNlT,KAAKkF,SAAS,CAAE2iG,0BAA2BI,SAT3CjoG,KAAKkF,SAAS,CAAE2iG,2BAA2B,qCAkBpC,IAAAniG,EAAA1F,KAAAm8C,EAWJn8C,KAAKC,MATRC,EAFOi8C,EAEPj8C,QAAmBmjC,GAFZ8Y,EAEEoN,SAFFpN,EAEY9Y,UAAUyZ,EAFtBX,EAEsBW,cAC7BrtB,EAHO0sB,EAGP1sB,UACAyT,EAJOiZ,EAIPjZ,mCAJOilE,EAAAhsD,EAKPlyB,mBAECuZ,GAPM2kE,EAMN1mE,sBANM0mE,EAON3kE,sCACAC,EARM0kE,EAQN1kE,8BACYM,EATNokE,EASMpkE,iCAGRwtD,EAAe,CAAC14C,GAAaC,GAAaC,GAAaC,IAZrD9pC,EAaqJlP,KAAKsF,MAA5Iw1C,GAbd5rC,EAaAksC,aAbAlsC,EAac4rC,mBAAmBe,EAbjC3sC,EAaiC2sC,iBAAkBhB,EAbnD3rC,EAamD2rC,mBAAoBE,EAbvE7rC,EAauE6rC,wBAAyBzR,EAbhGp6B,EAagGo6B,KAAMs+D,EAbtG14F,EAasG04F,gBAAiBC,EAbvH34F,EAauH24F,0BAEzHO,EAAuBxiG,YAAe,CAACnG,MAAgB,MACvDU,EACL+iC,GACAM,GACAC,GACAM,EAGI/jC,KAAKsF,MAAMgkC,KAAX,UAA+B7Z,EAAU4f,QAAQ,GAAGxe,YAAc7wB,KAAKsF,MAAMgkC,KAAX,UAClE7Z,EAAU4f,QAAQ,GAAGxe,WACxB7wB,KAAKqoG,yBAAyB54E,GAIhC,IAAIutB,EAAY,aACZ74C,EAAU,aACd,OAAQ02C,GACP,IAxfkC,uBAyfjCmC,EAAY,WACXt3C,EAAKR,SAAS,CAAE41C,mBAAmB,GAAnC14C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA4C,SAAA+R,IAAA,OAAAyR,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAAA4R,EAAA5R,KAAA,EACrCpE,EAAKzF,MAAMg9C,6BAD0B,cAAAvhC,EAAA5R,KAAA,EAErCpE,EAAKzF,MAAMi9C,6BAA4B,GAFF,OAG3Cx3C,EAAKw2C,cAHsC,wBAAAxgC,EAAAhR,SAAA8Q,EAAAxb,WAM7CmE,EAAU,WACTuB,EAAKw2C,eAEN,MACQ,KAAK0qD,GACD5pD,EAAY,aAGZ74C,EAAU,WACNuB,EAAKR,SAAS,CAAE41C,mBAAmB,KAEvC,MACb,IA3gBkC,uBA4gBjCkC,EAAY,WACXt3C,EAAKR,SAAS,CAAE41C,mBAAmB,GAAnC14C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA4C,SAAAqS,IAAA,IAAAkO,EAAAozB,EAAA3vC,EAAA,OAAAwf,EAAA1sB,EAAAoJ,KAAA,SAAAqS,GAAA,cAAAA,EAAAnS,KAAAmS,EAAAlS,MAAA,cAAAkS,EAAAlS,KAAA,EAErCpE,EAAKzF,MAAMq9C,eAF0B,QAInCtzB,EAAoBtkB,EAAKzF,MAAzB+pB,iBACYxb,OAAS,IACtB4uC,EAAgB,GACtBpzB,EAAgB1b,QAAQ,SAACvQ,GACc,KAAlCA,EAAEmgC,gBAAF,UACHkf,EAAchvC,KAAKrQ,EAAEmgC,gBAAF,YAGfzwB,EAAO,CAAE2vC,iBACf13C,EAAKzF,MAAMs9C,sCAAsC9vC,IAElD/H,EAAKzF,MAAMm3C,4BAA4B1xC,EAAKzF,MAAMsjC,4BAfP,wBAAAvnB,EAAAtR,SAAAoR,EAAA9b,WAkB7CmE,EAAU,WACTuB,EAAKw2C,eAOR,OACC37B,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACi9C,GAAD,CAAqB7G,WAAYkE,EAAmBj6C,MAAOg6C,EAAoB12C,QAASA,EAAS0yC,SAAUmG,EAAWlG,WAAYiE,GAChIF,IAAuB+rD,IACLrmF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC9B2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,qEACCD,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKb,YAAYa,EAAKJ,MAAMi3C,eAA/E,mBASLh8B,EAAAhgB,EAAAC,cAAC2uC,GAAD,CACClf,UAAWjwB,KAAKsF,MAAM2qB,UACtByd,iBAAkB1tC,KAAKsF,MAAMooC,iBAC7BQ,qBAAsBluC,KAAKkuC,qBAC3BF,cAAehuC,KAAKsF,MAAM0oC,gBAG3BztB,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAAoBV,UAAWA,EAAWE,WAAYgjC,EAAWyZ,EAAgB,IACtGv8B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACR2vF,EAAa9vF,IAAI,SAACqL,EAAGnL,GAAJ,OACjB4e,EAAAhgB,EAAAC,cAAA,OAAKqB,IAAKiL,IACkB,KAAzB2iB,EAAU4f,QAAQviC,IAAmB,IAANnL,GAAWk6C,GAAoBl6C,IAC/D4e,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsiB,IAAK3gB,IAAKiL,GACjCyT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACvBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,gBACejO,EAAI,EADnB,IAC6B,IAANA,GAAW4e,EAAAhgB,EAAAC,cAAA,kBAElC+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACvBr9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ8+C,QACvBz+B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCT,SAAgB,IAANpe,EACVsK,GAAI,UAAYtK,EAChBf,QAAQ,WACRH,UAAWiF,EAAKJ,MAAMg0C,eAAexsC,GAAK5M,EAAQ6+C,eAAiB7+C,EAAQ29C,UAC3E5wC,MAAOq8B,EAAKx8B,GACZ+C,QAASnK,EAAKJ,MAAMg0C,eAAexsC,GACnCiD,SAAU,SAAC9K,GAAD,OAAOS,EAAKs0C,4BAA4BltC,EAAG7H,EAAE+H,OAAOC,UAE9DvH,EAAKy1C,gBAAgB7R,EAAKx8B,OAI9ByT,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SAChB,IAANh8C,GACA4e,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQy9C,SACvBp9B,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0P,OAAxB,eAGA2Q,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ09C,SACvBr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,WACHrL,QAAQ,WACRH,UAAWP,EAAQ29C,UACnB5wC,MAAOwiB,EAAU4f,QAAQ1tC,GAAK8tB,EAAU4f,QAAQ1tC,GAAG4nB,SAAW,GAC9DxJ,UAAU,YAWlBqoF,GAAyB7nF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,IACxDmf,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ5f,QAAQ,YAAYuG,MAAM,UAAUC,QAASpH,KAAKq5C,kBAAmBt5B,UAAW6nF,GAAxF,sBAIDrnF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQ5f,QAAQ,YAAYuG,MAAM,UAAUC,QAASpH,KAAKynG,aAAc1nF,UAAW8nF,GAAnF,YAQJtnF,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BA3nBzGnE,IAAM5D,WAiqBvBgM,eApBS,SAAShL,GAAO,IAC/B2kB,EAAuB3kB,EAAvB2kB,mBAER,MAAO,CACNA,qBACAiZ,mCAH8CjZ,EAAvCiZ,qCAOkB,SAAS7yB,GACnC,MAAO,CACNw0B,0BAA2B,SAAAmZ,GAAA,IAAGnuB,EAAHmuB,EAAGnuB,cAAe0R,EAAlByc,EAAkBzc,wBAAlB,OAAgDlxB,EAASw0B,GAA0B,CAAEhV,gBAAe0R,8BAC/H+E,4BAA6B,SAAC74B,GAAD,OAAU4C,EAASi2B,GAA4B74B,KAC5Eq5B,qBAAsB,SAACr5B,GAAD,OAAU4C,EAASy2B,GAAqBr5B,KAC9Dg6B,wCAAyC,SAACh6B,GAAD,OAAU4C,EAASo3B,GAAwCh6B,KACpGu4B,4BAA6B,SAACjoC,GAAD,OAAOsS,EAAS21B,GAA4BjoC,KACzE2pG,8BAA+B,SAACj6F,GAAD,OAAU4C,EjC/dE,SAAC5C,GAAD,sBAAAwM,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACnDuG,EAASkgF,MAD0Cp2E,EAAArQ,KAAA,EAElCoL,KAAMM,KAAKrS,GAAU,qCAAsCsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC5G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJU,YAE7CqJ,EAF6CyM,EAAArM,MAS5CL,KAAKM,QATuC,CAAAoM,EAAArQ,KAAA,gBAU/C2D,EAAKoL,OAASnL,EAAGD,KAAKoL,OACtBxI,EAASggF,GAAsC5iF,IAXA0M,EAAA5E,OAAA,SAYxC,CAACxH,SAAS,EAAM1J,QAAS,KAZe,eAc/CgM,EAASigF,MAdsCn2E,EAAA5E,OAAA,SAexC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfA,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAV,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GiC+dO+0F,CAA8Bj6F,OAInE6C,CAGbpO,qBAnCa,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,OAAQowB,UAAW,IACnCmlB,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEuH,MAAO,CAAE2tB,KAAM,KACfqgB,QAAS,CAAErgB,KAAM,KACjBsgB,UAAW,CAAEp1C,MAAO,QACpBs2C,eAAgB,CAAElkB,OAAQ,GAAIpyB,MAAO,QACrCu2C,OAAQ,CAAEx8C,SAAU,YACpBk7C,UAAW,CAAExN,OAAQ,UAAWC,aAAc,kBAAmBhpC,MAAO,UA0BvEjF,CAAmB2kG,KC/rBfyB,8MAEF7D,uBAAyB,SAAC33F,EAAG7H,GACzBT,EAAKvE,MAAMwkG,uBAAuB33F,EAAE7H,4EAG/B,IAAAS,EAAA1F,KAAAD,EAC2DC,KAAKC,MAA9DC,EADFH,EACEG,QAAS2vE,EADX9vE,EACW8vE,SAAUsf,EADrBpvF,EACqBovF,wBAAyB+U,EAD9CnkG,EAC8CmkG,UAGnD,OAFA7tE,QAAQC,IAAI,SAAU64D,GACtB94D,QAAQC,IAAI,QAAS64D,EAAwBxsD,oBAEzCpiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwBlmE,UAC/BlZ,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,qBAAsBx/F,IACjE+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,sBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwB5lE,SAC/BxZ,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,oBAAqBx/F,IAChE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,yBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwBrxD,QAC/B/tB,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,mBAAoBx/F,IAC/D+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,kBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI7Q,KAAK,OACL1D,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOuE,YAAsB29E,EAAwBtwD,KACrD9uB,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,eAAgBx/F,IAC3D+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,WAErDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwB7sD,YAC/BvyB,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,uBAAwBx/F,IACnE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwB9sD,MAC/BtyB,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,iBAAkBx/F,IAC7D+K,WAAS,MAKrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwB5sD,SAC/BxyB,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,oBAAqBx/F,IAChE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,WAErDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,iBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwB76E,UAC/BvE,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,qBAAsBx/F,IACjE+K,WAAS,OAMzBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQmzB,EAAwBrsD,mBAGpEviB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAS,YAClB2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIo9B,QAASr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MACTsC,QAAuD,MAA9CqsE,EAAwBxsD,oBAA4BwsD,EAAwBxsD,mBACrFliC,UAAWP,EAAQ28D,UACnBjtD,MACI2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY7Y,UAAU,OAAO/G,QAAS,QAASH,UAAWP,EAAQgpE,aAC9D3oD,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQmzB,EAAwBtsD,yBAOpFtiB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAA,OAAKu7D,wBAAyB,CAAEC,OAAQmzB,EAAwBvsD,uBAGlEshE,GAAc3jF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjEkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,qBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,SAAU8vD,EACV5iE,MAAOkiF,EAAwBvkE,QAC/B7a,SAAU,SAAA9K,GAAC,OAAIS,EAAK++F,uBAAuB,UAAWx/F,IACtD+K,WAAS,cAtMA1L,aA4NtBpC,wBAZA,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB4oD,QAAS,CAAE7Z,OAAQ,aAURhuC,CAAmBomG,IC/M5BjsF,GAAY,CACjBjQ,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBggF,WAAY,EACZkc,YAAa,GACV39E,QAAS,GACT+8E,UAAW,IAGTa,eACF,SAAAA,EAAYvoG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAwoG,IACxBhkG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAomG,GAAA5jG,KAAA5E,KAAMC,EAAOiJ,KAMjBI,kBAP4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAOR,SAAAC,IAAA,IAAAuC,EAAAkjF,EAAA9C,EAAA9hE,EAAA,OAAA0C,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACWmC,EAAWzH,EAAKvE,MAAnCo6B,MAAShhB,OAAUpN,GACjC6C,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,iCAAAoL,OAAgE9C,GAF1CrC,EAAAE,KAAA,EAGCtF,EAAKvE,MAAMwoG,2BAA2Bx8F,GAHvC,OAAArC,EAAAkE,KAORqhF,EAEJ3qF,EAAKvE,MAHL+wF,sBACI7B,wBAGA9C,EAAe7nF,EAAKc,MAApB+mF,WACJ9hE,EAAa,GACnB4kE,IACH5kE,EAAa4kE,EAAwB5kE,YAEhC/lB,EAAKvE,MAAM+lC,4BAA4BxW,GAAUjF,EAAW8hE,KAf5C,yBAAAziF,EAAAc,SAAAhB,EAAA1J,SAPQwE,EAyB5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAAEkH,cAAc,KA1BN5H,EA6B5Bi/F,YAAc,SAACp1E,EAAKtwB,GAChByG,EAAKU,SAAS,CAAEmnF,WAAYh+D,IAC5B7pB,EAAKvE,MAAM+lC,4BAA4BxW,GAAUzxB,KA/BzByG,EAkC5BkkG,UAlC4B,eAAA7uF,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAkChB,SAAAmB,EAAOqB,EAAIm6F,EAAQ5I,GAAnB,IAAA/vF,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACF2D,EAAO,CAAExB,GAAIA,EAAI08F,gBAAiBvC,GACnC5hG,EAAKokG,kBAFF,CAAA/9F,EAAAf,KAAA,eAAAe,EAAA0K,OAAA,wBAAA1K,EAAAf,KAAA,EAGStF,EAAKvE,MAAM4oG,+BAA+Bp7F,EAAM+vF,GAHzD,QAGF9vF,EAHE7C,EAAAiD,MAIDC,QAEHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiB,UACjBD,gBAAiB,UACjB6oD,gBAAgB,EAChByyC,UAAW,YAGfnjG,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACjB6oD,gBAAgB,EAChByyC,UAAW,YAnBX,wBAAA98F,EAAAH,SAAAE,EAAA5K,SAlCgB,gBAAAyV,EAAAC,EAAAC,GAAA,OAAAkE,EAAAhE,MAAA7V,KAAA2S,YAAA,GAAAnO,EA0D5BskG,SA1D4B,eAAA7uF,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA0DjB,SAAAyQ,EAAOjO,EAAIm6F,EAAQ5I,GAAnB,IAAA/vF,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,UACD2D,EAAO,CAAExB,GAAIA,EAAI88F,iBAAkB3C,GACpC5hG,EAAKokG,kBAFH,CAAAzuF,EAAArQ,KAAA,eAAAqQ,EAAA5E,OAAA,wBAAA4E,EAAArQ,KAAA,EAGItF,EAAKvE,MAAM+oG,8BAA8Bv7F,EAAM+vF,GAHnD,QAGP9vF,EAHOyM,EAAArM,MAINC,QAENvJ,EAAKU,SAAS,CACbkH,cAAc,EACdE,gBAAiB,UACjBD,gBAAiB,UACL6oD,gBAAgB,EAChByyC,UAAW,WAGxBnjG,EAAKU,SAAS,CACbkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACL6oD,gBAAgB,EAChByyC,UAAW,WAnBZ,wBAAAxtF,EAAAzP,SAAAwP,EAAAla,SA1DiB,gBAAA4V,EAAAyF,EAAAM,GAAA,OAAA1B,EAAApE,MAAA7V,KAAA2S,YAAA,GAAAnO,EAkF5BokG,gBAAkB,WAEpB,MAAgB,KADUpkG,EAAKc,MAAjBslB,SAEbpmB,EAAKU,SAAS,CAAEqjG,YAAaj0D,MACtB,IAEP9vC,EAAKU,SAAS,CAAEqjG,YAAa,MACtB,IAzFsB/jG,EA6F5BigG,uBAAyB,SAAC33F,EAAG7H,KA7FDT,EA+F5BqI,cAAgB,SAAA5H,GACZT,EAAKU,SAAS,CAAE0lB,QAAS3lB,EAAE+H,OAAOC,SA9FxCzI,EAAKc,MAALlD,OAAA+d,EAAA,EAAA/d,CAAA,GAAkBia,IACZ7X,EAAK6hG,SAAW,CAAC,WAAY,WAAY,WAAY,YACrD7hG,EAAK8hD,kBAAoB,KAJD9hD,wEAmGnB,IAcPg5F,EAdO93F,EAAA1F,KAAAD,EAUDC,KAAKC,MARLC,EAFCH,EAEDG,QACAmjC,EAHCtjC,EAGDsjC,SAHC4lE,EAAAlpG,EAIDixF,sBACI7B,EALH8Z,EAKG9Z,wBACAgC,EANH8X,EAMG9X,oCACAO,EAPHuX,EAOGvX,iCACAN,EARH6X,EAQG7X,kCARH/jF,EAWwCrN,KAAKsF,MAA1C+mF,EAXHh/E,EAWGg/E,WAAYzhE,EAXfvd,EAWeud,QAAS29E,EAXxBl7F,EAWwBk7F,YAC7BpoG,EAAYgxF,GAAuCO,GAAoCN,EACzF7mE,EAAa,GAEb4kE,IACHqO,EAAoBrO,EACpB5kE,EAAa4kE,EAAwB5kE,YAIhC,IAAM2+E,EAA8BtjG,YAAe,CAACjG,OAC9C0M,EAAkBrM,KAAKsF,MAAM+G,gBAC7Bs7F,EAAY3nG,KAAKsF,MAAMqiG,UACzBjrE,GAAa,EAKjB,OAJkB,WAAbirE,GAA6C,WAAnBt7F,GACV,UAAbs7F,GAA4C,WAAnBt7F,IAAiC68F,KAC1DxsE,GAAa,GAGjBnc,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WAExBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAK,qBAAAkO,OAAuBogF,EAAwBjnE,OAAS/nB,UAAWA,GACnFogB,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,aAAcV,UAAWA,GAC3CogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACgmG,GAAD,CAA2B/4F,KAAM8c,EAAYk5E,YAAazjG,KAAKyjG,YAAapX,WAAYA,OAKpG9rE,EAAAhgB,EAAAC,cAAC2oG,GAAD,CACI5/C,SAAU,SAACC,GAAD,OAAe9jD,EAAK4gD,kBAAoBkD,GAClD/5B,UAAalF,EAAW8hE,GACxBhpD,SAAUA,EACVyZ,cAAe58C,EAAQmjC,WAE1Bm6D,GAAsBj9E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cAAeV,UAAWA,GACnEogB,EAAAhgB,EAAAC,cAACimG,GAAD,CACI52B,UAAY,EACZpgD,UAAalF,EAAW8hE,GACxBlxD,MAAS,GACT2qB,6BAAgC,EAChCj5C,cAAiB,aACjBq3F,WAAS,KAIhB1G,GAAsBj9E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,oBAAqBV,UAAWA,GACzEogB,EAAAhgB,EAAAC,cAAC4oG,GAAD,CACIv5B,UAAY,EACZsf,wBAAyBqO,EACzBiH,uBAA0BzkG,KAAKykG,uBAC/BP,WAAS,KAMhB1G,GAAsBj9E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBAAkBV,UAAWA,GACtEogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,UAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACoB,GAA9Bo7E,EAAkBx4E,UAAmD,GAA9Bw4E,EAAkBt4E,UAAsB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAC5EvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,UAAU,EACV9S,MAAO,UACP+C,WAAS,IAGkB,GAA9BwtF,EAAkBx4E,UAAmD,GAA9Bw4E,EAAkBt4E,UAAqB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAC3EvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,UAAU,EACV9S,MAAO,WACP+C,WAAS,IAGkB,GAA9BwtF,EAAkBx4E,UAAqBzE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACpCvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,UAAU,EACV9S,MAAO,WACP+C,WAAS,MAIrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACf7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,UAAU,EACV9S,MAAOuwF,EAAkB9xD,SACzB17B,WAAS,OAMrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRqM,MAAOuwF,EAAkB5yE,QACzB7a,SAAU/P,KAAK6M,cACfgD,QAAS04F,EAAaz4F,WAAYy4F,EAClCv4F,WAAS,MAIrBuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACwgB,GAAI,EAAGhhB,QAAS,GAAIiH,WAAY,UACjDkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACf7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,GACHlD,OAAO,SACPnI,QAAQ,WACRmf,UAAU,EACV9S,MAAOuwF,EAAkBzlF,OACzB/H,WAAS,QAO7BuQ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,EAAGqO,UAAW,QAChC+tF,EAAkBx4E,YAAcw4E,EAAkBt4E,UAAYgkF,IAAkC3oF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACzG2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYT,UAAaA,EAAW4f,SAAY2c,EAAYt1B,QAAS,kBAAM1B,EAAKgjG,UAAUlL,EAAkBvxF,GAAI2e,EAAS4yE,KAA3J,eAIDA,EAAkBt4E,WAAas4E,EAAkBx4E,UAAczE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACxE2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYT,UAAaA,EAAW4f,SAAY2c,EAAYt1B,QAAS,kBAAM1B,EAAKojG,SAAStL,EAAkBvxF,GAAI2e,EAAS4yE,KAA1J,aAORj9E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,cAAeV,UAAaA,GAChEogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACzBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW/f,UAAaP,EAAQmpG,aAAhC,QACA9oF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBAC8BD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBAGRD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKg9E,EAAkB/L,WAAc+L,EAAkB/L,UAAUhwF,IAAI,SAAC6nG,EAAU3nG,GACxE,OAAO4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU+oF,UAAQ,EAAC1nG,IAAKF,GAC3B4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB23F,EAASngF,cAA7C,IAA6DmgF,EAASE,eACtEjpF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,YAAgB8oF,EAAShnF,MAAzB,eAA4CgnF,EAASG,UAAalpF,EAAAhgB,EAAAC,cAAA,qBAAa8oG,EAASG,UAAxF,OAAgHH,EAAS1yF,UACzH2J,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,SAGPg9E,EAAkB/N,cAAiBlvE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU+oF,UAAQ,EAAC1nG,IAAK,YACxE0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB6rF,EAAkB/N,cAAtD,IAAsE+N,EAAkBhO,kBACxEjvE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYg9E,EAAkBhO,iBAA9B,2BACAjvE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYg9E,EAAkBuL,mBAEjCvL,EAAkBlO,cAAiB/uE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU+oF,UAAQ,EAAC1nG,IAAK,YACxD0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB6rF,EAAkBlO,cAAtD,IAAsEkO,EAAkBnO,kBACxF9uE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYg9E,EAAkBnO,iBAA9B,2BACA9uE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYg9E,EAAkBmL,wBAStDpoF,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAvTzG/H,aAqV7BgM,eAjBS,SAAAhL,GAAS,IACrB0rF,EAA0B1rF,EAA1B0rF,sBACR,MAAO,CACHA,wBACA3tD,SAAU2tD,EAAsB3tD,WAIb,SAAAhzB,GACvB,MAAO,CACHw4F,+BAAgC,SAACp7F,EAAM+vF,GAAP,OAA6BntF,EnChHvB,SAAC5C,EAAM0hF,GAAP,sBAAA30E,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAmC,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC7EuG,EAASkgF,MADoE71E,EAAA5Q,KAAA,EAE5DoL,KAAMM,KAAKrS,GAAU,8CAA+CsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACrH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJoC,YAEvEqJ,EAFuEgN,EAAA5M,MAStEL,KAAKM,QATiE,CAAA2M,EAAA5Q,KAAA,gBAUzEqlF,EAAwBnqE,SAAWtX,EAAGD,KAAKoL,OAAOmM,SAClDmqE,EAAwBG,aAAe5hF,EAAGD,KAAKoL,OAAOy2E,aACtDH,EAAwBC,WAAa1hF,EAAGD,KAAKoL,OAAOu2E,WACpDD,EAAwBE,iBAAmB3hF,EAAGD,KAAKoL,OAAOw2E,iBAC1DF,EAAwBwZ,gBAAkBj7F,EAAGD,KAAKoL,OAAO8vF,gBACzDt4F,EAASmgF,GAAuCrB,IAfyBz0E,EAAAnF,OAAA,SAgBlE,CAACxH,SAAS,EAAM1J,QAAS,KAhByC,eAkBzEgM,EAASogF,MAlBgE/1E,EAAAnF,OAAA,SAmBlE,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnB0B,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAnC,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,GmCgHgCk2F,CAA+Bp7F,EAAM+vF,KAC3GwL,8BAA+B,SAACv7F,EAAM+vF,GAAP,OAA6BntF,EnC5EvB,SAAC5C,EAAM0hF,GAAP,sBAAAp0E,EAAA3Y,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAmC,SAAAuR,EAAM3K,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cAC5EuG,EAASqgF,MADmEz1E,EAAAnR,KAAA,EAE3DoL,KAAMM,KAAKrS,GAAU,6CAA8CsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACpH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJmC,YAEtEqJ,EAFsEuN,EAAAnN,MASrEL,KAAKM,QATgE,CAAAkN,EAAAnR,KAAA,gBAUxEqlF,EAAwBjqE,SAAWxX,EAAGD,KAAKoL,OAAOqM,SAClDiqE,EAAwBM,aAAe/hF,EAAGD,KAAKoL,OAAO42E,aACtDN,EAAwBI,WAAa7hF,EAAGD,KAAKoL,OAAO02E,WACpDJ,EAAwBK,iBAAmB9hF,EAAGD,KAAKoL,OAAO22E,iBAC1DL,EAAwB4Z,iBAAmBr7F,EAAGD,KAAKoL,OAAOkwF,iBAC1D14F,EAASsgF,GAAsCxB,IAfyBl0E,EAAA1F,OAAA,SAgBjE,CAACxH,SAAS,EAAM1J,QAAS,KAhBwC,eAkBxEgM,EAASugF,MAlB+D31E,EAAA1F,OAAA,SAmBjE,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnByB,yBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SAAnC,gBAAAqb,GAAA,OAAAN,EAAAlF,MAAA7V,KAAA2S,YAAA,GmC4EgCq2F,CAA8Bv7F,EAAM+vF,KACzGiL,2BAA4B,SAACh7F,GAAD,OAAU4C,EnC9KJ,SAAC5C,GAAD,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAChDuG,EAAS6/E,MADuCrlF,EAAAf,KAAA,EAG/BoL,KAAMM,KAAKrS,GAAU,8CAAgDsK,EAAM,KAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC5H,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALO,YAG1CqJ,EAH0C7C,EAAAiD,MAUzCL,KAAKM,QAVoC,CAAAlD,EAAAf,KAAA,eAW5CuG,EAAS8/E,GAAmCziF,IAXA7C,EAAA0K,OAAA,SAYrC,CAACxH,SAAS,EAAM1J,QAAS,KAZY,cAc5CgM,EAAS+/E,MAdmCvlF,EAAA0K,OAAA,SAerC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfH,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAV,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GmC8Ka81F,CAA2Bh7F,KAC1Eu4B,4BAA6B,SAACjoC,GAAD,OAAOsS,EAAS21B,GAA4BjoC,OAIlEuS,CAA6CpO,qBAxB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtB4oD,QAAS,CAAE7Z,OAAQ,WACnBm5D,YAAc,CAAE5gG,MAAM,OACtB46B,SAAU,KAoB8CnhC,CAAmBsmG,KCpWzEpQ,GAAqB,CACvB,CAACv2F,IAAK,MAAO+N,MAAO,OACpB,CAAC/N,IAAK,WAAY+N,MAAO,aACzB,CAAC/N,IAAK,OAAQ+N,MAAO,SAGnB85F,eACF,SAAAA,EAAYzpG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA0pG,IACxBllG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAsnG,GAAA9kG,KAAA5E,KAAMC,EAAOiJ,KAoBjBI,kBArB4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqBR,SAAAC,IAAA,IAAAgE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,0BADgBiG,EAAAE,KAAA,EAECtF,EAAKvE,MAAM4sF,aAFZ,QAEVn/E,EAFU9D,EAAAkE,MAGRC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAHlF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SArBQwE,EA2B5B+iD,aAAe,WACX/iD,EAAKU,SAAS,CAACykG,gBAAgB,KA5BPnlG,EA+B5B4vF,WA/B4BhyF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA+Bf,SAAAmB,IAAA,IAAA8C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,WACLtF,EAAKmJ,UAAUnJ,EAAKc,MAAMgqC,SADrB,CAAAzkC,EAAAf,KAAA,eAAAe,EAAAf,KAAA,EAEYtF,EAAKvE,MAAM2pG,WAAWplG,EAAKc,MAAMgqC,SAF7C,OAEC5hC,EAFD7C,EAAAiD,KAGLtJ,EAAKU,SAAS,CAACykG,gBAAgB,IAC3Bj8F,EAAGK,SACHvJ,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAiB,eACjBq9F,gBAAgB,IAEpBnlG,EAAKvE,MAAM4sF,cAEXroF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBslG,gBAAgB,EAChBj3E,kBAAkB,IAlBrB,wBAAA7nB,EAAAH,SAAAE,EAAA5K,SA/BewE,EAuD5B88D,SAvD4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAuDjB,SAAAyQ,IAAA,IAAAxM,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,WACHtF,EAAKmJ,UAAU,CAACgqF,SAAUnzF,EAAKc,MAAMqyF,WADlC,CAAAx9E,EAAArQ,KAAA,eAAAqQ,EAAArQ,KAAA,EAEctF,EAAKvE,MAAM4pG,QAAQ,CAAClS,SAAUnzF,EAAKc,MAAMqyF,SAAS7xD,cAAe5T,KAAM1tB,EAAKc,MAAM4sB,OAFhG,QAEGxkB,EAFHyM,EAAArM,MAGIC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,iBAChF9H,EAAKvE,MAAM4sF,cAEXroF,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAPlF,wBAAA8V,EAAAzP,SAAAwP,EAAAla,SAvDiBwE,EAiF5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAlFL5H,EAqF5B8e,OAAS,SAAAd,GACLhe,EAAKU,SAAS,CAACykG,gBAAgB,EAAMr6D,QAAS9sB,EAAKsnF,YAAatnF,KAtFxChe,EAyF5B+vF,aAAe,SAACznF,EAAG6D,GACfnM,EAAKU,SAAS,CAACoqC,QAAQltC,OAAA+d,EAAA,EAAA/d,CAAA,GAAKoC,EAAKc,MAAMgqC,QAAjBltC,OAAA8sB,GAAA,EAAA9sB,CAAA,GAA2B0K,EAAI6D,OA1F7BnM,EA6F5Bgf,SAAW,SAAAhB,GACPhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMq3E,SAAUvnF,KA9FzBhe,EAiG5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,KAlGTluB,EAqG5BguB,gBArG4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqGV,SAAAgR,IAAA,IAAA/M,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAAA4Q,EAAA5Q,KAAA,EACGtF,EAAKvE,MAAM+pG,WAAWxlG,EAAKc,MAAMykG,SAAS99F,IAD7C,QACRyB,EADQgN,EAAA5M,MAGPC,SACHvJ,EAAKvE,MAAM4sF,aACXroF,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,UACjBC,gBAAe,QAAAyC,OAAUvK,EAAKc,MAAMykG,SAASpS,SAA9B,YACfjlE,kBAAkB,KAGtBluB,EAAKU,SAAS,CACVkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,QACpBquB,kBAAkB,IAhBZ,wBAAAhY,EAAAhQ,SAAA+P,EAAAza,SArGUwE,EA0H5BylG,eAAiB,SAAAtS,GACbnzF,EAAKU,SAAS,CAACyyF,cA3HSnzF,EA8H5B0lG,WAAa,SAAAh4E,GACT1tB,EAAKU,SAAS,CAACgtB,UA7Hf1tB,EAAKc,MAAQ,CACTsxC,YAAY,EACZxqC,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB89F,cAAe,GACfC,kBAAmB,GACnBzS,SAAU,GACVn9B,UAAW,GACXy8B,cAAe,GACf/kE,KAAM,GACNy3E,gBAAgB,EAChBG,YAAa,GACbx6D,QAAS,GACT5c,kBAAkB,EAClBq3E,SAAU,IAjBUvlG,yEAmElBwN,GAAK,IACJ23F,EAAkB3pG,KAAKsF,MAAvBqkG,eACP,OAA4B,IAAxB33F,EAAI2lF,SAASnpF,QACZm7F,EAEK3pG,KAAKkF,SAAS,CAACklG,kBAAmB,gCADlCpqG,KAAKkF,SAAS,CAACilG,cAAe,iCAE7B,IAEPnqG,KAAKkF,SAAS,CAACilG,cAAe,GAAIC,kBAAmB,MAGlD,oCAoDF,IAAA1kG,EAAA1F,KAAAD,EACuBC,KAAKC,MAA1BC,EADFH,EACEG,QAAS6xF,EADXhyF,EACWgyF,SADX1kF,EAEwGrN,KAAKsF,MAA3GqkG,EAFFt8F,EAEEs8F,eAAgBj3E,EAFlBrlB,EAEkBqlB,iBAAkB4c,EAFpCjiC,EAEoCiiC,QAASy6D,EAF7C18F,EAE6C08F,SAAUD,EAFvDz8F,EAEuDy8F,YAAaM,EAFpE/8F,EAEoE+8F,kBAAmBnT,EAFvF5pF,EAEuF4pF,cAEtFtC,EAAsB/uF,YAAe,CAAC5G,OACtC01F,EAAoB9uF,YAAe,CAAC3G,OACpC21F,EAAoBhvF,YAAe,CAAC7G,QAAqC21F,GAAqBC,EAEpG,OACIp0E,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACw2B,GAAD,CAAc1E,YAAa,YAAcy3E,EAASpS,SAAUjlE,iBAAkBA,EAC1EH,eAAgBvyB,KAAKuyB,eAAgBC,gBAAiBxyB,KAAKwyB,iBAC3DjS,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,4CAGA2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cACA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAEmoG,EAASpS,WAEzBp3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,SACA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAEmoG,EAAS73E,SAKjC3R,EAAAhgB,EAAAC,cAACi9C,GAAD,CAAqB58C,MAAO,WAAaipG,EAAYnS,SAAU/gD,WAAY+yD,EACvExlG,QAASnE,KAAKunD,aACd1Q,SAAU72C,KAAKo0F,WAAYt9C,WAAY,QACvCv2B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,aACA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAC9CqM,MAAOqiC,EAAQqoD,SACf9nF,QAASu6F,EACTt6F,WAAYs6F,EACZr6F,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,WAAYtvF,EAAE+H,OAAOC,YAGlEsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,QACA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAAWqM,MAAOqiC,EAAQpd,KACxEriB,QAASonF,EACTnnF,WAAYmnF,EACZlnF,SAAU,SAAA9K,GAAC,OAAIS,EAAK6uF,aAAa,OAAQtvF,EAAE+H,OAAOC,cAMrE2nF,GAAqBr0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAC1D8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,YAAaV,UAAW4xF,EAASpE,qBAClDoE,EAAS9E,MAAMz+E,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACspB,EAAD,CAC1BpI,OAAQ02E,GACRz2E,KAAMowE,EAAS9E,MACfprE,WAAY6yE,EACZpxE,OAAQtjB,KAAKsjB,WAKxBqxE,GAAuBp0E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAC9B2e,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,YAClB0f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,WACH2D,MAAM,mBACN7G,OAAO,SACP+G,WAAY9P,KAAKsF,MAAM6kG,cACvBt6F,MAAoC,KAA7B7P,KAAKsF,MAAM6kG,cAClBvpG,QAAQ,WACR+5B,YAAa,YACb3qB,WAAS,EACT/C,MAAOjN,KAAKsF,MAAMqyF,SAClB5nF,SAAU,SAAA9K,GAAC,OAAIS,EAAKukG,eAAehlG,EAAE+H,OAAOC,WAGpDsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIvU,GAAG,OACH2D,MAAM,aACN7G,OAAO,SACP+G,WAAY9P,KAAKsF,MAAMk1D,UACvB3qD,MAAgC,KAAzB7P,KAAKsF,MAAMk1D,UAClB55D,QAAQ,WACR+5B,YAAa,YACb3qB,WAAS,EACT/C,MAAOjN,KAAKsF,MAAM4sB,KAClBniB,SAAU,SAAA9K,GAAC,OAAIS,EAAKwkG,WAAWjlG,EAAE+H,OAAOC,WAGhDsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKshE,UADlB,gBAQxB/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAlP/C/H,aA0QfgM,eAdS,SAAAhL,GAEpB,MAAO,CAACysF,SADWzsF,EAAZysF,WAIgB,SAAA1hF,GACvB,MAAO,CACHw8E,WAAY,kBAAMx8E,EAASw8E,OAC3Bgd,QAAS,SAAAnS,GAAI,OAAIrnF,GtC/JF5C,EsC+JmBiqF,EtC/Jf,eAAAl9E,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC3BuG,EAASm9E,MADkB9yE,EAAA5Q,KAAA,EAGVoL,KAAMM,KAAKrS,GAAU,gBAAiBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACvF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAS9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAR1B,qBAA5BrQ,EAAEoQ,SAAS5H,KAAK48F,QAA2BplG,EAAEoQ,SAAS5H,KAAK48F,OAAO77F,OAAS,EAC1E,CAACf,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAAS5H,KAAK48F,OAAO,MAIhE,CAAC58F,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aATlB,YAGrBqJ,EAHqBgN,EAAA5M,MAepBL,KAAKM,QAfe,CAAA2M,EAAA5Q,KAAA,eAgBvBuG,EAASo9E,GAAgB//E,IAhBFgN,EAAAnF,OAAA,SAiBhB,CAACxH,SAAS,EAAM1J,QAAS,KAjBT,cAmBvBgM,EAASq9E,MAnBchzE,EAAAnF,OAAA,SAoBhB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UApBxB,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,KAAJ,IAAAlF,GsCgKfm8F,WAAY,SAAAlS,GAAI,OAAIrnF,GtCxOF5C,EsCwOsBiqF,EtCxOlB,eAAA79E,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC9BuG,EAAS68E,MADqBriF,EAAAf,KAAA,EAGboL,KAAMM,KAAKrS,GAAU,iBAAkBsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAExF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAS9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAR1B,qBAA5BrQ,EAAEoQ,SAAS5H,KAAK48F,QAA2BplG,EAAEoQ,SAAS5H,KAAK48F,OAAO77F,OAAS,EAC1E,CAACf,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAAS5H,KAAK48F,OAAO,MAIhE,CAAC58F,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAVf,YAGxBqJ,EAHwB7C,EAAAiD,MAgBvBL,KAAKM,QAhBkB,CAAAlD,EAAAf,KAAA,eAiB1BuG,EAAS88E,GAAmBz/E,EAAGD,KAAKoL,SAjBVhO,EAAA0K,OAAA,SAkBnB,CAACxH,SAAS,EAAM1J,QAAS,KAlBN,cAoB1BgM,EAAS+8E,MApBiBviF,EAAA0K,OAAA,SAqBnB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArBrB,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,KAAJ,IAAAlF,GsCyOlBu8F,WAAY,SAAA/9F,GAAE,OAAIoE,EtCpMA,SAAApE,GAAE,sBAAAgO,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAAi6F,EAAA58F,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAC5BuG,EAASg9E,MAEHid,EAHsBloG,OAAA+d,EAAA,EAAA/d,CAAA,GAGHmO,eAHG4J,EAAArQ,KAAA,EAIXoL,KAAM+yC,OAAO9kD,GAAO,uBAAA4L,OAA0B9C,GAAMq+F,GAAcl1F,MAAM,SAAAnQ,GACrF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aANb,YAItBqJ,EAJsByM,EAAArM,MAWrBL,KAAKM,QAXgB,CAAAoM,EAAArQ,KAAA,gBAYxBuG,EAASi9E,GAAmB5/E,IAZJyM,EAAA5E,OAAA,SAajB,CAACxH,SAAS,EAAM1J,QAAS,KAbR,eAexBgM,EAASk9E,MAfepzE,EAAA5E,OAAA,SAgBjB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAhBvB,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GsCoMOq3F,CAAW/9F,OAI/BqE,CAA6CpO,qBAlB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAiBmCe,CAAmBwnG,KCvRzEa,eACF,SAAAA,EAAYtqG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAuqG,IACxB/lG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmoG,GAAA3lG,KAAA5E,KAAMC,EAAOiJ,KASjBI,kBAV4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAUR,SAAAC,IAAA,IAAAgE,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,4BADgBiG,EAAAE,KAAA,EAGCtF,EAAKvE,MAAMuqG,kBAHZ,QAGV98F,EAHU9D,EAAAkE,MAIRC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAJlF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SAVQwE,EAwB5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KAzBL5H,EA4B5B88D,SA5B4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA4BjB,SAAAmB,IAAA,IAAA6C,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACD2D,EAAO,CAACukB,MAAOxtB,EAAKc,MAAMwjF,cADzBj+E,EAAAf,KAAA,EAEUtF,EAAKvE,MAAMwqG,mBAAmBh9F,GAFxC,QAEDC,EAFC7C,EAAAiD,MAGAC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,mBAChF9H,EAAKvE,MAAMuqG,mBAEXhmG,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAP9E,wBAAAwG,EAAAH,SAAAE,EAAA5K,SA1BPwE,EAAKc,MAAQ,CACTwjF,cAAc,EACd18E,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,WANG7H,kFAiBTitB,EAAWC,GAC1B,IAA0D,IAAtDD,EAAUqsB,eAAe+qC,2BAA4F,IAAvD7oF,KAAKC,MAAM69C,eAAe+qC,yBAAoC,KACpGC,EAAiB9oF,KAAKC,MAAvC69C,eAAiBgrC,aACxB9oF,KAAKkF,SAAS,CAAC4jF,aAAcA,sCAmB5B,IAAApjF,EAAA1F,KAAAD,EACsFC,KAAKC,MAAzFC,EADFH,EACEG,QADFwqG,EAAA3qG,EACW+9C,eAAiB+qC,EAD5B6hB,EAC4B7hB,yBAA0BE,EADtD2hB,EACsD3hB,4BACpDD,EAAgB9oF,KAAKsF,MAArBwjF,aACD3oF,EAAY0oF,GAA4BE,EAE9C,OACIxoE,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,SAAUV,UAAWA,GACvCogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACI5Q,MAAO,SACPguC,QACIr9B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACIsC,QAASgmE,EACT/4E,SAAU,kBAAMrK,EAAKR,SAAS,CAAC4jF,cAAepjF,EAAKJ,MAAMwjF,gBACzD3hF,MAAO,eAKvBoZ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,aAIZ/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,2BAxEvD/H,aAgGXgM,eAbS,SAAAhL,GAGpB,MAAO,CAACw4C,eAFiBx4C,EAAlBw4C,iBAKgB,SAAAztC,GACvB,MAAO,CACHm6F,gBAAiB,kBAAMn6F,E3C4JA,eAAA2tC,EAAA57C,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAM,SAAA0zC,EAAM9sC,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA0zC,GAAA,cAAAA,EAAAxzC,KAAAwzC,EAAAvzC,MAAA,cACjCuG,EAAS63E,MADwB7qC,EAAAvzC,KAAA,EAGhBoL,KAAMC,IAAIhS,GAAU,yBAA0BoN,eAAwB6E,MAAM,SAAAnQ,GACzF,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALR,WAG3BqJ,EAH2B2vC,EAAAvvC,MAUzBL,KAVyB,CAAA4vC,EAAAvzC,KAAA,eAW7BuG,EAAS+3E,MAXoB/qC,EAAA9nC,OAAA,SAYtB,CAACxH,SAAS,EAAO1J,QAAS,wBAZJ,WAc7BqJ,EAAGD,KAAKM,QAdqB,CAAAsvC,EAAAvzC,KAAA,gBAe7BuG,EAAS83E,GAAwBz6E,IAfJ2vC,EAAA9nC,OAAA,SAgBtB,CAACxH,SAAS,EAAM1J,QAAS,KAhBH,eAkB7BgM,EAAS+3E,MAlBoB/qC,EAAA9nC,OAAA,SAmBtB,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBlB,yBAAAg5C,EAAA3yC,SAAAyyC,EAAAn9C,SAAN,gBAAAm+C,GAAA,OAAAH,EAAAnoC,MAAA7V,KAAA2S,YAAA,K2C3JvB83F,mBAAoB,SAAAh9F,GAAI,OAAI4C,E3C+LF,SAAA5C,GAAI,sBAAAigB,EAAAtrB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAu9B,EAAM32B,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAs9B,GAAA,cAAAA,EAAAp9B,KAAAo9B,EAAAn9B,MAAA,cACtCuG,EAASg4E,MAD6BphD,EAAAn9B,KAAA,EAGrBoL,KAAMM,KAAKrS,GAAU,4BAA6BsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GACnG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALH,WAGhCqJ,EAHgCu5B,EAAAn5B,MAU9BL,KAV8B,CAAAw5B,EAAAn9B,KAAA,eAWlCuG,EAASk4E,MAXyBthD,EAAA1xB,OAAA,SAY3B,CAACxH,SAAS,EAAO1J,QAAS,wBAZC,WAclCqJ,EAAGD,KAAKM,QAd0B,CAAAk5B,EAAAn9B,KAAA,gBAelCuG,EAASi4E,GAA2B56E,IAfFu5B,EAAA1xB,OAAA,SAgB3B,CAACxH,SAAS,EAAM1J,QAAS,KAhBE,eAkBlCgM,EAASk4E,MAlByBthD,EAAA1xB,OAAA,SAmB3B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBb,yBAAA4iC,EAAAv8B,SAAAs8B,EAAAhnC,SAAJ,gBAAAqnC,GAAA,OAAA3Z,EAAA7X,MAAA7V,KAAA2S,YAAA,G2C/LO83F,CAAmBh9F,OAIjD6C,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,aAgBmCe,CAAmBqoG,eCjFzEI,eACF,SAAAA,EAAY1qG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA2qG,IACxBnmG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAuoG,GAAA/lG,KAAA5E,KAAMC,EAAOiJ,KAsBjBI,kBAvB4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAuBR,SAAAC,IAAA,IAAA+O,EAAA,OAAAwU,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAChBgF,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,uCADgBiG,EAAAE,KAAA,EAEEtF,EAAKvE,MAAM4yB,kBAFb,QAEVpa,EAFU7O,EAAAkE,MAGPC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBmM,EAAIpU,UAHpF,wBAAAuF,EAAAc,SAAAhB,EAAA1J,SAvBQwE,EA6C5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KA9CL5H,EAmE5B88D,SAnE4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAmEjB,SAAAmB,IAAA,IAAA6tD,EAAAV,EAAA1qD,EAAA+lB,EAAAw3E,EAAAn9F,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,UACFtF,EAAKmJ,YADH,CAAA9C,EAAAf,KAAA,eAAAe,EAAA0K,OAAA,wBAEHkjD,EAAkB,IAAI1K,GAAgB,CAACC,YAAaxpD,EAAKc,MAAMulG,aAAcC,aAAa,KAC9E38C,cACZ4J,EAAYU,EAAgBhK,gBAJzBphD,EAMyB7I,EAAKc,MAA9B8tB,EANA/lB,EAMA+lB,SAAUw3E,EANVv9F,EAMUu9F,YACbn9F,EAAOsqD,EAAUt2D,IAAI,SAAAu8B,GACrB,MAAO,CAAC+sE,WAAY33E,EAASnmB,MAAOsyD,UAAWvhC,EAAG4sE,YAAaA,EAAY39F,SARxEpC,EAAAf,KAAA,EAUUtF,EAAKvE,MAAM+qG,oBAAoB,CAAC9c,iBAAkBzgF,IAV5D,QAUDC,EAVC7C,EAAAiD,MAWAC,QACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,2BAA4B2+F,YAAa,IAEzHzmG,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAd9E,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAnEiBwE,EAqF5B0mG,wBArF4B9oG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAqFF,SAAAyQ,IAAA,IAAAhL,EAAAi8F,EAAAC,EAAA39F,EAAA49F,EAAA39F,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAAAoF,EACsB1K,EAAKc,MAA1C6lG,EADej8F,EACfi8F,eAAgBC,EADDl8F,EACCk8F,kBACnB39F,EAAO,CAAC4L,OAAQ,IAChB8xF,EAAel+F,QAAOQ,EAAK4L,OAAO0xF,WAAaI,EAAel+F,OAClC,QAA5Bm+F,EAAkBn+F,QAAiBQ,EAAK4L,OAAOuxF,YAAcQ,EAAkBn+F,OAE/Eo+F,EAAW7mG,EAAK+xB,WAAWM,SAASryB,EAAKc,MAAM2lG,aACnDx9F,EAAK4L,OAAOiyF,eAAiBD,EAAStkF,eACtCtZ,EAAK4L,OAAOkyF,UAAYF,EAAShkF,UAEjC5Z,EAAIrL,OAAA+d,EAAA,EAAA/d,CAAA,GAAOqL,EAAS8C,eAVE4J,EAAArQ,KAAA,GAYLtF,EAAKvE,MAAMurG,uBAAuB/9F,GAZ7B,SAYhBC,EAZgByM,EAAArM,MAafC,SACHvJ,EAAK+xB,WAAWC,mBAAmB,CAACvP,WAAYvZ,EAAGuZ,aACnDziB,EAAKU,SAAS,CAAC+hB,WAAYziB,EAAK+xB,WAAWnP,mBAE3C5iB,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAjB/D,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SArFEwE,EA2G5BinG,yBAA2B,SAAAx4E,GACvB,OAAOA,EAAUxxB,IAAI,SAAA0yB,GACjB,MAAO,CACHvkB,MAAK,GAAAb,OAAK2C,YAAoByiB,EAAEzf,WAA3B,OAAA3F,OAA2C2C,YAAoByiB,EAAExf,UACtE1H,MAAOknB,EAAEloB,OA/GOzH,EAoH5BknG,sBAAwB,SAACz4E,GACrB,IAAMkB,EAAIlB,EAAUxxB,IAAI,SAAA0yB,GACpB,MAAO,CACHvkB,MAAK,GAAAb,OAAK2C,YAAoByiB,EAAEzf,WAA3B,OAAA3F,OAA2C2C,YAAoByiB,EAAExf,UACtE1H,MAAOknB,EAAEloB,MAGjB,OAAQ,CAAC2D,MAAO,MAAO3C,MAAO,KAA9B8B,OAAA3M,OAAAusB,GAAA,EAAAvsB,CAAsC+xB,KA3Hd3vB,EA8H5BmnG,iBAAmB,SAAA1mG,GACfT,EAAKU,SAAS,CAACkuB,SAAUnuB,KA/HDT,EAkI5BonG,oBAAsB,SAAA3mG,GAClBT,EAAKU,SAAS,CAAC0lG,YAAa3lG,KAnIJT,EAsI5BqnG,mBAAqB,WAEjB,MADc,CAAC,MAAO,OACTpqG,IAAI,SAAAoxC,GAAC,MAAK,CAACjjC,MAAOijC,EAAG5lC,MAAO4lC,MAxIjBruC,EA2I5BsnG,yBAA2B,WAEvB,MADc,CAAC,MAAO,MAAO,OAChBrqG,IAAI,SAAAoxC,GAAC,MAAK,CAACjjC,MAAOijC,EAAG5lC,MAAO4lC,MA7IjBruC,EAgJ5BunG,qBAAuB,SAAA9mG,GACnBT,EAAKU,SAAS,CAAC2lG,aAAc5lG,EAAE+H,OAAOC,SAjJdzI,EAoJ5BwnG,sBAAwB,SAAAxpF,GACpBhe,EAAKU,SAAS,CAACykG,gBAAgB,EAAMsC,eAAgBzpF,KArJ7Bhe,EAwJ5B0nG,YAAc,WACV1nG,EAAKU,SAAS,CAACykG,gBAAgB,KAzJPnlG,EA4J5B2nG,gCAAkC,SAAAhpC,GAC9B,OAAgD,IAA5CA,EAAgBzuD,UAAU1D,QAAQ,KAC3B,CACHpB,MAAK,GAAAb,OAAK2C,YAAoByxD,EAAgBzuD,WAAzC,OAAA3F,OAAyD2C,YAAoByxD,EAAgBxuD,UAClG1H,MAAOk2D,EAAgB4nC,YAGpB,CACHn7F,MAAK,GAAAb,OAAKo0D,EAAgBzuD,UAArB,OAAA3F,OAAoCo0D,EAAgBxuD,SACzD1H,MAAOk2D,EAAgB4nC,aArKPvmG,EA0K5B4nG,wBAA0B,SAAAnnG,GAAK,IACpBgnG,EAAkBznG,EAAKc,MAAvB2mG,eADoBI,EAEEpnG,EAAE2K,MAAMmB,MAAM,KAAKtP,IAAI,SAAAwD,GAAC,OAAIA,EAAEs+C,SAFhC+oD,EAAAlqG,OAAAmqG,GAAA,EAAAnqG,CAAAiqG,EAAA,GAEpB33F,EAFoB43F,EAAA,GAET33F,EAFS23F,EAAA,GAG3B9nG,EAAKU,SAAS,CACV+mG,eAAe7pG,OAAA+d,EAAA,EAAA/d,CAAA,GACR6pG,EADO,CAEVlB,WAAY9lG,EAAEgI,MACdyH,UAAWA,EACXC,QAASA,OAlLOnQ,EAuL5BgoG,2BAA6B,SAAAvnG,GAAK,IACvBgnG,EAAkBznG,EAAKc,MAAvB2mG,eACPznG,EAAKU,SAAS,CAAC+mG,eAAe7pG,OAAA+d,EAAA,EAAA/d,CAAA,GAAK6pG,EAAN,CAAsBrB,YAAa3lG,EAAEgI,WAzL1CzI,EA4L5BioG,+BAAiC,SAAAtpC,GAC7B,MAAO,CAACvzD,MAAOuzD,EAAgBynC,YAAa39F,MAAOk2D,EAAgBynC,cA7L3CpmG,EAgM5BkoG,wBAA0B,SAAAlqF,GACtBhe,EAAKU,SAAS,CAACwtB,kBAAkB,EAAMi6E,gBAAiBnqF,KAjMhChe,EAoM5BooG,uBAAyB,SAAA3nG,GAAK,IACnBgnG,EAAkBznG,EAAKc,MAAvB2mG,eACPznG,EAAKU,SAAS,CAAC+mG,eAAe7pG,OAAA+d,EAAA,EAAA/d,CAAA,GAAK6pG,EAAN,CAAsB1sC,UAAWt6D,EAAE+H,OAAOC,WAtM/CzI,EAyM5B4vF,WAzM4BhyF,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAyMf,SAAAgR,IAAA,IAAAoyF,EAAA5gG,EAAA8+F,EAAAxrC,EAAAqrC,EAAAn9F,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAAA+iG,EAC0DroG,EAAKc,MAAjE2mG,eAAiBhgG,EADf4gG,EACe5gG,GAAI8+F,EADnB8B,EACmB9B,WAAYxrC,EAD/BstC,EAC+BttC,UAAWqrC,EAD1CiC,EAC0CjC,YAE7Cn9F,EAAO,CAACxB,KAAI8+F,aAAYxrC,YAAWqrC,eAHhClwF,EAAA5Q,KAAA,EAIQtF,EAAKvE,MAAM6sG,uBAAuBr/F,GAJ1C,QAIHC,EAJGgN,EAAA5M,MAKFC,SACHvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,oBAC9E9H,EAAKvE,MAAMurG,0BAEXhnG,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAT5E,wBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAzMewE,EAsN5B+tB,eAAiB,WACb/tB,EAAKU,SAAS,CAACwtB,kBAAkB,KAvNTluB,EA0N5BguB,gBA1N4BpwB,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KA0NV,SAAAuR,IAAA,IAAA2xF,EAAAj/F,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAsR,GAAA,cAAAA,EAAApR,KAAAoR,EAAAnR,MAAA,cACP6iG,EAAmBnoG,EAAKc,MAAxBqnG,gBADO1xF,EAAAnR,KAAA,EAEGtF,EAAKvE,MAAM8sG,sBAAsBJ,EAAgB1gG,IAFpD,QAERyB,EAFQuN,EAAAnN,MAGPC,SACHvJ,EAAKU,SAAS,CAACwtB,kBAAkB,IACjCluB,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,UAAWC,gBAAiB,oBAChF9H,EAAKvE,MAAMurG,0BAGXhnG,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UATvE,wBAAA4W,EAAAvQ,SAAAsQ,EAAAhb,SA1NUwE,EAuO5B6c,aAAe,SAACpc,EAAGsc,GACf,OAAQA,GACJ,IAAK,QACD/c,EAAKU,SAAS,CAAC+lG,YAAa,IAC5BzmG,EAAK+xB,WAAWM,SAAS,GACzBryB,EAAKU,SAAS,CAAC+lG,YAAa,GACxB,WAAOzmG,EAAK0mG,4BAChB,MAEJ,IAAK,OACD1mG,EAAK+xB,WAAWM,SAASryB,EAAKc,MAAM2lG,YAAc,GAClDzmG,EAAKU,SAAS,CAAC+lG,YAAazmG,EAAKc,MAAM2lG,YAAc,GACjD,WAAOzmG,EAAK0mG,4BAChB,MAEJ,IAAK,OACD1mG,EAAK+xB,WAAWM,SAASryB,EAAKc,MAAM2lG,YAAc,GAClDzmG,EAAKU,SAAS,CAAC+lG,YAAazmG,EAAKc,MAAM2lG,YAAc,GACjD,WAAOzmG,EAAK0mG,4BAChB,MAEJ,IAAK,OACD,IAAM8B,EAAWxoG,EAAK+xB,WAAWvP,oBACjCxiB,EAAK+xB,WAAWM,SAASm2E,GACzBxoG,EAAKU,SAAS,CAAC+lG,YAAa+B,GACxB,WAAOxoG,EAAK0mG,4BAChB,MAEJ,QACI1mG,EAAKU,SAAS,CAAC+lG,YAAa1pF,GACxB,WAAO/c,EAAK0mG,8BArQA1mG,EAyQ5ByoG,0BAA4B,SAAAhoG,GACxBT,EAAKU,SAAS,CAACkmG,kBAAmBnmG,EAAGgmG,YAAa,GAAI,WAAOzmG,EAAK0mG,6BA1Q1C1mG,EA6Q5B0oG,uBAAyB,SAAAjoG,GACrBT,EAAKU,SAAS,CAACimG,eAAgBlmG,EAAGgmG,YAAa,GAAI,WAAOzmG,EAAK0mG,6BA9QvC1mG,EAiR5B2oG,wBAA0B,SAAAjf,GAAgB,OACtCA,EAAiBzsF,IAAI,SAAA1D,GAIjB,OAHGA,EAAEq1B,WACDr1B,EAAEi1C,eAAF,GAAAjkC,OAAsB2C,YAAoB3T,EAAEq1B,SAAS1e,WAArD,OAAA3F,OAAqE2C,YAAoB3T,EAAEq1B,SAASze,WAEjG5W,KApRXyG,EAAKc,MAAQ,CACT8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB+mB,SAAU,CAACxjB,MAAO,GAAI3C,MAAO,IAC7Bk+F,eAAgB,CAACv7F,MAAO,MAAO3C,MAAO,IACtC29F,YAAa,CAACh7F,MAAO,MAAO3C,MAAO,OACnCm+F,kBAAmB,CAACx7F,MAAO,MAAO3C,MAAO,OACzC49F,aAAc,GACdlB,gBAAgB,EAChBj3E,kBAAkB,EAClBu5E,eAAgB,GAChBU,gBAAiB,GACjB1B,YAAa,EACbhkF,WAAY,GAGhBziB,EAAK2c,YAAc,IACnB3c,EAAK+xB,WAAa,IAAIzP,GAAW,CAACC,eAAgBviB,EAAK2c,cApB/B3c,kFAyCTitB,EAAWC,wCAQlB,IAAAmnD,EACyB74E,KAAKsF,MAA/B8tB,EADCylD,EACDzlD,SAAUy3E,EADThyB,EACSgyB,aAEjB,MAAuB,KAAnBz3E,EAASnmB,OACTjN,KAAKkF,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,0BACvE,GAEU,KAAjBu+F,GACA7qG,KAAKkF,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,+BACvE,IAEP,eAAeoC,KAAKm8F,KACpB7qG,KAAKkF,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiB,qCACvE,oCA4NN,IAAA5G,EAAA1F,KAAAD,EAODC,KAAKC,MALLC,EAFCH,EAEDG,QAFCktG,EAAArtG,EAEQiyF,oBACLnD,EAHHue,EAGGve,gCAAiCG,EAHpCoe,EAGoCpe,6BAAgDD,GAHpFqe,EAGkElf,iBAHlEkf,EAGoFre,gCACjFD,EAJHse,EAIGte,+BAEiB77D,EANpBlzB,EAMDu1B,mBAAqBrC,UANpBswD,EAWDvjF,KAAKsF,MAFL8tB,EATCmwD,EASDnwD,SAAUw3E,EATTrnB,EASSqnB,YAAaC,EATtBtnB,EASsBsnB,aAAclB,EATpCpmB,EASoComB,eAAgBsC,EATpD1oB,EASoD0oB,eAAgBv5E,EATpE6wD,EASoE7wD,iBAAkBi6E,EATtFppB,EASsFopB,gBAGrFxsG,GAZDojF,EAUD0nB,YAVC1nB,EAUYt8D,WAVZs8D,EAUwB4nB,eAVxB5nB,EAUwC6nB,kBAE3Bvc,GAAmCG,GAAgCF,GAAkCC,GAEvH,OACIxuE,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACq0F,GAAD,MAEAt0E,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACw2B,GAAD,CAAc1E,YAAa,mBAAoBI,iBAAkBA,EAC7DH,eAAgBvyB,KAAKuyB,eAAgBC,gBAAiBxyB,KAAKwyB,iBAC1DpwB,OAAO2T,KAAK42F,GAAiBn+F,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAChF8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAAV,yCAGA2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,eAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL+qG,EAAgB5B,aAGzBxqF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL8P,YAAoBi7F,EAAgBj4F,aAG7C6L,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,YAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL8P,YAAoBi7F,EAAgBh4F,WAG7C4L,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL+qG,EAAgB/B,cAGzBrqF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL+qG,EAAgBptC,YAGzBh/C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACL+qG,EAAgBrb,gBAMjC/wE,EAAAhgB,EAAAC,cAACi9C,GAAD,CAAqB3G,WAAY,OAAQj2C,MAAO,kBAAmB+1C,WAAY+yD,EAC3E9yD,SAAU72C,KAAKo0F,WAAYjwF,QAASnE,KAAKksG,aAExC9pG,OAAO2T,KAAKk2F,GAAgBz9F,OAAS,GAAK+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UAC/E8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,YAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACo7D,GAAD,CACI3uD,MAAOjN,KAAKmsG,gCAAgCF,GAC5CxrG,UAAWP,EAAQo8B,OACnBC,QAASv8B,KAAKyrG,yBAAyBx4E,GACvCljB,SAAU,SAAA9K,GAAC,OAAIS,EAAK0mG,wBAAwBnnG,IAC5C2K,MAAO,eAKnB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc3uD,MAAOjN,KAAKysG,+BAA+BR,GACrDxrG,UAAWP,EAAQo8B,OACnBC,QAASv8B,KAAK6rG,qBACd97F,SAAU,SAAA9K,GAAC,OAAIS,EAAK8mG,2BAA2BvnG,IAC/C2K,MAAO,mBAKnB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,cAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAC9CqM,MAAOg/F,EAAe1sC,UAAWxvD,SAAU/P,KAAK4sG,6BAMpErsF,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,wBAAyBV,UAAWA,GACtDogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,YAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc3uD,MAAOmmB,EACjB3yB,UAAWP,EAAQo8B,OACnBC,QAASv8B,KAAKyrG,yBAAyBx4E,GACvCljB,SAAU,SAAA9K,GAAC,OAAIS,EAAKimG,iBAAiB1mG,IACrC2K,MAAO,eAKnB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,gBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACo7D,GAAD,CAAc3uD,MAAO29F,EACjBnqG,UAAWP,EAAQo8B,OACnBC,QAASv8B,KAAK6rG,qBACd97F,SAAU,SAAA9K,GAAC,OAAIS,EAAKkmG,oBAAoB3mG,IACxC2K,MAAO,mBAKnB2Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GAAf,oBAGA7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACwgB,GAAI,GACX7B,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,GAAG7G,OAAO,SAASnI,QAAQ,WAAWqM,MAAO49F,EAChE96F,SAAU/P,KAAK+rG,yBAI3BxrF,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,aAwDZ/gD,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,2BAxf7C/H,aAohBrBgM,eAhBS,SAAAhL,GAGpB,MAAO,CAAC0sF,oBAF0C1sF,EAA3C0sF,oBAEsB18D,mBAFqBhwB,EAAtBgwB,qBAKL,SAAAjlB,GACvB,MAAO,CACHm7F,uBAAwB,SAAA/9F,GAAI,OAAI4C,EvCjhBF,SAAA5C,GAAI,sBAAAoH,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC1CuG,EAAS29E,MADiCpkF,EAAAE,KAAA,EAEzBoL,KAAMC,IAAIhS,GAAU,mDAAoDsK,GAAM2H,MAAM,SAAAnQ,GACjG,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJC,YAEpCqJ,EAFoC9D,EAAAkE,MASnCL,KAAKM,QAT8B,CAAAnE,EAAAE,KAAA,eAUtCuG,EAAS49E,GAA+BvgF,EAAGD,KAAKoL,OAAO2V,QAVjB5kB,EAAA2L,OAAA,SAW/B,CAACxH,SAAS,EAAM1J,QAAS,GAAI4iB,WAAYvZ,EAAGD,KAAKoL,OAAOoO,aAXzB,cAatC5W,EAAS89E,MAb6BvkF,EAAA2L,OAAA,SAc/B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAdT,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAJ,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GuCihBO64F,CAAuB/9F,KAChEu9F,oBAAqB,SAAAv9F,GAAI,OAAI4C,EvCnbF,SAAA5C,GAAI,sBAAA+M,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cACvCuG,EAASq+E,MAD8Bh0E,EAAA5Q,KAAA,EAEtBoL,KAAMM,KAAKrS,GAAU,uCAAwCsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC9G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJF,YAEjCqJ,EAFiCgN,EAAA5M,MAShCL,KAAKM,QAT2B,CAAA2M,EAAA5Q,KAAA,eAUnCuG,EAASs+E,GAA4BjhF,IAVFgN,EAAAnF,OAAA,SAW5B,CAACxH,SAAS,EAAM1J,QAAS,KAXG,cAanCgM,EAASu+E,MAb0Bl0E,EAAAnF,OAAA,SAc5B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAdZ,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,GuCmbOq4F,CAAoBv9F,KAC1DolB,gBAAiB,kBAAMxiB,EAASwiB,OAChCk6E,sBAAuB,SAAA9gG,GAAE,OAAIoE,EvCtdA,SAAApE,GAAE,sBAAAgO,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAAi6F,EAAA58F,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cACvCuG,EAASk+E,MAEH+b,EAHiCloG,OAAA+d,EAAA,EAAA/d,CAAA,GAGdmO,eAHc4J,EAAArQ,KAAA,EAItBoL,KAAM+yC,OAAO9kD,GAAO,6CAAA4L,OAAgD9C,GAAMq+F,GAAcl1F,MAAM,SAAAnQ,GAC3G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aANF,YAIjCqJ,EAJiCyM,EAAArM,MAWhCL,KAAKM,QAX2B,CAAAoM,EAAArQ,KAAA,gBAYnCuG,EAASm+E,GAA8B9gF,IAZJyM,EAAA5E,OAAA,SAa5B,CAACxH,SAAS,EAAM1J,QAAS,KAbG,eAenCgM,EAASo+E,MAf0Bt0E,EAAA5E,OAAA,SAgB5B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAhBZ,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,GuCsdOo6F,CAAsB9gG,KAC5D6gG,uBAAwB,SAAAr/F,GAAI,OAAI4C,EvCtfF,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAC1CuG,EAAS+9E,MADiCvjF,EAAAf,KAAA,EAGzBoL,KAAMM,KAAKrS,GAAU,uCAAwCsK,EAAM8C,eAAwB6E,MAAM,SAAAnQ,GAC9G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALC,YAGpCqJ,EAHoC7C,EAAAiD,MAUnCL,KAAKM,QAV8B,CAAAlD,EAAAf,KAAA,eAWtCuG,EAASg+E,GAA8B3gF,EAAGD,KAAKoL,SAXThO,EAAA0K,OAAA,SAY/B,CAACxH,SAAS,EAAM1J,QAAS,KAZM,cActCgM,EAASi+E,MAd6BzjF,EAAA0K,OAAA,SAe/B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAfT,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,GuCsfOm6F,CAAuBr/F,OAIzD6C,CAA6CpO,qBArB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAKD,EAAMhB,WACrBm7B,OAAQ,CAAC7zB,MAAO,QAAS+vB,UAAW,WAmBoBt2B,CAAmByoG,KChiBzE0C,eACF,SAAAA,EAAYptG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAqtG,IACxB7oG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAirG,GAAAzoG,KAAA5E,KAAMC,EAAOiJ,KAMjBrE,YAAc,SAAAqjB,GAEVnjB,OAAOb,KADK,uBACMgkB,IATM1jB,EAY5B84F,gBAAkB,SAAAt/F,GACd,OAAOuiB,EAAAhgB,EAAAC,cAAA,YAAO8kB,GAActnB,KAbJwG,EAgB5Bo5F,qBAAuB,SAACr9F,EAAGmB,EAAGm8F,GAC1B,OAAIn8F,EAAEm8F,GAAWt9F,EAAEs9F,IACT,EAENn8F,EAAEm8F,GAAWt9F,EAAEs9F,GACV,EAEF,GAvBiBr5F,EA0B1Bs5F,cAAgB,SAACz1B,EAAOw1B,GACtB,MAAa,WAAVA,EACgB,SAAVx1B,EACL,SAAC9nE,EAAGmB,GAGL,OAFCnB,EAAE+sG,YAAe9oG,EAAK84F,gBAAgB/8F,GAAGN,MAAM6B,SAC/CJ,EAAE4rG,YAAe9oG,EAAK84F,gBAAgB57F,GAAGzB,MAAM6B,SACzC0C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAG,gBAEtC,SAACnB,EAAGmB,GAGL,OAFCnB,EAAE+sG,YAAe9oG,EAAK84F,gBAAgB/8F,GAAGN,MAAM6B,SAC/CJ,EAAE4rG,YAAe9oG,EAAK84F,gBAAgB57F,GAAGzB,MAAM6B,UACvC0C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAG,gBAG3B,SAAV2mE,EACH,SAAC9nE,EAAGmB,GAAJ,OAAU8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,IAC1C,SAACt9F,EAAGmB,GAAJ,OAAW8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,KAxC/Cr5F,EAAKc,MAAQ,CACT+iE,MAAQ,MACRw1B,QAAU,UAJUr5F,0EA6Cf85F,EAAOC,GAChB,IAAMC,EAAiBF,EAAM78F,IAAI,SAACg9F,EAAIl0D,GAAL,MAAe,CAACk0D,EAAIl0D,KAMrD,OALAi0D,EAAej2E,KAAK,SAAChoB,EAAGmB,GACtB,IAAM2mE,EAAQk2B,EAAWh+F,EAAE,GAAImB,EAAE,IACjC,OAAc,IAAV2mE,EAAoBA,EACjB9nE,EAAE,GAAKmB,EAAE,KAEX88F,EAAe/8F,IAAI,SAAAg9F,GAAE,OAAIA,EAAG,sCAG9B,IAAA/4F,EAAA1F,KAAAD,EAC2BC,KAAKC,MAA9BC,EADFH,EACEG,QAASuN,EADX1N,EACW0N,KAAMiU,EADjB3hB,EACiB2hB,OADjBrU,EAEoBrN,KAAKsF,MAAvB+iE,EAFFh7D,EAEEg7D,MAAOw1B,EAFTxwF,EAESwwF,QAKRc,EAAiB,CACnB1uD,OAAQ,EACR2uD,KAAM,gBACN/jE,OAAQ,EACR9xB,QAAS,EACT6jE,SAAU,SACVrqE,QAAS,EACTC,SAAU,WACV+a,IAAK,GACL9U,MAAO,GAmCX,OACI8X,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,WAAWP,EAAQiB,UAAW,0BACjCof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACID,EAAAhgB,EAAAC,cArChB,SAA2BP,GAAO,IACtB4+F,EAAkB5+F,EAAlB4+F,cAIR,OACEt+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACED,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACGkB,EAAOjgB,IAAI,SAAAq9F,GAAQ,OAClBv+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACE3e,IAAKi9F,EAASj9F,IACdy+C,MAAOw+C,EAASC,QAAU,QAAU,OACpCx8F,QAASu8F,EAASE,eAAiB,OAAS,UAC5CC,cAAepB,IAAYiB,EAASj9F,KAAMwmE,GAE1C9nD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACExY,OAAQ61F,IAAYiB,EAASj9F,IAC7B4N,UAAWouF,IAAYiB,EAASj9F,IAAMwmE,EAAQ,MAC9CjhE,SAhBc83F,EAgBaJ,EAASj9F,IAhBV,SAAA+4B,GACpCikE,EAAcjkE,EAAOskE,MAiBVJ,EAASlvF,MACTiuF,IAAYiB,EAASj9F,IACpB0e,EAAAhgB,EAAAC,cAAA,QAAMe,MAAOo9F,GACA,SAAVt2B,EAAmB,oBAAsB,oBAE1C,OAvBU,IAAA62B,OAmCd,CACIh/F,QAASA,EACTmoE,MAAOA,EACPw1B,QAASA,EACTgB,cAxDM,SAACjkE,EAAOskE,GAC9B,IAAMC,EAAQtB,IAAYqB,GAAYrB,IAAYqB,GAAsB,SAAV72B,EAC9D3iE,EAAKR,SAAS,CAACmjE,MAAM82B,EAAQ,MAAQ,OAAQtB,QAASqB,OAwD1C3+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACKxgB,KAAKo/F,WAAW3xF,EAAKzN,KAAK89F,cAAcz1B,EAAMw1B,IAAUp8F,IAAI,SAACzD,EAAGqwB,GAC7D,OAAO9N,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK7D,EAAEiO,IACnByV,EAAOjgB,IAAI,SAAA4Q,GACR,OAAOkO,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK7D,EAAEiO,GAAKoG,EAAExQ,KAEjB,UAAVwQ,EAAExQ,KAAmB0e,EAAAhgB,EAAAC,cAAA,QAAM4G,QAAS,kBAAM1B,EAAKb,YAAY7G,EAAEqU,EAAExQ,OAC5DpB,UAAWP,EAAQw9C,WAAY1/C,EAAEqU,EAAExQ,MAE5B,aAAVwQ,EAAExQ,KAAsB0e,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAEqU,EAAExQ,MAEzB,2BAAVwQ,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAAA,YAAOkR,YAAoB1T,EAAEqU,EAAExQ,OAEpB,4BAAVwQ,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAAA,YAAOkR,YAAoB1T,EAAEqU,EAAExQ,OAEpB,mBAAVwQ,EAAExQ,KAA4B0e,EAAAhgB,EAAAC,cAAA,YAAOkR,YAAoB1T,EAAEqU,EAAExQ,OACnD,gBAAVwQ,EAAExQ,KAAyB0e,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAEqU,EAAExQ,MAC5B,eAAVwQ,EAAExQ,KACH0e,EAAAhgB,EAAAC,cAAA,eAAAuO,OAAU/Q,EAAEqU,EAAExQ,KAAK,GAAGonB,UAAtB,KAAAla,OAAmC/Q,EAAEqU,EAAExQ,KAAK,GAAG0nB,WAEpC,kBAAVlX,EAAExQ,KAA2B0e,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAEqU,EAAExQ,MAC9B,iBAAVwQ,EAAExQ,KAA0B0e,EAAAhgB,EAAAC,cAAA,YAAOxC,EAAEqU,EAAExQ,MAC7B,mBAAVwQ,EAAExQ,KAA4B0e,EAAAhgB,EAAAC,cAAA,YAAOkR,YAAoB1T,EAAEqU,EAAExQ,OACnD,WAAVwQ,EAAExQ,KAAoB0e,EAAAhgB,EAAAC,cAAA,YAAOkF,EAAK43F,gBAAgBt/F,qBA9I1DsG,aAiKtBpC,wBANA,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,UACjB81E,QAAS,CAAC10E,QAAS,UACnBm7C,UAAW,CAACxN,OAAQ,UAAWC,aAAc,qBAGlCjuC,CAAmBmrG,IC9J5B9N,GAAS,CAAC,CAAC19F,IAAK,QAAS+N,MAAO,iBAAkB,CAAC/N,IAAK,WAAY+N,MAAO,cAC7E,CAAC/N,IAAK,yBAA0B+N,MAAO,0BAA2B,CAAC/N,IAAK,0BAA2B+N,MAAO,6BAC1G,CAAC/N,IAAK,iBAAkB+N,MAAO,mBAAoB,CAAC/N,IAAK,cAAe+N,MAAO,WAAY,CAAC/N,IAAK,aAAc+N,MAAO,eACtH,CAAC/N,IAAK,gBAAiB+N,MAAO,gBAAiB,CAAC/N,IAAK,eAAgB+N,MAAO,eAAgB,CAAC/N,IAAK,iBAAkB+N,MAAO,kBAAmB,CAAC/N,IAAK,SAAU+N,MAAO,WAEnK29F,eACF,SAAAA,EAAYttG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAutG,IACxB/oG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmrG,GAAA3oG,KAAA5E,KAAMC,EAAOiJ,KAoBjBu2F,qBAAuB,SAAC3yF,EAAG7H,GACvBT,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAgB0K,EAAI7H,EAAE+H,OAAOC,SAtBLzI,EAyB5B88D,SAzB4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAyBjB,SAAAC,IAAA,IAAA2P,EAAA0mF,EAAAryF,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAGHuP,EAAS,GACT0mF,GAAY,EAHD,CAAC,sBAAuB,qBAAsB,cAAe,0BAA2B,iBAAkB,QAAS,iBAI3HzxF,QAAQ,SAAA+D,GACW,KAAlB7N,EAAKc,MAAM+M,KACXgH,EAAOhH,GAAK7N,EAAKc,MAAM+M,GACvB0tF,GAAY,MAIhBA,EAZG,CAAAn2F,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,EAactF,EAAKvE,MAAMutG,qBAAXprG,OAAA+d,EAAA,EAAA/d,CAAA,CAAiCiX,OAAQA,GAAW9I,gBAblE,QAaG7C,EAbH9D,EAAAkE,MAcKC,SAASvJ,EAAKU,SAAS,CAACkH,cAAc,EAAMC,gBAAiB,QAASC,gBAAiBoB,EAAGrJ,UAClGG,EAAKU,SAAS,CAACg7F,aAAa,IAfzB,yBAAAt2F,EAAAc,SAAAhB,EAAA1J,SAzBiBwE,EA4C5B+H,cAAgB,WACZ/H,EAAKU,SAAS,CAACkH,cAAc,KA3C7B5H,EAAKc,MAAQ,CACTmoG,oBAAqB,GACrBC,mBAAoB,GACpBC,YAAa,GACbC,wBAAyB,GACzBC,eAAgB,GAChBC,MAAO,GACPC,cAAe,GACf3hG,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjB6zF,aAAa,GAbO17F,mFAkBxBsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,kDA8BK,IAAA+B,EAAA1F,KAAAD,EACkEC,KAAKC,MAArEC,EADFH,EACEG,QADFogG,EAAAvgG,EACWoqF,WAAa7+D,EADxBg1E,EACwBh1E,OAAQy+D,EADhCuW,EACgCvW,8BADhC18E,EAEsIrN,KAAKsF,MAAzImoG,EAFFpgG,EAEEogG,oBAAqBC,EAFvBrgG,EAEuBqgG,mBAAoBC,EAF3CtgG,EAE2CsgG,YAAaC,EAFxDvgG,EAEwDugG,wBAAyBC,EAFjFxgG,EAEiFwgG,eAAgBC,EAFjGzgG,EAEiGygG,MAAOC,EAFxG1gG,EAEwG0gG,cAAe7N,EAFvH7yF,EAEuH6yF,YAE5H,OAAKt6F,YAAetG,MAKhBihB,EAAAhgB,EAAAC,cAAA,WACI+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAAC+/F,GAAD,MAEAhgF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACpBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAAoBV,UAAW4pF,GACjDxpE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACpC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,0BAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,sBAAsB2D,MAAM,wBAAwBhP,QAAQ,WACtEqM,MAAOwgG,EACP19F,SAAU,SAAA9K,GAAC,OAAIS,EAAK+5F,qBAAqB,sBAAuBx6F,QAG5Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,yBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,qBAAqB2D,MAAM,uBAAuBhP,QAAQ,WACpEqM,MAAOygG,EACP39F,SAAU,SAAA9K,GAAC,OAAIS,EAAK+5F,qBAAqB,qBAAsBx6F,QAG3Esb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,cAAc2D,MAAM,eAAehP,QAAQ,WACrDqM,MAAO0gG,EACP59F,SAAU,SAAA9K,GAAC,OAAIS,EAAK+5F,qBAAqB,cAAex6F,QAGpEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,4BAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,EAAGiH,WAAY,UACzCkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC27B,GAAD,CACIlwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAO2gG,EAEP79F,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,0BAA2Bx6F,UAK1Fsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC27B,GAAD,CACIlwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAO4gG,EAEP99F,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,iBAAkBx6F,QAGzEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,WAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,kBAAkB2D,MAAM,SAClChP,QAAQ,WACRqM,MAAO6gG,EACP/9F,SAAU,SAAA9K,GAAC,OAAIS,EAAK+5F,qBAAqB,QAASx6F,QAG9Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC1CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACX6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAEJ2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAAC27B,GAAD,CACIlwB,GAAG,GACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAO8gG,EAEPh+F,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,gBAAiBx6F,QAGxEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UACzC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACN2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAC9BwG,QAASpH,KAAKshE,UADlB,cAOf4+B,GAAe3/E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBACjCyqB,EAAO9c,OAAS,GACjB+R,EAAAhgB,EAAAC,cAACwtG,GAAD,CAAwBvgG,KAAM6d,EAAQ5J,OAAQ69E,GAAQpxF,QAASnO,KAAKC,MAAMkO,UAEzEmd,EAAO9c,OAAS,GAAK+R,EAAAhgB,EAAAC,cAAC6oD,GAAD,CAAmBhlD,QAAS,uBAG1Dkc,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cACzDlI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,mBApH1DkU,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBAtDDxD,aAgMjBgM,eAZS,SAAAhL,GAGpB,MAAO,CAAC6kF,WAFkD7kF,EAAnD6kF,WAEahO,oCAFsC72E,EAAvC62E,sCAKI,SAAA9rE,GACvB,MAAO,CACHm9F,qBAAsB,SAAA//F,GAAI,OAAI4C,E7ClKF,SAAA5C,GAAI,sBAAAoM,EAAAzX,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAmB,EAAMyF,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cACxCuG,EAASg5E,MAD+Bx+E,EAAAf,KAAA,EAGvBoL,KAAMC,IAAIhS,GAAU,8BAA+BsK,GAAM2H,MAAM,SAAAnQ,GAC5E,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aALD,WAGlCqJ,EAHkC7C,EAAAiD,MAUhCL,KAVgC,CAAA5C,EAAAf,KAAA,eAWpCuG,EAASk5E,MAX2B1+E,EAAA0K,OAAA,SAY7B,CAACxH,SAAS,EAAO1J,QAAS,wBAZG,WAcpCqJ,EAAGD,KAAKM,QAd4B,CAAAlD,EAAAf,KAAA,gBAepCuG,EAASi5E,GAA6B57E,IAfF7C,EAAA0K,OAAA,SAgB7B,CAACxH,SAAS,EAAM1J,QAAS,KAhBI,eAkBpCgM,EAASk5E,MAlB2B1+E,EAAA0K,OAAA,SAmB7B,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBX,yBAAAwG,EAAAH,SAAAE,EAAA5K,SAAJ,gBAAA0V,GAAA,OAAAmE,EAAAhE,MAAA7V,KAAA2S,YAAA,G6CkKO66F,CAAqB//F,OAIrD6C,CAA6CpO,qBAhB7C,SAAAC,GAAK,MAAK,CACrBhB,UAAWgB,EAAMhB,YAeuCe,CAAmBqrG,KC9LzEU,eACL,SAAAA,EAAYhuG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAiuG,IAC3BzpG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA6rG,GAAArpG,KAAA5E,KAAMC,EAAOiJ,KAoBdglG,YAAc,WAAM,IACXzgG,EAASjJ,EAAKvE,MAAdwN,KACJA,GACHjJ,EAAKU,SAAS,CACbipG,YAAa1gG,EAAKuU,OAAO,SAAAhkB,GAAC,OAAmB,IAAfA,EAAE2uC,WAAmBn+B,OACnDyY,WAAYxZ,EAAKe,UA1BQhK,EA+B5BmtB,qBAAuB,SAAAhhB,GACtBnM,EAAKU,SAAS,CAAE0sB,aAAcjhB,KAhCHnM,EAmC5B4pG,aAAe,SAAA3gG,GAAQ,IACdmkB,EAAiBptB,EAAKc,MAAtBssB,aACR,MAAqB,WAAjBA,EAAkCnkB,EAAKuU,OAAO,SAAAhkB,GAAC,OAAmB,IAAfA,EAAE2uC,WACpC,eAAjB/a,EAAsCnkB,EAAKuU,OAAO,SAAAhkB,GAAC,OAAmB,IAAfA,EAAE2uC,WACtDl/B,GAvCoBjJ,EA0C5B6pG,cAAgB,SAAA5gG,GACf,IAAI6gG,EAAa,GAOjB,OANA7gG,EAAKa,QAAQ,SAAAogB,GACZ,IAAI6/E,EAAYnsG,OAAA+d,EAAA,EAAA/d,CAAA,GAAQssB,GACxB6/E,EAAaC,iBAAmB78F,YAAwB+c,EAAO8/E,kBAC/DD,EAAa5hE,SAAWje,EAAOie,SAAW,SAAW,aACrD2hE,EAAWlgG,KAAKmgG,KAEVD,GAlDoB9pG,EAqD5Bo5F,qBAAuB,SAACr9F,EAAGmB,EAAGm8F,GAC7B,OAAIn8F,EAAEm8F,GAAWt9F,EAAEs9F,IACV,EAELn8F,EAAEm8F,GAAWt9F,EAAEs9F,GACX,EAED,GA5DoBr5F,EA+D5Bs5F,cAAgB,SAACz1B,EAAOw1B,GACvB,MAAiB,SAAVx1B,EAAmB,SAAC9nE,EAAGmB,GAAJ,OAAU8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,IAAW,SAACt9F,EAAGmB,GAAJ,OAAW8C,EAAKo5F,qBAAqBr9F,EAAGmB,EAAGm8F,KA9D1Hr5F,EAAKc,MAAQ,CACZssB,aAAc,GACdu8E,YAAa,EACblnF,WAAY,EACZohD,MAAO,MACPw1B,QAAS,UAPiBr5F,mFAY3BxE,KAAKkuG,yDAGaz8E,EAAWC,GACzBD,EAAUhkB,OAASzN,KAAKC,MAAMwN,MACjCzN,KAAKkuG,iDAkDI5P,EAAOC,GACjB,IAAMC,EAAiBF,EAAM78F,IAAI,SAACg9F,EAAIl0D,GAAL,MAAe,CAACk0D,EAAIl0D,KAMrD,OALAi0D,EAAej2E,KAAK,SAAChoB,EAAGmB,GACvB,IAAM2mE,EAAQk2B,EAAWh+F,EAAE,GAAImB,EAAE,IACjC,OAAc,IAAV2mE,EAAoBA,EACjB9nE,EAAE,GAAKmB,EAAE,KAEV88F,EAAe/8F,IAAI,SAAAg9F,GAAE,OAAIA,EAAG,sCAG3B,IAAA/4F,EAAA1F,KAAAD,EAC0BC,KAAKC,MAA/BC,EADAH,EACAG,QAASwhB,EADT3hB,EACS2hB,OAAQjU,EADjB1N,EACiB0N,KADjBJ,EAE0DrN,KAAKsF,MAA/DssB,EAFAvkB,EAEAukB,aAAcu8E,EAFd9gG,EAEc8gG,YAAalnF,EAF3B5Z,EAE2B4Z,WAAYohD,EAFvCh7D,EAEuCg7D,MAAOw1B,EAF9CxwF,EAE8CwwF,QAChD4Q,EAAWzuG,KAAKouG,aAAa3gG,GAK7BkxF,EAAiB,CACtB1uD,OAAQ,EACR2uD,KAAM,gBACN/jE,OAAQ,EACR9xB,QAAS,EACT6jE,SAAU,SACVrqE,QAAS,EACTC,SAAU,WACV+a,IAAK,GACL9U,MAAO,GA+BR,OACC8X,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAO/f,UAAWP,EAAQiB,WACzBof,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,GAAAmO,OAAkCo/F,EAAlC,YAAAp/F,OAAwDkY,EAAxD,uBAIF1G,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GAER2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAS,WAAYH,UAAWP,EAAQ0xB,cACpDrR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYuR,QAAS,gBAArB,iBACAxR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvT,MAAO2kB,EACP7hB,SAAU,SAAA9K,GAAC,OAAIS,EAAKisB,qBAAqB1sB,EAAE+H,OAAOC,QAClD+kB,MAAOzR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAeyR,WAAY,IAAKC,KAAM,eAAgBjmB,GAAI,kBAEjEsU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,MAAO/M,QAAS,CAAE2I,SAAU3I,EAAQiyB,WAArD,OAGA5R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,SAAU/M,QAAS,CAAE2I,SAAU3I,EAAQiyB,WAAxD,UAGA5R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,aAAc/M,QAAS,CAAE2I,SAAU3I,EAAQiyB,WAA5D,iBAOJ5R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACkuG,GAAD,CAAsBp3E,QAASt3B,KAAKquG,cAAcI,GAAWj+F,QAASkR,MAIxEnB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAnEJ,SAA2BP,GAAO,IACzB4+F,EAAkB5+F,EAAlB4+F,cAIR,OACCt+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACEkB,EAAOjgB,IAAI,SAAAq9F,GAAQ,OACnBv+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACC3e,IAAKi9F,EAASj9F,IACdy+C,MAAOw+C,EAASC,QAAU,QAAU,OACpCx8F,QAASu8F,EAASE,eAAiB,OAAS,UAC5CC,cAAepB,IAAYiB,EAASj9F,KAAMwmE,GAE1C9nD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCxY,OAAQ61F,IAAYiB,EAASj9F,IAC7B4N,UAAWouF,IAAYiB,EAASj9F,IAAMwmE,EAAQ,MAC9CjhE,SAhBoB83F,EAgBOJ,EAASj9F,IAhBJ,SAAA+4B,GACrCikE,EAAcjkE,EAAOskE,MAiBfJ,EAASlvF,MACTiuF,IAAYiB,EAASj9F,IAAM0e,EAAAhgB,EAAAC,cAAA,QAAMe,MAAOo9F,GAA2B,SAAVt2B,EAAmB,oBAAsB,oBAA6B,OAnB5G,IAAA62B,OAiEvB,CAAmBh/F,QAASA,EAASmoE,MAAOA,EAAOw1B,QAASA,EAASgB,cAlF/C,SAACjkE,EAAOskE,GACjC,IAAMC,EAAQtB,IAAYqB,GAAarB,IAAYqB,GAAsB,SAAV72B,EAC/D3iE,EAAKR,SAAS,CAAEmjE,MAAO82B,EAAQ,MAAQ,OAAQtB,QAASqB,OAiFrD3+E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACExgB,KAAKo/F,WAAWqP,EAAUzuG,KAAK89F,cAAcz1B,EAAOw1B,IAAUp8F,IAAI,SAACzD,EAAGykB,GACtE,IAAIksF,EAAS3wG,EAAE+Z,OAAS/Z,EAAE+Z,OAAS/Z,EAAEuhE,UACrC,OACCh/C,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK8sG,GACbjtF,EAAOjgB,IAAI,SAAA4Q,GACX,MAAc,qBAAVA,EAAExQ,IAEJ0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK8sG,EAASt8F,EAAExQ,KAC1B0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAa7O,YAAwB3T,EAAEqU,EAAExQ,QAK9B,aAAVwQ,EAAExQ,IAEJ0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK8sG,EAASt8F,EAAExQ,KAC1B0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAA0B,IAAbxiB,EAAEqU,EAAExQ,KAAgB,SAAW,eAM9C0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW3e,IAAK8sG,EAASt8F,EAAExQ,KAC1B0e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAaxiB,EAAEqU,EAAExQ,uBA7LiByC,aAkNhCpC,wBANA,SAAAC,GAAK,MAAK,CACxBhB,UAAWgB,EAAMhB,UACjBywB,aAAc,CAAEnpB,MAAO,SACvB0pB,SAAU,CAAEhrB,MAAO,WAGLjF,CAAmB+rG,IC5M5BV,eACL,SAAAA,EAAYttG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAutG,IAC3B/oG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAmrG,GAAA3oG,KAAA5E,KAAMC,EAAOiJ,KAkBd0lG,mBAAqB,SAAC9hG,EAAG7H,GACd,eAAN6H,GAA4B,aAANA,EAAkBtI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgL,YAA0B7S,EAAE+H,OAAOC,SAC/FzI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAI7H,EAAE+H,OAAOC,SArBRzI,EAwB5Bk7F,8BAAgC,SAAC5yF,EAAG7H,GACnC,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgtD,KA1BMt1D,EA6B5B88D,SAAW,WACV,GAAI98D,EAAKvE,MAAMkqF,WAAWH,mCAAqCxlF,EAAKvE,MAAMkqF,WAAWF,mCACpFzlF,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,uCAJnB,CADgB,IAAAe,EAU6C7I,EAAKc,MAA1Dq6F,EAVQtyF,EAURsyF,WAAYC,EAVJvyF,EAUIuyF,SAAUO,EAVd9yF,EAUc8yF,cAAeC,EAV7B/yF,EAU6B+yF,YAE7C,GAAoB,KAAfT,GAAkC,KAAbC,GAAuC,KAAlBO,GAAwC,KAAhBC,EASvE,GAAoB,KAAfT,GAAkC,KAAbC,GAAuC,KAAlBO,GAAwC,KAAhBC,EAAvE,CASA,GAAmB,KAAfT,GAAkC,KAAbC,EAAiB,CACrCr0D,SAASq0D,GAAYr0D,SAASo0D,GAAc,KAC/Cn7F,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,+BAGnB,IAAMmB,EAAIrL,OAAA+d,EAAA,EAAA/d,CAAA,CAAKiX,OAAQ,CAAEsmF,aAAYC,aAAervF,eACpD/L,EAAKU,SACJ,CACCwc,OAAQ,CACP,CAAE7f,IAAK,WAAY+N,MAAO,YAC1B,CAAE/N,IAAK,SAAU+N,MAAO,eACxB,CAAE/N,IAAK,aAAc+N,MAAO,YAC5B,CAAE/N,IAAK,mBAAoB+N,MAAO,QAClC,CAAE/N,IAAK,WAAY+N,MAAO,WAE3BswF,aAAa,GAEd,WACC17F,EAAKvE,MAAM4uG,yBAAyBphG,KAKvC,GAAsB,KAAlB0yF,GAAwC,KAAhBC,EAAoB,CAC3C70D,SAAS60D,GAAe70D,SAAS40D,GAAiB,KACrD37F,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,+BAGnB,IAAMmB,EAAIrL,OAAA+d,EAAA,EAAA/d,CAAA,CAAKiX,OAAQ,CAAE8mF,gBAAeC,gBAAkB7vF,eAC1D/L,EAAKvE,MAAM6uG,0BAA0BrhG,GACrCjJ,EAAKU,SAAS,CACbwc,OAAQ,CACP,CAAE7f,IAAK,WAAY+N,MAAO,YAC1B,CAAE/N,IAAK,cAAe+N,MAAO,gBAC7B,CAAE/N,IAAK,YAAa+N,MAAO,kBAC3B,CAAE/N,IAAK,aAAc+N,MAAO,YAC5B,CAAE/N,IAAK,mBAAoB+N,MAAO,QAClC,CAAE/N,IAAK,WAAY+N,MAAO,WAE3BswF,aAAa,UArDd17F,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,8CAZlB9H,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiB,2CA7CQ9H,EA6G5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KA9GH5H,EAiH5BuqG,YAAc,SAAAthG,GAMb,OALIA,EAAKe,OAAS,GACbf,EAAK,GAAG8xD,WACX9xD,EAAK8a,KAAK,SAAChoB,EAAGmB,GAAJ,OAAUnB,EAAEg/D,UAAY79D,EAAE69D,YAG/B9xD,GArHPjJ,EAAKc,MAAQ,CACZ8G,cAAc,EACdE,gBAAiB,GACjBD,gBAAiB,UACjBszF,WAAY,GACZC,SAAU,GACVO,cAAe,GACfC,YAAa,GACbF,aAAa,EACbx+E,OAAQ,IAXkBld,mFAgB3BsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,6DA0GQ,IAAA+B,EAAA1F,KAAAD,EAIJC,KAAKC,MAFRC,EAFOH,EAEPG,QAFOogG,EAAAvgG,EAGPoqF,WAAcD,EAHPoW,EAGOpW,8BAA+BF,EAHtCsW,EAGsCtW,kCAAmCC,EAHzEqW,EAGyErW,mCAHzE/6E,EAK0ElP,KAAKsF,MAA/Eq6F,EALAzwF,EAKAywF,WAAYC,EALZ1wF,EAKY0wF,SAAUO,EALtBjxF,EAKsBixF,cAAeC,EALrClxF,EAKqCkxF,YAAaF,EALlDhxF,EAKkDgxF,YAAax+E,EAL/DxS,EAK+DwS,OACjEvhB,EAAY6pF,GAAqCC,EAEvD,OAAKrkF,YAAetG,MAKnBihB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAAC+/F,GAAD,MAEAhgF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,GAAIV,UAAWA,GACpCogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,YAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,OAAOhP,QAAQ,WAAWqM,MAAO0yF,EAAY5vF,SAAU,SAAA9K,GAAC,OAAIS,EAAKkpG,mBAAmB,aAAc3pG,OAE1Hsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,KAAKhP,QAAQ,WAAWqM,MAAO2yF,EAAU7vF,SAAU,SAAA9K,GAAC,OAAIS,EAAKkpG,mBAAmB,WAAY3pG,QAIrHsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,qBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,GACH2D,MAAM,OACNhP,QAAQ,WACRqM,MAAOkzF,EACPpwF,SAAU,SAAA9K,GAAC,OAAIS,EAAKg6F,8BAA8B,gBAAiBz6F,OAGrEsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,GAAG2D,MAAM,KAAKhP,QAAQ,WAAWqM,MAAOmzF,EAAarwF,SAAU,SAAA9K,GAAC,OAAIS,EAAKg6F,8BAA8B,cAAez6F,QAItIsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UAC5C8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,cAQH4+B,GACA3/E,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,gBAAiBV,UAAWA,GAChD+pF,EAA8B17E,OAAS,GACvC+R,EAAAhgB,EAAAC,cAACwuG,GAAD,CAAkCvhG,KAAMzN,KAAK+uG,YAAY7kB,GAAgCxoE,OAAQA,EAAQvT,QAASnO,KAAKC,MAAMkO,WAG5HhO,GAAa+pF,EAA8B17E,OAAS,GAAK+R,EAAAhgB,EAAAC,cAAC6oD,GAAD,CAAmBhlD,QAAS,uBAI1Fkc,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,mBA9D/HkU,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBApIQxD,aAyNjBgM,eAbS,SAAAhL,GAGvB,MAAO,CAAE6kF,WAFc7kF,EAAf6kF,aAKkB,SAAA95E,GAC1B,MAAO,CACNw+F,yBAA0B,SAAAphG,GAAI,OAAI4C,E/C1JI,SAAA5C,GAAI,sBAAAwM,EAAA7X,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAyQ,EAAM7J,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAwQ,GAAA,cAAAA,EAAAtQ,KAAAsQ,EAAArQ,MAAA,cAC5CuG,EAASm5E,MADmCrvE,EAAArQ,KAAA,EAG3BoL,KAAMC,IAAIhS,GAAU,sCAAuCsK,GAAM2H,MAAM,SAAAnQ,GACpF,OAA0B,MAAtBA,EAAEoQ,SAASC,OAEJ,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAG9B,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAR5B,WAGtC5H,EAHsCyM,EAAArM,MAUpCL,KAVoC,CAAA0M,EAAArQ,KAAA,eAWxCuG,EAASq5E,MAX+BvvE,EAAA5E,OAAA,SAYjC,CAACxH,SAAS,EAAO1J,QAAS,wBAZO,WAcxCqJ,EAAGD,KAAKM,QAdgC,CAAAoM,EAAArQ,KAAA,gBAexCuG,EAASo5E,GAAiC/7E,IAfFyM,EAAA5E,OAAA,SAgBjC,CAACxH,SAAS,EAAM1J,QAAS,KAhBQ,eAkBxCgM,EAASq5E,MAlB+BvvE,EAAA5E,OAAA,SAmBjC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBP,yBAAA8V,EAAAzP,SAAAwP,EAAAla,SAAJ,gBAAA2V,GAAA,OAAAsE,EAAApE,MAAA7V,KAAA2S,YAAA,G+C0JCk8F,CAAyBphG,KACpEqhG,0BAA2B,SAAArhG,GAAI,OAAI4C,E/CnHI,SAAA5C,GAAI,sBAAA+M,EAAApY,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAI,SAAAgR,EAAMpK,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+Q,GAAA,cAAAA,EAAA7Q,KAAA6Q,EAAA5Q,MAAA,cAC7CuG,EAASs5E,MADoCjvE,EAAA5Q,KAAA,EAG5BoL,KAAMC,IAAIhS,GAAU,6CAA8CsK,GAAM2H,MAAM,SAAAnQ,GAC3F,OAA0B,MAAtBA,EAAEoQ,SAASC,OAEJ,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,WAG9B,CAACoJ,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,yBAR3B,WAGvC5H,EAHuCgN,EAAA5M,MAUrCL,KAVqC,CAAAiN,EAAA5Q,KAAA,eAWzCuG,EAASw5E,MAXgCnvE,EAAAnF,OAAA,SAYlC,CAACxH,SAAS,EAAO1J,QAAS,wBAZQ,WAczCqJ,EAAGD,KAAKM,QAdiC,CAAA2M,EAAA5Q,KAAA,gBAezCuG,EAASu5E,GAAkCl8E,IAfFgN,EAAAnF,OAAA,SAgBlC,CAACxH,SAAS,EAAM1J,QAAS,KAhBS,eAkBzCgM,EAASw5E,MAlBgCnvE,EAAAnF,OAAA,SAmBlC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAnBN,yBAAAqW,EAAAhQ,SAAA+P,EAAAza,SAAJ,gBAAA4V,GAAA,OAAA4E,EAAA3E,MAAA7V,KAAA2S,YAAA,G+CmHCm8F,CAA0BrhG,OAIzD6C,CAA6CpO,qBAjB7C,SAAAC,GAAK,MAAK,CACxBhB,UAAWgB,EAAMhB,YAgB0Ce,CAAmBqrG,KC5OzE0B,eACL,SAAAA,EAAYhvG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAivG,IAC3BzqG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA6sG,GAAArqG,KAAA5E,KAAMC,EAAOiJ,KAuCXo3D,wBAxCyBl+D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwCC,SAAAC,IAAA,OAAAujB,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACtBtF,EAAK+7D,cACAv6C,QACAqxC,KAAK,WACFhhC,QAAQC,IAAI,uBAClB9xB,EAAKU,SAAS,CAACgqG,kBAAkB,MAE9B95F,MAAM,SAAA3B,GACHvF,WAAW,kBAAM1J,EAAK87D,2BAA2B,KACjDjqC,QAAQC,IAAI,4CATE,wBAAA1sB,EAAAc,SAAAhB,EAAA1J,SAxCDwE,EAqDzBg8D,aAAe,SAAA3mD,EAAgB4mD,GAAgB,IAA7Bh8B,EAA6B5qB,EAA7B4qB,UACd,QAAoBnjC,IAAhBm/D,EAA2B,MAAM,IAAIt5C,MAAM,uCAE/C,IACIu5C,EAAa,CACbC,KAFSx6D,aAAaC,QAAQ,YAG9BuJ,KAAM8wD,EACNG,OAAQ7D,GAAiBG,cACzBzvD,KAAM,CAAEg3B,cAERo8B,EAAal6D,KAAKqS,UAAU0nD,GAC7Bl8D,EAAK+7D,eACJ/7D,EAAK+7D,cAAcO,OAAO,cAAe,UAAWD,GAAYzrD,MAAM,SAAS3B,GAC3E,OAAO4iB,QAAQxmB,MAAM4D,EAAIw7C,eAlEZzqD,EAuEzBu8D,gBAAkB,SAACJ,EAAME,KAvEAr8D,EA2E5Bk3F,QAAU,WACT32F,OAAO42F,SA1EPn3F,EAAKc,MAAQ,CACZ6pG,kBAAmB,GACnBvuE,OAAQ,GACRzgC,WAAW,EACXivG,aAAc,GACdC,cAAe,GACNH,kBAAkB,GAEtB1qG,EAAKkmE,WAAa,KAVGlmE,6MAcrB8qG,EAAcC,EAAQ,OACtBzjG,EAAOwjG,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQF,sCAEhD9L,KAAKC,MAAMuvG,qBAAqB1jG,UAEjC9L,KAAKugE,eAAgB,IAAIqB,MAAuBC,QAAQl/D,MAAYm/D,QACpE9hE,KAAKsgE,0BACLtgE,KAAKugE,cAAcwB,GAAG,iBAAkB/hE,KAAK+gE,iBAC7C/gE,KAAKugE,cAAcyB,QAAnB5/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAA2B,SAAAmB,IAAA,OAAAqiB,EAAA1sB,EAAAoJ,KAAA,SAAAkB,GAAA,cAAAA,EAAAhB,KAAAgB,EAAAf,MAAA,cAAAe,EAAAf,KAAA,EACjBpE,EAAK46D,0BADY,wBAAAz1D,EAAAH,SAAAE,EAAA5K,uJAKfyxB,EAAUC,GACzBD,EAAUxH,mBAAmBia,oBAAsBlkC,KAAKC,MAAMgqB,mBAAmBia,mBACnFxS,EAAUw9E,mBAAqBlvG,KAAKsF,MAAM4pG,kBAGvClvG,KAAKC,MAAMgqB,mBAAmBia,kBAAkBnsB,QAAU/X,KAAKsF,MAAM4pG,kBAC3DlvG,KAAKwgE,aAAa,CAAC/7B,UAAUzkC,KAAKC,MAAMgqB,mBAAmBia,mBAAoB64B,GAAiBe,8DA8CtG,IAAA/9D,EACgCC,KAAKC,MAArCC,EADAH,EACAG,QAAS+pB,EADTlqB,EACSkqB,mBACjB,OACC1J,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,gBAAiBG,eAAgBhB,KAAKohE,gBAAiBjhE,UAAW8pB,EAAmB2iB,6BAC1GrsB,EAAAhgB,EAAAC,cAAA,qDAxFqB8D,aAoHZgM,eAZS,SAAChL,GAGxB,MAAO,CAAE2kB,mBAFsB3kB,EAAvB2kB,qBAKkB,SAAC5Z,GAC3B,MAAO,CACNm/F,qBAAsB,SAAC1jG,GAAD,OAAUuE,EpI63BE,SAACvE,GAAD,sBAAA2jG,EAAArtG,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAimG,EAAOr/F,GAAP,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAgmG,GAAA,cAAAA,EAAA9lG,KAAA8lG,EAAA7lG,MAAA,cAC7CuG,EAASk4B,MADoConE,EAAA7lG,KAAA,EAE5BoL,KAAMC,IAAIhS,GAAU,mCAAqC2I,EAAMyE,eAAwB6E,MAAM,SAACnQ,GAC9G,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAU9B,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QAASY,EAAEoQ,SAASC,OAAS,uBAF/D,CAAE7H,KAAM,CAAEM,SAAS,EAAO8B,MAAO,CAAExL,QADtCY,EALHoQ,SACC5H,KACCoC,MAASxL,aAP+B,WAEvCqJ,EAFuCiiG,EAAA7hG,MAerCL,KAfqC,CAAAkiG,EAAA7lG,KAAA,eAgB5CuG,EAASi4B,MAhBmCqnE,EAAAp6F,OAAA,SAiBrC,CAAExH,SAAS,EAAO1J,QAAS,wBAjBU,WAmBzCqJ,EAAGD,KAAKM,QAnBiC,CAAA4hG,EAAA7lG,KAAA,gBAoB5CuG,EAASg4B,GAA6B36B,EAAGD,OApBGkiG,EAAAp6F,OAAA,SAqBrC,CAAExH,SAAS,EAAM1J,QAAS,KArBW,eAuB5CgM,EAASi4B,MAvBmCqnE,EAAAp6F,OAAA,SAwBrC,CAAExH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAxBJ,yBAAAsrG,EAAAjlG,SAAAglG,EAAA1vG,SAAV,gBAAA4vG,GAAA,OAAAH,EAAA55F,MAAA7V,KAAA2S,YAAA,GoI73BO68F,CAAqB1jG,OAIjDwE,CAGbpO,qBAvBa,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,eAkBxB9G,CAAmB+sG,+CC3HjBY,mBAASN,EAAQ,MAEfO,eACL,SAAAA,EAAY7vG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA8vG,IAC3BtrG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA0tG,GAAAlrG,KAAA5E,KAAMC,EAAOiJ,KACR5D,MAAQ,CACZyqG,UAAU,GAHgBvrG,wEAOnB,IAAAzE,EACkBC,KAAKC,MAAvBC,EADAH,EACAG,QAASi+F,EADTp+F,EACSo+F,KACb7zE,EAAWznB,eAEXwoC,EADa/gB,EAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,OAArBA,EAAEljB,kBAC1BC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC7C2sD,EAAkB7lC,EAASlnB,iBACzB4sG,EAAc,OAAAjhG,OAAUohD,GAAVphD,OAA4Bs8B,EAAW5nC,eAEvD06F,EAAK8R,eACR9R,EAAKrzD,mBAAqBnkC,KAAKC,MAAMu3F,EAAK8R,eAE3C,IAAMzmC,EACL20B,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,QAAU2vF,EAAKrzD,mBAAmB,GAClF,IAAIolE,KAAK/R,EAAKrzD,mBAAmB,GAAGqlE,WACpChS,EAAKiS,WACL,IAAIF,KAAK/R,EAAKiS,YACd,KAEE3mC,EACL00B,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,QAAU2vF,EAAKrzD,mBAAmB,GAClF,IAAIolE,KAAK/R,EAAKrzD,mBAAmB,GAAGulE,SACpClS,EAAKvzD,eACL,IAAIslE,KAAK/R,EAAKvzD,gBACd,KAEE0lE,EACLnS,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,OAAS,EAA5D,GAAAO,OACMovF,EAAKrzD,mBAAmBt8B,OAD9B,QAAAO,OAC2CovF,EAAKrzD,mBAAmB,GAAGylE,WACnEpS,EAAKtzD,wBACLszD,EAAKtzD,wBACLmlE,EAEEQ,EAAY,GAAAzhG,OAAMy6D,EAAUinC,UAAhB,KAAA1hG,OAA6By6D,EAAUknC,eACxD,UACA,CACCC,MACC,SAJe,KAAA5hG,OAMby6D,EAAUonC,eAETC,EAAU,GAAA9hG,OAAM06D,EAAQgnC,UAAd,KAAA1hG,OAA2B06D,EAAQinC,eAClD,UACA,CACCC,MACC,SAJa,KAAA5hG,OAMX06D,EAAQmnC,eACmCzS,EAAKpmF,OAIrD,OAAOwI,EAAAhgB,EAAAC,cAAA,OAAKC,UAAS,GAAAsO,OAAK7O,EAAQqhB,KAAb,WACpBhB,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAK+tF,KAAoBrwG,UAAWP,EAAQkd,WAAY6F,IAAI,eACjE1C,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ6wG,cACvBxwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ8wG,WAAxB,eACAzwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ8wG,WAAxB,qBAEDzwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+wG,aACvB1wF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQgxG,SAAxB,sBACoB3wF,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQixG,aAAzB,qDAEpB5wF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQgxG,SACvB3wF,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQixG,aAAzB,kBADD,4DAID5wF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQkxG,IACvB7wF,EAAAhgB,EAAAC,cAACqvG,GAAD,CAAQ5iG,MAAOkxF,EAAKpmF,OAAS,QAASgJ,KAAM,MAC5CR,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ6X,QACtBomF,EAAKpmF,SAGRwI,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQmxG,UACvB9wF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQoxG,SACvB/wF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqxG,aAAxB,+CAGAhxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqxG,aAAxB,8BAGAhxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqxG,aAAxB,0BAIDhxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQsxG,YACvBjxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQuxG,YAAxB,qBACoBnB,GAEpB/vF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqxG,aAAxB,cACaf,GAEbjwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqxG,aAAxB,cACaV,KAIftwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQwxG,SACvBnxF,EAAAhgB,EAAAC,cAAA,oBACO+f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQyxG,aAAapxF,EAAAhgB,EAAAC,cAAA,0CAD7C,iBAGA+f,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQyxG,aAAzB,qBADD,uCAGApxF,EAAAhgB,EAAAC,cAAA,0BACa+f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQyxG,aAAzB,yBADb,uBAIDpxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0xG,KACvBrxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ2xG,UAAxB,wBAGAtxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,uMAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,6NAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,yLAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,8EAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,+HAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,0DAGAvxF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4xG,SAAxB,kZAzI6BxtG,aAsUnBgM,iBAAUpO,qBApKV,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBogB,KAAM,CACLqrD,SAAU,SACVlkE,gBAAiB,QACjBD,MAAO,SACPoyB,OAAQ,OACRoV,OAAQ,EACRlnC,OAAQ,YAERgpG,eAAgB,WAChBvvG,SAAU,WACVwvG,2BAA4B,OAE7B50F,WAAY,CACX3U,MAAO,SACPoyB,OAAQ,OACRrd,OAAQ,SACRyyB,OAAQ,EACRlnC,OAAQ,EACRkpG,WAAY,OACZzvG,SAAU,YAEXuuG,aAAc,CACbvuG,SAAU,WACV0vG,WAAY,MACZzyF,WAAY,MACZtY,MAAO,UACPsB,MAAO,OAEPoe,WAAY,MACZsrF,UAAW,SACXC,WAAY,SACZC,WAAY,UACZrpG,SAAU,OACVwvB,UAAW,QAEZw4E,UAAW,CACV96E,UAAW,UAEZ+6E,YAAa,CACZzuG,SAAU,WACV0vG,WAAY,MACZzyF,WAAY,MACZtY,MAAO,UACPqxB,UAAW,QACX3R,WAAY,MACZsrF,UAAW,SACXC,WAAY,SACZ3pG,MAAO,OACPO,SAAU,SACVD,OAAQ,qBAETmoG,QAAS,CACRh7E,UAAW,SACXztB,MAAO,QAER0oG,YAAa,CACZ1xF,WAAY,MACZoH,WAAY,MACZsrF,UAAW,SACXC,WAAY,SACZC,WAAY,WAEbjB,GAAI,CACH5uG,SAAU,WACV+a,IAAK,QACLG,MAAO,OACPmJ,WAAY,MAEb9O,OAAQ,CACP0H,WAAY,MACZtY,MAAO,UACP6B,SAAU,OACVktB,UAAW,UAEZm7E,SAAU,CACT7uG,SAAU,WACVid,WAAY,MACZtY,MAAO,UACP0f,WAAY,MACZsrF,UAAW,SACXC,WAAY,SACZ3pG,MAAO,MACPN,WAAY,MACZC,QAAS,OACTyY,cAAe,OAEhBywF,QAAS,CACR7oG,MAAO,MACP+vB,UAAW,QACX3R,WAAY,OACZ7d,SAAU,SACVyW,WAAY,OAEb8xF,YAAa,CACZr7E,UAAW,UAEZs7E,WAAY,CACX/oG,MAAO,MACP+vB,UAAW,QACX3R,WAAY,OACZ7d,SAAU,SACVyW,WAAY,OAEbgyF,WAAY,CACXtqG,MAAO,UACP+uB,UAAW,SACXzW,WAAY,MACZ2yF,WAAY,QAEbV,QAAS,CACRlvG,SAAU,WACVid,WAAY,MACZtY,MAAO,UACPsB,MAAO,OACPO,SAAU,SACVuU,IAAK,QACFE,KAAM,UACToJ,WAAY,QAEb8qF,YAAa,CACZlyF,WAAY,MACZoH,WAAY,MACZsrF,UAAW,SACXC,WAAY,SACZC,WAAY,UACZrpG,SAAU,UAEX4oG,IAAK,CACJpvG,SAAU,WACV2E,MAAO,UACPsB,MAAO,MACPN,WAAY,QACZoV,IAAK,QACLsJ,WAAY,MACZ2R,UAAW,QAEZq5E,SAAU,CACTpyF,WAAY,MACZzW,SAAU,OAEX8oG,QAAS,CACRryF,WAAY,MACZzW,SAAU,UAEXspG,OAAQ,CACP9vG,SAAU,WACV2E,MAAO,UACPsB,MAAO,OACP8U,IAAK,QACLsJ,WAAY,MACZqP,UAAW,UAEZq8E,UAAW,CACV9yF,WAAY,MACZzW,SAAU,QAEXwpG,aAAc,CACb/yF,WAAY,MACZzW,SAAU,UAIa9G,CAAmB4tG,wJCnUxCD,GAASN,EAAQ,KAEfkD,eACL,SAAAA,EAAYxyG,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAyyG,IAC3BjuG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAqwG,GAAA7tG,KAAA5E,KAAMC,EAAOiJ,KACR5D,MAAQ,CACZyqG,UAAU,GAHgBvrG,wEAOnB,IAAAzE,EACmBC,KAAKC,MAAxBC,EADAH,EACAG,QAASw4D,EADT34D,EACS24D,MAGbylC,EAAOzlC,EAAM,GACbylC,EAAK8R,eACR9R,EAAKrzD,mBAAqBnkC,KAAKC,MAAMu3F,EAAK8R,eAE3C,IAAIyC,EAAcvU,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,OAAS,EAAI2vF,EAAKrzD,mBAAmBt8B,OAAS,EAEnHkkG,GAA4Bh6C,EAAMlqD,OAElC,IAAMg7D,EAAY20B,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,OAAS,IAAI0hG,KAAK/R,EAAKrzD,mBAAmB,GAAGqlE,WAAa,IAAID,KAC7HzmC,EAAU00B,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,OAAS,IAAI0hG,KAAK/R,EAAKrzD,mBAAmB,GAAGulE,SAAW,IAAIH,KAE3H5lF,EAAWznB,eACXytD,EAAYhmC,EAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,MAArBA,EAAEljB,kBACjD+nC,EAAailB,EAAU/sD,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC1CmvG,EAAWxU,EAAKrzD,oBAAsBqzD,EAAKrzD,mBAAmBt8B,OAAS2vF,EAAKrzD,mBAAmB,GAAGylE,UAAYllE,EAAW5nC,cAC3H6nC,EAAaglB,EAAU/sD,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,OAAlBA,EAAEhjB,eAC5C2sD,EAAkB7lC,EAASlnB,iBAC/B,OAAQmd,EAAAhgB,EAAAC,cAAA,OAAKC,UAAS,GAAAsO,OAAK7O,EAAQqhB,KAAb,WACpBhB,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0yG,aACvBryF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ2yG,OAAQ9vF,IAAK+vF,KAAa7vF,IAAI,eACtD1C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ6yG,WAAYhwF,IAAKgwF,KAAY9vF,IAAI,kBAE1D1C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ8yG,cACvBzyF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+yG,aACvB1yF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQgzG,cAAxB,0CAGA3yF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQizG,aAAxB,+EAKD5yF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQkzG,aACvB7yF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQmzG,SACvB9yF,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKuwF,KAAW7qG,MAAO,OAAQwa,IAAI,YACxC1C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQqzG,SACvBhzF,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,8CAID+f,EAAAhgB,EAAAC,cAAA,WAAM29F,EAAKpmF,UAGbwI,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQszG,eACvBjzF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQuzG,kBACvBlzF,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,sCAED+f,EAAAhgB,EAAAC,cAAA,cAAAuO,OAASy6D,EAAUinC,UAAnB,KAAA1hG,OAAgCy6D,EAAUknC,eACzC,UACA,CACCC,MAAO,SAHT,KAAA5hG,OAKKy6D,EAAUonC,iBAEhBrwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQwzG,iBACvBnzF,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,4BAED+f,EAAAhgB,EAAAC,cAAA,WAAMkyG,EAAN,MAAsBviD,EAAiBwiD,EAAvC,aACExU,EAAKwV,gBAAkBpzF,EAAAhgB,EAAAC,cAAA,WACvBkyG,EADuB,MACPviD,EAAiB7kB,EAAW7nC,cADrB,wCAI1B8c,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ0zG,mBACvBrzF,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,uCAID+f,EAAAhgB,EAAAC,cAAA,cAAAuO,OAAS06D,EAAQgnC,UAAjB,KAAA1hG,OAA8B06D,EAAQinC,eACrC,UACA,CACCC,MAAO,SAHT,KAAA5hG,OAKK06D,EAAQmnC,kBAGfrwF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ2zG,aACvBtzF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ4zG,YACvBvzF,EAAAhgB,EAAAC,cAAA,uCAED+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ6zG,QACvBxzF,EAAAhgB,EAAAC,cAACwzG,GAAD,CAAQ/mG,MAAOkxF,EAAKpmF,OAAS,QAAUomF,EAAKzzD,IAAK3pB,KAAM,MAExDR,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ+zG,WACvB1zF,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQg0G,aAAzB,yCAIA3zF,EAAAhgB,EAAAC,cAAA,YACC+f,EAAAhgB,EAAAC,cAAA,cACE,IADF,wBAEuB,MAGxB+f,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQg0G,aAAzB,mHAUJ3zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQi0G,gBACvB5zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQk0G,gBACvB7zF,EAAAhgB,EAAAC,cAAA,2CAED+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQm0G,oBACvB9zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQo0G,eACvB/zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQq0G,UACvBh0F,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAKyxF,KAAQ/rG,MAAO,OAAQoyB,OAAQ,OAAQ5X,IAAI,YAEtD1C,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQu0G,WACvBl0F,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,6CAID+f,EAAAhgB,EAAAC,cAAA,+GAOF+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQo0G,eACvB/zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQu0G,WACvBl0F,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,mCAED+f,EAAAhgB,EAAAC,cAAA,uIAOD+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQq0G,UACvBh0F,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAK2xF,KAAQzxF,IAAI,SAASxa,MAAO,OAAQoyB,OAAQ,WAGxDta,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQo0G,eACvB/zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQq0G,UACvBh0F,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAK4xF,KAAQ1xF,IAAI,SAASxa,MAAO,OAAQoyB,OAAQ,UAEvDta,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQu0G,WACvBl0F,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,sDAKD+f,EAAAhgB,EAAAC,cAAA,iEAIA+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ00G,eAAxB,oCAKFr0F,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQo0G,eACvB/zF,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ20G,oBACvBt0F,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAA,uCAID+f,EAAAhgB,EAAAC,cAAA,uGAC0F+f,EAAAhgB,EAAAC,cAAA,sBAD1F,cAGqB+f,EAAAhgB,EAAAC,cAAA,2BAIrB+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ00G,eAAxB,6GAMDr0F,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQq0G,UACvBh0F,EAAAhgB,EAAAC,cAAA,OAAKuiB,IAAK+xF,KAAQ7xF,IAAI,SAASxa,MAAO,OAAQoyB,OAAQ,aAK1Dta,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ60G,WACvBx0F,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ2xG,UACvBtxF,EAAAhgB,EAAAC,cAAA,qGAKD+f,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQ80G,SACvBz0F,EAAAhgB,EAAAC,cAAA,MAAIC,UAAWP,EAAQ+0G,WACtB10F,EAAAhgB,EAAAC,cAAA,iHAKA+f,EAAAhgB,EAAAC,cAAA,weAcA+f,EAAAhgB,EAAAC,cAAA,6gBAgBA+f,EAAAhgB,EAAAC,cAAA,0XAYA+f,EAAAhgB,EAAAC,cAAA,ivBAsBA+f,EAAAhgB,EAAAC,cAAA,+FAKA+f,EAAAhgB,EAAAC,cAAA,oJAMA+f,EAAAhgB,EAAAC,cAAA,8HAMA+f,EAAAhgB,EAAAC,cAAA,iFA1S0B8D,aA6clBgM,iBAAUpO,qBAxJV,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBogB,KAAM,CACLnE,WAAY,QACZ3U,MAAO,OACPoyB,OAAQ,SACRzyB,QAAS,QACTW,OAAQ,SACRzG,aAAc,QACdwG,UAAW,6BAEZ8pG,YAAa,CACZsC,gBAAiB,QACjBr6E,OAAQ,MACRwlB,UAAW,cACX79C,SAAU,YAEXqwG,OAAQ,CACPpqG,MAAO,OACPoyB,OAAQ,QAETk4E,WAAY,CACXvwG,SAAU,WACV+a,IAAK,MACLE,KAAM,MACNhV,MAAO,OAERuqG,aAAc,CACbn4E,OAAQ,MACRwlB,UAAW,aACXlQ,aAAc,qBACd5tC,QAAS,cAEV0wG,YAAa,CACZ/8E,UAAW,SACX/uB,MAAO,UACP4B,OAAQ,OACRC,SAAU,QAEXkqG,aAAc,CACbd,WAAY,QAEbe,YAAa,CACZnqG,SAAU,QAEXoqG,YAAa,CACZ7wG,QAAS,OACT6F,QAAS,OACTC,WAAY,WAEbgrG,QAAS,CACR5qG,MAAO,MACP+vB,UAAW,QAEZ+6E,QAAS,CACRpsG,MAAO,UACP6B,SAAU,OACVktB,UAAW,UAEZs9E,cAAe,CACd/qG,MAAO,MACPlG,QAAS,cACTyG,SAAU,OACVwvB,UAAW,QAEZk7E,gBAAiB,CAChBl7E,UAAW,QAEZo7E,kBAAmB,CAClBp7E,UAAW,QAEZq7E,YAAa,CACZ7qG,SAAU,QAEX8qG,WAAY,CACX9qG,SAAU,OACVktB,UAAW,UAEZ69E,OAAQ,CACP79E,UAAW,SACXntB,OAAQ,UAETkrG,UAAW,CACVjrG,SAAU,OACVktB,UAAW,UACXztB,MAAO,QACPM,OAAQ,KAETmrG,YAAa,CACZ72F,QAAS,OAEV82F,eAAgB,CACft5E,OAAQ,MACRwlB,UAAW,aACXlQ,aAAc,qBACd5tC,QAAS,iBAEV6xG,eAAgB,CACfl+E,UAAW,SACX3zB,QAAS,cAEV8xG,mBAAoB,CACnBjsG,QAAS,OACT7F,QAAS,QACT8F,WAAY,UACZwyB,OAAQ,MACR7xB,SAAU,QAEXsrG,cAAe,CACd7rG,MAAO,OAER8rG,SAAU,CACT9rG,MAAO,OACPoyB,OAAQ,OAET45E,UAAW,CACV55E,OAAQ,MACR3E,UAAW,SACX3zB,QAAS,YACT89C,UAAW,cAEZu0D,cAAe,CACd5rG,SAAU,MACVqU,QAAS,MACT80F,UAAW,SACX5vG,QAAS,SAEVsyG,mBAAoB,CACnBh6E,OAAQ,MACR3E,UAAW,SACX3zB,QAAS,WACT89C,UAAW,cAEZ00D,UAAW,CACVl6E,OAAQ,MACRwlB,UAAW,cACX99C,QAAS,eACTyG,SAAU,OACVktB,UAAW,WAEZ27E,SAAU,CACT/1C,YAAa,QAEdk5C,QAAS,CACRhsG,SAAU,OAEXisG,UAAW,CACVlsG,OAAQ,QACRsU,QAAS,SAIcnb,CAAmBuwG,KC/ctC0C,eACL,SAAAA,EAAYl1G,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAm1G,IAC3B3wG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA+yG,GAAAvwG,KAAA5E,KAAMC,EAAOiJ,KAYdI,kBAb4BlH,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAaR,SAAAC,IAAA,IAAA63B,EAAAxpB,EAAAq9F,EAAA18C,EAAA,OAAAzrC,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACby3B,EAA0Bx1B,KAAYnF,MAAM7B,OAAOD,SAASkH,QAAQC,GACpE8L,EAAShM,KAAYnF,MAAM7B,OAAOD,SAASkH,QAAQ+L,OACrDq9F,EAAY,GACD,OAAXr9F,QAA8BzW,IAAXyW,GAAmC,KAAXA,IAC9Cq9F,EAAY,CAACr9F,IALKnO,EAAAE,KAAA,EAObtF,EAAKvE,MAAMg+D,qBAAqBm3C,EAAW7zE,GAP9B,OAQfm3B,EAAQl0D,EAAKvE,MAAMm+D,cAAc1F,MACrCl0D,EAAKU,SAAS,CAAEwzD,UATG,wBAAA9uD,EAAAc,SAAAhB,EAAA1J,SAbQwE,EAyB5Bk3F,QAAU,WACT32F,OAAO42F,SAxBPn3F,EAAKc,MAAQ,CACZ6pG,kBAAmB,GACnBvuE,OAAQ,GACRzgC,WAAW,EACXivG,aAAc,GACdC,cAAe,GACfgG,QAAQ,EACR38C,MAAO,IATmBl0D,wEA6BnB,IAEJ8wG,EADct1G,KAAKsF,MAAfozD,OACsB,GAC1B68C,EAAmBD,EAAetzF,OAAO,SAACsoB,GAC7C,OAAOA,EAAEvyB,QAAUuyB,EAAEvyB,OAAOC,WAAW,WAEpCw9F,EAAoBF,EAAetzF,OAAO,SAACsoB,GAC9C,OAAOA,EAAEvyB,QAAUuyB,EAAEvyB,OAAOC,WAAW,WAExC,OACCuI,EAAAhgB,EAAAC,cAAA,OAAKe,MAAO,CACXmH,gBAAiB,UACjB+sG,gBAAe,OAAA1mG,OAAS2mG,KAAT,KACfC,WAAY,eAEZp1F,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAA,yIAOC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAK07F,QAAS96F,QAAQ,aAAvC,aAGC20G,GAAoBA,EAAiB/mG,OAAS,GAC9C+R,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACo1G,GAAD,CAAoBl9C,MAAO68C,KAG5BC,GAAqBA,EAAkBhnG,OAAS,GAChDgnG,EAAkB/zG,IAAI,SAAC6oC,EAAG3oC,GACzB,OACC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACC,IAAKyoC,EAAEvyB,QACjBwI,EAAAhgB,EAAAC,cAACq1G,GAAD,CAAqB1X,KAAM7zD,eAnEZhmC,aA8FTgM,eAVS,SAAChL,GAGxB,MAAO,CAAE2kB,mBAFqC3kB,EAAtC2kB,mBAEqBm0C,cAFiB94D,EAAlB84D,gBAKF,SAAC/tD,GAC3B,MAAO,CAAE4tD,qBAAsB,SAACvF,EAAOn3B,GAAR,OAAoClxB,EAAS4tD,GAAqBvF,EAAOn3B,OAG1FjxB,CAA6CpO,qBAlB7C,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,eAakC9G,CAAmBizG,KChGzEW,eACL,SAAAA,EAAY71G,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAA81G,IAC3BtxG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAA0zG,GAAAlxG,KAAA5E,KAAMC,EAAOiJ,KAkEX6sG,kBAAoB,SAACpW,EAAYC,GAEnC,IAAIoW,EAAU,GACVC,EAAgB1qE,SAASo0D,GAEnBuW,EADQ3qE,SAASq0D,GACSqW,EAC9B,GAAGC,EAAW,EAAG,MAAO,CAACvW,GAC/B,IAAI,IAAIh+F,EAAI,EAAGA,GAAKu0G,EAAUv0G,IAAI,CACjC,IACIw0G,EAAgB,QADGF,EAAgBt0G,GAEvCq0G,EAAQ5nG,KAAK+nG,GAId,OAFA9/E,QAAQC,IAAI0/E,GAELA,GAjFoBxxG,EAsF5Bk3F,QAAU,WACT32F,OAAO42F,SArFPn3F,EAAKc,MAAQ,CACZ6pG,kBAAmB,GACnBvuE,OAAQ,GACRzgC,WAAW,EACXivG,aAAc,GACdC,cAAe,GACfgG,QAAQ,EACR38C,MAAO,IATmBl0D,mFAc3B,IAAI8lB,EAAWznB,eAGa,cAAxBynB,EAAStnB,aAEZhD,KAAKC,MAAMkO,QAAQ,QAGpB,IACIioG,EADkB9rF,EAASjnB,gBAAgB+O,KAAK,SAAAoU,GAAC,MAAyB,WAArBA,EAAEljB,kBACtBC,SAAS6O,KAAK,SAAAoU,GAAC,MAAsB,WAAlBA,EAAEhjB,eACtDk1D,EAAQ,GACA42C,EAAcC,EAAQ,KACtB5P,EAAa2P,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQ2zF,WACvDC,EAAW0P,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQ4zF,SACrDp2B,EAAY8lC,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQw9D,UAC5DC,EAAU6lC,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQy9D,QACpDxf,EAAeqlD,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQi+C,aACzDosD,EAAkB/G,EAAY1oG,MAAM7B,OAAOD,SAASkH,QAAQqqG,gBAClDr2G,KAAK+1G,kBAAkBpW,EAAYC,GAE3CtxF,QAAQ,SAAAyJ,GACf,IAAIomF,EAAO,CACEpmF,OAAQA,EACRq4F,WAAY5mC,EACxBC,QAASA,EACTxf,aAAcA,EACdosD,gBAAiBA,EACLvrE,mBAAoB,IAGjC,GAAIurE,EACH,IAAK,IAAI10G,EAAI,EAAGA,EAAI00G,EAAiB10G,IACpCw8F,EAAKrzD,mBAAmB18B,KAAK,CAC5Bo7D,UAAWA,EACXC,QAASA,EACTpK,UAAWpV,GAA8BmsD,EAAe3yG,qBAI1D06F,EAAKrzD,mBAAmB18B,KAAK,CAC5Bo7D,UAAWA,EACXC,QAASA,EACTpK,UAAWpV,GAA8BmsD,EAAe3yG,gBAI1Di1D,EAAMtqD,KAAK+vF,KAGNn+F,KAAKkF,SAAS,CAACwzD,MAASA,qCA6B9B,OACCn4C,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAC5BoS,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MAEAsX,EAAAhgB,EAAAC,cAAA,yIAOC+f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQpZ,QAASpH,KAAK07F,QAAS96F,QAAQ,aAAvC,aAGCZ,KAAKsF,MAAMozD,MAAMj3D,IAAI,SAAC6oC,EAAG3oC,GACxB,OACC4e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAACC,IAAKyoC,EAAEvyB,QACjBwI,EAAAhgB,EAAAC,cAACq1G,GAAD,CAAqB1X,KAAM7zD,eA/GEhmC,aAsIvBgM,eANS,SAAChL,GAGxB,MAAO,CAAE2kB,mBAFsB3kB,EAAvB2kB,qBAKM3Z,CAAyBpO,qBAdzB,SAACC,GAAD,MAAY,CAC1BhB,UAAUiB,OAAA+d,EAAA,EAAA/d,CAAA,GAAMD,EAAMhB,WACtBqhB,IAAK,CAAEpa,QAAS,QAChBu1C,QAAS,CAAEv1C,QAAS,OAAQm1B,KAAM,EAAG/e,YAAa,GAAInW,WAAY,UAClEw0D,UAAW,CAAEx0D,WAAY,cACzB6gE,YAAa,CAAElgE,SAAU,eASc9G,CAAmB4zG,KC5HrDQ,eACL,SAAAA,EAAYr2G,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAs2G,IAC3B9xG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAk0G,GAAA1xG,KAAA5E,KAAMC,EAAOiJ,KAQdrE,YAT4B,eAAAgQ,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KASd,SAAAC,EAAOwe,GAAP,IAAAza,EAAAC,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACP2D,EAAO,CAAExB,GAAIic,GADNte,EAAAE,KAAA,EAEItF,EAAKvE,MAAMs2G,yBAAyB9oG,GAFxC,QAEPC,EAFO9D,EAAAkE,MAGNC,SACe,8BACrBhJ,OAAOb,KADc,8BACHgkB,IAET1jB,EAAKU,SAAS,CACVkH,cAAc,EACdE,gBAAiBoB,EAAGrJ,QACpBgI,gBAAiB,QACjB6oD,gBAAgB,IAXjB,wBAAAtrD,EAAAc,SAAAhB,EAAA1J,SATc,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GAAAnO,EAyB5B+H,cAAgB,WACT/H,EAAKU,SAAS,CAAEkH,cAAc,KAxBpC5H,EAAKc,MAAQ,CACZ8G,cAAc,EACXE,gBAAiB,GACpBD,gBAAiB,WALS7H,wEA6BnB,IAAAkB,EAAA1F,KAAAD,EACmGC,KAAKC,MAAxGC,EADAH,EACAG,QAASuN,EADT1N,EACS0N,KAAc4+E,GADvBtsF,EACe2hB,OADf3hB,EACuBssF,YAAY7qE,EADnCzhB,EACmCyhB,MAAOD,EAD1CxhB,EAC0CwhB,KAAMJ,EADhDphB,EACgDohB,YAAaE,EAD7DthB,EAC6DshB,aAAcD,EAD3ErhB,EAC2EqhB,oBACnF,OACCb,EAAAhgB,EAAAC,cAAA,OAAKC,UAAU,yBACb8f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACmBD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACTD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACED,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,YACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,qBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,qBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,mBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBACeD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,6BACxBD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,gBACSD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,uBACTD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,yBACSD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,sBACAD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kCAGXD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACW/S,GAAQA,EAAKhM,IAAI,SAAC+gB,EAAIC,GAAL,OACjBlC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAU3e,IAAK2gB,EAAIvW,GAAIxL,UAAWgiB,IAAS4pE,EAAansF,EAAQovC,QAAU,IACvE/uB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAW7Y,UAAU,KAAK+a,MAAM,OAC7BD,EAAO,GAEVlC,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACTD,EAAAhgB,EAAAC,cAAA,QAAMC,UAAWP,EAAQw9C,UAAWt2C,QAAS,kBAAM1B,EAAKb,YAAY2d,EAAIvW,MACrEuW,EAAI0F,QAGE3H,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAIkpB,UAEhBnrB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAIyG,WAChB1I,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAI+G,UACAhJ,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB6Q,EAAI2G,eAElE3G,EAAI2b,UAAa5d,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAI2b,UACd,OAAjB3b,EAAI2b,UAAsB5d,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,MAClBD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAIstE,eAET,IAAjBttE,EAAIwC,UAAsBzE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBACT,IAAjBgC,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAqB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,kBAClC,IAAjBgC,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAsB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,iBAExB,IAAjBgC,EAAIwC,UAAsBzE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAI6sE,mBACpC,IAAjB7sE,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAqB1C,EAAI+sE,YAAehvE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAYgC,EAAIgtE,mBACrE,IAAjBhtE,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAuB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,OAEpC,IAAjBgC,EAAIwC,UAAqBxC,EAAI8sE,cAAiB/uE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB6Q,EAAI8sE,gBACrE,IAAjB9sE,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAqB1C,EAAIitE,cAAiBlvE,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KAAY7O,YAAwB6Q,EAAIitE,gBAC/F,IAAjBjtE,EAAIwC,WAAuC,IAAjBxC,EAAI0C,UAAuB3E,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,UAIzDD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,KACCD,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCgB,MAAOA,EACPD,KAAMA,EACNJ,YAAaA,EACbE,aAAcA,EACdD,oBAAqBA,EACrBqC,mBAAoB,GACpBnC,iBAAkBiE,QAKtBhF,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,0BAnGrG/H,aA2HtBgM,eAlBS,SAAChL,GAExB,MAAO,CAAE0rF,sBADyB1rF,EAA1B0rF,wBAIkB,SAAC3gF,GAC3B,MAAO,CACNkmG,yBAA0B,SAAC9oG,GAAD,OAAU4C,EhDqME,SAAC5C,GAAD,sBAAA8N,EAAAnZ,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAA+R,EAAMnL,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAA+R,GAAA,cAAAA,EAAA7R,KAAA6R,EAAA5R,MAAA,cAC9CuG,EAASwgF,MADqCn1E,EAAA5R,KAAA,EAE7BoL,KAAMM,KAAKrS,GAAU,8CAA+CsK,EAAM8C,eAAyB6E,MAAM,SAAAnQ,GACtH,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAJK,YAExCqJ,EAFwCgO,EAAA5N,MASvCL,KAAKM,QATkC,CAAA2N,EAAA5R,KAAA,eAU1CuG,EAASygF,GAAiCpjF,IAVAgO,EAAAnG,OAAA,SAWnC,CAACxH,SAAS,EAAM1J,QAAS,KAXU,cAa1CgM,EAAS0gF,MAbiCr1E,EAAAnG,OAAA,SAcnC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UAdL,yBAAAqX,EAAAhR,SAAA8Q,EAAAxb,SAAV,gBAAA2b,GAAA,OAAAJ,EAAA1F,MAAA7V,KAAA2S,YAAA,GgDrMO4jG,CAAyB9oG,OAWzD6C,CAGbpO,qBAVa,SAACC,GAAD,MAAY,CAC1BhB,UAAWgB,EAAMhB,UACjB81E,QAAS,CAAE10E,QAAS,UACpBm7C,UAAW,CAAExN,OAAQ,UAAWC,aAAc,mBAC9Cb,QAAS,CAAC5mC,gBAAiB0nC,QAAK,OAM/BluC,CAAmBo0G,KCjIfE,eACL,SAAAA,EAAYv2G,EAAOiJ,GAAS,IAAA1E,EAAA,OAAApC,OAAAojB,EAAA,EAAApjB,CAAApC,KAAAw2G,IAC3BhyG,EAAApC,OAAAqjB,EAAA,EAAArjB,CAAApC,KAAAoC,OAAAsjB,EAAA,EAAAtjB,CAAAo0G,GAAA5xG,KAAA5E,KAAMC,EAAOiJ,KAYdu2F,qBAAuB,SAAC3yF,EAAG7H,GAChB,eAAN6H,GAA4B,aAANA,EAAkBtI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgL,YAA0B7S,EAAE+H,OAAOC,SAC/FzI,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAI7H,EAAE+H,OAAOC,SAfRzI,EAkB5Bk7F,8BAAgC,SAAC5yF,EAAG7H,GACnC,IAAI60D,EAAe70D,EAAE+H,OAAOC,MAAM8/B,QAAQ,MAAO,IACjDvoC,EAAKU,SAAL9C,OAAA8sB,GAAA,EAAA9sB,CAAA,GAAiB0K,EAAIgtD,KApBMt1D,EAuB5B2wD,gBAAkB,SAACp9C,GAClB,OAAIA,GAA6B,KAAlBA,EAAOvJ,SAAiB,UAAUE,KAAKqJ,KACrDvT,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAe,YAAAyC,OAAcgJ,EAAd,2BAET,IA9BmBvT,EAmC5BmJ,UAAY,WAAM,IAAAN,EAC0G7I,EAAKc,MAAxH2jB,EADS5b,EACT4b,UAAWM,EADFlc,EACEkc,SAAU4iB,EADZ9+B,EACY8+B,gBAAiB3jB,EAD7Bnb,EAC6Bmb,eAAgBm3E,EAD7CtyF,EAC6CsyF,WAAYC,EADzDvyF,EACyDuyF,SAAUC,EADnExyF,EACmEwyF,kBAAmBC,EADtFzyF,EACsFyyF,gBACvG,MAAwB,KAApB3zD,GAA6C,KAAnB3jB,GACZ,KAAbe,GAAiC,KAAdN,IAWnBzkB,EAAK2wD,gBAAgBwqC,OACrBn7F,EAAK2wD,gBAAgByqC,OACrBp7F,EAAK2wD,gBAAgB0qC,MACrBr7F,EAAK2wD,gBAAgB2qC,MAbxBt7F,EAAKU,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBACC,kFAEK,IA7CkB9H,EAwD5B88D,SAxD4Bl/D,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAwDjB,SAAAC,IAAA,IAAA+D,EAAAsyF,EAAA0W,EAAA,OAAAxpF,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACLtF,EAAKmJ,YADA,CAAA/D,EAAAE,KAAA,eAAAF,EAAA2L,OAAA,iBAIN9H,EAAO,GACPsyF,GAAY,EAHD,CAAC,SAAU,QAAS,QAAS,YAAa,UAAW,cAI7DzxF,QAAQ,SAAC+D,GACO,KAAlB7N,EAAKc,MAAM+M,KACd5E,EAAK4E,GAAK7N,EAAKc,MAAM+M,GACrB0tF,GAAY,KAGU,QAApBtyF,EAAKipG,aACR3W,GAAY,EACZtyF,EAAKipG,WAAa,MAGf3W,GACC0W,EADUr0G,OAAA+d,EAAA,EAAA/d,CAAA,GACUqL,EAASjJ,EAAKc,MAAMqxG,YAC5CnyG,EAAKkyB,cAAc+/E,IAEnBjyG,EAAKU,SACJ,CAAEyxG,WAAY,CAAE3xF,SAAU,GAAIE,SAAU,KACxC,WACC1gB,EAAKkyB,cAAcjpB,KAxBZ,wBAAA7D,EAAAc,SAAAhB,EAAA1J,SAxDiBwE,EAsF5B+H,cAAgB,WACf/H,EAAKU,SAAS,CAAEkH,cAAc,KAvFH5H,EAyF5BoyG,mBAAqB,WACpB,IAAInpG,EAAOjJ,EAAKc,MAAMqxG,WACtBnyG,EAAKkyB,cAAcjpB,IA3FQjJ,EAsH5B6c,aAAe,SAACpc,EAAGsc,GACZ,IAAIkV,EACV,OAAQlV,GACP,IAAK,QACJkV,EAAe,EACf,MAED,IAAK,OACJA,EAAejyB,EAAKc,MAAMmxB,aAAe,EACzC,MAED,IAAK,OACJA,EAAejyB,EAAKc,MAAMmxB,aAAe,EACzC,MAED,IAAK,OACJA,EAAejyB,EAAK+xB,WAAWvP,oBAC/B,MAED,QACCyP,EAAelV,EAGjB/c,EAAKU,SAAS,CAAEuxB,aAAcA,GAAgB,WAC7CjyB,EAAKkyB,cAAclyB,EAAKc,MAAMqxG,eA9IJnyG,EAkJ5BqyG,mBAAqB,SAACj8E,GACrBp2B,EAAKU,SAAS,CAAEwxG,WAAY97E,EAAM5tB,OAAOC,OAAS,WAAM,IAC/CypG,EAAelyG,EAAKc,MAApBoxG,WACW,YAAfA,GACHlyG,EAAKU,SAAS,CACbyxG,WAAY,CAAE3xF,UAAU,EAAOE,UAAU,KAGxB,aAAfwxF,GACHlyG,EAAKU,SAAS,CACbyxG,WAAY,CAAE3xF,UAAU,EAAOE,UAAU,KAGxB,aAAfwxF,GACHlyG,EAAKU,SAAS,CACbyxG,WAAY,CAAE3xF,UAAU,EAAME,SAAU,SA/J3C1gB,EAAKc,MAAQ,CAAEyS,OAAQ,GAAIsqB,MAAO,GAAIna,MAAO,GAAIxT,UAAW,GAAIC,QAAS,GAAIvI,cAAc,EAAOE,gBAAiB,GAAID,gBAAiB,UAAWqqG,WAAY,UAAWjgF,aAAc,EAAGkgF,WAAY,CAAE3xF,UAAU,EAAOE,UAAU,IACpO1gB,EAAK2c,YAAc,IACnB3c,EAAK+xB,WAAa,IAAIzP,GAAW,CAChCC,eAAgBviB,EAAK2c,cALK3c,mFAU3BsK,SAASjO,MAAT,GAAAkO,OAAoBpL,KAApB,mGAoFmB8J,oFAEgB,IAA/BzN,KAAKu2B,WAAWtP,WACnBI,EAAY,GAEQrnB,KAAKu2B,WAAWM,SAAS72B,KAAKsF,MAAMmxB,cACxDpP,EAAYrnB,KAAKu2B,WAAWlP,WAEvBhO,eAAWA,OAAOjX,OAAA+d,EAAA,EAAA/d,CAAA,GAAMqL,EAAP,CAAasZ,eAAgB/mB,KAAKmhB,YAAakG,UAAWA,KAAgB9W,wBAChFvQ,KAAKC,MAAM62G,wBAAwBz9F,WAA9C3L,UACEK,SAOP/N,KAAKu2B,WAAWC,mBAAmB,CAClCvP,WAAYvZ,EAAGmL,OAAOoO,aAEvBjnB,KAAKkF,SAAS,CAAE+hB,WAAYvZ,EAAGmL,OAAOoO,cATtCjnB,KAAKkF,SAAS,CACbkH,cAAc,EACdC,gBAAiB,QACjBC,gBAAiBoB,EAAGrJ,8IA2Dd,IAAAqB,EAAA1F,KAAAD,EAC6HC,KAAKC,MAAlIC,EADAH,EACAG,QADA+oG,EAAAlpG,EACSixF,sBAAyB9B,EADlC+Z,EACkC/Z,+BAAgCgC,EADlE+X,EACkE/X,mBACpE/wF,EAFE8oG,EACsF8N,kCACxC7nB,EAF9ChgF,EAGyDlP,KAAKsF,MAA9DyS,EAHA7I,EAGA6I,OAAQsqB,EAHRnzB,EAGQmzB,MAAOna,EAHfhZ,EAGegZ,MAAOxT,EAHtBxF,EAGsBwF,UAAWC,EAHjCzF,EAGiCyF,QAAS+hG,EAH1CxnG,EAG0CwnG,WAoBlD,OAnBIxlB,GACHA,EAAmB3oE,KAAK,SAAShoB,EAAGmB,GASnC,OARAnB,EAAE+U,OAAS,UACP/U,EAAE2kB,WAAU3kB,EAAE+U,OAAS,YACvB/U,EAAEykB,WAAUzkB,EAAE+U,OAAS,YAE3B5T,EAAE4T,OAAS,UACP5T,EAAEwjB,WAAUxjB,EAAE4T,OAAS,YACvB5T,EAAEsjB,WAAUtjB,EAAE4T,OAAS,YAEvB/U,EAAE+U,SAAW5T,EAAE4T,OAAe,EACjB,YAAb/U,EAAE+U,QAAqC,YAAb5T,EAAE4T,QAA8B,EAC7C,YAAb/U,EAAE+U,QAAqC,YAAb5T,EAAE4T,OAA6B,EAE5C,aAAb/U,EAAE+U,QAAsC,aAAb5T,EAAE4T,QAA+B,EAC/C,aAAb/U,EAAE+U,QAAsC,aAAb5T,EAAE4T,OAA8B,OAA/D,IAIG1P,YAAevG,MAKnBkhB,EAAAhgB,EAAAC,cAAA,WACC+f,EAAAhgB,EAAAC,cAACyI,GAAA,EAAD,MACAsX,EAAAhgB,EAAAC,cAAC+D,EAAA,EAAD,CAAQ4J,QAASnO,KAAKC,MAAMkO,UAE5BoS,EAAAhgB,EAAAC,cAAA,OAAKC,UAAWP,EAAQiB,WACvBof,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,mBAAoBV,UAAWA,GACpDogB,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACC,QAAS,GAAIqO,UAAW,UACvC8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,oBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,UACH2D,MAAM,GACNhP,QAAQ,WACRqM,MAAO8K,EACPhI,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,SAAUx6F,QAIxDsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,mBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,GAAGhP,QAAQ,WAAWqM,MAAOo1B,EAAOtyB,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,QAASx6F,QAGrHsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,kBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAWvU,GAAG,OAAO2D,MAAM,GAAGhP,QAAQ,WAAWqM,MAAOib,EAAOnY,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,QAASx6F,QAGrHsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,sBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACV2e,EAAAhgB,EAAAC,cAACsxB,EAAA,iBAAD,CAAkB3vB,MAAOyd,GACxBW,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAa5f,QAAQ,WAAWH,UAAWP,EAAQ0xB,cACnDrR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAYuR,QAAS,gBAArB,iBACAxR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACSvU,GAAG,qBACXgB,MAAOypG,EACP3mG,SAAU/P,KAAK62G,mBACf7kF,MAAOzR,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAeyR,WAAY,IAAKC,KAAM,eAAgBjmB,GAAI,kBAChEsU,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,WAAjB,WACQsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,YAAjB,YACAsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,YAAjB,YACRsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAUvT,MAAO,OAAjB,YAMJsT,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIiH,WAAY,UAC7CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,EAAC8N,GAAI,GACd6Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,iBAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,EAAGiH,WAAY,UAC5CkY,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,YACH2D,MAAM,YACNhP,QAAQ,WACR+O,KAAM,OACNk+C,gBAAiB,CAAEC,QAAQ,GAC3B7gD,MAAOuE,YAAsBkD,GAC7B3E,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,YAAax6F,OAG1Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAY5f,QAAS,SAArB,OAED2f,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CACCvU,GAAG,UACH2D,MAAM,UACNhP,QAAQ,WACR+O,KAAM,OACNk+C,gBAAiB,CAAEC,QAAQ,GAC3B7gD,MAAOuE,YAAsBmD,GAC7B5E,SAAU,SAAC9K,GAAD,OAAOS,EAAK+5F,qBAAqB,UAAWx6F,UAM3Dsb,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAMrf,WAAS,EAACS,MAAI,EAACR,QAAS,GAAIqO,UAAW,UAC5C8Q,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAM5e,MAAI,GACT2e,EAAAhgB,EAAAC,cAACggB,EAAA,EAAD,CAAQrZ,MAAO,UAAWvG,QAAQ,YAAYwG,QAASpH,KAAKshE,UAA5D,cAOH/gD,EAAAhgB,EAAAC,cAACV,GAAA,EAAD,CAAee,MAAO,iBACrB0f,EAAAhgB,EAAAC,cAACw2G,GAAD,CACC7oG,QAASnO,KAAKC,MAAMkO,QACpBV,KAAQyjF,EACR7vE,aAAcrhB,KAAKqhB,aACKF,YAAanhB,KAAKmhB,YAClBI,KAAMvhB,KAAKsF,MAAMmxB,aAAe,EAChCjV,MAAOxhB,KAAKu2B,WAAWnP,oBAInD7G,EAAAhgB,EAAAC,cAACoD,GAAA,EAAD,CAAgBM,KAAMlE,KAAKsF,MAAM8G,aAAcjI,QAASnE,KAAKuM,cAAelI,QAASrE,KAAKsF,MAAMgH,gBAAiB1L,QAASZ,KAAKsF,MAAM+G,mBArH/HkU,EAAAhgB,EAAAC,cAAC0sE,GAAA,EAAD,CAAUplE,GAAI,sBAhMcxD,aA0UvBgM,eAVS,SAAChL,GAAU,IAC1B0rF,EAA0B1rF,EAA1B0rF,sBAER,MAAO,CAAEA,wBAAuB9B,+BAD+B8B,EAAvD9B,+BACwDgC,mBADDF,EAAvBE,qBAId,SAAC7gF,GAC3B,MAAO,CAAEymG,wBAAyB,SAACrpG,GAAD,OAAU4C,EjD7LN,SAAC5C,GAAD,sBAAAoH,EAAAzS,OAAA4qB,EAAA,EAAA5qB,CAAA6qB,EAAA1sB,EAAAkJ,KAAU,SAAAC,EAAM2G,GAAN,IAAA3C,EAAA,OAAAuf,EAAA1sB,EAAAoJ,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAC7CuG,EAAS0/E,MADoCnmF,EAAAE,KAAA,EAG5BoL,KAAMM,KAAKrS,GAAU,8CAA+CsK,EAAK4L,OAAQ,CAC9F7I,QAAS/C,EAAK+C,UACf4E,MAAM,SAAAnQ,GACL,OAAKrF,aAAqBqF,EAAEoQ,SAASC,QAI9B,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QAASY,EAAEoQ,SAASC,OAAS,uBAFzD,CAAC7H,KAAM,CAACM,SAAS,EAAO8B,MAAO,CAACxL,QADQY,EAAxCoQ,SAAW5H,KAAOoC,MAAQxL,aAPI,WAGvCqJ,EAHuC9D,EAAAkE,MAYrCL,KAZqC,CAAA7D,EAAAE,KAAA,eAazCuG,EAAS4/E,MAbgCrmF,EAAA2L,OAAA,SAclC,CAACxH,SAAS,EAAO1J,QAAS,wBAdQ,WAgBzCqJ,EAAGD,KAAKM,QAhBiC,CAAAnE,EAAAE,KAAA,gBAiBzCuG,EAAS2/E,GAAgCtiF,IAjBA9D,EAAA2L,OAAA,SAkBlC7H,EAAGD,MAlB+B,eAoBzC4C,EAAS4/E,MApBgCrmF,EAAA2L,OAAA,SAqBlC,CAACxH,SAAS,EAAO1J,QAASqJ,EAAGD,KAAKoC,MAAMxL,UArBN,yBAAAuF,EAAAc,SAAAhB,EAAA1J,SAAV,gBAAAyV,GAAA,OAAAZ,EAAAgB,MAAA7V,KAAA2S,YAAA,GiD6LemkG,CAAwBrpG,OAG/D6C,CAGbpO,qBAlBa,SAACC,GAAD,MAAY,CAC1BhB,UAAWgB,EAAMhB,UACjBywB,aAAc,CAAEnpB,MAAO,WAgBtBvG,CAAmBs0G,KCnNNS,8MAjFd3tG,kBAAoB,eAEpB4tG,eAAiB,WAChB,IAAI5rG,EAAiB/E,MAASC,SAC9BL,aAAa8E,QAAQM,KAAgCD,4EAIrD,OACCiV,EAAAhgB,EAAAC,cAAC22G,EAAA,EAAD,CAAU/kB,MAAOA,IAChB7xE,EAAAhgB,EAAAC,cAAC42G,EAAA,EAAD,KACC72F,EAAAhgB,EAAAC,cAAC+f,EAAAhgB,EAAM82G,SAAP,KACC92F,EAAAhgB,EAAAC,cAAC82G,EAAA/2G,EAAD,MACAggB,EAAAhgB,EAAAC,cAACsxB,EAAA,iBAAD,CAAkB3vB,MAAOA,GACxBoe,EAAAhgB,EAAAC,cAAC+2G,EAAD,MACAh3F,EAAAhgB,EAAAC,cAAA,OAAK4G,QAASpH,KAAKk3G,gBAClB32F,EAAAhgB,EAAAC,cAACg3G,EAAA,EAAD,KACCj3F,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAO6kB,OAAK,EAAC1kB,KAAK,IAAIprF,UAAW06F,KACjC9hF,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAO6kB,OAAK,EAAC1kB,KAAK,UAAUprF,UAAWg7E,KACvCpiE,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAOG,KAAK,mBAAmBprF,UAAWm9E,KAG1CvkE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,kBAAkBprF,UAAWw9E,KAClD5kE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,aAAaprF,UAAWywB,KAG7C7X,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAOG,KAAK,eAAeprF,UAAWgwG,KAEtCp3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,mCAAmCprF,UAAWojD,KACnExqC,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,eAAeprF,UAAWq8E,KAC/CzjE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,wBAAwBprF,UAAW04D,KACxD9/C,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,gCAAgCprF,UAAW6zF,KAChEj7E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,2BAA2BprF,UAAWo0F,KAC3Dx7E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,8BAA8BprF,UAAW06E,KAC9D9hE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,0BAA0BprF,UAAWqnE,KAC1DzuD,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,0BAA0BprF,UAAWq1E,KAC1Dz8D,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,4BAA4BprF,UAAWuzE,KAC5D36D,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,wBAAwBprF,UAAWiwG,KACxDr3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,4BAA4BprF,UAAWkwG,KAC5Dt3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,wBAAwBprF,UAAWu6E,KACxD3hE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,yBAAyBprF,UAAWs0F,KACzD17E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,SAASprF,UAAWqlE,KACzCzsD,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,mBAAmBprF,UAAWiF,OACnD2T,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,kCAAkCprF,UAAW0rF,KAClE9yE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,qCAAqCprF,UAAWstF,KACrE10E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,sCAAsCprF,UAAW0wF,KACtE93E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,gCAAgCprF,UAAWiyF,KAChEr5E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,iCAAiCprF,UAAWqyF,KACjEz5E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,yBAAyBprF,UAAWmwG,KACzDv3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,uBAAuBprF,UAAW+hG,KACvDnpF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,2BAA2BprF,UAAWowG,KAC3Dx3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,mCAAmCprF,UAAWgjG,KACnEpqF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,kBAAkBprF,UAAW26E,KAGlD/hE,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,yBAAyBprF,UAAW25F,KAEzD/gF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,QAAQprF,UAAWy6F,KAExC7hF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,oBAAoBprF,UAAW63F,KACpDj/E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,gBAAgBprF,UAAW4lG,KAChDhtF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,2BAA2BprF,UAAWqwG,KAC3Dz3F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,UAAUprF,UAAWs1F,KAC1C18E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,qCAAqCprF,UAAW29F,KACrE/kF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,sBAAsBprF,UAAW6uG,KACtDj2F,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,iCAAiCprF,UAAW6gG,KACjEjoF,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAOG,KAAK,UAAUprF,UAAW0zF,KACjC96E,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,iBAAiBprF,UAAWsnG,KACjD1uF,EAAAhgB,EAAAC,cAACk3G,GAAD,CAAgB3kB,KAAK,cAAcprF,UAAWwtG,KAC9C50F,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAOG,KAAK,wBAAwBprF,UAAWmuG,KAC/Cv1F,EAAAhgB,EAAAC,cAACoyF,EAAA,EAAD,CAAOjrF,UAAWo8E,kBAvERz/E,aC7CCoD,QACW,cAA7B3C,OAAOD,SAASmzG,UAEe,UAA7BlzG,OAAOD,SAASmzG,UAEhBlzG,OAAOD,SAASmzG,SAAS59E,MACvB,mECXN69E,IAASh1F,OAAO3C,EAAAhgB,EAAAC,cAAC23G,GAAD,MAAUrpG,SAASspG,eAAe,SD0H5C,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMlhD,KAAK,SAAAmhD,GACjCA,EAAaC,gDEnInB,IAAAC,EAAA56G,EAAA,GAAA66G,EAAA76G,EAAAkgC,EAAA06E,GAAAE,EAAA96G,EAAA,KAAA+6G,EAAA/6G,EAAAkgC,EAAA46E,GAoBej1B,IAhBF,SAAA1jF,GAAS,IACJ64G,EAAa74G,EAApBwI,MACDlH,EAAQ,CAACkH,MAAOqwG,GAAQ,QAI9B,OAL2B74G,EAAViH,SAGb3F,EAAMygB,OAAS,aAGf22F,EAAAp4G,EAAAC,cAAA,OAAKuiB,IAAKg2F,IAAM91F,IAAI,OAAO1hB,MAAOA","file":"static/js/main.18021675.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/CTP_Logo_Final_Black.b552bea5.png\";","export const SYSTEM_ADMIN_PERMISSION = \"System.Administration\";\r\nexport const INDIVIDUAL_ISSUER_PERMISSION = \"Individual.Issuer\";\r\nexport const INDIVIDUAL_EDITOR_PERMISSION = \"Individual.Editor\";\r\n// export const INDIVIDUAL_CREATOR_PERMISSION = \"Individual.Creator\";\r\nexport const GROUP_ISSUER_PERMISSION = \"Group.Issuer\";\r\nexport const GROUP_ISSUER_READ_ONLY_PERMISSION = \"Group.IssuerReadOnly\";\r\nexport const GROUP_CREATOR_PERMISSION = \"Group.Creator\";\r\nexport const GROUP_CREATOR_WITH_READ_ALL_PERMISSION = \"Group.CreatorWithReadAll\";\r\nexport const GROUP_APPROVER_PERMISSION = \"Group.Approver\";\r\nexport const GROUP_APPROVER_READ_ONLY_PERMISSION = \"Group.ApproverReadOnly\";\r\nexport const USER_ADMIN_CAMPAIGN_READ_PERMISSION = \"User_Admin.CampaignRead\";\r\nexport const USER_ADMIN_CAMPAIGN_CREATE_PERMISSION = \"User_Admin.CampaignCreate\";\r\nexport const USER_ADMIN_CAMPAIGN_EDIT_PERMISSION = \"User_Admin.CampaignEdit\";\r\nexport const USER_ADMIN_ACCOUNT_READ_PERMISSION = \"User_Admin.AccountRead\";\r\nexport const USER_ADMIN_ACCOUNT_CREATE_PERMISSION = \"User_Admin.AccountCreate\";\r\nexport const USER_ADMIN_ACCOUNT_EDIT_PERMISSION = \"User_Admin.AccountEdit\";\r\nexport const USER_ADMIN_ROLE_READ_PERMISSION = \"User_Admin.RoleRead\";\r\nexport const USER_ADMIN_ROLE_CREATE_PERMISSION = \"User_Admin.RoleCreate\";\r\nexport const USER_ADMIN_ROLE_EDIT_PERMISSION = \"User_Admin.RoleEdit\";\r\nexport const USER_ADMIN_BANNER_READ_PERMISSION = \"User_Admin.BannerRead\";\r\nexport const USER_ADMIN_BANNER_CREATE_PERMISSION = \"User_Admin.BannerCreate\";\r\nexport const USER_ADMIN_BANNER_EDIT_PERMISSION = \"User_Admin.BannerEdit\";\r\nexport const SEARCH_PASSENGER_PERMISSION = \"Search.Passenger\";\r\nexport const SEARCH_GROUP_PERMISSION = \"Search.Group\";\r\nexport const GROUP_VIEW_PERMISSION = \"Group.View\";\r\nexport const VOUCHER_TRANSFER_EV = \"VoucherManagement.TransferEV\";\r\nexport const APPEAL_EDITOR = \"Appeal.Editor\";\r\nexport const APPEAL_APPROVER = \"Appeal.Approver\";\r\nexport const APPEAL_SUPER_APPROVER = \"Appeal.SuperApprover\";\r\n","export const checkValidStatusCode = (errorCode) => {\r\n if (errorCode === 500 || errorCode === 400 || errorCode === 401 || errorCode === 403 || errorCode === 503 || errorCode === 504) {\r\n return false;\r\n } else{\r\n return true;\r\n\r\n }\r\n}","import React, {PureComponent} from 'react'\r\nimport classNames from 'classnames'\r\nimport {withStyles, Grid, Typography, Toolbar, Paper} from '@material-ui/core'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass StyledSection extends PureComponent {\r\n\r\n render() {\r\n const {classes, isLoading, GroupSubmitted, paperClass} = this.props\r\n\r\n return (\r\n
\r\n
\r\n {this.props.title}\r\n
\r\n \r\n {this.props.toolbarButtons &&\r\n \r\n \r\n {(GroupSubmitted !== undefined && GroupSubmitted) && Group Collected}\r\n {(GroupSubmitted !== undefined && GroupSubmitted) && }\r\n {this.props.toolbarButtons().map((b, i) => {b})}\r\n \r\n }\r\n\r\n
\r\n {this.props.children}\r\n
\r\n\r\n {/* LoadingContainer will show when isLoading is true */}\r\n {(isLoading !== undefined && isLoading) && }\r\n
\r\n
\r\n\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container, marginBottom: '1rem'},\r\n header: {padding: '.5rem 1rem'},\r\n paper: {position: 'relative', minHeight: '5rem'},\r\n toolbar: {paddingTop: '1rem'}\r\n})\r\n\r\nStyledSection.propTypes = {\r\n title: PropTypes.string,\r\n isLoading: PropTypes.bool,\r\n GroupSubmitted: PropTypes.bool,\r\n toolbarButtons: PropTypes.func\r\n}\r\n\r\nexport default withStyles(styles)(StyledSection)\r\n","export const baseURL = process.env.REACT_APP_BASE_URL\r\nexport const signalRURL = process.env.REACT_APP_SIGNAL_R_URL\r\nexport const signatureBucket = process.env.REACT_APP_SIGNATURE_BUCKET\r\nexport const attachmentBucket = process.env.REACT_APP_ATTACHMENT_BUCKET;\r\n\r\nconst developmentSettings = {\r\n environment: \"development\",\r\n ocidLink:\"https://logindev.cag.wwprojects.com/\",\r\n ocidClientId: \"Iu5FSmVXhwJ1PwUQOGfPns3Se6q2gpS1M2y5TiWc\",\r\n baseURL: \"https://localhost:44395/api\",\r\n voucher_currency: \"$\",\r\n voucher_sources: [\r\n {\r\n \"membership_type\": \"DEFAULT\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"DEFAULT\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CITY_BONUS\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"0\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CR\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CTP\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n }\r\n ],\r\n reCaptchaSiteKey: '6LfWArcqAAAAAEDPbRgOgrWu46c3ca6bav2Qqaxe'\r\n}\r\n\r\nconst stagingSettings = {\r\n environment: \"staging\",\r\n ocidLink:\"https://logindev.cag.wwprojects.com/\",\r\n ocidClientId: \"Iu5FSmVXhwJ1PwUQOGfPns3Se6q2gpS1M2y5TiWc\",\r\n baseURL: \"https://ctpuat.changiairport.com/api/api\",\r\n voucher_currency: \"$\",\r\n voucher_sources: [\r\n {\r\n \"membership_type\": \"DEFAULT\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"DEFAULT\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CITY_BONUS\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"0\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CR\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CTP\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n }\r\n ],\r\n reCaptchaSiteKey: '6LfWArcqAAAAAEDPbRgOgrWu46c3ca6bav2Qqaxe'\r\n}\r\n\r\nconst productionSettings = {\r\n environment: \"production\",\r\n ocidLink:\"https://login.changiairport.com\",\r\n ocidClientId: \"sbjm4c9aEyg3Spp8B02UYS12ExedAatJNMwAOSsV\",\r\n baseURL: \"https://ctp.changiairport.com/api/api\",\r\n voucher_currency: \"$\",\r\n voucher_sources: [\r\n {\r\n \"membership_type\": \"DEFAULT\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"DEFAULT\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CITY_BONUS\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"0\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"10\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CR\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"membership_type\": \"CTP\",\r\n \"vouchers\": [\r\n {\r\n \"voucher_type\": \"GEN\",\r\n \"voucher_value\": \"10\"\r\n },\r\n {\r\n \"voucher_type\": \"LPC\",\r\n \"voucher_value\": \"0\"\r\n }\r\n ]\r\n }\r\n ],\r\n reCaptchaSiteKey: '6LfWArcqAAAAAEDPbRgOgrWu46c3ca6bav2Qqaxe'\r\n}\r\n\r\n\r\nexport const getSettings = () => {\r\n let environment = process.env.REACT_APP_ENV\r\n let settings;\r\n if(environment === \"Production\"){\r\n settings = productionSettings\r\n } else if (environment ===\"Staging\"){\r\n settings = stagingSettings\r\n } else if (environment === \"Development\"){\r\n settings = developmentSettings\r\n }\r\n return settings\r\n};","export const TITLE_PREFIX = 'Changi Transit Privileges | '\r\n","import React, {Component} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Snackbar} from '@material-ui/core'\r\nimport MySnackbarContent from './MySnackbarContent'\r\n\r\nclass StyledSnackbar extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nStyledSnackbar.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n message: PropTypes.string,\r\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info'])\r\n}\r\n\r\nexport default StyledSnackbar","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {NavLink} from 'react-router-dom'\r\nimport {withStyles, AppBar, Toolbar, Typography, Button, Menu, MenuItem} from '@material-ui/core'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {\r\n USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_EDIT_PERMISSION, USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION,\r\n USER_ADMIN_ACCOUNT_EDIT_PERMISSION, USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION,\r\n USER_ADMIN_ROLE_EDIT_PERMISSION, GROUP_ISSUER_PERMISSION, GROUP_CREATOR_PERMISSION,\r\n GROUP_APPROVER_PERMISSION, USER_ADMIN_BANNER_READ_PERMISSION,\r\n USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION, INDIVIDUAL_ISSUER_PERMISSION,\r\n GROUP_VIEW_PERMISSION, SEARCH_GROUP_PERMISSION, SEARCH_PASSENGER_PERMISSION, VOUCHER_TRANSFER_EV, APPEAL_APPROVER, APPEAL_SUPER_APPROVER\r\n} from '../constants/permissions'\r\nimport Logo from '../components/Logo'\r\nimport { LAST_LOGIN_DATETIME, FAILED_ACCESS_COUNT, SHOULD_CHANGE_PASSWORD } from '../constants/localStorageType'\r\nimport moment from 'moment'\r\nimport { decrypt } from '../helpers/utilities'\r\nclass Header extends React.Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isGroupEdit: false,\r\n isGroupCreate: false,\r\n userMenu: null\r\n }\r\n }\r\n\r\n onLinkClick = (location) => {\r\n window.location = '/' + location\r\n }\r\n\r\n onUsername = e => {\r\n this.setState({userMenu: e.currentTarget})\r\n }\r\n\r\n onCloseUserMenu = () => {\r\n this.setState({userMenu: null})\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n const {userMenu} = this.state\r\n\r\n const logout = props => \r\n\r\n const hasAdminPermissions = hasPermissions([USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_EDIT_PERMISSION, USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION,\r\n USER_ADMIN_ACCOUNT_EDIT_PERMISSION, USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION,\r\n USER_ADMIN_ROLE_EDIT_PERMISSION, USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION], 'or')\r\n\r\n const groupPermissions = hasPermissions([GROUP_ISSUER_PERMISSION, GROUP_CREATOR_PERMISSION, GROUP_APPROVER_PERMISSION, GROUP_VIEW_PERMISSION], 'or')\r\n\r\n const hasIndividualPermission = hasPermissions([INDIVIDUAL_ISSUER_PERMISSION])\r\n\r\n const hasSearchPermissions = hasPermissions([SEARCH_PASSENGER_PERMISSION, SEARCH_GROUP_PERMISSION], 'or')\r\n\r\n const hasCardPermissions = hasPermissions([VOUCHER_TRANSFER_EV])\r\n\r\n const hasAppealPermissions = hasPermissions([APPEAL_APPROVER,APPEAL_SUPER_APPROVER], 'or')\r\n const lastLoginDateTime = localStorage.getItem(LAST_LOGIN_DATETIME);\r\n var lastLoginDt = \"-\";\r\n if(lastLoginDateTime != 'null'){\r\n lastLoginDt = moment(lastLoginDateTime).format(\"DD MMM YYYY HH:mm A\");\r\n }\r\n let shouldChangePassword\r\n\t\t\tlet shouldChangePasswordEncrypted = localStorage.getItem(SHOULD_CHANGE_PASSWORD)\r\n\t\t\tif (shouldChangePasswordEncrypted){\r\n\t\t\t\tlet shouldChgPwdObj = JSON.parse(decrypt(shouldChangePasswordEncrypted))\r\n\t\t\t\tshouldChangePassword = shouldChgPwdObj.shouldChange\r\n\t\t\t} \r\n \r\n return (\r\n \r\n \r\n \r\n {!shouldChangePassword && }\r\n \r\n {hasIndividualPermission && !shouldChangePassword &&\r\n }\r\n {groupPermissions && !shouldChangePassword &&\r\n }\r\n {hasAdminPermissions && !shouldChangePassword &&\r\n }\r\n {hasSearchPermissions && !shouldChangePassword &&\r\n }\r\n {hasCardPermissions && !shouldChangePassword &&\r\n \r\n }\r\n {hasAppealPermissions && !shouldChangePassword &&\r\n \r\n }\r\n\r\n
\r\n
\r\n

Last Login: {lastLoginDt}

\r\n \r\n

No. of unsuccessful attempts: {localStorage.getItem(FAILED_ACCESS_COUNT)}

\r\n
\r\n \r\n this.onLinkClick('change-password')}>Change password\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n lastItem: {marginLeft: 'auto', display: 'flex', alignItems: 'center'},\r\n logout: {marginLeft: '.5rem'},\r\n username: {color: 'white'},\r\n appBar: {zIndex: theme.zIndex.drawer + 1},\r\n toolbar: {width: '100%'},\r\n active: {backgroundColor: theme.palette.action.selected},\r\n clearBtn: {boxShadow: 'none'},\r\n smlabel:{margin: '0px 15px', fontSize:'10px'}\r\n})\r\n\r\nHeader.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(Header)","import React, { Component } from 'react'\r\nimport { withStyles, Grid } from '@material-ui/core'\r\nimport moment from 'moment'\r\nimport querystring from 'querystring'\r\n\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { LOCAL_STORAGE_LAST_ACTION_TIME, LOCAL_STORAGE_BROWSER_CLOSE_TIME, LOCAL_STORAGE_LOGIN_TIME } from '../constants/localStorageType'\r\n\r\nclass GlobalTimeChecker extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t}\r\n\t\tthis.globalTimeoutChecker = null\r\n\t\tthis.logoutBrowserCloseTimer = null\r\n\t\tthis.tokenExpiryPromptTimer = null\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tthis._logoutIfTimeout()\r\n\t\tthis._logoutIfBrowserCloseForTooLong()\r\n\t\tthis.globalTimeoutChecker = setInterval(() => {\r\n\t\t\tthis._promptIfNearTimeout()\r\n\t\t\tthis._logoutIfTimeout()\r\n\t\t}, 60000)\r\n\r\n\t\tthis.logoutBrowserCloseTimer = setInterval(() => {\r\n\t\t\tthis._logoutIfBrowserCloseForTooLong()\r\n\t\t}, 3000)\r\n\r\n\t\tthis._saveLoginTime()\r\n\t\tthis.tokenExpiryPromptTimer = setInterval(() => {\r\n\t\t\tthis._promptIfNearTokenExpiry()\r\n\t\t}, 60000)\r\n\r\n\t\twindow.addEventListener('beforeunload', this._saveBrowserCloseTimeToLocalStorage)\r\n\t}\r\n\r\n\tcomponentWillUnmount = async () => {\r\n\t\tclearInterval(this.globalTimeoutChecker)\r\n\t\tclearInterval(this.logoutBrowserCloseTimer)\r\n\t\tclearInterval(this.tokenExpiryPromptTimer)\r\n\r\n\t\twindow.removeEventListener('beforeunload', this._saveBrowserCloseTimeToLocalStorage)\r\n\t}\r\n\r\n\t_saveBrowserCloseTimeToLocalStorage = () => {\r\n\t\tlet now = moment().format()\r\n\t\tlocalStorage.setItem(LOCAL_STORAGE_BROWSER_CLOSE_TIME, now)\r\n\t}\r\n\r\n\t_saveLoginTime = () => {\r\n\t\tlet loginTime = localStorage.getItem(LOCAL_STORAGE_LOGIN_TIME)\r\n\t\tif (loginTime) return\r\n\r\n\t\tlet now = moment().format()\r\n\t\tlocalStorage.setItem(LOCAL_STORAGE_LOGIN_TIME, now)\r\n\t\treturn now\r\n\t}\r\n\r\n\t_promptIfNearTimeout = () => {\r\n\t\tlet fourteenMinutesAgo = moment().subtract(14, 'minutes')\r\n\t\tlet lastActionTime = localStorage.getItem(LOCAL_STORAGE_LAST_ACTION_TIME)\r\n\t\tif (moment(lastActionTime).isBefore(fourteenMinutesAgo)) {\r\n\t\t\tthis._showTimeoutPrompt()\r\n\t\t}\r\n\t}\r\n\r\n\t_promptIfNearTokenExpiry = () => {\r\n\t\tlet threeFiftyMinuteAgo = moment().subtract(350, 'minutes')\r\n\t\tlet loginTime = localStorage.getItem(LOCAL_STORAGE_LOGIN_TIME)\r\n\t\tif (!loginTime) loginTime = this._saveLoginTime()\r\n\t\tif (moment(loginTime).isBefore(threeFiftyMinuteAgo)) {\r\n\t\t\tthis._showTokenExpiryPrompt()\r\n\t\t}\r\n\t}\r\n\r\n\t_logoutIfTimeout = () => {\r\n\t\tlet fifteenMinutesAgo = moment().subtract(15, 'minutes')\r\n\t\tlet lastActionTime = localStorage.getItem(LOCAL_STORAGE_LAST_ACTION_TIME)\r\n\r\n\t\tif (moment(lastActionTime).isBefore(fifteenMinutesAgo)) {\r\n\t\t\twindow.location = '/logout'\r\n\t\t}\r\n\t}\r\n\r\n\t_logoutIfBrowserCloseForTooLong = () => {\r\n\t\tconst code = querystring.parse(window.location.search).id\r\n\t\tlet browserCloseTime = localStorage.getItem(LOCAL_STORAGE_BROWSER_CLOSE_TIME)\r\n\r\n\t\tif (!browserCloseTime) return\r\n\r\n\t\tlet browserCloseThreshold = moment().subtract(10, 'seconds')\r\n\t\tif (moment(browserCloseTime).isBefore(browserCloseThreshold)) {\r\n\t\t\tlocalStorage.setItem(LOCAL_STORAGE_BROWSER_CLOSE_TIME, '')\r\n\t\t\tlocalStorage.setItem(code, '')\r\n\t\t\twindow.location = '/logout'\r\n\t\t} else {\r\n\t\t\tlocalStorage.setItem(LOCAL_STORAGE_BROWSER_CLOSE_TIME, '')\r\n\t\t\tlocalStorage.setItem(code, '')\r\n\t\t}\r\n\t}\r\n\r\n\t_showTimeoutPrompt = () => {\r\n\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Your session will expire in one minute. \\n To refresh, please click somewhere' })\r\n\t}\r\n\r\n\t_showTokenExpiryPrompt = () => {\r\n\t\tthis.setState({\r\n\t\t\tshowSnackbar: true,\r\n\t\t\tsnackbarVariant: 'error',\r\n\t\t\tsnackbarMessage: 'Your session will expire in ten minutes and you are required to re-login to continue thereafter.',\r\n\t\t})\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\tdialog: { width: '20rem' },\r\n})\r\n\r\nexport default withStyles(styles)(GlobalTimeChecker)\r\n","module.exports = __webpack_public_path__ + \"static/media/pending-collection-ico.82ad8d03.png\";","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Header from '../containers/Header.js'\r\nimport {withStyles, Grid, Button, TextField} from '@material-ui/core'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport {changePassword} from '../ducks/authDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { SHOULD_CHANGE_PASSWORD } from '../constants/localStorageType'\r\nimport { decrypt } from '../helpers/utilities'\r\nclass ChangePasswordScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n formSubmitted: false,\r\n currentPassword: '',\r\n currentPasswordError: '',\r\n newPassword: '',\r\n newPasswordError: '',\r\n confirmNewPassword: '',\r\n confirmNewPasswordError: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Change Password`\r\n\r\n const {authDuck: {shouldChangePassword}} = this.props\r\n \r\n if (shouldChangePassword) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Please change your password'})\r\n }\r\n\r\n onFieldChange = (k, e) => {\r\n this.setState({[k]: e.target.value})\r\n }\r\n\r\n _onSubmit = async () => {\r\n const {currentPassword, newPassword, confirmNewPassword} = this.state\r\n if (this._validate(currentPassword, newPassword, confirmNewPassword)) {\r\n const data = {userName: localStorage.getItem('username'), currentPassword, newPassword}\r\n const rs = await this.props.changePassword(data)\r\n if(rs.success)\r\n {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Password updated'})\r\n localStorage.removeItem(SHOULD_CHANGE_PASSWORD)\r\n new Promise(()=>{\r\n setTimeout(() => {\r\n this.props.history.push('/dashboard')\r\n }, 3000);\r\n }) \r\n }\r\n else\r\n {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n }\r\n\r\n _validate = (currentPassword, newPassword, confirmNewPassword) => {\r\n const required = ['currentPassword', 'newPassword', 'confirmNewPassword']\r\n let rs = true\r\n required.forEach(k => {\r\n if (eval(k) === '') {\r\n this.setState({[k + 'Error']: 'This field is required'})\r\n rs = false\r\n } else {\r\n this.setState({[k + 'Error']: ''})\r\n }\r\n })\r\n if (!rs) return rs\r\n\r\n if (newPassword.length < 10) {\r\n this.setState({newPasswordError: 'Password should be at least 10 characters'})\r\n rs = false\r\n return rs\r\n }\r\n if (!/[0-9]/g.test(newPassword)) {\r\n this.setState({newPasswordError: 'Password should have at least one numeric number'})\r\n rs = false\r\n return rs\r\n }\r\n if (!/[a-z]/g.test(newPassword)) {\r\n this.setState({newPasswordError: 'Password should have at least one lower case character (a - z)'})\r\n rs = false\r\n return rs\r\n }\r\n if (!/[A-Z]/g.test(newPassword)) {\r\n this.setState({newPasswordError: 'Password should have at least one upper case character (A - Z)'})\r\n rs = false\r\n return rs\r\n }\r\n if (!/[^a-zA-z\\s0-9]/g.test(newPassword)) {\r\n this.setState({newPasswordError: 'Password should have at least one special character'})\r\n rs = false\r\n return rs\r\n } else {\r\n this.setState({newPasswordError: ''})\r\n }\r\n\r\n if (newPassword !== confirmNewPassword) {\r\n this.setState({confirmNewPasswordError: 'Password doesn\\'t match'})\r\n rs = false\r\n return rs\r\n } else {\r\n this.setState({confirmNewPasswordError: ''})\r\n }\r\n\r\n return rs\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n render() {\r\n const {classes, authDuck: {changePasswordIsLoading}} = this.props\r\n const {currentPassword, currentPasswordError, newPassword, newPasswordError, confirmNewPassword, confirmNewPasswordError} = this.state\r\n let shouldChangePasswordEncrypted = localStorage.getItem(SHOULD_CHANGE_PASSWORD)\r\n let sectionTitle = 'Change password'\r\n if (shouldChangePasswordEncrypted){\r\n let shouldChgPwdObj = JSON.parse(decrypt(shouldChangePasswordEncrypted))\r\n if(shouldChgPwdObj.isFirstTimeLogin){\r\n sectionTitle = 'Change password - Initial login'\r\n }\r\n } \r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n

Password Policy
\r\n (e.g. min 10 char, 1 special char, 1 upper case, 1 lower case)\r\n

\r\n
\r\n \r\n \r\n \r\n Current password\r\n \r\n \r\n this.onFieldChange('currentPassword', e)}\r\n fullWidth={true}/>\r\n \r\n \r\n\r\n \r\n \r\n New password\r\n \r\n \r\n this.onFieldChange('newPassword', e)}\r\n fullWidth={true}/>\r\n \r\n \r\n\r\n \r\n \r\n Confirm new password\r\n \r\n \r\n this.onFieldChange('confirmNewPassword', e)}\r\n label={'Confirm New Password'} fullWidth={true}/>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {authDuck} = state\r\n\r\n return {authDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n changePassword: data => dispatch(changePassword(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(ChangePasswordScreen))","module.exports = __webpack_public_path__ + \"static/media/background-grey.7cac85e1.svg\";","module.exports = __webpack_public_path__ + \"static/media/ctp-print-background-new1.88ce4eab.png\";","module.exports = __webpack_public_path__ + \"static/media/CAG-CTP-TransitProgramme-Desktop.b7579ade.jpg\";","module.exports = __webpack_public_path__ + \"static/media/crCardPrint.cfc16a0d.png\";","module.exports = __webpack_public_path__ + \"static/media/thumb1.5c2a2aac.png\";","module.exports = __webpack_public_path__ + \"static/media/thumb2.bb964c85.jpg\";","module.exports = __webpack_public_path__ + \"static/media/thumb3.42051f6e.png\";","module.exports = __webpack_public_path__ + \"static/media/thumb4.6d1849dc.jpg\";","import moment from 'moment'\r\nimport {\r\n\tGROUP_APPROVER_PERMISSION,\r\n\tGROUP_APPROVER_READ_ONLY_PERMISSION,\r\n\tGROUP_CREATOR_PERMISSION,\r\n\tGROUP_CREATOR_WITH_READ_ALL_PERMISSION,\r\n\tGROUP_ISSUER_PERMISSION,\r\n\tGROUP_ISSUER_READ_ONLY_PERMISSION,\r\n\tGROUP_VIEW_PERMISSION,\r\n\tVOUCHER_TRANSFER_EV\r\n} from '../constants/permissions'\r\nimport axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport aesjs from 'aes-js'\r\nimport { PERMISSIONS } from '../constants/localStorageType'\r\nimport { checkValidStatusCode } from './httpHelper'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getCurrentAuthHeader = () => {\r\n\treturn { headers: { Authorization: 'Bearer ' + localStorage.getItem('accessToken') } }\r\n}\r\n\r\nexport const trueFalseToYesNo = v => {\r\n\tif (v === true) return 'yes'\r\n\tif (v === false) return 'no'\r\n\treturn null\r\n}\r\n\r\n/**\r\n * Should return string of 1 and 0 where 1 correspond to Yes, and 0 to No.\r\n * @param criterias [array]\r\n */\r\nexport const generateSqResponseFromCriterias = criterias => {\r\n\tlet rs = ''\r\n\r\n\tconst keys = [\r\n\t\t'isFlightConfirmed',\r\n\t\t'haveTwoTouchPoint',\r\n\t\t'isFlightEligible',\r\n\t\t'isFourSector',\r\n\t\t'isPaxSeated',\r\n\t\t'isSameOrgDest',\r\n\t\t'isThreeSector',\r\n\t\t'isUsedOrFlownFlight',\r\n\t\t'isValidOrigin',\r\n\t\t'isValidTransit',\r\n\t\t'isWithinCampaign'\r\n\t]\r\n\r\n\tkeys.forEach(k => {\r\n\t\trs = criterias[k] === 'Yes' ? rs + '1' : rs + '0'\r\n\t})\r\n\r\n\treturn rs.trim()\r\n}\r\n\r\n/**\r\n * Convers base64 to binary\r\n * https://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata/5100158\r\n *\r\n * @param dataURI\r\n * @returns {Blob}\r\n */\r\nexport const dataURItoBlob = dataURI => {\r\n\t// convert base64/URLEncoded data component to raw binary data held in a string\r\n\tlet byteString\r\n\tif (dataURI.split(',')[0].indexOf('base64') >= 0) byteString = atob(dataURI.split(',')[1])\r\n\telse byteString = unescape(dataURI.split(',')[1])\r\n\r\n\t// separate out the mime component\r\n\tvar mimeString = dataURI\r\n\t\t.split(',')[0]\r\n\t\t.split(':')[1]\r\n\t\t.split(';')[0]\r\n\r\n\t// write the bytes of the string to a typed array\r\n\tvar ia = new Uint8Array(byteString.length)\r\n\tfor (var i = 0; i < byteString.length; i++) {\r\n\t\tia[i] = byteString.charCodeAt(i)\r\n\t}\r\n\r\n\treturn new Blob([ia], { type: mimeString })\r\n}\r\n\r\nexport const toBrowserFriendlyDate = datestring => {\r\n\treturn datestring ? moment(datestring).format('YYYY-MM-DD') : null\r\n}\r\n\r\nexport const toHumanFriendlyDate = datestring => {\r\n\treturn datestring ? moment(datestring).format('DD/MM/YYYY') : null\r\n}\r\nexport const toHumanFriendlyDateTime = datestring => {\r\n\treturn datestring ? moment(datestring).format('DD/MM/YYYY HH:mm') : null\r\n}\r\n\r\nexport const sqApiResponseStringToObject = string => {\r\n\t// order matters in components/SqApiCriteriasDialog.js and middleware\r\n\tconst criteriasKeys = [\r\n\t\t'isFlightEligible',\r\n\t\t'haveTwoTouchPoint',\r\n\t\t'isWithinCampaign',\r\n\t\t'isThreeSector',\r\n\t\t'isFourSector',\r\n\t\t'isSameOrgDest',\r\n\t\t'isValidTransit',\r\n\t\t'isPaxSeated',\r\n\t\t'isValidOrigin',\r\n\t\t'isFlightConfirmed',\r\n\t\t'isUsedOrFlownFlight'\r\n\t]\r\n\r\n\tconst rs = {}\r\n\tfor (let i = 0; i < string.length; i++) {\r\n\t\trs[criteriasKeys[i]] = string[i] === '1' ? 'Yes' : 'No'\r\n\t}\r\n\treturn rs\r\n}\r\n\r\nexport const sqApiObjectToResponseString = obj => {\r\n\t// order matters in components/SqApiCriteriasDialog.js and middleware\r\n\tconst criteriasKeys = [\r\n\t\t'isFlightEligible',\r\n\t\t'haveTwoTouchPoint',\r\n\t\t'isWithinCampaign',\r\n\t\t'isThreeSector',\r\n\t\t'isFourSector',\r\n\t\t'isSameOrgDest',\r\n\t\t'isValidTransit',\r\n\t\t'isPaxSeated',\r\n\t\t'isValidOrigin',\r\n\t\t'isFlightConfirmed',\r\n\t\t'isUsedOrFlownFlight'\r\n\t]\r\n\tlet rs = ''\r\n\tcriteriasKeys.forEach(k => {\r\n\t\tif (obj[k] === 'Yes') rs += '1'\r\n\t\tif (obj[k] === 'No') rs += '0'\r\n\t})\r\n\treturn rs\r\n}\r\n\r\nexport const convertCtpEligibilityStatus = ctpEligibility => {\r\n\tif (ctpEligibility === 'No') return 'N'\r\n\tif (ctpEligibility === 'Yes') return 'Y'\r\n\tif (ctpEligibility === 'Manual') return 'M'\r\n}\r\n\r\nexport const getOriginFromFltNumber = (flightNo, flightData) => {\r\n\tconst rs = flightData.find(f => f.flightNo.toLowerCase() === flightNo.toLowerCase())\r\n\tif (rs) return rs.departureCityName\r\n}\r\n\r\nexport const getDestinationFromFltNumber = (flightNo, flightData) => {\r\n\tconst rs = flightData.find(f => f.flightNo === flightNo)\r\n\tif (rs) return rs.arrivalCityName\r\n}\r\n\r\n/**\r\n * Takes an array or a string to check if passed value exists in permissions in localStorage\r\n * `condition` determines whether all passed permissons exists ('and'),\r\n * or only one of it exists ('or') for result to be true.\r\n *\r\n * @param v\r\n * @param condition ['and' | 'or']\r\n * @returns {boolean}\r\n */\r\nexport const hasPermissions = (v, condition = 'and') => {\r\n\tif (typeof v === 'string') v = [v];\r\n\tconst permissionsStored = localStorage.getItem(PERMISSIONS);\r\n\tif(!permissionsStored) return false;\r\n\tconst decryptedPermissions = decrypt(permissionsStored);\r\n\r\n const permissions = JSON.parse(decryptedPermissions);\r\n\tif (!permissions) return false;\r\n\tif (condition === 'and') {\r\n\t\tlet rs = true\r\n\t\tfor (const p of v) {\r\n\t\t\tif (!permissions.includes(p)) rs = false\r\n\t\t}\r\n\t\treturn rs\r\n\t}\r\n\r\n\tif (condition === 'or') {\r\n\t\tlet rs = false\r\n\t\tfor (const p of v) {\r\n\t\t\tif (permissions.includes(p)) return true\r\n\t\t}\r\n\t\treturn rs\r\n\t}\r\n}\r\n\r\nexport const hasCreatorWithReadAll = () => hasPermissions([GROUP_CREATOR_WITH_READ_ALL_PERMISSION])\r\nexport const hasCreatorPermissions = () => hasPermissions([GROUP_CREATOR_PERMISSION]) || hasCreatorWithReadAll()\r\nexport const hasApproverPermissions = () => hasPermissions([GROUP_APPROVER_PERMISSION]) || hasPermissions([GROUP_APPROVER_READ_ONLY_PERMISSION])\r\nexport const hasIssuerPermissions = () => hasPermissions([GROUP_ISSUER_PERMISSION]) || hasPermissions([GROUP_ISSUER_READ_ONLY_PERMISSION])\r\nexport const hasGroupViewPermission = () => hasPermissions([GROUP_VIEW_PERMISSION])\r\nexport const hasVoucherTransferPermission = () => hasPermissions([VOUCHER_TRANSFER_EV])\r\n\r\nexport const maskContactNo = contactNo => {\r\n\tlet rs = ''\r\n\tfor (let i = 0; i < contactNo.length; i++) {\r\n\t\tif (i < 3) {\r\n\t\t\trs += contactNo[i]\r\n\t\t\tcontinue\r\n\t\t}\r\n\t\tif (i < contactNo.length - 4) {\r\n\t\t\trs += 'X'\r\n\t\t} else {\r\n\t\t\trs += contactNo[i]\r\n\t\t}\r\n\t}\r\n\treturn rs\r\n}\r\n\r\nexport const getCurrentCampaign = campaignPeriods => {\r\n\tlet now = moment()\r\n\tfor (let i = 0; i < campaignPeriods.length; i++) {\r\n\t\tif (now.isAfter(moment(campaignPeriods[i].startDate)) && now.isBefore(moment(campaignPeriods[i].endDate))) {\r\n\t\t\treturn campaignPeriods[i]\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const myaxios = async (type, url, data, header) => {\r\n\tif (type === 'get') {\r\n\t\tconst rs = await axios.get(baseURL + url, data).catch(e => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\t\tif (!rs.data) {\r\n\t\t\treturn { success: false, message: 'No data from server' }\r\n\t\t}\r\n\t\tif (rs.data.success) {\r\n\t\t\treturn { success: true, message: '', data: rs.data }\r\n\t\t} else {\r\n\t\t\treturn { success: false, message: rs.data.error.message }\r\n\t\t}\r\n\t}\r\n\tif (type === 'post') {\r\n\t\tconst rs = await axios.post(baseURL + url, data, header).catch(e => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\t\tif (!rs.data) {\r\n\t\t\treturn { success: false, message: 'No data from server' }\r\n\t\t}\r\n\t\tif (rs.data.success) {\r\n\t\t\treturn { success: true, message: '', data: rs.data }\r\n\t\t} else {\r\n\t\t\treturn { success: false, message: rs.data.error.message }\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const objHasData = obj => {\r\n\treturn Object.keys(obj).length > 0\r\n}\r\n\r\n// Takes a origObj, and newObj. Spread newObj recursively onto origObj\r\nexport const spreadObj = (origObj, newObj) => {\r\n\tconst newOrig = { ...origObj }\r\n\tfor (let k in newObj) {\r\n\t\tif (newObj.hasOwnProperty(k)) {\r\n\t\t\tif (typeof newObj[k] !== 'object') {\r\n\t\t\t\tnewOrig[k] = newObj[k]\r\n\t\t\t} else {\r\n\t\t\t\tif (Array.isArray(newObj[k])) {\r\n\t\t\t\t\tnewOrig[k] = [...newObj[k]]\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewOrig[k] = { ...spreadObj(origObj[k], newObj[k]) }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn newOrig\r\n}\r\n\r\n/**\r\n * Expects obj from auditLogDuck: entitiyChangePropertyList\r\n */\r\nexport const toHumanFriendlyMessage = obj => {\r\n\tswitch (obj.propertyName) {\r\n\t\tcase 'SubmittedBy':\r\n\t\t\tif (obj.originalValue === null && !!obj.newValue) {\r\n\t\t\t\treturn `${obj.userName} has uploaded group`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Submitted':\r\n\t\t\tif (obj.originalValue === 'false' && obj.newValue === 'true') {\r\n\t\t\t\treturn `${obj.entityType} (${obj.entityDisplayName}) - ${obj.userName} has submitted group for approval`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Approval':\r\n\t\t\tif (obj.originalValue === 'false' && obj.newValue === 'true') {\r\n\t\t\t\treturn `${obj.userName} has approved group`\r\n\t\t\t}\r\n\t\t\tif (obj.originalValue === 'true' && obj.newValue === 'false') {\r\n\t\t\t\treturn `${obj.userName} has unapproved group`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Rejected':\r\n\t\t\tif (obj.originalValue === 'false' && obj.newValue === 'true') {\r\n\t\t\t\treturn `${obj.userName} has rejected group`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Redemption':\r\n\t\t\tif (obj.originalValue === 'false' && obj.newValue === 'true') {\r\n\t\t\t\treturn `${obj.userName} has processed group redemption`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'IsDeleted':\r\n\t\t\tif (obj.originalValue === 'false' && obj.newValue === 'true') {\r\n\t\t\t\treturn `${obj.userName} has deleted group`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'RefNo':\r\n\t\t\tif (obj.originalValue === null && !!obj.newValue) {\r\n\t\t\t\treturn `${obj.userName} has started this record`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'CreatorId':\r\n\t\t\tif (obj.originalValue === null && !!obj.newValue) {\r\n\t\t\t\treturn `${obj.userName} has created this transaction`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'RedeemerId':\r\n\t\t\tif (obj.originalValue === null && !!obj.newValue) {\r\n\t\t\t\treturn `${obj.userName} has redeemed this transaction`\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tdefault:\r\n\t\t\tif (obj.propertyTypeFullName === 'System.DateTime') {\r\n\t\t\t\treturn `${obj.entityType} (${obj.entityDisplayName}) - ${obj.propertyName} change from ${obj.originalValue} to ${obj.newValue}`\r\n\t\t\t} else {\r\n\t\t\t\treturn `${obj.entityType} (${obj.entityDisplayName}) - ${obj.propertyName} change from ${obj.originalValue} to ${obj.newValue}`\r\n\t\t\t}\r\n\t}\r\n}\r\n\r\nexport const encrypt = string => {\r\n\tlet key_256 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]\r\n\tconst textBytes = aesjs.utils.utf8.toBytes(string)\r\n\tlet aesCtr = new aesjs.ModeOfOperation.ctr(key_256)\r\n\tconst encryptedBytes = aesCtr.encrypt(textBytes)\r\n\treturn aesjs.utils.hex.fromBytes(encryptedBytes)\r\n}\r\n\r\nexport const decrypt = enString => {\r\n\tlet key_256 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]\r\n\tconst enBytes = aesjs.utils.hex.toBytes(enString)\r\n\tlet aesCtr = new aesjs.ModeOfOperation.ctr(key_256)\r\n\tconst decryptedBytes = aesCtr.decrypt(enBytes)\r\n\treturn aesjs.utils.utf8.fromBytes(decryptedBytes)\r\n}\r\n\r\nexport const parseFullCardNoWithPrefix = cardNo => {\r\n\tif (cardNo && cardNo.length >= 24) {\r\n\t\tif (!cardNo.startsWith('0000')) return ''\r\n\t\treturn cardNo.substr(0, 19)\r\n\t}\r\n\r\n\treturn cardNo\r\n}\r\n\r\nexport const parseFullCardNo = cardNo => {\r\n\tif (cardNo && cardNo.length >= 24) {\r\n\t\tif (!cardNo.startsWith('0000')) return ''\r\n\t\treturn cardNo.substr(13, 6)\r\n\t}\r\n\r\n\treturn cardNo\r\n}\r\n","export const LOCAL_STORAGE_LAST_ACTION_TIME = \"lastActionTime\";\r\nexport const LOCAL_STORAGE_BROWSER_CLOSE_TIME = \"browserCloseTime\";\r\nexport const LOCAL_STORAGE_LOGIN_TIME = \"loginTime\";\r\nexport const USER_POS = \"userPos\";\r\nexport const USER_ID = \"userId\";\r\nexport const USER_NAME = \"username\";\r\nexport const PERMISSIONS = \"cmyk\";\r\nexport const SHOULD_CHANGE_PASSWORD = \"pood1\";\r\nexport const LAST_LOGIN_DATETIME = \"lastlogintime\";\r\nexport const FAILED_ACCESS_COUNT = \"failedaccesscounts\";","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader, encrypt } from '../helpers/utilities'\r\nimport { USER_ID, PERMISSIONS, USER_POS, SHOULD_CHANGE_PASSWORD, LAST_LOGIN_DATETIME, FAILED_ACCESS_COUNT } from '../constants/localStorageType'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst IS_LOGGINGIN = 'IS_LOGGINGIN'\r\nconst IS_LOGGEDIN = 'IS_LOGGEDIN'\r\nconst LOGIN_FAILED = 'LOGIN_FAILED'\r\nconst UPDATE_AUTH_DUCK = 'UPDATE_AUTH_DUCK'\r\nconst SHOULD_CHANGE_PASSWORD_SUCCESS = 'SHOULD_CHANGE_PASSWORD_SUCCESS'\r\nconst UPDATE_MULTIPLE_AUTH_PROPERTIES = 'UPDATE_MULTIPLE_AUTH_PROPERTIES'\r\n\r\nexport const login = (usernameOrEmailAddress, password) => async dispatch => {\r\n\tdispatch(isLoggingin())\r\n\r\n\tconst rs = await axios\r\n\t\t.post(baseURL + '/Account/Login', {\r\n\t\t\tusernameOrEmailAddress,\r\n\t\t\tpassword\r\n\t\t})\r\n\t\t.catch(e => dispatch(loginFailed(e)))\r\n\tif (rs.data.success) {\r\n\t\tlocalStorage.setItem('accessToken', rs.data.result.accessToken)\r\n\t\tlocalStorage.setItem('username', usernameOrEmailAddress)\r\n\r\n\t\tconst authHeader = { headers: { Authorization: 'Bearer ' + rs.data.result.accessToken } }\r\n\t\tconst rs2 = await axios.get(baseURL + '/Account/GetUserProfile', authHeader).catch(e => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\r\n\t\tif (rs2.data.success) {\r\n\t\t\tlocalStorage.setItem(USER_ID, rs.data.result.userId)\r\n\t\t\tlocalStorage.setItem(PERMISSIONS, encrypt(JSON.stringify(rs2.data.result.permissions)))\r\n\t\t\tlocalStorage.setItem(USER_POS, rs2.data.result.pos || '');\r\n\t\t\tlocalStorage.setItem(LAST_LOGIN_DATETIME, rs2.data.result.lastLoginTime);\r\n\t\t\tlocalStorage.setItem(FAILED_ACCESS_COUNT, rs2.data.result.failedLoginAttempts);\r\n\t\t\tconst params = { params: { userName: rs2.data.result.userName }, ...authHeader, timeout: 10 * 60 * 1000 }\r\n\r\n\t\t\tconst rs3 = await axios.post(\r\n\t\t\t\tbaseURL + '/Account/ShouldChangePassword',\r\n\t\t\t\t{ userName: rs2.data.result.emailAddress }, authHeader\r\n\t\t\t).catch(e => {\r\n\t\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} = e\r\n\t\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t\t}\r\n\t\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t\t})\r\n\r\n\t\t\tif (rs3.data.success) {\r\n\t\t\t\tdispatch({ type: SHOULD_CHANGE_PASSWORD_SUCCESS, rs: rs3 })\r\n\r\n\t\t\t\tdispatch(isLoggedin(rs, usernameOrEmailAddress))\r\n\t\t\t\treturn { success: true, message: '' }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdispatch(loginFailed(rs.data.error.message))\r\n\treturn { success: false, message: rs.data.error.message }\r\n}\r\n\r\nconst isLoggingin = () => ({\r\n\ttype: IS_LOGGINGIN\r\n})\r\n\r\nconst isLoggedin = (rs, usernameOrEmailAddress) => ({\r\n\ttype: IS_LOGGEDIN,\r\n\trs,\r\n\tusernameOrEmailAddress\r\n})\r\n\r\nconst loginFailed = message => ({\r\n\ttype: LOGIN_FAILED,\r\n\tmessage\r\n})\r\n\r\nexport const updateAuthDuck = (k, v) => ({\r\n\ttype: UPDATE_AUTH_DUCK,\r\n\tk,\r\n\tv\r\n})\r\n\r\nexport const updateMultipleAuthProperties = propertiesToUpdate => ({\r\n\ttype: UPDATE_MULTIPLE_AUTH_PROPERTIES,\r\n\tpropertiesToUpdate\r\n})\r\n\r\nexport const forgotPassword = data => async dispatch => {\r\n\tdispatch(_forgotPasswordIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/ForgotPassword', data).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_forgotPasswordFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_forgotPasswordSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_forgotPasswordFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst FORGOT_PASSWORD_IS_LOADING = 'FORGOT_PASSWORD_IS_LOADING'\r\nconst FORGOT_PASSWORD_SUCCESS = 'FORGOT_PASSWORD_SUCCESS'\r\nconst FORGOT_PASSWORD_FAIL = 'FORGOT_PASSWORD_FAIL'\r\n\r\nconst _forgotPasswordIsLoading = () => ({\r\n\ttype: FORGOT_PASSWORD_IS_LOADING\r\n})\r\n\r\nconst _forgotPasswordSuccess = rs => ({\r\n\ttype: FORGOT_PASSWORD_SUCCESS,\r\n\trs\r\n})\r\n\r\nconst _forgotPasswordFail = () => ({\r\n\ttype: FORGOT_PASSWORD_FAIL\r\n})\r\n\r\nexport const changePassword = data => async dispatch => {\r\n\tdispatch(_changePasswordIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/ChangePassword', data, getCurrentAuthHeader()).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_changePasswordFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_changePasswordSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_changePasswordFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst CHANGE_PASSWORD_IS_LOADING = 'CHANGE_PASSWORD_IS_LOADING'\r\nconst CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS'\r\nconst CHANGE_PASSWORD_FAIL = 'CHANGE_PASSWORD_FAIL'\r\n\r\nconst _changePasswordIsLoading = () => ({\r\n\ttype: CHANGE_PASSWORD_IS_LOADING\r\n})\r\n\r\nconst _changePasswordSuccess = rs => ({\r\n\ttype: CHANGE_PASSWORD_SUCCESS,\r\n\trs\r\n})\r\n\r\nconst _changePasswordFail = () => ({\r\n\ttype: CHANGE_PASSWORD_FAIL\r\n})\r\n\r\nexport const authSendOtp = data => async dispatch => {\r\n\tdispatch(_authSendOtpIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/SendOtp', data).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_authSendOtpFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_authSendOtpSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_authSendOtpFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst AUTH_SEND_OTP_IS_LOADING = 'AUTH_SEND_OTP_IS_LOADING'\r\nconst AUTH_SEND_OTP_SUCCESS = 'AUTH_SEND_OTP_SUCCESS'\r\nconst AUTH_SEND_OTP_FAIL = 'AUTH_SEND_OTP_FAIL'\r\n\r\nconst _authSendOtpIsLoading = () => ({\r\n\ttype: AUTH_SEND_OTP_IS_LOADING\r\n})\r\n\r\nconst _authSendOtpSuccess = rs => ({\r\n\ttype: AUTH_SEND_OTP_SUCCESS,\r\n\trs\r\n})\r\n\r\nconst _authSendOtpFail = () => ({\r\n\ttype: AUTH_SEND_OTP_FAIL\r\n})\r\n\r\nexport const authSendEmailOtp = data => async dispatch => {\r\n\tdispatch(_authSendEmailOtpIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/SendEmailOtp', data).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\r\n\tif (!rs.data) {\r\n\t\tdispatch(_authSendEmailOtpFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_authSendEmailOtpSuccess())\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_authSendEmailOtpFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst AUTH_SEND_EMAIL_OTP_IS_LOADING = 'AUTH_SEND_EMAIL_OTP_IS_LOADING'\r\nconst AUTH_SEND_EMAIL_OTP_SUCCESS = 'AUTH_SEND_EMAIL_OTP_SUCCESS'\r\nconst AUTH_SEND_EMAIL_OTP_FAIL = 'AUTH_SEND_EMAIL_OTP_FAIL'\r\n\r\nconst _authSendEmailOtpIsLoading = () => ({\r\n\ttype: AUTH_SEND_EMAIL_OTP_IS_LOADING\r\n})\r\n\r\nconst _authSendEmailOtpSuccess = () => ({\r\n\ttype: AUTH_SEND_EMAIL_OTP_SUCCESS\r\n})\r\n\r\nconst _authSendEmailOtpFail = () => ({\r\n\ttype: AUTH_SEND_EMAIL_OTP_FAIL\r\n})\r\n\r\nconst AUTH_AUTHENTICATE_WITH_EMAIL_OTP_IS_LOADING = 'AUTH_AUTHENTICATE_WITH_EMAIL_OTP_IS_LOADING'\r\nconst AUTH_AUTHENTICATE_WITH_EMAIL_OTP_SUCCESS = 'AUTH_AUTHENTICATE_WITH_EMAIL_OTP_SUCCESS'\r\nconst AUTH_AUTHENTICATE_WITH_EMAIL_OTP_FAIL = 'AUTH_AUTHENTICATE_WITH_EMAIL_OTP_FAIL'\r\n\r\nconst _authAuthenticateWithEmailOtpIsLoading = () => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_EMAIL_OTP_IS_LOADING\r\n})\r\n\r\nconst _authAuthenticateWithEmailOtpSuccess = () => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_EMAIL_OTP_SUCCESS\r\n})\r\n\r\nconst _authAuthenticateWithEmailOtpFail = () => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_EMAIL_OTP_FAIL\r\n})\r\n\r\nexport const authAuthenticateWithEmailOtp = data => async dispatch => {\r\n\tdispatch(_authAuthenticateWithEmailOtpIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/AuthenticateWithEmailOtp', data).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\r\n\tif (!rs.data) {\r\n\t\tdispatch(_authAuthenticateWithEmailOtpFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\r\n\tif (rs.data.success) {\r\n\t\tlocalStorage.setItem('accessToken', rs.data.result.accessToken)\r\n\t\tlocalStorage.setItem('username', data.usernameOrEmailAddress)\r\n\r\n\t\tconst authHeader = { headers: { Authorization: 'Bearer ' + rs.data.result.accessToken } }\r\n\t\tconst rs2 = await axios.get(baseURL + '/Account/GetUserProfile', authHeader).catch(e => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\r\n\t\tif (rs2.data.success) {\r\n\t\t\tlocalStorage.setItem(USER_ID, rs.data.result.userId)\r\n\t\t\t//localStorage.setItem(PERMISSIONS, JSON.stringify(rs2.data.result.permissions))\r\n\t\t\tlocalStorage.setItem(PERMISSIONS, encrypt(JSON.stringify(rs2.data.result.permissions)))\r\n\t\t\tlocalStorage.setItem(USER_POS, rs2.data.result.pos || '')\r\n\t\t\tlocalStorage.setItem(LAST_LOGIN_DATETIME, rs2.data.result.lastLoginTime);\r\n\t\t\tlocalStorage.setItem(FAILED_ACCESS_COUNT, rs2.data.result.failedLoginAttempts);\r\n\t\t\tconst data = { userName: rs2.data.result.userName }\r\n\t\t\tconst rs3 = await axios.post(baseURL + '/Account/ShouldChangePassword', data, authHeader).catch(e => {\r\n\t\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} = e\r\n\t\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t\t}\r\n\t\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t\t})\r\n\r\n\t\t\tif (rs3.data.success) {\r\n\t\t\t\tdispatch({ type: SHOULD_CHANGE_PASSWORD_SUCCESS, rs: rs3 })\r\n\r\n\t\t\t\tdispatch(_authAuthenticateWithEmailOtpSuccess())\r\n\t\t\t\treturn { success: true, message: '' }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_authAuthenticateWithEmailOtpFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nexport const authAuthenticateWithOtp = data => async dispatch => {\r\n\tdispatch(_authAuthenticateWithOtpIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Account/AuthenticateWithOtp', data).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_authAuthenticateWithOtpFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tlocalStorage.setItem('accessToken', rs.data.result.accessToken)\r\n\t\tlocalStorage.setItem('username', data.usernameOrEmailAddress)\r\n\r\n\t\tconst authHeader = { headers: { Authorization: 'Bearer ' + rs.data.result.accessToken } }\r\n\t\tconst rs2 = await axios.get(baseURL + '/Account/GetUserProfile', authHeader).catch(e => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\r\n\t\tif (rs2.data.success) {\r\n\t\t\tlocalStorage.setItem(USER_ID, rs.data.result.userId)\r\n\t\t\t//localStorage.setItem(PERMISSIONS, JSON.stringify(rs2.data.result.permissions))\r\n\t\t\tlocalStorage.setItem(PERMISSIONS, encrypt(JSON.stringify(rs2.data.result.permissions)))\r\n\t\t\tlocalStorage.setItem(USER_POS, rs2.data.result.pos || '')\r\n\t\t\tlocalStorage.setItem(LAST_LOGIN_DATETIME, rs2.data.result.lastLoginTime);\r\n\t\t\tlocalStorage.setItem(FAILED_ACCESS_COUNT, rs2.data.result.failedLoginAttempts);\r\n\t\t\tconst data = { userName: rs2.data.result.userName }\r\n\t\t\tconst rs3 = await axios.post(baseURL + '/Account/ShouldChangePassword', data, authHeader).catch(e => {\r\n\t\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} = e\r\n\t\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t\t}\r\n\t\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t\t})\r\n\r\n\t\t\tif (rs3.data.success) {\r\n\t\t\t\tdispatch({ type: SHOULD_CHANGE_PASSWORD_SUCCESS, rs: rs3 })\r\n\r\n\t\t\t\tdispatch(_authAuthenticateWithOtpSuccess(rs))\r\n\t\t\t\treturn { success: true, message: '' }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_authAuthenticateWithOtpFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst AUTH_AUTHENTICATE_WITH_OTP_IS_LOADING = 'AUTH_AUTHENTICATE_WITH_OTP_IS_LOADING'\r\nconst AUTH_AUTHENTICATE_WITH_OTP_SUCCESS = 'AUTH_AUTHENTICATE_WITH_OTP_SUCCESS'\r\nconst AUTH_AUTHENTICATE_WITH_OTP_FAIL = 'AUTH_AUTHENTICATE_WITH_OTP_FAIL'\r\n\r\nconst _authAuthenticateWithOtpIsLoading = () => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_OTP_IS_LOADING\r\n})\r\n\r\nconst _authAuthenticateWithOtpSuccess = rs => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_OTP_SUCCESS,\r\n\trs\r\n})\r\n\r\nconst _authAuthenticateWithOtpFail = () => ({\r\n\ttype: AUTH_AUTHENTICATE_WITH_OTP_FAIL\r\n})\r\n\r\nconst initState = {\r\n\tisLoggedIn: null,\r\n\tisLoggingIn: false,\r\n\tloginFailedReason: null,\r\n\tforgotPasswordIsLoading: false,\r\n\tchangePasswordIsLoading: false,\r\n\tauthSendOtpIsLoading: false,\r\n\tuid: '',\r\n\tcontactNo: '',\r\n\tauthAuthenticateWithOtpIsLoading: false,\r\n\tshouldChangePassword: false\r\n}\r\n\r\nconst authDuck = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase IS_LOGGINGIN:\r\n\t\t\treturn { ...state, isLoggingIn: true, isLoggedIn: null, loginFailedReason: null }\r\n\r\n\t\tcase IS_LOGGEDIN:\r\n\t\t\treturn { ...state, isLoggingIn: false, isLoggedIn: true }\r\n\r\n\t\tcase LOGIN_FAILED:\r\n\t\t\treturn { ...state, isLoggingIn: false, isLoggedIn: false, loginFailedReason: action.message }\r\n\r\n\t\tcase UPDATE_AUTH_DUCK:\r\n\t\t\treturn { ...state, [action.k]: action.v }\r\n\r\n\t\tcase UPDATE_MULTIPLE_AUTH_PROPERTIES:\r\n\t\t\tlet clonedState = { ...state }\r\n\t\t\taction.propertiesToUpdate.forEach(update => (clonedState[update.key] = update.value))\r\n\t\t\treturn { ...clonedState }\r\n\r\n\t\tcase FORGOT_PASSWORD_IS_LOADING:\r\n\t\t\treturn { ...state, forgotPasswordIsLoading: true }\r\n\r\n\t\tcase FORGOT_PASSWORD_SUCCESS:\r\n\t\t\treturn { ...state, forgotPasswordIsLoading: false }\r\n\r\n\t\tcase FORGOT_PASSWORD_FAIL:\r\n\t\t\treturn { ...state, forgotPasswordIsLoading: false }\r\n\r\n\t\tcase CHANGE_PASSWORD_IS_LOADING:\r\n\t\t\treturn { ...state, changePasswordIsLoading: true }\r\n\r\n\t\tcase CHANGE_PASSWORD_SUCCESS:\r\n\t\t\tlocalStorage.removeItem(SHOULD_CHANGE_PASSWORD)\r\n\t\t\treturn { ...state, changePasswordIsLoading: false, shouldChangePassword: false }\r\n\r\n\t\tcase CHANGE_PASSWORD_FAIL:\r\n\t\t\treturn { ...state, changePasswordIsLoading: false }\r\n\r\n\t\tcase AUTH_SEND_OTP_IS_LOADING:\r\n\t\t\treturn { ...state, authSendOtpIsLoading: true }\r\n\r\n\t\tcase AUTH_SEND_OTP_SUCCESS:\r\n\t\t\tconst { uid, contactNo } = action.rs.data.result\r\n\t\t\treturn { ...state, authSendOtpIsLoading: false, uid, contactNo }\r\n\r\n\t\tcase AUTH_SEND_OTP_FAIL:\r\n\t\t\treturn { ...state, authSendOtpIsLoading: false }\r\n\r\n\t\tcase AUTH_SEND_EMAIL_OTP_IS_LOADING:\r\n\t\t\treturn { ...state, authSendOtpIsLoading: true }\r\n\r\n\t\tcase AUTH_SEND_EMAIL_OTP_SUCCESS:\r\n\t\t\treturn { ...state, authSendOtpIsLoading: false }\r\n\r\n\t\tcase AUTH_SEND_EMAIL_OTP_FAIL:\r\n\t\t\treturn { ...state, authSendOtpIsLoading: false }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_OTP_IS_LOADING:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: true }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_OTP_SUCCESS:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: false, isLoggedIn: true }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_OTP_FAIL:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: false }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_EMAIL_OTP_IS_LOADING:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: true }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_EMAIL_OTP_SUCCESS:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: false, isLoggedIn: true }\r\n\r\n\t\tcase AUTH_AUTHENTICATE_WITH_EMAIL_OTP_FAIL:\r\n\t\t\treturn { ...state, authAuthenticateWithOtpIsLoading: false }\r\n\r\n\t\tcase SHOULD_CHANGE_PASSWORD_SUCCESS:\r\n\t\t\tlet shouldChangePassword = action.rs.data.result.shouldChange\r\n\t\t\tlocalStorage.setItem(SHOULD_CHANGE_PASSWORD, encrypt(JSON.stringify(action.rs.data.result)))\r\n\t\t\treturn { ...state, shouldChangePassword: shouldChangePassword }\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default authDuck\r\n","import React, {Component} from 'react'\r\nimport {withStyles, CircularProgress} from '@material-ui/core'\r\n\r\nclass LoadingContainer extends Component {\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n
\r\n {this.props.show &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n fullscreen: {\r\n position: 'absolute',\r\n background: 'white',\r\n opacity: '.8',\r\n zIndex: 1399,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n margin: 'auto',\r\n width: '100%'\r\n }\r\n})\r\n\r\nexport default withStyles(styles)(LoadingContainer)","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport green from '@material-ui/core/colors/green';\r\nimport amber from '@material-ui/core/colors/amber';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\n\r\nconst styles1 = theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.dark,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing.unit,\r\n },\r\n message: {maxWidth:'518px'},\r\n messageSpan: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n});\r\n\r\nfunction MySnackbarContent(props) {\r\n const { classes, className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nMySnackbarContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired,\r\n};\r\n\r\nexport default withStyles(styles1)(MySnackbarContent);","module.exports = __webpack_public_path__ + \"static/media/web.37efeed2.config\";","import {createMuiTheme} from '@material-ui/core/styles'\r\n\r\nexport const PRIMARY_COLOR = '#87c2dd'\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n useNextVariants: true,\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(',')\r\n },\r\n rowMargin: '1rem auto',\r\n container: {padding: '1rem'},\r\n paper: {padding: '1rem'},\r\n deletedBackground: {background: '#eee'}\r\n})\r\n\r\nexport default theme\r\n\r\nexport const hoverSelectOverride = createMuiTheme({\r\n typography: {useNextVariants: true},\r\n palette: {\r\n action: {\r\n active: 'rgba(0, 0, 0, 0.54)',\r\n hover: 'rgba(63, 81, 181, 0.08)',\r\n hoverOpacity: 0.08,\r\n selected: 'rgba(63, 81, 181, 0.9)',\r\n disabled: 'rgba(0, 0, 0, 0.26)',\r\n disabledBackground: 'rgba(0, 0, 0, 0.12)'\r\n }\r\n }\r\n})","const SET_MESSAGE = \"SET_MESSAGE\";\r\nconst CLEAR_MESSAGE = \"CLEAR_MESSAGE\";\r\n\r\nexport const setErrorMessage= (message) => ({\r\n type: SET_MESSAGE,\r\n message: message\r\n});\r\n\r\nexport const clearErrorMessage= (message) => ({\r\n type: CLEAR_MESSAGE,\r\n message: message\r\n});\r\n\r\nconst initState = {\r\n message: '',\r\n isError: false,\r\n};\r\n\r\nconst systemErrorReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n case SET_MESSAGE:\r\n return {\r\n ...state,\r\n message: action.message,\r\n isError: true\r\n };\r\n case CLEAR_MESSAGE:\r\n return {\r\n ...state,\r\n message: '',\r\n isError: false,\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default systemErrorReducer","import React from \"react\"\r\nimport {connect} from 'react-redux'\r\nimport {Button, Modal, Typography} from '@material-ui/core'\r\nimport {Cancel} from \"@material-ui/icons\";\r\nimport {clearErrorMessage} from \"../ducks/systemError\";\r\n\r\nclass SystemModal extends React.Component {\r\n closeModal=()=>{\r\n this.props.clearErrorMessage()\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.props.message}\r\n
\r\n \r\n Back\r\n \r\n
\r\n \r\n\r\n )\r\n }\r\n}\r\n\r\n\r\nconst styles = {\r\n container:{\r\n styles: {\r\n position: 'absolute',\r\n width: \"40%\",\r\n backgroundColor: 'white',\r\n top: \"20%\",\r\n left: \"30%\",\r\n paddingBottom: 20,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n header:{\r\n styles: {display:'flex', justifyContent:'flex-end', width:'100%'}\r\n },\r\n body:{\r\n styles: {padding: 20}\r\n }\r\n }\r\n};\r\n\r\n\r\nconst mapStateToProps = function (state) {\r\n const systemErrorReducer = state.systemErrorReducer;\r\n return {\r\n message: systemErrorReducer.message,\r\n isError: systemErrorReducer.isError\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {\r\n clearErrorMessage: ()=>dispatch(clearErrorMessage()),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SystemModal)","import React, {PureComponent} from 'react'\r\nimport {Fab} from '@material-ui/core'\r\nimport {Delete} from '@material-ui/icons'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass StyledDeleteBtn extends PureComponent {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nStyledDeleteBtn.propTypes = {\r\n onClick: PropTypes.func.isRequired\r\n}\r\n\r\nexport default StyledDeleteBtn","import React, {PureComponent} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Fab} from '@material-ui/core'\r\nimport {Edit} from '@material-ui/icons'\r\n\r\n\r\nclass StyledEditBtn extends PureComponent {\r\n render() {\r\n return \r\n }\r\n}\r\n\r\nStyledEditBtn.propTypes = {\r\n onClick: PropTypes.func.isRequired\r\n}\r\n\r\nexport default StyledEditBtn\r\n","import React, {PureComponent} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Fab} from '@material-ui/core'\r\nimport {Search} from '@material-ui/icons'\r\n\r\n\r\nclass StyledViewableBtn extends PureComponent {\r\n render() {\r\n return \r\n }\r\n}\r\n\r\nStyledViewableBtn.propTypes = {\r\n onClick: PropTypes.func.isRequired\r\n}\r\n\r\nexport default StyledViewableBtn\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport moment from 'moment'\r\nimport { withStyles, Table, TableHead, TableRow, TableBody, TableCell, Checkbox, Typography, TablePagination, TableFooter, TextField, Grid } from '@material-ui/core'\r\nimport PropTypes from 'prop-types'\r\nimport StyledDeleteBtn from './StyledDeleteBtn'\r\nimport StyledEditBtn from './StyledEditBtn'\r\nimport StyledViewableBtn from './StyledViewableBtn'\r\nimport { USER_ACCOUNTS_TABLE_KEY_NAME } from '../constants/tableKeys'\r\n\r\nclass GeneralTable extends Component {\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\trowsPerPage,\r\n\t\t\tonChangeRowsPerPage,\r\n\t\t\tonChangePage,\r\n\t\t\tActionsComponent,\r\n\t\t\tpage,\r\n\t\t\tcount,\r\n\t\t\thasPagination,\r\n\t\t\tfields,\r\n\t\t\trows,\r\n\t\t\tisViewable,\r\n\t\t\tisEditable,\r\n\t\t\tisDeletable,\r\n\t\t\tisFilterable,\r\n\t\t\tfilter,\r\n\t\t\tfilterLabel,\r\n\t\t\ttableKeyName\r\n\t\t} = this.props\r\n\r\n\t\tlet colSpan = fields.length\r\n\t\tif (isViewable) colSpan += 1\r\n\t\tif (isEditable) colSpan += 1\r\n\t\tif (isDeletable) colSpan += 1\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{isFilterable && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onFilterChange(e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{fields.map(field => {\r\n\t\t\t\t\t\t\t\tif (field.type && field.type === 'hidden') {\r\n\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t this.props.onHeaderClick(field.key)}>\r\n\t\t\t\t\t\t\t\t\t\t{field.label}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t{isViewable && View}\r\n\t\t\t\t\t\t\t{isEditable && Edit}\r\n\t\t\t\t\t\t\t{isDeletable && Delete}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{rows.map((row, ridx) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{this.props.fields.map((field, i) => {\r\n\t\t\t\t\t\t\t\t\t\tif (field.type && field.type === 'hidden') {\r\n\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* set key as 'seq' to show sequence. eg.{key: 'seq', label: 'S/N'} */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.key === 'seq' && !hasPagination && {ridx + 1}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.key === 'seq' && hasPagination && {page * rowsPerPage + 1 + ridx}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.type && field.type === 'link' && field.url && {row[field.key]}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* This type is to allow consumer to generate links, and to populate under the appCustomLink for display */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.type && field.type === 'appCustomLink' && row[field.key]}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.key === 'status' && tableKeyName === USER_ACCOUNTS_TABLE_KEY_NAME && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{row.isLockout ? 'Lockout' : row.isActive ? 'Active' : 'Inactive'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.type && field.type === 'checkbox' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.props.fields[i].onChange(ridx, this.props.fields[i].key, row[field.key])}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={'primary'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.type && field.type === 'date' && moment(row[field.key]).format('YYYY-MM-DD')}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{field.type && field.type === 'image' && {''}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{typeof field.render === 'function' && this.props.fields[i].render(row[field.key])}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{!field.type && !field.render && row[field.key]}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.isViewable && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onView(row)} />\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.isEditable && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onEdit(row)} />\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.isDeletable && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onDelete(row)} />\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{hasPagination && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\timage: { maxWidth: '100%' }\r\n})\r\n\r\nGeneralTable.propTypes = {\r\n\tfields: PropTypes.array.isRequired,\r\n\trows: PropTypes.array.isRequired,\r\n\tisEditable: PropTypes.bool,\r\n\tisDeletable: PropTypes.bool,\r\n\tisViewable: PropTypes.bool,\r\n\tonEdit: PropTypes.func,\r\n\tonDelete: PropTypes.func,\r\n\tonView: PropTypes.func,\r\n\tonHeaderClick: PropTypes.func\r\n}\r\n\r\nexport default withStyles(styles)(GeneralTable)\r\n","export const USER_ACCOUNTS_TABLE_KEY_NAME = 'UsersAccountsTable'\r\n","import React, {PureComponent} from 'react'\r\nimport {withStyles, Paper} from '@material-ui/core'\r\nimport GeneralTable from './GeneralTable'\r\n\r\nclass StyledTable extends PureComponent {\r\n render() {\r\n const {classes, ...others} = this.props\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {margin: '1rem 0'}\r\n})\r\n\r\nexport default withStyles(styles)(StyledTable)","export const GROUP_TYPE_PENDING_SQ_API = \"GROUP_TYPE_PENDING_SQ_API\";\r\nexport const GROUP_TYPE_ACTION_REQUIRED = \"GROUP_TYPE_ACTION_REQUIRED\";\r\nexport const GROUP_TYPE_PENDING_APPROVAL = \"GROUP_TYPE_PENDING_APPROVAL\";\r\nexport const GROUP_TYPE_PENDING_COLLECTION = \"GROUP_TYPE_PENDING_COLLECTION\";\r\nexport const GROUP_TYPE_REJECTED = \"GROUP_TYPE_REJECTED\";\r\nexport const GROUP_TYPE_COLLECTED = \"GROUP_TYPE_COLLECTED\";\r\nexport const GROUP_TYPE_NOT_COLLECTED = \"GROUP_TYPE_NOT_COLLECTED\";\r\nexport const GROUP_TYPE_DELETED = \"GROUP_TYPE_DELETED\";\r\nexport const GROUP_TYPE_VIEW_ALL = \"GROUP_TYPE_VIEW_ALL\";\r\nexport const GROUP_TYPE_APPROVED = \"GROUP_TYPE_APPROVED\";\r\nexport const GROUP_TYPE_APPROVED_TO_UNAPPROVED = \"GROUP_TYPE_APPROVED_TO_UNAPPROVED\";\r\n\r\nexport const GROUP_ACTION_TYPE_SUBMITTING = \"GROUP_ACTION_TYPE_SUBMITTING\";\r\nexport const GROUP_ACTION_TYPE_APPROVING = \"GROUP_ACTION_TYPE_APPROVING\";\r\nexport const GROUP_ACTION_TYPE_COLLECTING = \"GROUP_ACTION_TYPE_COLLECTING\";\r\nexport const GROUP_ACTION_TYPE_UNAPPROVING = \"GROUP_ACTION_TYPE_UNAPPROVING\";","import {\r\n GROUP_TYPE_ACTION_REQUIRED, GROUP_TYPE_COLLECTED, GROUP_TYPE_DELETED,\r\n GROUP_TYPE_PENDING_APPROVAL, GROUP_TYPE_PENDING_COLLECTION,\r\n GROUP_TYPE_PENDING_SQ_API, GROUP_TYPE_REJECTED,\r\n GROUP_TYPE_NOT_COLLECTED\r\n} from \"../constants/groupType\";\r\nimport moment from \"moment\";\r\n\r\nexport const getGroupType = (group) => {\r\n let {sqCheck, submitted, approval, redemption, rejected, isDeleted, lastFlightDepartureDate} = group;\r\n\r\n if(!sqCheck && !submitted && !approval && !redemption && !rejected && !isDeleted){\r\n return GROUP_TYPE_PENDING_SQ_API\r\n\r\n } else if(sqCheck && !submitted && !approval && !redemption && !rejected && !isDeleted){\r\n return GROUP_TYPE_ACTION_REQUIRED\r\n\r\n } else if(sqCheck && submitted && !approval && !redemption && !rejected && !isDeleted){\r\n return GROUP_TYPE_PENDING_APPROVAL\r\n\r\n } else if(approval && redemption){\r\n return GROUP_TYPE_COLLECTED\r\n\r\n } else if(sqCheck && approval && !redemption && !rejected && !isDeleted) {\r\n if (moment(lastFlightDepartureDate).endOf('day').isBefore(moment.now())) {\r\n return GROUP_TYPE_NOT_COLLECTED\r\n } else {\r\n return GROUP_TYPE_PENDING_COLLECTION\r\n }\r\n\r\n\r\n } else if (redemption && !rejected && !isDeleted){\r\n return GROUP_TYPE_COLLECTED\r\n\r\n } else if (rejected && !isDeleted){\r\n return GROUP_TYPE_REJECTED\r\n\r\n } else if (isDeleted) {\r\n return GROUP_TYPE_DELETED\r\n }\r\n};\r\n\r\n\r\nexport const getGroupLabel = (group) =>{\r\n let status = \"PENDING\"\r\n let type = getGroupType(group);\r\n if(type === GROUP_TYPE_PENDING_SQ_API) status = \"PENDING SQ\";\r\n if(type === GROUP_TYPE_ACTION_REQUIRED) status = \"ACTION REQUIRED\";\r\n if(type === GROUP_TYPE_PENDING_APPROVAL) status = \"PENDING APPROVAL\";\r\n if(type === GROUP_TYPE_NOT_COLLECTED) status = \"NOT COLLECTED\";\r\n if(type === GROUP_TYPE_PENDING_COLLECTION) status = \"PENDING COLLECTION\";\r\n if(type === GROUP_TYPE_COLLECTED) status = \"COLLECTED\";\r\n if(type === GROUP_TYPE_REJECTED) status = \"REJECTED\";\r\n if(type === GROUP_TYPE_DELETED) status = \"DELETED\";\r\n\r\n return status;\r\n}","import React, {Component} from 'react'\r\nimport {withStyles, Grid, IconButton, Icon, Typography} from '@material-ui/core'\r\nimport {LastPage, FirstPage, KeyboardArrowRight, KeyboardArrowLeft} from '@material-ui/icons'\r\nimport {blue} from '@material-ui/core/colors'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass StyledPagination extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {}\r\n }\r\n\r\n renderPagesToShow = (totalPages, page) => {\r\n let pagesToShow = 3\r\n const {classes, onChangePage} = this.props\r\n const size = Math.floor(pagesToShow / 2)\r\n\r\n let start = 0, end = 0\r\n if (page - size + pagesToShow > totalPages - 1) {\r\n start = Math.max(totalPages - pagesToShow, 0)\r\n end = totalPages\r\n } else {\r\n start = Math.max(page - size, 0)\r\n end = Math.min(start + pagesToShow, totalPages)\r\n }\r\n\r\n let output = []\r\n\r\n if (start === end) {\r\n output.push(\r\n \r\n {start + 1}\r\n )\r\n return output\r\n }\r\n\r\n if (page < pagesToShow - 1) {\r\n output = []\r\n while (start < end) {\r\n let s = start\r\n if (s === page) {\r\n output.push(\r\n \r\n {s + 1}\r\n )\r\n } else {\r\n output.push(\r\n onChangePage(e, s + 1)}\r\n >{s + 1}\r\n )\r\n }\r\n start++\r\n }\r\n if (end < totalPages)\r\n output.push(...)\r\n return output\r\n }\r\n\r\n if (page >= pagesToShow - 1) {\r\n output = [...]\r\n while (start < end) {\r\n let s = start\r\n if (s === page) {\r\n output.push(\r\n \r\n {s + 1}\r\n )\r\n } else {\r\n output.push(\r\n onChangePage(e, s + 1)}\r\n >{s + 1}\r\n )\r\n }\r\n start++\r\n }\r\n if (end < totalPages - 1) {\r\n output.push(...)\r\n }\r\n return output\r\n }\r\n }\r\n\r\n render() {\r\n const {page, count, rowsPerPage, onChangePage} = this.props\r\n const totalPages = Math.ceil(count / rowsPerPage)\r\n\r\n return (\r\n \r\n \r\n onChangePage(e, 'first')} disabled={page < 1}>\r\n\r\n onChangePage(e, 'prev')}\r\n disabled={page < 1}>\r\n\r\n {this.renderPagesToShow(totalPages, page)}\r\n\r\n onChangePage(e, 'next')}\r\n disabled={page >= totalPages - 1}>\r\n\r\n onChangePage(e, 'last')}\r\n disabled={page >= totalPages - 1}>\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container},\r\n active: {background: blue[500]},\r\n activeText: {color: 'white', fontSize: '.8rem', lineHeight: 1.8},\r\n font: {fontSize: '.8rem', lineHeight: 1.8}\r\n})\r\n\r\nStyledPagination.propTypes = {\r\n onChangePage: PropTypes.func.isRequired,\r\n page: PropTypes.number.isRequired,\r\n count: PropTypes.number.isRequired,\r\n rowsPerPage: PropTypes.number.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(StyledPagination)","class PageHelper {\r\n constructor({maxResultCount}) {\r\n this.maxResultCount = maxResultCount;\r\n this.skipCount = 0;\r\n this.totalCount = 0;\r\n this.noOfPages = 0;\r\n }\r\n\r\n newCall(){\r\n this.totalCount = 0;\r\n this.noOfPages = 0;\r\n this.skipCount = 0;\r\n return {maxResultCount: this.maxResultCount, skipCount: this.skipCount}\r\n\r\n }\r\n\r\n populatePagingData({totalCount}){\r\n this.totalCount = totalCount;\r\n this.noOfPages = Math.ceil(totalCount / this.maxResultCount);\r\n }\r\n\r\n pageCall(pageNo){\r\n if(this.totalCount === 0 || this.noOfPages === 0) throw new Error (\"Please populate the paging data before doing pageCall\")\r\n this.skipCount = (pageNo - 1) * this.maxResultCount;\r\n return {maxResultCount: this.maxResultCount, skipCount: this.skipCount}\r\n }\r\n\r\n getTotalNoOfPages=()=> {\r\n if(this.totalCount === 0 || this.noOfPages === 0) throw new Error (\"Please populate the paging data before invoking getTotalNoOfPages\")\r\n return this.noOfPages;\r\n }\r\n\r\n getTotalCount=()=>{\r\n return this.totalCount;\r\n }\r\n\r\n}\r\n\r\nexport default PageHelper","import React from 'react'\r\nimport {Link} from 'react-router-dom'\r\nimport {connect} from 'react-redux'\r\nimport StyledTable from '../../components/StyledTable'\r\nimport {\r\n toHumanFriendlyDate, toHumanFriendlyDateTime, hasPermissions, hasIssuerPermissions,\r\n hasApproverPermissions, hasGroupViewPermission\r\n} from '../../helpers/utilities'\r\nimport {getGroupLabel} from '../../helpers/groupStatusHelper.js'\r\nimport {\r\n GROUP_TYPE_PENDING_APPROVAL, GROUP_TYPE_ACTION_REQUIRED, GROUP_TYPE_PENDING_COLLECTION\r\n\r\n} from '../../constants/groupType'\r\nimport {\r\n GROUP_ISSUER_PERMISSION, GROUP_ISSUER_READ_ONLY_PERMISSION, GROUP_CREATOR_PERMISSION,\r\n GROUP_CREATOR_WITH_READ_ALL_PERMISSION, GROUP_APPROVER_PERMISSION, GROUP_APPROVER_READ_ONLY_PERMISSION,\r\n GROUP_VIEW_PERMISSION\r\n} from '../../constants/permissions'\r\nimport moment from 'moment'\r\nimport StyledPagination from '../../components/StyledPagination'\r\nimport PageHelper from \"../../helpers/pageHelper\";\r\n\r\nconst SORT_BY_REF = 'SORT_BY_REF';\r\nconst SORT_BY_PAX = 'SORT_BY_PAX';\r\nconst SORT_BY_FLT_DEP_DATE = 'SORT_BY_FLT_DEP_DATE';\r\nconst SORT_BY_COLLECTION_DATE = 'SORT_BY_COLLECTION_DATE';\r\nconst SORT_BY_TOUR_COMPANY = 'SORT_BY_TOUR_COMPANY';\r\nconst SORT_BY_SUBMITTER = 'SORT_BY_SUBMITTER';\r\nconst SORT_BY_APPROVER = 'SORT_BY_APPROVER';\r\nconst SORT_BY_CREATION_TIME = 'SORT_BY_CREATION_TIME';\r\nconst SORT_BY_TOUR_LEADER = 'SORT_BY_TOUR_LEADER';\r\n\r\nclass GroupSubmissionForm extends React.Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n groupTableFields: [],\r\n sortBy: SORT_BY_COLLECTION_DATE\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n componentDidMount() {\r\n if (hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) {\r\n this.setState({\r\n groupTableFields: [\r\n {label: 'Group ref. no.', key: 'appCustomLink', type: 'appCustomLink'},\r\n {label: 'No. of Pax', key: 'paxCount'},\r\n {label: 'Return Flt Departure Date', key: 'lastFlightDepartureDate'},\r\n {label: 'Collection date', key: 'collectionDate'},\r\n {label: 'Company', key: 'tourCompany'},\r\n {label: 'Tour Leader', key: 'tourLeaderName'},\r\n {label: 'Submitted by', key: 'submitterName'},\r\n {label: 'Approved by', key: 'approverName'},\r\n {label: 'Submitted date', key: 'creationTime'},\r\n {label: 'Status', key: 'status'}\r\n ]\r\n })\r\n } else {\r\n this.setState({\r\n groupTableFields: [\r\n {label: 'Group ref. no.', key: 'appCustomLink', type: 'appCustomLink'},\r\n {label: 'No. of Pax', key: 'paxCount'},\r\n {label: 'Return Flt Departure Date', key: 'lastFlightDepartureDate'},\r\n {label: 'Collection date', key: 'collectionDate'},\r\n {label: 'Company', key: 'tourCompany'},\r\n {label: 'Tour Leader', key: 'tourLeaderName'},\r\n {label: 'Submitted by', key: 'submitterName'},\r\n {label: 'Approved by', key: 'approverName'},\r\n {label: 'Submitted date', key: 'creationTime'}\r\n ]\r\n })\r\n }\r\n }\r\n\r\n _buildAppCustomLink = (refNo, groupType) => {\r\n if (hasIssuerPermissions() && groupType === GROUP_TYPE_PENDING_COLLECTION) {\r\n return {refNo}\r\n }\r\n return {refNo}\r\n }\r\n\r\n _formatGroupList = (groupList, groupType, sortBy) => {\r\n if(sortBy === SORT_BY_COLLECTION_DATE) groupList.sort((a, b) => moment(a.collectionDate).diff(moment(b.collectionDate)))\r\n if(sortBy === SORT_BY_APPROVER) groupList.sort((a, b) => a.approverName.localeCompare(b.approverName));\r\n if(sortBy === SORT_BY_SUBMITTER) groupList.sort((a, b) => a.submitterName.localeCompare(b.submitterName));\r\n if(sortBy === SORT_BY_TOUR_COMPANY) groupList.sort((a, b) => a.tourCompany.localeCompare(b.tourCompany));\r\n if(sortBy === SORT_BY_REF) groupList.sort((a, b) => a.refNo.localeCompare(b.refNo));\r\n if(sortBy === SORT_BY_PAX) groupList.sort((a, b) => a.paxCount - b.paxCount);\r\n if(sortBy === SORT_BY_TOUR_LEADER) {\r\n groupList.sort((a, b) =>{\r\n let aName = (a.tourLeader && a.tourLeader.length > 0 && a.tourLeader[0].firstName) ? a.tourLeader[0].firstName : \"a\";\r\n let bName = (a.tourLeader && a.tourLeader.length > 0 && b.tourLeader[0].firstName) ? b.tourLeader[0].firstName : \"a\";\r\n return aName.localeCompare(bName);\r\n })\r\n }\r\n if(sortBy === SORT_BY_CREATION_TIME) groupList.sort((a, b) => moment(b.creationTime).diff(moment(a.creationTime)));\r\n if(sortBy === SORT_BY_FLT_DEP_DATE) groupList.sort((a, b) => moment(b.lastFlightDepartureDate).diff(moment(a.lastFlightDepartureDate)));\r\n\r\n\r\n return groupList.map(s => {\r\n return {\r\n ...s,\r\n creationTime: toHumanFriendlyDateTime(s.creationTime),\r\n firstFltArrivalDate: toHumanFriendlyDate(s.firstFltArrivalDate),\r\n lastFlightDepartureDate: toHumanFriendlyDate(s.lastFlightDepartureDate),\r\n collectionDate: toHumanFriendlyDate(s.collectionDate),\r\n status: getGroupLabel(s),\r\n appCustomLink: this._buildAppCustomLink(s.refNo, groupType),\r\n tourLeaderName: (s.tourLeader && s.tourLeader.length > 0) ? s.tourLeader[0].firstName + ' ' + s.tourLeader[0].lastName : '',\r\n approverName: (s.approverName !== s.submitterName) ? s.approverName : \"\",\r\n }\r\n })\r\n }\r\n\r\n _checkEditablePermission = groupType => {\r\n if (groupType === GROUP_TYPE_ACTION_REQUIRED) return (hasPermissions([GROUP_CREATOR_PERMISSION]))\r\n if (groupType === GROUP_TYPE_PENDING_APPROVAL) return hasPermissions([GROUP_APPROVER_PERMISSION])\r\n\r\n return false\r\n }\r\n\r\n _checkDeletePermission = groupType => {\r\n const hasEditPermissions = hasPermissions([GROUP_CREATOR_PERMISSION, GROUP_APPROVER_PERMISSION, GROUP_ISSUER_PERMISSION], 'or')\r\n if (groupType === GROUP_TYPE_ACTION_REQUIRED) {\r\n return hasEditPermissions\r\n }\r\n return false\r\n }\r\n\r\n sortTable = (key) => {\r\n let sortBy = SORT_BY_COLLECTION_DATE;\r\n if(key === \"appCustomLink\") sortBy = SORT_BY_REF;\r\n if(key === \"paxCount\") sortBy = SORT_BY_PAX;\r\n if(key === \"lastFlightDepartureDate\") sortBy = SORT_BY_FLT_DEP_DATE;\r\n if(key === \"collectionDate\") sortBy = SORT_BY_COLLECTION_DATE;\r\n if(key === \"tourCompany\") sortBy = SORT_BY_TOUR_COMPANY;\r\n if(key === \"submitterName\") sortBy = SORT_BY_SUBMITTER;\r\n if(key === \"approverName\") sortBy = SORT_BY_APPROVER;\r\n if(key === \"creationTime\") sortBy = SORT_BY_CREATION_TIME;\r\n if(key === \"tourLeaderName\") sortBy = SORT_BY_TOUR_LEADER;\r\n\r\n this.setState({sortBy: sortBy})\r\n }\r\n\r\n render() {\r\n const {groupListing, onDelete, groupType} = this.props;\r\n const {groupTableFields} = this.state;\r\n\r\n const groupPermissions = hasPermissions([\r\n GROUP_ISSUER_PERMISSION, GROUP_ISSUER_READ_ONLY_PERMISSION, GROUP_CREATOR_PERMISSION, GROUP_CREATOR_WITH_READ_ALL_PERMISSION,\r\n GROUP_APPROVER_PERMISSION, GROUP_APPROVER_READ_ONLY_PERMISSION, GROUP_VIEW_PERMISSION\r\n ], 'or');\r\n\r\n return (\r\n
\r\n {groupPermissions && }\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = function (state) {\r\n const stateClone = {...state}\r\n const individualFormDuck = stateClone.individualFormDuck\r\n return {\r\n formDetailsList: individualFormDuck.formDetailsList\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GroupSubmissionForm)","export const OTHER_ACCEPTED_AIRLINE = \"OTHER_ACCEPTED_AIRLINE\";\r\nexport const OTHER_UNACCEPTED_AIRLINE = \"OTHER_UNACCEPTED_AIRLINE\";\r\nexport const SQAPI_PASS = \"SQAPI_PASS\";\r\nexport const SQAPI_MULTIPLE_ELIGIBLE = \"SQAPI_MULTIPLE_ELIGIBLE\";\r\nexport const SQAPI_FAIL = \"SQAPI_FAIL\";\r\nexport const SQAPI_OFFLINE = \"SQAPI_OFFLINE\";\r\n\r\nexport const DISPLAY_MANUAL = \"M\"\r\nexport const DISPLAY_YES = \"Y\"\r\nexport const DISPLAY_NO = \"N\"\r\n\r\nexport const convertSqStatusForDisplay = (status) => {\r\n let result = DISPLAY_NO;\r\n if (status === OTHER_ACCEPTED_AIRLINE || status === SQAPI_OFFLINE || SQAPI_MULTIPLE_ELIGIBLE) result = DISPLAY_MANUAL;\r\n if (status === OTHER_UNACCEPTED_AIRLINE || status === SQAPI_FAIL) result = DISPLAY_NO;\r\n if (status === SQAPI_PASS) result = DISPLAY_YES;\r\n\r\n if (status === \"M\" || status === \"Manual\") result = DISPLAY_MANUAL;\r\n if (status === \"N\" || status === \"No\") result = DISPLAY_NO;\r\n if (status === \"Y\" || status === \"Yes\") result = DISPLAY_YES;\r\n\r\n return result\r\n}","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport * as cloneDeep from 'lodash/cloneDeep'\r\nimport {\r\n GROUP_TYPE_ACTION_REQUIRED,\r\n GROUP_TYPE_PENDING_APPROVAL,\r\n GROUP_TYPE_PENDING_COLLECTION,\r\n GROUP_TYPE_REJECTED,\r\n GROUP_TYPE_DELETED,\r\n GROUP_TYPE_COLLECTED,\r\n GROUP_TYPE_NOT_COLLECTED,\r\n GROUP_TYPE_VIEW_ALL,\r\n GROUP_TYPE_PENDING_SQ_API,\r\n GROUP_TYPE_APPROVED,\r\n GROUP_ACTION_TYPE_SUBMITTING,\r\n GROUP_ACTION_TYPE_APPROVING,\r\n GROUP_ACTION_TYPE_COLLECTING,\r\n GROUP_ACTION_TYPE_UNAPPROVING\r\n} from '../constants/groupType'\r\nimport {sqApiObjectToResponseString} from '../helpers/utilities'\r\nimport {convertSqStatusForDisplay, DISPLAY_YES} from '../helpers/eticketStatusHelper'\r\nimport querystring from 'querystring'\r\nimport produce from 'immer'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nconst SAVE_GROUP_EDIT_FORM_RECORD = 'SAVE_GROUP_EDIT_FORM_RECORD'\r\nconst MARK_AS_DELETE = 'MARK_AS_DELETE'\r\nconst UPDATE_PASSENGER = 'UPDATE_PASSENGER'\r\nconst UPDATE_ALL_PASSENGERS = 'UPDATE_ALL_PASSENGERS'\r\nconst UPDATE_GROUP_FORM = 'UPDATE_GROUP_FORM'\r\nconst UPDATE_APPROVE = 'UPDATE_APPROVE'\r\nconst GET_GROUP_AND_PASSENGERS_IS_LOADING = 'GET_GROUP_AND_PASSENGERS_IS_LOADING'\r\nconst GET_GROUP_AND_PASSENGERS_SUCCESS = 'GET_GROUP_AND_PASSENGERS_SUCCESS'\r\nconst GET_GROUP_AND_PASSENGERS_FAIL = 'GET_GROUP_AND_PASSENGERS_FAIL'\r\nconst GET_ALL_GROUP_IS_LOADING = 'GET_ALL_GROUP_IS_LOADING'\r\nconst GET_ALL_GROUP_SUCCESS = 'GET_ALL_GROUP_SUCCESS'\r\nconst GET_ALL_GROUP_FAIL = 'GET_ALL_GROUP_FAIL'\r\nconst UPDATE_GROUP_AND_PASSENGERS_IS_LOADING = 'UPDATE_GROUP_AND_PASSENGERS_IS_LOADING'\r\nconst UPDATE_GROUP_AND_PASSENGERS_SUCCESS = 'UPDATE_GROUP_AND_PASSENGERS_SUCCESS'\r\nconst UPDATE_GROUP_AND_PASSENGERS_FAIL = 'UPDATE_GROUP_AND_PASSENGERS_FAIL'\r\nconst UNMARK_DELETE = 'UNMARK_DELETE'\r\nconst REJECT_GROUP_AND_PASSENGERS_IS_LOADING = 'REJECT_GROUP_AND_PASSENGERS_IS_LOADING'\r\nconst REJECT_GROUP_AND_PASSENGERS_SUCCESS = 'REJECT_GROUP_AND_PASSENGERS_SUCCESS'\r\nconst REJECT_GROUP_AND_PASSENGERS_FAIL = 'REJECT_GROUP_AND_PASSENGERS_FAIL'\r\nconst UPDATE_TOUR_LEADER_FROM_PASSENGER_DATA = 'UPDATE_TOUR_LEADER_FROM_PASSENGER_DATA'\r\nconst UPDATE_PASSENGERS_TOUR_LEADER_FLAG = 'UPDATE_PASSENGERS_TOUR_LEADER_FLAG'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst initState = {\r\n passengers: [],\r\n passengersWithMeta: [],\r\n rejectedPassengers: [],\r\n tourLeader: {},\r\n group: {\r\n id: '',\r\n refNo: '',\r\n transportMean: 'na',\r\n transportRemarks: '',\r\n remarks: '',\r\n attachmentUris: [],\r\n presignedAttachmentUris: [],\r\n rejectionReason: ''\r\n },\r\n groupMetaInfo: {\r\n isThreeSector: false\r\n },\r\n redemptionTransaction: {},\r\n getApprovalIsLoading: false,\r\n getAllGroupIsLoading: false,\r\n getGroupAndPassengersIsLoading: false,\r\n groups: [],\r\n updateGroupAndPassengersIsLoading: false,\r\n updateGroupAndPassengersSuccess: false,\r\n updateGroupAndPassengersError: '',\r\n rejectGroupAndPassengersIsLoading: false,\r\n groupSubmissionSqApiCheckIsLoading: false,\r\n voidGroupIsLoading: false,\r\n approvalFilesUploadIsLoading: false,\r\n paxIdsToReVerify: [],\r\n groupSubmissionSqApiCheckReVerifyIsLoading: false,\r\n groupApprovalGroupCheckRedeemedPassengerIsLoading: false\r\n}\r\n\r\nexport const updateGroupAndPassengers = ({passengers, group, tourLeader, groupActionType}) => async dispatch => {\r\n let paramType = 0\r\n\r\n if (groupActionType === GROUP_ACTION_TYPE_SUBMITTING) paramType = 1\r\n if (groupActionType === GROUP_ACTION_TYPE_APPROVING) paramType = 2\r\n if (groupActionType === GROUP_ACTION_TYPE_COLLECTING) paramType = 3\r\n if (groupActionType === GROUP_ACTION_TYPE_UNAPPROVING) paramType = 5\r\n\r\n let params = `?groupActionType=${paramType}`\r\n\r\n let postData = {\r\n passengersWithMeta: passengers,\r\n group,\r\n tourLeader\r\n }\r\n\r\n dispatch(_updateGroupAndPassengersIsLoading())\r\n let catchError = {success: true}\r\n const rs = await axios.post(baseURL + `/Group/UpdateGroupAndPassengers` + params, postData, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n catchError = {success: false, error: {message: message}}\r\n } else {\r\n catchError = {success: false, error: {message: e.response.status + ' Unexpected error'}}\r\n }\r\n })\r\n if (catchError.success === false) {\r\n dispatch(_updateGroupAndPassengersFail())\r\n return catchError\r\n }\r\n if (rs.data.success) {\r\n dispatch(_updateGroupAndPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateGroupAndPassengersFail())\r\n return {success: false, message: rs.data.error && rs.data.error.message, result: rs.data.result}\r\n }\r\n}\r\n\r\nconst _updateGroupAndPassengersIsLoading = () => ({\r\n type: UPDATE_GROUP_AND_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _updateGroupAndPassengersSuccess = rs => ({\r\n type: UPDATE_GROUP_AND_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _updateGroupAndPassengersFail = () => ({\r\n type: UPDATE_GROUP_AND_PASSENGERS_FAIL\r\n})\r\n\r\nexport const getGroupAndPassengers = ({groupId, refNo, getAllUser}) => async dispatch => {\r\n dispatch(_getGroupAndPassengersIsLoading())\r\n\r\n let urlParams = '?'\r\n if (groupId) urlParams = urlParams + `groupId=${groupId}&`\r\n if (refNo) urlParams = urlParams + `refNoFilter=${refNo}&`\r\n if (getAllUser) urlParams = urlParams + `getAllUser=${getAllUser}&`\r\n const rs = await axios.get(baseURL + `/Group/GetGroupAndPassengers` + urlParams, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getGroupAndPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getGroupAndPassengersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getGroupAndPassengersIsLoading = () => ({\r\n type: GET_GROUP_AND_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _getGroupAndPassengersSuccess = rs => ({\r\n type: GET_GROUP_AND_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getGroupAndPassengersFail = () => ({\r\n type: GET_GROUP_AND_PASSENGERS_FAIL\r\n})\r\n\r\nexport const saveGroupEditFormRecord = record => ({\r\n type: SAVE_GROUP_EDIT_FORM_RECORD,\r\n record\r\n})\r\n\r\n/**\r\n * Will set to unapprove and set markedDelete true\r\n * @param id\r\n * @returns {{id: *, type: string}}\r\n */\r\nexport const markAsDelete = id => ({\r\n type: MARK_AS_DELETE,\r\n id\r\n})\r\n\r\nexport const unmarkDelete = id => ({\r\n type: UNMARK_DELETE,\r\n id\r\n})\r\n\r\nexport const updatePassenger = (id, k, v) => {\r\n return {\r\n type: UPDATE_PASSENGER,\r\n id, k, v\r\n }\r\n}\r\n\r\nexport const updateTourLeaderFromPassengerData = (k, v) => {\r\n return {\r\n type: UPDATE_TOUR_LEADER_FROM_PASSENGER_DATA,\r\n k, v\r\n }\r\n}\r\n\r\nexport const updatePassengersTourLeaderFlag = (id) => {\r\n return {\r\n type: UPDATE_PASSENGERS_TOUR_LEADER_FLAG,\r\n id\r\n }\r\n}\r\n\r\nexport const updateAllPassengers = passengers => ({\r\n type: UPDATE_ALL_PASSENGERS,\r\n passengers: passengers\r\n})\r\n\r\nexport const updateGroupForm = (section, k, v) => ({\r\n type: UPDATE_GROUP_FORM,\r\n section, k, v\r\n})\r\n\r\nexport const updateGroupApprovalDuck = (k, v) => ({\r\n type: UPDATE_GROUP_APPROVAL_DUCK,\r\n k, v\r\n})\r\n\r\nconst UPDATE_GROUP_APPROVAL_DUCK = 'UPDATE_GROUP_APPROVAL_DUCK'\r\n\r\nexport const updateApprove = status => ({\r\n type: UPDATE_APPROVE,\r\n status\r\n})\r\n\r\nexport const getAllGroup = ({groupType, getAllUser = false, maxResultCount=1000, skipCount=0}) => async dispatch => {\r\n let paramType\r\n if (groupType === GROUP_TYPE_PENDING_SQ_API) paramType = 0\r\n if (groupType === GROUP_TYPE_ACTION_REQUIRED) paramType = 1\r\n if (groupType === GROUP_TYPE_PENDING_APPROVAL) paramType = 2\r\n if (groupType === GROUP_TYPE_PENDING_COLLECTION) paramType = 3\r\n if (groupType === GROUP_TYPE_REJECTED) paramType = 4\r\n if (groupType === GROUP_TYPE_COLLECTED) paramType = 5\r\n if (groupType === GROUP_TYPE_NOT_COLLECTED) paramType = 6\r\n if (groupType === GROUP_TYPE_DELETED) paramType = 7\r\n if (groupType === GROUP_TYPE_VIEW_ALL) paramType = 8\r\n if (groupType === GROUP_TYPE_APPROVED) paramType = 9\r\n let userId = localStorage.getItem('userId')\r\n const params = {\r\n params: {\r\n type: paramType,\r\n userId,\r\n getAllUser,\r\n maxResultCount,\r\n skipCount\r\n },\r\n ...getCurrentAuthHeader()\r\n }\r\n\r\n dispatch(_getAllGroupIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Group/GetAll', params).catch(e => {\r\n if (!e.response) {\r\n return {data: {success: false, error: {message: 'No response from server'}}}\r\n }\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getAllGroupSuccess(rs))\r\n return rs.data\r\n } else {\r\n dispatch(_getAllGroupFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAllGroupIsLoading = () => ({\r\n type: GET_ALL_GROUP_IS_LOADING\r\n})\r\n\r\nconst _getAllGroupSuccess = rs => ({\r\n type: GET_ALL_GROUP_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getAllGroupFail = () => ({\r\n type: GET_ALL_GROUP_FAIL\r\n})\r\n\r\nexport const rejectGroupAndPassengers = data => async dispatch => {\r\n dispatch(_rejectGroupAndPassengersIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Group/RejectGroupAndPassengers', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_rejectGroupAndPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_rejectGroupAndPassengersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _rejectGroupAndPassengersIsLoading = () => ({\r\n type: REJECT_GROUP_AND_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _rejectGroupAndPassengersSuccess = rs => ({\r\n type: REJECT_GROUP_AND_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _rejectGroupAndPassengersFail = () => ({\r\n type: REJECT_GROUP_AND_PASSENGERS_FAIL\r\n})\r\n\r\nexport const groupSubmissionSqApiCheck = (pidx, data) => async dispatch => {\r\n dispatch(_groupSubmissionSqApiCheckIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/SqApi/GroupSubmissionSqApiCheck', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_groupSubmissionSqApiCheckFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_groupSubmissionSqApiCheckSuccess(rs, pidx))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_groupSubmissionSqApiCheckFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_IS_LOADING = 'GROUP_SUBMISSION_SQ_API_CHECK_IS_LOADING'\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_SUCCESS = 'GROUP_SUBMISSION_SQ_API_CHECK_SUCCESS'\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_FAIL = 'GROUP_SUBMISSION_SQ_API_CHECK_FAIL'\r\n\r\nconst _groupSubmissionSqApiCheckIsLoading = () => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_IS_LOADING\r\n})\r\n\r\nconst _groupSubmissionSqApiCheckSuccess = (rs, pidx) => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_SUCCESS,\r\n rs, pidx\r\n})\r\n\r\nconst _groupSubmissionSqApiCheckFail = () => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_FAIL\r\n})\r\n\r\nexport const voidGroup = data => async dispatch => {\r\n dispatch(_voidGroupIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Group/VoidGroup', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_voidGroupFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_voidGroupSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_voidGroupFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst VOID_GROUP_IS_LOADING = 'VOID_GROUP_IS_LOADING'\r\nconst VOID_GROUP_SUCCESS = 'VOID_GROUP_SUCCESS'\r\nconst VOID_GROUP_FAIL = 'VOID_GROUP_FAIL'\r\n\r\nconst _voidGroupIsLoading = () => ({\r\n type: VOID_GROUP_IS_LOADING\r\n})\r\n\r\nconst _voidGroupSuccess = rs => ({\r\n type: VOID_GROUP_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _voidGroupFail = () => ({\r\n type: VOID_GROUP_FAIL\r\n})\r\n\r\nexport const approvalFilesUpload = data => async dispatch => {\r\n dispatch(_approvalFilesUploadIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/File/FilesUpload?' + querystring.stringify({bucketType: 1}), data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_approvalFilesUploadFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_approvalFilesUploadSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_approvalFilesUploadFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst APPROVAL_FILES_UPLOAD_IS_LOADING = 'APPROVAL_FILES_UPLOAD_IS_LOADING'\r\nconst APPROVAL_FILES_UPLOAD_SUCCESS = 'APPROVAL_FILES_UPLOAD_SUCCESS'\r\nconst APPROVAL_FILES_UPLOAD_FAIL = 'APPROVAL_FILES_UPLOAD_FAIL'\r\n\r\nconst _approvalFilesUploadIsLoading = () => ({\r\n type: APPROVAL_FILES_UPLOAD_IS_LOADING\r\n})\r\n\r\nconst _approvalFilesUploadSuccess = rs => ({\r\n type: APPROVAL_FILES_UPLOAD_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _approvalFilesUploadFail = () => ({\r\n type: APPROVAL_FILES_UPLOAD_FAIL\r\n})\r\n\r\nexport const groupSubmissionSqApiCheckReVerify = data => async dispatch => {\r\n dispatch(_groupSubmissionSqApiCheckReVerifyIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/SqApi/GroupSubmissionSqApiCheck', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_groupSubmissionSqApiCheckReVerifyFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_groupSubmissionSqApiCheckReVerifySuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_groupSubmissionSqApiCheckReVerifyFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_IS_LOADING = 'GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_IS_LOADING'\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_SUCCESS = 'GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_SUCCESS'\r\nconst GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_FAIL = 'GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_FAIL'\r\n\r\nconst _groupSubmissionSqApiCheckReVerifyIsLoading = () => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_IS_LOADING\r\n})\r\n\r\nconst _groupSubmissionSqApiCheckReVerifySuccess = rs => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _groupSubmissionSqApiCheckReVerifyFail = () => ({\r\n type: GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_FAIL\r\n})\r\n\r\nexport const groupApprovalGroupCheckRedeemedPassenger = data => async dispatch => {\r\n dispatch(_groupApprovalGroupCheckRedeemedPassengerIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/SqApi/GroupCheckRedeemedPassenger', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_groupApprovalGroupCheckRedeemedPassengerFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_groupApprovalGroupCheckRedeemedPassengerSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_groupApprovalGroupCheckRedeemedPassengerFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING = 'GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING'\r\nconst GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS = 'GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS'\r\nconst GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL = 'GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL'\r\n\r\nconst _groupApprovalGroupCheckRedeemedPassengerIsLoading = () => ({\r\n type: GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING\r\n})\r\n\r\nconst _groupApprovalGroupCheckRedeemedPassengerSuccess = rs => ({\r\n type: GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _groupApprovalGroupCheckRedeemedPassengerFail = () => ({\r\n type: GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL\r\n})\r\n\r\nconst groupApprovalDuck = (state = initState, action) => {\r\n let idx, newPassenger, newPassengers, id, k, v, items\r\n\r\n switch (action.type) {\r\n\r\n case SAVE_GROUP_EDIT_FORM_RECORD:\r\n idx = state.passengers.findIndex(p => p.id.value === action.record.id.value)\r\n if (idx !== -1) {\r\n newPassenger = {...state.passengers[idx], ...action.record}\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n return {...state, passengers: newPassengers}\r\n }\r\n return state\r\n\r\n case MARK_AS_DELETE:\r\n idx = state.passengers.findIndex(p => p.id.value === action.id)\r\n if (idx !== -1) {\r\n newPassenger = {...state.passengers[idx]}\r\n newPassenger.approve.value = false\r\n newPassenger.markedDelete = true\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n return {...state, passengers: newPassengers}\r\n }\r\n return state\r\n\r\n case UNMARK_DELETE:\r\n idx = state.passengers.findIndex(p => p.id.value === action.id)\r\n if (idx !== -1) {\r\n newPassenger = {...state.passengers[idx]}\r\n newPassenger.approve.value = false\r\n newPassenger.markedDelete = false\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n return {...state, passengers: newPassengers}\r\n }\r\n return state\r\n\r\n case UPDATE_PASSENGER:\r\n ({id, k, v} = action)\r\n idx = state.passengers.findIndex(p => p.id.value === id)\r\n if (idx !== -1) {\r\n // if (k === 'approve') {\r\n // let issue = 'Y'\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n // const p = state.passengers[idx]\r\n // for (const k of keys) {\r\n // if (p[k].issue === 'N') {\r\n // issue = 'N'\r\n // break\r\n // }\r\n // }\r\n // if (issue === 'N') return state\r\n // }\r\n\r\n // let newPaxIdsToReVerify = [...state.paxIdsToReVerify]\r\n // if (k.indexOf('eTicket') !== -1 || k === 'lastName') {\r\n // const p = state.passengers[idx]\r\n // if (!newPaxIdsToReVerify.includes(p.id.value)) newPaxIdsToReVerify.push(p.id.value)\r\n // }\r\n\r\n newPassenger = {...state.passengers[idx]}\r\n newPassenger[k].value = v\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n return {...state, passengers: newPassengers}\r\n }\r\n\r\n return state\r\n\r\n case UPDATE_ALL_PASSENGERS:\r\n const allPassengers = action.passengers\r\n return {...state, passengers: allPassengers}\r\n\r\n case UPDATE_GROUP_FORM:\r\n const newSection = {...state[action.section]}\r\n newSection[action.k] = action.v\r\n return {...state, [action.section]: newSection}\r\n\r\n case UPDATE_APPROVE:\r\n newPassengers = state.passengers.map(p => {\r\n if (p.approve.value === !action.status && p.sqApiStatus.value === false && !!!p.markedDelete) {\r\n let issue = 'Y'\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n // for (const k of keys) {\r\n // if (p[k].issue === 'N') {\r\n // issue = 'N'\r\n // break\r\n // }\r\n // }\r\n // Only update those eTicket without issue 'N'\r\n if (issue === 'Y') {\r\n p.approve = {...p.approve, value: action.status}\r\n return p\r\n }\r\n }\r\n return p\r\n })\r\n return {...state, passengers: newPassengers}\r\n\r\n case GET_GROUP_AND_PASSENGERS_IS_LOADING:\r\n return {...state, getGroupAndPassengersIsLoading: true}\r\n\r\n case GET_GROUP_AND_PASSENGERS_SUCCESS:\r\n\r\n const {data: {result: {passengersWithMeta, tourLeader, group, groupMetaInfo, redemptionTransaction}}} = action.rs\r\n return {\r\n ...state,\r\n getGroupAndPassengersIsLoading: false,\r\n passengers: passengersWithMeta.filter(p => (p.isDeleted.value !== true && p.rejected.value !== true && p.isRedeemed.value !== true)),\r\n rejectedPassengers: passengersWithMeta.filter(p => (p.rejected.value === true)),\r\n redeemedPassengers: passengersWithMeta.filter(p => (p.isRedeemed.value === true)),\r\n tourLeader,\r\n group: {\r\n ...state.group, ...group, transportMean: group.transportMean !== null ? group.transportMean : 'na',\r\n remarks: group.remarks !== null ? group.remarks : ''\r\n },\r\n redemptionTransaction: redemptionTransaction ? redemptionTransaction : {},\r\n groupMetaInfo: groupMetaInfo\r\n }\r\n // return {...state, getGroupAndPassengersIsLoading: false, ...dummy}\r\n\r\n case UPDATE_TOUR_LEADER_FROM_PASSENGER_DATA:\r\n let clonedTourLeader = {...state.tourLeader}\r\n clonedTourLeader[action.k] = action.v\r\n return {...state, tourLeader: clonedTourLeader}\r\n\r\n case UPDATE_PASSENGERS_TOUR_LEADER_FLAG:\r\n if (!action.id) {\r\n let clonedPassengers = cloneDeep(state.passengers)\r\n clonedPassengers.forEach(passenger => {\r\n passenger.isTourLeader.value = false\r\n })\r\n return {...state, passengers: clonedPassengers}\r\n } else {\r\n let clonedPassengers = cloneDeep(state.passengers)\r\n clonedPassengers.forEach(passenger => {\r\n passenger.isTourLeader.value = passenger.id.value === action.id\r\n })\r\n return {...state, passengers: clonedPassengers}\r\n\r\n }\r\n\r\n case GET_GROUP_AND_PASSENGERS_FAIL:\r\n return {...state, getGroupAndPassengersIsLoading: false}\r\n\r\n case GET_ALL_GROUP_IS_LOADING:\r\n return {...state, getAllGroupIsLoading: true}\r\n\r\n case GET_ALL_GROUP_SUCCESS:\r\n return {...state, getAllGroupIsLoading: false, groups: action.rs.data.result.items}\r\n\r\n case GET_ALL_GROUP_FAIL:\r\n return {...state, getAllGroupIsLoading: false}\r\n\r\n case UPDATE_GROUP_AND_PASSENGERS_IS_LOADING:\r\n return {...state, updateGroupAndPassengersIsLoading: true, updateGroupAndPassengersSuccess: false}\r\n\r\n case UPDATE_GROUP_AND_PASSENGERS_SUCCESS:\r\n return {...state, updateGroupAndPassengersIsLoading: false, updateGroupAndPassengersSuccess: true}\r\n\r\n case UPDATE_GROUP_AND_PASSENGERS_FAIL:\r\n return {\r\n ...state,\r\n updateGroupAndPassengersIsLoading: false,\r\n updateGroupAndPassengerError: 'There\\'s a problem updating data'\r\n }\r\n\r\n case REJECT_GROUP_AND_PASSENGERS_IS_LOADING:\r\n return {...state, rejectGroupAndPassengersIsLoading: true}\r\n\r\n case REJECT_GROUP_AND_PASSENGERS_SUCCESS:\r\n return {...state, rejectGroupAndPassengersIsLoading: false}\r\n\r\n case REJECT_GROUP_AND_PASSENGERS_FAIL:\r\n return {...state, rejectGroupAndPassengersIsLoading: false}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_IS_LOADING:\r\n return {...state, groupSubmissionSqApiCheckIsLoading: true}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_SUCCESS:\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n // format data structure to be consistent with passengerWithMeta\r\n newPassenger = {...state.passengers[action.pidx]}\r\n action.rs.data.result.ticketDetails.forEach(e => {\r\n keys.forEach(k => {\r\n if (newPassenger[k].value === e.ticketNumber) {\r\n\r\n newPassenger[k].issue = e.ctpEligibility\r\n newPassenger.sqApiStatus.value = convertSqStatusForDisplay(e.ctpEligibility) === DISPLAY_YES\r\n newPassenger.approve.value = convertSqStatusForDisplay(e.ctpEligibility) === DISPLAY_YES\r\n if (e.criterias) {\r\n newPassenger[k].remarks = sqApiObjectToResponseString(e.criterias)\r\n } else {\r\n newPassenger[k].remarks = e.remarks\r\n }\r\n }\r\n })\r\n })\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(action.pidx, 1, newPassenger)\r\n return {...state, groupSubmissionSqApiCheckIsLoading: false, passengers: newPassengers}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_FAIL:\r\n return {...state, groupSubmissionSqApiCheckIsLoading: false}\r\n\r\n case VOID_GROUP_IS_LOADING:\r\n return {...state, voidGroupIsLoading: true}\r\n\r\n case VOID_GROUP_SUCCESS:\r\n return {...state, voidGroupIsLoading: false}\r\n\r\n case VOID_GROUP_FAIL:\r\n return {...state, voidGroupIsLoading: false}\r\n\r\n case APPROVAL_FILES_UPLOAD_IS_LOADING:\r\n return {...state, approvalFilesUploadIsLoading: true}\r\n\r\n case APPROVAL_FILES_UPLOAD_SUCCESS:\r\n return {\r\n ...state, approvalFilesUploadIsLoading: false,\r\n group: {...state.group, attachmentUris: [...state.group.attachmentUris, ...action.rs.data.result]}\r\n }\r\n\r\n case APPROVAL_FILES_UPLOAD_FAIL:\r\n return {...state, approvalFilesUploadIsLoading: false}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_IS_LOADING:\r\n return {...state, groupSubmissionSqApiCheckReVerifyIsLoading: true}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_SUCCESS:\r\n let resultsToProcess = action.rs.data.result.ticketDetails\r\n let seen = new Set()\r\n state.paxIdsToReVerify.forEach(pid => {\r\n newPassengers = [...state.passengers]\r\n idx = newPassengers.findIndex(p => p.id.value === pid)\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n for (let k of keys) {\r\n newPassenger = newPassengers[idx]\r\n if (newPassenger[k].value !== '' && !newPassenger[k].markedDelete) {\r\n\r\n let toUpdate = resultsToProcess.find(rs => rs.ticketNumber === newPassenger[k].value)\r\n if (toUpdate && !seen.has(toUpdate.ticketNumber)) {\r\n seen.add(toUpdate.ticketNumber)\r\n newPassenger[k].issue = toUpdate.ctpEligibility\r\n newPassenger.sqApiStatus.value = convertSqStatusForDisplay(toUpdate.ctpEligibility) === DISPLAY_YES\r\n newPassenger.approve.value = convertSqStatusForDisplay(toUpdate.ctpEligibility) === DISPLAY_YES\r\n\r\n if (toUpdate.criterias) {\r\n newPassenger[k].remarks = sqApiObjectToResponseString(toUpdate.criterias)\r\n } else {\r\n newPassenger[k].remarks = toUpdate.remarks\r\n }\r\n newPassengers.splice(idx, 1, newPassenger)\r\n }\r\n }\r\n }\r\n\r\n })\r\n return {...state, groupSubmissionSqApiCheckReVerifyIsLoading: false, passengers: newPassengers, paxIdsToReVerify: []}\r\n\r\n case GROUP_SUBMISSION_SQ_API_CHECK_RE_VERIFY_FAIL:\r\n return {...state, groupSubmissionSqApiCheckReVerifyIsLoading: false}\r\n\r\n case UPDATE_GROUP_APPROVAL_DUCK:\r\n ({k, v} = action)\r\n return {...state, [k]: v}\r\n\r\n case GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING:\r\n return {...state, groupApprovalGroupCheckRedeemedPassengerIsLoading: true}\r\n\r\n case GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS:\r\n ({data: {result: {items}}} = action.rs)\r\n if (items.length === 0) {\r\n return {...state, groupApprovalGroupCheckRedeemedPassengerIsLoading: true}\r\n }\r\n // newPassengers = cloneDeep(state.passengers)\r\n newPassengers = produce(state.passengers, draft => {\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n for (let p of draft) {\r\n for (let k of keys) {\r\n if (p[k].value) {\r\n for (let item of items) {\r\n if (p[k].value === item.eTicketNo) {\r\n if(p.cardNo.value) continue; //if the passenger already has a time\r\n p.cardNo.value = item.cardNo\r\n p.collectionDate.value = item.creationTime\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // items.forEach(item => {\r\n // let found = false\r\n // for (let p of draft) {\r\n // found = false\r\n // for (let k of keys) {\r\n // if (p[k].value === item.eTicketNo) {\r\n // p.cardNo.value = item.cardNo\r\n // p.creationTime.value = item.creationTime\r\n // found = true\r\n // break\r\n // }\r\n // }\r\n // }\r\n // })\r\n })\r\n\r\n return {...state, groupApprovalGroupCheckRedeemedPassengerIsLoading: false, passengers: newPassengers}\r\n\r\n case GROUP_APPROVAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL:\r\n return {...state, groupApprovalGroupCheckRedeemedPassengerIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default groupApprovalDuck ","\r\nexport const STATUS_PENDING_SQ_API = \"PENDING SQ API\";\r\nexport const STATUS_ACTION_REQUIRED = \"ACTION REQUIRED\";\r\nexport const STATUS_PENDING_APPROVAL = \"PENDING APPROVAL\";\r\nexport const STATUS_APPROVED = \"APPROVED\";\r\nexport const STATUS_PENDING_COLLECTION = \"PENDING COLLECTION\";\r\nexport const STATUS_REJECTED = \"REJECTED\";\r\nexport const STATUS_COLLECTED = \"COLLECTED\";\r\nexport const STATUS_NOT_COLLECTED = \"NOT COLLECTED\";\r\nexport const STATUS_VIEW_ALL = \"VIEW ALL\";\r\n","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {FormControl, InputLabel, MenuItem, OutlinedInput, Select, withStyles} from '@material-ui/core'\r\nimport {hoverSelectOverride} from '../styles/mui/theme'\r\nimport {MuiThemeProvider} from '@material-ui/core/styles'\r\nimport {\r\n GROUP_TYPE_PENDING_APPROVAL, GROUP_TYPE_COLLECTED,\r\n GROUP_TYPE_PENDING_COLLECTION, GROUP_TYPE_NOT_COLLECTED,\r\n GROUP_TYPE_REJECTED, GROUP_TYPE_ACTION_REQUIRED, GROUP_TYPE_VIEW_ALL, GROUP_TYPE_PENDING_SQ_API,\r\n GROUP_TYPE_APPROVED\r\n} from '../constants/groupType'\r\nimport {getAllGroup} from '../ducks/groupApprovalDuck'\r\nimport {hasGroupViewPermission} from '../helpers/utilities'\r\nimport {\r\n hasCreatorPermissions, hasApproverPermissions, hasIssuerPermissions\r\n} from '../helpers/utilities'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {STATUS_PENDING_SQ_API, STATUS_ACTION_REQUIRED, STATUS_PENDING_APPROVAL,\r\n STATUS_APPROVED, STATUS_PENDING_COLLECTION, STATUS_REJECTED, STATUS_COLLECTED,\r\n STATUS_NOT_COLLECTED, STATUS_VIEW_ALL\r\n} from \"../constants/groupStatus\"\r\n\r\nclass GroupStatusFilter extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n this.statusFilter = this.props.statusFilter\r\n }\r\n\r\n componentDidMount = async () => {\r\n }\r\n\r\n componentDidUpdate = async (prevProps, prevState) => {\r\n /*\r\n const {statusFilter} = this.props\r\n if (prevProps.statusFilter !== statusFilter && statusFilter !== this.statusFilter) {\r\n console.log('updated')\r\n\r\n this.onStatusFilterChange(statusFilter)\r\n }*/\r\n }\r\n\r\n\r\n onStatusFilterChange = async statusFilter => {\r\n this.props.onFilterChanged(statusFilter)\r\n }\r\n\r\n /*\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n */\r\n\r\n render() {\r\n const {classes, statusFilter} = this.props\r\n\r\n return (\r\n \r\n \r\n Status Filter\r\n this.onStatusFilterChange(e.target.value)}\r\n input={\r\n \r\n }\r\n >\r\n {hasCreatorPermissions() && PENDING SQ API}\r\n\r\n {hasCreatorPermissions() && ACTION REQUIRED}\r\n\r\n {(hasCreatorPermissions() || hasApproverPermissions() || hasGroupViewPermission()) &&\r\n PENDING APPROVAL}\r\n\r\n {(hasCreatorPermissions() && !hasApproverPermissions()) && //only creator without approval permission need to see this.\r\n APPROVED}\r\n\r\n {(/*hasCreatorPermissions()|| */ hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) &&\r\n \r\n PENDING COLLECTION\r\n }\r\n\r\n {(hasCreatorPermissions() || hasApproverPermissions() || hasGroupViewPermission()) &&\r\n REJECTED}\r\n\r\n {(hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) &&\r\n COLLECTED}\r\n\r\n {(hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) &&\r\n NOT COLLECTED}\r\n\r\n {/*{hasCreatorPermissions() &&*/}\r\n {/*DELETED}*/}\r\n\r\n {hasCreatorPermissions() &&\r\n VIEW ALL}\r\n \r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container,\r\n statusFilter: {width: '18rem'},\r\n menuItem: {color: 'white'}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {groupApprovalDuck} = state\r\n\r\n return {groupApprovalDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllGroup: (groupType, isApprover) => dispatch(getAllGroup(groupType, isApprover))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupStatusFilter))","import React, {Component} from 'react'\r\nimport {\r\n Button, Dialog, DialogActions, DialogContent, DialogTitle, Grid, Typography, withStyles\r\n} from '@material-ui/core'\r\nimport PropTypes from 'prop-types'\r\nimport {Warning} from '@material-ui/icons'\r\n\r\nclass DeleteDialog extends Component {\r\n render() {\r\n const {classes, dialogTitle, onDeleteCancel, onDeleteConfirm, hideWarningMessage} = this.props\r\n\r\n return (\r\n \r\n {dialogTitle}\r\n \r\n {this.props.children}\r\n {!hideWarningMessage &&\r\n \r\n \r\n \r\n This process cannot be reversed.\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container,\r\n paper: {minWidth: '40rem'},\r\n icon: {display: 'inline-block', verticalAlign: 'bottom'}\r\n})\r\n\r\nDeleteDialog.propTypes = {\r\n showDeleteDialog: PropTypes.bool.isRequired,\r\n dialogTitle: PropTypes.string.isRequired,\r\n onDeleteCancel: PropTypes.func.isRequired,\r\n onDeleteConfirm: PropTypes.func.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(DeleteDialog)","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst GET_ALL_CAMPAIGNS_IS_LOADING = 'GET_ALL_CAMPAIGNS_IS_LOADING'\r\nconst GET_ALL_CAMPAIGNS_SUCCESS = 'GET_ALL_CAMPAIGNS_SUCCESS'\r\nconst GET_ALL_CAMPAIGNS_FAIL = 'GET_ALL_CAMPAIGNS_FAIL'\r\nconst UPDATE_CAMPAIGN_IS_LOADING = 'UPDATE_CAMPAIGN_IS_LOADING'\r\nconst UPDATE_CAMPAIGN_SUCCESS = 'UPDATE_CAMPAIGN_SUCCESS'\r\nconst UPDATE_CAMPAIGN_FAIL = 'UPDATE_CAMPAIGN_FAIL'\r\nconst DELETE_CAMPAIGN_IS_LOADING = 'DELETE_CAMPAIGN_IS_LOADING'\r\nconst DELETE_CAMPAIGN_SUCCESS = 'DELETE_CAMPAIGN_SUCCESS'\r\nconst DELETE_CAMPAIGN_FAIL = 'DELETE_CAMPAIGN_FAIL'\r\nconst ADD_CAMPAIGN_IS_LOADING = 'ADD_CAMPAIGN_IS_LOADING'\r\nconst ADD_CAMPAIGN_SUCCESS = 'ADD_CAMPAIGN_SUCCESS'\r\nconst ADD_CAMPAIGN_FAIL = 'ADD_CAMPAIGN_FAIL'\r\n\r\nexport const getAllCampaigns = () => async dispatch => {\r\n dispatch(_getAllCampaignsIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Campaign/GetAll', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getAllCampaignsSuccess(rs.data.result.items))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getAllCampaignsFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAllCampaignsIsLoading = () => ({\r\n type: GET_ALL_CAMPAIGNS_IS_LOADING\r\n})\r\n\r\nconst _getAllCampaignsSuccess = campaigns => ({\r\n type: GET_ALL_CAMPAIGNS_SUCCESS,\r\n campaigns\r\n})\r\n\r\nconst _getAllCampaignsFail = () => ({\r\n type: GET_ALL_CAMPAIGNS_FAIL\r\n})\r\n\r\nexport const updateCampaign = data => async dispatch => {\r\n dispatch(_updateCampaignIsLoading())\r\n\r\n const rs = await axios.put(baseURL + '/Campaign/Update', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_updateCampaignSuccess(rs.data.result))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateCampaignFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updateCampaignIsLoading = () => ({\r\n type: UPDATE_CAMPAIGN_IS_LOADING\r\n})\r\n\r\nconst _updateCampaignSuccess = campaign => ({\r\n type: UPDATE_CAMPAIGN_SUCCESS,\r\n campaign\r\n})\r\n\r\nconst _updateCampaignFail = () => ({\r\n type: UPDATE_CAMPAIGN_FAIL\r\n})\r\n\r\nexport const deleteCampaign = data => async dispatch => {\r\n dispatch(_deleteCampaignIsLoading())\r\n\r\n const newdata = {...data, ...getCurrentAuthHeader()}\r\n const rs = await axios.delete(baseURL + '/Campaign/Delete', newdata).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_deleteCampaignSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_deleteCampaignFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nexport const addCampaign = data => async dispatch => {\r\n dispatch(_addCampaignIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Campaign/Create', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_addCampaignSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_addCampaignFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _addCampaignIsLoading = () => ({\r\n type: ADD_CAMPAIGN_IS_LOADING\r\n})\r\n\r\nconst _addCampaignSuccess = rs => ({\r\n type: ADD_CAMPAIGN_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _addCampaignFail = () => ({\r\n type: ADD_CAMPAIGN_FAIL\r\n})\r\n\r\nconst _deleteCampaignIsLoading = () => ({\r\n type: DELETE_CAMPAIGN_IS_LOADING\r\n})\r\n\r\nconst _deleteCampaignSuccess = rs => ({\r\n type: DELETE_CAMPAIGN_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _deleteCampaignFail = () => ({\r\n type: DELETE_CAMPAIGN_FAIL\r\n})\r\n\r\nconst initState = {\r\n getAllCampaignsIsLoading: false,\r\n campaigns: [],\r\n updateCampaignIsLoading: false,\r\n deleteCampaignIsLoading: false,\r\n addCampaignIsLoading: false\r\n}\r\n\r\nconst CampaignPeriodDuck = (state = initState, action) => {\r\n let newCampaign, newCampaigns\r\n\r\n switch (action.type) {\r\n case GET_ALL_CAMPAIGNS_IS_LOADING:\r\n return {...state, getAllCampaignsIsLoading: true}\r\n\r\n case GET_ALL_CAMPAIGNS_SUCCESS:\r\n return {...state, getAllCampaignsIsLoading: false, campaigns: action.campaigns}\r\n\r\n case GET_ALL_CAMPAIGNS_FAIL:\r\n return {...state, getAllCampaignsIsLoading: false}\r\n\r\n case UPDATE_CAMPAIGN_IS_LOADING:\r\n return {...state, updateCampaignIsLoading: true}\r\n\r\n case UPDATE_CAMPAIGN_SUCCESS:\r\n const idx = state.campaigns.findIndex(c => c.id === action.campaign.id)\r\n if (idx !== -1) {\r\n newCampaign = {...state.campaigns[idx], ...action.campaign}\r\n newCampaigns = [...state.campaigns]\r\n newCampaigns = newCampaigns.splice(idx, 1, newCampaign)\r\n return {...state, updateCampaignIsLoading: false, campaigns: newCampaigns}\r\n }\r\n return state\r\n\r\n case UPDATE_CAMPAIGN_FAIL:\r\n return {...state, updateCampaignIsLoading: false}\r\n\r\n case DELETE_CAMPAIGN_IS_LOADING:\r\n return {...state, deleteCampaignIsLoading: true}\r\n\r\n case DELETE_CAMPAIGN_SUCCESS:\r\n return {...state, deleteCampaignIsLoading: false}\r\n\r\n case DELETE_CAMPAIGN_FAIL:\r\n return {...state, deleteCampaignIsLoading: false}\r\n\r\n case ADD_CAMPAIGN_IS_LOADING:\r\n return {...state, addCampaignIsLoading: true}\r\n\r\n case ADD_CAMPAIGN_SUCCESS:\r\n return {...state, addCampaignIsLoading: false}\r\n\r\n case ADD_CAMPAIGN_FAIL:\r\n return {...state, addCampaignIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default CampaignPeriodDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getGroupStats = params => async dispatch => {\r\n dispatch(_getGroupStatsIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Group/GetGroupStats', params).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getGroupStatsFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getGroupStatsSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getGroupStatsFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_GROUP_STATS_IS_LOADING = 'GET_GROUP_STATS_IS_LOADING'\r\nconst GET_GROUP_STATS_SUCCESS = 'GET_GROUP_STATS_SUCCESS'\r\nconst GET_GROUP_STATS_FAIL = 'GET_GROUP_STATS_FAIL'\r\n\r\nconst _getGroupStatsIsLoading = () => ({\r\n type: GET_GROUP_STATS_IS_LOADING\r\n})\r\n\r\nconst _getGroupStatsSuccess = rs => ({\r\n type: GET_GROUP_STATS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getGroupStatsFail = () => ({\r\n type: GET_GROUP_STATS_FAIL\r\n})\r\n\r\nconst initState = {\r\n getGroupStatsIsLoading: false,\r\n pendingSQ: 0,\r\n actionRequired: 0,\r\n pendingApproval: 0,\r\n approved: 0,\r\n rejected: 0,\r\n deleted: 0,\r\n total: 0\r\n}\r\n\r\nconst GroupStatsDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n case GET_GROUP_STATS_IS_LOADING:\r\n return {...state, getGroupStatsIsLoading: true}\r\n\r\n case GET_GROUP_STATS_SUCCESS:\r\n return {...state, getGroupStatsIsLoading: false, ...action.rs.data.result}\r\n\r\n case GET_GROUP_STATS_FAIL:\r\n return {...state, getGroupStatsIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default GroupStatsDuck","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Badge, Fab, Typography} from '@material-ui/core'\r\nimport {AirplanemodeActive, Edit, TouchApp, CloudDone, CloudOff} from '@material-ui/icons'\r\nimport {getAllCampaigns} from '../../ducks/campaignPeriodDuck'\r\nimport {\r\n getCurrentCampaign, hasIssuerPermissions, hasApproverPermissions, hasCreatorPermissions, getCurrentAuthHeader\r\n} from '../../helpers/utilities'\r\nimport {getGroupStats} from '../../ducks/groupStatsDuck'\r\nimport {CREATOR, APPROVAL, ISSUER} from '../../constants/groupStatsPermissions'\r\nimport pendingCollectionIcon from '../../images/pending-collection-ico.png'\r\n\r\nconst permissionTypeMapper = {\r\n CREATOR: 0,\r\n APPROVAL: 1,\r\n ISSUER: 2\r\n}\r\n\r\nclass GroupStats extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {}\r\n }\r\n\r\n componentDidMount = async () => {\r\n const rs = await this.props.getAllCampaigns()\r\n if (!rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n return\r\n }\r\n\r\n const {campaignPeriodDuck: {campaigns}} = this.props\r\n let currentCampaign = getCurrentCampaign(campaigns)\r\n if (!currentCampaign) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'No Campaign found'})\r\n } else {\r\n let permissionName = this._getPermissionType()\r\n\r\n const data = {\r\n params: {\r\n dateStart: currentCampaign.startDate,\r\n dateEnd: currentCampaign.endDate,\r\n userId: localStorage.getItem('userId'),\r\n permissionType: permissionTypeMapper[permissionName]\r\n },\r\n ...getCurrentAuthHeader()\r\n }\r\n const rs2 = await this.props.getGroupStats(data)\r\n if (!rs2.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs2.message})\r\n }\r\n }\r\n\r\n _getPermissionType() {\r\n if (hasIssuerPermissions()) {\r\n return ISSUER\r\n } else if (hasApproverPermissions()) {\r\n return APPROVAL\r\n } else if (hasCreatorPermissions()) {\r\n return CREATOR\r\n }\r\n }\r\n\r\n onFabClick = statusFilter => {\r\n this.props.onFabClick(statusFilter)\r\n }\r\n\r\n render() {\r\n const {classes, groupStatsDuck: {actionRequired, approved, pendingApproval, pendingSQ, rejected}} = this.props\r\n\r\n return (\r\n \r\n {(false) && (\r\n \r\n \r\n this.onFabClick('PENDING SQ API')}>\r\n \r\n Pending SQ\r\n \r\n )}\r\n\r\n {(hasCreatorPermissions()) && (\r\n \r\n \r\n this.onFabClick('ACTION REQUIRED')}>\r\n \r\n Action required\r\n \r\n )}\r\n\r\n {(hasCreatorPermissions() || hasApproverPermissions()) && (\r\n \r\n \r\n this.onFabClick('PENDING APPROVAL')}>\r\n \r\n Pending approval\r\n \r\n )}\r\n\r\n {(hasCreatorPermissions() || hasApproverPermissions()) && (\r\n \r\n \r\n this.onFabClick('PENDING COLLECTION')}>\r\n \r\n Approved\r\n \r\n )}\r\n\r\n {(hasCreatorPermissions() || hasApproverPermissions()) && (\r\n \r\n \r\n this.onFabClick('REJECTED')}>\r\n \r\n Rejected\r\n \r\n )}\r\n\r\n {hasIssuerPermissions() && (\r\n \r\n \r\n this.onFabClick('PENDING COLLECTION')}>\r\n \r\n Pending Collection\r\n \r\n )}\r\n\r\n {/*{(hasCreatorPermissions() ) && (*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* Deleted*/}\r\n {/**/}\r\n {/*)}*/}\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container},\r\n badgeContainer: {textAlign: 'center', margin: '0 1rem', maxWidth: '7rem'},\r\n pendingCollectionIcon: {maxWidth: '50%'}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {campaignPeriodDuck, groupStatsDuck} = state\r\n\r\n return {campaignPeriodDuck, groupStatsDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllCampaigns: () => dispatch(getAllCampaigns()),\r\n getGroupStats: params => dispatch(getGroupStats(params))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupStats))","export const CREATOR = 'CREATOR'\r\nexport const APPROVAL = 'APPROVAL'\r\nexport const ISSUER = 'ISSUER'\r\n","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n withStyles,\r\n Grid,\r\n Typography\r\n} from '@material-ui/core'\r\nimport GroupSubmissionTable from '../../containers/group/GroupSubmissionTable'\r\nimport {getAllGroup, voidGroup} from '../../ducks/groupApprovalDuck'\r\nimport {\r\n GROUP_TYPE_PENDING_APPROVAL,\r\n GROUP_TYPE_PENDING_COLLECTION,\r\n GROUP_TYPE_ACTION_REQUIRED,\r\n GROUP_TYPE_PENDING_SQ_API,\r\n GROUP_TYPE_APPROVED, GROUP_TYPE_REJECTED, GROUP_TYPE_COLLECTED, GROUP_TYPE_NOT_COLLECTED, GROUP_TYPE_VIEW_ALL\r\n} from '../../constants/groupType'\r\nimport GroupStatusFilter from '../../components/GroupStatusFilter'\r\nimport DeleteDialog from '../../components/DeleteDialog'\r\nimport {hasGroupViewPermission, hasPermissions} from '../../helpers/utilities'\r\nimport StyledSnackbar from '../../components/StyledSnackbar'\r\n\r\nimport {\r\n hasCreatorPermissions, hasApproverPermissions, hasIssuerPermissions\r\n} from '../../helpers/utilities'\r\nimport GroupStats from './GroupStats'\r\nimport StyledTable from \"../../components/StyledTable\";\r\nimport PageHelper from \"../../helpers/pageHelper\";\r\nimport {STATUS_PENDING_SQ_API, STATUS_ACTION_REQUIRED, STATUS_PENDING_APPROVAL,\r\n STATUS_APPROVED, STATUS_PENDING_COLLECTION, STATUS_REJECTED, STATUS_COLLECTED,\r\n STATUS_NOT_COLLECTED, STATUS_VIEW_ALL\r\n} from \"../../constants/groupStatus\"\r\n\r\n\r\nclass GroupPane extends Component {\r\n\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n statusFilter: \"\",\r\n groupType: '',\r\n getAllUser: false,\r\n showDeleteDialog: false,\r\n deletingGroup: {},\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n selectedPage: 1,\r\n }\r\n this.rowsPerPage = 100;\r\n this.pageHelper = new PageHelper({maxResultCount: this.rowsPerPage})\r\n }\r\n\r\n componentDidMount() {\r\n if (hasCreatorPermissions()) {\r\n this.setState({statusFilter: STATUS_ACTION_REQUIRED, groupType: GROUP_TYPE_ACTION_REQUIRED})\r\n } else if (hasApproverPermissions()) {\r\n this.setState({statusFilter: STATUS_PENDING_APPROVAL, groupType: GROUP_TYPE_PENDING_APPROVAL})\r\n } else if (hasIssuerPermissions()) {\r\n this.setState({statusFilter: STATUS_PENDING_COLLECTION, groupType: GROUP_TYPE_PENDING_COLLECTION})\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState){\r\n const {statusFilter} = this.props\r\n if (prevState.statusFilter !== this.state.statusFilter && this.state.statusFilter !== \"\") {\r\n this.onStatusFilterChange(this.state.statusFilter)\r\n }\r\n }\r\n\r\n onStatusFilterChange = async statusFilter => {\r\n let groupType = '';\r\n let getAllUser = false;\r\n\r\n switch (statusFilter) {\r\n case STATUS_PENDING_SQ_API:\r\n groupType = GROUP_TYPE_PENDING_SQ_API;\r\n break;\r\n case STATUS_ACTION_REQUIRED:\r\n groupType = GROUP_TYPE_ACTION_REQUIRED;\r\n break;\r\n case STATUS_PENDING_APPROVAL:\r\n groupType = GROUP_TYPE_PENDING_APPROVAL;\r\n if (hasApproverPermissions() || hasGroupViewPermission()) getAllUser = true;\r\n break;\r\n case STATUS_APPROVED:\r\n groupType = GROUP_TYPE_APPROVED;\r\n if (hasApproverPermissions() || hasGroupViewPermission()) getAllUser = true;\r\n break;\r\n case STATUS_PENDING_COLLECTION:\r\n if (hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) getAllUser = true\r\n groupType = GROUP_TYPE_PENDING_COLLECTION;\r\n break;\r\n case STATUS_REJECTED:\r\n if (hasApproverPermissions() || hasGroupViewPermission()) getAllUser = true;\r\n groupType = GROUP_TYPE_REJECTED;\r\n break;\r\n case STATUS_COLLECTED:\r\n if (hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) {\r\n getAllUser = true\r\n } else if (hasCreatorPermissions()) {\r\n getAllUser = false\r\n }\r\n groupType = GROUP_TYPE_COLLECTED;\r\n break;\r\n case STATUS_NOT_COLLECTED:\r\n if (hasApproverPermissions() || hasGroupViewPermission() || hasIssuerPermissions()) getAllUser = true;\r\n groupType = GROUP_TYPE_NOT_COLLECTED;\r\n break;\r\n\r\n case STATUS_VIEW_ALL:\r\n groupType = GROUP_TYPE_VIEW_ALL;\r\n break;\r\n default:\r\n console.log(\"Invalid group type\")\r\n }\r\n this.pageHelper.populatePagingData({totalCount: 0}); //reset\r\n this.setState({\r\n getAllUser: getAllUser,\r\n groupType: groupType,\r\n selectedPage: 1, //reset\r\n }, ()=>{this._getAllGroups()});\r\n\r\n }\r\n\r\n async _getAllGroups(){\r\n let skipCount;\r\n if(this.pageHelper.totalCount===0){\r\n skipCount = 0;\r\n } else {\r\n let pageCallInput = this.pageHelper.pageCall(this.state.selectedPage)\r\n skipCount = this.pageHelper.skipCount;\r\n }\r\n\r\n const rs = await this.props.getAllGroup({\r\n groupType: this.state.groupType,\r\n getAllUser: this.state.getAllUser,\r\n maxResultCount:this.rowsPerPage,\r\n skipCount: skipCount\r\n });\r\n\r\n if (!rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n } else {\r\n this.pageHelper.populatePagingData({totalCount: rs.result.totalCount});\r\n this.setState({totalCount: rs.result.totalCount})\r\n }\r\n }\r\n\r\n onChangePage = (e, page) => {\r\n let selectedPage;\r\n\r\n switch (page) {\r\n case 'first':\r\n selectedPage = 1;\r\n break;\r\n\r\n case 'prev':\r\n selectedPage = this.state.selectedPage -1;\r\n break;\r\n\r\n case 'next':\r\n selectedPage = this.state.selectedPage + 1;\r\n break;\r\n\r\n case 'last':\r\n selectedPage = this.pageHelper.getTotalNoOfPages();\r\n break;\r\n\r\n default:\r\n selectedPage = page;\r\n }\r\n\r\n this.setState({selectedPage: selectedPage},\r\n () => {\r\n this._getAllGroups()\r\n }\r\n )\r\n }\r\n\r\n\r\n onEdit = row => {\r\n if (this.state.statusFilter === 'PENDING APPROVAL') this.props.history.push('/group/group-approval/' + row.id)\r\n if (this.state.statusFilter === 'ACTION REQUIRED') this.props.history.push('/group/group-submission/' + row.id)\r\n }\r\n\r\n onDelete = row => {\r\n this.setState({showDeleteDialog: true, deletingGroup: row})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const {deletingGroup, groupType} = this.state\r\n const data = {id: deletingGroup.id}\r\n const rs = await this.props.voidGroup(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Group ' + deletingGroup.refNo + ' deleted',\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n const isApprover = hasPermissions('Group.Approver')\r\n this.props.getAllGroup({groupType, getAllUser: isApprover, maxResultCount: this.rowsPerPage, skipCount:0})\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n }\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false, deletingGroup: {}})\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onUpdateStatusFilter = statusFilter => {\r\n this.setState({statusFilter})\r\n }\r\n\r\n render() {\r\n const { groupApprovalDuck: {groups}} = this.props\r\n const {groupType, statusFilter, showDeleteDialog, deletingGroup: {refNo, submittedBy}} = this.state\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Group ref no:\r\n \r\n \r\n {refNo}\r\n \r\n \r\n \r\n \r\n Submitted by:\r\n \r\n \r\n {submittedBy}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Total: {this.pageHelper.getTotalCount()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {groupApprovalDuck} = state\r\n\r\n return {groupApprovalDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllGroup: ({groupType, isApproval, maxResultCount, skipCount}) => dispatch(getAllGroup({groupType, isApproval, maxResultCount, skipCount})),\r\n voidGroup: data => dispatch(voidGroup(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupPane))","export const convertToExcelExportFormat = ({headers, records }) =>{\r\n let formattedExcelData = [];\r\n let formattedHeaders = [];\r\n headers.forEach(header => {\r\n formattedHeaders.push(header.label);\r\n });\r\n formattedExcelData.push(formattedHeaders);\r\n\r\n records.forEach(record => {\r\n let formattedRow = [];\r\n headers.forEach(header=>{\r\n formattedRow.push(record[header.key])\r\n })\r\n formattedExcelData.push(formattedRow);\r\n })\r\n\r\n return formattedExcelData;\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport * as XLSX from 'xlsx'\r\nimport {Button, withStyles} from '@material-ui/core'\r\nimport {convertToExcelExportFormat} from '../helpers/excelDataHelper'\r\n\r\nconst sampleDataList = [\r\n {name: 'Peter', surname: 'Parker'},\r\n {name: 'Mary', surname: 'Jane'}\r\n]\r\n\r\nconst sampleHeaders = [\r\n {key: 'name', label: 'First Name'},\r\n {key: 'surname', label: 'Last Name'}\r\n]\r\n\r\nclass SpreadSheetComponent extends React.Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n data: [['a', 'b'], [1, 2], [3, 4]],\r\n col: [{name: 'sydney', surname: 'wu'}]\r\n }\r\n }\r\n\r\n exportFile = () => {\r\n const {records, headers} = this.props\r\n\r\n let formattedExcelData = convertToExcelExportFormat({records, headers})\r\n const ws = XLSX.utils.aoa_to_sheet(formattedExcelData)\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, ws, 'records')\r\n\r\n XLSX.writeFile(wb, 'ctp-export.xlsx')\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Export\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nconst styles = {}\r\n\r\nexport default withStyles(styles)(SpreadSheetComponent)","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {Link} from 'react-router-dom'\r\nimport {\r\n withStyles,\r\n Grid,\r\n Fab,\r\n Typography\r\n} from '@material-ui/core'\r\nimport {\r\n Group, Settings\r\n} from '@material-ui/icons'\r\nimport Header from '../containers/Header.js'\r\nimport GroupPane from '../containers/dashboard/GroupPane'\r\nimport StyledSection from '../components/StyledSection'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {\r\n GROUP_APPROVER_PERMISSION, GROUP_APPROVER_READ_ONLY_PERMISSION, GROUP_ISSUER_PERMISSION,\r\n GROUP_ISSUER_READ_ONLY_PERMISSION, GROUP_CREATOR_PERMISSION, GROUP_CREATOR_WITH_READ_ALL_PERMISSION,\r\n USER_ADMIN_ACCOUNT_CREATE_PERMISSION, USER_ADMIN_ACCOUNT_EDIT_PERMISSION, USER_ADMIN_ACCOUNT_READ_PERMISSION,\r\n USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION, USER_ADMIN_BANNER_READ_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_CREATE_PERMISSION, USER_ADMIN_CAMPAIGN_EDIT_PERMISSION, USER_ADMIN_CAMPAIGN_READ_PERMISSION,\r\n USER_ADMIN_ROLE_CREATE_PERMISSION, USER_ADMIN_ROLE_EDIT_PERMISSION, USER_ADMIN_ROLE_READ_PERMISSION\r\n} from '../constants/permissions'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport SpreadSheetComponent from \"../components/SpreadSheetComponent\"\r\n\r\nclass Dashboard extends React.Component {\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Dashboard`\r\n }\r\n\r\n render() {\r\n const {classes, groupApprovalDuck: {getAllGroupIsLoading}, groupStatsDuck: {getGroupStatsIsLoading}} = this.props\r\n const hasGroupApproverPermission = hasPermissions([GROUP_APPROVER_PERMISSION])\r\n\r\n const hasAdminPermissions = hasPermissions([USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_EDIT_PERMISSION, USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION,\r\n USER_ADMIN_ACCOUNT_EDIT_PERMISSION, USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION,\r\n USER_ADMIN_ROLE_EDIT_PERMISSION, USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION], 'or')\r\n\r\n const hasGroupPermissions = hasPermissions([GROUP_ISSUER_PERMISSION, GROUP_ISSUER_READ_ONLY_PERMISSION, GROUP_CREATOR_PERMISSION, GROUP_CREATOR_WITH_READ_ALL_PERMISSION, GROUP_APPROVER_PERMISSION, GROUP_APPROVER_READ_ONLY_PERMISSION], 'or')\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {hasGroupPermissions && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = function (state) {\r\n const {permissionDuck, groupApprovalDuck, groupStatsDuck} = state\r\n\r\n return {\r\n permissionDuck, groupApprovalDuck, groupStatsDuck\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {}\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container,\r\n paper: {...theme.paper, marginTop: '1em'},\r\n grid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(4, 1fr)',\r\n gridGap: '1em',\r\n textAlign: 'center',\r\n margin: '5em 1em'\r\n },\r\n noUnderline: {textDecoration: 'none'},\r\n title: {margin: '.5em auto'}\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(Dashboard))","export const VISITING_SIN = \"visiting-sin\"\r\nexport const TRANSITING = \"transiting\"\r\nexport const TRAVELING_OUT_OF_SIN = \"traveling-out-of-sin\"","export const labelToObject = input => {\r\n return {label: input, value: input}\r\n}\r\n\r\nexport const rolesToLabelObject = roles => {\r\n return roles.map(r => ({label: r.displayName, value: r.name}))\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {TextField} from '@material-ui/core'\r\nimport moment from \"moment\";\r\n\r\nclass GeneralTextDate extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n dateDisplay: \"\",\r\n displayError: false,\r\n helperText: \"\"\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n if(this.props.value){\r\n let momentDate = moment(this.props.value, \"YYYY-MM-DD\");\r\n if(!momentDate.isValid()) return;\r\n\r\n let formattedString = momentDate.format(\"DD/MM/YYYY\");\r\n this.setState({dateDisplay: formattedString})\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n\r\n if(prevState.dateDisplay !== this.state.dateDisplay){\r\n if(!this.state.dateDisplay) return;\r\n if(this.state.dateDisplay.length < 10) {\r\n this.setState({displayError: false, helperText: \"\"})\r\n this.props.onChange({target: {value: \"\" }}); //reset value\r\n return;\r\n }\r\n\r\n if(!this._checkValidSectionData(this.state.dateDisplay)){\r\n this.setState({displayError: true, helperText: \"Invalid date\"})\r\n return;\r\n }\r\n\r\n let momentDate = moment(this.state.dateDisplay, \"DD/MM/YYYY\");\r\n\r\n if(!momentDate.isValid()){\r\n this.setState({displayError: true, helperText: \"Invalid date\"})\r\n return;\r\n } else {\r\n this.setState({displayError: false, helperText: momentDate.format(\"DD MMM YYYY\")})\r\n let formattedDate = momentDate.format(\"YYYY-MM-DD\");\r\n this.props.onChange({target: {value: formattedDate }});\r\n }\r\n\r\n }\r\n\r\n if(prevProps.value !== this.props.value){\r\n\r\n if(!this.props.value){ //check for a new date entry and reset the date entry\r\n let previousDate = moment(prevProps.value, \"YYYY-MM-DD\");\r\n if(previousDate.isValid()) this.setState({dateDisplay: \"\", displayError: false, helperText: \"\" })\r\n }\r\n\r\n let momentDate = moment(this.props.value, \"YYYY-MM-DD\");\r\n if(!momentDate.isValid()) return;\r\n\r\n let formattedString = momentDate.format(\"DD/MM/YYYY\");\r\n this.setState({dateDisplay: formattedString})\r\n }\r\n\r\n }\r\n\r\n onChange = async (e)=>{\r\n e.preventDefault();\r\n let rawInput = e.target.value;\r\n let formattedDate = \"\";\r\n if(rawInput.length > 10){\r\n return;\r\n } else if(rawInput.length < 1){\r\n this.setState({dateDisplay: formattedDate});\r\n return;\r\n } else{\r\n if(this._checkInvalidCharacters(rawInput[rawInput.length-1])) return;\r\n formattedDate = this._addSlash(rawInput);\r\n if(this._checkIncorrectSectionLength(formattedDate)) return;\r\n this.setState({dateDisplay: formattedDate})\r\n }\r\n };\r\n\r\n _checkIncorrectSectionLength = (string)=>{\r\n let sections = string.split(\"/\");\r\n let isIncorrectLength = false;\r\n if(sections.length > 0){\r\n if(sections[0].length > 2) isIncorrectLength = true;\r\n }\r\n if(sections.length > 1){\r\n if(sections[1].length > 2) isIncorrectLength = true;\r\n }\r\n if(sections.length > 2){\r\n if(sections[2].length > 4) isIncorrectLength = true;\r\n }\r\n return isIncorrectLength;\r\n };\r\n\r\n _checkValidSectionData = (dateString)=>{\r\n let sections = dateString.split(\"/\");\r\n let isValidSectionData = true;\r\n if(sections.length !== 3) isValidSectionData = false;\r\n if(sections[0] > 31) isValidSectionData = false;\r\n if(sections[1] > 12) isValidSectionData = false;\r\n if(sections[2] < 1900 || sections[2] > 2100) isValidSectionData = false;\r\n return isValidSectionData;\r\n };\r\n\r\n _checkInvalidCharacters = (string) => {\r\n let invalidCharRegex = /[^0-9/]/gi;\r\n return !!string.match(invalidCharRegex);\r\n };\r\n\r\n _addSlash = (numericDate) => {\r\n let formattedDate = numericDate;\r\n if(this._checkNoOfSlash(numericDate) === 2) return numericDate;\r\n\r\n if(numericDate.length === 3){\r\n if(this._checkNoOfSlash(numericDate) < 1){\r\n formattedDate = numericDate.substr(0,2) + \"/\" + numericDate.substr(2);\r\n }\r\n }\r\n if(numericDate.length === 6){\r\n if(this._checkNoOfSlash(numericDate) < 2) {\r\n formattedDate = numericDate.substr(0, 5) + \"/\" + numericDate.substr(5);\r\n }\r\n }\r\n return formattedDate;\r\n };\r\n\r\n _checkNoOfSlash = (string) => {\r\n let slashRegex = /\\//gi;\r\n let slashMatch = string.match(slashRegex)\r\n if(!slashMatch) return 0;\r\n else return slashMatch.length\r\n }\r\n\r\n\r\n _checkInvalidChar = (alpherNumbericDate) => {\r\n var numberRegex = /\\D/g;\r\n if(numberRegex.test(alpherNumbericDate)){\r\n\r\n }\r\n var reg = /^[a-zA-Z]+$/;\r\n return !reg.test(alpherNumbericDate)\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n this.onChange(event)}\r\n style={this.props.helperText ? {width: '100%', height: 60} : styles.container.textField.styles}\r\n value={this.state.dateDisplay}\r\n variant=\"outlined\"\r\n error={this.state.displayError || this.props.error}\r\n helperText={this.state.helperText || this.props.helperText}\r\n disabled={this.props.disabled || false}\r\n />\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n styles: {width: '100%'},\r\n textField: {\r\n styles: {width: '100%'}\r\n }\r\n }\r\n}\r\n\r\nGeneralTextDate.propTypes = {\r\n /*penColor: PropTypes.string.isRequired,\r\n dimensions: PropTypes.shape({\r\n width: PropTypes.number.isRequired,\r\n height: PropTypes.number.isRequired\r\n\r\n }).isRequired,\r\n clearButtonText: PropTypes.string*/\r\n}\r\n\r\nexport default GeneralTextDate","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment'\r\nimport {Typography, Button, MenuItem, TextField, Radio} from '@material-ui/core';\r\nimport Select from 'react-select'\r\nimport {labelToObject} from '../../helpers/reactSelectHelper'\r\nimport GeneralTextDate from './GeneralTextDate'\r\n\r\nclass GeneralFormContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n formInput: {}\r\n }\r\n }\r\n\r\n _handleTextChange = (key, event) => {\r\n let formInput = {...this.state.formInput};\r\n let value = event.target.value;\r\n formInput[key] = value;\r\n this.setState({formInput: formInput});\r\n this.props.onFieldChange(key, value)\r\n };\r\n\r\n _handleFileChange = (key, event) => {\r\n let formInput = {...this.state.formInput};\r\n let value = event.target.files;\r\n formInput[key] = value;\r\n this.setState({formInput: formInput});\r\n this.props.onFieldChange(key, value)\r\n }\r\n\r\n _handleSelectChange = (key, event) => {\r\n let value = event.target.value;\r\n let formInput = {...this.state.formInput};\r\n formInput[key] = value;\r\n this.setState({formInput: formInput});\r\n this.props.onFieldChange(key, value)\r\n };\r\n\r\n _handleRadioClick = (key, value) => {\r\n let formInput = {...this.state.formInput};\r\n formInput[key] = value;\r\n this.setState({formInput: formInput});\r\n this.props.onFieldChange(key, value)\r\n };\r\n\r\n _handleAutocompleteChange = (key,valueObj) => {\r\n this.props.onFieldChange(key,valueObj.label)\r\n if (this.props.onBlur) this.props.onBlur({key, value: valueObj.label})\r\n }\r\n\r\n _handleBlur = (key, event) =>{\r\n let value = event.target.value\r\n if (this.props.onBlur) this.props.onBlur({key, value})\r\n\r\n }\r\n\r\n\r\n _checkDisplayCondition({key,valueArr}){\r\n\r\n for (var i =0; i\r\n\r\n
\r\n \r\n {formField.type !== 'hidden' && \r\n {formField.label}\r\n }\r\n
\r\n\r\n \r\n\r\n {(formField.type === 'text' ||\r\n formField.type === 'password' ||\r\n !formField.type\r\n ) && (\r\n this._handleTextChange(formField.key, event)}\r\n style={formField.helperText ? {width: '100%', height: 60} : styles.container.formContainer.row.inputRow.fieldWrapper.input.styles}\r\n value={this.props.formValues[formField.key] || ''}\r\n variant=\"outlined\"\r\n error={formField.error}\r\n helperText={formField.helperText}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n )}\r\n\r\n {( formField.type === \"file\" && this._handleFileChange(formField.key, event)}\r\n style={formField.helperText ? {width: '100%', height: 60} : styles.container.formContainer.row.inputRow.fieldWrapper.input.styles}\r\n variant=\"outlined\"\r\n helperText={formField.helperText}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n )}\r\n\r\n {formField.type === \"date\" &&\r\n this._handleTextChange(formField.key, event)}\r\n style={formField.helperText ? {width: '100%', height: 60} : styles.container.formContainer.row.inputRow.fieldWrapper.input.styles}\r\n value={ this.props.formValues[formField.key] !== undefined ? moment(this.props.formValues[formField.key]).format('YYYY-MM-DD') : ''}\r\n variant=\"outlined\"\r\n helperText={formField.helperText}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n }\r\n\r\n {formField.type === \"general-text-date\" &&\r\n this._handleTextChange(formField.key, event)}\r\n style={formField.helperText ? {width: '100%', height: 60} : styles.container.formContainer.row.inputRow.fieldWrapper.input.styles}\r\n value={ this.props.formValues[formField.key] !== undefined ? moment(this.props.formValues[formField.key]).format('YYYY-MM-DD') : ''}\r\n variant=\"outlined\"\r\n helperText={formField.helperText}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n }\r\n \r\n {(formField.type === 'multiline') && (\r\n
\r\n this._handleTextChange(formField.key, event)}\r\n value={this.props.formValues[formField.key]}\r\n style={styles.container.formContainer.row.inputRow.fieldWrapper.multiline.styles}\r\n variant=\"outlined\"\r\n multiline\r\n rows={formField.multilineRows}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n
\r\n )}\r\n\r\n {formField.type === 'select' && (\r\n this._handleSelectChange(formField.key, event)}\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n >\r\n {formField.options.map(option => (\r\n {option}\r\n ))}\r\n \r\n )}\r\n\r\n {formField.type === 'radio' && (\r\n
\r\n {\r\n formField.options.map(option => (\r\n
\r\n this._handleRadioClick(formField.key, option.value)}\r\n value={option.value}\r\n name=\"radio-button-demo\"\r\n onBlur={(event)=>this._handleBlur(formField.key, event)}\r\n disabled={formField.disabled || false}\r\n />\r\n {option.label} \r\n
\r\n ))\r\n }\r\n
\r\n )}\r\n\r\n {formField.type === 'autocomplete' && (\r\n
\r\n this._handleAutocompleteChange(formField.key, v)}\r\n options={formField.options}\r\n isDisabled={formField.disabled}\r\n />\r\n
\r\n )}\r\n\r\n \r\n \r\n\r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n
\r\n\r\n {this.props.formFields.map(formField => {\r\n if ( formField.displayCondition) {\r\n if(this._checkDisplayCondition(formField.displayCondition)){\r\n return this._renderField(formField);\r\n } else {\r\n return null\r\n }\r\n\r\n } else {\r\n return this._renderField(formField);\r\n }\r\n })}\r\n\r\n\r\n {this.props.showButtons && (\r\n
\r\n
\r\n \r\n Confirm\r\n \r\n
\r\n\r\n
\r\n \r\n Cancel\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n styles: {\r\n width: '100%',\r\n },\r\n formContainer: {\r\n styles: {\r\n width: '100%',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n row: {\r\n styles: {\r\n width: '100%'\r\n },\r\n inputRow: {\r\n styles: {\r\n marginTop: 20,\r\n marginLeft: 0,\r\n marginRight: 60,\r\n display: 'flex',\r\n },\r\n labelWrapper: {\r\n styles: {flex: 2},\r\n label: {\r\n styles: {\r\n textAlign: 'left',\r\n marginTop: 5\r\n }\r\n }\r\n },\r\n fieldWrapper: {\r\n styles: {flex: 3},\r\n input: {\r\n styles: {width: '100%'}\r\n },\r\n multiline: {\r\n styles: {width: '100%'}\r\n },\r\n customComponent: {\r\n styles: {width: '100%'}\r\n }\r\n\r\n }\r\n\r\n },\r\n },\r\n\r\n btnRow: {\r\n styles: {\r\n width: '100%',\r\n marginTop: 40,\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n },\r\n btnWrapper: {\r\n styles: {flex: 1},\r\n btn: {\r\n width: 60,\r\n height: 30\r\n }\r\n }\r\n }\r\n\r\n },\r\n },\r\n};\r\n\r\nGeneralFormContainer.propTypes = {\r\n columns: PropTypes.number.isRequired,\r\n formFields: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n type: PropTypes.oneOf(['text', 'password', 'select', 'file', 'date', 'multiline', 'radio', 'autocomplete', 'checkbox','hidden', 'general-text-date']),\r\n options: PropTypes.array,\r\n multilineRows: PropTypes.number\r\n })).isRequired,\r\n onFieldChange: PropTypes.func.isRequired,\r\n formValues: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default GeneralFormContainer;","const Countries = [{\"label\":\"AFGHANISTAN\",\"value\":\"AFGHANISTAN\"},{\"label\":\"ALAND ISLANDS\",\"value\":\"ALAND ISLANDS\"},{\"label\":\"ALBANIA\",\"value\":\"ALBANIA\"},{\"label\":\"ALGERIA\",\"value\":\"ALGERIA\"},{\"label\":\"AMERICAN SAMOA\",\"value\":\"AMERICAN SAMOA\"},{\"label\":\"ANDORRA\",\"value\":\"ANDORRA\"},{\"label\":\"ANGOLA\",\"value\":\"ANGOLA\"},{\"label\":\"ANGUILLA\",\"value\":\"ANGUILLA\"},{\"label\":\"ANTARCTICA\",\"value\":\"ANTARCTICA\"},{\"label\":\"ANTIGUA AND BARBUDA\",\"value\":\"ANTIGUA AND BARBUDA\"},{\"label\":\"ARGENTINA\",\"value\":\"ARGENTINA\"},{\"label\":\"ARMENIA\",\"value\":\"ARMENIA\"},{\"label\":\"ARUBA\",\"value\":\"ARUBA\"},{\"label\":\"ASCENSION\",\"value\":\"ASCENSION\"},{\"label\":\"AUSTRALIA\",\"value\":\"AUSTRALIA\"},{\"label\":\"AUSTRIA\",\"value\":\"AUSTRIA\"},{\"label\":\"AZERBAIJAN\",\"value\":\"AZERBAIJAN\"},{\"label\":\"BAHAMAS\",\"value\":\"BAHAMAS\"},{\"label\":\"BAHRAIN\",\"value\":\"BAHRAIN\"},{\"label\":\"BANGLADESH\",\"value\":\"BANGLADESH\"},{\"label\":\"BARBADOS\",\"value\":\"BARBADOS\"},{\"label\":\"BELARUS\",\"value\":\"BELARUS\"},{\"label\":\"BELGIUM\",\"value\":\"BELGIUM\"},{\"label\":\"BELIZE\",\"value\":\"BELIZE\"},{\"label\":\"BENIN\",\"value\":\"BENIN\"},{\"label\":\"BERMUDA\",\"value\":\"BERMUDA\"},{\"label\":\"BHUTAN\",\"value\":\"BHUTAN\"},{\"label\":\"BOLIVIA, PLURINATIONAL STATE OF\",\"value\":\"BOLIVIA, PLURINATIONAL STATE OF\"},{\"label\":\"BONAIRE, SINT EUSTATIUS AND SABA\",\"value\":\"BONAIRE, SINT EUSTATIUS AND SABA\"},{\"label\":\"BOSNIA AND HERZEGOVINA\",\"value\":\"BOSNIA AND HERZEGOVINA\"},{\"label\":\"BOTSWANA\",\"value\":\"BOTSWANA\"},{\"label\":\"BOUVET ISLAND\",\"value\":\"BOUVET ISLAND\"},{\"label\":\"BRAZIL\",\"value\":\"BRAZIL\"},{\"label\":\"BRITISH INDIAN OCEAN TERRITORY\",\"value\":\"BRITISH INDIAN OCEAN TERRITORY\"},{\"label\":\"BRUNEI DARUSSALAM\",\"value\":\"BRUNEI DARUSSALAM\"},{\"label\":\"BULGARIA\",\"value\":\"BULGARIA\"},{\"label\":\"BURKINA FASO\",\"value\":\"BURKINA FASO\"},{\"label\":\"BURUNDI\",\"value\":\"BURUNDI\"},{\"label\":\"COTE D'IVOIRE\",\"value\":\"COTE D'IVOIRE\"},{\"label\":\"CAMBODIA\",\"value\":\"CAMBODIA\"},{\"label\":\"CAMEROON\",\"value\":\"CAMEROON\"},{\"label\":\"CANADA\",\"value\":\"CANADA\"},{\"label\":\"CAPE VERDE\",\"value\":\"CAPE VERDE\"},{\"label\":\"CAYMAN ISLANDS\",\"value\":\"CAYMAN ISLANDS\"},{\"label\":\"CENTRAL AFRICAN REPUBLIC\",\"value\":\"CENTRAL AFRICAN REPUBLIC\"},{\"label\":\"CHAD\",\"value\":\"CHAD\"},{\"label\":\"CHILE\",\"value\":\"CHILE\"},{\"label\":\"CHINA\",\"value\":\"CHINA\"},{\"label\":\"CHRISTMAS ISLAND\",\"value\":\"CHRISTMAS ISLAND\"},{\"label\":\"COCOS (KEELING) ISLANDS\",\"value\":\"COCOS (KEELING) ISLANDS\"},{\"label\":\"COLOMBIA\",\"value\":\"COLOMBIA\"},{\"label\":\"COMOROS\",\"value\":\"COMOROS\"},{\"label\":\"CONGO\",\"value\":\"CONGO\"},{\"label\":\"CONGO, THE DEMOCRATIC REPUBLIC OF THE\",\"value\":\"CONGO, THE DEMOCRATIC REPUBLIC OF THE\"},{\"label\":\"COOK ISLANDS\",\"value\":\"COOK ISLANDS\"},{\"label\":\"COSTA RICA\",\"value\":\"COSTA RICA\"},{\"label\":\"CROATIA\",\"value\":\"CROATIA\"},{\"label\":\"CUBA\",\"value\":\"CUBA\"},{\"label\":\"CURAÇAO\",\"value\":\"CURAÇAO\"},{\"label\":\"CYPRUS\",\"value\":\"CYPRUS\"},{\"label\":\"CZECH REPUBLIC\",\"value\":\"CZECH REPUBLIC\"},{\"label\":\"DENMARK\",\"value\":\"DENMARK\"},{\"label\":\"DIEGO GARCIA\",\"value\":\"DIEGO GARCIA\"},{\"label\":\"DJIBOUTI\",\"value\":\"DJIBOUTI\"},{\"label\":\"DOMINICA\",\"value\":\"DOMINICA\"},{\"label\":\"DOMINICAN REPUBLIC\",\"value\":\"DOMINICAN REPUBLIC\"},{\"label\":\"ECUADOR\",\"value\":\"ECUADOR\"},{\"label\":\"EGYPT\",\"value\":\"EGYPT\"},{\"label\":\"EL SALVADOR\",\"value\":\"EL SALVADOR\"},{\"label\":\"EQUATORIAL GUINEA\",\"value\":\"EQUATORIAL GUINEA\"},{\"label\":\"ERITREA\",\"value\":\"ERITREA\"},{\"label\":\"ESTONIA\",\"value\":\"ESTONIA\"},{\"label\":\"ETHIOPIA\",\"value\":\"ETHIOPIA\"},{\"label\":\"FALKLAND ISLANDS (MALVINAS)\",\"value\":\"FALKLAND ISLANDS (MALVINAS)\"},{\"label\":\"FAROE ISLANDS\",\"value\":\"FAROE ISLANDS\"},{\"label\":\"FIJI\",\"value\":\"FIJI\"},{\"label\":\"FINLAND\",\"value\":\"FINLAND\"},{\"label\":\"FRANCE\",\"value\":\"FRANCE\"},{\"label\":\"FRENCH GUIANA\",\"value\":\"FRENCH GUIANA\"},{\"label\":\"FRENCH POLYNESIA\",\"value\":\"FRENCH POLYNESIA\"},{\"label\":\"FRENCH SOUTHERN TERRITORIES\",\"value\":\"FRENCH SOUTHERN TERRITORIES\"},{\"label\":\"GABON\",\"value\":\"GABON\"},{\"label\":\"GAMBIA\",\"value\":\"GAMBIA\"},{\"label\":\"GEORGIA\",\"value\":\"GEORGIA\"},{\"label\":\"GERMANY\",\"value\":\"GERMANY\"},{\"label\":\"GHANA\",\"value\":\"GHANA\"},{\"label\":\"GIBRALTAR\",\"value\":\"GIBRALTAR\"},{\"label\":\"GREECE\",\"value\":\"GREECE\"},{\"label\":\"GREENLAND\",\"value\":\"GREENLAND\"},{\"label\":\"GRENADA\",\"value\":\"GRENADA\"},{\"label\":\"GUADELOUPE\",\"value\":\"GUADELOUPE\"},{\"label\":\"GUAM\",\"value\":\"GUAM\"},{\"label\":\"GUATEMALA\",\"value\":\"GUATEMALA\"},{\"label\":\"GUERNSEY\",\"value\":\"GUERNSEY\"},{\"label\":\"GUINEA\",\"value\":\"GUINEA\"},{\"label\":\"GUINEA-BISSAU\",\"value\":\"GUINEA-BISSAU\"},{\"label\":\"GUYANA\",\"value\":\"GUYANA\"},{\"label\":\"HAITI\",\"value\":\"HAITI\"},{\"label\":\"HEARD ISLAND AND MCDONALD ISLANDS\",\"value\":\"HEARD ISLAND AND MCDONALD ISLANDS\"},{\"label\":\"HOLY SEE (VATICAN CITY STATE)\",\"value\":\"HOLY SEE (VATICAN CITY STATE)\"},{\"label\":\"HONDURAS\",\"value\":\"HONDURAS\"},{\"label\":\"HONG KONG\",\"value\":\"HONG KONG\"},{\"label\":\"HUNGARY\",\"value\":\"HUNGARY\"},{\"label\":\"ICELAND\",\"value\":\"ICELAND\"},{\"label\":\"INDIA\",\"value\":\"INDIA\"},{\"label\":\"INDONESIA\",\"value\":\"INDONESIA\"},{\"label\":\"IRAN, ISLAMIC REPUBLIC OF\",\"value\":\"IRAN, ISLAMIC REPUBLIC OF\"},{\"label\":\"IRAQ\",\"value\":\"IRAQ\"},{\"label\":\"IRELAND\",\"value\":\"IRELAND\"},{\"label\":\"ISLE OF MAN\",\"value\":\"ISLE OF MAN\"},{\"label\":\"ISRAEL\",\"value\":\"ISRAEL\"},{\"label\":\"ITALY\",\"value\":\"ITALY\"},{\"label\":\"IVORY COAST\",\"value\":\"IVORY COAST\"},{\"label\":\"JAMAICA\",\"value\":\"JAMAICA\"},{\"label\":\"JAPAN\",\"value\":\"JAPAN\"},{\"label\":\"JERSEY\",\"value\":\"JERSEY\"},{\"label\":\"JORDAN\",\"value\":\"JORDAN\"},{\"label\":\"KAZAKHSTAN\",\"value\":\"KAZAKHSTAN\"},{\"label\":\"KENYA\",\"value\":\"KENYA\"},{\"label\":\"KIRIBATI\",\"value\":\"KIRIBATI\"},{\"label\":\"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF\",\"value\":\"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF\"},{\"label\":\"KOREA, REPUBLIC OF\",\"value\":\"KOREA, REPUBLIC OF\"},{\"label\":\"KOSOVO\",\"value\":\"KOSOVO\"},{\"label\":\"KUWAIT\",\"value\":\"KUWAIT\"},{\"label\":\"KYRGYZSTAN\",\"value\":\"KYRGYZSTAN\"},{\"label\":\"LAO PEOPLE'S DEMOCRATIC REPUBLIC\",\"value\":\"LAO PEOPLE'S DEMOCRATIC REPUBLIC\"},{\"label\":\"LATVIA\",\"value\":\"LATVIA\"},{\"label\":\"LEBANON\",\"value\":\"LEBANON\"},{\"label\":\"LESOTHO\",\"value\":\"LESOTHO\"},{\"label\":\"LIBERIA\",\"value\":\"LIBERIA\"},{\"label\":\"LIBYA\",\"value\":\"LIBYA\"},{\"label\":\"LIECHTENSTEIN\",\"value\":\"LIECHTENSTEIN\"},{\"label\":\"LITHUANIA\",\"value\":\"LITHUANIA\"},{\"label\":\"LUXEMBOURG\",\"value\":\"LUXEMBOURG\"},{\"label\":\"MACAO\",\"value\":\"MACAO\"},{\"label\":\"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF\",\"value\":\"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF\"},{\"label\":\"MADAGASCAR\",\"value\":\"MADAGASCAR\"},{\"label\":\"MALAWI\",\"value\":\"MALAWI\"},{\"label\":\"MALAYSIA\",\"value\":\"MALAYSIA\"},{\"label\":\"MALDIVES\",\"value\":\"MALDIVES\"},{\"label\":\"MALI\",\"value\":\"MALI\"},{\"label\":\"MALTA\",\"value\":\"MALTA\"},{\"label\":\"MARSHALL ISLANDS\",\"value\":\"MARSHALL ISLANDS\"},{\"label\":\"MARTINIQUE\",\"value\":\"MARTINIQUE\"},{\"label\":\"MAURITANIA\",\"value\":\"MAURITANIA\"},{\"label\":\"MAURITIUS\",\"value\":\"MAURITIUS\"},{\"label\":\"MAYOTTE\",\"value\":\"MAYOTTE\"},{\"label\":\"MEXICO\",\"value\":\"MEXICO\"},{\"label\":\"MICRONESIA, FEDERATED STATES OF\",\"value\":\"MICRONESIA, FEDERATED STATES OF\"},{\"label\":\"MOLDOVA, REPUBLIC OF\",\"value\":\"MOLDOVA, REPUBLIC OF\"},{\"label\":\"MONACO\",\"value\":\"MONACO\"},{\"label\":\"MONGOLIA\",\"value\":\"MONGOLIA\"},{\"label\":\"MONTENEGRO\",\"value\":\"MONTENEGRO\"},{\"label\":\"MONTSERRAT\",\"value\":\"MONTSERRAT\"},{\"label\":\"MOROCCO\",\"value\":\"MOROCCO\"},{\"label\":\"MOZAMBIQUE\",\"value\":\"MOZAMBIQUE\"},{\"label\":\"MYANMAR\",\"value\":\"MYANMAR\"},{\"label\":\"NAMIBIA\",\"value\":\"NAMIBIA\"},{\"label\":\"NAURU\",\"value\":\"NAURU\"},{\"label\":\"NEPAL\",\"value\":\"NEPAL\"},{\"label\":\"NETHERLANDS\",\"value\":\"NETHERLANDS\"},{\"label\":\"NETHERLANDS ANTILLES\",\"value\":\"NETHERLANDS ANTILLES\"},{\"label\":\"NEW CALEDONIA\",\"value\":\"NEW CALEDONIA\"},{\"label\":\"NEW ZEALAND\",\"value\":\"NEW ZEALAND\"},{\"label\":\"NICARAGUA\",\"value\":\"NICARAGUA\"},{\"label\":\"NIGER\",\"value\":\"NIGER\"},{\"label\":\"NIGERIA\",\"value\":\"NIGERIA\"},{\"label\":\"NIUE\",\"value\":\"NIUE\"},{\"label\":\"NORFOLK ISLAND\",\"value\":\"NORFOLK ISLAND\"},{\"label\":\"NORTHERN MARIANA ISLANDS\",\"value\":\"NORTHERN MARIANA ISLANDS\"},{\"label\":\"NORWAY\",\"value\":\"NORWAY\"},{\"label\":\"OMAN\",\"value\":\"OMAN\"},{\"label\":\"PAKISTAN\",\"value\":\"PAKISTAN\"},{\"label\":\"PALAU\",\"value\":\"PALAU\"},{\"label\":\"PALESTINIAN TERRITORY, OCCUPIED\",\"value\":\"PALESTINIAN TERRITORY, OCCUPIED\"},{\"label\":\"PANAMA\",\"value\":\"PANAMA\"},{\"label\":\"PAPUA NEW GUINEA\",\"value\":\"PAPUA NEW GUINEA\"},{\"label\":\"PARAGUAY\",\"value\":\"PARAGUAY\"},{\"label\":\"PERU\",\"value\":\"PERU\"},{\"label\":\"PHILIPPINES\",\"value\":\"PHILIPPINES\"},{\"label\":\"PITCAIRN\",\"value\":\"PITCAIRN\"},{\"label\":\"POLAND\",\"value\":\"POLAND\"},{\"label\":\"PORTUGAL\",\"value\":\"PORTUGAL\"},{\"label\":\"PUERTO RICO\",\"value\":\"PUERTO RICO\"},{\"label\":\"QATAR\",\"value\":\"QATAR\"},{\"label\":\"RÉUNION\",\"value\":\"RÉUNION\"},{\"label\":\"ROMANIA\",\"value\":\"ROMANIA\"},{\"label\":\"RUSSIAN FEDERATION\",\"value\":\"RUSSIAN FEDERATION\"},{\"label\":\"RWANDA\",\"value\":\"RWANDA\"},{\"label\":\"SAINT BARTHÉLEMY\",\"value\":\"SAINT BARTHÉLEMY\"},{\"label\":\"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA\",\"value\":\"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA\"},{\"label\":\"SAINT KITTS AND NEVIS\",\"value\":\"SAINT KITTS AND NEVIS\"},{\"label\":\"SAINT LUCIA\",\"value\":\"SAINT LUCIA\"},{\"label\":\"SAINT MARTIN (FRENCH PART)\",\"value\":\"SAINT MARTIN (FRENCH PART)\"},{\"label\":\"SAINT PIERRE AND MIQUELON\",\"value\":\"SAINT PIERRE AND MIQUELON\"},{\"label\":\"SAINT VINCENT AND THE GRENADINES\",\"value\":\"SAINT VINCENT AND THE GRENADINES\"},{\"label\":\"SAMOA\",\"value\":\"SAMOA\"},{\"label\":\"SAN MARINO\",\"value\":\"SAN MARINO\"},{\"label\":\"SAO TOME AND PRINCIPE\",\"value\":\"SAO TOME AND PRINCIPE\"},{\"label\":\"SAUDI ARABIA\",\"value\":\"SAUDI ARABIA\"},{\"label\":\"SENEGAL\",\"value\":\"SENEGAL\"},{\"label\":\"SERBIA\",\"value\":\"SERBIA\"},{\"label\":\"SEYCHELLES\",\"value\":\"SEYCHELLES\"},{\"label\":\"SIERRA LEONE\",\"value\":\"SIERRA LEONE\"},{\"label\":\"SINGAPORE\",\"value\":\"SINGAPORE\"},{\"label\":\"SINT MAARTEN (DUTCH PART)\",\"value\":\"SINT MAARTEN (DUTCH PART)\"},{\"label\":\"SLOVAKIA\",\"value\":\"SLOVAKIA\"},{\"label\":\"SLOVENIA\",\"value\":\"SLOVENIA\"},{\"label\":\"SOLOMON ISLANDS\",\"value\":\"SOLOMON ISLANDS\"},{\"label\":\"SOMALIA\",\"value\":\"SOMALIA\"},{\"label\":\"SOUTH AFRICA\",\"value\":\"SOUTH AFRICA\"},{\"label\":\"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS\",\"value\":\"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS\"},{\"label\":\"SOUTH SUDAN\",\"value\":\"SOUTH SUDAN\"},{\"label\":\"SPAIN\",\"value\":\"SPAIN\"},{\"label\":\"SRI LANKA\",\"value\":\"SRI LANKA\"},{\"label\":\"SUDAN\",\"value\":\"SUDAN\"},{\"label\":\"SURINAME\",\"value\":\"SURINAME\"},{\"label\":\"SVALBARD AND JAN MAYEN\",\"value\":\"SVALBARD AND JAN MAYEN\"},{\"label\":\"SWAZILAND\",\"value\":\"SWAZILAND\"},{\"label\":\"SWEDEN\",\"value\":\"SWEDEN\"},{\"label\":\"SWITZERLAND\",\"value\":\"SWITZERLAND\"},{\"label\":\"SYRIAN ARAB REPUBLIC\",\"value\":\"SYRIAN ARAB REPUBLIC\"},{\"label\":\"TAIWAN, PROVINCE OF CHINA\",\"value\":\"TAIWAN, PROVINCE OF CHINA\"},{\"label\":\"TAJIKISTAN\",\"value\":\"TAJIKISTAN\"},{\"label\":\"TANZANIA, UNITED REPUBLIC OF\",\"value\":\"TANZANIA, UNITED REPUBLIC OF\"},{\"label\":\"THAILAND\",\"value\":\"THAILAND\"},{\"label\":\"TIMOR-LESTE\",\"value\":\"TIMOR-LESTE\"},{\"label\":\"TOGO\",\"value\":\"TOGO\"},{\"label\":\"TOKELAU\",\"value\":\"TOKELAU\"},{\"label\":\"TONGA\",\"value\":\"TONGA\"},{\"label\":\"TRINIDAD AND TOBAGO\",\"value\":\"TRINIDAD AND TOBAGO\"},{\"label\":\"TUNISIA\",\"value\":\"TUNISIA\"},{\"label\":\"TURKEY\",\"value\":\"TURKEY\"},{\"label\":\"TURKMENISTAN\",\"value\":\"TURKMENISTAN\"},{\"label\":\"TURKS AND CAICOS ISLANDS\",\"value\":\"TURKS AND CAICOS ISLANDS\"},{\"label\":\"TUVALU\",\"value\":\"TUVALU\"},{\"label\":\"UGANDA\",\"value\":\"UGANDA\"},{\"label\":\"UKRAINE\",\"value\":\"UKRAINE\"},{\"label\":\"UNITED ARAB EMIRATES\",\"value\":\"UNITED ARAB EMIRATES\"},{\"label\":\"UNITED KINGDOM\",\"value\":\"UNITED KINGDOM\"},{\"label\":\"UNITED STATES\",\"value\":\"UNITED STATES\"},{\"label\":\"UNITED STATES MINOR OUTLYING ISLANDS\",\"value\":\"UNITED STATES MINOR OUTLYING ISLANDS\"},{\"label\":\"URUGUAY\",\"value\":\"URUGUAY\"},{\"label\":\"UZBEKISTAN\",\"value\":\"UZBEKISTAN\"},{\"label\":\"VANUATU\",\"value\":\"VANUATU\"},{\"label\":\"VENEZUELA, BOLIVARIAN REPUBLIC OF\",\"value\":\"VENEZUELA, BOLIVARIAN REPUBLIC OF\"},{\"label\":\"VIET NAM\",\"value\":\"VIET NAM\"},{\"label\":\"VIRGIN ISLANDS, BRITISH\",\"value\":\"VIRGIN ISLANDS, BRITISH\"},{\"label\":\"VIRGIN ISLANDS, U.S.\",\"value\":\"VIRGIN ISLANDS, U.S.\"},{\"label\":\"WALLIS AND FUTUNA\",\"value\":\"WALLIS AND FUTUNA\"},{\"label\":\"WESTERN SAHARA\",\"value\":\"WESTERN SAHARA\"},{\"label\":\"YEMEN\",\"value\":\"YEMEN\"},{\"label\":\"ZAMBIA\",\"value\":\"ZAMBIA\"},{\"label\":\"ZIMBABWE\",\"value\":\"ZIMBABWE\"}]\r\n\r\nexport default Countries","export const CARD_NO_OF_DIGITS = 19;\r\n\r\nexport const CR_CARD_PREFIX = \"00002\";\r\nexport const CTP_CARD_PREFIX = \"00004\";\r\nexport const CTP_CARD_DEFAULT_CCN = \"01001\";","const CallingCodes = [{\"country\":\"AFGHANISTAN\",\"label\":\"93\"},{\"country\":\"ALAND ISLANDS\",\"label\":\"358\"},{\"country\":\"ALBANIA\",\"label\":\"355\"},{\"country\":\"ALGERIA\",\"label\":\"213\"},{\"country\":\"AMERICAN SAMOA\",\"label\":\"1684\"},{\"country\":\"ANDORRA\",\"label\":\"376\"},{\"country\":\"ANGOLA\",\"label\":\"244\"},{\"country\":\"ANGUILLA\",\"label\":\"1264\"},{\"country\":\"ANTARCTICA\",\"label\":\"672\"},{\"country\":\"ANTIGUA AND BARBUDA\",\"label\":\"1268\"},{\"country\":\"ARGENTINA\",\"label\":\"54\"},{\"country\":\"ARMENIA\",\"label\":\"374\"},{\"country\":\"ARUBA\",\"label\":\"297\"},{\"country\":\"ASCENSION\",\"label\":\"247\"},{\"country\":\"AUSTRALIA\",\"label\":\"61\"},{\"country\":\"AUSTRIA\",\"label\":\"43\"},{\"country\":\"AZERBAIJAN\",\"label\":\"994\"},{\"country\":\"BAHAMAS\",\"label\":\"1242\"},{\"country\":\"BAHRAIN\",\"label\":\"973\"},{\"country\":\"BANGLADESH\",\"label\":\"880\"},{\"country\":\"BARBADOS\",\"label\":\"1246\"},{\"country\":\"BELARUS\",\"label\":\"375\"},{\"country\":\"BELGIUM\",\"label\":\"32\"},{\"country\":\"BELIZE\",\"label\":\"501\"},{\"country\":\"BENIN\",\"label\":\"229\"},{\"country\":\"BERMUDA\",\"label\":\"1441\"},{\"country\":\"BHUTAN\",\"label\":\"975\"},{\"country\":\"BOLIVIA, PLURINATIONAL STATE OF\",\"label\":\"591\"},{\"country\":\"BONAIRE, SINT EUSTATIUS AND SABA\",\"label\":\"599\"},{\"country\":\"BOSNIA AND HERZEGOVINA\",\"label\":\"387\"},{\"country\":\"BOTSWANA\",\"label\":\"267\"},{\"country\":\"BOUVET ISLAND\",\"label\":\"55\"},{\"country\":\"BRAZIL\",\"label\":\"55\"},{\"country\":\"BRITISH INDIAN OCEAN TERRITORY\",\"label\":\"246\"},{\"country\":\"BRUNEI DARUSSALAM\",\"label\":\"673\"},{\"country\":\"BULGARIA\",\"label\":\"359\"},{\"country\":\"BURKINA FASO\",\"label\":\"226\"},{\"country\":\"BURUNDI\",\"label\":\"257\"},{\"country\":\"COTE D'IVOIRE\",\"label\":\"225\"},{\"country\":\"CAMBODIA\",\"label\":\"855\"},{\"country\":\"CAMEROON\",\"label\":\"237\"},{\"country\":\"CANADA\",\"label\":\"1\"},{\"country\":\"CAPE VERDE\",\"label\":\"238\"},{\"country\":\"CAYMAN ISLANDS\",\"label\":\"1345\"},{\"country\":\"CENTRAL AFRICAN REPUBLIC\",\"label\":\"236\"},{\"country\":\"CHAD\",\"label\":\"235\"},{\"country\":\"CHILE\",\"label\":\"56\"},{\"country\":\"CHINA\",\"label\":\"86\"},{\"country\":\"CHRISTMAS ISLAND\",\"label\":\"61\"},{\"country\":\"COCOS (KEELING) ISLANDS\",\"label\":\"61\"},{\"country\":\"COLOMBIA\",\"label\":\"57\"},{\"country\":\"COMOROS\",\"label\":\"269\"},{\"country\":\"CONGO\",\"label\":\"243\"},{\"country\":\"CONGO, THE DEMOCRATIC REPUBLIC OF THE\",\"label\":\"243\"},{\"country\":\"COOK ISLANDS\",\"label\":\"682\"},{\"country\":\"COSTA RICA\",\"label\":\"506\"},{\"country\":\"CROATIA\",\"label\":\"385\"},{\"country\":\"CUBA\",\"label\":\"53\"},{\"country\":\"CURAÇAO\",\"label\":\"599\"},{\"country\":\"CYPRUS\",\"label\":\"357\"},{\"country\":\"CZECH REPUBLIC\",\"label\":\"420\"},{\"country\":\"DENMARK\",\"label\":\"45\"},{\"country\":\"DIEGO GARCIA\",\"label\":\"246\"},{\"country\":\"DJIBOUTI\",\"label\":\"253\"},{\"country\":\"DOMINICA\",\"label\":\"1767\"},{\"country\":\"DOMINICAN REPUBLIC\",\"label\":\"1\"},{\"country\":\"ECUADOR\",\"label\":\"593\"},{\"country\":\"EGYPT\",\"label\":\"20\"},{\"country\":\"EL SALVADOR\",\"label\":\"503\"},{\"country\":\"EQUATORIAL GUINEA\",\"label\":\"240\"},{\"country\":\"ERITREA\",\"label\":\"291\"},{\"country\":\"ESTONIA\",\"label\":\"372\"},{\"country\":\"ETHIOPIA\",\"label\":\"251\"},{\"country\":\"FALKLAND ISLANDS (MALVINAS)\",\"label\":\"500\"},{\"country\":\"FAROE ISLANDS\",\"label\":\"298\"},{\"country\":\"FIJI\",\"label\":\"679\"},{\"country\":\"FINLAND\",\"label\":\"358\"},{\"country\":\"FRANCE\",\"label\":\"33\"},{\"country\":\"FRENCH GUIANA\",\"label\":\"594\"},{\"country\":\"FRENCH POLYNESIA\",\"label\":\"689\"},{\"country\":\"FRENCH SOUTHERN TERRITORIES\",\"label\":\"262\"},{\"country\":\"GABON\",\"label\":\"241\"},{\"country\":\"GAMBIA\",\"label\":\"220\"},{\"country\":\"GEORGIA\",\"label\":\"995\"},{\"country\":\"GERMANY\",\"label\":\"49\"},{\"country\":\"GHANA\",\"label\":\"233\"},{\"country\":\"GIBRALTAR\",\"label\":\"350\"},{\"country\":\"GREECE\",\"label\":\"30\"},{\"country\":\"GREENLAND\",\"label\":\"299\"},{\"country\":\"GRENADA\",\"label\":\"1473\"},{\"country\":\"GUADELOUPE\",\"label\":\"590\"},{\"country\":\"GUAM\",\"label\":\"1671\"},{\"country\":\"GUATEMALA\",\"label\":\"502\"},{\"country\":\"GUERNSEY\",\"label\":\"44\"},{\"country\":\"GUINEA\",\"label\":\"240\"},{\"country\":\"GUINEA-BISSAU\",\"label\":\"245\"},{\"country\":\"GUYANA\",\"label\":\"592\"},{\"country\":\"HAITI\",\"label\":\"509\"},{\"country\":\"HEARD ISLAND AND MCDONALD ISLANDS\",\"label\":\"0\"},{\"country\":\"HOLY SEE (VATICAN CITY STATE)\",\"label\":\"379\"},{\"country\":\"HONDURAS\",\"label\":\"504\"},{\"country\":\"HONG KONG\",\"label\":\"852\"},{\"country\":\"HUNGARY\",\"label\":\"36\"},{\"country\":\"ICELAND\",\"label\":\"354\"},{\"country\":\"INDIA\",\"label\":\"91\"},{\"country\":\"INDONESIA\",\"label\":\"62\"},{\"country\":\"IRAN, ISLAMIC REPUBLIC OF\",\"label\":\"98\"},{\"country\":\"IRAQ\",\"label\":\"964\"},{\"country\":\"IRELAND\",\"label\":\"353\"},{\"country\":\"ISLE OF MAN\",\"label\":\"44\"},{\"country\":\"ISRAEL\",\"label\":\"972\"},{\"country\":\"ITALY\",\"label\":\"39\"},{\"country\":\"IVORY COAST\",\"label\":\"225\"},{\"country\":\"JAMAICA\",\"label\":\"1\"},{\"country\":\"JAPAN\",\"label\":\"81\"},{\"country\":\"JERSEY\",\"label\":\"44\"},{\"country\":\"JORDAN\",\"label\":\"962\"},{\"country\":\"KAZAKHSTAN\",\"label\":\"7\"},{\"country\":\"KENYA\",\"label\":\"254\"},{\"country\":\"KIRIBATI\",\"label\":\"686\"},{\"country\":\"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF\",\"label\":\"850\"},{\"country\":\"KOREA, REPUBLIC OF\",\"label\":\"82\"},{\"country\":\"KOSOVO\",\"label\":\"383\"},{\"country\":\"KUWAIT\",\"label\":\"965\"},{\"country\":\"KYRGYZSTAN\",\"label\":\"996\"},{\"country\":\"LAO PEOPLE'S DEMOCRATIC REPUBLIC\",\"label\":\"856\"},{\"country\":\"LATVIA\",\"label\":\"371\"},{\"country\":\"LEBANON\",\"label\":\"961\"},{\"country\":\"LESOTHO\",\"label\":\"266\"},{\"country\":\"LIBERIA\",\"label\":\"231\"},{\"country\":\"LIBYA\",\"label\":\"218\"},{\"country\":\"LIECHTENSTEIN\",\"label\":\"423\"},{\"country\":\"LITHUANIA\",\"label\":\"370\"},{\"country\":\"LUXEMBOURG\",\"label\":\"352\"},{\"country\":\"MACAO\",\"label\":\"853\"},{\"country\":\"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF\",\"label\":\"389\"},{\"country\":\"MADAGASCAR\",\"label\":\"261\"},{\"country\":\"MALAWI\",\"label\":\"265\"},{\"country\":\"MALAYSIA\",\"label\":\"60\"},{\"country\":\"MALDIVES\",\"label\":\"960\"},{\"country\":\"MALI\",\"label\":\"223\"},{\"country\":\"MALTA\",\"label\":\"356\"},{\"country\":\"MARSHALL ISLANDS\",\"label\":\"692\"},{\"country\":\"MARTINIQUE\",\"label\":\"596\"},{\"country\":\"MAURITANIA\",\"label\":\"222\"},{\"country\":\"MAURITIUS\",\"label\":\"230\"},{\"country\":\"MAYOTTE\",\"label\":\"262\"},{\"country\":\"MEXICO\",\"label\":\"52\"},{\"country\":\"MICRONESIA, FEDERATED STATES OF\",\"label\":\"691\"},{\"country\":\"MOLDOVA, REPUBLIC OF\",\"label\":\"373\"},{\"country\":\"MONACO\",\"label\":\"377\"},{\"country\":\"MONGOLIA\",\"label\":\"976\"},{\"country\":\"MONTENEGRO\",\"label\":\"382\"},{\"country\":\"MONTSERRAT\",\"label\":\"1664\"},{\"country\":\"MOROCCO\",\"label\":\"212\"},{\"country\":\"MOZAMBIQUE\",\"label\":\"258\"},{\"country\":\"MYANMAR\",\"label\":\"95\"},{\"country\":\"NAMIBIA\",\"label\":\"264\"},{\"country\":\"NAURU\",\"label\":\"674\"},{\"country\":\"NEPAL\",\"label\":\"977\"},{\"country\":\"NETHERLANDS\",\"label\":\"599\"},{\"country\":\"NETHERLANDS ANTILLES\",\"label\":\"599\"},{\"country\":\"NEW CALEDONIA\",\"label\":\"687\"},{\"country\":\"NEW ZEALAND\",\"label\":\"64\"},{\"country\":\"NICARAGUA\",\"label\":\"505\"},{\"country\":\"NIGER\",\"label\":\"227\"},{\"country\":\"NIGERIA\",\"label\":\"234\"},{\"country\":\"NIUE\",\"label\":\"683\"},{\"country\":\"NORFOLK ISLAND\",\"label\":\"672\"},{\"country\":\"NORTHERN MARIANA ISLANDS\",\"label\":\"1670\"},{\"country\":\"NORWAY\",\"label\":\"47\"},{\"country\":\"OMAN\",\"label\":\"968\"},{\"country\":\"PAKISTAN\",\"label\":\"92\"},{\"country\":\"PALAU\",\"label\":\"680\"},{\"country\":\"PALESTINIAN TERRITORY, OCCUPIED\",\"label\":\"970\"},{\"country\":\"PANAMA\",\"label\":\"507\"},{\"country\":\"PAPUA NEW GUINEA\",\"label\":\"675\"},{\"country\":\"PARAGUAY\",\"label\":\"595\"},{\"country\":\"PERU\",\"label\":\"51\"},{\"country\":\"PHILIPPINES\",\"label\":\"63\"},{\"country\":\"PITCAIRN\",\"label\":\"64\"},{\"country\":\"POLAND\",\"label\":\"48\"},{\"country\":\"PORTUGAL\",\"label\":\"351\"},{\"country\":\"PUERTO RICO\",\"label\":\"1\"},{\"country\":\"QATAR\",\"label\":\"974\"},{\"country\":\"RÉUNION\",\"label\":\"262\"},{\"country\":\"ROMANIA\",\"label\":\"40\"},{\"country\":\"RUSSIAN FEDERATION\",\"label\":\"7\"},{\"country\":\"RWANDA\",\"label\":\"250\"},{\"country\":\"SAINT BARTHÉLEMY\",\"label\":\"590\"},{\"country\":\"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA\",\"label\":\"290\"},{\"country\":\"SAINT KITTS AND NEVIS\",\"label\":\"1869\"},{\"country\":\"SAINT LUCIA\",\"label\":\"1758\"},{\"country\":\"SAINT MARTIN (FRENCH PART)\",\"label\":\"590\"},{\"country\":\"SAINT PIERRE AND MIQUELON\",\"label\":\"508\"},{\"country\":\"SAINT VINCENT AND THE GRENADINES\",\"label\":\"1784\"},{\"country\":\"SAMOA\",\"label\":\"1684\"},{\"country\":\"SAN MARINO\",\"label\":\"378\"},{\"country\":\"SAO TOME AND PRINCIPE\",\"label\":\"239\"},{\"country\":\"SAUDI ARABIA\",\"label\":\"966\"},{\"country\":\"SENEGAL\",\"label\":\"221\"},{\"country\":\"SERBIA\",\"label\":\"381\"},{\"country\":\"SEYCHELLES\",\"label\":\"248\"},{\"country\":\"SIERRA LEONE\",\"label\":\"232\"},{\"country\":\"SINGAPORE\",\"label\":\"65\"},{\"country\":\"SINT MAARTEN (DUTCH PART)\",\"label\":\"1721\"},{\"country\":\"SLOVAKIA\",\"label\":\"421\"},{\"country\":\"SLOVENIA\",\"label\":\"386\"},{\"country\":\"SOLOMON ISLANDS\",\"label\":\"677\"},{\"country\":\"SOMALIA\",\"label\":\"252\"},{\"country\":\"SOUTH AFRICA\",\"label\":\"27\"},{\"country\":\"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS\",\"label\":\"995\"},{\"country\":\"SOUTH SUDAN\",\"label\":\"211\"},{\"country\":\"SPAIN\",\"label\":\"34\"},{\"country\":\"SRI LANKA\",\"label\":\"94\"},{\"country\":\"SUDAN\",\"label\":\"211\"},{\"country\":\"SURINAME\",\"label\":\"597\"},{\"country\":\"SVALBARD AND JAN MAYEN\",\"label\":\"47\"},{\"country\":\"SWAZILAND\",\"label\":\"268\"},{\"country\":\"SWEDEN\",\"label\":\"46\"},{\"country\":\"SWITZERLAND\",\"label\":\"41\"},{\"country\":\"SYRIAN ARAB REPUBLIC\",\"label\":\"963\"},{\"country\":\"TAIWAN, PROVINCE OF CHINA\",\"label\":\"886\"},{\"country\":\"TAJIKISTAN\",\"label\":\"992\"},{\"country\":\"TANZANIA, UNITED REPUBLIC OF\",\"label\":\"255\"},{\"country\":\"THAILAND\",\"label\":\"66\"},{\"country\":\"TIMOR-LESTE\",\"label\":\"670\"},{\"country\":\"TOGO\",\"label\":\"228\"},{\"country\":\"TOKELAU\",\"label\":\"690\"},{\"country\":\"TONGA\",\"label\":\"676\"},{\"country\":\"TRINIDAD AND TOBAGO\",\"label\":\"1868\"},{\"country\":\"TUNISIA\",\"label\":\"216\"},{\"country\":\"TURKEY\",\"label\":\"90\"},{\"country\":\"TURKMENISTAN\",\"label\":\"993\"},{\"country\":\"TURKS AND CAICOS ISLANDS\",\"label\":\"1649\"},{\"country\":\"TUVALU\",\"label\":\"688\"},{\"country\":\"UGANDA\",\"label\":\"256\"},{\"country\":\"UKRAINE\",\"label\":\"380\"},{\"country\":\"UNITED ARAB EMIRATES\",\"label\":\"971\"},{\"country\":\"UNITED KINGDOM\",\"label\":\"44\"},{\"country\":\"UNITED STATES\",\"label\":\"1\"},{\"country\":\"UNITED STATES MINOR OUTLYING ISLANDS\",\"label\":\"699\"},{\"country\":\"URUGUAY\",\"label\":\"598\"},{\"country\":\"UZBEKISTAN\",\"label\":\"998\"},{\"country\":\"VANUATU\",\"label\":\"678\"},{\"country\":\"VENEZUELA, BOLIVARIAN REPUBLIC OF\",\"label\":\"58\"},{\"country\":\"VIET NAM\",\"label\":\"84\"},{\"country\":\"VIRGIN ISLANDS, BRITISH\",\"label\":\"1284\"},{\"country\":\"VIRGIN ISLANDS, U.S.\",\"label\":\"1340\"},{\"country\":\"WALLIS AND FUTUNA\",\"label\":\"681\"},{\"country\":\"WESTERN SAHARA\",\"label\":\"212\"},{\"country\":\"YEMEN\",\"label\":\"967\"},{\"country\":\"ZAMBIA\",\"label\":\"260\"},{\"country\":\"ZIMBABWE\",\"label\":\"263\"}]\r\n\r\nexport default CallingCodes","import cloneDeep from 'lodash/cloneDeep'\r\nimport axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader, getDestinationFromFltNumber, getOriginFromFltNumber, toBrowserFriendlyDate } from '../helpers/utilities'\r\nimport moment from 'moment'\r\nimport { formDetailsListMockGenerator } from '../dummy/formDetailsListMockGenerator'\r\nimport Countries from '../data/countriesCRM'\r\nimport querystring from 'querystring'\r\nimport produce from 'immer'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper.js'\r\nimport { CTP_CARD_DEFAULT_CCN } from '../constants/cardConstants'\r\nimport { findCountryFromCallingCode } from '../helpers/callingCodeHelper.js'\r\nimport { VISITING_SIN } from \"../constants/individualSubmitTypes\";\r\n\r\nconst RESET_INDVIDIUAL_FORM_REDUCER = 'RESET_INDVIDIUAL_FORM_REDUCER'\r\nconst UPDATE_CURRENT_PAX_FORM_DETAILS = 'UPDATE_CURRENT_PAX_FORM_DETAILS'\r\nconst UPDATE_COLLECTOR_DETAILS = 'UPDATE_COLLECTOR_DETAILS'\r\nconst ADD_USER_TICKET_AND_PASSPORT = 'ADD_USER_TICKET_AND_PASSPORT'\r\nconst UPDATE_COLLECTOR_PERSONAL_DETAILS = 'UPDATE_COLLECTOR_PERSONAL_DETAILS'\r\nconst CLEAR_PAX_DETAILS = 'CLEAR_PAX_DETAILS'\r\nconst CLEAR_SECTOR_1_2 = 'CLEAR_SECTOR_1_2'\r\nconst CLEAR_SECTOR_3_4 = 'CLEAR_SECTOR_3_4'\r\nconst UPDATE_BOARDING_PASS_DETAILS = 'UPDATE_BOARDING_PASS_DETAILS'\r\nconst UPDATE_PASSPORT_DETAILS = 'UPDATE_PASSPORT_DETAILS'\r\nconst DELETE_PAX = 'DELETE_PAX'\r\nconst RESTORE_PAX = 'RESTORE_PAX'\r\nconst SUBMIT_INDIVIDUAL_FORM_IS_LOADING = 'SUBMIT_INDIVIDUAL_FORM_IS_LOADING'\r\nconst UPDATE_DETAILS_FROM_SQ_RESPONSE = 'UPDATE_DETAILS_FROM_SQ_RESPONSE'\r\nconst SUBMIT_INDIVIDUAL_FORM_SUCCESS = 'SUBMIT_INDIVIDUAL_FORM_SUCCESS'\r\nconst SUBMIT_INDIVIDUAL_FORM_FAIL = 'SUBMIT_INDIVIDUAL_FORM_FAIL'\r\nconst COMMIT_FORM_DETAILS_INTO_LIST = 'COMMIT_FORM_DETAILS_INTO_LIST'\r\nconst CLEAR_FORM_DETAILS_LIST = 'CLEAR_FORM_DETAILS_LIST'\r\nconst CHECK_AND_UPDATE_ELIGIBILITY_IS_LOADING = 'CHECK_AND_UPDATE_ELIGIBILITY_IS_LOADING'\r\nconst CHECK_AND_UPDATE_ELIGIBILITY_SUCCESS = 'CHECK_AND_UPDATE_ELIGIBILITY_SUCCESS'\r\nconst CHECK_AND_UPDATE_ELIGIBILITY_FAIL = 'CHECK_AND_UPDATE_ELIGIBILITY_FAIL'\r\nconst MEMBER_SEARCH_IS_LOADING = 'MEMBER_SEARCH_IS_LOADING'\r\nconst MEMBER_SEARCH_SUCCESS = 'MEMBER_SEARCH_SUCCESS'\r\nconst MEMBER_SEARCH_FAIL = 'MEMBER_SEARCH_FAIL'\r\nconst UPDATE_CURRENT_PAX_CTP_VALUE = 'UPDATE_CURRENT_PAX_CTP_VALUE'\r\nconst SET_MOCK_DATA = 'SET_MOCK_DATA'\r\nconst UPLOAD_FILE_IS_LOADING = 'UPLOAD_FILE_IS_LOADING'\r\nconst UPLOAD_FILE_SUCCESS = 'UPLOAD_FILE_SUCCESS'\r\nconst UPLOAD_FILE_FAIL = 'UPLOAD_FILE_FAIL'\r\nconst UPLOAD_SIGNATURE_SUCCESS = 'UPLOAD_SIGNATURE_SUCCESS'\r\nconst UPDATE_FORM_DETAILS_LIST = 'UPDATE_FORM_DETAILS_LIST'\r\nconst RESET_COLLECTOR_DETAILS = 'RESET_COLLECTOR_DETAILS'\r\nconst UPDATE_ENTIRE_INDIVIDUAL_FORM = 'UPDATE_ENTIRE_INDIVIDUAL_FORM'\r\nconst COPY_FORM_DETAILS_TO_CURRENT_PAX = 'COPY_FORM_DETAILS_TO_CURRENT_PAX'\r\nconst CANCEL_EDITING_PAX = 'CANCEL_EDITING_PAX'\r\nconst UPDATE_PROMPTED_RETRIEVE_DRAFT = 'UPDATE_PROMPTED_RETRIEVE_DRAFT'\r\nconst UPDATE_PROMPTED_AUTO_FILL_SECTOR = 'UPDATE_PROMPTED_AUTO_FILL_SECTOR'\r\nconst REPLACE_DRAFT = 'REPLACE_DRAFT'\r\nconst REPLACE_DRAFT_SUCCESS = 'REPLACE_DRAFT_SUCCESS'\r\nconst UPDATE_CR_DETAILS = 'UPDATE_CR_DETAILS'\r\n\r\nlet settings = getSettings()\r\nlet baseURL = settings.baseURL\r\n\r\nconst dummy = formDetailsListMockGenerator(9)\r\n\r\nexport const initFormDetails = {\r\n\tpax: 0, // will be updated when save to DetailsList\r\n\teTicketsDetails: {\r\n\t\teTicket1: '',\r\n\t\teTicket2: '',\r\n\t\teTicket3: '',\r\n\t\teTicket4: '',\r\n\t\teTicket1LastName: '',\r\n\t\teTicket2LastName: '',\r\n\t\teTicket3LastName: '',\r\n\t\teTicket4LastName: '',\r\n\t\tisETicketsVerified: false,\r\n\t\tcampaignCode: '',\r\n\t\tpnr: '',\r\n\t},\r\n\tpersonalDetails: {\r\n\t\tfirstName: '',\r\n\t\tlastName: '',\r\n\t\tdob: '',\r\n\t\tremarks: ''\r\n\t},\r\n\tsector1Details: {\r\n\t\tsearch: null,\r\n\t\tflightNo: null,\r\n\t\tdestination: 'Singapore',\r\n\t\torigin: null,\r\n\t\toriginCode: null,\r\n\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\tremarks: '',\r\n\t\tsingaporeCode: 'SIN',\r\n\t},\r\n\tsector2Details: {\r\n\t\tsearch: null,\r\n\t\tflightNo: null,\r\n\t\tdestination: null,\r\n\t\tdestinationCode: null,\r\n\t\tdestinationCityCode: null,\r\n\t\torigin: 'Singapore',\r\n\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\tlandSeaScootBool: 'na',\r\n\t\tlandSeaRemarks: '',\r\n\t\tattachmentUris: [],\r\n\t\tsingaporeCode: 'SIN',\r\n\t},\r\n\tsector3Details: {\r\n\t\tsearch: null,\r\n\t\tflightNo: null,\r\n\t\tdestination: 'Singapore',\r\n\t\tdestinationCode: null,\r\n\t\tdestinationCityCode: null,\r\n\t\torigin: null,\r\n\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\tlandSeaScootBool: 'na',\r\n\t\tlandSeaRemarks: '',\r\n\t\tattachmentUris: [],\r\n\t\tsingaporeCode: 'SIN',\r\n\t},\r\n\tsector4Details: {\r\n\t\tsearch: null,\r\n\t\tflightNo: null,\r\n\t\tdestination: null,\r\n\t\torigin: 'Singapore',\r\n\t\toriginCode: null,\r\n\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\tremarks: '',\r\n\t\tsingaporeCode: 'SIN',\r\n\t},\r\n\tticketDetails: [],\r\n\tisDeleted: false,\r\n\tctpVoucherValue: 0,\r\n\tctpGenValue: 0,\r\n\tctpLpcValue: 0,\r\n\tcardNo: '',\r\n\tfullCardNo: '',\r\n\tccn: '',\r\n\tpreloadedVouchersCardNo: '',\r\n\tgenPhysicalVoucherNo: '',\r\n\tlpcPhysicalVoucherNo: '',\r\n\tphysicalVoucherIssued: false,\r\n\tredemptionTransactionId: 0,\r\n\tflightType: VISITING_SIN\r\n}\r\n\r\nconst initState = {\r\n\tredemptionTransactionId: 0,\r\n\tformDetailsList: [],\r\n\tcurrentPaxFormDetails: cloneDeep(initFormDetails),\r\n\tcurrentPaxPosition: 1,\r\n\tnumberOfSector: 2,\r\n\tisFirstPax: false,\r\n\thaveTwoTouchPoint: 'No',\r\n\tpromptedRetrieveDraft: false,\r\n\tpromptedAutoFillSector: false,\r\n\tcollectorDetails: {\r\n\t\tregisterCr: false, //todo:syd remove\r\n\t\texistingCr: false, //todo:syd remove\r\n\t\tfrequencyOfTravelInPastYear: 0,\r\n\t\tsignatureUri: '',\r\n\t\tcardNo: '',\r\n\t\tcrMemberId: '',\r\n\t\tname: '',\r\n\t\tsurname: '',\r\n\t\temail: '',\r\n\t\tdob: moment()\r\n\t\t\t.subtract(16, 'year')\r\n\t\t\t.format('YYYY-MM-DD'),\r\n\t\tcountry: '',\r\n\t\tcountryCode: '',\r\n\t\tcontactNo: '',\r\n\t\tareaCode: '',\r\n\t\tcsoSignatureBase64: '',\r\n\t\tclientSignatureBase64: '',\r\n\t\tisVerified: false,\r\n\t\tallowReceivingInfo: false,\r\n\t\tcollectionConsent: '', //todo:syd remove\r\n\t\tmarketingConsent: '', //todo:syd remove\r\n\t\tairlineConsent: '', //todo:syd remove\r\n\t\tadditionalCrConsent: '', //todo:syd remove\r\n\t\tissuePhysicalVoucherToCr: false,\r\n\t},\r\n\tsubmitIndividualFormIsLoading: false,\r\n\tcheckAndUpdateEligibilityIsLoading: false,\r\n\tmemberSearchIsLoading: false,\r\n\tuploadFileIsLoading: false,\r\n\teditMode: false,\r\n\tindividualFilesUploadIsLoading: false,\r\n\tdraft: {},\r\n\tdraftRedemptionTransaction: {},\r\n\tcardNo: '',\r\n\tfullCardNo: '',\r\n\tfindPassengerDataWithCardNoIsLoading: false,\r\n\tfindPassengerInGroupIsLoading: false,\r\n\tgetDraftFromOtherRedemptionTransactionIsLoading: false,\r\n\tpassengerFromCard: {},\r\n\tpassengerFromGroup: {},\r\n\tpassengerDataWithCardNo: {},\r\n\tindividualGroupCheckRedeemedPassengerIsLoading: false,\r\n\tfindPassengerWithAppealIsLoading: false,\r\n\tctpDigitalCards: [],\r\n\tpreloadedVouchersCards: [],\r\n\tcrDetailsFromOCID: {\r\n\t\tcardNo: '',\r\n\t\tname: '',\r\n\t\tsurname: '',\r\n\t\temail: '',\r\n\t\tcontactNo: '',\r\n\t\tcountryCode: '',\r\n\t\tcountry: '',\r\n\t\tdob: '',\r\n\t\tcrMemberId: '',\r\n\t},\r\n\tisShowDeletedPax:true\r\n}\r\n\r\nexport const resetIndividualFormReducer = () => ({\r\n\ttype: RESET_INDVIDIUAL_FORM_REDUCER,\r\n})\r\n\r\nexport const updateCurrentPaxCtpValue = (voucherValue) => ({\r\n\ttype: UPDATE_CURRENT_PAX_CTP_VALUE,\r\n\tvoucherValue,\r\n})\r\n\r\nexport const clearFormDetailsList = () => ({\r\n\ttype: CLEAR_FORM_DETAILS_LIST,\r\n})\r\n\r\nexport const updateCurrentPaxFormDetails = (formDetails) => ({\r\n\ttype: UPDATE_CURRENT_PAX_FORM_DETAILS,\r\n\tformDetails,\r\n})\r\n\r\nexport const updateCollectorDetails = (collectorDetails) => ({\r\n\ttype: UPDATE_COLLECTOR_DETAILS,\r\n\tcollectorDetails,\r\n})\r\n\r\nexport const updateCollectorPersonalDetails = (flightData) => ({\r\n\ttype: UPDATE_COLLECTOR_PERSONAL_DETAILS,\r\n\tflightData,\r\n})\r\n\r\nexport const addUserTicketAndPassport = (details) => ({\r\n\ttype: ADD_USER_TICKET_AND_PASSPORT,\r\n\tpayload: details,\r\n})\r\n\r\nexport const clearPaxDetails = () => ({\r\n\ttype: CLEAR_PAX_DETAILS,\r\n})\r\n\r\nexport const clearSector12 = () => ({\r\n\ttype: CLEAR_SECTOR_1_2,\r\n})\r\n\r\nexport const clearSector34 = () => ({\r\n\ttype: CLEAR_SECTOR_3_4,\r\n})\r\n\r\nexport const updateBoardingPassDetails = ({ eTicketKey, boardingPassData }) => ({\r\n\ttype: UPDATE_BOARDING_PASS_DETAILS,\r\n\tboardingPassData,\r\n\teTicketKey,\r\n})\r\n\r\nexport const updatePassportDetails = (passportData) => ({\r\n\ttype: UPDATE_PASSPORT_DETAILS,\r\n\tpassportData: passportData,\r\n})\r\n\r\nexport const updateCrDetails = (crDetails) => ({\r\n\ttype: UPDATE_CR_DETAILS,\r\n\tcrDetails: crDetails,\r\n})\r\n\r\nexport const deletePax = (pax) => ({\r\n\ttype: DELETE_PAX,\r\n\tpax: pax,\r\n})\r\n\r\nexport const restorePax = (pax) => ({\r\n\ttype: RESTORE_PAX,\r\n\tpayload: pax,\r\n})\r\n\r\nexport const submitIndividualForm = ({\r\n\tform,\r\n\tredemptionTransactionId,\r\n\tcollectionConsent,\r\n\tmarketingConsent,\r\n\tairlineConsent,\r\n\tadditionalCrConsent,\r\n\tregisterCr,\r\n\texistingCr,\r\n\tisDigitalCard,\r\n\tisPreloadedVouchersCard,\r\n}) => async (dispatch) => {\r\n\tdispatch(_submitIndividualFormIsLoading())\r\n\tconst { collectorDetails } = form\r\n\r\n\tconst passengers = []\r\n\tform.formDetailsList.forEach((p) => {\r\n\t\tlet eTickets = []\r\n\t\tif (p.isDeleted) return\r\n\r\n\t\tconst keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t\tkeys.forEach((k, i) => {\r\n\t\t\teTickets.push({\r\n\t\t\t\teTicketNo: p.eTicketsDetails[k],\r\n\t\t\t\tlastName: p.eTicketsDetails[k + 'LastName'],\r\n\t\t\t\tremarks: p.ticketDetails[i] ? p.ticketDetails[i].remarks : '',\r\n\t\t\t\tcheckStatus: p.ticketDetails[i] ? p.ticketDetails[i].checkStatus : '',\r\n\t\t\t})\r\n\t\t})\r\n\t\tp.redemptionTransactionId = redemptionTransactionId\r\n\t\tpassengers.push({\r\n\t\t\tpnr: p.eTicketsDetails.pnr,\r\n\t\t\t// transactionId: null,\r\n\t\t\tfirstName: p.personalDetails.firstName,\r\n\t\t\tlastName: p.personalDetails.lastName,\r\n\t\t\tdob: p.personalDetails.dob,\r\n\t\t\tremarks: p.personalDetails.remarks,\r\n\t\t\tpassportNo: p.personalDetails.passportNo,\r\n\t\t\t// countryOfResidence: 'string',\r\n\t\t\tsqResponse: p.ticketDetails[0] ? p.ticketDetails[0].encodedCriteria : null,\r\n\t\t\t// ctpVoucherValue: p.ctpVoucherValue,\r\n\t\t\torigin: p.sector1Details.origin,\r\n\t\t\tvoucherValue: p.ctpVoucherValue,\r\n\t\t\teTickets,\r\n\t\t\tctpEligibility: p.ticketDetails[0] ? p.ticketDetails[0].ctpEligibility : '',\r\n\t\t\tetVerified: p.ticketDetails[0] ? p.ticketDetails[0].etVerified : '',\r\n\t\t\tsectors: [\r\n\t\t\t\t{\r\n\t\t\t\t\tsectorNo: 1,\r\n\t\t\t\t\torigin: p.sector1Details.origin,\r\n\t\t\t\t\toriginCode: p.sector1Details.originCode,\r\n\t\t\t\t\tdestination: p.sector1Details.destination,\r\n\t\t\t\t\tflightNo: p.sector1Details.flightNo,\r\n\t\t\t\t\tdepartureDate: p.sector1Details.departingDate,\r\n\t\t\t\t\tremarks: p.sector1Details.remarks,\r\n\t\t\t\t\tarrivalDate: p.sector1Details.arrivalDate,\r\n\t\t\t\t\tsingaporeCode: p.sector1Details.singaporeCode,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsectorNo: 2,\r\n\t\t\t\t\torigin: p.sector2Details.origin,\r\n\t\t\t\t\tdestination: p.sector2Details.destination,\r\n\t\t\t\t\tdestinationCode: p.sector2Details.destinationCode,\r\n\t\t\t\t\tsingaporeCode: p.sector2Details.singaporeCode,\r\n\t\t\t\t\tflightNo: p.sector2Details.flightNo,\r\n\t\t\t\t\tdepartureDate: p.sector2Details.departingDate || '1900-01-01',\r\n\r\n\t\t\t\t\tremarks: p.sector2Details.landSeaRemarks,\r\n\t\t\t\t\tattachmentUris: p.sector2Details.attachmentUris,\r\n\t\t\t\t\ttransportMean: p.sector2Details.landSeaScootBool,\r\n\t\t\t\t\tlandSea: p.sector2Details.landSeaScootBool,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsectorNo: 3,\r\n\t\t\t\t\torigin: p.sector3Details.origin,\r\n\t\t\t\t\tdestination: p.sector3Details.destination,\r\n\t\t\t\t\tdestinationCode: p.sector3Details.destinationCode,\r\n\t\t\t\t\tsingaporeCode: p.sector3Details.singaporeCode,\r\n\t\t\t\t\tflightNo: p.sector3Details.flightNo,\r\n\t\t\t\t\tdepartureDate: p.sector3Details.departingDate || '1900-01-01',\r\n\r\n\t\t\t\t\tremarks: p.sector3Details.landSeaRemarks,\r\n\t\t\t\t\tattachmentUris: p.sector3Details.attachmentUris,\r\n\t\t\t\t\ttransportMean: p.sector3Details.landSeaScootBool,\r\n\t\t\t\t\tlandSea: p.sector3Details.landSeaScootBool,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsectorNo: 4,\r\n\t\t\t\t\torigin: p.sector4Details.origin,\r\n\t\t\t\t\toriginCode: p.sector4Details.originCode,\r\n\t\t\t\t\tdestination: p.sector4Details.destination,\r\n\t\t\t\t\tflightNo: p.sector4Details.flightNo,\r\n\t\t\t\t\tdepartureDate: p.sector4Details.departingDate,\r\n\t\t\t\t\tremarks: p.sector4Details.remarks,\r\n\t\t\t\t\tarrivalDate: p.sector4Details.arrivalDate,\r\n\t\t\t\t\tsingaporeCode: p.sector4Details.singaporeCode,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcardNo: p.cardNo,\r\n\t\t\tpreloadedVouchersCardNo: p.preloadedVouchersCardNo,\r\n\t\t\tgenPhysicalVoucherNo: p.genPhysicalVoucherNo,\r\n\t\t\tlpcPhysicalVoucherNo: p.lpcPhysicalVoucherNo,\r\n\t\t\tphysicalVoucherIssued: !!p.genPhysicalVoucherNo,\r\n\t\t})\r\n\t})\r\n\r\n\tconst collector = {\r\n\t\temail: collectorDetails.email,\r\n\t\tname: collectorDetails.name,\r\n\t\tsurname: collectorDetails.surname,\r\n\t\tdob: collectorDetails.dob,\r\n\t\tcountry: collectorDetails.country,\r\n\t\tcontactNo: collectorDetails.contactNo,\r\n\t\tcountryCode: collectorDetails.countryCode,\r\n\t\tareaCode: collectorDetails.areaCode,\r\n\t\tcrMemberId: collectorDetails.crMemberId,\r\n\t\tallowReceivingInfo: collectorDetails.allowReceivingInfo,\r\n\t\tregisterCr: registerCr,\r\n\t\texistingCr: existingCr,\r\n\t\tfrequencyOfTravelInPastYear: collectorDetails.frequencyOfTravelInPastYear,\r\n\t\tcollectionConsent: collectionConsent,\r\n\t\tmarketingConsent: marketingConsent,\r\n\t\tairlineConsent: airlineConsent,\r\n\t\tadditionalCrConsent: additionalCrConsent,\r\n\t}\r\n\r\n\tconst data = {\r\n\t\tcollector,\r\n\t\tpassengers,\r\n\t\tcardNo: collectorDetails.cardNo,\r\n\t\tregisterCr: registerCr,\r\n\t\texistingCr: existingCr,\r\n\t\tisDigitalCard: isDigitalCard,\r\n\t\tisPreloadedVouchersCard: isPreloadedVouchersCard,\r\n\t\tfrequencyOfTravelInPastYear: collectorDetails.frequencyOfTravelInPastYear,\r\n\t\tsignatureUri: collectorDetails.signatureUri,\r\n\t\tredemptionTransactionId: redemptionTransactionId,\r\n\t\tissuePhysicalVoucherToCr: collectorDetails.issuePhysicalVoucherToCr,\r\n\t\temail: collectorDetails.email,\r\n\t\tcampaignCode: form.formDetailsList[0].eTicketsDetails.campaignCode\r\n\t}\r\n\r\n\tconst rs = await axios.post(baseURL + '/IndividualPassenger/CreateV2', data, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_submitIndividualFormSuccess(rs.data))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_submitIndividualFormFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _submitIndividualFormIsLoading = () => ({\r\n\ttype: SUBMIT_INDIVIDUAL_FORM_IS_LOADING,\r\n})\r\n\r\nconst _submitIndividualFormSuccess = (data) => ({\r\n\ttype: SUBMIT_INDIVIDUAL_FORM_SUCCESS,\r\n\tdata,\r\n})\r\n\r\nconst _submitIndividualFormFail = () => ({\r\n\ttype: SUBMIT_INDIVIDUAL_FORM_FAIL,\r\n})\r\n\r\nexport const checkAndUpdateEligibility = ({ ticketDetails, redemptionTransactionId }) => async (dispatch) => {\r\n\tdispatch(_checkAndUpdateEligibilityIsLoading())\r\n\tlet data = { ticketDetails, redemptionTransactionId }\r\n\tconst rs = await axios.post(baseURL + '/SqApi/checkIndividualPassengerTicket', data, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_checkAndUpdateEligibilitySuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_checkAndUpdateEligibilityFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _checkAndUpdateEligibilityIsLoading = () => ({\r\n\ttype: CHECK_AND_UPDATE_ELIGIBILITY_IS_LOADING,\r\n})\r\n\r\nconst _checkAndUpdateEligibilitySuccess = (rs) => ({\r\n\ttype: CHECK_AND_UPDATE_ELIGIBILITY_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _checkAndUpdateEligibilityFail = () => ({\r\n\ttype: CHECK_AND_UPDATE_ELIGIBILITY_FAIL,\r\n})\r\n\r\nexport const memberSearch = (type, v) => async (dispatch) => {\r\n\tdispatch(_memberSearchIsLoading())\r\n\r\n\tlet data = type === 'cardNo' ? { params: { cardNo: v } } : { params: { email: v } }\r\n\tdata = { ...data, ...getCurrentAuthHeader() }\r\n\r\n\tconst rs = await axios.get(baseURL + '/IndividualPassenger/MemberSearch', data).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_memberSearchSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_memberSearchFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _memberSearchIsLoading = () => ({\r\n\ttype: MEMBER_SEARCH_IS_LOADING,\r\n})\r\n\r\nconst _memberSearchSuccess = (rs) => ({\r\n\ttype: MEMBER_SEARCH_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _memberSearchFail = () => ({\r\n\ttype: MEMBER_SEARCH_FAIL,\r\n})\r\n\r\nexport const commitFormDetailsIntoList = () => ({ type: COMMIT_FORM_DETAILS_INTO_LIST })\r\n\r\nexport const setMockData = () => ({ type: SET_MOCK_DATA })\r\n\r\nexport const uploadFile = (formData, type) => async (dispatch) => {\r\n\tdispatch(_uploadFileIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/File/FileUpload?' + querystring.stringify({ bucketType: 0 }), formData, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tif (e.response.data && e.response.data.error) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t} = e\r\n\t\t\t\tdispatch(_uploadFileFail())\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t}\r\n\t\tdispatch(_uploadFileFail())\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error. Please try again' } } }\r\n\t})\r\n\tif (rs.data.success) {\r\n\t\tif (type === 'file') dispatch(_uploadFileSuccess(rs))\r\n\t\tif (type === 'signature') dispatch(_uploadSignatureSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_uploadFileFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _uploadFileIsLoading = () => ({\r\n\ttype: UPLOAD_FILE_IS_LOADING,\r\n})\r\n\r\nconst _uploadFileSuccess = (rs) => ({\r\n\ttype: UPLOAD_FILE_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _uploadFileFail = () => ({\r\n\ttype: UPLOAD_FILE_FAIL,\r\n})\r\n\r\nconst _uploadSignatureSuccess = (rs) => ({\r\n\ttype: UPLOAD_SIGNATURE_SUCCESS,\r\n\trs,\r\n})\r\n\r\nexport const updateFormDetailsList = (formDetailsList) => ({\r\n\ttype: UPDATE_FORM_DETAILS_LIST,\r\n\tformDetailsList,\r\n})\r\n\r\nexport const resetCollectorDetails = () => ({\r\n\ttype: RESET_COLLECTOR_DETAILS,\r\n})\r\n//\r\n\r\nconst _findCountryFromOrigin = (origin, flightData) => {\r\n\tconst rs = flightData.find((f) => f.departureCityName === origin)\r\n\tif (rs) return _mapFlightDataCountryToCRM(rs.departureCountryName)\r\n}\r\n\r\nconst _mapFlightDataCountryToCRM = (name) => {\r\n\tlet uname = name.toUpperCase()\r\n\tif (!Countries.find((c) => c.label === uname)) {\r\n\t\tswitch (uname) {\r\n\t\t\tcase 'USA':\r\n\t\t\t\treturn 'UNITED STATES'\r\n\t\t\tcase 'CHINESE TAIPEI':\r\n\t\t\t\treturn 'TAIWAN, PROVINCE OF CHINA'\r\n\t\t\tcase 'HONG KONG (SAR) CHINA':\r\n\t\t\t\treturn 'HONG KONG'\r\n\t\t\tcase 'KOREA REPUBLIC OF':\r\n\t\t\t\treturn 'KOREA, REPUBLIC OF'\r\n\t\t\tcase 'MACAO (SAR) CHINA':\r\n\t\t\t\treturn 'MACAO'\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'Not Found'\r\n\t\t}\r\n\t} else {\r\n\t\treturn uname\r\n\t}\r\n}\r\n\r\nexport const updateEntireIndividualForm = (individualForm) => {\r\n\treturn {\r\n\t\ttype: UPDATE_ENTIRE_INDIVIDUAL_FORM,\r\n\t\tindividualForm: individualForm,\r\n\t}\r\n}\r\n\r\nconst initStateClone = cloneDeep(initState)\r\n\r\nexport const copyFormDetailsToCurrentPax = (pax) => ({\r\n\ttype: COPY_FORM_DETAILS_TO_CURRENT_PAX,\r\n\tpax,\r\n})\r\n\r\nexport const cancelEditingPax = () => ({\r\n\ttype: CANCEL_EDITING_PAX,\r\n})\r\n\r\nexport const replacingDraft = () => ({\r\n\ttype: REPLACE_DRAFT,\r\n})\r\n\r\nexport const replaceDraftSuccess = () => ({\r\n\ttype: REPLACE_DRAFT_SUCCESS,\r\n})\r\n\r\nexport const replaceDraft = () => async (dispatch) => {\r\n\tawait dispatch(replacingDraft())\r\n\tdispatch(replaceDraftSuccess())\r\n}\r\n\r\nexport const individualFilesUpload = (formData) => async (dispatch) => {\r\n\tdispatch(_individualFilesUploadIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/File/FilesUpload?' + querystring.stringify({ bucketType: 1 }), formData, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_individualFilesUploadFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_individualFilesUploadSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_individualFilesUploadFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst INDIVIDUAL_FILES_UPLOAD_IS_LOADING = 'INDIVIDUAL_FILES_UPLOAD_IS_LOADING'\r\nconst INDIVIDUAL_FILES_UPLOAD_SUCCESS = 'INDIVIDUAL_FILES_UPLOAD_SUCCESS'\r\nconst INDIVIDUAL_FILES_UPLOAD_FAIL = 'INDIVIDUAL_FILES_UPLOAD_FAIL'\r\n\r\nconst _individualFilesUploadIsLoading = () => ({\r\n\ttype: INDIVIDUAL_FILES_UPLOAD_IS_LOADING,\r\n})\r\n\r\nconst _individualFilesUploadSuccess = (rs) => ({\r\n\ttype: INDIVIDUAL_FILES_UPLOAD_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _individualFilesUploadFail = () => ({\r\n\ttype: INDIVIDUAL_FILES_UPLOAD_FAIL,\r\n})\r\n\r\nexport const updatePromptedRetrieveDraft = (bool) => ({\r\n\ttype: UPDATE_PROMPTED_RETRIEVE_DRAFT,\r\n\tpromptedRetrieveDraft: bool,\r\n})\r\n\r\nexport const updatePromptedAutoFillSector = (bool) => ({\r\n\ttype: UPDATE_PROMPTED_AUTO_FILL_SECTOR,\r\n\tpromptedAutoFillSector: bool,\r\n})\r\n\r\nexport const updateIndividualFormDuck = (obj) => ({\r\n\ttype: UPDATE_INDIVIDUAL_FORM_DUCK,\r\n\tobj,\r\n})\r\n\r\nconst UPDATE_INDIVIDUAL_FORM_DUCK = 'UPDATE_INDIVIDUAL_FORM_DUCK'\r\n\r\nexport const findPassengerDataWithCardNo = (data) => async (dispatch) => {\r\n\tdispatch(_findPassengerDataWithCardNoIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Passenger/FindPassengersDataWithCardNo', data, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_findPassengerDataWithCardNoFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_findPassengerDataWithCardNoSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_findPassengerDataWithCardNoFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nexport const checkPassengersETicketsV2 = (data) => async (dispatch) => {\r\n\tdispatch(_checkPassengersETicketsV2IsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Pretravel/CheckPassengersETicketsV2', data, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_checkPassengersETicketsV2Fail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_checkPassengersETicketsV2Success(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_checkPassengersETicketsV2Fail())\r\n\t\treturn { success: false, message: rs.data.error.details || rs.data.error.message, rawMessage: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst FIND_PASSENGER_DATA_WITH_CARD_NO_IS_LOADING = 'FIND_PASSENGER_DATA_WITH_CARD_NO_IS_LOADING'\r\nconst FIND_PASSENGER_DATA_WITH_CARD_NO_SUCCESS = 'FIND_PASSENGER_DATA_WITH_CARD_NO_SUCCESS'\r\nconst FIND_PASSENGER_DATA_WITH_CARD_NO_FAIL = 'FIND_PASSENGER_DATA_WITH_CARD_NO_FAIL'\r\n\r\nconst _findPassengerDataWithCardNoIsLoading = () => ({\r\n\ttype: FIND_PASSENGER_DATA_WITH_CARD_NO_IS_LOADING,\r\n})\r\n\r\nconst _findPassengerDataWithCardNoSuccess = (rs) => ({\r\n\ttype: FIND_PASSENGER_DATA_WITH_CARD_NO_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _findPassengerDataWithCardNoFail = () => ({\r\n\ttype: FIND_PASSENGER_DATA_WITH_CARD_NO_FAIL,\r\n})\r\n\r\nconst CHECK_PASSENGER_E_TICKET_IS_LOADING = 'CHECK_PASSENGER_E_TICKET_IS_LOADING'\r\nconst CHECK_PASSENGER_E_TICKET_SUCCESS = 'CHECK_PASSENGER_E_TICKET_SUCCESS'\r\nconst CHECK_PASSENGER_E_TICKET_FAIL = 'CHECK_PASSENGER_E_TICKET_FAIL'\r\n\r\nconst _checkPassengersETicketsV2IsLoading = () => ({\r\n\ttype: CHECK_PASSENGER_E_TICKET_IS_LOADING,\r\n})\r\n\r\nconst _checkPassengersETicketsV2Success = (rs) => ({\r\n\ttype: CHECK_PASSENGER_E_TICKET_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _checkPassengersETicketsV2Fail = () => ({\r\n\ttype: CHECK_PASSENGER_E_TICKET_FAIL,\r\n})\r\n\r\nexport const findPassengerInGroup = (data) => async (dispatch) => {\r\n\tdispatch(_findPassengerInGroupIsLoading())\r\n\r\n\tconst rs = await axios.get(baseURL + '/Passenger/FindPassengerInGroup', data).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_findPassengerInGroupFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_findPassengerInGroupSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_findPassengerInGroupFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst FIND_PASSENGER_IN_GROUP_IS_LOADING = 'FIND_PASSENGER_IN_GROUP_IS_LOADING'\r\nconst FIND_PASSENGER_IN_GROUP_SUCCESS = 'FIND_PASSENGER_IN_GROUP_SUCCESS'\r\nconst FIND_PASSENGER_IN_GROUP_FAIL = 'FIND_PASSENGER_IN_GROUP_FAIL'\r\n\r\nconst _findPassengerInGroupIsLoading = () => ({\r\n\ttype: FIND_PASSENGER_IN_GROUP_IS_LOADING,\r\n})\r\n\r\nconst _findPassengerInGroupSuccess = (rs) => ({\r\n\ttype: FIND_PASSENGER_IN_GROUP_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _findPassengerInGroupFail = () => ({\r\n\ttype: FIND_PASSENGER_IN_GROUP_FAIL,\r\n})\r\n\r\n///getDraftFromOtherRedemptionTransaction\r\nexport const getDraftFromOtherRedemptionTransaction = (data) => async (dispatch) => {\r\n\tdispatch(_getDraftFromOtherRedemptionTransactionIsLoading())\r\n\r\n\tconst rs = await axios.get(baseURL + '/Draft/GetDraftDataFromOtherRedemptionTransaction', data).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_getDraftFromOtherRedemptionTransactionFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_getDraftFromOtherRedemptionTransactionSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_getDraftFromOtherRedemptionTransactionFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_IS_LOADING = 'GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_IS_LOADING'\r\nconst GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_SUCCESS = 'GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_SUCCESS'\r\nconst GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_FAIL = 'GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_FAIL'\r\n\r\n\r\nconst _getDraftFromOtherRedemptionTransactionIsLoading = () => ({\r\n type: GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_IS_LOADING,\r\n})\r\n\r\nconst _getDraftFromOtherRedemptionTransactionSuccess = (rs) => ({\r\n type: GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_SUCCESS,\r\n rs,\r\n})\r\n\r\nconst _getDraftFromOtherRedemptionTransactionFail = () => ({\r\n type: GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_FAIL,\r\n})\r\n\r\n///findPassengersDataWithAppealTransaction\r\nexport const findPassengersDataWithAppealTransaction = (data) => async (dispatch) => {\r\n dispatch(_findPassengerWithAppealIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Passenger/FindPassengersDataWithAppealTransaction', data, getCurrentAuthHeader()).catch((e) => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message },\r\n },\r\n },\r\n } = e\r\n return { data: { success: false, error: { message } } }\r\n }\r\n return { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n })\r\n if (!rs.data) {\r\n dispatch(_findPassengerWithAppealSuccess())\r\n return { success: false, message: 'No data from server' }\r\n }\r\n if (rs.data.success) {\r\n dispatch(_findPassengerWithAppealSuccess(rs))\r\n return { success: true, result: rs.data.result }\r\n } else {\r\n dispatch(_findPassengerWithAppealFail())\r\n return { success: false, message: rs.data.error.message }\r\n }\r\n}\r\n\r\nconst FIND_PASSENGER_WITH_APPEAL_IS_LOADING = 'FIND_PASSENGER_WITH_APPEAL_IS_LOADING'\r\nconst FIND_PASSENGER_WITH_APPEAL_SUCCESS = 'FIND_PASSENGER_WITH_APPEAL_SUCCESS'\r\nconst FIND_PASSENGER_WITH_APPEAL_FAIL = 'FIND_PASSENGER_WITH_APPEAL_FAIL'\r\n\r\n\r\nconst _findPassengerWithAppealIsLoading = () => ({\r\n\ttype: FIND_PASSENGER_WITH_APPEAL_IS_LOADING,\r\n});\r\n\r\nconst _findPassengerWithAppealSuccess = (rs) => ({\r\n\ttype: FIND_PASSENGER_WITH_APPEAL_SUCCESS,\r\n\trs,\r\n});\r\n\r\nconst _findPassengerWithAppealFail = () => ({\r\n\ttype: FIND_PASSENGER_WITH_APPEAL_FAIL,\r\n});\r\n\r\nexport const populatePassengerFromGroup = () => (dispatch, getState) => {\r\n\tdispatch({\r\n\t\ttype: POPULATE_PASSENGER_FROM_GROUP,\r\n\t\tflightData: getState().flightDuck.flightData,\r\n\t})\r\n}\r\nconst POPULATE_PASSENGER_FROM_GROUP = 'POPULATE_PASSENGER_FROM_GROUP'\r\n\r\nexport const individualGroupCheckRedeemedPassenger = (data) => async (dispatch) => {\r\n\tdispatch(_individualGroupCheckRedeemedPassengerIsLoading())\r\n\tconst rs = await axios.post(baseURL + '/SqApi/GroupCheckRedeemedPassenger', data, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_individualGroupCheckRedeemedPassengerFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_individualGroupCheckRedeemedPassengerSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_individualGroupCheckRedeemedPassengerFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING = 'INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING'\r\nconst INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS = 'INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS'\r\nconst INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL = 'INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL'\r\n\r\nconst _individualGroupCheckRedeemedPassengerIsLoading = () => ({\r\n\ttype: INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING,\r\n})\r\n\r\nconst _individualGroupCheckRedeemedPassengerSuccess = (rs) => ({\r\n\ttype: INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _individualGroupCheckRedeemedPassengerFail = () => ({\r\n\ttype: INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL,\r\n})\r\n\r\nconst GET_CR_DETAILS_IS_LOADING = 'GET_CR_DETAILS_IS_LOADING'\r\nconst GET_CR_DETAILS_SUCCESS = 'GET_CR_DETAILS_SUCCESS'\r\nconst GET_CR_DETAILS_FAIL = 'GET_CR_DETAILS_FAIL'\r\n\r\nexport const getCrDetailsFromOCID = (code) => async (dispatch) => {\r\n\tdispatch(_getCrDetailsFromOCIDIsLoading())\r\n\tconst rs = await axios.get(baseURL + '/Member/GetCrMemberDetails?code=' + code, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_getCrDetailsFromOCIDFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_getCrDetailsFromOCIDSuccess(rs.data))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_getCrDetailsFromOCIDFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _getCrDetailsFromOCIDSuccess = (data) => ({\r\n\ttype: GET_CR_DETAILS_SUCCESS,\r\n\tdata,\r\n})\r\n\r\nconst _getCrDetailsFromOCIDFail = () => ({\r\n\ttype: GET_CR_DETAILS_FAIL,\r\n})\r\n\r\nconst _getCrDetailsFromOCIDIsLoading = () => ({\r\n\ttype: GET_CR_DETAILS_IS_LOADING,\r\n})\r\n\r\n///////////////////// REDUCERS ///////////////////////////\r\nconst individualFormDuck = (state = initStateClone, action) => {\r\n\tlet newFormDetailsList, newPax, pax, d, keys, newCollectorDetails, currentPaxFormDetails, currentPaxPosition, draft, obj, newState, redemptionTransaction, items, numberOfSector, haveTwoTouchPoint\r\n\r\n\tswitch (action.type) {\r\n\t\tcase CLEAR_FORM_DETAILS_LIST:\r\n\t\t\tlet clearedList = []\r\n\t\t\treturn { ...state, formDetailsList: clearedList }\r\n\r\n\t\tcase ADD_USER_TICKET_AND_PASSPORT:\r\n\t\t\tconst newUser = {\r\n\t\t\t\tpax: state.formDetailsList.length + 1,\r\n\t\t\t\teTicketsDetails: {\r\n\t\t\t\t\teTicket1: action.payload.ticket,\r\n\t\t\t\t},\r\n\t\t\t\tpersonalDetails: {\r\n\t\t\t\t\tfirstName: '',\r\n\t\t\t\t\tlastName: '',\r\n\t\t\t\t\tpassportNo: action.payload.passport,\r\n\t\t\t\t\tdob: '',\r\n\t\t\t\t\tremarks: ''\r\n\t\t\t\t},\r\n\t\t\t\tsector1Details: {},\r\n\t\t\t\tsector2Details: { landSeaBool: 'na' },\r\n\t\t\t\tsector3Details: { landSeaBool: 'na' },\r\n\t\t\t\tsector4Details: {},\r\n\t\t\t\tisDeleted: false,\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tformDetailsList: [...state.formDetailsList, newUser],\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_CURRENT_PAX_FORM_DETAILS:\r\n\t\t\tlet updatedFormDetails = action.formDetails\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: updatedFormDetails,\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_CURRENT_PAX_CTP_VALUE:\r\n\t\t\t// let voucherValue = action.voucherValue\r\n\t\t\tlet clonedCurrentPax = cloneDeep(state.currentPaxFormDetails)\r\n\t\t\t// clonedCurrentPax.ctpVoucherValue = voucherValue\r\n\r\n\t\t\treturn { ...state, currentPaxFormDetails: clonedCurrentPax }\r\n\r\n\t\tcase UPDATE_BOARDING_PASS_DETAILS:\r\n\t\t\tlet boardingPassData = action.boardingPassData\r\n\t\t\tlet currentPaxFormDetailsToUpdate = cloneDeep(state.currentPaxFormDetails)\r\n\r\n\t\t\tif (action.eTicketKey === 'eTicket1') {\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket1 = boardingPassData.eTix\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket1LastName = boardingPassData.lastName\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['personalDetails'].firstName = boardingPassData.firstName\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['personalDetails'].remarks = boardingPassData.remarks\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['personalDetails'].lastName = boardingPassData.lastName\r\n\t\t\t\t//currentPaxFormDetailsToUpdate['sector1Details'].origin = boardingPassData.originCountry\r\n\t\t\t\t//currentPaxFormDetailsToUpdate['sector1Details'].destination = boardingPassData.destinationCountry\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['sector1Details'].departingDate = boardingPassData.date\r\n\t\t\t} else if (action.eTicketKey === 'eTicket2') {\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket2 = boardingPassData.eTix\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket2LastName = boardingPassData.lastName\r\n\t\t\t} else if (action.eTicketKey === 'eTicket3') {\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket3 = boardingPassData.eTix\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket3LastName = boardingPassData.lastName\r\n\t\t\t} else if (action.eTicketKey === 'eTicket4') {\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket4 = boardingPassData.eTix\r\n\t\t\t\tcurrentPaxFormDetailsToUpdate['eTicketsDetails'].eTicket4LastName = boardingPassData.lastName\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: currentPaxFormDetailsToUpdate,\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_PASSPORT_DETAILS:\r\n\t\t\tlet passportData = action.passportData\r\n\t\t\tlet currentPaxFormDetailsToUpdatePassport = cloneDeep(state.currentPaxFormDetails)\r\n\r\n\t\t\tcurrentPaxFormDetailsToUpdatePassport['personalDetails'].firstName = passportData.firstName\r\n\t\t\tcurrentPaxFormDetailsToUpdatePassport['personalDetails'].lastName = passportData.lastName\r\n\t\t\tcurrentPaxFormDetailsToUpdatePassport['personalDetails'].passportNo = passportData.passportNo\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: currentPaxFormDetailsToUpdatePassport,\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_CR_DETAILS: {\r\n\t\t\tlet crDetails = action.crDetails\r\n\t\t\tlet clonedCollectorDetails = {\r\n\t\t\t\t...state.collectorDetails,\r\n\t\t\t\tcardNo: crDetails.cardNo,\r\n\t\t\t\tname: crDetails.name,\r\n\t\t\t\tsurname: crDetails.surname,\r\n\t\t\t\temail: crDetails.email,\r\n\t\t\t\tcontactNo: crDetails.contactNo,\r\n\t\t\t\tcountryCode: crDetails.countryCode,\r\n\t\t\t\tcountry: crDetails.country,\r\n\t\t\t\tdob: crDetails.dob,\r\n\t\t\t\tcrMemberId: crDetails.crMemberId,\r\n\t\t\t}\r\n\t\t\tlet clonedFormDetailsList = cloneDeep(state.formDetailsList)\r\n\t\t\tclonedFormDetailsList.forEach((p) => (p.cardNo = crDetails.cardNo))\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tformDetailsList: clonedFormDetailsList,\r\n\t\t\t\tcollectorDetails: clonedCollectorDetails,\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcase UPDATE_COLLECTOR_DETAILS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcollectorDetails: action.collectorDetails,\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_COLLECTOR_PERSONAL_DETAILS:\r\n\t\t\tlet tl = {}\r\n\t\t\tlet count = 0\r\n\t\t\tfor (const p of state.formDetailsList) {\r\n\t\t\t\tif (!p.isDeleted) {\r\n\t\t\t\t\tif (Object.keys(tl).length < 1) {\r\n\t\t\t\t\t\ttl = cloneDeep(p)\r\n\t\t\t\t\t\tcount++\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcount++\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (Object.keys(tl).length > 0) {\r\n\t\t\t\tnewCollectorDetails = { ...state.collectorDetails }\r\n\r\n\t\t\t\tif (count > 1) {\r\n\t\t\t\t\tnewCollectorDetails.registerCr = false\r\n\t\t\t\t\tnewCollectorDetails.existingCr = false\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnewCollectorDetails.name = tl ? tl.personalDetails.firstName : ''\r\n\t\t\t\tnewCollectorDetails.surname = tl ? tl.personalDetails.lastName : ''\r\n\t\t\t\tnewCollectorDetails.dob = tl ? tl.personalDetails.dob : ''\r\n\t\t\t\tnewCollectorDetails.remarks = tl ? tl.personalDetails.remarks : ''\r\n\t\t\t\tnewCollectorDetails.country = _findCountryFromOrigin(tl.sector1Details.origin, action.flightData)\r\n\t\t\t\treturn { ...state, collectorDetails: { ...newCollectorDetails } }\r\n\t\t\t}\r\n\t\t\treturn state\r\n\r\n\t\tcase CLEAR_PAX_DETAILS:\r\n\t\t\treturn { ...state, currentPaxFormDetails: cloneDeep(initFormDetails) }\r\n\r\n\t\tcase CLEAR_SECTOR_1_2:\r\n\t\t\tlet sector12temp = cloneDeep(state.currentPaxFormDetails)\r\n\r\n\t\t\tsector12temp['sector1Details'] = {\r\n\t\t\t\tsearch: null,\r\n\t\t\t\tflightNo: null,\r\n\t\t\t\tdestination: 'Singapore',\r\n\t\t\t\torigin: null,\r\n\t\t\t\toriginCode: null,\r\n\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\tremarks: '',\r\n\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t};\r\n\t\t\tsector12temp['sector2Details'] = {\r\n\t\t\t\tsearch: null,\r\n\t\t\t\tflightNo: null,\r\n\t\t\t\tdestination: null,\r\n\t\t\t\tdestinationCode: null,\r\n\t\t\t\tdestinationCityCode: null,\r\n\t\t\t\torigin: 'Singapore',\r\n\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\tlandSeaScootBool: 'na',\r\n\t\t\t\tlandSeaRemarks: '',\r\n\t\t\t\tattachmentUris: [],\r\n\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: {\r\n\t\t\t\t\t...sector12temp\r\n\t\t\t\t},\r\n\t\t\t}\r\n\r\n\t\tcase CLEAR_SECTOR_3_4:\r\n\t\t\tlet sector34Temp = cloneDeep(state.currentPaxFormDetails)\r\n\r\n\t\t\tsector34Temp['sector3Details'] = {\r\n\t\t\t\tsearch: null,\r\n\t\t\t\tflightNo: null,\r\n\t\t\t\tdestination: 'Singapore',\r\n\t\t\t\tdestinationCode: null,\r\n\t\t\t\tdestinationCityCode: null,\r\n\t\t\t\torigin: null,\r\n\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\tlandSeaScootBool: 'na',\r\n\t\t\t\tlandSeaRemarks: '',\r\n\t\t\t\tattachmentUris: [],\r\n\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t};\r\n\t\t\tsector34Temp['sector4Details'] = {\r\n\t\t\t\tsearch: null,\r\n\t\t\t\tflightNo: null,\r\n\t\t\t\tdestination: null,\r\n\t\t\t\torigin: 'Singapore',\r\n\t\t\t\toriginCode: null,\r\n\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\tremarks: '',\r\n\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: {\r\n\t\t\t\t\t...sector34Temp\r\n\t\t\t\t},\r\n\t\t\t}\r\n\r\n\r\n\t\tcase DELETE_PAX:\r\n\t\t\tlet paxPosition = action.pax\r\n\t\t\tlet formDetailsListToDelete = cloneDeep(state.formDetailsList)\r\n\t\t\tlet paxIndex = formDetailsListToDelete.findIndex((x) => x.pax === paxPosition)\r\n\t\t\tformDetailsListToDelete[paxIndex].isDeleted = true\r\n\t\t\treturn { ...state, formDetailsList: formDetailsListToDelete }\r\n\r\n\t\tcase RESTORE_PAX:\r\n\t\t\tpax = action.payload - 1\r\n\t\t\tnewPax = { ...state.formDetailsList[pax] }\r\n\t\t\tnewPax.isDeleted = false\r\n\t\t\tnewFormDetailsList = [...state.formDetailsList]\r\n\t\t\tnewFormDetailsList.splice(pax, 1, newPax)\r\n\t\t\treturn { ...state, formDetailsList: newFormDetailsList }\r\n\r\n\t\tcase UPDATE_DETAILS_FROM_SQ_RESPONSE:\r\n\t\t\tnewFormDetailsList = cloneDeep(state.formDetailsList)\r\n\t\t\tnewFormDetailsList.splice(action.pax, 1, action.details)\r\n\t\t\treturn { ...state, formDetailsList: newFormDetailsList }\r\n\r\n\t\tcase SUBMIT_INDIVIDUAL_FORM_IS_LOADING:\r\n\t\t\treturn { ...state, submitIndividualFormIsLoading: true }\r\n\r\n\t\tcase SUBMIT_INDIVIDUAL_FORM_SUCCESS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tredemptionTransactionId: action.data.result.id,\r\n\t\t\t\tsubmitIndividualFormIsLoading: false,\r\n\t\t\t\tformDetailsList: state.formDetailsList.map((m, index) => {\r\n\t\t\t\t\tm.ccn = CTP_CARD_DEFAULT_CCN\r\n\t\t\t\t\tm.cvc = action.data.result.cvc\r\n\t\t\t\t\tlet preLoadedCardMatch\r\n\r\n\t\t\t\t\tif (action.data.result.preloadedVouchersCards)\r\n\t\t\t\t\t\tpreLoadedCardMatch = action.data.result.preloadedVouchersCards.find((p) => m.eTicketsDetails.eTicket1 === p.eTicket1)\r\n\r\n\t\t\t\t\tif (preLoadedCardMatch) {\r\n\t\t\t\t\t\tm.preloadedVouchersCardNo = preLoadedCardMatch.cardNo\r\n\t\t\t\t\t\tm.voucherValidFrom = preLoadedCardMatch.voucherValidFrom\r\n\t\t\t\t\t\tm.voucherValidTo = preLoadedCardMatch.voucherValidTo\r\n\t\t\t\t\t\tm.voucherValuesAndRemarks = preLoadedCardMatch.voucherValuesAndRemarks\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet ctpDigitalCardMatch\r\n\t\t\t\t\tif (action.data.result.ctpDigitalCards) ctpDigitalCardMatch = action.data.result.ctpDigitalCards.find((p) => m.eTicketsDetails.eTicket1 === p.eTicket1)\r\n\t\t\t\t\tif (ctpDigitalCardMatch) m.cardNo = ctpDigitalCardMatch.cardNo\r\n\t\t\t\t\tif (action.data.result.cardNo) m.cardNo = action.data.result.cardNo\r\n\t\t\t\t\tif (m.cardNo) {\r\n\t\t\t\t\t\tm.fullCardNo = action.data.result.fullCardNo ? action.data.result.fullCardNo : m.cardNo + m.ccn\r\n\t\t\t\t\t\tif (action.data.result.ctpDigitalCards) {\r\n\t\t\t\t\t\t\tm.issuedVouchersList = action.data.result.ctpDigitalCards.find((c) => c.cardNo === m.cardNo).voucherListsJson\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (action.data.result.ctpDigitalCards) {\r\n\t\t\t\t\t\tm.cardNo = action.data.result.ctpDigitalCards[index].cardNo\r\n\t\t\t\t\t\tm.ccn = action.data.result.ctpDigitalCards[index].ccn\r\n\t\t\t\t\t\tm.fullCardNo = m.cardNo + m.ccn\r\n\t\t\t\t\t\tm.issuedVouchersList = action.data.result.ctpDigitalCards[index].voucherListsJson\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (m.preloadedVouchersCardNo) {\r\n\t\t\t\t\t\tm.fullCardNo = action.data.result.fullCardNo ? action.data.result.fullCardNo : m.preloadedVouchersCardNo + m.ccn\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tm.crVoucherInfo = action.data.result.crVoucherLists ? { ...action.data.result.crVoucherLists[0] } : null\r\n\t\t\t\t\treturn m\r\n\t\t\t\t}),\r\n\t\t\t\tctpDigitalCards: action.data.result.ctpDigitalCards,\r\n\t\t\t\tpreloadedVouchersCards: action.data.result.preloadedVouchersCards,\r\n\t\t\t\tisShowDeletedPax: false\r\n\t\t\t}\r\n\r\n\t\tcase SUBMIT_INDIVIDUAL_FORM_FAIL:\r\n\t\t\treturn { ...state, submitIndividualFormIsLoading: false }\r\n\r\n\t\tcase COMMIT_FORM_DETAILS_INTO_LIST:\r\n\t\t\tdebugger\r\n\t\t\tlet formDetailsListToUpdate = cloneDeep(state.formDetailsList)\r\n\t\t\tlet newFormDetails = cloneDeep(state.currentPaxFormDetails)\r\n\t\t\tnewFormDetails.pax = state.currentPaxPosition\r\n\t\t\t// update voucher value\r\n\t\t\t// default member ship type as CTP (will update again in issurance screen)\r\n\t\t\tlet ctpVoucher = settings.voucher_sources.find(s => s.membership_type == \"CTP\")\r\n\t\t\tlet genVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == \"GEN\")\r\n\t\t\tlet lpcVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == \"LPC\")\r\n\t\t\t\r\n\t\t\t// passenger default value\r\n\t\t\tnewFormDetails.ctpGenValue = genVoucher.voucher_value\r\n\t\t\tnewFormDetails.ctpLpcValue = lpcVoucher.voucher_value\r\n\t\t\tnewFormDetails.numberOfSector = 2\r\n\t\t\t// 2 way transit\r\n\t\t\tif (newFormDetails.sector3Details.flightNo && newFormDetails.sector4Details.flightNo) \r\n\t\t\t{\r\n\t\t\t\tnewFormDetails.ctpGenValue = parseInt(newFormDetails.ctpGenValue) * 2\r\n\t\t\t\tnewFormDetails.ctpLpcValue = parseInt(newFormDetails.ctpLpcValue) * 2\r\n\t\t\t\tnewFormDetails.numberOfSector = 4\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tnewFormDetails.ctpVoucherValue = parseInt(newFormDetails.ctpGenValue) + parseInt(newFormDetails.ctpLpcValue)\r\n\t\t\t\r\n\t\t\t//formDetailsListToUpdate.push(newFormDetails)\r\n\t\t\tformDetailsListToUpdate[state.currentPaxPosition - 1] = newFormDetails\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tformDetailsList: formDetailsListToUpdate,\r\n\t\t\t\tcurrentPaxPosition: formDetailsListToUpdate.length + 1,\r\n\t\t\t\tcurrentPaxFormDetails: cloneDeep(initFormDetails),\r\n\t\t\t\teditMode: false,\r\n\t\t\t}\r\n\r\n\t\tcase CHECK_AND_UPDATE_ELIGIBILITY_IS_LOADING:\r\n\t\t\treturn { ...state, checkAndUpdateEligibilityIsLoading: true }\r\n\r\n\t\tcase CHECK_AND_UPDATE_ELIGIBILITY_SUCCESS:\r\n\t\t\tlet newCurrentPaxFormDetails = cloneDeep(state.currentPaxFormDetails)\r\n\t\t\tlet ticketDetails = action.rs.data.result.ticketDetails\r\n\r\n\t\t\tnewCurrentPaxFormDetails = { ...newCurrentPaxFormDetails, ticketDetails: ticketDetails }\r\n\t\t\t\r\n\t\t\tif (newCurrentPaxFormDetails['eTicketsDetails']) {\r\n\t\t\t\tnewCurrentPaxFormDetails['eTicketsDetails'].isETicketsVerified = true\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (newCurrentPaxFormDetails['personalDetails']) {\r\n\t\t\t\t// sq eticket\r\n\t\t\t\tif (ticketDetails[0].ctpEligibility !== 'OTHER_ACCEPTED_AIRLINE' && ticketDetails[0].ctpEligibility !== 'SQAPI_OFFLINE') {\r\n\t\t\t\t\tnewCurrentPaxFormDetails['personalDetails'].haveTwoTouchPoint = ticketDetails[0].criterias.haveTwoTouchPoint\r\n\t\t\t\t\tnewCurrentPaxFormDetails['personalDetails'].numberOfSector = ticketDetails[0].criterias.haveTwoTouchPoint === 'Yes' ? 4 : 2\r\n\t\t\t\t}\r\n\t\t\t\t// other accepted airline\r\n\t\t\t\telse {\r\n\t\t\t\t\tnewCurrentPaxFormDetails['personalDetails'].haveTwoTouchPoint = ''\r\n\t\t\t\t\tnewCurrentPaxFormDetails['personalDetails'].numberOfSector = 0\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...state,\r\n\t\t\t\t\tcurrentPaxFormDetails: newCurrentPaxFormDetails,\r\n\t\t\t\t\tcheckAndUpdateEligibilityIsLoading: false,\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPaxFormDetails: newCurrentPaxFormDetails,\r\n\t\t\t\tcheckAndUpdateEligibilityIsLoading: false,\r\n\t\t\t}\r\n\t\t\t\r\n\t\tcase CHECK_AND_UPDATE_ELIGIBILITY_FAIL:\r\n\t\t\treturn { ...state, checkAndUpdateEligibilityIsLoading: false }\r\n\r\n\t\tcase MEMBER_SEARCH_IS_LOADING:\r\n\t\t\treturn { ...state, memberSearchIsLoading: true }\r\n\r\n\t\tcase MEMBER_SEARCH_SUCCESS:\r\n\t\t\tnewCollectorDetails = { ...state.collectorDetails }\r\n\t\t\td = action.rs.data.result.items[0]\r\n\t\t\tkeys = ['email', 'mobileNo', 'country', 'cardNo', 'name', 'surname', 'contactNo', 'countryCode', 'areaCode', 'dob']\r\n\t\t\tkeys.forEach((k) => {\r\n\t\t\t\tnewCollectorDetails[k] = d[k]\r\n\t\t\t})\r\n\t\t\tif (!d['contactNo'] && d['mobileNo']) newCollectorDetails['contactNo'] = d['mobileNo']\r\n\t\t\tnewCollectorDetails.verifiedResult = d\r\n\t\t\tnewCollectorDetails.isVerified = true\r\n\t\t\tnewCollectorDetails.crMemberId = d.memberId\r\n\r\n\t\t\treturn { ...state, collectorDetails: newCollectorDetails, memberSearchIsLoading: false }\r\n\r\n\t\tcase MEMBER_SEARCH_FAIL:\r\n\t\t\treturn { ...state, memberSearchIsLoading: false }\r\n\r\n\t\tcase SET_MOCK_DATA:\r\n\t\t\tconst collectorDetails = {\r\n\t\t\t\tregisterCr: false,\r\n\t\t\t\texistingCr: false,\r\n\t\t\t\tfrequencyOfTravelInPastYear: 0,\r\n\t\t\t\tsignatureUri: '',\r\n\t\t\t\tcardNo: '0000200100001400895',\r\n\t\t\t\tname: 'John',\r\n\t\t\t\tsurname: 'Smith',\r\n\t\t\t\temail: 'aa@gmail.com',\r\n\t\t\t\tdob: '2000-01-01',\r\n\t\t\t\tcountry: 'Singapore',\r\n\t\t\t\tmobileNo: '355-2312',\r\n\t\t\t\tsignatureBase64:\r\n\t\t\t\t\t'data:image/png;base64,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',\r\n\t\t\t\tisVerified: true,\r\n\t\t\t}\r\n\t\t\treturn { ...state, formDetailsList: dummy, collectorDetails }\r\n\r\n\t\tcase RESET_INDVIDIUAL_FORM_REDUCER:\r\n\t\t\tlet cloneInitState = cloneDeep(initState)\r\n\t\t\treturn { ...cloneInitState }\r\n\r\n\t\tcase UPLOAD_FILE_IS_LOADING:\r\n\t\t\treturn { ...state, uploadFileIsLoading: true }\r\n\r\n\t\tcase UPLOAD_FILE_SUCCESS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tuploadFileIsLoading: false,\r\n\t\t\t\tcurrentPaxFormDetails: {\r\n\t\t\t\t\t...state.currentPaxFormDetails,\r\n\t\t\t\t\tsector2Details: {\r\n\t\t\t\t\t\t...state.currentPaxFormDetails.sector2Details,\r\n\t\t\t\t\t\tattachmentUri: action.rs.data.result[0],\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t}\r\n\r\n\t\tcase UPLOAD_FILE_FAIL:\r\n\t\t\treturn { ...state, uploadFileIsLoading: false }\r\n\r\n\t\tcase UPLOAD_SIGNATURE_SUCCESS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tuploadFileIsLoading: false,\r\n\t\t\t\tcollectorDetails: { ...state.collectorDetails, signatureUri: action.rs.data.result[0] },\r\n\t\t\t}\r\n\r\n\t\tcase UPDATE_FORM_DETAILS_LIST:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tformDetailsList: action.formDetailsList,\r\n\t\t\t}\r\n\r\n\t\tcase RESET_COLLECTOR_DETAILS:\r\n\t\t\treturn { ...state, collectorDetails: { ...initState.collectorDetails } }\r\n\r\n\t\tcase UPDATE_ENTIRE_INDIVIDUAL_FORM:\r\n\t\t\treturn {\r\n\t\t\t\t...action.individualForm,\r\n\t\t\t}\r\n\r\n\t\tcase COPY_FORM_DETAILS_TO_CURRENT_PAX:\r\n\t\t\tcurrentPaxFormDetails = { ...action.pax }\r\n\t\t\tcurrentPaxPosition = action.pax.pax\r\n\t\t\treturn { ...state, currentPaxFormDetails, currentPaxPosition, editMode: true }\r\n\r\n\t\tcase CANCEL_EDITING_PAX:\r\n\t\t\tcurrentPaxFormDetails = cloneDeep(initFormDetails)\r\n\t\t\tcurrentPaxPosition = state.formDetailsList.length + 1\r\n\t\t\treturn { ...state, currentPaxFormDetails, currentPaxPosition, editMode: false }\r\n\r\n\t\tcase REPLACE_DRAFT:\r\n\t\t\tdraft = JSON.parse(state.draft.data)\r\n\t\t\tdraft.promptedRetrieveDraft = true\r\n\t\t\tdraft.replacingFromDraft = true\r\n\t\t\tdraft.submitIndividualFormIsLoading = false\r\n\t\t\tdraft.checkAndUpdateEligibilityIsLoading = false\r\n\t\t\tdraft.memberSearchIsLoading = false\r\n\t\t\tdraft.uploadFileIsLoading = false\r\n\t\t\tdraft.individualFilesUploadIsLoading = false\r\n\t\t\tdraft.draftRedemptionTransaction = state.draftRedemptionTransaction\r\n\t\t\tdraft.getDraftFromOtherRedemptionTransactionIsLoading = false\r\n\t\t\tdraft.editMode = false\r\n\t\t\treturn { ...draft }\r\n\r\n\t\tcase REPLACE_DRAFT_SUCCESS:\r\n\t\t\treturn { ...state, replacingFromDraft: false }\r\n\r\n\t\tcase INDIVIDUAL_FILES_UPLOAD_IS_LOADING:\r\n\t\t\treturn { ...state, individualFilesUploadIsLoading: true }\r\n\r\n\t\tcase INDIVIDUAL_FILES_UPLOAD_SUCCESS:\r\n\t\t\tnewCurrentPaxFormDetails = { ...state.currentPaxFormDetails }\r\n\t\t\tnewCurrentPaxFormDetails.sector2Details.attachmentUris = [...newCurrentPaxFormDetails.sector2Details.attachmentUris, ...action.rs.data.result]\r\n\t\t\treturn { ...state, individualFilesUploadIsLoading: false, currentPaxFormDetails: newCurrentPaxFormDetails }\r\n\r\n\t\tcase INDIVIDUAL_FILES_UPLOAD_FAIL:\r\n\t\t\treturn { ...state, individualFilesUploadIsLoading: false }\r\n\r\n\t\tcase UPDATE_PROMPTED_RETRIEVE_DRAFT:\r\n\t\t\treturn { ...state, promptedRetrieveDraft: action.promptedRetrieveDraft }\r\n\r\n\t\tcase UPDATE_PROMPTED_AUTO_FILL_SECTOR:\r\n\t\t\treturn { ...state, promptedAutoFillSector: action.promptedAutoFillSector }\r\n\r\n\t\tcase UPDATE_INDIVIDUAL_FORM_DUCK:\r\n\t\t\treturn action.obj\r\n\r\n\t\tcase FIND_PASSENGER_DATA_WITH_CARD_NO_IS_LOADING:\r\n\t\t\treturn { ...state, findPassengerDataWithCardNoIsLoading: true }\r\n\r\n\t\tcase FIND_PASSENGER_DATA_WITH_CARD_NO_SUCCESS:\r\n\t\t\tvar matchedPassenger = {}\r\n\r\n\t\t\tfor (let passenger of action.rs.data.result.items) {\r\n\t\t\t\tif (passenger.group != null || passenger.redemptionTransaction != null) {\r\n\t\t\t\t\tmatchedPassenger = passenger\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tfindPassengerDataWithCardNoIsLoading: false,\r\n\t\t\t\tpassengerDataWithCardNo: {\r\n\t\t\t\t\tpassenger: matchedPassenger,\r\n\t\t\t\t\tgroup: matchedPassenger.group || {},\r\n\t\t\t\t\tredemptionTransaction: matchedPassenger.redemptionTransaction || {},\r\n\t\t\t\t},\r\n\t\t\t}\r\n\r\n\t\tcase FIND_PASSENGER_DATA_WITH_CARD_NO_FAIL:\r\n\t\t\treturn { ...state, findPassengerDataWithCardNoIsLoading: false }\r\n\r\n\t\tcase FIND_PASSENGER_IN_GROUP_IS_LOADING:\r\n\t\t\treturn { ...state, findPassengerInGroupIsLoading: true }\r\n\r\n\t\tcase FIND_PASSENGER_IN_GROUP_SUCCESS:\r\n\t\t\treturn { ...state, findPassengerInGroupIsLoading: false, passengerFromGroup: action.rs.data.result || {} }\r\n\r\n\t\tcase FIND_PASSENGER_IN_GROUP_FAIL:\r\n\t\t\treturn { ...state, findPassengerInGroupIsLoading: false }\r\n\r\n\t\tcase GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_IS_LOADING:\r\n\t\t\treturn { ...state, getDraftFromOtherRedemptionTransactionIsLoading: true, promptedRetrieveDraft: true }\r\n\r\n\t\tcase GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_SUCCESS:\r\n\t\t\t;({ draft, redemptionTransaction } = action.rs.data.result)\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tgetDraftFromOtherRedemptionTransactionIsLoading: false,\r\n\t\t\t\tdraft: draft || {},\r\n\t\t\t\tdraftRedemptionTransaction: redemptionTransaction || {},\r\n\t\t\t}\r\n\r\n\t\tcase GET_DRAFT_FROM_OTHER_REDEMPTION_TRANSACTION_FAIL:\r\n\t\t\treturn { ...state, getDraftFromOtherRedemptionTransactionIsLoading: false }\r\n\r\n\t\tcase POPULATE_PASSENGER_FROM_GROUP:\r\n\t\t\tconst passengerFromGroup = { ...state.passengerFromGroup }\r\n\t\t\tcurrentPaxFormDetails = { ...state.currentPaxFormDetails }\r\n\t\t\tconst { flightData } = action\r\n\t\t\tnewCurrentPaxFormDetails = {\r\n\t\t\t\teTicketsDetails: {\r\n\t\t\t\t\teTicket1: passengerFromGroup.eTicket1,\r\n\t\t\t\t\teTicket2: passengerFromGroup.eTicket2,\r\n\t\t\t\t\teTicket3: passengerFromGroup.eTicket3,\r\n\t\t\t\t\teTicket4: passengerFromGroup.eTicket4,\r\n\t\t\t\t\teTicket1LastName: passengerFromGroup.eTicket1 ? passengerFromGroup.lastName : '',\r\n\t\t\t\t\teTicket2LastName: passengerFromGroup.eTicket2 ? passengerFromGroup.lastName : '',\r\n\t\t\t\t\teTicket3LastName: passengerFromGroup.eTicket3 ? passengerFromGroup.lastName : '',\r\n\t\t\t\t\teTicket4LastName: passengerFromGroup.eTicket4 ? passengerFromGroup.lastName : '',\r\n\t\t\t\t},\r\n\t\t\t\tpersonalDetails: {\r\n\t\t\t\t\tfirstName: passengerFromGroup.firstName,\r\n\t\t\t\t\tlastName: passengerFromGroup.lastName,\r\n\t\t\t\t\tdob: toBrowserFriendlyDate(passengerFromGroup.dob),\r\n\t\t\t\t\tremarks: passengerFromGroup.remarks,\r\n\t\t\t\t},\r\n\t\t\t\tsector1Details: {\r\n\t\t\t\t\tflightNo: passengerFromGroup.firstFltNo,\r\n\t\t\t\t\tdestination: 'Singapore',\r\n\t\t\t\t\torigin: getOriginFromFltNumber(passengerFromGroup.firstFltNo, flightData),\r\n\t\t\t\t\tdepartingDate: toBrowserFriendlyDate(passengerFromGroup.firstFltDepDate),\r\n\t\t\t\t\tremarks: '',\r\n\t\t\t\t},\r\n\t\t\t\tsector2Details: {\r\n\t\t\t\t\tflightNo: passengerFromGroup.secondFltNo,\r\n\t\t\t\t\tdestination: getDestinationFromFltNumber(passengerFromGroup.secondFltNo, flightData),\r\n\t\t\t\t\tdestinationCityCode: null,\r\n\t\t\t\t\torigin: 'Singapore',\r\n\t\t\t\t\tdepartingDate: toBrowserFriendlyDate(passengerFromGroup.secondFltDepDate),\r\n\t\t\t\t\tlandSeaScootBool: 'na',\r\n\t\t\t\t\tlandSeaRemarks: '',\r\n\t\t\t\t\tattachmentUris: [],\r\n\t\t\t\t},\r\n\t\t\t\tsector3Details: {\r\n\t\t\t\t\tflightNo: null,\r\n\t\t\t\t\tdestination: 'Singapore',\r\n\t\t\t\t\tdestinationCode: null,\r\n\t\t\t\t\tdestinationCityCode: null,\r\n\t\t\t\t\torigin: null,\r\n\t\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\t\tlandSeaScootBool: 'na',\r\n\t\t\t\t\tlandSeaRemarks: '',\r\n\t\t\t\t\tattachmentUris: [],\r\n\t\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t\t},\r\n\t\t\t\tsector4Details: {\r\n\t\t\t\t\tflightNo: null,\r\n\t\t\t\t\tdestination: null,\r\n\t\t\t\t\torigin: 'Singapore',\r\n\t\t\t\t\toriginCode: null,\r\n\t\t\t\t\tdepartingDate: moment().format('YYYY-MM-DD'),\r\n\t\t\t\t\tremarks: '',\r\n\t\t\t\t\tsingaporeCode: 'SIN',\r\n\t\t\t\t},\r\n\t\t\t\tticketDetails: [],\r\n\t\t\t\tisDeleted: false,\r\n\t\t\t\tctpVoucherValue: 0,\r\n\t\t\t\tctpGenValue: 0,\r\n\t\t\t\tctpLpcValue: 0,\r\n\t\t\t\tcardNo: '',\r\n\t\t\t\tcurrentPaxPosition: currentPaxFormDetails.currentPaxPosition,\r\n\t\t\t\tgenPhysicalVoucherNo: passengerFromGroup.genPhysicalVoucherNo || '',\r\n\t\t\t\tlpcPhysicalVoucherNo: passengerFromGroup.lpcPhysicalVoucherNo || '',\r\n\t\t\t\tphysicalVoucherIssued: passengerFromGroup.physicalVoucherIssued,\r\n\t\t\t}\r\n\r\n\t\t\treturn { ...state, currentPaxFormDetails: newCurrentPaxFormDetails }\r\n\r\n\t\tcase INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING:\r\n\t\t\treturn { ...state, individualGroupCheckRedeemedPassengerIsLoading: true }\r\n\r\n\t\tcase INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS:\r\n\t\t\t;({\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tresult: { items },\r\n\t\t\t\t},\r\n\t\t\t} = action.rs)\r\n\t\t\tif (items.length === 0) {\r\n\t\t\t\treturn { ...state, individualGroupCheckRedeemedPassengerIsLoading: false }\r\n\t\t\t}\r\n\r\n\t\t\tnewFormDetailsList = produce(state.formDetailsList, (draft) => {\r\n\t\t\t\tconst keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t\t\t\tfor (let p of draft) {\r\n\t\t\t\t\tfor (let i = items.length - 1; i >= 0; i--) {\r\n\t\t\t\t\t\tfor (let k of keys) {\r\n\t\t\t\t\t\t\tif (items[i] && p.eTicketsDetails[k] !== '') {\r\n\t\t\t\t\t\t\t\tif (p.eTicketsDetails[k] === items[i].eTicketNo) {\r\n\t\t\t\t\t\t\t\t\tp.redeemed = items[i]\r\n\t\t\t\t\t\t\t\t\titems.splice(i, 1)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn { ...state, individualGroupCheckRedeemedPassengerIsLoading: false, formDetailsList: newFormDetailsList }\r\n\r\n\t\tcase INDIVIDUAL_GROUP_CHECK_REDEEMED_PASSENGER_FAIL:\r\n\t\t\treturn { ...state, individualGroupCheckRedeemedPassengerIsLoading: false }\r\n\t\tcase FIND_PASSENGER_WITH_APPEAL_IS_LOADING:\r\n\t\t\treturn { ...state, findPassengerWithAppealIsLoading: true };\r\n case FIND_PASSENGER_WITH_APPEAL_SUCCESS:\r\n return { ...state, findPassengerWithAppealIsLoading: false };\r\n case FIND_PASSENGER_WITH_APPEAL_FAIL:\r\n return { ...state, findPassengerWithAppealIsLoading: false };\r\n\t\tcase GET_CR_DETAILS_IS_LOADING:\r\n\t\t\treturn { ...state, getCrDetailsFromOCIDLoading: true }\r\n\t\tcase GET_CR_DETAILS_SUCCESS:\r\n\t\t\tlet member = action.data.result\r\n\t\t\tlet formattedCountryCode = member.countryCode.replace(/\\D+/g, '')\r\n\t\t\tlet formattedCountry = findCountryFromCallingCode(formattedCountryCode)\r\n\t\t\tlet newCrDetailsFromOCID = {\r\n\t\t\t\tcardNo: member.cardNo.substring(0, 19),\r\n\t\t\t\tname: member.name,\r\n\t\t\t\tsurname: member.surname,\r\n\t\t\t\temail: member.email,\r\n\t\t\t\tcontactNo: member.mobileNo,\r\n\t\t\t\tcountryCode: formattedCountryCode,\r\n\t\t\t\tcountry: formattedCountry,\r\n\t\t\t\tdob: member.dob,\r\n\t\t\t\tcrMemberId: member.memberID,\r\n\t\t\t}\r\n\r\n\t\t\treturn { ...state, crDetailsFromOCID: newCrDetailsFromOCID, getCrDetailsFromOCIDLoading: false }\r\n\t\tcase GET_CR_DETAILS_FAIL:\r\n\t\t\treturn { ...state, getCrDetailsFromOCIDLoading: false }\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default individualFormDuck\r\n","export const formDetailsListMockGenerator = (n = 1) => {\r\n const rs = []\r\n for (let i = 1; i < n + 1; i++) {\r\n rs.push(\r\n {\r\n pax: i,\r\n eTicketsDetails: {\r\n eTicket1: '6182425386132',\r\n eTicket2: '0861',\r\n eTicket3: '0862',\r\n eTicket4: '0863',\r\n eTicket1LastName: 'aa',\r\n eTicket2LastName: 'aa',\r\n eTicket3LastName: 'aa',\r\n eTicket4LastName: 'aa',\r\n isETicketsVerified: false\r\n },\r\n personalDetails: {\r\n firstName: 'aa',\r\n lastName: 'KHAN',\r\n dob: '2019-01-15'\r\n },\r\n sector1Details: {\r\n flightNo: 'SQ107',\r\n departingDate: '2019-01-21T00:00:00',\r\n destination: 'Algeria'\r\n },\r\n sector2Details: {\r\n landSeaScootBool: 'na',\r\n flightNo: 'TR 109',\r\n departingDate: '2019-01-15',\r\n destination: 'Andorra'\r\n },\r\n isDeleted: false,\r\n ticketDetails: [\r\n {\r\n ticketNumber: '6182425386132',\r\n flightNumber: 'SQ107',\r\n departureDate: '2019-01-21T00:00:00',\r\n nextDestination: 'HKT',\r\n code: 'CSLAAA0000',\r\n criterias: {\r\n isFlightEligible: 'Yes',\r\n haveTwoTouchPoint: 'Yes',\r\n isWithinCampaign: 'Yes',\r\n isThreeSector: 'No',\r\n isFourSector: 'Yes',\r\n isSameOrgDest: 'Yes',\r\n isValidTransit: 'Yes',\r\n isPaxSeated: 'Yes',\r\n isValidOrigin: 'Yes',\r\n isFlightConfirmed: 'Yes',\r\n isUsedOrFlownFlight: 'Yes'\r\n },\r\n encodedCriteria: '11101111111',\r\n ctpEligibility: 'Yes',\r\n etVerified: 'Yes'\r\n }\r\n ],\r\n ctpVoucherValue: 40,\r\n ctpGenValue: 20,\r\n ctpLpcValue: 20,\r\n cardNo: '',\r\n genPhysicalVoucherNo: '',\r\n lpcPhysicalVoucherNo: '',\r\n physicalVoucherIssued: false\r\n }\r\n )\r\n }\r\n\r\n return rs\r\n}","import CallingCodes from \"../data/callingCodesCRM\";\r\n\r\nexport const findCallingCodeFromCountry = country => {\r\n const callingCode = CallingCodes.find(c => c.country === country)\r\n if (callingCode) {\r\n this.setState({callingCode: callingCode.label})\r\n return callingCode.label\r\n }\r\n}\r\n\r\nexport const findCountryFromCallingCode = callingCode => {\r\n const matchedCallingCode = CallingCodes.find(c => c.label === callingCode);\r\n if (matchedCallingCode) {\r\n return matchedCallingCode.country\r\n }\r\n}","import React, {PureComponent} from 'react'\r\nimport {Fab} from '@material-ui/core'\r\nimport {Undo} from '@material-ui/icons'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass StyledUndoBtn extends PureComponent {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nStyledUndoBtn.propTypes = {\r\n onClick: PropTypes.func.isRequired\r\n}\r\n\r\nexport default StyledUndoBtn","import React, { Component } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles, Button, Dialog, DialogActions, DialogContent, DialogTitle, Grid, Table, TableBody, TableCell, TableRow } from '@material-ui/core'\r\nimport { pink } from '@material-ui/core/colors'\r\n\r\nclass SqApiCriteriasDialog extends Component {\r\n\t_renderCriterias = () => {\r\n\t\tconst { criterias, criteriasMessage } = this.props\r\n\r\n\t\tif (criteriasMessage !== '') {\r\n\t\t\treturn {criteriasMessage}\r\n\t\t}\r\n\r\n\t\tconst criteriasObj = [\r\n\t\t\t{ isFlightEligible: 'Is pax flying on eligible flights?' },\r\n\t\t\t{ haveTwoTouchPoint: 'Is pax on transit 2 times?' },\r\n\t\t\t{ isWithinCampaign: 'Is pax travelling within campaign period?' },\r\n\t\t\t{ isThreeSector: 'Is trip a 3-sector with land/sea transfers?' },\r\n\t\t\t{ isSameOrgDest: 'For 3-sector, did pax return to the same origin country?' },\r\n\t\t\t{ isValidTransit: 'Is at least one transit within 24 hours?' },\r\n\t\t\t{ isPaxSeated: 'Is pax above 2 years old?' },\r\n\t\t\t{ isValidOrigin: 'Did pax start their trip from agreed point of origin?' },\r\n\t\t\t{ isFlightConfirmed: 'Is upcoming flight sectors confirmed?' },\r\n\t\t\t{ isUsedOrFlownFlight: 'Has previous flight flown?' },\r\n\t\t\t{ isFromSpecialBoardPointCountry: 'Is from special board point country?' }\r\n\t\t]\r\n\r\n\t\tconst elements = criteriasObj.map((k, i) => {\r\n\t\t\tconst { classes } = this.props\r\n\t\t\tlet k2 = Object.keys(k)[0]\r\n\t\t\tconst className = criterias[k2] === 'No' ? classes.no : ''\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{criteriasObj[i][k2]}\r\n\t\t\t\t\t{criterias[k2]}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t})\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{elements}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tAirline Check Results\r\n\t\t\t\t\t{this._renderCriterias()}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nSqApiCriteriasDialog.propTypes = {\r\n\tcriterias: PropTypes.shape({\r\n\t\tisFlightEligible: PropTypes.string,\r\n\t\thaveTwoTouchPoint: PropTypes.string,\r\n\t\tisWithinCampaign: PropTypes.string,\r\n\t\tisThreeSector: PropTypes.string,\r\n\t\tisFourSector: PropTypes.string,\r\n\t\tisSameOrgDest: PropTypes.string,\r\n\t\tisValidTransit: PropTypes.string,\r\n\t\tisPaxSeated: PropTypes.string,\r\n\t\tisValidOrigin: PropTypes.string,\r\n\t\tisFlightConfirmed: PropTypes.string,\r\n\t\tisUsedOrFlownFlight: PropTypes.string\r\n\t}),\r\n\tcriteriasMessage: PropTypes.string, // message to show when criteris is {}\r\n\tviewCriterias: PropTypes.bool, // determines is dialog shows\r\n\tonViewCritierasClose: PropTypes.func // usually function to set viewCriterias to false\r\n}\r\n\r\nconst styles = theme => ({\r\n\tno: { backgroundColor: pink[50] }\r\n})\r\n\r\nexport default withStyles(styles)(SqApiCriteriasDialog)\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles, Table, TableBody, TableCell, TableHead, TableRow, Paper, TextField } from '@material-ui/core'\r\nimport { lime } from '@material-ui/core/colors'\r\nimport StyledDeleteBtn from './StyledDeleteBtn'\r\nimport StyledUndoBtn from './StyledUndoBtn'\r\nimport SqApiCriteriasDialog from '../components/SqApiCriteriasDialog'\r\nimport { updateFormDetailsList } from '../ducks/individualFormDuck'\r\nimport { toHumanFriendlyDate } from '../helpers/utilities'\r\nimport { convertSqStatusForDisplay } from '../helpers/eticketStatusHelper'\r\n\r\nclass ParticularsTable extends React.Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tcriterias: {},\r\n\t\t\tcriteriasMessage: '',\r\n\t\t\tviewCriterias: false,\r\n\t\t\teditingIdx: null,\r\n\t\t\tphysicalEditingIdx: {}\r\n\t\t}\r\n\t}\r\n\r\n\tonViewCritierias = r => {\r\n\t\tif (r.ticketDetails && r.ticketDetails[0].criterias) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: r.ticketDetails[0].criterias,\r\n\t\t\t\tcriteriasMessage: ''\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\t\tif (r.ticketDetails && r.ticketDetails[0].remarks) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: {},\r\n\t\t\t\tcriteriasMessage: r.ticketDetails[0].remarks\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: {},\r\n\t\t\t\tcriteriasMessage: 'No results'\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tonViewCriteriasClose = () => {\r\n\t\tthis.setState({ viewCriterias: false })\r\n\t}\r\n\r\n\tonCardNoKeyPress = e => {\r\n\t\tif (e.key === 'Enter') this.setState({ editingIdx: null, physicalEditingIdx: {} })\r\n\t}\r\n\r\n\tonCardNoChange = (idx, e) => {\r\n\t\tlet value = e.target.value\r\n\t\tif (value.length > 19) {\r\n\t\t\tvalue = value.substring(0, 19)\r\n\t\t}\r\n\t\tconst newPax = { ...this.props.rows[idx] }\r\n\t\tnewPax.cardNo = value\r\n\t\tlet newFormDetailsList = [...this.props.rows]\r\n\t\tnewFormDetailsList.splice(idx, 1, newPax)\r\n\t\tthis.props.updateFormDetailsList(newFormDetailsList)\r\n\t}\r\n\r\n\tonCardEdit = (i, row) => {\r\n\t\tthis.setState({ editingIdx: i })\r\n\t}\r\n\r\n\tonPhysicalCardNoChange = (idx, k, e) => {\r\n\t\tconst newPax = { ...this.props.rows[idx] }\r\n\t\tnewPax[k] = e.target.value\r\n\t\tlet newFormDetailsList = [...this.props.rows]\r\n\t\tnewFormDetailsList.splice(idx, 1, newPax)\r\n\t\tthis.props.updateFormDetailsList(newFormDetailsList)\r\n\t}\r\n\r\n\tonPhysicalCardEdit = (row, col) => {\r\n\t\tthis.setState({ physicalEditingIdx: { row, col } })\r\n\t}\r\n\r\n\tonCardNoBlur = idx => {\r\n\t\tif (this.state.editingIdx === idx) this.setState({ editingIdx: null })\r\n\t}\r\n\r\n\tonPhysicalCardNoBlur = (row, col) => {\r\n\t\tconst { physicalEditingIdx } = this.state\r\n\t\tif (physicalEditingIdx.row === row && physicalEditingIdx.col === col) this.setState({ physicalEditingIdx: [] })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, currentPaxPosition, editMode, multiCard, physicalCard, singleCard } = this.props\r\n\t\tconst { criterias, viewCriterias, criteriasMessage, editingIdx, physicalEditingIdx } = this.state\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tNo\r\n\t\t\t\t\t\t\tName\r\n\t\t\t\t\t\t\tBooking Ref No.\r\n\t\t\t\t\t\t\tVoucher Value\r\n\t\t\t\t\t\t\tEligibility\r\n\t\t\t\t\t\t\tRedemption Date\r\n {!multiCard && !singleCard && !physicalCard && Card No}\r\n\t\t\t\t\t\t\t{multiCard && Card no}\r\n\t\t\t\t\t\t\t{singleCard && Card no}\r\n\t\t\t\t\t\t\t{physicalCard && GEN Voucher no}\r\n\t\t\t\t\t\t\t{physicalCard && LPC Voucher no}\r\n\t\t\t\t\t\t\t{this.props.onDelete && Delete/Undo}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{this.props.rows.map((row, index) => {\r\n\t\t\t\t\t\t\tconst eTicket = []\r\n\t\t\t\t\t\t\tlet classNames = []\r\n\r\n\t\t\t\t\t\t\tconst keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t\t\t\t\t\t\tkeys.forEach(k => {\r\n\t\t\t\t\t\t\t\tif (row.eTicketsDetails[k] !== '' && row.eTicketsDetails[k] !== undefined) eTicket.push(row.eTicketsDetails[k])\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tif (row.isDeleted) classNames.push(classes.deleted)\r\n\t\t\t\t\t\t\tif (row.pax === currentPaxPosition) classNames.push(classes.editing)\r\n\t\t\t\t\t\t\tdebugger\r\n\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

{row.pax}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onEditPax(row)} className={row.isDeleted ? '' : classes.btn}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{row.personalDetails.firstName}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

{row.eTicketsDetails.pnr}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t${row.ctpGenValue ? row.ctpGenValue : 0} GEN | ${row.ctpLpcValue ? row.ctpLpcValue : 0} LPC\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t{/* {row.ticketDetails.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\trow.ticketDetails[0] ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onViewCritierias(row)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{convertSqStatusForDisplay(row.ticketDetails[0].ctpEligibility)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : null\r\n\t\t\t\t\t\t\t\t\t\t\t) : null} */}\r\n\t\t\t\t\t\t\t\t\t\t\t this.onViewCritierias(row)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\tM\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t{row.ticketDetails.length > 0 ? (row.ticketDetails[0] ? row.ticketDetails[0].etVerified : null) : null}\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
*/}\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

{row.redeemed ? toHumanFriendlyDate(row.redeemed.creationTime) : null}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t\t{!multiCard && !singleCard && !physicalCard &&\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t

{row.redeemed ? row.redeemed.cardNo : null}

\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.multiCard && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx !== index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (row.isDeleted ? null : this.onCardEdit(index, row))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={row.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{row.cardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx === index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onCardNoChange(index, e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onCardNoBlur(index)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='number'\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n {this.props.singleCard && (\r\n \r\n

{this.props.collectorDetails.cardNo}

\r\n\t\t\t\t\t\t\t\t\t\t
\r\n )}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.physicalCard && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{(physicalEditingIdx.row !== index || physicalEditingIdx.col !== 0) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (row.isDeleted ? null : this.onPhysicalCardEdit(index, 0))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={row.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{row.genPhysicalVoucherNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{physicalEditingIdx.row === index && physicalEditingIdx.col === 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalCardNoChange(index, 'genPhysicalVoucherNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onPhysicalCardNoBlur(index, 0)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.physicalCard && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{(physicalEditingIdx.row !== index || physicalEditingIdx.col !== 1) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (row.isDeleted ? null : this.onPhysicalCardEdit(index, 1))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={row.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{row.lpcPhysicalVoucherNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{physicalEditingIdx.row === index && physicalEditingIdx.col === 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalCardNoChange(index, 'lpcPhysicalVoucherNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onPhysicalCardNoBlur(index, 1)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.onDelete && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{!row.isDeleted && this.props.onDelete(row.pax)} disabled={editMode} />}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{row.isDeleted && this.props.onRestore(row.pax)} />}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\troot: { width: '100%', marginTop: theme.spacing.unit * 3, overflowX: 'auto' },\r\n\ttable: { minWidth: 700 },\r\n\tdeleted: { background: '#eee' },\r\n\ttextDeleted: { color: '#bbb', textDecoration: 'line-through' },\r\n\tbtn: { border: 0, cursor: 'pointer', borderBottom: '1px dotted black' },\r\n\tediting: { backgroundColor: lime[50] },\r\n\ttextFieldInput: { fontSize: '0.8125rem' }\r\n})\r\n\r\nParticularsTable.propTypes = {\r\n\tclasses: PropTypes.object.isRequired,\r\n\trows: PropTypes.array.isRequired\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n\tconst {\r\n\t\tindividualFormDuck: { currentPaxPosition, editMode }\r\n\t} = state\r\n\r\n\treturn { currentPaxPosition, editMode }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn { updateFormDetailsList: formDetailsList => dispatch(updateFormDetailsList(formDetailsList)) }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(ParticularsTable))\r\n","/**\r\n * Formats data to react-select friendly for consumption\r\n * @param data\r\n * @returns {label: '', value:null}\r\n */\r\nexport const formatFlightNoHelper = data => {\r\n return data.map(v => ({label: v.carrierCode + ' ' + v.serviceNumber, value: null}))\r\n}","import moment from \"moment\";\r\n\r\nclass PassportParser {\r\n constructor(passportString) {\r\n this.passportString = passportString\r\n }\r\n\r\n getData = () => {\r\n let passportArr = this.passportString.split('/');\r\n let firstName = passportArr[0];\r\n let lastName = passportArr[1];\r\n let dobMoment = moment(passportArr[3], 'DD-MM-YYYY')\r\n let today = moment();\r\n if(dobMoment.isAfter(today)) dobMoment.subtract(100, 'years');\r\n let dob = dobMoment.format('YYYY-MM-DD');\r\n let nationality = passportArr[4];\r\n //Check if last name contains 3 digits\r\n let regex = /(?:\\D*\\d){3}/g\r\n if(lastName.match(regex)){\r\n lastName = ''\r\n }\r\n if(firstName.match(regex)){\r\n firstName = ''\r\n }\r\n return {\r\n firstName,\r\n lastName,\r\n dob,\r\n nationality\r\n };\r\n };\r\n\r\n}\r\n\r\nexport default PassportParser","export const FlightNos = [\r\n {\r\n \"carrierCode\": \"TR\",\r\n \"serviceNumber\": \"109\",\r\n \"departureCityCode\": \"SZX\",\r\n \"departureCityName\": \"Shenzhen\",\r\n \"departurePortCode\": \"SZX\",\r\n \"departurePortName\": \"Bao'an International\",\r\n \"arrivalCityCode\": \"SIN\",\r\n \"arrivalCityName\": \"Singapore\",\r\n \"arrivalPortCode\": \"SIN\",\r\n \"arrivalPortName\": \"Singapore Changi Apt\",\r\n \"arrivalDateTime\": \"2019-01-15 04:00:00.000\",\r\n },\r\n {\r\n \"carrierCode\": \"SQ\",\r\n \"serviceNumber\": \"6090\",\r\n \"departureCityCode\": \"ADD\",\r\n \"departureCityName\": \"Addis Ababa\",\r\n \"departurePortCode\": \"ADD\",\r\n \"departurePortName\": \"Bole Intl\",\r\n \"arrivalCityCode\": \"SIN\",\r\n \"arrivalCityName\": \"Singapore\",\r\n \"arrivalPortCode\": \"SIN\",\r\n \"arrivalPortName\": \"Singapore Changi Apt\",\r\n \"arrivalDateTime\": \"2019-01-17 14:50:00.000\",\r\n },\r\n {\r\n \"carrierCode\": \"SQ\",\r\n \"serviceNumber\": \"5905\",\r\n \"departureCityCode\": \"TYO\",\r\n \"departureCityName\": \"Tokyo\",\r\n \"departurePortCode\": \"HND\",\r\n \"departurePortName\": \"Tokyo Intl (Haneda)\",\r\n \"arrivalCityCode\": \"SIN\",\r\n \"arrivalCityName\": \"Singapore\",\r\n \"arrivalPortCode\": \"SIN\",\r\n \"arrivalPortName\": \"Singapore Changi Apt\",\r\n \"arrivalDateTime\": \"2019-03-30 06:55:00.000\",\r\n },\r\n {\r\n \"carrierCode\": \"MI\",\r\n \"serviceNumber\": \"804\",\r\n \"departureCityCode\": \"DRW\",\r\n \"departureCityName\": \"Darwin\",\r\n \"departurePortCode\": \"DRW\",\r\n \"departurePortName\": \"Darwin International\",\r\n \"arrivalCityCode\": \"SIN\",\r\n \"arrivalCityName\": \"Singapore\",\r\n \"arrivalPortCode\": \"SIN\",\r\n \"arrivalPortName\": \"Singapore Changi Apt\",\r\n \"arrivalDateTime\": \"2019-02-05 06:10:00.000\",\r\n },\r\n {\r\n \"carrierCode\": \"NZ\",\r\n \"serviceNumber\": \"3439\",\r\n \"departureCityCode\": \"MNL\",\r\n \"departureCityName\": \"Manila\",\r\n \"departurePortCode\": \"MNL\",\r\n \"departurePortName\": \"Manila Ninoy Aquino International\",\r\n \"arrivalCityCode\": \"SIN\",\r\n \"arrivalCityName\": \"Singapore\",\r\n \"arrivalPortCode\": \"SIN\",\r\n \"arrivalPortName\": \"Singapore Changi Apt\",\r\n \"arrivalDateTime\": \"2019-03-30 11:20:00.000\",\r\n },\r\n]","import React, {PureComponent} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles, Typography} from '@material-ui/core'\r\n\r\nclass StyledPlaceholder extends PureComponent {\r\n\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n
\r\n {this.props.message}\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {\r\n padding: '2rem', backgroundColor: theme.palette.grey[200], display: 'flex', justifyContent: 'center',\r\n alignItems: 'center', borderRadius: '.25rem'\r\n },\r\n text: {color: theme.palette.grey[400]}\r\n})\r\n\r\nStyledPlaceholder.propTypes = {\r\n message: PropTypes.string.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(StyledPlaceholder)","let chinaCities = [\r\n\t'Beijing',\r\n\t'Changsha',\r\n\t'Chengdu',\r\n\t'Chongqing',\r\n\t'Dalian',\r\n\t'Fuzhou',\r\n\t'Guangzhou',\r\n\t'Haikou',\r\n\t'Hangzhou',\r\n\t'Harbin',\r\n\t'Jinan',\r\n\t'Kunming',\r\n\t'Nanchang',\r\n\t'Nanjing',\r\n\t'Nanning',\r\n\t'Ningbo',\r\n\t'Qingdao',\r\n\t'Quanzhou',\r\n\t'Shanghai',\r\n\t'Shenyang',\r\n\t'Shenzhen',\r\n\t'Shenzhen',\r\n\t'Tianjin',\r\n\t'Wuhan',\r\n\t'Wuxi',\r\n\t\"Xi'an\",\r\n\t'Xian',\r\n\t'Xiamen',\r\n\t'Zhengzhou'\r\n]\r\n\r\nexport const checkBonusCities = cityName => {\r\n\t// let matchedCity = chinaCities.find(city => city === cityName);\r\n\t// return !!matchedCity;\r\n\treturn false\r\n}\r\n","export const NA = \"na\"\r\nexport const LAND = \"land\"\r\nexport const SEA = \"sea\"\r\nexport const SCOOT= \"scoot\"","import moment from 'moment'\r\nimport { initFormDetails } from '../../../ducks/individualFormDuck'\r\nimport { convertSqStatusForDisplay, DISPLAY_NO } from '../../../helpers/eticketStatusHelper'\r\nimport { checkBonusCities } from '../../../helpers/voucherBonusHelper'\r\nimport {NA, SCOOT} from '../../../constants/sector2Options.js'\r\n\r\nexport const validateCurrentPax = ({ currentPaxFormDetails, formDetailsList, campaignPeriods, files }) => {\r\n\t// remove own detailList to prevent false duplication error\r\n\tformDetailsList = formDetailsList.filter(p => p.pax !== currentPaxFormDetails.pax)\r\n\r\n\t// check whether form is blank for subsequent users\r\n\tif (formDetailsList.length > 0) {\r\n\t\tlet isBlankForm = checkBlankForm(currentPaxFormDetails, initFormDetails)\r\n\t\tif (isBlankForm) return { success: true, message: 'No need to validate blank form' }\r\n\t}\r\n\r\n\tconst { eTicketsDetails, personalDetails, sector1Details, sector2Details, sector3Details, sector4Details, ticketDetails, isFirstPax, isPnrVerified, flightType } = currentPaxFormDetails\r\n\r\n\t// let nonDeletedFormDetailsList = formDetailsList.filter(x => x.isDeleted === false)\r\n\t// const existingETicketsDetailsList = nonDeletedFormDetailsList.map(formDetails => formDetails.eTicketsDetails)\r\n\r\n\tif (!eTicketsDetails.pnr) {\r\n\t\treturn { success: false, message: 'Please fill Booking Ref No / PNR' }\r\n\t}\r\n\r\n\tif (!isPnrVerified) {\r\n\t\treturn { success: false, message: 'Please check eligibility of ETicket to ensure it is not used before' }\r\n\t}\r\n\r\n\t// if (!_validateCurrentPaxETixDuplicate(eTicketsDetails)) {\r\n\t// \treturn { success: false, message: 'Please ensure no E Tickets duplicate' }\r\n\t// }\r\n\r\n\t// if (!_validatePreviousPaxETixDuplicate(eTicketsDetails, existingETicketsDetailsList)) {\r\n\t// \treturn { success: false, message: 'Please ensure no E Tickets duplicate' }\r\n\t// }\r\n\r\n\tlet personalKeys = ['dob', 'firstName', 'lastName']\r\n\tfor (let i = 0; i < personalKeys.length; i++) {\r\n\t\tif (!personalDetails[personalKeys[i]] || personalDetails[personalKeys[i]] === '') {\r\n\t\t\treturn { success: false, message: 'Please fill up ' + personalKeys[i] }\r\n\t\t}\r\n\t}\r\n\r\n\tlet twoYearsAgo = moment().subtract(2, 'years')\r\n\tif (moment(personalDetails.dob).isAfter(twoYearsAgo)) {\r\n\t\treturn { success: false, message: 'Date of birth must be at least 2 years' }\r\n\t}\r\n\r\n\tlet sector1Keys = ['flightNo', 'departingDate', 'destination', 'origin'];\r\n\tfor (let i = 0; i < sector1Keys.length; i++) {\r\n\t\tif (!sector1Details[sector1Keys[i]] || sector1Details[sector1Keys[i]] === '') {\r\n\t\t\treturn { success: false, message: 'Please fill up Sector 1 ' + sector1Keys[i] }\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tif(sector2Details.landSeaScootBool === NA || sector2Details.landSeaScootBool === SCOOT){\r\n let sector2Keys = ['flightNo', 'destination', 'departingDate'];\r\n for (let i = 0; i < sector2Keys.length; i++) {\r\n if (!sector2Details[sector2Keys[i]] || sector2Details[sector2Keys[i]] === '') {\r\n return { success: false, message: 'Please fill up Sector 2 ' + sector2Keys[i] }\r\n }\r\n }\r\n\t}\r\n\r\n\t//check departingDate for sector 2 is not earlier than sector 1\r\n\tif(sector2Details.departingDate){\r\n if (moment(sector2Details.departingDate).isBefore(sector1Details.departingDate)) {\r\n return { success: false, message: 'Sector 2 departing date must not be earlier than sector 1 departing date' }\r\n }\r\n\t}\r\n\r\n\t// let firstPax = formDetailsList[0];\r\n\t// first pax\r\n\tdebugger\r\n\t// if (isFirstPax == true || !firstPax) {\r\n\t// \tlet subString = eTicketsDetails.eTicket1.substr(0, 3);\r\n\t// \tif (subString !== '086' && subString !== '081') {\r\n\t// \t\tlet numberOfSector1stPax = currentPaxFormDetails.numberOfSector;\r\n\t// \t\tif (numberOfSector1stPax == 4) {\r\n\t// \t\t\tif (!sector3Details.flightNo || !sector4Details.flightNo) {\r\n\t// \t\t\t\treturn { success: false, message: `Number of sector must be ${numberOfSector1stPax}` }\r\n\t// \t\t\t}\r\n\t// \t\t} else if (numberOfSector1stPax == 2) {\r\n\t// \t\t\tif (sector3Details.flightNo || sector4Details.flightNo) {\r\n\t// \t\t\t\treturn { success: false, message: `Number of sector must be ${numberOfSector1stPax}` }\r\n\t// \t\t\t}\r\n\t// \t\t}\r\n\t// \t}\r\n\t// } \r\n\t// // is not first pax\r\n\t// else {\r\n\t// \t// is not 1st pax\r\n\t// \t// get 1st pax\r\n\t// \tlet numberOfSector1stPax = firstPax.numberOfSector;\r\n\t// \t// compare number of sector with 1st pax\r\n\t// \tif (numberOfSector1stPax !== currentPaxFormDetails.numberOfSector) {\r\n\t// \t\treturn { success: false, message: `All passengers have to same number of sector of first passenger.` }\r\n\t// \t}\r\n\t// \t// validate number of sector base on number of sector of 1st pax\r\n\t// \tif (numberOfSector1stPax == 4) {\r\n\t// \t\tif (!sector3Details.flightNo || !sector4Details.flightNo) {\r\n\t// \t\t\treturn { success: false, message: `Number of sector must be ${numberOfSector1stPax}` }\r\n\t// \t\t}\r\n\t// \t} else if (numberOfSector1stPax == 2) {\r\n\t// \t\tif (sector3Details.flightNo || sector4Details.flightNo) {\r\n\t// \t\t\treturn { success: false, message: `Number of sector must be ${numberOfSector1stPax}` }\r\n\t// \t\t}\r\n\t// \t}\r\n\t// }\r\n\r\n\t// check if in case flightNo for sector 3 and 4 fill up\r\n\tif (sector3Details.flightNo || sector4Details.flightNo) {\r\n\t\t// check departingDate for sector 3 is not blank\r\n\t\tif(sector3Details.landSeaScootBool === NA || sector3Details.landSeaScootBool === SCOOT){\r\n\t\t\tlet sector3Keys = ['flightNo', 'destination', 'departingDate'];\r\n\t\t\tfor (let i = 0; i < sector3Keys.length; i++) {\r\n\t\t\t\tif (!sector2Details[sector3Keys[i]] || sector2Details[sector3Keys[i]] === '') {\r\n\t\t\t\t\treturn { success: false, message: 'Please fill up Sector 3 ' + sector3Keys[i] }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t// check departingDate for sector 4 is not blank\r\n\t\tlet sector4Keys = ['flightNo', 'departingDate', 'destination', 'origin'];\r\n\t\tfor (let i = 0; i < sector4Keys.length; i++) {\r\n\t\t\tif (!sector4Details[sector4Keys[i]] || sector4Details[sector4Keys[i]] === '') {\r\n\t\t\t\treturn { success: false, message: 'Please fill up Sector 4 ' + sector4Keys[i] }\r\n\t\t\t}\r\n\t\t}\r\n\t\t// check departingDate for sector 3 is not earlier than sector 2\r\n\t\tif (moment(sector3Details.departingDate).isBefore(sector2Details.departingDate)) {\r\n return { success: false, message: 'Sector 3 departing date must not be earlier than sector 2 departing date' }\r\n }\r\n\t\t// check departingDate for sector 4 is not earlier than sector 3\r\n\t\tif (moment(sector4Details.departingDate).isBefore(sector3Details.departingDate)) {\r\n return { success: false, message: 'Sector 4 departing date must not be earlier than sector 3 departing date' }\r\n }\r\n\t}\r\n\r\n\r\n\tif (flightType !== 'visiting-sin' && sector1Details.origin && sector1Details.origin === sector2Details.destination) {\r\n\r\n\t\treturn { success: false, message: 'Round trip is not allowed. Please verify Sector 1 Origin and Sector 2 Destination value cannot be the same.' }\r\n\t}\r\n\r\n\t// check eligibility of eEtickets\r\n\t// let ticketKeys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t// let eligibleInitials = ['618', '629', '086', '081', '000']\r\n\t// for (let i = 0; i < ticketKeys.length; i++) {\r\n\t// \tif (!eTicketsDetails[ticketKeys[i]]) continue\r\n\t// \tlet checkElgibleInitials = false\r\n\t// \teligibleInitials.forEach(initial => {\r\n\t// \t\tif (eTicketsDetails[ticketKeys[i]].substr(0, 3) === initial) checkElgibleInitials = true\r\n\t// \t})\r\n\r\n\t// \tif (!checkElgibleInitials) {\r\n\t// \t\treturn { success: false, message: 'Please ensure eligible E Ticket No' }\r\n\t// \t}\r\n\t// }\r\n\r\n\tif (!_validateCampaignPeriod(currentPaxFormDetails, campaignPeriods)) {\r\n\t\treturn { success: false, message: 'Dates are not within campaignPeriod' }\r\n\t}\r\n\r\n\tif (!_validateAttachmentRequired(sector2Details, ticketDetails, files)) {\r\n\t\treturn { success: false, message: 'Please complete land/sea/scoot section' }\r\n\t}\r\n\r\n\tfor (const t of currentPaxFormDetails.ticketDetails) {\r\n\t\tif (convertSqStatusForDisplay(t.ctpEligibility) === DISPLAY_NO) {\r\n\t\t\treturn { success: false, message: `E-ticket ${t.ticketNumber} is not eligible. Please fix and check eligibility again.` }\r\n\t\t}\r\n\r\n\t\tif (t.isFromSpecialBoardPointCountry) {\r\n\t\t\tif (sector1Details.origin && !checkBonusCities(sector1Details.origin)) {\r\n\t\t\t\treturn { success: false, message: `E-ticket ${t.ticketNumber} is from Special Board Point according to SQ API. Please check the city of origin.` }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//if there all is valid, return true\r\n\treturn { success: true, message: 'All check pass' }\r\n}\r\n\r\nlet _validateCampaignPeriod = (currentPax, campaignPeriods) => {\r\n\tlet dateKeys = ['departingDate']\r\n\tlet campaignPeriod = { startDate: '', endDate: '' }\r\n\tlet now = moment().startOf('day')\r\n\tconst prev = moment(now).subtract(1, 'days')\r\n\tconst next = moment(now).add(1, 'days')\r\n\tconst campaignsToCheck = { prev: '', now: '', next: '' }\r\n\r\n\t// earliest date first\r\n\tcampaignPeriods.sort((prev, next) => {\r\n\t\tif (\r\n\t\t\tmoment(prev.startDate)\r\n\t\t\t\t.startOf('day')\r\n\t\t\t\t.isBefore(moment(next.startDate).startOf('day'))\r\n\t\t) {\r\n\t\t\treturn -1\r\n\t\t}\r\n\t\tif (\r\n\t\t\tmoment(prev.startDate)\r\n\t\t\t\t.startOf('day')\r\n\t\t\t\t.isAfter(moment(next.startDate).startOf('day'))\r\n\t\t) {\r\n\t\t\treturn 1\r\n\t\t}\r\n\t\treturn 0\r\n\t})\r\n\r\n\tfor (let i = 0; i < campaignPeriods.length; i++) {\r\n\t\tif (now.isSameOrAfter(moment(campaignPeriods[i].startDate).startOf('day')) && now.isSameOrBefore(moment(campaignPeriods[i].endDate).startOf('day'))) {\r\n\t\t\tcampaignsToCheck.now = campaignPeriods[i]\r\n\r\n\t\t\tif (campaignPeriods[i - 1]) {\r\n\t\t\t\tif (prev.isSame(moment(campaignPeriods[i - 1].endDate).startOf('day'))) {\r\n\t\t\t\t\tcampaignsToCheck.prev = campaignPeriods[i - 1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (campaignPeriods[i + 1]) {\r\n\t\t\t\tif (next.isSame(moment(campaignPeriods[i + 1].startDate).startOf('day'))) {\r\n\t\t\t\t\tcampaignsToCheck.next = campaignPeriods[i + 1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\tfor (let k of ['prev', 'now', 'next']) {\r\n\t\tif (campaignsToCheck[k] !== '') {\r\n\t\t\tif (campaignPeriod.startDate === '') {\r\n\t\t\t\tcampaignPeriod.startDate = campaignsToCheck[k].startDate\r\n\t\t\t}\r\n\t\t\tcampaignPeriod.endDate = campaignsToCheck[k].endDate\r\n\t\t}\r\n\t}\r\n\r\n\tif (!campaignPeriod.startDate) return false\r\n\r\n\tconst { sector1Details, sector2Details } = currentPax\r\n\r\n\tif (campaignPeriod) {\r\n\t\tfor (let i = 0; i < dateKeys.length; i++) {\r\n\t\t\tif (\r\n\t\t\t\tmoment(sector1Details[dateKeys[i]]).isBefore(moment(campaignPeriod.startDate).startOf('day')) ||\r\n\t\t\t\tmoment(sector1Details[dateKeys[i]]).isAfter(moment(campaignPeriod.endDate).startOf('day'))\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tmoment(sector2Details[dateKeys[i]]).isBefore(moment(campaignPeriod.startDate).startOf('day')) ||\r\n\t\t\t\tmoment(sector2Details[dateKeys[i]]).isAfter(moment(campaignPeriod.endDate).startOf('day'))\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn true\r\n}\r\n\r\nlet _validateCurrentPaxETixDuplicate = eTixObj => {\r\n\tif (eTixObj.eTicket4) {\r\n\t\tif (eTixObj.eTicket4 === eTixObj.eTicket1 || eTixObj.eTicket4 === eTixObj.eTicket2 || eTixObj.eTicket4 === eTixObj.eTicket3) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\tif (eTixObj.eTicket3) {\r\n\t\tif (eTixObj.eTicket3 === eTixObj.eTicket1 || eTixObj.eTicket3 === eTixObj.eTicket2) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\tif (eTixObj.eTicket2) {\r\n\t\tif (eTixObj.eTicket2 === eTixObj.eTicket1) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\treturn true\r\n}\r\n\r\nlet _validatePreviousPaxETixDuplicate = (eTixObj, existingList) => {\r\n\tfor (let i = 0; i < existingList.length; i++) {\r\n\t\tif (eTixObj.eTicket4) {\r\n\t\t\tif (\r\n\t\t\t\teTixObj.eTicket4 === existingList[i].eTicket1 ||\r\n\t\t\t\teTixObj.eTicket4 === existingList[i].eTicket2 ||\r\n\t\t\t\teTixObj.eTicket4 === existingList[i].eTicket3 ||\r\n\t\t\t\teTixObj.eTicket4 === existingList[i].eTicket4\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (eTixObj.eTicket3) {\r\n\t\t\tif (\r\n\t\t\t\teTixObj.eTicket3 === existingList[i].eTicket1 ||\r\n\t\t\t\teTixObj.eTicket3 === existingList[i].eTicket2 ||\r\n\t\t\t\teTixObj.eTicket3 === existingList[i].eTicket3 ||\r\n\t\t\t\teTixObj.eTicket3 === existingList[i].eTicket4\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (eTixObj.eTicket2) {\r\n\t\t\tif (\r\n\t\t\t\teTixObj.eTicket2 === existingList[i].eTicket1 ||\r\n\t\t\t\teTixObj.eTicket2 === existingList[i].eTicket2 ||\r\n\t\t\t\teTixObj.eTicket2 === existingList[i].eTicket3 ||\r\n\t\t\t\teTixObj.eTicket2 === existingList[i].eTicket4\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (eTixObj.eTicket1) {\r\n\t\t\tif (\r\n\t\t\t\teTixObj.eTicket1 === existingList[i].eTicket1 ||\r\n\t\t\t\teTixObj.eTicket1 === existingList[i].eTicket2 ||\r\n\t\t\t\teTixObj.eTicket1 === existingList[i].eTicket3 ||\r\n\t\t\t\teTixObj.eTicket1 === existingList[i].eTicket4\r\n\t\t\t) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\nlet _validateAttachmentRequired = (sector2Details, ticketDetails, files) => {\r\n\tif (ticketDetails && ticketDetails.length && ticketDetails[0].isAttachmentRequired) {\r\n\t\tif (sector2Details.landSeaScootBool === 'na' || sector2Details.landSeaRemarks === '') return false\r\n\t}\r\n\r\n\tif (sector2Details.landSeaScootBool !== 'na') {\r\n\t\tif (sector2Details.landSeaRemarks === '') return false\r\n\t\tif ((sector2Details.attachmentUris && sector2Details.attachmentUris.length < 1) || !sector2Details.attachmentUris) {\r\n\t\t\tif (files.length < 1) return false\r\n\t\t}\r\n\t}\r\n\treturn true\r\n}\r\n\r\nexport const validateFormDetailsList = ({ formDetailsList }) => {\r\n\tlet result = { success: true, message: 'All check pass' }\r\n\tlet allETickets = []\r\n\tlet allETicketsSet = new Set()\r\n\r\n\tfor (let i = 0; i < formDetailsList.length; i++) {\r\n\t\tlet checkCtpEligibilityResult = _checkCtpEligibility(formDetailsList[i])\r\n\t\tif (!checkCtpEligibilityResult) {\r\n\t\t\tresult = { success: false, message: 'Cannot proceed because of passenger/s who not are eligible for CTP' }\r\n\t\t\tbreak\r\n\t\t}\r\n\r\n\t\tif (!formDetailsList[i].isDeleted && formDetailsList[i].redeemed) {\r\n\t\t\tresult = { success: false, message: 'Please delete pax who has already redeemed to proceed' }\r\n\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// check any repeated etickets\r\n\tfor (let i = 0; i < formDetailsList.length; i++) {\r\n\t\tif (!formDetailsList[i].isDeleted) {\r\n\t\t\tlet eticketsDetails = formDetailsList[i].eTicketsDetails\r\n\t\t\tlet { eTicket1, eTicket2, eTicket3, eTicket4 } = eticketsDetails\r\n\t\t\tif (eTicket1) allETickets.push(eTicket1)\r\n\t\t\tif (eTicket2) allETickets.push(eTicket2)\r\n\t\t\tif (eTicket3) allETickets.push(eTicket3)\r\n\t\t\tif (eTicket4) allETickets.push(eTicket4)\r\n\r\n\t\t\tif (eTicket1) allETicketsSet.add(eTicket1)\r\n\t\t\tif (eTicket2) allETicketsSet.add(eTicket2)\r\n\t\t\tif (eTicket3) allETicketsSet.add(eTicket3)\r\n\t\t\tif (eTicket4) allETicketsSet.add(eTicket4)\r\n\t\t}\r\n\t}\r\n\r\n\tif (allETickets.length !== allETicketsSet.size) {\r\n\t\tresult = { success: false, message: 'Please ensure there is no duplicate ETicket' }\r\n\t}\r\n\r\n\tif (formDetailsList.length > 0) {\r\n\t\t// if all passengers are deleted, then don't continue;\r\n\t\tlet nonDeletedPassengers = formDetailsList.filter(x => x.isDeleted === false)\r\n\t\tif (nonDeletedPassengers.length < 1) {\r\n\t\t\tresult = { success: false, message: 'Please ensure there is at least one passenger' }\r\n\t\t}\r\n\t}\r\n\r\n\t// check number of sector (should be same as 1st pax)\r\n\tlet nonDeletedPassengers = formDetailsList.filter(x => x.isDeleted === false)\r\n\tlet firstPax = nonDeletedPassengers[0]\r\n\tlet errorNumberOfSector = nonDeletedPassengers.filter(s => s.numberOfSector !== firstPax.numberOfSector)\r\n\tif (errorNumberOfSector && errorNumberOfSector.length > 0) {\r\n\t\tresult = { success: false, message: 'Please correct number of sector for all passengers' }\r\n\t}\r\n\r\n\treturn result\r\n}\r\n\r\nlet _checkCtpEligibility = formDetails => {\r\n\tlet check = true\r\n\tif (!formDetails.isDeleted) {\r\n\t\tfor (const t of formDetails.ticketDetails) {\r\n\t\t\tif (convertSqStatusForDisplay(t.ctpEligibility) === DISPLAY_NO) {\r\n\t\t\t\tcheck = false\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn check\r\n}\r\n\r\nexport const checkBlankForm = (currentData, initData) => {\r\n\tvar check = true\r\n\tlet dataKeys = ['eTicketsDetails', 'personalDetails', 'sector1Details', 'sector2Details']\r\n\r\n\tdataKeys.forEach(dataKey => {\r\n\t\tfor (let prop in currentData[dataKey]) {\r\n\t\t\tif (currentData[dataKey].hasOwnProperty(prop)) {\r\n\t\t\t\tif (currentData[dataKey][prop] !== initData[dataKey][prop]) {\r\n\t\t\t\t\t//if both are array continue;\r\n\t\t\t\t\tif (Array.isArray(currentData[dataKey][prop] && initData[dataKey][prop])) {\r\n\t\t\t\t\t\tif (JSON.stringify(currentData[dataKey][prop]) === JSON.stringify(initData[dataKey][prop])) {\r\n\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcheck = false\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\r\n\treturn check\r\n}\r\n","export const REQUIRED_ERROR_MSG = 'This field is required'\r\nexport const ETICKET_ELIGIBILITY_ERROR_MSG = 'E-tickets prefix must be 618, 629, 086, 081, 000'\r\nexport const NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG = 'All passengers must have card no. assigned'\r\nexport const NOT_ALL_PAX_ASSIGNED_GEN_ERROR_MSG = 'Please assign Gen Voucher to the passenger'\r\nexport const NOT_ALL_PAX_ASSIGNED_LPC_ERROR_MSG = 'Please assign LPC voucher to the passenger'\r\nexport const REASSIGN_CARD_OR_VOUCHER = 'Please reassign Card/Voucher'\r\n","import React, {PureComponent} from 'react'\r\nimport classNames from 'classnames'\r\nimport {withStyles, Fab} from '@material-ui/core'\r\nimport {CheckCircle} from '@material-ui/icons'\r\nimport {green} from '@material-ui/core/colors'\r\n\r\nclass StyledTinyFabCheckCircle extends PureComponent {\r\n render() {\r\n const {classes, customClass} = this.props\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n tinyFab: {\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n minHeight: 'auto',\r\n position: 'absolute',\r\n right: '-2rem',\r\n top: '1rem',\r\n color: green[600],\r\n backgroundColor: 'white',\r\n boxShadow: 'none'\r\n }\r\n})\r\n\r\nexport default withStyles(styles)(StyledTinyFabCheckCircle)","import React, {PureComponent} from 'react'\r\nimport classNames from 'classnames'\r\nimport {withStyles, Fab} from '@material-ui/core'\r\nimport {Error} from '@material-ui/icons'\r\n\r\nclass StyledTinyFabError extends PureComponent {\r\n render() {\r\n const {classes, yellow, customClass} = this.props\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n tinyFab: {\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n minHeight: 'auto',\r\n position: 'absolute',\r\n right: '-2rem',\r\n top: '1rem',\r\n boxShadow: 'none',\r\n backgroundColor: 'transparent'\r\n },\r\n yellow: {color: '#f7cf08'}\r\n})\r\n\r\nexport default withStyles(styles)(StyledTinyFabError)","const airportCodeList = [\r\n {code: \"SIN\", country: \"Singapore\"},\r\n {code: \"LHR\", country: \"United Kingdom\"},\r\n {code: \"NGO\", airport: \"Chubu Centrair International Airport\", country: \"Japan\"},\r\n {code: \"PVG\", airport: \"Shanghai Pudong Airport\", country: \"China\"},\r\n {code: \"FUK\", airport: \"Fukuoka Airport\", country: \"Japan\"},\r\n\r\n]\r\n\r\nexport const getCountryFromCode = (airportCode) => {\r\n let airport = airportCodeList.find(x => x.code === airportCode);\r\n if (airport){\r\n return airport.country\r\n } else {\r\n return \"Not Found\"\r\n }\r\n\r\n};\r\n\r\n","import moment from \"moment\"\r\nimport {getCountryFromCode} from './airportCodeHelper.js'\r\n\r\nconst E_TIX_NO_INDEX = 90; //91st character on boarding pass\r\nconst E_TIX_NO_LENGTH = 13;\r\nconst NAME_INDEX = 2;\r\nconst NAME_LENGTH = 20;\r\nconst ORIGIN_INDEX = 30;\r\nconst ORIGIN_LENGTH = 3;\r\nconst DESTINATION_INDEX = 33;\r\nconst DESTINATION_LENGTH = 3;\r\nconst JULIAN_DATE_INDEX = 44;\r\nconst JULIAN_DATE_LENGTH = 3;\r\n\r\nclass BoardingPassParser {\r\n constructor(boardingPassString) {\r\n this.boardingPassString = boardingPassString\r\n }\r\n\r\n getData = () => {\r\n if (!this.boardingPassString) throw new Error('boardingPassString cannot be null');\r\n if (typeof(this.boardingPassString) !== 'string') throw new Error('boardingPassString must be string')\r\n if (this.boardingPassString.length < 1) throw new Error('boardingPassString must be string')\r\n let nameObj = this._getName(this.boardingPassString);\r\n let bpData = {\r\n eTix: this._getETixNo(this.boardingPassString),\r\n originCountry: this._getOriginCountry(this.boardingPassString),\r\n destinationCountry: this._getDestinationCountry(this.boardingPassString),\r\n date: this._getDate(this.boardingPassString),\r\n lastName: nameObj.lastName,\r\n firstName: nameObj.firstName\r\n };\r\n return bpData;\r\n };\r\n\r\n _getName = (bpString)=>{\r\n let fullName = bpString.substr(NAME_INDEX, NAME_LENGTH);\r\n let nameLimiterRegex = /\\//i;\r\n let nameLimiterRegexResult = nameLimiterRegex.exec(fullName);\r\n if(!nameLimiterRegexResult) return {};\r\n let nameLimiterIndex = nameLimiterRegexResult.index;\r\n let lastName = fullName.substr(0, nameLimiterIndex);\r\n let firstName = fullName.substr(nameLimiterIndex+1);\r\n return {firstName, lastName}\r\n\r\n }\r\n\r\n _getOriginCountry(bpString) {\r\n let originCode = bpString.substr(ORIGIN_INDEX, ORIGIN_LENGTH);\r\n let originCountry = getCountryFromCode(originCode);\r\n return originCountry\r\n }\r\n\r\n _getDestinationCountry(bpString) {\r\n let destinationCode = bpString.substr(DESTINATION_INDEX, DESTINATION_LENGTH);\r\n let destinationCountry = getCountryFromCode(destinationCode);\r\n return destinationCountry\r\n }\r\n\r\n _getETixNo(bpString) {\r\n let etixNo = bpString.substr(E_TIX_NO_INDEX, E_TIX_NO_LENGTH);\r\n return etixNo\r\n }\r\n\r\n _getDate(bgString) {\r\n let julianDate = bgString.substr(JULIAN_DATE_INDEX, JULIAN_DATE_LENGTH);\r\n let gregorianDate = this._convertJulianToGregorianDate(julianDate);\r\n return gregorianDate\r\n }\r\n\r\n _convertJulianToGregorianDate(julianDate) {\r\n var startOfYear = moment().startOf('year');\r\n var today = startOfYear.add(julianDate - 1, 'days');\r\n return today.format(\"YYYY-MM-DD\")\r\n }\r\n\r\n\r\n}\r\n\r\nexport default BoardingPassParser","import React, {Component} from 'react'\r\nimport {withStyles, Fab} from '@material-ui/core'\r\nimport {AddCircle} from '@material-ui/icons'\r\n\r\nclass StyledTinyErrorCross extends Component {\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n tinyFab: {\r\n transform: 'rotateZ(45deg)',\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n minHeight: 'auto',\r\n position: 'absolute',\r\n right: '-2rem',\r\n top: '1rem',\r\n boxShadow: 'none',\r\n backgroundColor: 'transparent'\r\n }\r\n})\r\n\r\nexport default withStyles(styles)(StyledTinyErrorCross)","import React, {Component} from 'react'\r\nimport {\r\n withStyles, Button, DialogTitle, DialogContent, DialogActions, Dialog\r\n} from '@material-ui/core'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass StyledGeneralDialog extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Individual`\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n render() {\r\n const {showDialog, title, onClose, onAction, actionText, data} = this.props\r\n\r\n return (\r\n \r\n {title}\r\n {this.props.children}\r\n \r\n \r\n {actionText !== '' &&\r\n }\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nStyledGeneralDialog.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n showDialog: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n onAction: PropTypes.func,\r\n actionText: PropTypes.string.isRequired,\r\n data: PropTypes.object\r\n}\r\n\r\nexport default withStyles(styles)(StyledGeneralDialog)","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\n//\r\nconst CREATE_REDEMPTION_TRANSACTION_IS_LOADING = \"CREATE_REDEMPTION_TRANSACTION_IS_LOADING\";\r\nconst CREATE_REDEMPTION_TRANSACTION_SUCCESS = 'CREATE_REDEMPTION_TRANSACTION_SUCCESS';\r\nconst CREATE_REDEMPTION_TRANSACTION_FAIL = 'CREATE_REDEMPTION_TRANSACTION_FAIL';\r\nconst UPDATE_ENTIRE_REDEMPTION_TRANSACTION = 'UPDATE_ENTIRE_REDEMPTION_TRANSACTION';\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\n//\r\n\r\n//\r\nexport const createEmptyRedemptionTransaction = () => async (dispatch) => {\r\n dispatch(_createRedemptionTransactionIsLoading());\r\n\r\n let emptyData = {};\r\n const rs = await axios.post(baseURL + '/RedemptionTransaction/Create', emptyData, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e;\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n });\r\n if (rs.data.success) {\r\n dispatch(_createRedemptionTransactionSuccess(rs.data.result));\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_createRedemptionTransactionFail());\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n};\r\n\r\nconst _createRedemptionTransactionIsLoading = () => ({\r\n type: CREATE_REDEMPTION_TRANSACTION_IS_LOADING\r\n});\r\n\r\nconst _createRedemptionTransactionSuccess = (redemptionTransaction) => ({\r\n type: CREATE_REDEMPTION_TRANSACTION_SUCCESS,\r\n redemptionTransaction,\r\n})\r\n\r\nconst _createRedemptionTransactionFail = () => ({\r\n type: CREATE_REDEMPTION_TRANSACTION_FAIL\r\n})\r\n\r\nexport const updateRedemptionTransaction = (redemptionTransaction) => {\r\n\r\n return {\r\n type: UPDATE_ENTIRE_REDEMPTION_TRANSACTION,\r\n redemptionTransaction\r\n }\r\n}\r\n\r\n//\r\n\r\n const initState = {\r\n createRedemptionTransactionIsLoading: false,\r\n redemptionTransaction: {\r\n id: \"\",\r\n collectorFirstName: \"\",\r\n collectorLastName: \"\",\r\n collectorContactNo: \"\",\r\n redeemerId: 0,\r\n physicalVoucherIssued: false,\r\n eVoucherIssued: false,\r\n signatureURI: null,\r\n groupId: 0,\r\n allowReceivingInfo: false,\r\n referenceNo: \"\"\r\n }\r\n }\r\n\r\n const redemptionTransactionDuck = (state = initState, action) => {\r\n\r\n switch (action.type) {\r\n\r\n case CREATE_REDEMPTION_TRANSACTION_IS_LOADING:\r\n return {...state, createRedemptionTransactionIsLoading: true}\r\n\r\n case CREATE_REDEMPTION_TRANSACTION_SUCCESS:\r\n return {...state, createRedemptionTransactionIsLoading: false, redemptionTransaction: action.redemptionTransaction}\r\n\r\n case CREATE_REDEMPTION_TRANSACTION_FAIL:\r\n return {...state, createRedemptionTransactionIsLoading: false}\r\n\r\n case UPDATE_ENTIRE_REDEMPTION_TRANSACTION:\r\n return {redemptionTransaction: action.redemptionTransaction}\r\n\r\n\r\n default:\r\n return state\r\n }\r\n }\r\n\r\n export default redemptionTransactionDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst MANIFEST_UPLOAD_IS_LOADING = 'MANIFEST_UPLOAD_IS_LOADING'\r\nconst MANIFEST_UPLOAD_SUCCESS = 'MANIFEST_UPLOAD_SUCCESS'\r\nconst MANIFEST_UPLOAD_FAIL = 'MANIFEST_UPLOAD_FAIL'\r\nconst UPDATE_GROUP_DETAILS = 'UPDATE_GROUP_DETAILS'\r\nconst GET_CAMPAIGN_CODE_IS_LOADING = 'GET_CAMPAIGN_CODE_IS_LOADING'\r\nconst GET_CAMPAIGN_CODE_SUCCESS = 'GET_CAMPAIGN_CODE_SUCCESS'\r\n\r\nconst initState = {\r\n manifestUploadStatus: null,\r\n manifestUploadIsLoading: false,\r\n manifestUploadError: false,\r\n manifestUploadErrorArray: [],\r\n groupDetails: {\r\n collectionDate: null,\r\n pos: '',\r\n lastFlightDepartureDate: null,\r\n tourCompany: ''\r\n }\r\n\r\n}\r\n\r\nexport const uploadGroupManifest = (file, groupDetails) => async dispatch => {\r\n dispatch(_manifestUploadIsLoading())\r\n\r\n const formData = new FormData()\r\n formData.append('excelFile', file, file.name)\r\n let colDateParams = 'collectionDate=' + groupDetails.collectionDate\r\n let posParams = 'pos=' + groupDetails.pos\r\n let lastFltDateParams = 'lastFlightDepartureDate=' + groupDetails.lastFlightDepartureDate\r\n let tourCompanyParams = 'tourCompany=' + groupDetails.tourCompany\r\n let params = '?' + colDateParams + '&' + posParams + '&' + lastFltDateParams + '&' + tourCompanyParams\r\n if (groupDetails && groupDetails.campaignCode) {\r\n params += '&campaignCode=' + groupDetails.campaignCode\r\n }\r\n let error = ''\r\n const rs = await axios.post(baseURL + '/Group/ManifestUpload' + params, formData, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n error = message\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_manifestUploadFail({error: error}))\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_manifestUploadSuccess())\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_manifestUploadFail({error: error}))\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nexport const getCampaignCodes = () => async dispatch => {\r\n dispatch(_getCampaignCodesIsLoading())\r\n\r\n const rs = await axios.get(baseURL + `/Group/CampaignCodes`, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getCampaignCodesSuccess(rs))\r\n return {success: true, result: rs.data.result}\r\n }\r\n}\r\n\r\nconst _getCampaignCodesIsLoading = () => ({\r\n type: GET_CAMPAIGN_CODE_IS_LOADING\r\n})\r\n\r\nconst _getCampaignCodesSuccess = rs => ({\r\n type: GET_CAMPAIGN_CODE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _manifestUploadIsLoading = () => ({\r\n type: MANIFEST_UPLOAD_IS_LOADING\r\n})\r\n\r\nconst _manifestUploadSuccess = () => ({\r\n type: MANIFEST_UPLOAD_SUCCESS\r\n})\r\n\r\nconst _manifestUploadFail = ({error, errorArray = []}) => ({\r\n type: MANIFEST_UPLOAD_FAIL,\r\n error: error,\r\n errorArray: errorArray\r\n})\r\n\r\nexport const updateGroupDetails = (groupDetails) => ({\r\n type: UPDATE_GROUP_DETAILS,\r\n groupDetails\r\n})\r\n\r\nconst groupManifestDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n case MANIFEST_UPLOAD_IS_LOADING:\r\n return {\r\n ...state,\r\n manifestUploadIsLoading: true,\r\n manifestUploadStatus: null,\r\n error: '',\r\n errorArray: []\r\n }\r\n\r\n case MANIFEST_UPLOAD_SUCCESS:\r\n return {\r\n ...state,\r\n manifestUploadStatus: true,\r\n manifestUploadIsLoading: false,\r\n error: '',\r\n errorArray: []\r\n\r\n }\r\n\r\n case MANIFEST_UPLOAD_FAIL:\r\n return {\r\n ...state,\r\n manifestUploadStatus: false,\r\n manifestUploadIsLoading: false,\r\n error: action.error,\r\n errorArray: action.errorArray\r\n }\r\n\r\n case UPDATE_GROUP_DETAILS:\r\n return {\r\n ...state,\r\n groupDetails: action.groupDetails\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default groupManifestDuck ","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n withStyles,\r\n Grid,\r\n Button,\r\n TextField,\r\n Typography,\r\n MenuItem\r\n} from '@material-ui/core';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport GeneralTextDate from '../../components/generalForm/GeneralTextDate.js';\r\nimport {\r\n updateCollectorPersonalDetails,\r\n updateCurrentPaxFormDetails,\r\n checkAndUpdateEligibility,\r\n updateBoardingPassDetails,\r\n replaceDraft,\r\n updatePromptedRetrieveDraft,\r\n updatePromptedAutoFillSector,\r\n findPassengerDataWithCardNo,\r\n checkPassengersETicketsV2,\r\n findPassengerInGroup,\r\n getDraftFromOtherRedemptionTransaction,\r\n findPassengersDataWithAppealTransaction,\r\n populatePassengerFromGroup,\r\n individualGroupCheckRedeemedPassenger\r\n} from '../../ducks/individualFormDuck.js';\r\nimport StyledSection from '../../components/StyledSection';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport {\r\n REQUIRED_ERROR_MSG,\r\n ETICKET_ELIGIBILITY_ERROR_MSG\r\n} from '../../constants/messages';\r\nimport StyledTinyFabCheckCircle from '../../components/StyledTinyFabCheckCircle';\r\nimport StyledTinyFabError from '../../components/StyledTinyFabError';\r\nimport BoardingPassParser from '../../helpers/boardingPassParser';\r\nimport SqApiCriteriasDialog from '../../components/SqApiCriteriasDialog';\r\nimport StyledTinyErrorCross from '../../components/StyledTinyErrorCross';\r\nimport StyledGeneralDialog from '../../components/StyledGeneralDialog';\r\nimport { updateRedemptionTransaction } from '../../ducks/redemptionTransactionDuck';\r\nimport { getCurrentAuthHeader, objHasData } from '../../helpers/utilities';\r\nimport {\r\n convertSqStatusForDisplay,\r\n DISPLAY_YES,\r\n DISPLAY_MANUAL\r\n} from '../../helpers/eticketStatusHelper';\r\nimport { getCampaignCodes } from '../../ducks/groupManifestDuck.js';\r\n\r\nconst E_TIX_1_KEY = 'eTicket1';\r\nconst E_TIX_2_KEY = 'eTicket2';\r\nconst E_TIX_3_KEY = 'eTicket3';\r\nconst E_TIX_4_KEY = 'eTicket4';\r\n\r\n// generalDialogTitle\r\nconst PASSENGER_HAS_EXISTING_CARD = 'Existing card found';\r\nconst PASSENGER_HAS_EXISTING_GROUP = 'Existing group found';\r\nconst PASSENGER_HAS_EXISTING_DRAFT = 'Existing draft found';\r\nconst PASSENGER_HAS_EXISTING_APPEAL = 'Existing appeal found';\r\nconst PASSENGER_AUTO_FILL_SECTOR = 'Auto fill sector values';\r\n\r\nclass IndividualETicketForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n eTixErrorStore: {\r\n [E_TIX_1_KEY]: '',\r\n [E_TIX_2_KEY]: '',\r\n [E_TIX_3_KEY]: '',\r\n [E_TIX_4_KEY]: ''\r\n },\r\n eTix: {\r\n eTicket1: '',\r\n eTicket2: '',\r\n eTicket3: '',\r\n eTicket4: ''\r\n },\r\n flightFormFields: [\r\n {\r\n key: [E_TIX_1_KEY],\r\n label: 'E-Ticket No. 1*',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: [E_TIX_2_KEY],\r\n label: 'E-Ticket No. 2',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: [E_TIX_3_KEY],\r\n label: 'E-Ticket No. 3',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: [E_TIX_4_KEY],\r\n label: 'E-Ticket No. 4',\r\n type: 'text',\r\n customButton: true\r\n }\r\n ],\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n viewCriterias: false,\r\n criteriasMessage: '',\r\n criterias: {},\r\n showEticketField: 0,\r\n eTicketIsYes: false,\r\n showGeneralDialog: false,\r\n generalDialogTitle: '',\r\n generalDialogActionText: 'Yes',\r\n pretravelId: '',\r\n campaignCodes: []\r\n };\r\n\r\n this.eTicketRefs = [];\r\n this.inputTimeout = null;\r\n this.popPropsETixTimeout = null;\r\n }\r\n\r\n async componentDidMount() {\r\n const rs = await this.props.getCampaignCodes();\r\n this.setState({\r\n campaignCodes: (rs && rs.result) || []\r\n });\r\n\r\n if (rs && rs.result && rs.result.length) {\r\n this._updateFormDetails({\r\n detailsCategory:\r\n 'eTicketsDetails',\r\n key: 'campaignCode',\r\n value: rs.result[0]\r\n })\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n let eTixKeys = [E_TIX_1_KEY, E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY];\r\n const { currentPaxFormDetails } = this.props;\r\n const { eTix } = this.state;\r\n eTixKeys.forEach(eTixKeys => {\r\n if (\r\n prevProps.currentPaxFormDetails.eTicketsDetails[eTixKeys] !==\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys]\r\n ) {\r\n if (\r\n prevProps.currentPaxFormDetails.eTicketsDetails[\r\n eTixKeys + 'LastName'\r\n ] !==\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys + 'LastName']\r\n ) {\r\n if (currentPaxFormDetails.eTicketsDetails[eTixKeys])\r\n //if etix has values has value\r\n this._checkEligibility();\r\n }\r\n\r\n if (\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys] !==\r\n undefined\r\n ) {\r\n if (\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys] === ''\r\n ) {\r\n this.setState({ eTixErrorStore: { [eTixKeys]: '' } });\r\n }\r\n\r\n if (\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys].length >\r\n 2\r\n ) {\r\n this._checkApprovedTicketNo(eTixKeys);\r\n }\r\n\r\n if (\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys] !==\r\n eTix[eTixKeys]\r\n ) {\r\n this._updateStateETicketDetails(\r\n eTixKeys,\r\n currentPaxFormDetails.eTicketsDetails[eTixKeys]\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (prevState.eTix[eTixKeys] !== eTix[eTixKeys]) {\r\n clearTimeout(this.popPropsETixTimeout);\r\n this.popPropsETixTimeout = setTimeout(() => {\r\n this._updateFormDetails({\r\n detailsCategory: 'eTicketsDetails',\r\n key: eTixKeys,\r\n value: eTix[eTixKeys]\r\n });\r\n }, 300);\r\n }\r\n });\r\n // reasign Etix\r\n if (\r\n prevProps.currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY] !==\r\n currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY]\r\n ) {\r\n this.setState({\r\n eTix: {\r\n eTicket1:\r\n currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY],\r\n eTicket2:\r\n currentPaxFormDetails.eTicketsDetails[E_TIX_2_KEY],\r\n eTicket3:\r\n currentPaxFormDetails.eTicketsDetails[E_TIX_3_KEY],\r\n eTicket4: currentPaxFormDetails.eTicketsDetails[E_TIX_4_KEY]\r\n }\r\n });\r\n }\r\n };\r\n\r\n _checkApprovedTicketNo = eTixKey => {\r\n let inputtedValue = this.props.currentPaxFormDetails.eTicketsDetails[\r\n eTixKey\r\n ];\r\n if (!inputtedValue) {\r\n let eTixErrorStore = { ...this.state.eTixErrorStore };\r\n eTixErrorStore[eTixKey] = '';\r\n this.setState({ eTixErrorStore: eTixErrorStore });\r\n return;\r\n }\r\n\r\n let subString = inputtedValue.substr(0, 3);\r\n if (\r\n subString !== '618' &&\r\n subString !== '629' &&\r\n subString !== '086' &&\r\n subString !== '081' &&\r\n subString !== '000'\r\n ) {\r\n let eTixErrorStore = { ...this.state.eTixErrorStore };\r\n eTixErrorStore[eTixKey] = ETICKET_ELIGIBILITY_ERROR_MSG;\r\n this.setState({ eTixErrorStore: eTixErrorStore });\r\n } else {\r\n let eTixErrorStore = { ...this.state.eTixErrorStore };\r\n eTixErrorStore[eTixKey] = ETICKET_ELIGIBILITY_ERROR_MSG;\r\n this.setState({ eTixErrorStore: '' });\r\n }\r\n };\r\n\r\n handleETicketsDetailsChange = (key, value) => {\r\n this._processManualInput(key, value);\r\n\r\n clearTimeout(this.inputTimeout);\r\n this.inputTimeout = setTimeout(() => {\r\n if (value.length >= 90) {\r\n this._processScanTicket(key, value);\r\n }\r\n }, 1000);\r\n };\r\n\r\n _processScanTicket = (key, value) => {\r\n if (value.length < 90) return;\r\n let boardingPassParser = new BoardingPassParser(value);\r\n let bpData = boardingPassParser.getData();\r\n if (\r\n bpData.eTix ===\r\n this.props.currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY] ||\r\n bpData.eTix ===\r\n this.props.currentPaxFormDetails.eTicketsDetails[E_TIX_2_KEY] ||\r\n bpData.eTix ===\r\n this.props.currentPaxFormDetails.eTicketsDetails[E_TIX_3_KEY]\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Same E Ticket Number'\r\n });\r\n this._updateStateETicketDetails(key, '');\r\n //this._updateFormDetails({detailsCategory: 'eTicketsDetails', key, value: ''})\r\n return;\r\n }\r\n this._updateStateETicketDetails(key, bpData.eTix);\r\n this.props.updateBoardingPassDetails({\r\n eTicketKey: key,\r\n boardingPassData: bpData\r\n });\r\n };\r\n\r\n _processManualInput(key, value) {\r\n this._updateStateETicketDetails(key, value);\r\n //this._updateFormDetails({detailsCategory: 'eTicketsDetails', key, value})\r\n }\r\n\r\n _updateStateETicketDetails(key, value) {\r\n let stateETix = { ...this.state.eTix };\r\n stateETix[key] = value;\r\n this.setState({ eTix: stateETix });\r\n }\r\n\r\n updateETixLastName = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'eTicketsDetails',\r\n key,\r\n value\r\n });\r\n };\r\n\r\n _updateFormDetails = ({ detailsCategory, key, value }) => {\r\n let formDetails = cloneDeep(this.props.currentPaxFormDetails);\r\n formDetails[detailsCategory][key] = value;\r\n formDetails[detailsCategory].isETicketsVerified = false;\r\n formDetails.isPnrVerified = false;\r\n this.props.updateCurrentPaxFormDetails(formDetails);\r\n };\r\n\r\n confirmTickets = tickets => {\r\n tickets.forEach((ticket, i) => {\r\n this.handleETicketsDetailsChange(`eTicket${i + 1}`, ticket);\r\n });\r\n };\r\n\r\n _checkEligibility = async () => {\r\n const { currentPaxFormDetails, editMode } = this.props;\r\n\r\n const rs = await this.props.checkPassengersETicketsV2({\r\n campaignCode: currentPaxFormDetails.eTicketsDetails.campaignCode,\r\n passengersETickets: [\r\n {\r\n ticketDetails: [\r\n {\r\n pnr: currentPaxFormDetails.eTicketsDetails.pnr,\r\n firstName:\r\n currentPaxFormDetails.personalDetails.firstName,\r\n lastName:\r\n currentPaxFormDetails.personalDetails.lastName,\r\n dob: currentPaxFormDetails.personalDetails.dob\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n if (!rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.rawMessage || rs.message\r\n });\r\n return;\r\n }\r\n if (rs.success) {\r\n let formDetails = cloneDeep(this.props.currentPaxFormDetails);\r\n formDetails.isPnrVerified = true;\r\n this.props.updateCurrentPaxFormDetails(formDetails);\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Success'\r\n });\r\n\r\n if (!editMode) {\r\n if (this.props.promptedAutoFillSector) {\r\n // if already check auto fill sector before, then don't check again.\r\n this._autoFillSector();\r\n } else {\r\n const { formDetailsList } = this.props;\r\n if (\r\n formDetailsList &&\r\n formDetailsList.length > 0 &&\r\n !currentPaxFormDetails.isFirstPax\r\n ) {\r\n return this.setState({\r\n generalDialogTitle: PASSENGER_AUTO_FILL_SECTOR,\r\n showGeneralDialog: true,\r\n generalDialogActionText: 'Yes'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if (!currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY]) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `Please check ETicket is valid`\r\n // });\r\n // return;\r\n // }\r\n\r\n // if (\r\n // !this._validatePreviousPaxETixDuplicate(\r\n // this.props.individualFormDuck.currentPaxFormDetails,\r\n // this.props.individualFormDuck.formDetailsList\r\n // )\r\n // ) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `Please ensure no E Tickets duplicate`\r\n // });\r\n // return;\r\n // }\r\n\r\n // if (this._validateEligibility(currentPaxFormDetails)) {\r\n // const ticketDetails = [];\r\n // let eTixKeys = [E_TIX_1_KEY, E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY];\r\n // let checkDuplicate = [];\r\n // let hasDuplicates = false;\r\n // for (let eTixKey of eTixKeys) {\r\n // if (currentPaxFormDetails.eTicketsDetails[eTixKey]) {\r\n // // validate for 13 numberic numbers\r\n // if (\r\n // !/^[0-9][0-9]{12}$/.test(\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey]\r\n // )\r\n // ) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `ETicket has be to 13 numberic numbers (${\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey]\r\n // })`\r\n // });\r\n // return;\r\n // }\r\n // if (\r\n // !checkDuplicate.includes(\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey]\r\n // )\r\n // ) {\r\n // ticketDetails.push({\r\n // ticketNumber:\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey],\r\n // lastName:\r\n // currentPaxFormDetails.eTicketsDetails[\r\n // eTixKey + 'LastName'\r\n // ]\r\n // });\r\n // } else {\r\n // hasDuplicates = true;\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage:\r\n // 'Please fix duplicate eTicket: ' +\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey]\r\n // });\r\n // break;\r\n // }\r\n // }\r\n // checkDuplicate.push(\r\n // currentPaxFormDetails.eTicketsDetails[eTixKey]\r\n // );\r\n // }\r\n // if (hasDuplicates) return;\r\n\r\n // let eTickets = [];\r\n // if (currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY])\r\n // eTickets.push(\r\n // currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY]\r\n // );\r\n // if (currentPaxFormDetails.eTicketsDetails[E_TIX_2_KEY])\r\n // eTickets.push(\r\n // currentPaxFormDetails.eTicketsDetails[E_TIX_2_KEY]\r\n // );\r\n // if (currentPaxFormDetails.eTicketsDetails[E_TIX_3_KEY])\r\n // eTickets.push(\r\n // currentPaxFormDetails.eTicketsDetails[E_TIX_3_KEY]\r\n // );\r\n // if (currentPaxFormDetails.eTicketsDetails[E_TIX_4_KEY])\r\n // eTickets.push(\r\n // currentPaxFormDetails.eTicketsDetails[E_TIX_4_KEY]\r\n // );\r\n\r\n // const checkCardData = { eTickets: eTickets };\r\n // const checkGroupData = {\r\n // params: {\r\n // eTicketNo:\r\n // currentPaxFormDetails.eTicketsDetails[E_TIX_1_KEY]\r\n // },\r\n // ...getCurrentAuthHeader()\r\n // };\r\n\r\n // const rs = await this.props.findPassengerDataWithCardNo(\r\n // checkCardData\r\n // );\r\n // if (!rs.success)\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // if (rs.success) {\r\n // const {\r\n // individualFormDuck: {\r\n // passengerDataWithCardNo: {\r\n // group,\r\n // redemptionTransaction\r\n // }\r\n // }\r\n // } = this.props;\r\n\r\n // if (\r\n // (Object.keys(group).length > 0 ||\r\n // Object.keys(redemptionTransaction).length > 0) &&\r\n // !editMode\r\n // ) {\r\n // return this.setState({\r\n // generalDialogTitle: PASSENGER_HAS_EXISTING_CARD,\r\n // showGeneralDialog: true,\r\n // generalDialogActionText: ''\r\n // });\r\n // }\r\n\r\n // /// check group\r\n // const rs = await this.props.findPassengerInGroup(\r\n // checkGroupData\r\n // );\r\n // if (!rs.success) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // return;\r\n // }\r\n // if (rs.success) {\r\n // const {\r\n // individualFormDuck: { passengerFromGroup }\r\n // } = this.props;\r\n // if (\r\n // Object.keys(passengerFromGroup).length > 0 &&\r\n // !editMode\r\n // ) {\r\n // return this.setState({\r\n // generalDialogTitle: PASSENGER_HAS_EXISTING_GROUP,\r\n // showGeneralDialog: true,\r\n // generalDialogActionText: 'Yes'\r\n // });\r\n // }\r\n // }\r\n\r\n // /// check appeal\r\n // const checkAppealRequest = { eTickets: eTickets };\r\n\r\n // const checkAppealResponse = await this.props.findPassengersDataWithAppealTransaction(\r\n // checkAppealRequest\r\n // );\r\n // if (!checkAppealResponse.success) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // return;\r\n // }\r\n // if (checkAppealResponse.success) {\r\n // if (checkAppealResponse.result.items.length > 0) {\r\n // this.setState({\r\n // generalDialogTitle: PASSENGER_HAS_EXISTING_APPEAL,\r\n // showGeneralDialog: true,\r\n // generalDialogActionText: '',\r\n // pretravelId:\r\n // checkAppealResponse.result.items[0]\r\n // .appealTransactionId\r\n // });\r\n // return;\r\n // }\r\n // }\r\n\r\n // /// check draft\r\n // console.log('checking draft');\r\n // if (this.props.promptedRetrieveDraft) {\r\n // // if already check draft before, then don't check again.\r\n // this._checkSqApi();\r\n // } else {\r\n // const data = {\r\n // params: {\r\n // eTicketNo:\r\n // currentPaxFormDetails.eTicketsDetails[\r\n // E_TIX_1_KEY\r\n // ],\r\n // redemptionTransactionId: redemptionTransaction.id\r\n // },\r\n // ...getCurrentAuthHeader()\r\n // };\r\n // const rs = await this.props.getDraftFromOtherRedemptionTransaction(\r\n // data\r\n // );\r\n // if (!rs.success)\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n\r\n // if (rs.success) {\r\n // // set promptedRetrieveDraft to true to only prompt for draft one time\r\n // await this.props.updatePromptedRetrieveDraft(true);\r\n\r\n // const {\r\n // individualFormDuck: { draft }\r\n // } = this.props;\r\n // if (Object.keys(draft).length > 0 && !editMode) {\r\n // return this.setState({\r\n // generalDialogTitle: PASSENGER_HAS_EXISTING_DRAFT,\r\n // showGeneralDialog: true,\r\n // generalDialogActionText: 'Yes'\r\n // });\r\n // } else {\r\n // /// check sq api\r\n // this._checkSqApi();\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }\r\n };\r\n\r\n handlePersonalDetailsChange = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'personalDetails',\r\n key,\r\n value\r\n });\r\n\r\n // check for scan\r\n if (key === 'firstName') {\r\n clearTimeout(this.ppInputTimeout);\r\n this.ppInputTimeout = setTimeout(() => {\r\n let regex = /\\//gi;\r\n if (value.match(regex) && value.match(regex).length >= 4) {\r\n this._processScanPassport(value);\r\n }\r\n }, 1000);\r\n }\r\n };\r\n\r\n // _validateEligibility(currentPaxFormDetails) {\r\n // let rs = true;\r\n // if (\r\n // currentPaxFormDetails.eTicketsDetails.eTicket1 === '' ||\r\n // currentPaxFormDetails.eTicketsDetails.eTicket1 === undefined\r\n // ) {\r\n // const newEticket1 = { ...this.state.flightFormFields[0] };\r\n // newEticket1.error = true;\r\n // newEticket1.helperText = REQUIRED_ERROR_MSG;\r\n\r\n // const newFlightFormFields = [...this.state.flightFormFields];\r\n // newFlightFormFields.splice(0, 1, newEticket1);\r\n // this.setState({ flightFormFields: newFlightFormFields });\r\n\r\n // rs = false;\r\n // } else {\r\n // const newEticket1 = { ...this.state.flightFormFields[0] };\r\n // if (\r\n // !this._checkApprovedTicketNo(\r\n // currentPaxFormDetails.eTicketsDetails.eTicket1\r\n // )\r\n // ) {\r\n // const newEticket1 = { ...this.state.flightFormFields[0] };\r\n // newEticket1.error = true;\r\n // newEticket1.helperText = ETICKET_ELIGIBILITY_ERROR_MSG;\r\n\r\n // const newFlightFormFields = [...this.state.flightFormFields];\r\n // newFlightFormFields.splice(0, 1, newEticket1);\r\n // this.setState({ flightFormFields: newFlightFormFields });\r\n // } else {\r\n // newEticket1.error = false;\r\n // newEticket1.helperText = null;\r\n\r\n // const newFlightFormFields = [...this.state.flightFormFields];\r\n // newFlightFormFields.splice(0, 1, newEticket1);\r\n // this.setState({ flightFormFields: newFlightFormFields });\r\n // }\r\n // }\r\n\r\n // return rs;\r\n // }\r\n\r\n _validatePreviousPaxETixDuplicate(currentPax, existingList) {\r\n let eTixObj = currentPax.eTicketsDetails;\r\n\r\n for (let i = 0; i < existingList.length; i++) {\r\n if (currentPax.pax === existingList[i].pax) {\r\n continue;\r\n }\r\n if (eTixObj.eTicket4) {\r\n if (\r\n eTixObj.eTicket4 ===\r\n existingList[i].eTicketsDetails.eTicket1 ||\r\n eTixObj.eTicket4 ===\r\n existingList[i].eTicketsDetails.eTicket2 ||\r\n eTixObj.eTicket4 ===\r\n existingList[i].eTicketsDetails.eTicket3 ||\r\n eTixObj.eTicket4 ===\r\n existingList[i].eTicketsDetails.eTicket4\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n if (eTixObj.eTicket3) {\r\n if (\r\n eTixObj.eTicket3 ===\r\n existingList[i].eTicketsDetails.eTicket1 ||\r\n eTixObj.eTicket3 ===\r\n existingList[i].eTicketsDetails.eTicket2 ||\r\n eTixObj.eTicket3 ===\r\n existingList[i].eTicketsDetails.eTicket3 ||\r\n eTixObj.eTicket3 === existingList[i].eTicketsDetails.Ticket4\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n if (eTixObj.eTicket2) {\r\n if (\r\n eTixObj.eTicket2 ===\r\n existingList[i].eTicketsDetails.eTicket1 ||\r\n eTixObj.eTicket2 ===\r\n existingList[i].eTicketsDetails.eTicket2 ||\r\n eTixObj.eTicket2 ===\r\n existingList[i].eTicketsDetails.eTicket3 ||\r\n eTixObj.eTicket2 ===\r\n existingList[i].eTicketsDetails.eTicket4\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n if (eTixObj.eTicket1) {\r\n if (\r\n eTixObj.eTicket1 ===\r\n existingList[i].eTicketsDetails.eTicket1 ||\r\n eTixObj.eTicket1 ===\r\n existingList[i].eTicketsDetails.eTicket2 ||\r\n eTixObj.eTicket1 ===\r\n existingList[i].eTicketsDetails.eTicket3 ||\r\n eTixObj.eTicket1 ===\r\n existingList[i].eTicketsDetails.eTicket4\r\n ) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n _renderNotiIcon = ticketNumber => {\r\n const { currentPaxFormDetails } = this.props;\r\n\r\n let ticketDetails = currentPaxFormDetails.ticketDetails;\r\n\r\n if (!ticketDetails || ticketNumber === '') return null;\r\n\r\n const d = ticketDetails.find(d => d.ticketNumber === ticketNumber);\r\n if (d === undefined) return null;\r\n\r\n if (convertSqStatusForDisplay(d.ctpEligibility) === DISPLAY_YES) {\r\n if (this.state.eTicketIsYes !== true)\r\n this.setState({ eTicketIsYes: true });\r\n return (\r\n this.onShowEligibilityPopup(d)}\r\n />\r\n );\r\n } else if (\r\n convertSqStatusForDisplay(d.ctpEligibility) === DISPLAY_MANUAL\r\n ) {\r\n return (\r\n this.onShowEligibilityPopup(d)}\r\n />\r\n );\r\n } else {\r\n return (\r\n this.onShowEligibilityPopup(d)}\r\n />\r\n );\r\n }\r\n };\r\n\r\n onShowEligibilityPopup = rs => {\r\n if (rs.criterias) {\r\n this.setState({\r\n viewCriterias: true,\r\n criterias: rs.criterias,\r\n criteriasMessage: ''\r\n });\r\n } else {\r\n rs.remarks\r\n ? this.setState({\r\n viewCriterias: true,\r\n criterias: {},\r\n criteriasMessage: rs.remarks\r\n })\r\n : this.setState({\r\n viewCriterias: true,\r\n criterias: {},\r\n criteriasMessage: 'ETicket not found in database'\r\n });\r\n }\r\n };\r\n\r\n onViewCriteriasClose = () => {\r\n this.setState({ viewCriterias: false });\r\n };\r\n\r\n focusETicket = n => {\r\n this.eTicketRefs[n].focus();\r\n };\r\n\r\n resetAddETicketButton = () => {\r\n this.eTicketRefs = [];\r\n this.setState({\r\n eTicketIsYes: false,\r\n showEticketField: 0,\r\n eTix: {\r\n eTicket1: '',\r\n eTicket2: '',\r\n eTicket3: '',\r\n eTicket4: ''\r\n }\r\n });\r\n };\r\n\r\n getETicketValue = k => {\r\n //const {currentPaxFormDetails} = this.props\r\n //return currentPaxFormDetails.eTicketsDetails[k]\r\n return this.state.eTix[k];\r\n };\r\n\r\n getETicketLastname = k => {\r\n const { currentPaxFormDetails } = this.props;\r\n return currentPaxFormDetails.eTicketsDetails[k];\r\n };\r\n\r\n _onAddETicket = () => {\r\n const { showEticketField } = this.state;\r\n\r\n if (showEticketField < 3)\r\n this.setState({ showEticketField: showEticketField + 1 });\r\n };\r\n\r\n onDialogCancel = async () => {\r\n this.setState({ showGeneralDialog: false });\r\n };\r\n\r\n _checkSqApi = async () => {\r\n debugger;\r\n this.setState({ showGeneralDialog: false });\r\n const { currentPaxFormDetails, editMode } = this.props;\r\n const ticketDetails = [];\r\n let eTixKeys = [E_TIX_1_KEY, E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY];\r\n for (let eTixKey of eTixKeys) {\r\n if (currentPaxFormDetails.eTicketsDetails[eTixKey]) {\r\n ticketDetails.push({\r\n ticketNumber:\r\n currentPaxFormDetails.eTicketsDetails[eTixKey],\r\n lastName:\r\n currentPaxFormDetails.eTicketsDetails[\r\n eTixKey + 'LastName'\r\n ]\r\n });\r\n }\r\n }\r\n\r\n const rs = await this.props.checkAndUpdateEligibility({\r\n ticketDetails: ticketDetails,\r\n redemptionTransactionId: this.props.redemptionTransaction.id\r\n });\r\n if (!rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n } else {\r\n if (!editMode) {\r\n if (this.props.promptedAutoFillSector) {\r\n // if already check auto fill sector before, then don't check again.\r\n this._autoFillSector();\r\n } else {\r\n const { formDetailsList } = this.props;\r\n if (\r\n formDetailsList &&\r\n formDetailsList.length > 0 &&\r\n !currentPaxFormDetails.isFirstPax\r\n ) {\r\n return this.setState({\r\n generalDialogTitle: PASSENGER_AUTO_FILL_SECTOR,\r\n showGeneralDialog: true,\r\n generalDialogActionText: 'Yes'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n _autoFillSector = async () => {\r\n this.setState({ showGeneralDialog: false });\r\n const { formDetailsList, currentPaxFormDetails } = this.props;\r\n // get first passenger\r\n let firstPassenger = formDetailsList[0];\r\n currentPaxFormDetails.flightType = firstPassenger.flightType;\r\n currentPaxFormDetails.sector1Details = firstPassenger.sector1Details;\r\n currentPaxFormDetails.sector2Details = firstPassenger.sector2Details;\r\n currentPaxFormDetails.sector3Details = firstPassenger.sector3Details;\r\n currentPaxFormDetails.sector4Details = firstPassenger.sector4Details;\r\n };\r\n\r\n onLinkClick = async id => {\r\n const url = '/appeal-transaction-detail/';\r\n window.open(url + id);\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n currentPaxFormDetails,\r\n editMode,\r\n editModeClass,\r\n checkAndUpdateEligibilityIsLoading,\r\n individualFormDuck: {\r\n findPassengerDataWithCardNoIsLoading,\r\n findPassengerInGroupIsLoading,\r\n findPassengerWithAppealIsLoading,\r\n getDraftFromOtherRedemptionTransactionIsLoading,\r\n passengerDataWithCardNo,\r\n getAllCampaignsIsLoading,\r\n createRedemptionTransactionIsLoading,\r\n individualFilesUploadIsLoading,\r\n uploadFileIsLoading\r\n }\r\n } = this.props;\r\n const eTicketsKeys = [\r\n E_TIX_1_KEY,\r\n E_TIX_2_KEY,\r\n E_TIX_3_KEY,\r\n E_TIX_4_KEY\r\n ];\r\n const {\r\n eTicketIsYes,\r\n showGeneralDialog,\r\n showEticketField,\r\n generalDialogTitle,\r\n generalDialogActionText\r\n } = this.state;\r\n\r\n const isLoading =\r\n checkAndUpdateEligibilityIsLoading ||\r\n findPassengerDataWithCardNoIsLoading ||\r\n findPassengerInGroupIsLoading ||\r\n getDraftFromOtherRedemptionTransactionIsLoading ||\r\n findPassengerWithAppealIsLoading ||\r\n getAllCampaignsIsLoading ||\r\n createRedemptionTransactionIsLoading ||\r\n individualFilesUploadIsLoading ||\r\n uploadFileIsLoading;\r\n\r\n let shouldDisable =\r\n currentPaxFormDetails.eTicketsDetails.eTicket1 === '' ||\r\n currentPaxFormDetails.eTicketsDetails.eTicket1LastName === '';\r\n\r\n let onConfirm = function() {};\r\n let onClose = function() {};\r\n switch (generalDialogTitle) {\r\n case PASSENGER_HAS_EXISTING_CARD:\r\n onConfirm = () => {\r\n this.setState({ showGeneralDialog: false }, () => {\r\n // show existing card\r\n });\r\n };\r\n onClose = () => {\r\n this.onDialogCancel();\r\n };\r\n break;\r\n case PASSENGER_HAS_EXISTING_GROUP:\r\n onConfirm = () => {\r\n this.setState({ showGeneralDialog: false }, async () => {\r\n await this.props.populatePassengerFromGroup();\r\n await this.props.updatePromptedRetrieveDraft(true);\r\n this._checkSqApi();\r\n });\r\n };\r\n onClose = () => {\r\n this._checkSqApi();\r\n };\r\n break;\r\n case PASSENGER_HAS_EXISTING_APPEAL:\r\n onConfirm = () => {};\r\n onClose = () => {\r\n this.setState({ showGeneralDialog: false });\r\n };\r\n break;\r\n case PASSENGER_HAS_EXISTING_DRAFT:\r\n onConfirm = () => {\r\n this.setState({ showGeneralDialog: false }, async () => {\r\n // populate data\r\n await this.props.replaceDraft();\r\n\r\n const { formDetailsList } = this.props;\r\n if (formDetailsList.length > 0) {\r\n const eTicketFilter = [];\r\n formDetailsList.forEach(p => {\r\n if (p.eTicketsDetails['eTicket1'] !== '') {\r\n eTicketFilter.push(\r\n p.eTicketsDetails['eTicket1']\r\n );\r\n }\r\n // If need to check all eTickets, use below instead\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n // for (let k of keys) {\r\n // if (p.eTicketsDetails['eTicket1'] !== '') {\r\n // eTicketFilter.push(p.eTicketsDetails[k])\r\n // }\r\n // }\r\n });\r\n const data = { eTicketFilter };\r\n this.props.individualGroupCheckRedeemedPassenger(\r\n data\r\n );\r\n }\r\n this.props.updateRedemptionTransaction(\r\n this.props.draftRedemptionTransaction\r\n );\r\n });\r\n };\r\n onClose = () => {\r\n this._checkSqApi();\r\n };\r\n break;\r\n case PASSENGER_AUTO_FILL_SECTOR:\r\n onConfirm = () => {\r\n // update default condition value of auto fill sector\r\n this.props.updatePromptedAutoFillSector(true);\r\n // fill data to sector (base on first passenger)\r\n this._autoFillSector();\r\n };\r\n onClose = () => {\r\n this.setState({ showGeneralDialog: false });\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {generalDialogTitle === PASSENGER_HAS_EXISTING_CARD && (\r\n \r\n {objHasData(passengerDataWithCardNo.group) && (\r\n \r\n Passenger has already redeemed. View the\r\n group{' '}\r\n \r\n here\r\n \r\n \r\n )}\r\n\r\n {!objHasData(passengerDataWithCardNo.group) &&\r\n objHasData(\r\n passengerDataWithCardNo.redemptionTransaction\r\n ) && (\r\n \r\n Passenger has already redeemed. View the\r\n redemption history{' '}\r\n \r\n here\r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {generalDialogTitle === PASSENGER_HAS_EXISTING_GROUP && (\r\n \r\n \r\n Do you want to populate data from group?\r\n \r\n \r\n )}\r\n\r\n {generalDialogTitle === PASSENGER_HAS_EXISTING_APPEAL && (\r\n \r\n \r\n \r\n There is an existing pretravel appeal for\r\n this passenger. \r\n \r\n this.onLinkClick(\r\n this.state.pretravelId\r\n )\r\n }\r\n >\r\n Click here.\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {generalDialogTitle === PASSENGER_HAS_EXISTING_DRAFT && (\r\n \r\n \r\n Do you want to populate data from draft?\r\n \r\n \r\n )}\r\n\r\n {generalDialogTitle === PASSENGER_AUTO_FILL_SECTOR && (\r\n \r\n \r\n Do you want to auto fill sector values same as\r\n first passenger?\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {/* {eTicketsKeys.map((k, i) => (\r\n
\r\n {(currentPaxFormDetails.eTicketsDetails[\r\n k\r\n ] !== '' ||\r\n i === 0 ||\r\n showEticketField >= i) && (\r\n
\r\n
\r\n
\r\n E-Ticket No. {i + 1}{' '}\r\n {i === 0 && *}\r\n
\r\n \r\n \r\n \r\n this.handleETicketsDetailsChange(\r\n k,\r\n e.target\r\n .value\r\n )\r\n }\r\n helperText={\r\n this.state\r\n .eTixErrorStore[\r\n k\r\n ]\r\n }\r\n inputRef={e =>\r\n this.eTicketRefs.push(\r\n e\r\n )\r\n }\r\n />\r\n {this._renderNotiIcon(\r\n currentPaxFormDetails\r\n .eTicketsDetails[\r\n k\r\n ]\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n E-Ticket {i + 1} Last Name{' '}\r\n {i === 0 && *}\r\n
\r\n \r\n \r\n this.updateETixLastName(\r\n k + 'LastName',\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n \r\n )}\r\n \r\n ))} */}\r\n \r\n \r\n
\r\n
\r\n
\r\n Campaign Code\r\n
\r\n
\r\n \r\n this._updateFormDetails({\r\n detailsCategory:\r\n 'eTicketsDetails',\r\n key: 'campaignCode',\r\n value: event.target.value\r\n })\r\n }\r\n >\r\n {this.state.campaignCodes.map(\r\n option => (\r\n \r\n {option}\r\n \r\n )\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Booking Ref No / PNR\r\n
\r\n
\r\n \r\n this._updateFormDetails({\r\n detailsCategory:\r\n 'eTicketsDetails',\r\n key: 'pnr',\r\n value: e.target.value\r\n })\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n First/Given Name*\r\n
\r\n
\r\n \r\n this.handlePersonalDetailsChange(\r\n 'firstName',\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n Last/Surname*\r\n
\r\n
\r\n \r\n this.handlePersonalDetailsChange(\r\n 'lastName',\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Date of birth*\r\n
\r\n
\r\n \r\n this.handlePersonalDetailsChange(\r\n 'dob',\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
Remarks
\r\n
\r\n \r\n this.handlePersonalDetailsChange(\r\n 'remarks',\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Check Eligibility\r\n \r\n \r\n {/* \r\n {this.state.showEticketField < 3 && (\r\n \r\n Add E-Ticket\r\n \r\n )}\r\n */}\r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n row: { display: 'flex', marginTop: 20 },\r\n rowItem: {\r\n display: 'flex',\r\n flex: 1,\r\n marginRight: 60,\r\n alignItems: 'center'\r\n },\r\n label: { flex: '2' },\r\n control: { flex: '3' },\r\n textfield: { width: '100%' },\r\n textfieldError: { height: 60, width: '100%' },\r\n tfWrap: { position: 'relative' },\r\n clickable: {\r\n cursor: 'pointer',\r\n borderBottom: '1px dotted #ccc',\r\n color: 'blue'\r\n }\r\n});\r\n\r\nconst mapStateToProps = function(state) {\r\n const {\r\n individualFormDuck,\r\n redemptionTransactionDuck,\r\n campaignPeriodDuck,\r\n systemDataDuck\r\n } = state;\r\n const {\r\n checkAndUpdateEligibilityIsLoading,\r\n editingPaxDetails,\r\n draft,\r\n draftRedemptionTransaction\r\n } = individualFormDuck;\r\n const {\r\n redemptionTransaction,\r\n createRedemptionTransactionIsLoading\r\n } = redemptionTransactionDuck;\r\n return {\r\n currentPaxFormDetails: individualFormDuck.currentPaxFormDetails,\r\n promptedRetrieveDraft: individualFormDuck.promptedRetrieveDraft,\r\n promptedAutoFillSector: individualFormDuck.promptedAutoFillSector,\r\n editingPaxDetails,\r\n currentPaxPosition: individualFormDuck.currentPaxPosition,\r\n formDetailsList: individualFormDuck.formDetailsList,\r\n checkAndUpdateEligibilityIsLoading,\r\n redemptionTransaction,\r\n createRedemptionTransactionIsLoading,\r\n draft,\r\n draftRedemptionTransaction,\r\n individualFormDuck,\r\n getAllCampaignsIsLoading: campaignPeriodDuck.getAllCampaignsIsLoading,\r\n systemDataDuck\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n return {\r\n updateCurrentPaxFormDetails: details =>\r\n dispatch(updateCurrentPaxFormDetails(details)),\r\n updateCollectorPersonalDetails: flightData =>\r\n dispatch(updateCollectorPersonalDetails(flightData)),\r\n checkAndUpdateEligibility: ({\r\n ticketDetails,\r\n redemptionTransactionId\r\n }) =>\r\n dispatch(\r\n checkAndUpdateEligibility({\r\n ticketDetails,\r\n redemptionTransactionId\r\n })\r\n ),\r\n updateBoardingPassDetails: bpData =>\r\n dispatch(updateBoardingPassDetails(bpData)),\r\n replaceDraft: () => dispatch(replaceDraft()),\r\n updatePromptedRetrieveDraft: bool =>\r\n dispatch(updatePromptedRetrieveDraft(bool)),\r\n updatePromptedAutoFillSector: bool =>\r\n dispatch(updatePromptedAutoFillSector(bool)),\r\n updateRedemptionTransaction: redemptionTransaction =>\r\n dispatch(updateRedemptionTransaction(redemptionTransaction)),\r\n findPassengerDataWithCardNo: data =>\r\n dispatch(findPassengerDataWithCardNo(data)),\r\n checkPassengersETicketsV2: data =>\r\n dispatch(checkPassengersETicketsV2(data)),\r\n findPassengerInGroup: data => dispatch(findPassengerInGroup(data)),\r\n getDraftFromOtherRedemptionTransaction: data =>\r\n dispatch(getDraftFromOtherRedemptionTransaction(data)),\r\n findPassengersDataWithAppealTransaction: data =>\r\n dispatch(findPassengersDataWithAppealTransaction(data)),\r\n populatePassengerFromGroup: () =>\r\n dispatch(populatePassengerFromGroup()),\r\n individualGroupCheckRedeemedPassenger: data =>\r\n dispatch(individualGroupCheckRedeemedPassenger(data)),\r\n getCampaignCodes: () => dispatch(getCampaignCodes())\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(IndividualETicketForm));\r\n","import React from 'react'\r\nimport Dropzone from 'react-dropzone'\r\nimport {PRIMARY_COLOR} from \"../../styles/mui/theme\";\r\n\r\nclass GeneralDropzone extends React.Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n files: []\r\n };\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n {({getRootProps, getInputProps}) => (\r\n
\r\n \r\n

Click to Upload or Drop files here

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst styles = {\r\n container:{\r\n dropzone: {\r\n inner: {\r\n styles: {\r\n width: 300,\r\n height: 300,\r\n borderColor: PRIMARY_COLOR,\r\n borderStyle: 'dotted',\r\n borderWidth: 2,\r\n borderRadius: 10,\r\n textAlign: 'center'\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default GeneralDropzone","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass Spacing extends React.Component {\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n styles: {\r\n width: '100%',\r\n display: 'flex'\r\n },\r\n textWrapper:{\r\n styles: {\r\n }\r\n },\r\n btnWrapper:{\r\n styles: {\r\n marginLeft: 20,\r\n }\r\n }\r\n\r\n },\r\n};\r\n\r\nSpacing.propTypes = {\r\n height: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default Spacing;","import React, {Component} from 'react'\r\nimport {withStyles, Grid} from '@material-ui/core'\r\nimport {RemoveCircle} from '@material-ui/icons'\r\nimport PropTypes from 'prop-types'\r\n\r\nclass UploadFilesList extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n
    {this.props.files.map((f, i) =>\r\n
  1. \r\n \r\n \r\n {f.name}\r\n \r\n \r\n this.props.onRemoveCircleClick(f, i)}/>\r\n \r\n \r\n
  2. )\r\n }
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nUploadFilesList.propTypes = {\r\n files: PropTypes.array.isRequired,\r\n onRemoveCircleClick: PropTypes.func.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(UploadFilesList)","import React from \"react\";\r\nimport {Modal, Button, withStyles} from \"@material-ui/core\";\r\nimport {Cancel} from \"@material-ui/icons\";\r\nimport PropTypes from 'prop-types'\r\n\r\n\r\nclass PromiseModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n\r\n render() {\r\n const { classes, modalOpen } = this.props;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {this.props.children}\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\n\r\nPromiseModal.propTypes = {\r\n modalOpen: PropTypes.bool.isRequired,\r\n}\r\n\r\nconst styles = theme => ({\r\n modal: {\r\n position: 'absolute',\r\n width: '60%',\r\n height: '200px',\r\n backgroundColor: 'white',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto'\r\n\r\n },\r\n container: {\r\n height: '100%',\r\n overflowY: 'auto',\r\n boxSizing: 'border-box',\r\n },\r\n content: {\r\n marginTop: \"20px\",\r\n align: \"center\",\r\n display: 'flex',\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n }\r\n});\r\n\r\n\r\nexport default withStyles(styles)(PromiseModal)","import React from \"react\";\r\nimport {Button} from \"@material-ui/core\";\r\nimport PropTypes from 'prop-types'\r\nimport PromiseModal from \"./PromiseModal\"\r\n\r\nclass PromiseModalWrapper extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modalOpen: false\r\n };\r\n this.promiseInfo = {};\r\n }\r\n\r\n show = async () => {\r\n return new Promise((resolve, reject) => {\r\n this.promiseInfo = {\r\n resolve,\r\n reject\r\n };\r\n this.setState({\r\n modalOpen: true\r\n });\r\n });\r\n };\r\n\r\n hide = () => {\r\n this.setState({\r\n modalOpen: false\r\n });\r\n };\r\n\r\n render() {\r\n const { modalOpen } = this.state;\r\n\r\n return (\r\n \r\n
\r\n

{this.props.content}

\r\n {\r\n this.hide();\r\n this.promiseInfo.resolve(true);\r\n }}\r\n >\r\n {this.props.proceedMessage || \"proceed\"}\r\n \r\n {\r\n this.hide();\r\n this.promiseInfo.resolve(false);\r\n }}\r\n >\r\n {this.props.cancelMessage || \"cancel\"}\r\n \r\n
\r\n \r\n\r\n );\r\n }\r\n\r\n getResolve() {\r\n const { resolve = () => {} } = this.promiseInfo || {};\r\n return result => {\r\n resolve(result);\r\n this.hide();\r\n };\r\n }\r\n\r\n getReject() {\r\n const { reject = () => {} } = this.promiseInfo || {};\r\n return err => {\r\n reject(err);\r\n this.hide();\r\n };\r\n }\r\n}\r\n\r\n\r\nPromiseModalWrapper.propTypes = {\r\n proceedMessage: PropTypes.string.isRequired,\r\n cancelMessage: PropTypes.string.isRequired,\r\n content: PropTypes.string.isRequired\r\n}\r\n\r\nconst style = {\r\n proceedBtnStyle: {\r\n marginRight: \"10px\"\r\n }\r\n}\r\n\r\nexport default (PromiseModalWrapper)","import { LAND, NA, SCOOT, SEA } from '../constants/sector2Options';\r\n\r\nexport const sector1FormBuilder = ({\r\n arrivalSearchOptions,\r\n arrivalFlightNoList,\r\n arrivalCityList\r\n}) => {\r\n let form = [\r\n {\r\n key: 'search',\r\n label: 'Search Flight',\r\n type: 'autocomplete',\r\n options: arrivalSearchOptions\r\n },\r\n {\r\n key: 'flightNo',\r\n label: 'Flight No*',\r\n type: 'autocomplete',\r\n options: arrivalFlightNoList,\r\n disabled: true\r\n },\r\n {\r\n key: 'origin',\r\n label: 'Point Of Origin',\r\n type: 'autocomplete',\r\n options: arrivalCityList,\r\n disabled: true\r\n },\r\n {\r\n key: 'departingDate',\r\n label: 'Departing Date*',\r\n type: 'general-text-date'\r\n },\r\n {\r\n key: 'destination',\r\n label: 'Destination*',\r\n type: 'autocomplete',\r\n options: [{ value: 'Singapore', label: 'Singapore' }],\r\n disabled: true\r\n },\r\n {\r\n key: 'remarks',\r\n label: 'Remark',\r\n type: 'multiline',\r\n multilineRows: 4\r\n }\r\n ];\r\n return form;\r\n};\r\n\r\nexport const sector2FormBuilder = ({\r\n flightCompulsory,\r\n departureFlightNoList,\r\n departureCityList,\r\n departureSearchOptions\r\n}) => {\r\n const FLIGHT_NO_LABEL = flightCompulsory ? 'Flight No*' : 'Flight No';\r\n const DESTINATION_LABEL = flightCompulsory ? 'Destination*' : 'Destination';\r\n let form = [\r\n {\r\n key: 'search',\r\n label: 'Search',\r\n type: 'autocomplete',\r\n options: departureSearchOptions\r\n },\r\n {\r\n key: 'flightNo',\r\n label: FLIGHT_NO_LABEL,\r\n type: 'autocomplete',\r\n options: departureFlightNoList,\r\n disabled: true\r\n },\r\n {\r\n key: 'origin',\r\n label: 'Point Of Origin',\r\n type: 'autocomplete',\r\n options: [{ value: 'Singapore', label: 'Singapore' }],\r\n disabled: true\r\n },\r\n {\r\n key: 'departingDate',\r\n label: 'Departing Date',\r\n type: 'general-text-date'\r\n },\r\n {\r\n key: 'destination',\r\n label: DESTINATION_LABEL,\r\n type: 'autocomplete',\r\n options: departureCityList,\r\n disabled: true\r\n },\r\n {\r\n key: 'landSeaScootBool',\r\n label: 'Land/Sea/Scoot',\r\n type: 'radio',\r\n options: [\r\n { value: NA, label: NA },\r\n { value: SEA, label: SEA },\r\n { value: LAND, label: LAND },\r\n { value: SCOOT, label: SCOOT }\r\n ]\r\n },\r\n {\r\n key: 'landSeaRemarks',\r\n label: 'Land/Sea/Scoot Remarks',\r\n type: 'multiline',\r\n displayCondition: {\r\n key: 'landSeaScootBool',\r\n valueArr: [SEA, LAND, SCOOT]\r\n }\r\n }\r\n ];\r\n return form;\r\n};\r\n\r\nexport const sector3FormBuilder = ({\r\n arrivalFlightNoList,\r\n arrivalCityList,\r\n arrivalSearchOptions,\r\n disabled\r\n}) => {\r\n let form = [\r\n {\r\n key: 'search',\r\n label: 'Search',\r\n type: 'autocomplete',\r\n options: arrivalSearchOptions,\r\n disabled\r\n },\r\n {\r\n key: 'flightNo',\r\n label: 'Flight No',\r\n type: 'autocomplete',\r\n options: arrivalFlightNoList,\r\n disabled: true\r\n },\r\n {\r\n key: 'origin',\r\n label: 'Point Of Origin',\r\n type: 'autocomplete',\r\n options: arrivalCityList,\r\n disabled: true\r\n },\r\n {\r\n key: 'departingDate',\r\n label: 'Departing Date',\r\n type: 'general-text-date',\r\n disabled\r\n },\r\n {\r\n key: 'destination',\r\n label: 'Destination',\r\n type: 'autocomplete',\r\n options: [{ value: 'Singapore', label: 'Singapore' }],\r\n disabled: true\r\n },\r\n {\r\n key: 'landSeaScootBool',\r\n label: 'Land/Sea/Scoot',\r\n type: 'radio',\r\n options: [\r\n { value: NA, label: NA },\r\n { value: SEA, label: SEA },\r\n { value: LAND, label: LAND },\r\n { value: SCOOT, label: SCOOT }\r\n ],\r\n disabled\r\n },\r\n {\r\n key: 'landSeaRemarks',\r\n label: 'Land/Sea/Scoot Remarks',\r\n type: 'multiline',\r\n displayCondition: {\r\n key: 'landSeaScootBool',\r\n valueArr: [SEA, LAND, SCOOT]\r\n },\r\n disabled\r\n }\r\n ];\r\n return form;\r\n};\r\n\r\nexport const sector4FormBuilder = ({\r\n departureSearchOptions,\r\n departureFlightNoList,\r\n disabled\r\n}) => {\r\n let form = [\r\n {\r\n key: 'search',\r\n label: 'Search Flight',\r\n type: 'autocomplete',\r\n options: departureSearchOptions,\r\n disabled\r\n },\r\n {\r\n key: 'flightNo',\r\n label: 'Flight No',\r\n type: 'autocomplete',\r\n options: departureFlightNoList,\r\n disabled: true\r\n },\r\n {\r\n key: 'origin',\r\n label: 'Point Of Origin',\r\n type: 'autocomplete',\r\n options: [{ value: 'Singapore', label: 'Singapore' }],\r\n disabled: true\r\n },\r\n {\r\n key: 'departingDate',\r\n label: 'Departing Date',\r\n type: 'general-text-date',\r\n disabled\r\n },\r\n {\r\n key: 'destination',\r\n label: 'Destination',\r\n type: 'autocomplete',\r\n options: departureFlightNoList,\r\n disabled: true\r\n },\r\n {\r\n key: 'remarks',\r\n label: 'Remark',\r\n type: 'multiline',\r\n multilineRows: 4,\r\n disabled\r\n }\r\n ];\r\n return form;\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n withStyles,\r\n Grid,\r\n Button,\r\n Divider,\r\n Typography,\r\n TextField,\r\n ListItem,\r\n ListItemText,\r\n ListItemSecondaryAction,\r\n Paper,\r\n List,\r\n FormControlLabel,\r\n RadioGroup,\r\n Radio\r\n} from '@material-ui/core';\r\nimport {\r\n TRANSITING,\r\n TRAVELING_OUT_OF_SIN,\r\n VISITING_SIN\r\n} from '../../constants/individualSubmitTypes';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport GeneralFormColumnsContainer from '../../components/generalForm/GeneralFormColumns.js';\r\nimport {\r\n updateCollectorPersonalDetails,\r\n updateCurrentPaxFormDetails,\r\n clearPaxDetails,\r\n clearSector12,\r\n clearSector34,\r\n commitFormDetailsIntoList,\r\n updateCurrentPaxCtpValue,\r\n deletePax,\r\n restorePax,\r\n uploadFile,\r\n updateEntireIndividualForm,\r\n initFormDetails,\r\n copyFormDetailsToCurrentPax,\r\n cancelEditingPax,\r\n individualFilesUpload\r\n} from '../../ducks/individualFormDuck.js';\r\nimport { getAllCampaigns } from '../../ducks/campaignPeriodDuck.js';\r\nimport ParticularsTable from '../../components/ParticularsTable.js';\r\nimport Countries from '../../data/countriesCRM';\r\nimport { formatFlightNoHelper } from '../../helpers/formatFlightNoHelper';\r\nimport PassportParser from '../../helpers/passportParser';\r\nimport { FlightNos } from '../../dummy/flightNos';\r\nimport StyledSection from '../../components/StyledSection';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport StyledPlaceholder from '../../components/StyledPlaceholder';\r\nimport {\r\n checkBlankForm,\r\n validateCurrentPax,\r\n validateFormDetailsList\r\n} from './helper/individualFlightFormHelper';\r\n\r\nimport IndividualETicketForm from './IndividualETicketForm';\r\nimport {\r\n createEmptyRedemptionTransaction,\r\n updateRedemptionTransaction\r\n} from '../../ducks/redemptionTransactionDuck';\r\nimport axios from 'axios';\r\nimport { getSettings } from '../../config/config';\r\nimport { getCurrentAuthHeader, myaxios } from '../../helpers/utilities';\r\nimport GeneralDropzone from '../../components/generalForm/GeneralDropzone';\r\nimport Spacing from '../../components/Spacing';\r\nimport UploadFilesList from '../../components/UploadFilesList';\r\nimport StyledDeleteBtn from '../../components/StyledDeleteBtn';\r\nimport StyledUndoBtn from '../../components/StyledUndoBtn';\r\nimport DeleteDialog from '../../components/DeleteDialog';\r\nimport { attachmentBucket } from '../../config/config';\r\nimport { checkValidStatusCode } from '../../helpers/httpHelper';\r\nimport PromiseModalWrapper from '../../components/promiseModal/PromiseModalWrapper';\r\nimport { NA, LAND, SEA, SCOOT } from '../../constants/sector2Options.js';\r\nimport {\r\n sector1FormBuilder,\r\n sector2FormBuilder,\r\n sector3FormBuilder,\r\n sector4FormBuilder\r\n} from '../../helpers/individualFlightSectorFormHelper.js';\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const ARRIVAL = 'ARRIVAL';\r\nexport const DEPARTURE = 'DEPARTURE';\r\n\r\nclass IndividualFlightForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n paxFormFields: [\r\n {\r\n key: 'dob',\r\n label: 'Date of birth*',\r\n type: 'general-text-date'\r\n },\r\n {\r\n key: 'dob',\r\n label: 'Date of birth*',\r\n type: 'custom-text-date'\r\n },\r\n { key: 'firstName', label: 'First/Given Name*', type: 'text' },\r\n { key: 'lastName', label: 'Last Name/Surname*', type: 'text' },\r\n { key: 'remarks', label: 'Remarks', type: 'text' }\r\n ],\r\n sector1FormFields: [],\r\n sector2FormFields: [],\r\n sector3FormFields: [],\r\n sector4FormFields: [],\r\n files: [],\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n readyToProceedAfterPaxCommitted: false,\r\n ppInputTimeout: null,\r\n previousDraftExist: false,\r\n deletedOriginalAttachmentIdx: new Set(),\r\n showDeleteDialog: false,\r\n afterDeleteConfirm: '',\r\n promiseModalProceedMessage: '',\r\n promiseModalCancelMessage: '',\r\n promiseModalContent: '',\r\n flightData: {\r\n s1: {},\r\n s2: {},\r\n s3: {},\r\n s4: {}\r\n }\r\n };\r\n\r\n this.flightNoOptions = null;\r\n this.countriesOptions = null;\r\n this.individualETicket = null;\r\n this.saveDraftTimer = null;\r\n this.promiseModalRef = React.createRef();\r\n }\r\n\r\n componentDidMount = async () => {\r\n this.props.getAllCampaigns();\r\n this.flightNoOptions = formatFlightNoHelper(FlightNos);\r\n this.countriesOptions = Countries;\r\n // if (this.props.departureFlightNoList.length > 0) {\r\n // this._setFlightSectorFields();\r\n // }\r\n if (!this.props.redemptionTransaction.id) {\r\n this.props.createEmptyRedemptionTransaction();\r\n }\r\n\r\n // this.saveDraftTimer = setInterval(() => {\r\n // \tthis.onSaveDraft()\r\n // }, 30000)\r\n };\r\n\r\n formatFlightOption = (item, type) => {\r\n return type === ARRIVAL\r\n ? `${item.flightNo} - ${item.departureCityName} - ${\r\n item.departurePortCode\r\n }`\r\n : `${item.flightNo} - ${item.arrivalCityName} - ${\r\n item.arrivalPortCode\r\n }`;\r\n };\r\n\r\n filterFlightData = (\r\n type = ARRIVAL,\r\n carrierCodes = [],\r\n citiesOrCountries = []\r\n ) => {\r\n let arr = carrierCodes.length\r\n ? (this.props.flightData || []).filter(f =>\r\n carrierCodes.includes(f.carrierCode)\r\n )\r\n : this.props.flightData;\r\n\r\n if (type === ARRIVAL || type === DEPARTURE) {\r\n if (citiesOrCountries.length) {\r\n if (type === ARRIVAL) {\r\n arr = arr.filter(\r\n f =>\r\n citiesOrCountries.includes(f.arrivalCityName) ||\r\n citiesOrCountries.includes(f.arrivalCountryName)\r\n );\r\n } else if (type === DEPARTURE) {\r\n arr = arr.filter(\r\n f =>\r\n citiesOrCountries.includes(f.departureCityName) ||\r\n citiesOrCountries.includes(f.departureCountryName)\r\n );\r\n }\r\n }\r\n } else {\r\n arr = [];\r\n }\r\n\r\n let set = new Set(arr.map(m => this.formatFlightOption(m, type)));\r\n\r\n let flightData = [];\r\n // add default empty value\r\n flightData.push({\r\n label: 'Select...',\r\n value: ''\r\n });\r\n // add flight data\r\n let temp = [...set].sort().map(m => {\r\n return { label: m, value: m };\r\n });\r\n flightData = flightData.concat(temp);\r\n\r\n let flightNoList = [...new Set(arr.map(m => m.flightNo))].map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n\r\n let flightCityList = [];\r\n\r\n if (type === ARRIVAL) {\r\n flightCityList = [...new Set(arr.map(m => m.arrivalCityName))].map(\r\n m => ({ label: m, value: m })\r\n );\r\n } else if (type === DEPARTURE) {\r\n flightCityList = [\r\n ...new Set(arr.map(m => m.departureCityName))\r\n ].map(m => ({ label: m, value: m }));\r\n }\r\n\r\n return { flightData, flightNoList, flightCityList };\r\n };\r\n\r\n handleFlightData = (campaignCode, flightType) => {\r\n let s1 = this.state.flightData.s1,\r\n s2 = this.state.flightData.s2,\r\n s3 = this.state.flightData.s3,\r\n s4 = this.state.flightData.s4;\r\n\r\n if (flightType === VISITING_SIN) {\r\n s3 = this.filterFlightData('');\r\n s3.disabled = true;\r\n s4 = { ...s3 };\r\n this.props.clearSector34();\r\n }\r\n\r\n if (campaignCode.includes('kr')) {\r\n s1 = this.filterFlightData(DEPARTURE, ['7C', 'SQ'], ['Busan']);\r\n\r\n if (flightType === VISITING_SIN) {\r\n s2 = this.filterFlightData(ARRIVAL, ['7C', 'SQ'], ['Busan']);\r\n } else {\r\n s2 = this.filterFlightData(DEPARTURE, [], ['Singapore']);\r\n s3 = this.filterFlightData(ARRIVAL, [], ['Singapore']);\r\n s3.disabled = false;\r\n s4 = this.filterFlightData(ARRIVAL, ['7C', 'SQ'], ['Busan']);\r\n s3.disabled = false;\r\n }\r\n } else if (campaignCode.includes('sqau')) {\r\n s1 = this.filterFlightData(\r\n DEPARTURE,\r\n ['NZ'],\r\n ['United Kingdom', 'India']\r\n );\r\n s2 = this.filterFlightData(ARRIVAL, ['NZ'], ['New Zealand']);\r\n s3 = this.filterFlightData(DEPARTURE, ['NZ'], ['New Zealand']);\r\n s4 = this.filterFlightData(\r\n ARRIVAL,\r\n ['NZ'],\r\n ['United Kingdom', 'India']\r\n );\r\n } else {\r\n s1 = this.filterFlightData(ARRIVAL, [], []);\r\n s2 = { ...s1 };\r\n s3 = this.filterFlightData(ARRIVAL, [], ['Singapore']);\r\n s4 = this.filterFlightData(DEPARTURE, [], ['Singapore']);\r\n }\r\n\r\n this.setState(\r\n {\r\n flightData: { s1, s2, s3, s4 }\r\n },\r\n () => {\r\n this._setFlightSectorFields();\r\n }\r\n );\r\n };\r\n\r\n componentDidUpdate = prevProps => {\r\n let formDetails = cloneDeep(this.props.currentPaxFormDetails);\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.eTicketsDetails.campaignCode !==\r\n this.props.currentPaxFormDetails.eTicketsDetails.campaignCode ||\r\n prevProps.currentPaxFormDetails.flightType !==\r\n this.props.currentPaxFormDetails.flightType\r\n ) {\r\n if (\r\n prevProps.currentPaxFormDetails.eTicketsDetails.campaignCode !==\r\n this.props.currentPaxFormDetails.eTicketsDetails.campaignCode\r\n ) {\r\n this.props.clearSector12();\r\n }\r\n this.handleFlightData(\r\n this.props.currentPaxFormDetails.eTicketsDetails.campaignCode,\r\n this.props.currentPaxFormDetails.flightType\r\n );\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector1Details.search !==\r\n this.props.currentPaxFormDetails.sector1Details.search\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector1Details.search) {\r\n const terms =\r\n this.props.currentPaxFormDetails.sector1Details.search ==\r\n 'Select...'\r\n ? []\r\n : this.props.currentPaxFormDetails.sector1Details.search.split(\r\n '-'\r\n );\r\n this._updateMultipleFormDetails(formDetails, [\r\n {\r\n detailsCategory: 'sector1Details',\r\n key: 'flightNo',\r\n value: terms.length > 0 ? terms[0].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector1Details',\r\n key: 'origin',\r\n value: terms.length > 0 ? terms[1].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector1Details',\r\n key: 'originCode',\r\n value: terms.length > 0 ? terms[2].trim() : ''\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector2Details.search !==\r\n this.props.currentPaxFormDetails.sector2Details.search\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector2Details.search) {\r\n const terms =\r\n this.props.currentPaxFormDetails.sector2Details.search ==\r\n 'Select...'\r\n ? []\r\n : this.props.currentPaxFormDetails.sector2Details.search.split(\r\n '-'\r\n );\r\n this._updateMultipleFormDetails(formDetails, [\r\n {\r\n detailsCategory: 'sector2Details',\r\n key: 'flightNo',\r\n value: terms.length > 0 ? terms[0].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector2Details',\r\n key: 'destination',\r\n value: terms.length > 0 ? terms[1].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector2Details',\r\n key: 'destinationCode',\r\n value: terms.length > 0 ? terms[2].trim() : ''\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector3Details.search !==\r\n this.props.currentPaxFormDetails.sector3Details.search\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector3Details.search) {\r\n const terms =\r\n this.props.currentPaxFormDetails.sector3Details.search ==\r\n 'Select...'\r\n ? []\r\n : this.props.currentPaxFormDetails.sector3Details.search.split(\r\n '-'\r\n );\r\n this._updateMultipleFormDetails(formDetails, [\r\n {\r\n detailsCategory: 'sector3Details',\r\n key: 'flightNo',\r\n value: terms.length > 0 ? terms[0].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector3Details',\r\n key: 'origin',\r\n value: terms.length > 0 ? terms[1].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector3Details',\r\n key: 'originCode',\r\n value: terms.length > 0 ? terms[2].trim() : ''\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector4Details.search !==\r\n this.props.currentPaxFormDetails.sector4Details.search\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector4Details.search) {\r\n const terms =\r\n this.props.currentPaxFormDetails.sector4Details.search ==\r\n 'Select...'\r\n ? []\r\n : this.props.currentPaxFormDetails.sector4Details.search.split(\r\n '-'\r\n );\r\n this._updateMultipleFormDetails(formDetails, [\r\n {\r\n detailsCategory: 'sector4Details',\r\n key: 'flightNo',\r\n value: terms.length > 0 ? terms[0].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector4Details',\r\n key: 'destination',\r\n value: terms.length > 0 ? terms[1].trim() : ''\r\n },\r\n {\r\n detailsCategory: 'sector4Details',\r\n key: 'destinationCode',\r\n value: terms.length > 0 ? terms[2].trim() : ''\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector1Details.flightNo !==\r\n this.props.currentPaxFormDetails.sector1Details.flightNo\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector1Details.flightNo) {\r\n this._updateDataBasedOnFlightNo({\r\n sectorKey: 'sector1Details'\r\n });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector4Details.flightNo !==\r\n this.props.currentPaxFormDetails.sector4Details.flightNo\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector4Details.flightNo) {\r\n this._updateDataBasedOnFlightNo({\r\n sectorKey: 'sector4Details'\r\n });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector2Details.flightNo !==\r\n this.props.currentPaxFormDetails.sector2Details.flightNo\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector2Details.flightNo) {\r\n this._updateDataBasedOnFlightNo({\r\n sectorKey: 'sector2Details'\r\n });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector3Details.flightNo !==\r\n this.props.currentPaxFormDetails.sector3Details.flightNo\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector3Details.flightNo) {\r\n this._updateDataBasedOnFlightNo({\r\n sectorKey: 'sector3Details'\r\n });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector1Details.origin !==\r\n this.props.currentPaxFormDetails.sector1Details.origin\r\n ) {\r\n if (this.props.currentPaxFormDetails.sector1Details.origin) {\r\n this._updateCtpVoucherBasedOnOrigin();\r\n }\r\n }\r\n\r\n if (prevProps.isFlightPopulated !== this.props.isFlightPopulated) {\r\n if (this.props.isFlightPopulated) {\r\n this._setFlightSectorFields();\r\n }\r\n }\r\n\r\n if (\r\n prevProps.formDetailsList.length < this.props.formDetailsList.length\r\n ) {\r\n if (this.state.readyToProceedAfterPaxCommitted) {\r\n this._validateAllPassengersBeforeNextScreen();\r\n }\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector2Details\r\n .destinationCityCode !==\r\n this.props.currentPaxFormDetails.sector2Details.destinationCityCode\r\n ) {\r\n this._updateCityBasedOnCityCode({ sectorKey: 'sector2Details' });\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector3Details\r\n .destinationCityCode !==\r\n this.props.currentPaxFormDetails.sector3Details.destinationCityCode\r\n ) {\r\n this._updateCityBasedOnCityCode({ sectorKey: 'sector3Details' });\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector2Details.landSeaScootBool !==\r\n this.props.currentPaxFormDetails.sector2Details.landSeaScootBool\r\n ) {\r\n let landSeaScootBoolValue = this.props.currentPaxFormDetails\r\n .sector2Details.landSeaScootBool;\r\n let flightCompulsoryFlag = true;\r\n if (landSeaScootBoolValue === LAND || landSeaScootBoolValue === SEA)\r\n flightCompulsoryFlag = false;\r\n else if (\r\n landSeaScootBoolValue === NA ||\r\n landSeaScootBoolValue === SCOOT\r\n )\r\n flightCompulsoryFlag = true;\r\n this.setState({\r\n sector2FormFields: sector2FormBuilder({\r\n flightCompulsory: flightCompulsoryFlag,\r\n departureFlightNoList: flightCompulsoryFlag\r\n ? this.state.flightData.s2.flightNoList\r\n : [],\r\n departureCityList: flightCompulsoryFlag\r\n ? this.state.flightData.s2.flightCityList\r\n : [],\r\n departureSearchOptions: flightCompulsoryFlag\r\n ? this.state.flightData.s2.flightData\r\n : []\r\n })\r\n });\r\n }\r\n\r\n if (\r\n prevProps.currentPaxFormDetails.sector3Details.landSeaScootBool !==\r\n this.props.currentPaxFormDetails.sector3Details.landSeaScootBool\r\n ) {\r\n let landSeaScootBoolValue = this.props.currentPaxFormDetails\r\n .sector3Details.landSeaScootBool;\r\n let flightCompulsoryFlag = true;\r\n if (landSeaScootBoolValue === LAND || landSeaScootBoolValue === SEA)\r\n flightCompulsoryFlag = false;\r\n else if (\r\n landSeaScootBoolValue === NA ||\r\n landSeaScootBoolValue === SCOOT\r\n )\r\n flightCompulsoryFlag = true;\r\n this.setState({\r\n sector3FormFields: sector3FormBuilder({\r\n arrivalFlightNoList: flightCompulsoryFlag\r\n ? this.state.flightData.s3.flightNoList\r\n : [],\r\n arrivalCityList: flightCompulsoryFlag\r\n ? this.state.flightData.s3.flightCityList\r\n : [],\r\n arrivalSearchOptions: flightCompulsoryFlag\r\n ? this.state.flightData.s3.flightData\r\n : []\r\n })\r\n });\r\n }\r\n };\r\n\r\n componentWillUnmount = async () => {\r\n clearInterval(this.saveDraftTimer);\r\n };\r\n\r\n _setFlightSectorFields = () => {\r\n this.setState({\r\n sector1FormFields: sector1FormBuilder({\r\n arrivalSearchOptions: this.state.flightData.s1.flightData,\r\n arrivalFlightNoList: this.state.flightData.s1.flightNoList,\r\n arrivalCityList: this.state.flightData.s1.flightCityList\r\n }),\r\n sector2FormFields: sector2FormBuilder({\r\n flightCompulsory: true,\r\n departureFlightNoList: this.state.flightData.s2.flightNoList,\r\n departureCityList: this.state.flightData.s2.flightCityList,\r\n departureSearchOptions: this.state.flightData.s2.flightData\r\n }),\r\n sector3FormFields: sector3FormBuilder({\r\n arrivalFlightNoList: this.state.flightData.s3.flightNoList,\r\n arrivalCityList: this.state.flightData.s3.flightCityList,\r\n arrivalSearchOptions: this.state.flightData.s3.flightData,\r\n disabled: this.state.flightData.s3.disabled\r\n }),\r\n sector4FormFields: sector4FormBuilder({\r\n departureSearchOptions: this.state.flightData.s4.flightData,\r\n departureFlightNoList: this.state.flightData.s4.flightNoList,\r\n disabled: this.state.flightData.s4.disabled\r\n })\r\n });\r\n };\r\n\r\n _updateCtpVoucherBasedOnOrigin = () => {\r\n let origin = this.props.currentPaxFormDetails.sector1Details.origin;\r\n if (origin.length >= 3) {\r\n // let ctpValue = checkBonusCities(origin) ? 40 : 20\r\n this.props.updateCurrentPaxCtpValue(0);\r\n }\r\n };\r\n\r\n _updateDataBasedOnFlightNo = ({ sectorKey }) => {\r\n let selectedFlightNo = this.props.currentPaxFormDetails[sectorKey]\r\n .flightNo;\r\n if (selectedFlightNo.length >= 3) {\r\n if (sectorKey === 'sector1Details') {\r\n const matchedFlights = this.props.flightData.filter(\r\n flight =>\r\n flight.flightNo === selectedFlightNo &&\r\n flight.arrivalCityName === 'Singapore'\r\n );\r\n if (matchedFlights.length) {\r\n const citiesFiltered = this.state.flightData.s1.flightCityList.filter(\r\n f =>\r\n matchedFlights\r\n .map(m => m.departureCityName)\r\n .includes(f.label)\r\n );\r\n this.setState(prevState => {\r\n const idx = prevState.sector1FormFields.findIndex(\r\n f => f.key === 'origin'\r\n );\r\n prevState.sector1FormFields.splice(idx, 1, {\r\n key: 'origin',\r\n label: 'Point Of Origin',\r\n type: 'autocomplete',\r\n options: citiesFiltered\r\n });\r\n\r\n return {\r\n sector1FormFields: [...prevState.sector1FormFields],\r\n promtedRetrieveDraft: false\r\n };\r\n });\r\n if (this.props.replacingFromDraft !== true) {\r\n const cityCount = new Set(\r\n matchedFlights.map(m => m.departureCityName)\r\n ).size;\r\n\r\n if (cityCount === 1) {\r\n this._updateFormDetails({\r\n detailsCategory: sectorKey,\r\n key: 'origin',\r\n value: matchedFlights[0].departureCityName\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n const matchedFlights = this.props.flightData.filter(\r\n flight =>\r\n flight.flightNo === selectedFlightNo &&\r\n flight.departureCityName === 'Singapore'\r\n );\r\n\r\n let departureCityList = [];\r\n if (sectorKey === 'sector2Details') {\r\n departureCityList = this.state.flightData.s2.flightCityList;\r\n } else if (sectorKey === 'sector3Details') {\r\n departureCityList = this.state.flightData.s3.flightCityList;\r\n } else if (sectorKey === 'sector4Details') {\r\n departureCityList = this.state.flightData.s4.flightCityList;\r\n }\r\n if (matchedFlights.length) {\r\n const citiesFiltered = departureCityList.filter(f =>\r\n matchedFlights\r\n .map(m => m.arrivalCityName)\r\n .includes(f.label)\r\n );\r\n this.setState(prevState => {\r\n const idx = prevState.sector2FormFields.findIndex(\r\n f => f.key === 'destination'\r\n );\r\n prevState.sector2FormFields.splice(idx, 1, {\r\n key: 'destination',\r\n label: 'Destination',\r\n type: 'autocomplete',\r\n options: citiesFiltered\r\n });\r\n\r\n return {\r\n sector2FormFields: [...prevState.sector2FormFields]\r\n };\r\n });\r\n if (this.props.replacingFromDraft !== true) {\r\n const cityCount = new Set(\r\n matchedFlights.map(m => m.arrivalCityName)\r\n ).size;\r\n\r\n if (cityCount === 1) {\r\n this._updateFormDetails({\r\n detailsCategory: sectorKey,\r\n key: 'destination',\r\n value: matchedFlights[0].arrivalCityName\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n _updateCityBasedOnCityCode = ({ sectorKey }) => {\r\n let destinationCityCode = this.props.currentPaxFormDetails[sectorKey]\r\n .destinationCityCode;\r\n let matchedFlight = this.props.flightData.find(\r\n flight => flight.departureCityCode === destinationCityCode\r\n );\r\n if (matchedFlight) {\r\n setTimeout(() => {\r\n this._updateMultipleFormDetails([\r\n {\r\n detailsCategory: sectorKey,\r\n key: 'destination',\r\n value: matchedFlight.departureCityName\r\n }\r\n ]);\r\n }, 500);\r\n }\r\n };\r\n\r\n _checkApprovedTicketNo = ticketNo => {\r\n let subString = ticketNo.substr(0, 3);\r\n return (\r\n subString === '618' ||\r\n subString === '629' ||\r\n subString === '086' ||\r\n subString === '081' ||\r\n subString === '000'\r\n );\r\n };\r\n\r\n /*\r\n handleETicketsDetailsChange = (key, value) => {\r\n if (/[^0-9]/.test(value)) return false\r\n if (value.length >= 3) {\r\n let approvedTicketNo = this._checkApprovedTicketNo(value)\r\n if (!approvedTicketNo) {\r\n this.setState({[key + 'Error']: ETICKET_ELIGIBILITY_ERROR_MSG})\r\n } else {\r\n this.setState({[key + 'Error']: ''})\r\n }\r\n }\r\n\r\n this._updateFormDetails({detailsCategory: 'eTicketsDetails', key, value})\r\n }\r\n */\r\n\r\n _processScanPassport = passportString => {\r\n let passportParser = new PassportParser(passportString);\r\n let passportData = passportParser.getData();\r\n this._updateMultipleFormDetails([\r\n {\r\n detailsCategory: 'personalDetails',\r\n key: 'firstName',\r\n value: passportData.firstName\r\n },\r\n {\r\n detailsCategory: 'personalDetails',\r\n key: 'lastName',\r\n value: passportData.lastName\r\n },\r\n {\r\n detailsCategory: 'personalDetails',\r\n key: 'dob',\r\n value: passportData.dob\r\n }\r\n ]);\r\n };\r\n\r\n handleSector1DetailsChange = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'sector1Details',\r\n key,\r\n value\r\n });\r\n };\r\n\r\n handleSector2DetailsChange = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'sector2Details',\r\n key,\r\n value\r\n });\r\n };\r\n\r\n handleSector3DetailsChange = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'sector3Details',\r\n key,\r\n value\r\n });\r\n };\r\n\r\n handleSector4DetailsChange = (key, value) => {\r\n this._updateFormDetails({\r\n detailsCategory: 'sector4Details',\r\n key,\r\n value\r\n });\r\n };\r\n\r\n _updateFormDetails = ({ detailsCategory, key, value }) => {\r\n if (key === 'landSeaRef') {\r\n this.setState({ fileupload: value });\r\n return;\r\n }\r\n\r\n let formDetails = cloneDeep(this.props.currentPaxFormDetails);\r\n formDetails[detailsCategory][key] = value;\r\n if (key === 'flightNo') {\r\n //todo: syd remove this when flightNo option is removed.\r\n formDetails[detailsCategory].search = null;\r\n }\r\n\r\n // case select sea/land option in sector 2 & 3\r\n if (\r\n key === 'landSeaScootBool' &&\r\n (value === 'sea' || value === 'land')\r\n ) {\r\n // remove search, flight no\r\n formDetails[detailsCategory].search = null;\r\n formDetails[detailsCategory].flightNo = null;\r\n // case sector 2: remove destination\r\n if (detailsCategory === 'sector2Details') {\r\n formDetails[detailsCategory].destination = null;\r\n formDetails[detailsCategory].destinationCode = null;\r\n }\r\n // case sector 3: remove POO\r\n if (detailsCategory === 'sector3Details') {\r\n formDetails[detailsCategory].origin = null;\r\n formDetails[detailsCategory].originCode = null;\r\n }\r\n }\r\n\r\n if (formDetails['personalDetails'].numberOfSector === 4) {\r\n // get fligt data\r\n const { flightData } = JSON.parse(\r\n localStorage.getItem('FLIGHT_DATA')\r\n );\r\n\r\n // set default value for sector 4 if sector 1 selected\r\n let sectionList = flightData;\r\n if (detailsCategory === 'sector1Details' && key == 'search') {\r\n if (value === 'Select...') {\r\n formDetails['sector4Details'][key] = value;\r\n } else {\r\n sectionList = flightData.filter(\r\n m => m['departureCityName'] === 'Singapore'\r\n );\r\n let portCodeSector1 = value\r\n .split('-')\r\n .pop()\r\n .trim();\r\n let dfFlightSector4 = sectionList.filter(\r\n m => m['arrivalPortCode'] === portCodeSector1\r\n )[0];\r\n if (\r\n dfFlightSector4 !== null &&\r\n dfFlightSector4 !== undefined\r\n ) {\r\n let sector4Search = `${dfFlightSector4.flightNo} - ${\r\n dfFlightSector4.arrivalCityName\r\n } - ${dfFlightSector4.arrivalPortCode}`;\r\n formDetails['sector4Details'][key] = sector4Search;\r\n }\r\n }\r\n }\r\n\r\n // set default value for sector 3 if sector 2 selected\r\n sectionList = flightData;\r\n if (detailsCategory === 'sector2Details' && key == 'search') {\r\n if (value === 'Select...') {\r\n formDetails['sector3Details'][key] = value;\r\n } else {\r\n sectionList = flightData.filter(\r\n m => m['arrivalCityName'] === 'Singapore'\r\n );\r\n let portCodeSector2 = value\r\n .split('-')\r\n .pop()\r\n .trim();\r\n let dfFlightSector3 = sectionList.filter(\r\n m => m['departurePortCode'] === portCodeSector2\r\n )[0];\r\n if (\r\n dfFlightSector3 !== null &&\r\n dfFlightSector3 !== undefined\r\n ) {\r\n let sector3Search = `${dfFlightSector3.flightNo} - ${\r\n dfFlightSector3.departureCityName\r\n } - ${dfFlightSector3.departurePortCode}`;\r\n formDetails['sector3Details'][key] = sector3Search;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.props.updateCurrentPaxFormDetails(formDetails);\r\n };\r\n\r\n onFlightTypeChange = e => {\r\n let formDetails = cloneDeep(this.props.currentPaxFormDetails);\r\n formDetails.flightType = e.target.value;\r\n this.props.updateCurrentPaxFormDetails(formDetails);\r\n };\r\n\r\n _updateMultipleFormDetails = (formDetails, detailsArray) => {\r\n detailsArray.forEach(item => {\r\n formDetails[item.detailsCategory][item.key] = item.value;\r\n });\r\n this.props.updateCurrentPaxFormDetails(formDetails);\r\n };\r\n\r\n _commitCurrentPax = async () => {\r\n const { deletedOriginalAttachmentIdx } = this.state;\r\n if (deletedOriginalAttachmentIdx.size > 0) {\r\n return this.setState({\r\n showDeleteDialog: true,\r\n afterDeleteConfirm: '_commitCurrentPax'\r\n });\r\n } else {\r\n const { files } = this.state;\r\n if (files.length > 0) {\r\n const rs = await this.uploadFiles();\r\n // cannot store file objects in redux, have to store it in state, upload, then pass the url string to\r\n // redux const formData = new FormData() formData.append('file', this.state.fileupload[0],\r\n // this.state.fileupload[0].name) const rs = await this.props.uploadFile(formData, 'file')\r\n if (rs.success) {\r\n this.props.commitFormDetailsIntoList();\r\n this.setState({ files: [] });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Files upload failed'\r\n });\r\n return;\r\n }\r\n } else {\r\n this.props.commitFormDetailsIntoList();\r\n }\r\n }\r\n };\r\n\r\n async uploadFiles() {\r\n const { files } = this.state;\r\n let formData = new FormData();\r\n files.forEach(f => {\r\n formData.append('files', f, f.name);\r\n });\r\n const rs = await this.props.individualFilesUpload(formData);\r\n if (rs.success) {\r\n this.setState({ files: [] });\r\n }\r\n return rs;\r\n }\r\n\r\n _validateMaxPassengers = () => {\r\n const { formDetailsList } = this.props;\r\n let c = 0;\r\n formDetailsList.forEach(p => {\r\n if (p.isDeleted === false) c++;\r\n });\r\n if (c >= 9) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Max 9 passengers allowed'\r\n });\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n addPax = async () => {\r\n if (!this._validateMaxPassengers()) return;\r\n if (checkBlankForm(this.props.currentPaxFormDetails, initFormDetails)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Nothing to add'\r\n });\r\n return;\r\n }\r\n\r\n this.calNoSCurrentPax(true);\r\n let validation = validateCurrentPax({\r\n currentPaxFormDetails: this.props.currentPaxFormDetails,\r\n formDetailsList: this.props.formDetailsList,\r\n campaignPeriods: this.props.campaigns,\r\n files: this.state.files\r\n });\r\n if (!validation.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: validation.message\r\n });\r\n return;\r\n }\r\n\r\n this._commitCurrentPax();\r\n this.individualETicket.resetAddETicketButton();\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n onClickNext = async () => {\r\n if (\r\n this.props.formDetailsList.length > 0 &&\r\n checkBlankForm(this.props.currentPaxFormDetails, initFormDetails)\r\n ) {\r\n //if (this.props.formDetailsList.length > 0) {\r\n this._validateAllPassengersBeforeNextScreen();\r\n return;\r\n }\r\n\r\n this.calNoSCurrentPax(false);\r\n let validateCurrentPaxResult = validateCurrentPax({\r\n currentPaxFormDetails: this.props.currentPaxFormDetails,\r\n formDetailsList: this.props.formDetailsList,\r\n campaignPeriods: this.props.campaigns,\r\n files: this.state.files\r\n });\r\n\r\n if (!validateCurrentPaxResult.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: validateCurrentPaxResult.message\r\n });\r\n return;\r\n }\r\n\r\n this._commitCurrentPax();\r\n\r\n // set state to ready to wait for pax to be committed.\r\n this.setState({ readyToProceedAfterPaxCommitted: true });\r\n };\r\n\r\n _validateAllPassengersBeforeNextScreen = () => {\r\n let undeletedPassengers = this.props.formDetailsList.filter(\r\n p => p.isDeleted !== true\r\n );\r\n if (undeletedPassengers.length > 9) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Number of passengers cannot exceed 9'\r\n });\r\n return;\r\n }\r\n\r\n let validateFormDetailsListResult = validateFormDetailsList({\r\n formDetailsList: this.props.formDetailsList\r\n });\r\n if (!validateFormDetailsListResult.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: validateFormDetailsListResult.message\r\n });\r\n this.setState({ readyToProceedAfterPaxCommitted: false });\r\n return;\r\n }\r\n\r\n this._proceedToNextScreen();\r\n };\r\n\r\n _proceedToNextScreen = () => {\r\n window.scrollTo(0, 0);\r\n const { flightData } = this.props;\r\n this.props.updateCollectorPersonalDetails(flightData);\r\n this.props.history.push('/individual-collector');\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onClear = () => {\r\n this.props.clearPaxDetails();\r\n this.individualETicket.resetAddETicketButton();\r\n // this.individualETicket.focusETicket(0)\r\n };\r\n\r\n _onDelete = pax => {\r\n this.props.deletePax(pax);\r\n };\r\n\r\n _onRestore = pax => {\r\n if (!this._validateMaxPassengers()) return false;\r\n this.props.restorePax(pax);\r\n };\r\n\r\n onSaveDraft = async () => {\r\n const {\r\n individualFormDuck: { formDetailsList, currentPaxFormDetails },\r\n redemptionTransaction\r\n } = this.props;\r\n if (\r\n formDetailsList.length === 0 &&\r\n !currentPaxFormDetails.eTicketsDetails.pnr\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please fill up PNR to save'\r\n });\r\n return;\r\n }\r\n\r\n if (!redemptionTransaction.id) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Error saving. Please try again'\r\n });\r\n return;\r\n }\r\n\r\n const { deletedOriginalAttachmentIdx } = this.state;\r\n if (deletedOriginalAttachmentIdx.size > 0) {\r\n return this.setState({\r\n showDeleteDialog: true,\r\n afterDeleteConfirm: 'onSaveDraft'\r\n });\r\n } else {\r\n const { files } = this.state;\r\n if (files.length > 0) {\r\n const rs = await this.uploadFiles();\r\n if (!rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Files upload failed'\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n let individualFormJsonString = JSON.stringify(\r\n this.props.individualFormDuck\r\n );\r\n\r\n let submitDraftObj = {\r\n redemptionTransactionId: redemptionTransaction.id,\r\n userId: localStorage.getItem('userId'),\r\n data: individualFormJsonString\r\n };\r\n\r\n if (formDetailsList.length > 0) {\r\n submitDraftObj.pnr = formDetailsList[0].eTicketsDetails.pnr;\r\n } else {\r\n submitDraftObj.pnr = currentPaxFormDetails.eTicketsDetails.pnr;\r\n }\r\n\r\n const draftRs = await axios\r\n .post(\r\n baseURL + '/Draft/AddDraft',\r\n submitDraftObj,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Draft save failed'\r\n });\r\n }\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Draft save failed'\r\n });\r\n });\r\n if (draftRs) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Draft saved'\r\n });\r\n }\r\n };\r\n\r\n _onEditPax = p => {\r\n if (p.isDeleted) return;\r\n this.props.copyFormDetailsToCurrentPax(cloneDeep(p));\r\n };\r\n\r\n onEditCancel = () => {\r\n this.props.cancelEditingPax();\r\n };\r\n\r\n onUpdate = async () => {\r\n const { deletedOriginalAttachmentIdx } = this.state;\r\n\r\n if (deletedOriginalAttachmentIdx.size > 0) {\r\n return this.setState({\r\n showDeleteDialog: true,\r\n afterDeleteConfirm: 'onUpdate'\r\n });\r\n } else {\r\n const { files } = this.state;\r\n if (files.length > 0) {\r\n const rs = await this.uploadFiles();\r\n if (rs.success) {\r\n this.props.commitFormDetailsIntoList();\r\n this.setState({\r\n files: [],\r\n deletedOriginalAttachmentIdx: new Set()\r\n });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Files upload failed'\r\n });\r\n }\r\n } else {\r\n this.calNoSCurrentPax(false);\r\n let validation = validateCurrentPax({\r\n currentPaxFormDetails: this.props.currentPaxFormDetails,\r\n formDetailsList: this.props.formDetailsList,\r\n campaignPeriods: this.props.campaigns,\r\n files: this.state.files\r\n });\r\n if (!validation.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: validation.message\r\n });\r\n return;\r\n }\r\n this.props.commitFormDetailsIntoList();\r\n }\r\n }\r\n\r\n this.individualETicket.resetAddETicketButton();\r\n };\r\n\r\n calNoSCurrentPax(isAdding) {\r\n // set number of sector for first pax\r\n if (this.props.formDetailsList.length === 0) {\r\n // other accepted airline\r\n if (\r\n this.props.currentPaxFormDetails.personalDetails\r\n .numberOfSector &&\r\n this.props.currentPaxFormDetails.personalDetails\r\n .numberOfSector == 0\r\n ) {\r\n this.props.currentPaxFormDetails.numberOfSector = this.props\r\n .currentPaxFormDetails.sector3Details.flightNo\r\n ? 4\r\n : 2;\r\n }\r\n // more than one eticket\r\n else if (\r\n this.props.currentPaxFormDetails.ticketDetails &&\r\n this.props.currentPaxFormDetails.ticketDetails.length > 1\r\n ) {\r\n this.props.currentPaxFormDetails.numberOfSector = this.props\r\n .currentPaxFormDetails.sector3Details.flightNo\r\n ? 4\r\n : 2;\r\n }\r\n // sq eticket\r\n else {\r\n this.props.currentPaxFormDetails.numberOfSector = this.props.currentPaxFormDetails.personalDetails.numberOfSector;\r\n }\r\n this.props.currentPaxFormDetails.isFirstPax = true;\r\n } else {\r\n // other accepted airline & more than 1 eTicket\r\n if (\r\n this.props.currentPaxFormDetails.personalDetails\r\n .numberOfSector == 0 ||\r\n this.props.currentPaxFormDetails.ticketDetails.length > 1\r\n ) {\r\n this.props.currentPaxFormDetails.numberOfSector = this.props.formDetailsList[0].numberOfSector;\r\n }\r\n // sq eticket\r\n else {\r\n this.props.currentPaxFormDetails.numberOfSector = this.props.currentPaxFormDetails.personalDetails.numberOfSector;\r\n }\r\n if (isAdding) {\r\n this.props.currentPaxFormDetails.isFirstPax = false;\r\n }\r\n }\r\n }\r\n\r\n getFormDetails = k => {\r\n const { currentPaxFormDetails } = this.props;\r\n return currentPaxFormDetails[k];\r\n };\r\n\r\n onRemoveCircleClick = (f, i) => {\r\n const files = [...this.state.files];\r\n files.splice(i, 1);\r\n this.setState({ files });\r\n };\r\n\r\n onDrop = acceptedFiles => {\r\n const files = [...this.state.files];\r\n for (const af of acceptedFiles) {\r\n let exists = false;\r\n for (const f of files) {\r\n if (af.name === f.name) exists = true;\r\n }\r\n if (!exists) files.push(af);\r\n }\r\n this.setState({ files });\r\n };\r\n\r\n onDeleteOrigAttachment = i => {\r\n this.setState({\r\n deletedOriginalAttachmentIdx: this.state.deletedOriginalAttachmentIdx.add(\r\n i\r\n )\r\n });\r\n };\r\n\r\n onUndoDeleteOrigAttachment = i => {\r\n let newDeletedOriginalAttachmentIdx = new Set(\r\n this.state.deletedOriginalAttachmentIdx\r\n );\r\n newDeletedOriginalAttachmentIdx.delete(i);\r\n this.setState({\r\n deletedOriginalAttachmentIdx: newDeletedOriginalAttachmentIdx\r\n });\r\n };\r\n\r\n onDeleteConfirm = async () => {\r\n const newCurrentPaxFormDetails = cloneDeep(\r\n this.props.currentPaxFormDetails\r\n );\r\n let newAttachmentUris =\r\n newCurrentPaxFormDetails.sector2Details.attachmentUris;\r\n let newAttachmentUrisSector3 =\r\n newCurrentPaxFormDetails.sector3Details.attachmentUris;\r\n this.state.deletedOriginalAttachmentIdx.forEach(i => {\r\n newAttachmentUris.splice(i, 1);\r\n newAttachmentUrisSector3.splice(i, 1);\r\n });\r\n newCurrentPaxFormDetails.sector2Details.attachmentUris = newAttachmentUris;\r\n newCurrentPaxFormDetails.sector3Details.attachmentUris = newAttachmentUrisSector3;\r\n await this.props.updateCurrentPaxFormDetails(newCurrentPaxFormDetails);\r\n\r\n const { files, afterDeleteConfirm } = this.state;\r\n if (files.length > 0) {\r\n const rs = await this.uploadFiles();\r\n if (rs.success) {\r\n // this.props.commitFormDetailsIntoList()\r\n this.setState({\r\n files: [],\r\n deletedOriginalAttachmentIdx: new Set(),\r\n showDeleteDialog: false,\r\n afterDeleteConfirm: ''\r\n });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Files upload failed',\r\n showDeleteDialog: false\r\n });\r\n }\r\n } else {\r\n // this.props.commitFormDetailsIntoList()\r\n this.setState({\r\n deletedOriginalAttachmentIdx: new Set(),\r\n showDeleteDialog: false,\r\n afterDeleteConfirm: ''\r\n });\r\n }\r\n\r\n let validateCurrentPaxResult = validateCurrentPax({\r\n currentPaxFormDetails: this.props.currentPaxFormDetails,\r\n formDetailsList: this.props.formDetailsList,\r\n campaignPeriods: this.props.campaigns,\r\n files: this.state.files\r\n });\r\n if (!validateCurrentPaxResult.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: validateCurrentPaxResult.message\r\n });\r\n return;\r\n }\r\n switch (afterDeleteConfirm) {\r\n case '_commitCurrentPax':\r\n this._commitCurrentPax();\r\n break;\r\n case 'onUpdate':\r\n this.onUpdate();\r\n break;\r\n case 'onSaveDraft':\r\n this.onSaveDraft();\r\n break;\r\n }\r\n };\r\n\r\n onDeleteCancel = () => {\r\n this.setState({\r\n showDeleteDialog: false,\r\n afterDeleteConfirm: '',\r\n readyToProceedAfterPaxCommitted: false\r\n });\r\n };\r\n\r\n onAttachmentClick = async attachmentUri => {\r\n const data = { objectKey: [attachmentUri], bucket: attachmentBucket };\r\n const rs = await myaxios(\r\n 'post',\r\n '/File/GeneratePresignedUris',\r\n data,\r\n getCurrentAuthHeader()\r\n );\r\n if (rs.success) {\r\n window.open(rs.data.result[0]);\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n editMode,\r\n currentPaxFormDetails,\r\n getAllCampaignsIsLoading,\r\n createRedemptionTransactionIsLoading,\r\n uploadFileIsLoading\r\n } = this.props;\r\n const { deletedOriginalAttachmentIdx, showDeleteDialog } = this.state;\r\n const isLoading =\r\n this.props.individualFilesUploadIsLoading ||\r\n getAllCampaignsIsLoading ||\r\n createRedemptionTransactionIsLoading ||\r\n uploadFileIsLoading;\r\n return (\r\n
\r\n {currentPaxFormDetails['sector2Details'] &&\r\n currentPaxFormDetails['sector2Details'].attachmentUris\r\n .length > 0 && (\r\n \r\n The following attachments will be removed:\r\n
    \r\n {currentPaxFormDetails[\r\n 'sector2Details'\r\n ].attachmentUris.map((a, i) => {\r\n if (deletedOriginalAttachmentIdx.has(i)) {\r\n return (\r\n
  • {a}
  • \r\n );\r\n }\r\n })}\r\n
\r\n \r\n )}\r\n {currentPaxFormDetails['sector3Details'] &&\r\n currentPaxFormDetails['sector3Details'].attachmentUris\r\n .length > 0 && (\r\n \r\n The following attachments will be removed:\r\n
    \r\n {currentPaxFormDetails[\r\n 'sector3Details'\r\n ].attachmentUris.map((a, i) => {\r\n if (deletedOriginalAttachmentIdx.has(i)) {\r\n return (\r\n
  • {a}
  • \r\n );\r\n }\r\n })}\r\n
\r\n \r\n )}\r\n\r\n \r\n\r\n {this.props.redemptionTransaction.refNo && (\r\n \r\n {'Reference No: ' +\r\n this.props.redemptionTransaction.refNo}\r\n \r\n )}\r\n\r\n {this.props.formDetailsList.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n {!editMode && (\r\n \r\n this.onClickNext()}\r\n >\r\n Next\r\n \r\n \r\n )}\r\n \r\n {this.props.formDetailsList.length === 0 && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n (this.individualETicket = instance)}\r\n editMode={editMode}\r\n editModeClass={classes.editMode}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n }\r\n label='Visiting SIN'\r\n />\r\n }\r\n label='Transiting'\r\n />\r\n }\r\n label='Traveling out of SIN'\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {this.flightNoOptions !== null && (\r\n \r\n \r\n \r\n Sector 1\r\n \r\n \r\n \r\n \r\n \r\n Sector 2\r\n \r\n \r\n\r\n \r\n\r\n {currentPaxFormDetails['sector2Details']\r\n .landSeaScootBool !== 'na' && (\r\n \r\n \r\n \r\n Land/Sea/Scoot booking ref\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentPaxFormDetails[\r\n 'sector2Details'\r\n ].attachmentUris.length > 0 && (\r\n \r\n \r\n {currentPaxFormDetails[\r\n 'sector2Details'\r\n ].attachmentUris.map(\r\n (a, i) => {\r\n return (\r\n \r\n \r\n {i +\r\n 1}\r\n .\r\n \r\n \r\n this.onAttachmentClick(\r\n currentPaxFormDetails[\r\n 'sector2Details'\r\n ]\r\n .attachmentUris[\r\n i\r\n ]\r\n )\r\n }\r\n className={\r\n classes.pointer\r\n }\r\n >\r\n {\r\n currentPaxFormDetails[\r\n 'sector2Details'\r\n ]\r\n .attachmentUris[\r\n i\r\n ]\r\n }\r\n \r\n \r\n {!deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n />\r\n )}\r\n {deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onUndoDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n />\r\n )}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {/* =======================================Sector 3 & 4============================================================ */}\r\n\r\n \r\n \r\n Sector 3\r\n \r\n \r\n\r\n \r\n\r\n {currentPaxFormDetails['sector3Details'] &&\r\n currentPaxFormDetails['sector3Details']\r\n .landSeaScootBool !== 'na' && (\r\n \r\n \r\n \r\n Land/Sea/Scoot booking\r\n ref\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentPaxFormDetails[\r\n 'sector3Details'\r\n ].attachmentUris.length > 0 && (\r\n \r\n \r\n {currentPaxFormDetails[\r\n 'sector3Details'\r\n ].attachmentUris.map(\r\n (a, i) => {\r\n return (\r\n \r\n \r\n {i +\r\n 1}\r\n\r\n .\r\n \r\n \r\n this.onAttachmentClick(\r\n currentPaxFormDetails[\r\n 'sector3Details'\r\n ]\r\n .attachmentUris[\r\n i\r\n ]\r\n )\r\n }\r\n className={\r\n classes.pointer\r\n }\r\n >\r\n {\r\n currentPaxFormDetails[\r\n 'sector3Details'\r\n ]\r\n .attachmentUris[\r\n i\r\n ]\r\n }\r\n \r\n \r\n {!deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n />\r\n )}\r\n {deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onUndoDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n />\r\n )}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Sector 4\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {editMode === false && (\r\n \r\n \r\n \r\n Clear\r\n \r\n \r\n \r\n \r\n \r\n this.addPax()}\r\n >\r\n Add Pax\r\n \r\n \r\n \r\n \r\n Save Draft\r\n \r\n \r\n \r\n \r\n this.onClickNext()\r\n }\r\n >\r\n {' '}\r\n Next\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {editMode === true && (\r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n this.onUpdate()}\r\n >\r\n Update\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n row: { display: 'flex', marginTop: 20 },\r\n rowItem: {\r\n display: 'flex',\r\n flex: 1,\r\n marginRight: 60,\r\n alignItems: 'center'\r\n },\r\n label: { flex: '2' },\r\n control: { flex: '3' },\r\n textfield: { width: '100%' },\r\n textfieldError: { height: 60, width: '100%' },\r\n tfWrap: { position: 'relative' },\r\n // editMode: {borderStyle: 'dashed', borderWidth: '2px', backgroundColor: blue[50]}\r\n editMode: {},\r\n listItemText: { flex: 'none' },\r\n pointer: { cursor: 'pointer' },\r\n markedDelete: { ...theme.deletedBackground }\r\n});\r\n\r\nconst mapStateToProps = function(state) {\r\n const stateClone = { ...state };\r\n const {\r\n flightDuck,\r\n individualFormDuck,\r\n campaignPeriodDuck,\r\n redemptionTransactionDuck\r\n } = stateClone;\r\n const {\r\n flightData,\r\n arrivalFlightNoList,\r\n departureFlightNoList,\r\n departureCityList,\r\n arrivalCityList,\r\n isFlightPopulated,\r\n arrivalSearchOptions,\r\n departureSearchOptions\r\n } = flightDuck;\r\n const { campaigns, getAllCampaignsIsLoading } = campaignPeriodDuck;\r\n const {\r\n individualFilesUploadIsLoading,\r\n uploadFileIsLoading,\r\n replacingFromDraft\r\n } = individualFormDuck;\r\n const {\r\n redemptionTransaction,\r\n createRedemptionTransactionIsLoading\r\n } = redemptionTransactionDuck;\r\n return {\r\n individualFormDuck,\r\n currentPaxFormDetails: individualFormDuck.currentPaxFormDetails,\r\n currentPaxPosition: individualFormDuck.currentPaxPosition,\r\n formDetailsList: individualFormDuck.formDetailsList,\r\n arrivalFlightNoList: arrivalFlightNoList,\r\n arrivalSearchOptions: arrivalSearchOptions,\r\n departureSearchOptions: departureSearchOptions,\r\n departureFlightNoList: departureFlightNoList,\r\n departureCityList,\r\n arrivalCityList,\r\n flightData,\r\n isFlightPopulated: isFlightPopulated,\r\n campaigns,\r\n getAllCampaignsIsLoading,\r\n individualFilesUploadIsLoading,\r\n uploadFileIsLoading,\r\n replacingFromDraft,\r\n redemptionTransaction,\r\n createRedemptionTransactionIsLoading,\r\n editMode: individualFormDuck.editMode\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n return {\r\n updateCurrentPaxFormDetails: details =>\r\n dispatch(updateCurrentPaxFormDetails(details)),\r\n updateCollectorPersonalDetails: flightData =>\r\n dispatch(updateCollectorPersonalDetails(flightData)),\r\n clearPaxDetails: () => dispatch(clearPaxDetails()),\r\n clearSector12: () => dispatch(clearSector12()),\r\n clearSector34: () => dispatch(clearSector34()),\r\n commitFormDetailsIntoList: () => dispatch(commitFormDetailsIntoList()),\r\n updateCurrentPaxCtpValue: (value, editMode) =>\r\n dispatch(updateCurrentPaxCtpValue(value, editMode)),\r\n deletePax: pax => dispatch(deletePax(pax)),\r\n restorePax: pax => dispatch(restorePax(pax)),\r\n getAllCampaigns: () => dispatch(getAllCampaigns()),\r\n uploadFile: (formData, type) => dispatch(uploadFile(formData, type)),\r\n createEmptyRedemptionTransaction: () =>\r\n dispatch(createEmptyRedemptionTransaction()),\r\n updateEntireIndividualForm: individualForm =>\r\n dispatch(updateEntireIndividualForm(individualForm)),\r\n updateRedemptionTransaction: redemptionTransaction =>\r\n dispatch(updateRedemptionTransaction(redemptionTransaction)),\r\n copyFormDetailsToCurrentPax: p =>\r\n dispatch(copyFormDetailsToCurrentPax(p)),\r\n cancelEditingPax: () => dispatch(cancelEditingPax()),\r\n individualFilesUpload: formData =>\r\n dispatch(individualFilesUpload(formData))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(IndividualFlightForm));\r\n","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst GET_FLIGHTS_IS_LOADING = 'GET_FLIGHTS_IS_LOADING'\r\nconst GET_FLIGHTS_SUCCESS = 'GET_FLIGHTS_SUCCESS'\r\nconst GET_FLIGHTS_FAIL = 'GET_FLIGHTS_FAIL'\r\nconst UPDATE_FLIGHTS = 'UPDATE_FLIGHTS'\r\n\r\nexport const FLIGHT_NO_KEY = 'flightNo'\r\nexport const DEPARTURE_CITY_NAME_KEY = 'departureCityName'\r\nexport const ARRIVAL_CITY_NAME_KEY = 'arrivalCityName'\r\n\r\nexport const ARRIVAL = 'ARRIVAL'\r\nexport const DEPARTURE = 'DEPARTURE'\r\n\r\nexport const getFlightsData = () => async dispatch => {\r\n\tdispatch(_getFlightsIsLoading())\r\n\tconst rs = await axios.get(baseURL + '/Flight/GetFlights', getCurrentAuthHeader()).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_getFlightsFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(\r\n\t\t\t_getFlightsSuccess(\r\n\t\t\t\trs.data.result.items.map((m, i) => {\r\n\t\t\t\t\tm.id = i\r\n\t\t\t\t\treturn m\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t)\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_getFlightsFail())\r\n\t\treturn { success: false, message: 'Flight data: ' + rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst _getFlightsIsLoading = () => ({\r\n\ttype: GET_FLIGHTS_IS_LOADING\r\n})\r\n\r\nconst _getFlightsSuccess = flightData => ({\r\n\ttype: GET_FLIGHTS_SUCCESS,\r\n\tflightData: flightData\r\n})\r\n\r\nconst _getFlightsFail = errorDetails => ({\r\n\ttype: GET_FLIGHTS_FAIL,\r\n\terrorDetails\r\n})\r\n\r\nexport const updateFlights = flightData => ({\r\n\ttype: UPDATE_FLIGHTS,\r\n\tflightData\r\n})\r\n\r\nconst initState = {\r\n\tgetFlightsIsLoading: false,\r\n\tflightData: [],\r\n\tarrivalSearchOptions: [],\r\n\tarrivalFlightNoList: [],\r\n\tdepartureSearchOptions: [],\r\n\tdepartureFlightNoList: [],\r\n\tdepartureCityList: [],\r\n\tarrivalCityList: [],\r\n\tisFlightPopulated: false\r\n}\r\n\r\nconst flightDuck = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase GET_FLIGHTS_IS_LOADING:\r\n\t\t\treturn { ...state, getFlightsIsLoading: true }\r\n\r\n\t\tcase GET_FLIGHTS_SUCCESS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tgetFlightsIsLoading: false,\r\n\t\t\t\tflightData: action.flightData,\r\n\t\t\t\tarrivalSearchOptions: _mapSearchOptions(action.flightData, ARRIVAL),\r\n\t\t\t\tdepartureSearchOptions: _mapSearchOptions(action.flightData, DEPARTURE),\r\n\t\t\t\tarrivalFlightNoList: _formatDataToOptionList(action.flightData, 'flightNo', ARRIVAL),\r\n\t\t\t\tdepartureFlightNoList: _formatDataToOptionList(action.flightData, 'flightNo', DEPARTURE),\r\n\t\t\t\tdepartureCityList: _formatDataToOptionList(action.flightData, 'arrivalCityName', DEPARTURE),\r\n\t\t\t\tarrivalCityList: _formatDataToOptionList(action.flightData, 'departureCityName', ARRIVAL),\r\n\t\t\t\tisFlightPopulated: true\r\n\t\t\t}\r\n\r\n\t\tcase GET_FLIGHTS_FAIL:\r\n\t\t\treturn { ...state, getFlightsIsLoading: false }\r\n\r\n\t\tcase UPDATE_FLIGHTS:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tflightData: action.flightData,\r\n\t\t\t\tarrivalSearchOptions: _mapSearchOptions(action.flightData, ARRIVAL),\r\n\t\t\t\tdepartureSearchOptions: _mapSearchOptions(action.flightData, DEPARTURE),\r\n\t\t\t\tarrivalFlightNoList: _formatDataToOptionList(action.flightData, 'flightNo', ARRIVAL),\r\n\t\t\t\tdepartureFlightNoList: _formatDataToOptionList(action.flightData, 'flightNo', DEPARTURE),\r\n\t\t\t\tdepartureCityList: _formatDataToOptionList(action.flightData, 'arrivalCityName', DEPARTURE),\r\n\t\t\t\tarrivalCityList: _formatDataToOptionList(action.flightData, 'departureCityName', ARRIVAL),\r\n\t\t\t\tisFlightPopulated: true\r\n\t\t\t}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nconst _mapSearchOptions = (flightData, type) => {\r\n\tconst sectionList = flightData.filter(m => (type === ARRIVAL ? m['arrivalCityName'] === 'Singapore' : m['departureCityName'] === 'Singapore'))\r\n\tlet set = new Set(sectionList.map(m => __formatSearchOption(m, type)))\r\n\r\n\tlet result = []\r\n\t// add default empty value\r\n\tresult.push({\r\n\t\tlabel: 'Select...',\r\n\t\tvalue: ''\r\n\t})\r\n\t// add flight data\r\n\tlet temp = [...set].sort().map(m => {\r\n\t\treturn { label: m, value: m }\r\n\t})\r\n\tresult = result.concat(temp)\r\n\t// return data\r\n\treturn result\r\n}\r\n\r\nconst __formatSearchOption = (item, type) => {\r\n\treturn type === ARRIVAL\r\n\t\t? `${item.flightNo} - ${item.departureCityName} - ${item.departurePortCode}`\r\n\t\t: `${item.flightNo} - ${item.arrivalCityName} - ${item.arrivalPortCode}`\r\n}\r\n\r\nconst _formatDataToOptionList = (flightData, key, type) => {\r\n\tlet list = []\r\n\tlet singaporeKey\r\n\tif (type === ARRIVAL) {\r\n\t\tsingaporeKey = 'arrivalCityName'\r\n\t} else {\r\n\t\tsingaporeKey = 'departureCityName'\r\n\t}\r\n\r\n\tfor (let i = 0; i < flightData.length; i++) {\r\n\t\tif (flightData[i][singaporeKey] === 'Singapore') {\r\n\t\t\tlet matchedFlight = list.find(item => item.value === flightData[i][key])\r\n\t\t\tif (!matchedFlight) list.push({ label: flightData[i][key], value: flightData[i][key] })\r\n\t\t}\r\n\t}\r\n\tlist.sort((a, b) => {\r\n\t\tif (a.value < b.value) {\r\n\t\t\treturn -1\r\n\t\t} else {\r\n\t\t\treturn 1\r\n\t\t}\r\n\t})\r\n\r\n\treturn list\r\n}\r\n\r\nexport default flightDuck\r\n","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Header from '../containers/Header.js'\r\nimport IndividualFlightForm from '../containers/individual/IndividualFlightForm.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport {getFlightsData, updateFlights} from '../ducks/flightDuck'\r\nimport {createEmptyRedemptionTransaction} from '../ducks/redemptionTransactionDuck'\r\nimport moment from 'moment'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\n\r\n// import AutosaveDraft from '../containers/AutosaveDraft'\r\n\r\nclass IndividualScreen extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n subsequentScanModalOpen: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Individual`\r\n\r\n let flightDataWithMetaStr = await localStorage.getItem('FLIGHT_DATA')\r\n let flightDataWithMeta = {}\r\n if (flightDataWithMetaStr) {\r\n flightDataWithMeta = JSON.parse(flightDataWithMetaStr)\r\n let today = moment().format('YYYY-MM-DD')\r\n if (flightDataWithMeta.flightData && flightDataWithMeta.dateCreated === today) {\r\n this.props.updateFlights(flightDataWithMeta.flightData)\r\n } else {\r\n const rs = await this.props.getFlightsData()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n } else {\r\n const rs = await this.props.getFlightsData()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate = async (prevProps) => {\r\n if (prevProps.flights !== this.props.flightData && this.props.flightData != null) {\r\n if (this.props.flightData.length > 0) {\r\n let today = moment().format('YYYY-MM-DD')\r\n let flightDataWithMeta = {\r\n dateCreated: today,\r\n flightData: this.props.flightData\r\n }\r\n let flightsDataWithMetaStr = JSON.stringify(flightDataWithMeta)\r\n localStorage.setItem('FLIGHT_DATA', flightsDataWithMetaStr)\r\n }\r\n }\r\n }\r\n\r\n closeSubsequentScanModal = () => {\r\n this.setState({subsequentScanModalOpen: false})\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {systemDataDuck, flightDuck, individualFormDuck} = state\r\n const {flightData} = flightDuck\r\n return {systemDataDuck, individualFormDuck, flightData}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getFlightsData: () => dispatch(getFlightsData()),\r\n updateFlights: (flights) => dispatch(updateFlights(flights)),\r\n createEmptyRedemptionTransaction: () => dispatch(createEmptyRedemptionTransaction())\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IndividualScreen)","\r\nexport const selectExistingCr = () => {\r\n let options = {\r\n isExistingCr: true,\r\n isExistingCrCard: true,\r\n isNewCollector: false,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: false,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\n\r\nexport const selectExistingCrPhysicalVoucher = (checked) => {\r\n let options = {\r\n isExistingCr: true,\r\n isExistingCrCard: !checked,\r\n isNewCollector: false,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: false,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectExistingCrPreloadedVouchersCard = () => {\r\n let options = {\r\n isExistingCr: true, //\r\n isExistingCrCard: false,\r\n isNewCollector: false,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: false,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectNewCollector = (pax) => {\r\n if (pax=== undefined) throw new Error(\"Please pass in pax to function\")\r\n\r\n let isSingleCard = pax <= 1\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: isSingleCard,\r\n isMultipleCtpCard: !isSingleCard,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n};\r\n\r\n\r\nexport const selectRegisterCr = (country) => {\r\n if(country === undefined) throw new Error(\"Please pass in country\")\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: true,\r\n isSingleCrCard: true,\r\n isCtp: false,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectIssueCtp = (pax) => {\r\n if (pax=== undefined) throw new Error(\"Please pass in pax to function\")\r\n\r\n let isSingleCard = pax <= 1\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: isSingleCard,\r\n isMultipleCtpCard: !isSingleCard,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectCtpSingleCard = (pax) => {\r\n if (pax=== undefined) throw new Error(\"Please pass in pax to function\")\r\n let isSingleCard = pax <= 1\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: isSingleCard,\r\n isMultipleCtpCard: !isSingleCard,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectCtpMultipleCards = () => {\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: true,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectCtpPhysicalVoucher = () => {\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: true,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectCtpDigitalCard = () => {\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: true,\r\n isCtpPreloadedVouchersCard: false,\r\n }\r\n return options;\r\n}\r\n\r\nexport const selectCtpPreloadedVouchersCard = () => {\r\n let options = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: true,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: true,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: true,\r\n }\r\n return options;\r\n}\r\n\r\n","/*\r\nconst SELECT_EXISTING_CR = 'SELECT_EXISTING_CR';\r\nconst SELECT_NEW_COLLECTOR = 'SELECT_NEW_COLLECTOR';\r\nconst SELECT_REGISTER_CR = 'SELECT_REGISTER_CR';\r\nconst SELECT_ISSUE_CTP = 'SELECT_ISSUE_CTP';\r\nconst SELECT_CTP_PHYSICAL_VOUCHER = 'SELECT_CTP_PHYSICAL_VOUCHER';\r\nconst SELECT_CTP_SINGLE_CARD = 'SELECT_CTP_SINGLE_CARD';\r\nconst SELECT_CTP_MULTIPLE_CARDS = 'SELECT_CTP_MULTIPLE_CARDS';\r\n*/\r\n\r\nconst UPDATE_INDIVIDUAL_COLLECTOR_OPTIONS = 'UPDATE_INDIVIDUAL_COLLECTOR_OPTIONS';\r\n\r\n\r\nexport const updateIndividualCollectorOptions = ({ isExistingCr, //1\r\n isExistingCrCard, //2\r\n isNewCollector, //1\r\n isRegisterCr, //2\r\n isSingleCrCard, //3\r\n isCtp, //2\r\n isSingleCtpCard, //3\r\n isMultipleCtpCard, //3\r\n isCtpPhysicalVoucher, //3\r\n isCtpDigitalCard, //3\r\n isCtpPreloadedVouchersCard, //3\r\n }) => {\r\n return ({\r\n type: UPDATE_INDIVIDUAL_COLLECTOR_OPTIONS,\r\n payload:{\r\n isExistingCr,\r\n isExistingCrCard,\r\n isNewCollector,\r\n isRegisterCr,\r\n isSingleCrCard,\r\n isCtp,\r\n isSingleCtpCard,\r\n isMultipleCtpCard,\r\n isCtpPhysicalVoucher,\r\n isCtpDigitalCard,\r\n isCtpPreloadedVouchersCard\r\n }\r\n\r\n });\r\n}\r\n\r\nconst initState = {\r\n isExistingCr: false,\r\n isExistingCrCard: false,\r\n isNewCollector: false,\r\n isRegisterCr: false,\r\n isSingleCrCard: false,\r\n isCtp: false,\r\n isSingleCtpCard: false,\r\n isMultipleCtpCard: false,\r\n isCtpPhysicalVoucher: false,\r\n isCtpDigitalCard: false,\r\n isCtpPreloadedVouchersCard: false,\r\n};\r\n\r\nconst individualCollectorOptionDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n case UPDATE_INDIVIDUAL_COLLECTOR_OPTIONS:\r\n let payload = action.payload;\r\n return {\r\n ...state,\r\n ...payload\r\n };\r\n\r\n\r\n default:\r\n return state\r\n }\r\n};\r\n\r\nexport default individualCollectorOptionDuck\r\n","const UPDATE_ALL_CONSENTS = 'UPDATE_ALL_CONSENTS';\r\n\r\nexport const updateAllConsents = ({collectionConsent, collectionConsentCso, marketingConsent, airlineConsent, additionalCrConsent}) => ({\r\n type: UPDATE_ALL_CONSENTS,\r\n collectionConsent,\r\n collectionConsentCso,\r\n marketingConsent,\r\n airlineConsent,\r\n additionalCrConsent\r\n})\r\n\r\nconst initState = {\r\n collectionConsent: 'testing',\r\n marketingConsent: 'testing',\r\n airlineConsent: 'testing',\r\n additionalCrConsent: 'testing'\r\n}\r\n\r\nconst consentDerivedDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n case UPDATE_ALL_CONSENTS:\r\n let {collectionConsent, collectionConsentCso, airlineConsent, marketingConsent, additionalCrConsent} = action;\r\n return { ...state, collectionConsent, collectionConsentCso, airlineConsent, marketingConsent, additionalCrConsent }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default consentDerivedDuck\r\n","import React, {PureComponent} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles, TextField} from '@material-ui/core'\r\nimport Select from 'react-select'\r\n\r\nfunction inputComponent({inputRef, ...props}) {\r\n return
\r\n}\r\n\r\nfunction Control(props) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst customStyles = {\r\n menu: (provided, state) => ({\r\n ...provided,\r\n zIndex: 2\r\n })\r\n}\r\n\r\nclass StyledSelect extends PureComponent {\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n input: {display: 'flex', padding: '.6rem .8rem'}\r\n})\r\n\r\nStyledSelect.propTypes = {\r\n value: PropTypes.object.isRequired,\r\n options: PropTypes.array.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n label: PropTypes.string\r\n}\r\n\r\nexport default withStyles(styles)(StyledSelect)","class CardRangeHelper {\r\n\tconstructor({ rangeString, prefix, noOfDigits }) {\r\n\t\tthis.rangeString = rangeString\r\n\t\tthis.prefix = prefix || ''\r\n\t\tthis.noOfDigits = noOfDigits\r\n\t\tthis.calculatedFinalDigits = 0\r\n\t\tthis.dataPrepared = false\r\n\t}\r\n\r\n\tprepareData = () => {\r\n\t\tthis.dataPrepared = true\r\n\t\tlet numberTokenList = []\r\n\t\tlet formattedRangeList = this.rangeString.split(/[-,]/)\r\n\r\n\t\tfor (let i = 0; i < formattedRangeList.length; i++) {\r\n\t\t\tlet numberToken = formattedRangeList[i].trim()\r\n\r\n\t\t\t// check the digits are the same.\r\n\t\t\tif (this.calculatedFinalDigits !== 0) {\r\n\t\t\t\tif (this.calculatedFinalDigits !== numberToken.length) return { success: false, message: 'Please ensure the digits are consistent' }\r\n\t\t\t}\r\n\t\t\tthis.calculatedFinalDigits = numberToken.length\r\n\r\n\t\t\t// check the digits are in ascending order\r\n\t\t\tif (parseInt(numberTokenList[numberTokenList.length - 1]) >= parseInt(numberToken))\r\n\t\t\t\treturn { success: false, message: 'Please that the numbers are in ascending order' }\r\n\r\n\t\t\tnumberTokenList.push(numberToken)\r\n\t\t}\r\n\r\n\t\treturn { success: true, message: 'Success' }\r\n\t}\r\n\r\n\tgenerateRange = () => {\r\n\t\tif (!this.dataPrepared) throw new Error('Please prepareData before generating Range')\r\n\t\tlet numGrpArr = this.rangeString.split(',')\r\n\t\tlet finalArr = []\r\n\r\n\t\tnumGrpArr.forEach(numGrp => {\r\n\t\t\tif (numGrp.indexOf('-') > -1) {\r\n\t\t\t\tlet formattedNumArr = this._generateFromDash(numGrp)\r\n\t\t\t\tfinalArr = finalArr.concat(formattedNumArr)\r\n\t\t\t} else {\r\n\t\t\t\tlet formattedNum = this.prefix + this._appendZeroUntilFinalRangeDigit(parseInt(numGrp).toString())\r\n\t\t\t\tfinalArr.push(formattedNum)\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn finalArr\r\n\t}\r\n\r\n\t_generateFromDash = rangeString => {\r\n\t\tlet rangeStartEndStr = rangeString.split('-')\r\n\t\tlet rangeStartEndNumber = rangeStartEndStr.map(x => parseInt(x))\r\n\t\tlet rangeSize = rangeStartEndNumber[1] - rangeStartEndNumber[0] + 1\r\n\t\tlet numArr = []\r\n\t\tfor (let i = 0; i < rangeSize; i++) {\r\n\t\t\tlet finalDigits = rangeStartEndNumber[0] + i\r\n\t\t\tfinalDigits = this._appendZeroUntilFinalRangeDigit(finalDigits.toString())\r\n\t\t\tlet fullDigits = this.prefix + finalDigits\r\n\t\t\tnumArr.push(fullDigits)\r\n\t\t}\r\n\t\treturn numArr\r\n\t}\r\n\r\n\t_appendZeroUntilFinalRangeDigit = numberString => {\r\n\t\tlet noOfFinalDigits = 0\r\n\r\n\t\tif (this.noOfDigits) {\r\n\t\t\tnoOfFinalDigits = this.noOfDigits - this.prefix.length\r\n\t\t} else {\r\n\t\t\tnoOfFinalDigits = this.calculatedFinalDigits\r\n\t\t}\r\n\t\tlet newNumberString = numberString\r\n\t\twhile (newNumberString.length < noOfFinalDigits) {\r\n\t\t\tnewNumberString = '0' + newNumberString\r\n\t\t}\r\n\t\treturn newNumberString\r\n\t}\r\n}\r\n\r\nexport default CardRangeHelper\r\n","\r\n\r\nexport const MEMBER_TYPE_REGISTER_CR = \"MEMBER_TYPE_REGISTER_CR\";\r\nexport const MEMBER_TYPE_EXISTING_CR = \"MEMBER_TYPE_EXISTING_CR\";\r\nexport const MEMBER_TYPE_NO_CR = \"MEMBER_TYPE_NO_CR\";\r\n\r\nexport const generateCollectorDetailsMemberFlags = (memberType, country) => {\r\n let memberFlagContainer = {}\r\n if (memberType === MEMBER_TYPE_EXISTING_CR) {\r\n memberFlagContainer.existingCr = true;\r\n memberFlagContainer.registerCr = false;\r\n\r\n } else if (memberType === MEMBER_TYPE_REGISTER_CR) {\r\n memberFlagContainer.existingCr = false;\r\n memberFlagContainer.registerCr = true;\r\n\r\n } else if(memberType === MEMBER_TYPE_NO_CR){\r\n memberFlagContainer.existingCr = false;\r\n memberFlagContainer.registerCr = false;\r\n }\r\n\r\n return memberFlagContainer\r\n}\r\n","import {getSettings} from \"../config/config.js\"\r\n\r\nexport const urlData = {\r\n ctpTncUrl: \"http://www.changiairport.com/ctp/tnc\",\r\n crTncUrl: \"https://login.changiairport.com/static/login/files/terms_and_conditions_en.html\",\r\n crtTncUrl: \"https://www.changirewardstravel.com/en/Terms-And-Conditions.aspx\",\r\n cagPpUrl: \"https://www.changiairport.com/en/privacy-policy.html\",\r\n crPpUrl: \"https://www.changirewards.com/privacy-policy.aspx\",\r\n};\r\n\r\nlet settings = getSettings()\r\nlet voucherCurrency = settings.voucher_currency\r\n// 2 way transit\r\nlet ctpVoucher = settings.voucher_sources.find(s => s.membership_type == \"CTP\")\r\nlet ctpGenVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == \"GEN\")\r\nlet ctpLpcVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == \"LPC\")\r\nlet crVoucher = settings.voucher_sources.find(s => s.membership_type == \"CR\")\r\nlet crGenVoucher = crVoucher.vouchers.find(s => s.voucher_type == \"GEN\")\r\nlet crLpcVoucher = crVoucher.vouchers.find(s => s.voucher_type == \"LPC\")\r\nexport const voucherData = {\r\n ctpGenVoucherValue: ctpGenVoucher.voucher_value,\r\n ctpLpcVoucherValue: ctpLpcVoucher.voucher_value,\r\n crGenVoucherValue: crGenVoucher.voucher_value,\r\n crLpcVoucherValue: crLpcVoucher.voucher_value\r\n}\r\n\r\nexport const templateData = {\r\n lpcSubMessage: ` and |numberVoucherIssuanced| CTP LPC eVoucher(s) for Liquor, Perfumes and Cosmetics purchases only`,\r\n\r\n groupAdditionalCrAgreement: `By submitting this form to register for the Changi Rewards programme, Iagree to the |crTncUrl| and consent to receiving communications about the benefits and entitlements of the Changi\r\nRewards programme from time to time. I hereby give CAG permission to use my personal data for the purpose of the Changi Rewards programme, in accordance with and subject to our |crPpUrl|.`,\r\n\r\n airlineConsent: `Please note that the information you provide may be used to verify the relevant itinerary with participating airlines and to improve the products and services we offer to you.`,\r\n\r\n airlineGroupConsent: `Please note that the information you provide may be used to verify the relevant itinerary with participating airlines and to improve the products and services we offer to you (the “Relevant Purpose”).`,\r\n\r\n marketingConsent: `Yes, I want to be the first to know! Send me news about exclusive deals, benefits and other promotions from the CAG Group and its business partners by text message.`,\r\n\r\n crRegistrationAgreement: `By submitting this form,\r\n

• I agree to the Changi Transit Privileges |crTncUrl|, CAG's |cagPpUrl| and consent to the creation of my Changi Account.\r\n

• I have received a total of |numberVoucherIssuanced| CTP generic eVoucher(s)|lpcMessage|.`,\r\n\r\n ctpIndividualCollectionAgreement: `By submitting this form,\r\n

• I agree to the Changi Transit Privileges |ctpTncUrl|, CAG's |cagPpUrl|\r\n

• I have received a total of |numberVoucherIssuanced| Changi eVoucher(s)|lpcMessage|.`,\r\n\r\n ctpFamilyCollectionAgreementMessage: `By clicking “Submit”:\r\n

• I agree to CAG's |ctpTncUrl| and |cagPpUrl|.\r\n

• I declare that I have obtained the consent of each individual in my group/family to provide his/her personal data and flight details to CAG for the Relevant Purpose.\r\n

• I declare that I am authorized to collect the transit rewards on behalf of my group/family.\r\n

• I have received of a total of |numberVoucherIssuanced| Changi eVoucher(s)|lpcMessage|.`,\r\n\r\n ctpFamilyCollectionAgreementMessageForCso: `By clicking “Submit”:\r\n

• I declare that I have confirmed that the collector has given consent for CAG to use his/her personal data for the Relevant Purpose.\r\n

• I am issuing out a total of |numberVoucherIssuanced| Changi eVoucher(s).`,\r\n\r\n ctpFamilyWithCrtCollectionAgreementMessage: `By clicking “Submit”:\r\n

• I agree to CAG's |crTncUrl| and |cagPpUrl| and consent to the creation of my Changi Account.\r\n

• I declare that I have obtained the consent of each individual in my group/family to provide his/her personal data and flight details to CAG for the Relevant Purpose.\r\n

• I declare that I am authorized to collect the transit rewards on behalf of my group/family.\r\n

• I have received of a total of |numberVoucherIssuanced| CTP generic Voucher(s)|lpcMessage|.`,\r\n\r\n ctpGroupCollectionAgreementMessage: `By submitting this form,\r\n

• I agree to the Changi Transit Privileges |ctpTncUrl|, CAG's |cagPpUrl|\r\n

• I declare that I have obtained the consent of each individual in my group to provide his/her personal data and flight details to CAG for the Relevant Purpose.\r\n

• I declare that I am authorized to collect the transit rewards on behalf of my group/family.\r\n

• I have received a total of |numberVoucherIssuanced| CTP generic Voucher(s)|lpcMessage| and i will distribute the transit rewards to the individual(s) stated in the table.`,\r\n\r\n numberVoucherIssuanced: `|noOfCards| x S|ctpVoucherCurrency||ctpVoucherValue|`\r\n};\r\n\r\n\r\nexport const groupAdditionalGroupCrAgreement = ({message, urlData}) => {\r\n let formattedMessage = message;\r\n formattedMessage = injectUrlLinksIntoMessage({agreementMessage: formattedMessage, urlData: urlData});\r\n\r\n return formattedMessage;\r\n}\r\n\r\nexport const generateCollectionAgreementMessage = ({agreementMessage, voucherDataCollected, templateData, urlData}) => {\r\n let formattedMessage = agreementMessage;\r\n formattedMessage = injectUrlLinksIntoMessage({agreementMessage: formattedMessage, urlData: urlData});\r\n let numberVoucherIssuancedMessage = ''\r\n let lpcSubMessage = ''\r\n // inject lpc number of voucher\r\n if (voucherDataCollected.totalCtpLpcValue && voucherDataCollected.totalCtpLpcValue > 0) {\r\n numberVoucherIssuancedMessage = genNumberVoucherIssuanced({\r\n agreementMessage: templateData.numberVoucherIssuanced,\r\n totalCtpValue: voucherDataCollected.totalCtpLpcValue,\r\n ctpVoucherValue: voucherData.ctpLpcVoucherValue\r\n });\r\n }\r\n\r\n if (numberVoucherIssuancedMessage.length > 0) {\r\n // inject number of vouchre into lpc sub message\r\n lpcSubMessage = templateData.lpcSubMessage\r\n lpcSubMessage = injectNumberOfVoucher({\r\n agreementMessage: lpcSubMessage,\r\n numberVoucherIssuanced: numberVoucherIssuancedMessage\r\n });\r\n }\r\n\r\n // inject lpc sub message into fomatted message\r\n formattedMessage = injectLcpMessage({\r\n agreementMessage: formattedMessage,\r\n lpcSubMessage: lpcSubMessage\r\n });\r\n\r\n // inject gen number of voucher\r\n // reset numberVoucherIssuancedMessage\r\n numberVoucherIssuancedMessage = ''\r\n if (voucherDataCollected.totalCtpGenValue && voucherDataCollected.totalCtpGenValue > 0) {\r\n numberVoucherIssuancedMessage = genNumberVoucherIssuanced({\r\n agreementMessage: templateData.numberVoucherIssuanced,\r\n totalCtpValue: voucherDataCollected.totalCtpGenValue,\r\n ctpVoucherValue: voucherData.ctpGenVoucherValue\r\n });\r\n }\r\n\r\n // inject number of vouchre into fomatted message\r\n formattedMessage = injectNumberOfVoucher({\r\n agreementMessage: formattedMessage,\r\n numberVoucherIssuanced: numberVoucherIssuancedMessage\r\n });\r\n\r\n // inject currency\r\n formattedMessage = formattedMessage.replace(/\\|ctpVoucherCurrency\\|/gi, voucherCurrency)\r\n\r\n return formattedMessage;\r\n}\r\n\r\nconst injectNumberOfVoucher = ({agreementMessage, numberVoucherIssuanced }) => {\r\n let formattedAgreementMessage = agreementMessage;\r\n\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|numberVoucherIssuanced\\|/gi, numberVoucherIssuanced)\r\n\r\n return formattedAgreementMessage;\r\n}\r\n\r\nconst genNumberVoucherIssuanced = ({agreementMessage, totalCtpValue, ctpVoucherValue}) => {\r\n let numberVoucherIssuancedMessage = agreementMessage\r\n\r\n numberVoucherIssuancedMessage = injectValue({\r\n agreementMessage: numberVoucherIssuancedMessage,\r\n totalCtpValue: totalCtpValue,\r\n ctpVoucherValue: ctpVoucherValue\r\n });\r\n\r\n numberVoucherIssuancedMessage = injectNoOfCard({\r\n agreementMessage: numberVoucherIssuancedMessage,\r\n totalCtpValue: totalCtpValue,\r\n ctpVoucherValue: ctpVoucherValue\r\n });\r\n\r\n return numberVoucherIssuancedMessage\r\n}\r\n\r\nconst injectNoOfCard = ({agreementMessage, totalCtpValue, ctpVoucherValue }) => {\r\n let formattedAgreementMessage = agreementMessage;\r\n\r\n if(totalCtpValue && totalCtpValue > 0){\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|noOfCards\\|/gi, totalCtpValue/ctpVoucherValue)\r\n } else {\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|noOfCards\\|/gi, 0)\r\n }\r\n\r\n return formattedAgreementMessage;\r\n}\r\n\r\nconst injectValue = ({agreementMessage, totalCtpValue, ctpVoucherValue}) => {\r\n\r\n let formattedAgreementMessage = agreementMessage;\r\n\r\n if(totalCtpValue && totalCtpValue > 0){\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|ctpVoucherValue\\|/gi, ctpVoucherValue)\r\n } else {\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|ctpVoucherValue\\|/gi, 0)\r\n }\r\n\r\n return formattedAgreementMessage;\r\n}\r\n\r\nconst injectLcpMessage = ({agreementMessage, lpcSubMessage}) => {\r\n let formattedAgreementMessage = agreementMessage;\r\n\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|lpcMessage\\|/gi, lpcSubMessage)\r\n\r\n return formattedAgreementMessage;\r\n}\r\n\r\n\r\nconst injectUrlLinksIntoMessage = ({agreementMessage, urlData}) => {\r\n let formattedAgreementMessage = agreementMessage;\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|ctpTncUrl\\|/gi, urlLinkTemplate(urlData.ctpTncUrl, \"Terms and Conditions\"))\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|crTncUrl\\|/gi, urlLinkTemplate(urlData.crTncUrl, \"Terms and Conditions\"))\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|crtTncUrl\\|/gi, urlLinkTemplate(urlData.crtTncUrl, \"Terms and Conditions\"))\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|cagPpUrl\\|/gi, urlLinkTemplate(urlData.cagPpUrl, \"Privacy Policy\"))\r\n formattedAgreementMessage = formattedAgreementMessage.replace(/\\|crPpUrl\\|/gi, urlLinkTemplate(urlData.crPpUrl, \"Privacy Policy\"))\r\n\r\n return formattedAgreementMessage;\r\n}\r\n\r\nconst urlLinkTemplate = (url, displayMessage) => {\r\n let template = `\r\n ${displayMessage}\r\n `\r\n return template\r\n}","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n updateAllConsents\r\n} from \"../../ducks/derivedDucks/consentDerivedDuck\";\r\nimport {generateCollectionAgreementMessage, templateData, urlData} from \"../../constants/consentMessages\";\r\n\r\nclass ConsentDerivedDuckContainer extends React.Component {\r\n\r\n componentDidMount() {\r\n this.updateConsent();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if(prevProps.formDetailsList !== this.props.formDetailsList ||\r\n prevProps.collectorDetails !== this.props.collectorDetails ||\r\n prevProps.individualCollectorOptionDuck.isExistingCr !== this.props.individualCollectorOptionDuck.isExistingCr ||\r\n prevProps.individualCollectorOptionDuck.isExistingCrCard !== this.props.individualCollectorOptionDuck.isExistingCrCard ||\r\n prevProps.individualCollectorOptionDuck.isRegisterCr !== this.props.individualCollectorOptionDuck.isRegisterCr ||\r\n prevProps.individualCollectorOptionDuck.isSingleCrCard !== this.props.individualCollectorOptionDuck.isSingleCrCard ||\r\n prevProps.individualCollectorOptionDuck.isCtp !== this.props.individualCollectorOptionDuck.isCtp ||\r\n prevProps.individualCollectorOptionDuck.isSingleCtpCard !== this.props.individualCollectorOptionDuck.isSingleCtpCard ||\r\n prevProps.individualCollectorOptionDuck.isMultipleCtpCard !== this.props.individualCollectorOptionDuck.isMultipleCtpCard ||\r\n prevProps.individualCollectorOptionDuck.isCtpPhysicalVoucher !== this.props.individualCollectorOptionDuck.isCtpPhysicalVoucher\r\n\r\n ){\r\n this.updateConsent();\r\n }\r\n }\r\n\r\n updateConsent(){\r\n const {individualCollectorOptionDuck} = this.props\r\n let singleCard = individualCollectorOptionDuck.isExistingCrCard || individualCollectorOptionDuck.isSingleCrCard || individualCollectorOptionDuck.isSingleCtpCard\r\n\r\n let voucherData = this._getOverallVoucherData(this.props.formDetailsList);\r\n\r\n let consentData = this._buildConsentMessages({\r\n voucherData: voucherData,\r\n individualCollectorOptionDuck: this.props.individualCollectorOptionDuck})\r\n\r\n this.props.updateAllConsents({\r\n collectionConsent: consentData.collectionConsent,\r\n collectionConsentCso: consentData.collectionConsentCso,\r\n airlineConsent: consentData.airlineConsent,\r\n marketingConsent: consentData.marketingConsent\r\n })\r\n }\r\n\r\n _getOverallVoucherData(passengers){\r\n let overallVoucherData = {\r\n totalCtpGenValue: 0,\r\n totalCtpLpcValue: 0,\r\n undeletedPax: 0,\r\n };\r\n\r\n for (const p of passengers) {\r\n if (!p.isDeleted) {\r\n // 2 wat transit\r\n overallVoucherData.totalCtpGenValue = parseInt(overallVoucherData.totalCtpGenValue) + parseInt(p.ctpGenValue)\r\n overallVoucherData.totalCtpLpcValue = parseInt(overallVoucherData.totalCtpLpcValue) + parseInt(p.ctpLpcValue)\r\n overallVoucherData.undeletedPax++\r\n }\r\n }\r\n return overallVoucherData\r\n }\r\n\r\n _buildConsentMessages = ({ voucherData, individualCollectorOptionDuck }) => {\r\n let collectionConsent, collectionConsentCso, marketingConsent, airlineConsent;\r\n airlineConsent = voucherData.undeletedPax > 1 ? templateData.airlineGroupConsent : templateData.airlineConsent;\r\n marketingConsent = templateData.marketingConsent;\r\n\r\n if (individualCollectorOptionDuck.isRegisterCr && voucherData.undeletedPax < 2) {\r\n collectionConsent = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.crRegistrationAgreement,\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n }\r\n else if (!individualCollectorOptionDuck.isRegisterCr && voucherData.undeletedPax < 2) {\r\n collectionConsent = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.ctpIndividualCollectionAgreement,\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n }\r\n else if (individualCollectorOptionDuck.isCtp && !individualCollectorOptionDuck.isRegisterCr && voucherData.undeletedPax > 1) {\r\n collectionConsent = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.ctpFamilyCollectionAgreementMessage, //Case 2\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n collectionConsentCso = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.ctpFamilyCollectionAgreementMessageForCso, //Case 2\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n }\r\n else if (!individualCollectorOptionDuck.isCtp && voucherData.undeletedPax > 1 && voucherData.undeletedPax < 9) {\r\n collectionConsent = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.ctpFamilyWithCrtCollectionAgreementMessage,\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n }\r\n else {\r\n collectionConsent = generateCollectionAgreementMessage({\r\n agreementMessage: templateData.ctpGroupCollectionAgreementMessage,\r\n voucherDataCollected: voucherData,\r\n templateData: templateData,\r\n urlData: urlData\r\n })\r\n }\r\n\r\n let consentData = { airlineConsent, marketingConsent, collectionConsent, collectionConsentCso}\r\n return consentData\r\n\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = function (state) {\r\n const stateClone = {...state}\r\n const individualFormDuck = stateClone.individualFormDuck\r\n const individualCollectorOptionDuck = stateClone.individualCollectorOptionDuck\r\n return {\r\n formDetailsList: individualFormDuck.formDetailsList,\r\n collectorDetails: individualFormDuck.collectorDetails,\r\n individualFormDuck,\r\n individualCollectorOptionDuck\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {\r\n updateAllConsents: ({collectionConsent, collectionConsentCso, marketingConsent, airlineConsent, additionalCrConsent}) => dispatch(updateAllConsents({collectionConsent, collectionConsentCso, marketingConsent, airlineConsent, additionalCrConsent}))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConsentDerivedDuckContainer)","\r\nexport const generateBatches = ({items, batchSize}) => {\r\n let batchList = []\r\n let batchCount = Math.ceil(items.length / batchSize);\r\n\r\n for(let i=0; i {\r\n let passengers = [];\r\n formsDetailList.forEach(form => {\r\n if (!form.isDeleted) {\r\n let passenger = {};\r\n passenger.eTicket1 = form.eTicketsDetails.eTicket1;\r\n passenger.origin = form.personalDetails.origin;\r\n passengers.push(passenger);\r\n }\r\n });\r\n let numberOfSector = formsDetailList[0].numberOfSector;\r\n const rs = await axios\r\n .post(\r\n baseURL + '/Passenger/CalculatePassengersVouchers',\r\n {\r\n passengers: passengers,\r\n isCr: isCr,\r\n numberOfSector: numberOfSector,\r\n isPreloadedVoucher: isPreloadedVoucher,\r\n campaignCode: formsDetailList[0].eTicketsDetails.campaignCode\r\n },\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!e.response)\r\n return { success: false, message: 'cannot connect' };\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { success: false, message: message };\r\n }\r\n return {\r\n success: false,\r\n message: e.response.status + ' Unexpected error'\r\n };\r\n });\r\n if (!rs.data) {\r\n return { success: false, message: rs.message };\r\n }\r\n if (!rs.data.success) {\r\n return { success: false, message: 'unexpected error' };\r\n } else {\r\n }\r\n var formattedFormsDetailList = [].concat(formsDetailList);\r\n var passengersWithVouchers = rs.data.result.items;\r\n formattedFormsDetailList.forEach(p => {\r\n var matchedPassenger = passengersWithVouchers.find(\r\n pwv => pwv.eTicket1 === p.eTicketsDetails.eTicket1\r\n );\r\n if (matchedPassenger) {\r\n p.ctpGenValue = matchedPassenger.ctpGenValue;\r\n p.ctpLpcValue = matchedPassenger.ctpLpcValue;\r\n p.ctpVoucherValue = matchedPassenger.ctpVoucherValue;\r\n }\r\n });\r\n return { success: true, passengers: formattedFormsDetailList };\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n withStyles,\r\n Grid,\r\n Button,\r\n TextField,\r\n Typography,\r\n RadioGroup,\r\n FormLabel,\r\n FormControlLabel,\r\n FormControl,\r\n FormHelperText,\r\n Checkbox,\r\n Radio,\r\n Divider\r\n} from '@material-ui/core';\r\nimport Countries from '../../data/countriesCRM';\r\nimport CallingCodes from '../../data/callingCodesCRM';\r\nimport { FlightTransferOptions } from '../../dummy/flightTransferOptions';\r\nimport {\r\n dataURItoBlob,\r\n getCurrentAuthHeader,\r\n trueFalseToYesNo,\r\n myaxios,\r\n parseFullCardNo\r\n} from '../../helpers/utilities';\r\nimport {\r\n updateCollectorDetails,\r\n updateIndividualFormDuck\r\n} from '../../ducks/individualFormDuck';\r\nimport {\r\n submitIndividualForm,\r\n memberSearch,\r\n clearFormDetailsList,\r\n uploadFile,\r\n updateFormDetailsList\r\n} from '../../ducks/individualFormDuck';\r\nimport {\r\n selectExistingCr,\r\n selectExistingCrPhysicalVoucher,\r\n selectRegisterCr,\r\n selectIssueCtp,\r\n selectCtpDigitalCard,\r\n selectCtpPreloadedVouchersCard,\r\n selectExistingCrPreloadedVouchersCard\r\n} from '../../helpers/individualCollectorOptionHelper';\r\nimport { updateIndividualCollectorOptions } from '../../ducks/individualCollectorOptionDuck';\r\nimport { updateAllConsents } from '../../ducks/derivedDucks/consentDerivedDuck';\r\nimport StyledSelect from '../../components/StyledSelect';\r\nimport { labelToObject } from '../../helpers/reactSelectHelper';\r\nimport { isEqual } from 'lodash';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport moment from 'moment';\r\nimport CardRangeHelper from '../../helpers/cardRangeHelper';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport {\r\n NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG,\r\n NOT_ALL_PAX_ASSIGNED_GEN_ERROR_MSG,\r\n NOT_ALL_PAX_ASSIGNED_LPC_ERROR_MSG\r\n} from '../../constants/messages';\r\nimport Spacing from '../../components/Spacing';\r\nimport {\r\n CARD_NO_OF_DIGITS,\r\n CR_CARD_PREFIX,\r\n CTP_CARD_PREFIX\r\n} from '../../constants/cardConstants';\r\nimport {\r\n MEMBER_TYPE_REGISTER_CR,\r\n MEMBER_TYPE_EXISTING_CR,\r\n MEMBER_TYPE_NO_CR\r\n} from './helper/collectorPersonalDetailsHelper';\r\nimport ConsentDerivedDuckContainer from '../derivedDuckContainers/consentDerivedDuckContainer';\r\nimport { calculatePassengersVouchers } from '../../repos/calculatePassengersVouchers';\r\n\r\nclass CollectorPersonalDetails extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n existingCrError: '',\r\n registerCrError: '',\r\n nameError: '',\r\n surnameError: '',\r\n dobError: '',\r\n callingCodeError: '',\r\n mobileNoTempError: '',\r\n contactNo: '',\r\n contactNoError: '',\r\n consentError: '',\r\n countryError: '',\r\n emailHelperText: '',\r\n emailError: false,\r\n cardNoError: '',\r\n mobileNoTemp: '',\r\n callingCode: '',\r\n consent: false,\r\n cardNo: '',\r\n email: '',\r\n maxDob: '',\r\n validated: false,\r\n validateCount: 0,\r\n totalCtpGenValue: 0, //remove\r\n totalCtpLpcValue: 0, //remove\r\n undeletedPax: 0, //remove\r\n isEmailValid: false,\r\n cardPrefix: '0000400000000',\r\n cardRangeTo: '',\r\n cardRangeFrom: '',\r\n genCardPrefix: '',\r\n genCardRangeFrom: '',\r\n genCardRangeTo: '',\r\n lpcCardPrefix: '',\r\n lpcCardRangeTo: '',\r\n lpcCardRangeFrom: '',\r\n ocidExists: false,\r\n campaignCodes: [],\r\n cardAssignment: 'non-member',\r\n submitType: 'PASSENGER_ACKNOWLEDGEMENT'\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n individualFormDuck: { collectorDetails, formDetailsList }\r\n } = this.props;\r\n\r\n // set the collector options for cso\r\n if (this.props.parentView === 'conciergeView') {\r\n let pax = formDetailsList.filter(p => !p.isDeleted).length;\r\n let collectorOptions = selectIssueCtp(pax);\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n }\r\n\r\n if (collectorDetails.dob === '') {\r\n const maxDob = moment()\r\n .subtract(2, 'years')\r\n .format('YYYY-MM-DD');\r\n this.setState({ maxDob });\r\n }\r\n\r\n if (\r\n collectorDetails.country !== '' ||\r\n collectorDetails.country !== undefined\r\n ) {\r\n const {\r\n individualFormDuck: { collectorDetails }\r\n } = this.props;\r\n collectorDetails.countryCode = this._updateCallingCode(\r\n collectorDetails.country\r\n );\r\n this.props.updateCollectorDetails(collectorDetails);\r\n }\r\n\r\n collectorDetails.clientSignatureBase64 = '';\r\n collectorDetails.csoSignatureBase64 = '';\r\n this.props.updateCollectorDetails(collectorDetails);\r\n this.props.updateIndividualCollectorOptions(selectCtpDigitalCard());\r\n }\r\n\r\n async componentDidUpdate(prevProps, prevState) {\r\n if (\r\n prevProps.overrideExistingCrOptions !==\r\n this.props.overrideExistingCrOptions\r\n ) {\r\n if (this.props.overrideExistingCrOptions) {\r\n let collectorOptions = selectExistingCr();\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n }\r\n }\r\n // set the collector options\r\n if (\r\n prevProps.individualFormDuck.formDetailsList.length !==\r\n this.props.individualFormDuck.formDetailsList.length\r\n ) {\r\n let pax = this.props.individualFormDuck.formDetailsList.filter(\r\n p => !p.isDeleted\r\n ).length;\r\n let collectorOptions = selectIssueCtp(pax);\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n }\r\n\r\n if (prevProps.formState !== this.props.formState) {\r\n if (!isEqual(this.props.formState, this.state)) {\r\n this.setState({ ...this.props.formState });\r\n }\r\n }\r\n if (prevProps.parentDidSubmit !== this.props.parentDidSubmit) {\r\n if (this.props.parentDidSubmit === true) this.onParentDidSubmit();\r\n }\r\n if (prevProps.parentDidDone !== this.props.parentDidDone) {\r\n if (this.props.parentDidDone === true) this.onParentDidDone();\r\n }\r\n\r\n if (prevState.validateCount !== this.state.validateCount) {\r\n if (this.props.childIsValidated) {\r\n if (this.state.validated) {\r\n this.props.childIsValidated({ ...this.state });\r\n }\r\n this.props.resetParentDone({ ...this.state });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.individualFormDuck.collectorDetails.countryCode !==\r\n this.props.individualFormDuck.collectorDetails.countryCode\r\n ) {\r\n this.setState({\r\n callingCode: this.props.individualFormDuck.collectorDetails\r\n .countryCode\r\n });\r\n }\r\n\r\n if (\r\n prevProps.individualFormDuck.collectorDetails.country !==\r\n this.props.individualFormDuck.collectorDetails.country\r\n ) {\r\n this._updateCallingCode(\r\n this.props.individualFormDuck.collectorDetails.country\r\n );\r\n }\r\n\r\n if (\r\n prevProps.individualFormDuck.uploadFileIsLoading === true &&\r\n this.props.individualFormDuck.uploadFileIsLoading === false\r\n ) {\r\n // if there's a signature Uri, proceed to submit form\r\n if (\r\n this.props.individualFormDuck.collectorDetails.signatureUri !==\r\n ''\r\n ) {\r\n const rs = await this.props.submitIndividualForm({\r\n form: this.props.individualFormDuck,\r\n redemptionTransactionId: this.props.redemptionTransaction\r\n .id,\r\n collectionConsent:\r\n this.state.submitType === 'PASSENGER_ACKNOWLEDGEMENT'\r\n ? this.props.consentDerivedDuck.collectionConsent\r\n : this.props.consentDerivedDuck\r\n .collectionConsentCso,\r\n marketingConsent: this.props.consentDerivedDuck\r\n .marketingConsent,\r\n airlineConsent: this.props.consentDerivedDuck\r\n .airlineConsent,\r\n additionalCrConsent: this.props.consentDerivedDuck\r\n .additionalCrConsent,\r\n registerCr: this.props.individualCollectorOptionDuck\r\n .isRegisterCr,\r\n existingCr: this.props.individualCollectorOptionDuck\r\n .isExistingCr,\r\n isDigitalCard:\r\n this.props.individualCollectorOptionDuck\r\n .isCtpDigitalCard ||\r\n this.props.individualCollectorOptionDuck.isExistingCr,\r\n isPreloadedVouchersCard:\r\n this.props.individualCollectorOptionDuck\r\n .isCtpPreloadedVouchersCard,\r\n issuePhysicalVoucherToCr: this.props.individualFormDuck\r\n .issuePhysicalVoucherToCr\r\n });\r\n if (rs.success) {\r\n // No need to send auditLogs on first request\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: 'Form submitted',\r\n snackbarVariant: 'success',\r\n parentDidSumit: false\r\n });\r\n //this.props.clearFormDetailsList();\r\n setTimeout(\r\n () =>\r\n this.props.history.push(\r\n '/individual-collector-success'\r\n ),\r\n 2000\r\n );\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error',\r\n parentDidSumit: false\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n _updateCallingCode = country => {\r\n const callingCode = CallingCodes.find(c => c.country === country);\r\n if (callingCode) {\r\n this.setState({ callingCode: callingCode.label });\r\n return callingCode.label;\r\n }\r\n };\r\n\r\n onCollectorPersonalDetailsChange = async (k, e) => {\r\n let collectorDetails = {\r\n ...this.props.individualFormDuck.collectorDetails\r\n };\r\n let collectorOptions = { ...this.props.individualCollectorOptionDuck };\r\n\r\n const formState = this.state;\r\n\r\n if (\r\n k === 'callingCode' ||\r\n k === 'country' ||\r\n k === 'frequencyOfTravelInPastYear'\r\n ) {\r\n // process select fields differently\r\n if (k === 'callingCode') {\r\n this.setState({ callingCode: e.label });\r\n collectorDetails.countryCode = e.label;\r\n collectorDetails.mobileNo =\r\n e.label + '-' + this.state.mobileNoTemp;\r\n const country = CallingCodes.find(c => c.label === e.label);\r\n if (country) collectorDetails.country = country.country;\r\n } else if (k === 'country') {\r\n collectorDetails.countryCode = this._updateCallingCode(e.label);\r\n collectorDetails.country = e.label;\r\n } else if (k === 'frequencyOfTravelInPastYear') {\r\n collectorDetails.frequencyOfTravelInPastYear = e.label;\r\n }\r\n\r\n if (collectorOptions.isRegisterCr) {\r\n let collectorOptions = selectRegisterCr(\r\n collectorDetails.country\r\n );\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n }\r\n\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n collectorOptions\r\n });\r\n return this.props.updateCollectorDetails(collectorDetails);\r\n }\r\n\r\n if (k === 'existingCr' || k === 'registerCr') {\r\n let memberType = '';\r\n // process radio fields differently\r\n if (k === 'existingCr' && e.target.value === 'yes') {\r\n memberType = MEMBER_TYPE_EXISTING_CR;\r\n collectorOptions = selectExistingCr();\r\n } else if (k === 'registerCr' && e.target.value === 'yes') {\r\n memberType = MEMBER_TYPE_REGISTER_CR;\r\n collectorOptions = selectRegisterCr(collectorDetails.country);\r\n } else if (k === 'registerCr' && e.target.value !== 'yes') {\r\n memberType = MEMBER_TYPE_NO_CR;\r\n let pax = this.props.individualFormDuck.formDetailsList.filter(\r\n p => !p.isDeleted\r\n ).length;\r\n collectorOptions = selectIssueCtp(pax);\r\n } else {\r\n memberType = MEMBER_TYPE_NO_CR;\r\n let pax = this.props.individualFormDuck.formDetailsList.filter(\r\n p => !p.isDeleted\r\n ).length;\r\n collectorOptions = selectIssueCtp(pax);\r\n }\r\n\r\n // if either value is yes, then dob limit is 16 yo, else 2 yo\r\n if (\r\n collectorOptions.isExistingCr ||\r\n collectorOptions.isRegisterCr\r\n ) {\r\n this.setState({\r\n maxDob: moment()\r\n .subtract(16, 'years')\r\n .format('YYYY-MM-DD')\r\n });\r\n } else {\r\n maxDob: moment()\r\n .subtract(2, 'years')\r\n .format('YYYY-MM-DD');\r\n }\r\n\r\n let getPassengersVouchersResponse = await calculatePassengersVouchers(\r\n {\r\n formsDetailList: this.props.individualFormDuck\r\n .formDetailsList,\r\n isCr:\r\n collectorOptions.isExistingCr ||\r\n collectorOptions.isRegisterCr,\r\n isPreloadedVoucher:\r\n this.props.individualCollectorOptionDuck\r\n .isCtpPreloadedVouchersCard\r\n }\r\n );\r\n\r\n if (!getPassengersVouchersResponse.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: 'Cannot retrieve vouchers',\r\n snackbarVariant: 'error'\r\n });\r\n return;\r\n }\r\n\r\n let formattedPassengersWithVouchers =\r\n getPassengersVouchersResponse.passengers;\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n formDetailsList: formattedPassengersWithVouchers,\r\n collectorOptions\r\n });\r\n\r\n this.props.updateFormDetailsList(formattedPassengersWithVouchers);\r\n this.props.updateCollectorDetails(collectorDetails);\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n\r\n return;\r\n }\r\n\r\n if (k === 'cardNo') {\r\n let cardNo = e.target.value.substr(0, 19);\r\n collectorDetails[k] = cardNo;\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n collectorOptions\r\n });\r\n this.props.updateCollectorDetails(collectorDetails);\r\n let clonedPassengers = [].concat(\r\n this.props.individualFormDuck.formDetailsList\r\n );\r\n clonedPassengers.forEach(p => {\r\n if (!p.isDeleted) p.cardNo = cardNo;\r\n });\r\n this.props.updateFormDetailsList(clonedPassengers);\r\n return;\r\n }\r\n\r\n if (k === 'contactNo') {\r\n this.setState({ contactNo: e.target.value });\r\n collectorDetails[k] = e.target.value;\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n collectorOptions\r\n });\r\n this.props.updateCollectorDetails(collectorDetails);\r\n }\r\n\r\n collectorDetails[k] = e.target.value;\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n collectorOptions\r\n });\r\n this.props.updateCollectorDetails(collectorDetails);\r\n };\r\n\r\n onParentDidDone = async () => {\r\n // triggers componentDidUpdate\r\n this._validate();\r\n };\r\n\r\n onParentDidSubmit = async () => {\r\n if (await this._validate()) {\r\n const { individualFormDuck } = this.props;\r\n\r\n if (\r\n individualFormDuck.collectorDetails.clientSignatureBase64 ===\r\n '' &&\r\n individualFormDuck.collectorDetails.csoSignatureBase64 === ''\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Signature is required to continue'\r\n });\r\n this.resetParentSubmit();\r\n return false;\r\n }\r\n\r\n let blob = new Blob();\r\n if (\r\n individualFormDuck.collectorDetails.clientSignatureBase64 !== ''\r\n ) {\r\n blob = dataURItoBlob(\r\n individualFormDuck.collectorDetails.clientSignatureBase64\r\n );\r\n } else {\r\n blob = dataURItoBlob(\r\n individualFormDuck.collectorDetails.csoSignatureBase64\r\n );\r\n }\r\n const formData = new FormData();\r\n formData.append('file', blob);\r\n let rs = await this.props.uploadFile(formData, 'signature');\r\n if (rs.success) {\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error',\r\n parentDidSumit: false\r\n });\r\n this.resetParentSubmit();\r\n\r\n return false;\r\n }\r\n }\r\n this.resetParentSubmit();\r\n };\r\n\r\n _validateCardNo = (cardNo, type = '') => {\r\n if (!cardNo) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'No Card Number was found'\r\n });\r\n return false;\r\n }\r\n\r\n const prefix = cardNo.substr(0, 5);\r\n\r\n if (/[^0-9]/g.test(cardNo)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Card no. only accepts digits'\r\n });\r\n return false;\r\n }\r\n\r\n // if (\r\n // this.props.individualCollectorOptionDuck.isCtpPhysicalVoucher &&\r\n // this.props.individualFormDuck.collectorDetails\r\n // .issuePhysicalVoucherToCr\r\n // ) {\r\n // if (prefix !== CR_CARD_PREFIX) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `CR prefix should be ${CR_CARD_PREFIX}`\r\n // });\r\n // return false;\r\n // }\r\n // }\r\n\r\n if (this.props.individualCollectorOptionDuck.isExistingCr) {\r\n // if (prefix !== CR_CARD_PREFIX) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `CR prefix should be ${CR_CARD_PREFIX}`\r\n // });\r\n // return false;\r\n // }\r\n if (cardNo.length !== 19) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `CR card length should be 19 digits`\r\n });\r\n return false;\r\n }\r\n }\r\n if (this.props.individualCollectorOptionDuck.isSingleCtpCard) {\r\n if (prefix !== CTP_CARD_PREFIX) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `CTP prefix should be ${CTP_CARD_PREFIX}`\r\n });\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n _collectorDetailsValidation = async () => {};\r\n\r\n _validate = async () => {\r\n const {\r\n collectorDetails,\r\n formDetailsList\r\n } = this.props.individualFormDuck;\r\n const { individualCollectorOptionDuck } = this.props;\r\n\r\n const errMsg = 'This field is required';\r\n let rs = true;\r\n\r\n if (individualCollectorOptionDuck.isRegisterCr) {\r\n if (\r\n collectorDetails['contactNo'].length < 5 ||\r\n collectorDetails['contactNo'].length > 12\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `Mobile Number length must be minimum of 5 and maximum of 12`\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if (collectorDetails.contactNo) {\r\n const pattern = individualCollectorOptionDuck.isExistingCr\r\n ? /[^+A-Za-z0-9]/g\r\n : /[^A-Za-z0-9]/g;\r\n if (pattern.test(collectorDetails.contactNo)) {\r\n //if it doesn't contain only digits\r\n this.setState({\r\n contactNoError:\r\n 'This field only accept numbers and characters'\r\n });\r\n rs = false;\r\n } else {\r\n this.setState({ contactNoError: '' });\r\n }\r\n } else {\r\n this.setState({ contactNoError: '' });\r\n }\r\n\r\n // if either registerCr or existingCR is yes, then dob limit is 16 yo, else 2 yo\r\n let dob = moment(collectorDetails.dob);\r\n\r\n if (\r\n individualCollectorOptionDuck.isExistingCr ||\r\n individualCollectorOptionDuck.isRegisterCr\r\n ) {\r\n if (dob.isAfter(moment().subtract(16, 'years'))) {\r\n this.setState({\r\n dobError: 'Date of birth must be at least 16 years'\r\n });\r\n rs = false;\r\n } else {\r\n this.setState({ dobError: '' });\r\n }\r\n // if registerCr or existingCr is yes, then check CR card prefix\r\n const {\r\n individualFormDuck: {\r\n collectorDetails: { cardNo }\r\n }\r\n } = this.props;\r\n\r\n if (individualCollectorOptionDuck.isExistingCr) {\r\n if (\r\n this.props.parentView === 'conciergeView' &&\r\n !this._validateCardNo(cardNo)\r\n ) {\r\n return;\r\n }\r\n }\r\n } else {\r\n if (dob.isAfter(moment().subtract(2, 'years'))) {\r\n this.setState({\r\n dobError: 'Date of birth must be at least 2 years'\r\n });\r\n rs = false;\r\n } else {\r\n this.setState({ dobError: '' });\r\n }\r\n // if not registerCr or existingCr is no, then check CTP card prefix\r\n const {\r\n individualFormDuck: {\r\n collectorDetails: { cardNo }\r\n }\r\n } = this.props;\r\n // if (\r\n // this.props.parentView === 'conciergeView' &&\r\n // this.props.individualCollectorOptionDuck.isSingleCtpCard &&\r\n // !this._validateCardNo(cardNo)\r\n // ) {\r\n // return;\r\n // }\r\n }\r\n\r\n this.setState({\r\n validated: rs,\r\n validateCount: this.state.validateCount++\r\n });\r\n if (!rs) return rs;\r\n\r\n const requiredFields = ['name', 'surname', 'dob', 'country'];\r\n\r\n if (this.props.parentView === 'conciergeView') {\r\n if (this.props.individualCollectorOptionDuck.isMultipleCtpCard) {\r\n let eligibleCardPassengers = formDetailsList.filter(\r\n p => !p.isDeleted\r\n );\r\n\r\n const unassigned = eligibleCardPassengers.filter(\r\n p => !!!p.cardNo\r\n );\r\n if (unassigned.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG\r\n });\r\n return;\r\n }\r\n\r\n let wrongPrefixPassengers = eligibleCardPassengers.filter(\r\n p => p.cardNo.substring(0, 5) !== CTP_CARD_PREFIX\r\n );\r\n if (wrongPrefixPassengers.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please input correct ctp card no'\r\n });\r\n return;\r\n }\r\n\r\n let cardNoSet = new Set();\r\n eligibleCardPassengers.forEach(p => cardNoSet.add(p.cardNo));\r\n if (cardNoSet.size !== eligibleCardPassengers.length) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Duplicated Card No Detected'\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (\r\n this.props.individualCollectorOptionDuck\r\n .isCtpPreloadedVouchersCard\r\n ) {\r\n let eligibleCardPassengers = formDetailsList.filter(\r\n p => !p.isDeleted\r\n );\r\n\r\n const unassigned = eligibleCardPassengers.filter(\r\n p => !!!p.preloadedVouchersCardNo\r\n );\r\n if (unassigned.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG\r\n });\r\n return;\r\n }\r\n\r\n let wrongPrefixPassengers = eligibleCardPassengers.filter(\r\n p =>\r\n p.preloadedVouchersCardNo.substring(0, 5) !==\r\n CTP_CARD_PREFIX\r\n );\r\n if (wrongPrefixPassengers.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please input correct ctp card no'\r\n });\r\n return;\r\n }\r\n\r\n let cardNoSet = new Set();\r\n eligibleCardPassengers.forEach(p =>\r\n cardNoSet.add(p.preloadedVouchersCardNo)\r\n );\r\n if (cardNoSet.size !== eligibleCardPassengers.length) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Duplicated Card No Detected'\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (this.props.individualCollectorOptionDuck.isCtpPhysicalVoucher) {\r\n let eligiblePhysicalPassengers = formDetailsList.filter(\r\n p => !p.isDeleted\r\n );\r\n\r\n const unassigned = eligiblePhysicalPassengers.filter(\r\n p => p.genPhysicalVoucherNo === ''\r\n );\r\n if (unassigned.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_GEN_ERROR_MSG\r\n });\r\n return;\r\n }\r\n\r\n const unassignedLPC = eligiblePhysicalPassengers.filter(\r\n p => p.lpcPhysicalVoucherNo === '' && p.ctpLpcValue > 0\r\n );\r\n if (unassignedLPC.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_LPC_ERROR_MSG\r\n });\r\n return;\r\n }\r\n\r\n let physicalNoSet = new Set();\r\n eligiblePhysicalPassengers.forEach(p =>\r\n physicalNoSet.add(p.genPhysicalVoucherNo)\r\n );\r\n if (physicalNoSet.size !== eligiblePhysicalPassengers.length) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Duplicated Physical Voucher Detected'\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // if (\r\n // this.props.parentView === 'conciergeView' &&\r\n // (!individualCollectorOptionDuck.isRegisterCr &&\r\n // !individualCollectorOptionDuck.isCtpDigitalCard)\r\n // ) {\r\n // const isAssignedNo = formDetailsList.some(\r\n // p =>\r\n // !p.cardNo &&\r\n // !p.genPhysicalVoucherNo &&\r\n // !p.preloadedVouchersCardNo &&\r\n // !p.isDeleted\r\n // );\r\n // if (isAssignedNo) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage:\r\n // 'Please enter card or physical voucher number for all passengers'\r\n // });\r\n // return;\r\n // }\r\n // }\r\n\r\n requiredFields.forEach(k => {\r\n const sk = k + 'Error';\r\n if (collectorDetails[k] === '' || collectorDetails[k] === null) {\r\n rs = false;\r\n this.setState({ [sk]: errMsg });\r\n } else {\r\n this.setState({ [sk]: '' });\r\n }\r\n });\r\n\r\n if (\r\n (collectorDetails['email'] === '' ||\r\n collectorDetails['email'] === null) &&\r\n (individualCollectorOptionDuck.isRegisterCr ||\r\n collectorDetails.allowReceivingInfo)\r\n ) {\r\n rs = false;\r\n this.setState({ emailHelperText: errMsg, emailError: true });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Email Address is required'\r\n });\r\n } else {\r\n this.setState({ emailHelperText: '', emailError: false });\r\n }\r\n\r\n // if email is not empty then validate it\r\n if (collectorDetails.email !== '') {\r\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/i.test(collectorDetails.email)) {\r\n this.setState({\r\n emailHelperText: 'Email is invalid',\r\n emailError: true\r\n });\r\n return false;\r\n } else {\r\n const rs = await this.onEmailBlur(collectorDetails.email);\r\n\r\n if (!rs) {\r\n return false;\r\n } else {\r\n this.setState({ emailHelperText: '', emailError: false });\r\n }\r\n }\r\n }\r\n\r\n const requiredFields2 = ['callingCode', 'contactNo'];\r\n\r\n requiredFields2.forEach(k => {\r\n const sk = k + 'Error';\r\n\r\n if (\r\n (collectorDetails[k] === '' || collectorDetails[k] === null) &&\r\n individualCollectorOptionDuck.isRegisterCr\r\n ) {\r\n rs = false;\r\n this.setState({ [sk]: errMsg });\r\n } else {\r\n this.setState({ [sk]: '' });\r\n }\r\n });\r\n\r\n this.setState({\r\n validated: rs,\r\n validateCount: this.state.validateCount++\r\n });\r\n if (!rs) return false;\r\n return rs;\r\n };\r\n\r\n onVerifyCRCard = async () => {\r\n const { cardNo } = this.state;\r\n if (!cardNo) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `Please enter CR Card No`\r\n });\r\n return;\r\n }\r\n\r\n if (!this._validateCardNo(cardNo)) return;\r\n\r\n // const prefix = cardNo.substr(0, 5);\r\n // if (prefix !== CR_CARD_PREFIX) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: `CR prefix should be ${CR_CARD_PREFIX}`\r\n // });\r\n // return;\r\n // }\r\n const rs = await this.props.memberSearch('cardNo', this.state.cardNo);\r\n if (rs.success) {\r\n let clonedPassengers = this.props.individualFormDuck.formDetailsList.map(\r\n m => {\r\n m.cardNo = this.state.cardNo;\r\n return m;\r\n }\r\n );\r\n this.props.updateFormDetailsList(clonedPassengers);\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Verified'\r\n });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage:\r\n rs.message !== '' ? rs.message : 'Unexpected error'\r\n });\r\n }\r\n };\r\n\r\n _promptErrorMessage = message => {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: message\r\n });\r\n };\r\n\r\n onVerifyEmail = async () => {\r\n const { email } = this.state;\r\n let newFormDetailsList = [\r\n ...this.props.individualFormDuck.formDetailsList\r\n ];\r\n if (!email) {\r\n this._promptErrorMessage('Please enter email address');\r\n return;\r\n }\r\n const rs = await this.props.memberSearch('email', email);\r\n if (rs.success) {\r\n // try {\r\n // let rs2 = await myaxios(\r\n // 'post',\r\n // '/Member/CheckOcidEmailExist',\r\n // { email: email },\r\n // getCurrentAuthHeader()\r\n // );\r\n // if (rs2.data && rs2.data.result === true) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'success',\r\n // snackbarMessage: 'Verified'\r\n // });\r\n // let isExistCardNo = newFormDetailsList.some(p => !p.cardNo);\r\n // if (isExistCardNo) {\r\n // let newCollectorDetail = this.props.individualFormDuck\r\n // .collectorDetails;\r\n // newFormDetailsList.forEach(e => {\r\n // e.cardNo = newCollectorDetail.cardNo;\r\n // });\r\n // }\r\n // } else {\r\n // this._promptErrorMessage(\r\n // 'Cannot credit into CR account, no OCID account exists'\r\n // );\r\n // }\r\n // } catch (e) {\r\n // this._promptErrorMessage(\r\n // 'Cannot credit into CR account, no OCID account exists'\r\n // );\r\n // }\r\n } else {\r\n let errMessage = !!rs.message\r\n ? rs.message\r\n : 'Error checking CR account';\r\n this._promptErrorMessage(errMessage);\r\n }\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onConsent = () => {\r\n let collectorDetails = {\r\n ...this.props.individualFormDuck.collectorDetails\r\n };\r\n collectorDetails.allowReceivingInfo = !this.state.consent;\r\n this.props.updateCollectorDetails(collectorDetails);\r\n this.setState({ consent: !this.state.consent }, () => {\r\n const formState = this.state;\r\n this.props.sendMessage({\r\n collectorDetails,\r\n formState,\r\n collectorOptions: null\r\n });\r\n });\r\n };\r\n\r\n resetParentSubmit = () => {\r\n // reset parent submit so it can submit again\r\n this.props.resetParentSubmit();\r\n };\r\n\r\n onVerifyCRChange = e => {\r\n let cardNo = e.target.value;\r\n let formattedCardNo = cardNo.substr(0, 19);\r\n this.setState({ cardNo: formattedCardNo });\r\n };\r\n\r\n onVerifyEmailChange = e => {\r\n this.setState({ email: e.target.value });\r\n };\r\n\r\n onEmailBlur = async v => {\r\n this.setState({\r\n isEmailValid: false,\r\n emailHelperText: '',\r\n emailError: false,\r\n ocidExists: false\r\n });\r\n if (!this.props.individualCollectorOptionDuck.isRegisterCr) return true; //only continue checking if registering CR\r\n\r\n if (v === '') return false;\r\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/i.test(v)) {\r\n this.setState({\r\n isEmailValid: false,\r\n emailHelperText: 'Invalid Email Address',\r\n emailError: true\r\n });\r\n return false;\r\n }\r\n let masterReturn = false;\r\n\r\n const data = { email: v };\r\n //const experianEmailCheck = myaxios('post', '/Account/ExperianEmailVerification', data, getCurrentAuthHeader())\r\n // const ocidExistingEmailCheck = myaxios(\r\n // 'post',\r\n // '/Member/CheckOcidEmailExist',\r\n // data,\r\n // getCurrentAuthHeader()\r\n // );\r\n const doesMemberExist = myaxios(\r\n 'get',\r\n '/IndividualPassenger/MemberSearch',\r\n { params: { email: data.email }, ...getCurrentAuthHeader() }\r\n );\r\n\r\n await Promise.all([\r\n // ocidExistingEmailCheck,\r\n doesMemberExist /*experianEmailCheck */\r\n ]).then(responses => {\r\n let ocidExistingEmailResult = responses[0];\r\n let memberExistingEmailResult = responses[1];\r\n //let experianValidEmailResult = responses[2];\r\n\r\n if (memberExistingEmailResult.success) {\r\n this.setState({\r\n isEmailValid: false,\r\n emailHelperText: 'Email exist in CR',\r\n emailError: true\r\n });\r\n masterReturn = false;\r\n return;\r\n }\r\n\r\n /* //todo:syd uncomment this if experianEmail check is required.\r\n if(!experianValidEmailResult.success){\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: experianValidEmailResult.message})\r\n masterReturn = false;\r\n return;\r\n } else {\r\n if(experianValidEmailResult.data && !experianValidEmailResult.data.result){\r\n this.setState({isEmailValid: false, emailHelperText: 'Not a valid email', emailError:true})\r\n masterReturn = false;\r\n return;\r\n }\r\n }\r\n */\r\n\r\n if (!ocidExistingEmailResult.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: ocidExistingEmailResult.message\r\n });\r\n masterReturn = false;\r\n return;\r\n } else {\r\n if (\r\n ocidExistingEmailResult.data &&\r\n ocidExistingEmailResult.data.result\r\n ) {\r\n this.setState({\r\n isEmailValid: false,\r\n emailHelperText: 'Email exist in OCID',\r\n emailError: true,\r\n ocidExists: true\r\n });\r\n masterReturn = false;\r\n return;\r\n }\r\n }\r\n this.setState({\r\n isEmailValid: true,\r\n emailHelperText: 'Valid Email',\r\n emailError: false\r\n });\r\n masterReturn = true;\r\n });\r\n\r\n return masterReturn;\r\n };\r\n\r\n _doesMemberExist = async email => {\r\n const data = { params: { email }, ...getCurrentAuthHeader() };\r\n return await myaxios('get', '/IndividualPassenger/MemberSearch', data);\r\n };\r\n\r\n onCardPrefixChange = e => {\r\n this.setState({ cardPrefix: e.target.value });\r\n };\r\n\r\n onCardRangeFromChange = e => {\r\n this.setState({ cardRangeFrom: parseFullCardNo(e.target.value) });\r\n };\r\n\r\n onCardRangeToChange = e => {\r\n const { cardRangeFrom } = this.state;\r\n this.setState({ cardRangeTo: parseFullCardNo(e.target.value) });\r\n if (cardRangeFrom) {\r\n this.setState({ cardRange: cardRangeFrom + '-' + e.target.value });\r\n }\r\n };\r\n\r\n onAssign = () => {\r\n const {\r\n cardRangeFrom,\r\n cardRangeTo,\r\n cardPrefix,\r\n genCardRangeFrom,\r\n genCardRangeTo,\r\n lpcCardRangeFrom,\r\n lpcCardRangeTo,\r\n genCardPrefix,\r\n lpcCardPrefix\r\n } = this.state;\r\n\r\n const {\r\n individualFormDuck: { formDetailsList }\r\n } = this.props;\r\n const { individualCollectorOptionDuck } = this.props;\r\n\r\n let updatedPassengers = cloneDeep(formDetailsList);\r\n if (\r\n individualCollectorOptionDuck.isMultipleCtpCard ||\r\n individualCollectorOptionDuck.isCtpPreloadedVouchersCard\r\n ) {\r\n let formattedCardRangeTo = cardRangeTo\r\n ? cardRangeTo\r\n : cardRangeFrom;\r\n\r\n if (\r\n cardRangeFrom === '' ||\r\n /[a-zA-Z]/.test(cardRangeFrom) ||\r\n /[a-zA-Z]/.test(formattedCardRangeTo)\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please enter a valid card range'\r\n });\r\n return;\r\n }\r\n let cardRange = cardRangeFrom + '-' + formattedCardRangeTo;\r\n\r\n let cardRangeHelper = new CardRangeHelper({\r\n rangeString: cardRange,\r\n prefix: cardPrefix,\r\n noOfDigits: CARD_NO_OF_DIGITS\r\n });\r\n cardRangeHelper.prepareData();\r\n let cards = cardRangeHelper.generateRange();\r\n for (let i = 0; i < updatedPassengers.length; i++) {\r\n if (individualCollectorOptionDuck.isMultipleCtpCard) {\r\n if (!updatedPassengers[i].isDeleted)\r\n updatedPassengers[i].cardNo = cards.shift();\r\n } else if (\r\n individualCollectorOptionDuck.isCtpPreloadedVouchersCard\r\n ) {\r\n if (!updatedPassengers[i].isDeleted)\r\n updatedPassengers[\r\n i\r\n ].preloadedVouchersCardNo = cards.shift();\r\n }\r\n }\r\n }\r\n\r\n if (\r\n individualCollectorOptionDuck.isCtpPhysicalVoucher\r\n ) {\r\n if (\r\n genCardRangeFrom === '' ||\r\n /[a-zA-Z]/.test(genCardRangeFrom) ||\r\n genCardRangeTo === '' ||\r\n /[a-zA-Z]/.test(genCardRangeTo)\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please enter a valid card range'\r\n });\r\n return;\r\n }\r\n let genCardRange = genCardRangeFrom + '-' + genCardRangeTo;\r\n\r\n let cardRangeHelper = new CardRangeHelper({\r\n rangeString: genCardRange,\r\n prefix: genCardPrefix\r\n });\r\n cardRangeHelper.prepareData();\r\n let cards = cardRangeHelper.generateRange();\r\n for (let i = 0; i < updatedPassengers.length; i++) {\r\n if (cards.length === 0) break;\r\n if (!updatedPassengers[i].isDeleted)\r\n updatedPassengers[i].genPhysicalVoucherNo = cards.shift();\r\n }\r\n\r\n if (!lpcCardRangeFrom) {\r\n for (let i = 0; i < updatedPassengers.length; i++) {\r\n if (updatedPassengers[i].ctpLpcValue !== 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please enter LPC vouchers'\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (lpcCardRangeTo !== '') {\r\n if (\r\n (lpcCardRangeTo !== '' &&\r\n /[a-zA-Z]/.test(lpcCardRangeTo)) ||\r\n (lpcCardRangeFrom !== '' &&\r\n /[a-zA-Z]/.test(lpcCardRangeFrom))\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please enter a valid card range'\r\n });\r\n return;\r\n }\r\n let lpcCardRange = lpcCardRangeFrom + '-' + lpcCardRangeTo;\r\n let cardRangeHelper2 = new CardRangeHelper({\r\n rangeString: lpcCardRange,\r\n prefix: lpcCardPrefix\r\n });\r\n cardRangeHelper2.prepareData();\r\n let cards2 = cardRangeHelper2.generateRange();\r\n for (let i = 0; i < updatedPassengers.length; i++) {\r\n if (cards2.length === 0) break;\r\n if (\r\n !updatedPassengers[i].isDeleted &&\r\n updatedPassengers[i].ctpLpcValue !== 0\r\n )\r\n updatedPassengers[\r\n i\r\n ].lpcPhysicalVoucherNo = cards2.shift();\r\n }\r\n }\r\n }\r\n this.props.sendMessage({\r\n collectorDetails: this.props.individualFormDuck.collectorDetails,\r\n formDetailsList: updatedPassengers,\r\n formState: this.state,\r\n collectorOptions: null\r\n });\r\n\r\n this.props.updateFormDetailsList(updatedPassengers);\r\n };\r\n\r\n _emptyCardNoAndPhysicalVoucher = individualFormDuck => {\r\n let individualFormDuckClone = { ...individualFormDuck };\r\n let collectorDetailsClone = {\r\n ...individualFormDuckClone.collectorDetails\r\n };\r\n let formDetailsListClone = [].concat(\r\n individualFormDuckClone.formDetailsList\r\n );\r\n\r\n collectorDetailsClone.cardNo = '';\r\n\r\n formDetailsListClone.forEach(passenger => {\r\n passenger.cardNo = '';\r\n passenger.preloadedVouchersCardNo = '';\r\n passenger.genPhysicalVoucherNo = '';\r\n passenger.lpcPhysicalVoucherNo = '';\r\n passenger.physicalVoucherIssued = false;\r\n });\r\n\r\n individualFormDuckClone.collectorDetails = collectorDetailsClone;\r\n individualFormDuckClone.formDetailsList = formDetailsListClone;\r\n return individualFormDuckClone;\r\n };\r\n\r\n toggleExistingCrPhysicalVoucher = existingCrPhysicalVoucher => {\r\n let intention = !existingCrPhysicalVoucher;\r\n let collectorOptions = selectExistingCrPhysicalVoucher(intention);\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n };\r\n\r\n toggleExistingCrPreloadedVouchersCard = existingCrPreloadedVouchersCard => {\r\n let intention = !existingCrPreloadedVouchersCard;\r\n let collectorOptions = selectExistingCrPreloadedVouchersCard(intention);\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n };\r\n\r\n onSubmitTypeChange = e => {\r\n this.setState({ submitType: e.target.value });\r\n };\r\n\r\n onCardAssignmentChange = (e, memberType) => {\r\n let individualFormDuckClone = this._emptyCardNoAndPhysicalVoucher(\r\n this.props.individualFormDuck\r\n );\r\n let collectorOptions;\r\n\r\n switch (e.target.value) {\r\n case 'non-member':\r\n collectorOptions = selectCtpDigitalCard();\r\n break;\r\n case 'preloaded-card':\r\n collectorOptions = selectCtpPreloadedVouchersCard();\r\n break;\r\n default:\r\n console.log('invalid card type');\r\n }\r\n if (this.props.parentView !== 'clientView') {\r\n //client view do not update card assignment\r\n this.props.sendMessage({\r\n collectorDetails: individualFormDuckClone.collectorDetails,\r\n formDetailsList: individualFormDuckClone.formDetailsList,\r\n formState: this.state,\r\n collectorOptions\r\n });\r\n }\r\n this.props.updateIndividualCollectorOptions(collectorOptions);\r\n this.props.updateIndividualFormDuck(individualFormDuckClone);\r\n this.setState({ cardAssignment: e.target.value });\r\n };\r\n\r\n onGenCardPrefixChange = e => {\r\n this.setState({ genCardPrefix: e.target.value });\r\n };\r\n\r\n onlpcCardPrefixChange = e => {\r\n this.setState({ lpcCardPrefix: e.target.value });\r\n };\r\n\r\n onGenCardRangeFromChange = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ genCardRangeFrom: numericValue });\r\n };\r\n\r\n onGenCardRangeToChange = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ genCardRangeTo: numericValue });\r\n };\r\n\r\n onLpcCardRangeFromChange = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ lpcCardRangeFrom: numericValue });\r\n };\r\n\r\n onLpcCardRangeToChange = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ lpcCardRangeTo: numericValue });\r\n };\r\n\r\n onOcidLinkClick = e => {\r\n e.preventDefault(); //prevent link from redirecting\r\n e.nativeEvent.stopImmediatePropagation();\r\n this.props.sendOpenOcidWindow();\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n consentDerivedDuck,\r\n individualCollectorOptionDuck\r\n } = this.props;\r\n const {\r\n collectorDetails,\r\n formDetailsList\r\n } = this.props.individualFormDuck;\r\n const { ocidExists } = this.state;\r\n\r\n const {\r\n cardPrefix,\r\n cardRangeFrom,\r\n cardRangeTo\r\n } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Are you a CR member?*\r\n \r\n \r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'existingCr',\r\n e\r\n )\r\n }\r\n className={classes.radioGroup}\r\n >\r\n }\r\n label={'Yes'}\r\n />\r\n }\r\n label={'No'}\r\n />\r\n \r\n\r\n \r\n {this.state.existingCrError}\r\n \r\n \r\n \r\n {individualCollectorOptionDuck.isExistingCr === true && (\r\n \r\n \r\n \r\n \r\n Verify your CR card or email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Verify\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Verify\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {individualCollectorOptionDuck.isNewCollector && (\r\n \r\n \r\n Sign up as CR Member?*\r\n \r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'registerCr',\r\n e\r\n )\r\n }\r\n className={classes.radioGroup}\r\n >\r\n \r\n }\r\n label={'Yes'}\r\n />\r\n \r\n }\r\n label={'No'}\r\n />\r\n \r\n \r\n )}\r\n \r\n\r\n {formDetailsList.length < 2 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n First/Given Name*\r\n
\r\n
\r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'name',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n
\r\n
\r\n\r\n
\r\n
\r\n Last Name/Surname*\r\n
\r\n
\r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'surname',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Country of Residence*\r\n
\r\n
\r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'country',\r\n v\r\n )\r\n }\r\n options={Countries}\r\n error={this.state.countryError !== ''}\r\n helperText={this.state.countryError}\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n
\r\n
\r\n\r\n
\r\n
\r\n Date of birth*\r\n
\r\n
\r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'dob',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Email Address\r\n {(individualCollectorOptionDuck.isRegisterCr ||\r\n individualCollectorOptionDuck.isExistingCr ||\r\n collectorDetails.allowReceivingInfo) && (\r\n *\r\n )}\r\n
\r\n
\r\n
\r\n \r\n this.onEmailBlur(e.target.value)\r\n }\r\n onChange={e =>\r\n this.onCollectorPersonalDetailsChange(\r\n 'email',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n {/* ocidExists && ( //todo:syd remove after 1 June 2020\r\n \r\n Click here to login as OCID member.\r\n )\r\n */}\r\n {ocidExists &&\r\n this.props.parentView ===\r\n 'conciergeView' &&\r\n this.props\r\n .individualCollectorOptionDuck\r\n .isRegisterCr && (\r\n \r\n this.onOcidLinkClick(e)\r\n }\r\n >\r\n \r\n Click here to login as\r\n OCID member.\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Country code\r\n {individualCollectorOptionDuck.isRegisterCr && (\r\n *\r\n )}\r\n \r\n \r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'callingCode',\r\n v\r\n )\r\n }\r\n error={\r\n this.state\r\n .callingCodeError !== ''\r\n }\r\n helperText={\r\n this.state.callingCodeError\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Area code\r\n \r\n \r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'areaCode',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Mobile number\r\n {individualCollectorOptionDuck.isRegisterCr && (\r\n *\r\n )}\r\n \r\n \r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'contactNo',\r\n e\r\n )\r\n }\r\n disabled={\r\n individualCollectorOptionDuck.isExistingCr\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {this.props.parentView === 'conciergeView' && (\r\n \r\n {(individualCollectorOptionDuck.isExistingCr) && (\r\n
\r\n
\r\n
\r\n \r\n Card No\r\n {(individualCollectorOptionDuck.isExistingCr) && (\r\n *\r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n this.onCollectorPersonalDetailsChange(\r\n 'cardNo',\r\n e\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n \r\n\r\n {individualCollectorOptionDuck.isCtp && (\r\n \r\n \r\n \r\n Card assignment\r\n \r\n \r\n \r\n }\r\n label='Non-member'\r\n />\r\n \r\n }\r\n label='Member'\r\n />\r\n \r\n }\r\n label='Pre-loaded Card'\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {this.props.parentView === 'conciergeView' &&\r\n (this.state.cardAssignment === 'preloaded-card') && (\r\n \r\n
\r\n
\r\n
\r\n Card Prefix\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Card Range (Last 6 Digit. E.g.\r\n 000001 - 000009)\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Assign\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n }\r\n label='Passenger Acknowledgement'\r\n />\r\n \r\n }\r\n label='CSO Acknowledgement'\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.consentError}\r\n \r\n {/* \r\n }\r\n checked={this.state.consent}\r\n className={\r\n classes.flexStart\r\n }\r\n label={\r\n \r\n \r\n \r\n }\r\n /> */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n row: { display: 'flex', marginTop: 20 },\r\n rowItem: {\r\n display: 'flex',\r\n flex: 1,\r\n marginRight: 60,\r\n alignItems: 'center'\r\n },\r\n label: { flex: '2', marginRight: '1rem' },\r\n control: { flex: '3' },\r\n textField: { width: '100%' },\r\n button: { marginLeft: '1rem' },\r\n radioGroup: { display: 'flex', flexDirection: 'row' },\r\n notFullWidth: { width: 'auto' },\r\n callingCode: { width: '6rem', marginRight: '1rem' },\r\n country: { width: '100%' },\r\n flexStart: { alignItems: 'flex-start' },\r\n flightTransfers: { width: '5rem' },\r\n consent: { padding: '2rem' },\r\n tfWrap: { position: 'relative' }\r\n});\r\n\r\nconst mapStateToProps = function(state) {\r\n const {\r\n individualFormDuck,\r\n redemptionTransactionDuck: { redemptionTransaction },\r\n auditLogDucks,\r\n consentDerivedDuck,\r\n individualCollectorOptionDuck\r\n } = state;\r\n\r\n return {\r\n individualFormDuck,\r\n redemptionTransaction,\r\n auditLogDucks,\r\n consentDerivedDuck,\r\n individualCollectorOptionDuck\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n return {\r\n updateCollectorDetails: details =>\r\n dispatch(updateCollectorDetails(details)),\r\n submitIndividualForm: ({\r\n form,\r\n redemptionTransactionId,\r\n collectionConsent,\r\n marketingConsent,\r\n airlineConsent,\r\n additionalCrConsent,\r\n registerCr,\r\n existingCr,\r\n isPreloadedVouchersCard,\r\n isDigitalCard\r\n }) =>\r\n dispatch(\r\n submitIndividualForm({\r\n form,\r\n redemptionTransactionId,\r\n collectionConsent,\r\n marketingConsent,\r\n airlineConsent,\r\n additionalCrConsent,\r\n registerCr,\r\n existingCr,\r\n isPreloadedVouchersCard,\r\n isDigitalCard\r\n })\r\n ),\r\n memberSearch: (type, v) => dispatch(memberSearch(type, v)),\r\n clearFormDetailsList: () => dispatch(clearFormDetailsList()),\r\n uploadFile: (formData, type) => dispatch(uploadFile(formData, type)),\r\n updateFormDetailsList: formDetailsList =>\r\n dispatch(updateFormDetailsList(formDetailsList)),\r\n updateIndividualFormDuck: obj =>\r\n dispatch(updateIndividualFormDuck(obj)),\r\n updateAllConsents: ({\r\n collectionConsent,\r\n collectionConsentCso,\r\n marketingConsent,\r\n airlineConsent,\r\n additionalCrConsent\r\n }) =>\r\n dispatch(\r\n updateAllConsents({\r\n collectionConsent,\r\n collectionConsentCso,\r\n marketingConsent,\r\n airlineConsent,\r\n additionalCrConsent\r\n })\r\n ),\r\n updateIndividualCollectorOptions: collectorOptions =>\r\n dispatch(updateIndividualCollectorOptions(collectorOptions))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(CollectorPersonalDetails));\r\n","const signalRConstants = {\r\n\tUSER_CONCIERGE: 'USER_CONCIERGE',\r\n\tUSER_CLIENT: 'USER_CLIENT',\r\n OCID_EXCHANGE: 'OCID_EXCHANGE',\r\n\tUPDATE_COLLECTOR_FORM: 'UPDATE_COLLECTOR_FORM',\r\n\tDISPLAY_COLLECTOR_FORM: 'DISPLAY_COLLECTOR_FORM',\r\n\tDISPLAY_GROUP_COLLECTOR_FORM: 'DISPLAY_GROUP_COLLECTOR_FORM',\r\n\tUPDATE_GROUP_COLLECTOR_FORM: 'UPDATE_GROUP_COLLECTOR_FORM',\r\n\tCLIENT_DONE: 'CLIENT_DONE',\r\n\tDISPLAY_INDIVIDUAL_COLLECTOR_SUCCESS: 'DISPLAY_INDIVIDUAL_COLLECTOR_SUCCESS',\r\n\tDISPLAY_GROUP_COLLECTOR_SUCCESS: 'DISPLAY_GROUP_COLLECTOR_SUCCESS',\r\n\tEXIT_INDIVIDUAL_COLLECTOR_SUCCESS: 'EXIT_INDIVIDUAL_COLLECTOR_SUCCESS',\r\n\tREFRESH_CLIENT: 'REFRESH_CLIENT',\r\n OPEN_OCID_WINDOW: 'OPEN_OCID_WINDOW',\r\n CLOSE_OCID_WINDOW: 'CLOSE_OCID_WINDOW',\r\n UPDATE_CR_DETAILS_FROM_OCID: 'UPDATE_CR_DETAILS_FROM_OCID'\r\n}\r\n\r\nexport default signalRConstants\r\n","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings()\r\nlet baseURL = settings.baseURL\r\n\r\nconst initState = {\r\n\tcards: [],\r\n}\r\n\r\nconst SAVE_CARD = 'SAVE_CARD'\r\nconst REQUEST_FOR_REPRINTING_SUCCESS = 'REQUEST_FOR_REPRINTING_SUCCESS'\r\nconst CREQUEST_FOR_REPRINTING_FAIL = 'CREQUEST_FOR_REPRINTING_FAIL'\r\n\r\nexport const saveCard = (cards) => ({\r\n\ttype: SAVE_CARD,\r\n\tcards,\r\n})\r\n\r\nconst _requestForReprintingSuccess = (rs) => ({\r\n\ttype: REQUEST_FOR_REPRINTING_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _requestForReprintingFail = () => ({\r\n\ttype: CREQUEST_FOR_REPRINTING_FAIL,\r\n})\r\n\r\nexport const requestForReprinting = (cards, redemptionTransactionId) => async (dispatch) => {\r\n\tconst postBody = { cardList: cards, redemptionTransactionId: redemptionTransactionId }\r\n\tconst rs = await axios.post(baseURL + '/Passenger/RequestForReprinting', postBody, getCurrentAuthHeader()).catch((e) => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_requestForReprintingFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_requestForReprintingSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_requestForReprintingFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst printCardDuck = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase SAVE_CARD:\r\n\t\t\treturn { ...state, cards: action.cards }\r\n\t\tcase REQUEST_FOR_REPRINTING_SUCCESS:\r\n\t\t\treturn { ...state, cards: action.rs.data.result }\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default printCardDuck\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles, Table, TableBody, TableCell, TableHead, TableRow, Paper, TextField, Tooltip } from '@material-ui/core'\r\nimport { lime } from '@material-ui/core/colors'\r\nimport StyledDeleteBtn from './StyledDeleteBtn'\r\nimport StyledUndoBtn from './StyledUndoBtn'\r\nimport SqApiCriteriasDialog from '../components/SqApiCriteriasDialog'\r\nimport { updateFormDetailsList } from '../ducks/individualFormDuck'\r\nimport { toHumanFriendlyDate } from '../helpers/utilities'\r\nimport { convertSqStatusForDisplay } from '../helpers/eticketStatusHelper'\r\nimport { saveCard } from '../ducks/printCardDuck'\r\n\r\nclass PassengersVoucherTable extends React.Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tcriterias: {},\r\n\t\t\tcriteriasMessage: '',\r\n\t\t\tviewCriterias: false,\r\n\t\t\teditingIdx: null,\r\n\t\t\tphysicalEditingIdx: {},\r\n\t\t}\r\n\t}\r\n\r\n\tonViewCritierias = (r) => {\r\n\t\tif (r.ticketDetails && r.ticketDetails[0].criterias) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: r.ticketDetails[0].criterias,\r\n\t\t\t\tcriteriasMessage: '',\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\t\tif (r.ticketDetails && r.ticketDetails[0].remarks) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: {},\r\n\t\t\t\tcriteriasMessage: r.ticketDetails[0].remarks,\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\tviewCriterias: true,\r\n\t\t\t\tcriterias: {},\r\n\t\t\t\tcriteriasMessage: 'No results',\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tonViewCriteriasClose = () => {\r\n\t\tthis.setState({ viewCriterias: false })\r\n\t}\r\n\r\n\tonCardNoKeyPress = (e) => {\r\n\t\tif (e.key === 'Enter') this.setState({ editingIdx: null, physicalEditingIdx: {} })\r\n\t}\r\n\r\n\tonCardNoChange = (idx, e) => {\r\n\t\tlet value = e.target.value\r\n\t\tif (value.length > 19) {\r\n\t\t\tvalue = value.substring(0, 19)\r\n\t\t}\r\n\t\tconst newPax = { ...this.props.passengers[idx] }\r\n\t\tnewPax.cardNo = value\r\n\t\tlet newFormDetailsList = [...this.props.passengers]\r\n\t\tnewFormDetailsList.splice(idx, 1, newPax)\r\n\t\tthis.props.updateFormDetailsList(newFormDetailsList)\r\n\t}\r\n\r\n\tonPreloadedVouchersCardNoChange = (idx, e) => {\r\n\t\tlet value = e.target.value\r\n\t\tif (value.length > 19) {\r\n\t\t\tvalue = value.substring(0, 19)\r\n\t\t}\r\n\t\tconst newPax = { ...this.props.passengers[idx] }\r\n\t\tnewPax.preloadedVouchersCardNo = value\r\n\t\tlet newFormDetailsList = [...this.props.passengers]\r\n\t\tnewFormDetailsList.splice(idx, 1, newPax)\r\n\t\tthis.props.updateFormDetailsList(newFormDetailsList)\r\n\t}\r\n\r\n\tonCardEdit = (i, row) => {\r\n\t\tthis.setState({ editingIdx: i })\r\n\t}\r\n\r\n\tonPhysicalCardNoChange = (idx, k, e) => {\r\n\t\tconst newPax = { ...this.props.passengers[idx] }\r\n\t\tnewPax[k] = e.target.value\r\n\t\tlet newFormDetailsList = [...this.props.passengers]\r\n\t\tnewFormDetailsList.splice(idx, 1, newPax)\r\n\t\tthis.props.updateFormDetailsList(newFormDetailsList)\r\n\t}\r\n\r\n\tonPhysicalCardEdit = (row, col) => {\r\n\t\tthis.setState({ physicalEditingIdx: { row, col } })\r\n\t}\r\n\r\n\tonCardNoBlur = (idx) => {\r\n\t\tif (this.state.editingIdx === idx) this.setState({ editingIdx: null })\r\n\t}\r\n\r\n\tonPreloadedVouchersCardNoBlur = (idx) => {\r\n\t\tif (this.state.editingIdx === idx) this.setState({ editingIdx: null })\r\n\t}\r\n\r\n\tonPhysicalCardNoBlur = (row, col) => {\r\n\t\tconst { physicalEditingIdx } = this.state\r\n\t\tif (physicalEditingIdx.row === row && physicalEditingIdx.col === col) this.setState({ physicalEditingIdx: [] })\r\n\t}\r\n\r\n\t_shouldShowCardNo = (passengers) => {\r\n\t\treturn passengers.some((m) => m.cardNo)\r\n\t}\r\n\r\n\t_shouldShowVoucherNo = (passengers) => {\r\n\t\treturn passengers.some((m) => m.issuedVouchersList && m.issuedVouchersList.length)\r\n\t}\r\n\r\n\t_shouldShowPreloadedVouchersCardNo = (passengers) => {\r\n\t\tlet shouldShow = false\r\n\t\tpassengers.forEach((passenger) => {\r\n\t\t\tif (passenger.preloadedVouchersCardNo) shouldShow = true\r\n\t\t})\r\n\t\treturn shouldShow\r\n\t}\r\n\r\n\t_shouldShowPhysicalVoucherNo = (passengers) => {\r\n\t\tlet shouldShow = false\r\n\t\tpassengers.forEach((passenger) => {\r\n\t\t\tif (passenger.genPhysicalVoucherNo || passenger.lpcPhysicalVoucherNo) shouldShow = true\r\n\t\t})\r\n\t\treturn shouldShow\r\n\t}\r\n\r\n\t_shouldShowRedemptionDate = (passengers) => {\r\n\t\tlet shouldShow = false\r\n\t\tpassengers.forEach((passenger) => {\r\n\t\t\tif (passenger.redeemed) {\r\n\t\t\t\tif (passenger.redeemed.creationTime) shouldShow = true\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn shouldShow\r\n\t}\r\n\r\n\tprintCard = (cardNo) => {\r\n\t\tconsole.log(this.props.redemptionTransactionId)\r\n\t\twindow.open('print-card?state=ctp_app' + '&id=' + this.props.redemptionTransactionId + '&cardNo=' + cardNo)\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, currentPaxPosition, editMode, passengers, isShowDeletedPax } = this.props\r\n\t\tconst { criterias, viewCriterias, criteriasMessage, editingIdx, physicalEditingIdx } = this.state\r\n\t\tlet showCardNo = this._shouldShowCardNo(passengers)\r\n\t\tlet showVoucherNo = this._shouldShowVoucherNo(passengers)\r\n\t\tlet showPreloadedVouchersCardNo = this._shouldShowPreloadedVouchersCardNo(passengers)\r\n\t\tlet showPhysicalVoucherNo = this._shouldShowPhysicalVoucherNo(passengers)\r\n\t\tlet showRedemptionDate = this._shouldShowRedemptionDate(passengers)\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tNo\r\n\t\t\t\t\t\t\tName\r\n\t\t\t\t\t\t\tBooking Ref No.\r\n\t\t\t\t\t\t\tVoucher Value\r\n\t\t\t\t\t\t\tEligibility\r\n\t\t\t\t\t\t\t{showRedemptionDate && Redemption Date}\r\n\t\t\t\t\t\t\t{showCardNo && Card no}\r\n\t\t\t\t\t\t\t{showVoucherNo && Voucher Number}\r\n\t\t\t\t\t\t\t{showPreloadedVouchersCardNo && Preloaded Card no}\r\n\t\t\t\t\t\t\t{showPhysicalVoucherNo && GEN Voucher no}\r\n\t\t\t\t\t\t\t{showPhysicalVoucherNo && LPC Voucher no}\r\n\t\t\t\t\t\t\t{this.props.onDelete && Delete/Undo}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{passengers.filter(item => {\r\n\t\t\t\t\t\t\tif (this.props.isShowDeletedPax) {\r\n\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn !item.isDeleted\r\n\t\t\t\t\t\t}).map((passenger, index) => {\r\n\t\t\t\t\t\t\tlet classNames = []\r\n\r\n\t\t\t\t\t\t\t// let cardsToPrint = []\r\n\r\n\t\t\t\t\t\t\t// if (passenger.fullCardNo && passenger.fullCardNo.startsWith('00002') && !passenger.preloadedVouchersCardNo) {\r\n\t\t\t\t\t\t\t// \t// CR Card\r\n\t\t\t\t\t\t\t// \tcardsToPrint.push({\r\n\t\t\t\t\t\t\t// \t\tcardNo: passenger.cardNo,\r\n\t\t\t\t\t\t\t// \t\tcvc: passenger.cvc,\r\n\t\t\t\t\t\t\t// \t\tissuedVouchersList: [passenger.crVoucherInfo],\r\n\t\t\t\t\t\t\t// \t\tnoOfPax: passengers.length,\r\n\t\t\t\t\t\t\t// \t\tisQantasFlight: passenger.eTicketsDetails.eTicket1.startsWith('081'),\r\n\t\t\t\t\t\t\t// \t})\r\n\t\t\t\t\t\t\t// } else if (passenger.preloadedVouchersCardNo) {\r\n\t\t\t\t\t\t\t// \tcardsToPrint.push({\r\n\t\t\t\t\t\t\t// \t\tcardNo: passenger.preloadedVouchersCardNo,\r\n\t\t\t\t\t\t\t// \t\tvoucherValidFrom: passenger.voucherValidFrom,\r\n\t\t\t\t\t\t\t// \t\tvoucherValidTo: passenger.voucherValidTo,\r\n\t\t\t\t\t\t\t// \t\tvoucherValuesAndRemarks: passenger.voucherValuesAndRemarks,\r\n\t\t\t\t\t\t\t// \t})\r\n\t\t\t\t\t\t\t// } else if (passenger.cardNo && passenger.ccn) {\r\n\t\t\t\t\t\t\t// \tcardsToPrint.push({\r\n\t\t\t\t\t\t\t// \t\tcardNo: passenger.cardNo,\r\n\t\t\t\t\t\t\t// \t\tccn: passenger.ccn,\r\n\t\t\t\t\t\t\t// \t\tissuedVouchersList: passenger.issuedVouchersList,\r\n\t\t\t\t\t\t\t// \t})\r\n\t\t\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t\t\tif (passenger.isDeleted) classNames.push(classes.deleted)\r\n\t\t\t\t\t\t\tif (passenger.pax === currentPaxPosition) classNames.push(classes.editing)\r\n\r\n\t\t\t\t\t\t\tlet voucherValue = '';\r\n\t\t\t\t\t\t\tif (passenger.issuedVouchersList && passenger.issuedVouchersList.length) {\r\n\t\t\t\t\t\t\t\tvoucherValue = `${passenger.issuedVouchersList.length} x $${passenger.issuedVouchersList[0].typeValue} Changi eVoucher(s)`;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

{passenger.pax}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t this.props.onEditPax(passenger)} className={passenger.isDeleted ? '' : classes.btn}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{passenger.personalDetails.firstName}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

{passenger.eTicketsDetails.pnr}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t{voucherValue}\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t this.onViewCritierias(passenger)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\tM\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t{passenger.ticketDetails.length > 0 ? (passenger.ticketDetails[0] ? passenger.ticketDetails[0].etVerified : null) : null}\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
*/}\r\n\r\n\t\t\t\t\t\t\t\t\t{showRedemptionDate && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t{passenger.redeemed ? toHumanFriendlyDate(passenger.redeemed.creationTime) : null}\r\n\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showCardNo && this.props.collectorSuccess && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.printCard(passenger.cardNo)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.cardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showVoucherNo && this.props.collectorSuccess && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{passenger.issuedVouchersList && passenger.issuedVouchersList.map(i => \r\n\t\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{i.voucherNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showCardNo && !this.props.collectorSuccess && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx !== index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (passenger.isDeleted ? null : this.onCardEdit(index, passenger))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={passenger.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.cardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx === index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onCardNoChange(index, e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onCardNoBlur(index)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='number'\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showPreloadedVouchersCardNo && this.props.collectorSuccess && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.printCard(passenger.preloadedVouchersCardNo)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.preloadedVouchersCardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showPreloadedVouchersCardNo && !this.props.collectorSuccess && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx !== index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (passenger.isDeleted ? null : this.onCardEdit(index, passenger))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={passenger.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.preloadedVouchersCardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{editingIdx === index && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onPreloadedVouchersCardNoChange(index, e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onPreloadedVouchersCardNoBlur(index)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='number'\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showPhysicalVoucherNo && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{(physicalEditingIdx.row !== index || physicalEditingIdx.col !== 0) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (passenger.isDeleted ? null : this.onPhysicalCardEdit(index, 0))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={passenger.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.genPhysicalVoucherNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{physicalEditingIdx.row === index && physicalEditingIdx.col === 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalCardNoChange(index, 'genPhysicalVoucherNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onPhysicalCardNoBlur(index, 0)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{showPhysicalVoucherNo && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{(physicalEditingIdx.row !== index || physicalEditingIdx.col !== 1) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t (passenger.isDeleted ? null : this.onPhysicalCardEdit(index, 1))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={passenger.isDeleted ? classes['textDeleted'] : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.lpcPhysicalVoucherNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t{physicalEditingIdx.row === index && physicalEditingIdx.col === 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalCardNoChange(index, 'lpcPhysicalVoucherNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBlur={() => this.onPhysicalCardNoBlur(index, 1)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.props.onDelete && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{!passenger.isDeleted && this.props.onDelete(passenger.pax)} disabled={editMode} />}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{passenger.isDeleted && this.props.onRestore(passenger.pax)} />}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\troot: { width: '100%', marginTop: theme.spacing.unit * 3, overflowX: 'auto' },\r\n\ttable: { minWidth: 700 },\r\n\tdeleted: { background: '#eee' },\r\n\ttextDeleted: { color: '#bbb', textDecoration: 'line-through' },\r\n\tbtn: { border: 0, cursor: 'pointer', borderBottom: '1px dotted black' },\r\n\tediting: { backgroundColor: lime[50] },\r\n\ttextFieldInput: { fontSize: '0.8125rem' },\r\n\tclickable: { cursor: 'pointer', borderBottom: '1px dotted #ccc' },\r\n})\r\n\r\nPassengersVoucherTable.propTypes = {\r\n\tclasses: PropTypes.object.isRequired,\r\n\tpassengers: PropTypes.array.isRequired,\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst {\r\n\t\tindividualFormDuck: { currentPaxPosition, editMode, isShowDeletedPax, redemptionTransactionId },\r\n\t\tprintCardDuck,\r\n\r\n\t} = state\r\n\r\n\treturn { currentPaxPosition, editMode, printCardDuck, isShowDeletedPax, redemptionTransactionId }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tupdateFormDetailsList: (formDetailsList) => dispatch(updateFormDetailsList(formDetailsList)),\r\n\t\tsaveCard: (cards) => dispatch(saveCard(cards)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(PassengersVoucherTable))\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport SignatureCanvas from 'react-signature-canvas'\r\nimport {Paper, Button} from '@material-ui/core'\r\n\r\nclass GeneralCheckbox extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.sigCanvas = null\r\n }\r\n\r\n clearSignature = () => {\r\n this.sigCanvas.clear()\r\n this.props.onClear()\r\n }\r\n\r\n onEnd = () => {\r\n this.props.onEnd && this.props.onEnd(this.sigCanvas.toDataURL())\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n {\r\n this.sigCanvas = ref\r\n }}\r\n penColor={this.props.penColor}\r\n canvasProps={this.props.dimensions}\r\n onEnd={this.onEnd}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n {this.props.clearButtonText ? this.props.clearButtonText : 'Clear Signature'}\r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n styles: {width: '100%'},\r\n canvasWrapper: {\r\n styles: {}\r\n },\r\n buttonWrapper: {\r\n styles: {paddingTop: 10}\r\n }\r\n }\r\n}\r\n\r\nGeneralCheckbox.propTypes = {\r\n penColor: PropTypes.string.isRequired,\r\n dimensions: PropTypes.shape({\r\n width: PropTypes.number.isRequired,\r\n height: PropTypes.number.isRequired\r\n\r\n }).isRequired,\r\n clearButtonText: PropTypes.string\r\n}\r\n\r\nexport default GeneralCheckbox","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Fab, Grid, Button, Typography } from '@material-ui/core'\r\nimport { ScreenShare } from '@material-ui/icons'\r\nimport { green } from '@material-ui/core/colors'\r\nimport Header from '../containers/Header.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport { updateCollectorDetails, updateFormDetailsList, resetCollectorDetails, copyFormDetailsToCurrentPax,updateCrDetails } from '../ducks/individualFormDuck'\r\nimport CollectorPersonalDetails from '../containers/individual/CollectorPersonalDetails'\r\nimport { HubConnectionBuilder } from '@aspnet/signalr'\r\nimport { signalRURL } from '../config/config'\r\nimport signalRConstants from '../helpers/signalRConstants'\r\nimport { Link } from 'react-router-dom'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport ParticularsTable from '../components/ParticularsTable.js'\r\nimport PassengersVoucherTable from '../components/PassengersVoucherTable.js'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport * as cloneDeep from 'lodash/cloneDeep'\r\nimport GeneralSignature from '../components/generalForm/GeneralSignature'\r\nimport {updateIndividualCollectorOptions} from \"../ducks/individualCollectorOptionDuck\";\r\n\r\nclass IndividualCollector extends React.Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tformState: {},\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tparentDidSubmit: false,\r\n\t\t\tclientIsDone: false,\r\n\t\t\tisSharingScreen: false,\r\n\t\t\toverrideExistingCrOptions: false,\r\n\t\t}\r\n\r\n\t\tthis.collectorPersonalDetails = null\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Individual Collector`\r\n\r\n\t\tthis.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n\t\tthis._startSignalRConnection()\r\n\t\tthis.hubConnection.on('ReceiveMessage', this._receiveMessage)\r\n\t\tthis.hubConnection.onclose(async () => {\r\n\t\t\tawait this._startSignalRConnection()\r\n\t\t})\r\n\t}\r\n\r\n\t_startSignalRConnection = async () => {\r\n\t\tthis.hubConnection\r\n\t\t\t.start()\r\n\t\t\t.then(() => console.log('Connection started!'))\r\n\t\t\t.catch(err => {\r\n\t\t\t\tsetTimeout(() => this._startSignalRConnection(), 5000)\r\n\t\t\t\tconsole.log('Error while establishing connection :(')\r\n\t\t\t})\r\n\t}\r\n\r\n\t_sendMessage = ({ collectorDetails, formState, formDetailsList, collectorOptions }, messageType) => {\r\n\t\tif (messageType === undefined) messageType = signalRConstants.UPDATE_COLLECTOR_FORM\r\n\r\n\t\tconst user = localStorage.getItem('username')\r\n\t\tlet messageObj = {\r\n\t\t\tuser,\r\n\t\t\ttype: messageType,\r\n\t\t\tsource: signalRConstants.USER_CONCIERGE,\r\n\t\t\tdata: { collectorDetails, formState, formDetailsList, collectorOptions }\r\n\t\t}\r\n\t\tlet messageStr = JSON.stringify(messageObj)\r\n\t\tif(this.hubConnection){\r\n this.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function(err) {\r\n return console.error(err.toString())\r\n })\r\n\t\t}\r\n\t}\r\n\r\n\t_receiveMessage = (user, messageStr) => {\r\n\t\tlet messageObj = JSON.parse(messageStr)\r\n\r\n\t\tif (messageObj.source === signalRConstants.USER_CONCIERGE) return;\r\n\t\tconst currentUser = localStorage.getItem('username')\r\n\t\tif (messageObj.user !== currentUser) return\r\n\r\n if (messageObj.data) {\r\n\t\t\tconst { collectorDetails, formState, formDetailsList, collectorOptions } = messageObj.data\r\n\t\t\tif(collectorDetails) this.props.updateCollectorDetails(collectorDetails)\r\n\t\t\tif(collectorOptions) this.props.updateIndividualCollectorOptions(collectorOptions)\r\n\t\t\tif (formState) this.setState({ formState })\r\n\t\t\tif (formDetailsList) this.props.updateFormDetailsList(formDetailsList)\r\n\t\t\tif (messageObj.type === signalRConstants.CLIENT_DONE) {\r\n\t\t\t\tthis.setState({ clientIsDone: true, isSharingScreen: false, formState })\r\n\t\t\t}\r\n\t\t\tif(messageObj.type === signalRConstants.UPDATE_CR_DETAILS_FROM_OCID){\r\n const { crDetails } = messageObj.data;\r\n this.props.updateCrDetails(crDetails)\r\n\t\t\t\tthis.setState({overrideExistingCrOptions:true})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n sendOpenOcidWindow = ()=>{\r\n\t\tthis._sendMessage({}, signalRConstants.OPEN_OCID_WINDOW)\r\n\t};\r\n\r\n\t_toolbarButtons = () => {\r\n\t\treturn [\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t]\r\n\t}\r\n\r\n\tonScreenShare = () => {\r\n\t\tthis._sendMessage(\r\n\t\t\t{\r\n\t\t\t\tcollectorDetails: this.props.individualFormDuck.collectorDetails,\r\n\t\t\t\tformDetailsList: this.props.individualFormDuck.formDetailsList,\r\n\t\t\t\tcollectorOptions: this.props.individualCollectorOptionDuck\r\n\t\t\t},\r\n\t\t\tsignalRConstants.DISPLAY_COLLECTOR_FORM\r\n\t\t)\r\n\t\tthis.setState({ isSharingScreen: true })\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\tresetParentSubmit = () => {\r\n\t\tthis.setState({ parentDidSubmit: false })\r\n\t}\r\n\r\n\tonSubmit = () => {\r\n\t\t// this will trigger validation in child component.\r\n\t\tthis.setState({ parentDidSubmit: true })\r\n\t}\r\n\r\n\tonClear = async () => {\r\n\t\tthis.props.resetCollectorDetails()\r\n\t\tconst formState = await this.collectorPersonalDetails.onClear()\r\n\t\tthis._sendMessage({\r\n\t\t\tcollectorDetails: this.props.individualFormDuck.collectorDetails,\r\n\t\t\tformState\r\n\t\t})\r\n\t\tthis.setState({ clientIsDone: false })\r\n\t}\r\n\r\n\t_onEditPax = p => {\r\n\t\tif (p.isDeleted) return\r\n\t\tthis.props.copyFormDetailsToCurrentPax(cloneDeep(p))\r\n\t\tthis.props.history.push('/individual')\r\n\t}\r\n\r\n\t// used by INDIVIDUAL_COLLECTOR_SCREEN\r\n\tonSignatureEnd = csoSignatureBase64 => {\r\n\t\tconst details = { ...this.props.individualFormDuck.collectorDetails }\r\n\t\tconst collectorDetails = { ...details, csoSignatureBase64 }\r\n\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\tthis._sendMessage({ collectorDetails })\r\n\t}\r\n\r\n\t// used by INDIVIDUAL_COLLECTOR_SCREEN\r\n\tonSignatureClear = () => {\r\n\t\tconst details = { ...this.props.individualFormDuck.collectorDetails }\r\n\t\tconst collectorDetails = { ...details, csoSignatureBase64: '' }\r\n\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\tthis._sendMessage({ collectorDetails })\r\n\t}\r\n\r\n\tparentStateUpdate = state => {\r\n\t\tthis.setState(state)\r\n\t}\r\n\r\n\r\n\trender() {\r\n\t\tconst { classes, individualFormDuck } = this.props\r\n\t\tconst isLoading = individualFormDuck.submitIndividualFormIsLoading || individualFormDuck.memberSearchIsLoading || individualFormDuck.uploadFileIsLoading\r\n\t\tconst { clientIsDone, isSharingScreen } = this.state\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t (this.collectorPersonalDetails = instance)}\r\n\t\t\t\t\t\t\tparentStateUpdate={this.parentStateUpdate}\r\n\t\t\t\t\t\t\tsendOpenOcidWindow = {this.sendOpenOcidWindow}\r\n\t\t\t\t\t\t\toverrideExistingCrOptions = {this.state.overrideExistingCrOptions}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{!isSharingScreen && !clientIsDone && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{individualFormDuck.collectorDetails.clientSignatureBase64 !== '' && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tCollector's Signature:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!clientIsDone && isSharingScreen && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tWaiting for client to confirm....\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t{clientIsDone && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tClient is done\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{individualFormDuck.formDetailsList.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n \r\n\t\t\t\t\t\t\t\t\t\r\n \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: { ...theme.container },\r\n\twaiting: { color: green[600], fontSize: '.8rem' }\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n\tconst { individualFormDuck } = state\r\n\r\n\treturn { individualFormDuck }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tupdateCollectorDetails: details => dispatch(updateCollectorDetails(details)),\r\n\t\tupdateFormDetailsList: formDetailsList => dispatch(updateFormDetailsList(formDetailsList)),\r\n\t\tresetCollectorDetails: () => dispatch(resetCollectorDetails()),\r\n\t\tcopyFormDetailsToCurrentPax: p => dispatch(copyFormDetailsToCurrentPax(p)),\r\n updateIndividualCollectorOptions: (collectorOptions) => dispatch(updateIndividualCollectorOptions(collectorOptions)),\r\n updateCrDetails: (cardNo) => dispatch(updateCrDetails(cardNo))\r\n\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(IndividualCollector))\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Typography, Button} from '@material-ui/core';\r\n\r\nclass SectionHeader extends React.Component {\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {this.props.title} \r\n
\r\n {this.props.showButton && (\r\n
\r\n \r\n {this.props.buttonText}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n styles: {\r\n width: '100%',\r\n display: 'flex'\r\n },\r\n textWrapper:{\r\n styles: {\r\n }\r\n },\r\n btnWrapper:{\r\n styles: {\r\n marginLeft: 20,\r\n }\r\n }\r\n\r\n },\r\n};\r\n\r\nSectionHeader.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n showButton: PropTypes.bool,\r\n buttonText: function(props, propName, componentName) {\r\n if ((props['showButton'] === true && (props[propName] === undefined || typeof(props[propName]) !== 'string'))) {\r\n return new Error(\r\n 'Please provide a buttonText string!'\r\n );\r\n }\r\n },\r\n onButtonClick: function(props, propName, componentName) {\r\n if ((props['showButton'] === true && (props[propName] === undefined || typeof(props[propName]) !== 'function'))) {\r\n return new Error(\r\n 'Please provide a onButtonClick function!'\r\n );\r\n }\r\n },\r\n};\r\n\r\nexport default SectionHeader;","import { generateBatches } from '../helpers/batchHelper.js'\r\nimport axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings()\r\nlet baseURL = settings.baseURL\r\n\r\nexport const MemberRepo = {\r\n\tmultipleActivateAndIssueCards: async (passengers) => {\r\n\t\tlet passengerBatches = generateBatches({ items: passengers, batchSize: 10 })\r\n\t\tlet result = []\r\n\t\tfor (let passengerBatch of passengerBatches) {\r\n\t\t\tconst rs = await axios.post(baseURL + '/Member/MultipleActivateAndIssueCard', { passengers: passengerBatch }, getCurrentAuthHeader()).catch((e) => {\r\n\t\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t} = e\r\n\t\t\t\t\treturn { success: false, message: message }\r\n\t\t\t\t}\r\n\t\t\t\treturn { success: false, message: e.response.status + ' Unexpected error' }\r\n\t\t\t})\r\n\t\t\tif (!rs.data) {\r\n\t\t\t\treturn { success: false, message: rs.message }\r\n\t\t\t}\r\n\t\t\tif (!rs.data.success) {\r\n\t\t\t\treturn { success: false, message: 'unexpected error' }\r\n\t\t\t} else {\r\n\t\t\t}\r\n\t\t\tresult.push(...rs.data.result.items)\r\n\t\t\t// if no exception, continue\r\n\t\t}\r\n\t\treturn { success: true, result: result }\r\n\t},\r\n}\r\n","export const MULTI_CARD_UNLOADED = \"multi-unloaded\"\r\nexport const MULTI_CARD_DIGITAL = \"multi-digital\"\r\nexport const MULTI_CARD_EV = \"multi-ev\"\r\nexport const SINGLE_CARD_DIGITAL = \"single-digital\"","import axios from 'axios';\r\nimport { getSettings } from '../config/config';\r\nimport { getCurrentAuthHeader, spreadObj } from '../helpers/utilities';\r\nimport querystring from 'querystring';\r\nimport {\r\n convertSqStatusForDisplay,\r\n DISPLAY_NO\r\n} from '../helpers/eticketStatusHelper';\r\nimport { MemberRepo } from '../repos/memberRepo';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport { checkValidStatusCode } from '../helpers/httpHelper';\r\nimport {\r\n MULTI_CARD_EV,\r\n MULTI_CARD_DIGITAL,\r\n SINGLE_CARD_DIGITAL,\r\n MULTI_CARD_UNLOADED\r\n} from '../constants/groupCardAssignment';\r\nimport { CTP_CARD_DEFAULT_CCN } from '../constants/cardConstants';\r\n\r\nconst RESET_GROUP_REDEMPTION_FORM_REDUCER =\r\n 'RESET_GROUP_REDEMPTION_FORM_REDUCER';\r\nconst GET_AND_STORE_QR_CODE_DETAILS = 'GET_AND_STORE_QR_CODE_DETAILS';\r\nconst GET_GROUP_AND_PASSENGERS_REDEMPTION_IS_LOADING =\r\n 'GET_GROUP_AND_PASSENGERS_REDEMPTION_IS_LOADING';\r\nconst GET_GROUP_AND_PASSENGERS_REDEMPTION_SUCCESS =\r\n 'GET_GROUP_AND_PASSENGERS_REDEMPTION_SUCCESS';\r\nconst GET_GROUP_AND_PASSENGERS_REDEMPTION_FAIL =\r\n 'GET_GROUP_AND_PASSENGERS_REDEMPTION_FAIL';\r\nconst GROUP_ISSUE_CARD_IS_LOADING = 'GROUP_ISSUE_CARD_IS_LOADING';\r\nconst GROUP_ISSUE_CARD_SUCCESS = 'GROUP_ISSUE_CARD_SUCCESS';\r\nconst GROUP_ISSUE_CARD_FAIL = 'GROUP_ISSUE_CARD_FAIL';\r\nconst UPDATE_PASSENGERS = 'UPDATE_PASSENGERS';\r\nconst UPDATE_GROUP_REDEMPTION_FORM_DATA = 'UPDATE_GROUP_REDEMPTION_FORM_DATA';\r\nconst UPDATE_SELECTED_GROUP_ID = 'UPDATE_SELECTED_GROUP_ID';\r\nconst UPDATE_GROUP_COLLECTOR_DETAILS = 'UPDATE_GROUP_COLLECTOR_DETAILS';\r\nconst CHECK_INACTIVE_CARDS_SUCCESS = 'CHECK_INACTIVE_CARDS_SUCCESS';\r\nconst CHECK_INACTIVE_CARDS_FAIL = 'CHECK_INACTIVE_CARDS_FAIL';\r\nconst CHECK_INACTIVE_CARDS_IS_LOADING = 'CHECK_INACTIVE_CARDS_IS_LOADING';\r\nconst GROUP_COLLECTOR_SIGNATURE_UPLOAD_IS_LOADING =\r\n 'GROUP_COLLECTOR_SIGNATURE_UPLOAD_IS_LOADING';\r\nconst GROUP_COLLECTOR_SIGNATURE_UPLOAD_SUCCESS =\r\n 'GROUP_COLLECTOR_SIGNATURE_UPLOAD_SUCCESS';\r\nconst GROUP_COLLECTOR_SIGNATURE_UPLOAD_FAIL =\r\n 'GROUP_COLLECTOR_SIGNATURE_UPLOAD_FAIL';\r\nconst GROUP_SQ_API_CHECK_IS_LOADING = 'GROUP_SQ_API_CHECK_IS_LOADING';\r\nconst GROUP_SQ_API_CHECK_SUCCESS = 'GROUP_SQ_API_CHECK_SUCCESS';\r\nconst GROUP_SQ_API_CHECK_FAIL = 'GROUP_SQ_API_CHECK_FAIL';\r\nconst GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING =\r\n 'GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING';\r\nconst GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS =\r\n 'GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS';\r\nconst GROUP_CHECK_REDEEMED_PASSENGER_FAIL =\r\n 'GROUP_CHECK_REDEEMED_PASSENGER_FAIL';\r\nconst UPDATE_GROUP_REDEMPTION_FORM_DUCK = 'UPDATE_GROUP_REDEMPTION_FORM_DUCK';\r\nconst UPDATE_GROUP_REDEMPTION_FORM_DUCK_OBJ =\r\n 'UPDATE_GROUP_REDEMPTION_FORM_DUCK_OBJ';\r\nconst MULTIPLE_ACTIVATE_AND_ISSUE_CARD_IS_LOADING =\r\n 'MULTIPLE_ACTIVATE_AND_ISSUE_CARD_IS_LOADING';\r\nconst MULTIPLE_ACTIVATE_AND_ISSUE_CARD_SUCCESS =\r\n 'MULTIPLE_ACTIVATE_AND_ISSUE_CARD_SUCCESS';\r\nconst MULTIPLE_ACTIVATE_AND_ISSUE_CARD_FAIL =\r\n 'MULTIPLE_ACTIVATE_AND_ISSUE_CARD_FAIL';\r\nconst CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_IS_LOADING =\r\n 'CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_IS_LOADING';\r\nconst CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_SUCCESS =\r\n 'CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_SUCCESS';\r\nconst CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_FAIL =\r\n 'CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_FAIL';\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst initState = {\r\n getGroupAndPassengersIsLoading: false,\r\n group: { id: '' },\r\n passengers: [\r\n {\r\n physicalVoucher: ['', ''],\r\n physicalVoucherIssued: false,\r\n preloadedVouchersCardNo: '',\r\n cardNo: '',\r\n fullCardNo: ''\r\n }\r\n ],\r\n physicalVoucherIssued: false,\r\n rejectedPassengers: [],\r\n redeemedPassengers: [],\r\n tourLeader: { passportNo: '', firstName: '', lastName: '' },\r\n collector: {\r\n allowReceivingInfo: false,\r\n csoSignatureBase64: '',\r\n clientSignatureBase64: '',\r\n clientIsDone: false,\r\n collectionConsent: '',\r\n marketingConsent: '',\r\n airlineConsent: '',\r\n additionalCrConsent: ''\r\n },\r\n redemptionTransactionId: '',\r\n signatureUri: '',\r\n groupIssueCardIsLoading: false,\r\n createGroupTransactionAndAssignDigitalCardsIsLoading: false,\r\n createGroupTransactionAndAssignDigitalCardsCompleted: false,\r\n selectedGroupId: 0,\r\n groupCollectorSignatureUploadIsLoading: false,\r\n groupSqApiCheckIsLoading: false,\r\n groupSqApiCheckResults: [],\r\n paxFlown: 0,\r\n groupCheckRedeemedPassengerIsLoading: false,\r\n groupCheckRedeemedPassenger: [],\r\n cardAssignment: 'multi',\r\n groupMetaInfo: {},\r\n ui: {},\r\n checkInactiveCardsIsLoading: false,\r\n multipleActivateAndIssueCardIsLoading: false,\r\n multipleActivateAndIssueCardComplete: false\r\n};\r\n\r\nexport const resetGroupRedemptionFormReducer = () => ({\r\n type: RESET_GROUP_REDEMPTION_FORM_REDUCER\r\n});\r\n\r\nexport const updateSelectedGroupId = selectedGroupId => ({\r\n type: UPDATE_SELECTED_GROUP_ID,\r\n selectedGroupId: selectedGroupId\r\n});\r\n\r\nexport const getAndStoreQRCodeDetails = value => ({\r\n type: GET_AND_STORE_QR_CODE_DETAILS,\r\n payload: value\r\n});\r\n\r\nexport const updateGroupRedemptionFormData = ({\r\n group,\r\n tourLeader,\r\n passengers,\r\n collector,\r\n signatureUri\r\n}) => {\r\n return {\r\n type: UPDATE_GROUP_REDEMPTION_FORM_DATA,\r\n payload: { group, tourLeader, passengers, collector, signatureUri }\r\n };\r\n};\r\n\r\nexport const getGroupAndPassengersRedemption = ({\r\n groupId,\r\n refNo,\r\n getAllUser\r\n}) => async (dispatch, getState) => {\r\n dispatch(_getGroupAndPassengersIsLoading());\r\n\r\n let urlParams = {};\r\n if (groupId) urlParams = { groupId: groupId };\r\n if (refNo) urlParams = { refNoFilter: refNo };\r\n if (getAllUser) urlParams.getAllUser = getAllUser;\r\n\r\n const data = { params: urlParams, ...getCurrentAuthHeader() };\r\n const rs = await axios\r\n .get(baseURL + '/Group/GetGroupAndPassengers', data)\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n if (rs.data.success) {\r\n const {\r\n flightDuck: { flightData }\r\n } = getState();\r\n dispatch(_getGroupAndPassengersRedemptionSuccess(rs, flightData));\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_getGroupAndPassengersRedemptionFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _groupIssueCardsIsLoading = () => ({\r\n type: GROUP_ISSUE_CARD_IS_LOADING\r\n});\r\n\r\nconst _groupIssueCardsSuccess = responseData => ({\r\n type: GROUP_ISSUE_CARD_SUCCESS,\r\n payload: responseData\r\n});\r\n\r\nconst _groupIssueCardsFail = () => ({\r\n type: GROUP_ISSUE_CARD_FAIL\r\n});\r\n\r\nexport const groupIssueCards = ({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment,\r\n redemptionTransactionId,\r\n cardActivationResponse\r\n}) => async dispatch => {\r\n dispatch(_groupIssueCardsIsLoading());\r\n let clonedPassengers = cloneDeep(passengers);\r\n clonedPassengers = clonedPassengers.map(p => {\r\n if (p.meta) delete p.meta;\r\n p.voucherValue = p.ctpVoucherValue;\r\n return p;\r\n });\r\n let clonedCollector = { ...collector, csoSignatureBase64: '' };\r\n\r\n let postData = {\r\n tourLeader,\r\n collector: clonedCollector,\r\n group,\r\n passengers: clonedPassengers.filter(p => p.collecting),\r\n signatureUri,\r\n isDigitalCard:\r\n cardAssignment === MULTI_CARD_DIGITAL ||\r\n cardAssignment === SINGLE_CARD_DIGITAL,\r\n isSingleCard: cardAssignment === SINGLE_CARD_DIGITAL,\r\n isPreloadedVouchersCard:\r\n cardAssignment === MULTI_CARD_EV ||\r\n cardAssignment === MULTI_CARD_UNLOADED,\r\n redemptionTransactionId: redemptionTransactionId\r\n };\r\n\r\n const rs = await axios\r\n .post(\r\n baseURL + '/Group/GroupIssueCards',\r\n postData,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n\r\n if (rs.data.success) {\r\n dispatch(\r\n _groupIssueCardsSuccess({\r\n result: rs.data.result,\r\n cardActivationResponse\r\n })\r\n );\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_groupIssueCardsFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _createGroupTransactionAndAssignDigitalCardsIsLoading = () => ({\r\n type: CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_IS_LOADING\r\n});\r\n\r\nconst _createGroupTransactionAndAssignDigitalCardsSuccess = responseData => ({\r\n type: CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_SUCCESS,\r\n payload: responseData\r\n});\r\n\r\nconst _createGroupTransactionAndAssignDigitalCardsFail = () => ({\r\n type: CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_FAIL\r\n});\r\n\r\nexport const createGroupTransactionAndAssignDigitalCards = ({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment\r\n}) => async dispatch => {\r\n dispatch(_createGroupTransactionAndAssignDigitalCardsIsLoading());\r\n let clonedPassengers = cloneDeep(passengers);\r\n clonedPassengers = clonedPassengers.filter(p => p.collecting === true);\r\n clonedPassengers = clonedPassengers.map(p => {\r\n if (p.meta) delete p.meta;\r\n p.voucherValue = p.ctpVoucherValue;\r\n return p;\r\n });\r\n let clonedCollector = { ...collector, csoSignatureBase64: '' };\r\n\r\n let postData = {\r\n tourLeader,\r\n collector: clonedCollector,\r\n group,\r\n passengers: clonedPassengers,\r\n signatureUri,\r\n isDigitalCard:\r\n cardAssignment === MULTI_CARD_DIGITAL ||\r\n cardAssignment === SINGLE_CARD_DIGITAL,\r\n isSingleCard: cardAssignment === SINGLE_CARD_DIGITAL,\r\n isPreloadedVouchersCard:\r\n cardAssignment === MULTI_CARD_EV ||\r\n cardAssignment === MULTI_CARD_UNLOADED\r\n };\r\n\r\n const rs = await axios\r\n .post(\r\n baseURL + '/Group/CreateGroupTransaction',\r\n postData,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n\r\n if (rs.data.success) {\r\n dispatch(\r\n _createGroupTransactionAndAssignDigitalCardsSuccess(rs.data.result)\r\n );\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_createGroupTransactionAndAssignDigitalCardsFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _checkInactiveCardsIsLoading = () => {\r\n return { type: CHECK_INACTIVE_CARDS_IS_LOADING };\r\n};\r\n\r\nconst _checkInactiveCardsSuccess = () => {\r\n return { type: CHECK_INACTIVE_CARDS_SUCCESS };\r\n};\r\n\r\nconst _checkInactiveCardsFail = () => {\r\n return { type: CHECK_INACTIVE_CARDS_FAIL };\r\n};\r\n\r\nexport const checkInactiveCards = cards => async dispatch => {\r\n dispatch(_checkInactiveCardsIsLoading());\r\n\r\n let postData = { cards: cards };\r\n\r\n const rs = await axios\r\n .post(\r\n baseURL + '/Member/CheckInactiveCards',\r\n postData,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n dispatch(_checkInactiveCardsFail());\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n\r\n dispatch(_checkInactiveCardsSuccess());\r\n return rs.data;\r\n};\r\n\r\nconst _getGroupAndPassengersIsLoading = () => ({\r\n type: GET_GROUP_AND_PASSENGERS_REDEMPTION_IS_LOADING\r\n});\r\n\r\nconst _getGroupAndPassengersRedemptionSuccess = (rs, flightData) => ({\r\n type: GET_GROUP_AND_PASSENGERS_REDEMPTION_SUCCESS,\r\n rs,\r\n flightData\r\n});\r\n\r\nconst _getGroupAndPassengersRedemptionFail = () => ({\r\n type: GET_GROUP_AND_PASSENGERS_REDEMPTION_FAIL\r\n});\r\n\r\nexport const updatePassengers = passengers => ({\r\n type: UPDATE_PASSENGERS,\r\n passengers\r\n});\r\n\r\nexport const updateGroupCollectorDetails = collector => ({\r\n type: UPDATE_GROUP_COLLECTOR_DETAILS,\r\n collector\r\n});\r\n\r\nexport const groupCollectorSignatureUpload = formData => async dispatch => {\r\n dispatch(_groupCollectorSignatureUploadIsLoading());\r\n\r\n const rs = await axios\r\n .post(\r\n baseURL +\r\n '/File/FileUpload?' +\r\n querystring.stringify({ bucketType: 0 }),\r\n formData,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n if (e.response.data && e.response.data.error) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n dispatch(_groupCollectorSignatureUploadFail());\r\n return { data: { success: false, error: { message } } };\r\n }\r\n }\r\n dispatch(_groupCollectorSignatureUploadFail());\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n if (rs.data.success) {\r\n dispatch(_groupCollectorSignatureUploadSuccess(rs));\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_groupCollectorSignatureUploadFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _groupCollectorSignatureUploadIsLoading = () => ({\r\n type: GROUP_COLLECTOR_SIGNATURE_UPLOAD_IS_LOADING\r\n});\r\nconst _groupCollectorSignatureUploadSuccess = rs => ({\r\n type: GROUP_COLLECTOR_SIGNATURE_UPLOAD_SUCCESS,\r\n rs\r\n});\r\nconst _groupCollectorSignatureUploadFail = () => ({\r\n type: GROUP_COLLECTOR_SIGNATURE_UPLOAD_FAIL\r\n});\r\n\r\nexport const groupSqApiCheck = data => async dispatch => {\r\n dispatch(_groupSqApiCheckIsLoading());\r\n\r\n const rs = await axios\r\n .post(baseURL + '/SqApi/GroupSqApiCheck', data, getCurrentAuthHeader())\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n if (!rs.data) {\r\n dispatch(_groupSqApiCheckFail());\r\n return { success: false, message: 'No data from server' };\r\n }\r\n if (rs.data.success) {\r\n dispatch(_groupSqApiCheckSuccess(rs));\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_groupSqApiCheckFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _groupSqApiCheckIsLoading = () => ({\r\n type: GROUP_SQ_API_CHECK_IS_LOADING\r\n});\r\n\r\nconst _groupSqApiCheckSuccess = rs => ({\r\n type: GROUP_SQ_API_CHECK_SUCCESS,\r\n rs\r\n});\r\n\r\nconst _groupSqApiCheckFail = () => ({\r\n type: GROUP_SQ_API_CHECK_FAIL\r\n});\r\n\r\n/**\r\n * If idx is passed, toggle collection of idx.\r\n * If status is passed, set all collection to status\r\n * @param idx\r\n * @param status\r\n */\r\nexport const updateCollectingStatus = (idx, status) => ({\r\n type: UPDATE_COLLECTING_STATUS,\r\n idx,\r\n status\r\n});\r\nconst UPDATE_COLLECTING_STATUS = 'UPDATE_COLLECTING_STATUS';\r\n\r\nexport const updateSinglePax = (idx, key, value) => ({\r\n type: UPDATE_SINGLE_PAX,\r\n idx,\r\n key,\r\n value\r\n});\r\nconst UPDATE_SINGLE_PAX = 'UPDATE_SINGLE_PAX';\r\n\r\nexport const groupCheckRedeemedPassenger = data => async dispatch => {\r\n dispatch(_groupCheckRedeemedPassengerIsLoading());\r\n\r\n const rs = await axios\r\n .post(\r\n baseURL + '/SqApi/GroupCheckRedeemedPassenger',\r\n data,\r\n getCurrentAuthHeader()\r\n )\r\n .catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {\r\n response: {\r\n data: {\r\n error: { message }\r\n }\r\n }\r\n } = e;\r\n return { data: { success: false, error: { message } } };\r\n }\r\n return {\r\n data: {\r\n success: false,\r\n error: { message: e.response.status + ' Unexpected error' }\r\n }\r\n };\r\n });\r\n if (!rs.data) {\r\n dispatch(_groupCheckRedeemedPassengerFail());\r\n return { success: false, message: 'No data from server' };\r\n }\r\n if (rs.data.success) {\r\n dispatch(_groupCheckRedeemedPassengerSuccess(rs));\r\n return { success: true, message: '' };\r\n } else {\r\n dispatch(_groupCheckRedeemedPassengerFail());\r\n return { success: false, message: rs.data.error.message };\r\n }\r\n};\r\n\r\nconst _groupCheckRedeemedPassengerIsLoading = () => ({\r\n type: GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING\r\n});\r\n\r\nconst _groupCheckRedeemedPassengerSuccess = rs => ({\r\n type: GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS,\r\n rs\r\n});\r\n\r\nconst _groupCheckRedeemedPassengerFail = () => ({\r\n type: GROUP_CHECK_REDEEMED_PASSENGER_FAIL\r\n});\r\n\r\nexport const updateGroupRedemptionFormDuck = (k, v) => ({\r\n type: UPDATE_GROUP_REDEMPTION_FORM_DUCK,\r\n k,\r\n v\r\n});\r\n\r\nexport const updateGroupRedemptionFormDuckObj = obj => ({\r\n type: UPDATE_GROUP_REDEMPTION_FORM_DUCK_OBJ,\r\n obj\r\n});\r\n\r\nconst _mutipleActivateAndIssueCardIsLoading = () => ({\r\n type: MULTIPLE_ACTIVATE_AND_ISSUE_CARD_IS_LOADING\r\n});\r\n\r\nconst _multipleActivateAndIssueCardSuccess = () => ({\r\n type: MULTIPLE_ACTIVATE_AND_ISSUE_CARD_SUCCESS\r\n});\r\n\r\nconst _multipleActivateAndIssueCardFail = () => ({\r\n type: MULTIPLE_ACTIVATE_AND_ISSUE_CARD_FAIL\r\n});\r\n\r\nexport const multipleActivateAndIssueCard = passengers => async dispatch => {\r\n dispatch(_mutipleActivateAndIssueCardIsLoading());\r\n const data = await MemberRepo.multipleActivateAndIssueCards(passengers);\r\n if (!data.success) {\r\n dispatch(_multipleActivateAndIssueCardFail());\r\n return data;\r\n } else {\r\n dispatch(_multipleActivateAndIssueCardSuccess());\r\n return data;\r\n }\r\n};\r\n\r\nconst groupRedemptionFormDuck = (state = initState, action) => {\r\n let newPassenger, newPassengers, newRedeemedPassengers, k, v, obj, newState;\r\n\r\n switch (action.type) {\r\n case RESET_GROUP_REDEMPTION_FORM_REDUCER:\r\n return { ...initState };\r\n\r\n case GET_GROUP_AND_PASSENGERS_REDEMPTION_IS_LOADING:\r\n return { ...state, getGroupAndPassengersIsLoading: true };\r\n\r\n case GET_GROUP_AND_PASSENGERS_REDEMPTION_SUCCESS:\r\n const {\r\n data: {\r\n result: {\r\n group,\r\n groupMetaInfo,\r\n passengers,\r\n tourLeader,\r\n passengersWithMeta\r\n }\r\n }\r\n } = action.rs;\r\n const acceptedPassengers = [];\r\n const rejectedPassengers = [];\r\n const redeemedPassengers = []\r\n passengers.forEach((passenger, i) => {\r\n passenger.collecting = false;\r\n if (passenger.physicalVoucher === null) {\r\n passenger.physicalVoucher = ['', ''];\r\n }\r\n if (passenger.isDeleted === true) {\r\n return;\r\n } else if (passenger.isRedeemed) {\r\n redeemedPassengers.push(passenger);\r\n } else if (passenger.cardNo) {\r\n // passenger.isRedeemed = true;\r\n passenger.meta = passengersWithMeta[i];\r\n rejectedPassengers.push(passenger);\r\n } else if (passenger.rejected !== true) {\r\n // passenger.isRedeemed = false;\r\n passenger.meta = passengersWithMeta[i];\r\n acceptedPassengers.push(passenger);\r\n }\r\n });\r\n return {\r\n ...state,\r\n getGroupAndPassengersIsLoading: false,\r\n group,\r\n passengers: acceptedPassengers,\r\n rejectedPassengers: rejectedPassengers,\r\n redeemedPassengers,\r\n tourLeader,\r\n groupMetaInfo\r\n };\r\n\r\n case GET_GROUP_AND_PASSENGERS_REDEMPTION_FAIL:\r\n return { ...state, getGroupAndPassengersIsLoading: false };\r\n\r\n case GROUP_ISSUE_CARD_IS_LOADING:\r\n return { ...state, groupIssueCardIsLoading: true };\r\n\r\n case GROUP_ISSUE_CARD_SUCCESS: {\r\n let respData = action.payload;\r\n\r\n let clonedPassengers = [...state.passengers];\r\n let collectingPassengers = clonedPassengers.filter(\r\n e => e.collecting\r\n );\r\n debugger\r\n if (\r\n respData.result.length === 1 &&\r\n collectingPassengers.length &&\r\n !collectingPassengers[0].cardNo\r\n ) {\r\n // => single card\r\n let tourLeader = collectingPassengers.find(e => e.isTourLeader);\r\n if (!tourLeader) {\r\n tourLeader = collectingPassengers[0];\r\n }\r\n tourLeader.cardNo = respData.result[0].cardNo;\r\n tourLeader.fullCardNo =\r\n tourLeader.cardNo + CTP_CARD_DEFAULT_CCN;\r\n tourLeader.issuedVouchersList =\r\n respData.result[0].voucherListsJson;\r\n } else {\r\n collectingPassengers.forEach((p, index) => {\r\n if (!p.cardNo) {\r\n p.cardNo = respData.result[index].cardNo;\r\n }\r\n if (p.cardNo) {\r\n p.fullCardNo = p.cardNo + CTP_CARD_DEFAULT_CCN;\r\n }\r\n const temp = respData.result.find(\r\n m => m.cardNo === p.cardNo\r\n );\r\n p.issuedVouchersList = temp && temp.voucherListsJson;\r\n });\r\n }\r\n\r\n return {\r\n ...state,\r\n passengers: clonedPassengers,\r\n groupIssueCardIsLoading: false\r\n };\r\n }\r\n case GROUP_ISSUE_CARD_FAIL:\r\n return { ...state, groupIssueCardIsLoading: false };\r\n\r\n case CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_IS_LOADING:\r\n return {\r\n ...state,\r\n createGroupTransactionAndAssignDigitalCardsIsLoading: true\r\n };\r\n\r\n case CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_SUCCESS: {\r\n let respData = action.payload;\r\n\r\n let clonedPassengers = [].concat(state.passengers);\r\n\r\n if (respData && respData.ctpDigitalCards) {\r\n clonedPassengers.forEach(p => {\r\n let matchedPassenger = respData.ctpDigitalCards.find(\r\n x => x.eTicket1 === p.eTicket1\r\n );\r\n if (matchedPassenger) {\r\n p.cardNo = matchedPassenger.cardNo;\r\n }\r\n });\r\n }\r\n let redemptionTransactionId = respData.redemptionTransactionId;\r\n return {\r\n ...state,\r\n createGroupTransactionAndAssignDigitalCardsIsLoading: false,\r\n passengers: clonedPassengers,\r\n redemptionTransactionId: redemptionTransactionId,\r\n createGroupTransactionAndAssignDigitalCardsCompleted: true\r\n };\r\n }\r\n case CREATE_GROUP_TRANSACTION_AND_ASSIGN_DIGITAL_CARDS_FAIL:\r\n return {\r\n ...state,\r\n createGroupTransactionAndAssignDigitalCardsIsLoading: false\r\n };\r\n\r\n case UPDATE_PASSENGERS:\r\n return { ...state, passengers: action.passengers };\r\n\r\n case UPDATE_GROUP_REDEMPTION_FORM_DATA:\r\n return {\r\n ...state,\r\n getGroupAndPassengersIsLoading: true,\r\n group: action.payload.group,\r\n collector: action.payload.collector,\r\n tourLeader: action.payload.tourLeader,\r\n passengers: action.payload.passengers,\r\n signatureUri: action.payload.signatureUri\r\n };\r\n\r\n case UPDATE_SELECTED_GROUP_ID:\r\n return {\r\n ...state,\r\n selectedGroupId: action.selectedGroupId\r\n };\r\n\r\n case UPDATE_GROUP_COLLECTOR_DETAILS:\r\n return { ...state, collector: { ...action.collector } };\r\n\r\n case GROUP_COLLECTOR_SIGNATURE_UPLOAD_IS_LOADING:\r\n return { ...state, groupCollectorSignatureUploadIsLoading: true };\r\n\r\n case GROUP_COLLECTOR_SIGNATURE_UPLOAD_SUCCESS:\r\n return {\r\n ...state,\r\n groupCollectorSignatureUploadIsLoading: false,\r\n signatureUri: action.rs.data.result[0]\r\n };\r\n\r\n case GROUP_COLLECTOR_SIGNATURE_UPLOAD_FAIL:\r\n return { ...state, groupCollectorSignatureUploadIsLoading: false };\r\n\r\n case GROUP_SQ_API_CHECK_IS_LOADING:\r\n return { ...state, groupSqApiCheckIsLoading: true };\r\n\r\n case GROUP_SQ_API_CHECK_SUCCESS:\r\n const groupSqApiCheckResults = action.rs.data.result.ticketDetails;\r\n // if any of the eticket has ctpEligibility `No`, put passenger into rejectedPassengers\r\n newPassengers = [...state.passengers];\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n let paxIdWithCtpEligibilityNo = [];\r\n\r\n const newRejectedPassengers = [...state.rejectedPassengers];\r\n let paxIdWhoHasFlown = new Set();\r\n let newPassengers2 = newPassengers.map((p, i) => {\r\n for (let k of keys) {\r\n if (p[k] !== '') {\r\n let rs = groupSqApiCheckResults.find(\r\n t => t.ticketNumber === p[k]\r\n );\r\n\r\n let originalETicket = p.eTicket.find(\r\n et => et.eTicketNo === rs.ticketNumber\r\n );\r\n if (\r\n convertSqStatusForDisplay(rs.ctpEligibility) ===\r\n DISPLAY_NO\r\n ) {\r\n newRejectedPassengers.push({ ...p });\r\n paxIdWithCtpEligibilityNo.push(p.id);\r\n return null;\r\n } else {\r\n p.ctpEligibility = rs.ctpEligibility;\r\n p.etVerified = rs.etVerified;\r\n p.collecting = true;\r\n originalETicket.checkStatus = rs.checkStatus;\r\n if (p.eTicket && p.eTicket[0]) {\r\n p.eTicket[0].CheckStatus = rs.CheckStatus;\r\n }\r\n }\r\n if (rs.isCheckPassengerFlown) {\r\n paxIdWhoHasFlown.add(p.id);\r\n }\r\n }\r\n }\r\n return p;\r\n });\r\n newPassengers2 = newPassengers2.filter(x => x !== null);\r\n\r\n paxIdWithCtpEligibilityNo.forEach(id => {\r\n const idx = newPassengers2.findIndex(p => p.id === id);\r\n if (idx !== -1) newPassengers.splice(idx, 1);\r\n });\r\n\r\n return {\r\n ...state,\r\n groupSqApiCheckIsLoading: false,\r\n paxFlown: paxIdWhoHasFlown.size,\r\n passengers: newPassengers2,\r\n rejectedPassengers: newRejectedPassengers,\r\n groupSqApiCheckResults\r\n };\r\n\r\n case GROUP_SQ_API_CHECK_FAIL:\r\n return { ...state, groupSqApiCheckIsLoading: false };\r\n\r\n case UPDATE_COLLECTING_STATUS:\r\n if (action.idx !== undefined) {\r\n newPassenger = { ...state.passengers[action.idx] };\r\n newPassenger.collecting = !newPassenger.collecting;\r\n newPassenger.genPhysicalVoucherNo = null;\r\n newPassenger.lpcPhysicalVoucherNo = null;\r\n newPassenger.ctpVoucherValue = null;\r\n newPassenger.ctpGenValue = null;\r\n newPassenger.ctpLpcValue = null;\r\n newPassenger.physicalVoucherIssued = false;\r\n\r\n newPassengers = [...state.passengers];\r\n newPassengers.splice(action.idx, 1, newPassenger);\r\n return { ...state, passengers: newPassengers };\r\n }\r\n if (action.status !== undefined) {\r\n newPassengers = [...state.passengers];\r\n newPassengers.forEach(p => {\r\n p.collecting = action.status;\r\n });\r\n return { ...state, passengers: newPassengers };\r\n }\r\n return state;\r\n\r\n case UPDATE_SINGLE_PAX:\r\n const { idx, key, value } = action;\r\n newPassenger = { ...state.passengers[idx] };\r\n newPassenger[key] = value;\r\n newPassengers = [...state.passengers];\r\n newPassengers.splice(idx, 1, newPassenger);\r\n return { ...state, passengers: newPassengers };\r\n\r\n case GROUP_CHECK_REDEEMED_PASSENGER_IS_LOADING:\r\n return { ...state, groupCheckRedeemedPassengerIsLoading: true };\r\n\r\n case GROUP_CHECK_REDEEMED_PASSENGER_SUCCESS:\r\n const {\r\n data: {\r\n result: { items }\r\n }\r\n } = action.rs;\r\n\r\n newRedeemedPassengers = [...state.redeemedPassengers];\r\n if (items.length === 0) {\r\n return {\r\n ...state,\r\n groupCheckRedeemedPassengerIsLoading: false\r\n };\r\n }\r\n newPassengers2 = [];\r\n if (items.length > 0) {\r\n // find which pax the eticket belongs to and move to redeemedPassengers array\r\n newPassengers = [...state.passengers];\r\n for (let i = 0; i < newPassengers.length; i++) {\r\n let redeemedPaxCount = 0,\r\n redeemedPaxCountPrev = 0;\r\n const keys = [\r\n 'eTicket1',\r\n 'eTicket2',\r\n 'eTicket3',\r\n 'eTicket4'\r\n ];\r\n keys.forEach(k => {\r\n if (newPassengers[i][k] !== '') {\r\n for (let e of items) {\r\n if (newPassengers[i][k] === e.eTicketNo) {\r\n newPassengers[i].cardNo = e.cardNo;\r\n newPassengers[i].creationTime =\r\n e.creationTime;\r\n newRedeemedPassengers.push(\r\n newPassengers[i]\r\n );\r\n redeemedPaxCount++;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n if (redeemedPaxCount === redeemedPaxCountPrev) {\r\n newPassengers2.push(newPassengers[i]);\r\n } else {\r\n redeemedPaxCountPrev++;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n groupCheckRedeemedPassengerIsLoading: false,\r\n passengers: newPassengers2,\r\n redeemedPassengers: newRedeemedPassengers\r\n };\r\n\r\n case GROUP_CHECK_REDEEMED_PASSENGER_FAIL:\r\n return { ...state, groupCheckRedeemedPassengerIsLoading: false };\r\n\r\n case UPDATE_GROUP_REDEMPTION_FORM_DUCK:\r\n ({ k, v } = action);\r\n return { ...state, [k]: v };\r\n\r\n case UPDATE_GROUP_REDEMPTION_FORM_DUCK_OBJ:\r\n ({ obj } = action);\r\n newState = { ...state };\r\n newState = { ...spreadObj(newState, obj) };\r\n return newState;\r\n\r\n case CHECK_INACTIVE_CARDS_IS_LOADING:\r\n return { ...state, checkInactiveCardsIsLoading: true };\r\n\r\n case CHECK_INACTIVE_CARDS_FAIL:\r\n return { ...state, checkInactiveCardsIsLoading: false };\r\n\r\n case CHECK_INACTIVE_CARDS_SUCCESS:\r\n return { ...state, checkInactiveCardsIsLoading: false };\r\n\r\n case MULTIPLE_ACTIVATE_AND_ISSUE_CARD_IS_LOADING:\r\n return { ...state, multipleActivateAndIssueCardIsLoading: true };\r\n\r\n case MULTIPLE_ACTIVATE_AND_ISSUE_CARD_SUCCESS:\r\n return {\r\n ...state,\r\n multipleActivateAndIssueCardIsLoading: false,\r\n multipleActivateAndIssueCardComplete: true\r\n };\r\n\r\n case MULTIPLE_ACTIVATE_AND_ISSUE_CARD_FAIL:\r\n return {\r\n ...state,\r\n multipleActivateAndIssueCardIsLoading: false,\r\n multipleActivateAndIssueCardComplete: false\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default groupRedemptionFormDuck;\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, Typography } from '@material-ui/core'\r\nimport { green } from '@material-ui/core/colors'\r\nimport { updateGroupCollectorDetails } from '../../ducks/groupRedemptionFormDuck'\r\nimport Table from '@material-ui/core/Table/Table'\r\nimport TableHead from '@material-ui/core/TableHead/TableHead'\r\nimport TableRow from '@material-ui/core/TableRow/TableRow'\r\nimport TableCell from '@material-ui/core/TableCell/TableCell'\r\nimport TableBody from '@material-ui/core/TableBody/TableBody'\r\nimport Paper from '@material-ui/core/Paper/Paper'\r\nimport moment from 'moment'\r\nimport { generateCollectionAgreementMessage, templateData, urlData, voucherData } from '../../constants/consentMessages'\r\nimport { MULTI_CARD_EV } from '../../constants/groupCardAssignment'\r\n\r\nclass GroupCollectorForm extends React.Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\ttotalCtpGenValue: 0,\r\n\t\t\ttotalCtpLcpValue: 0,\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst {\r\n\t\t\tgroupRedemptionFormDuck: { passengers },\r\n\t\t} = this.props\r\n\t\tlet voucherDataCollected = this._getOverallVoucherData(passengers)\r\n\t\tthis._buildConsentMessages(voucherDataCollected)\r\n\t}\r\n\r\n\t_getOverallVoucherData(passengers){\r\n let overallVoucherData = {\r\n totalCtpGenValue: 0,\r\n totalCtpLpcValue: 0,\r\n undeletedPax: 0,\r\n };\r\n\r\n for (const p of passengers) {\r\n if (!p.isDeleted && p.collecting) {\r\n overallVoucherData.totalCtpGenValue = parseInt(overallVoucherData.totalCtpGenValue) + parseInt(p.ctpGenValue)\r\n\t\t\t\toverallVoucherData.totalCtpLpcValue = parseInt(overallVoucherData.totalCtpLpcValue) + parseInt(p.ctpLpcValue)\r\n\t\t\t\toverallVoucherData.undeletedPax++\r\n }\r\n }\r\n return overallVoucherData\r\n }\r\n\r\n\t_buildConsentMessages(voucherDataCollected) {\r\n\t\tconst {\r\n\t\t\tgroupRedemptionFormDuck: { collector },\r\n\t\t} = this.props\r\n\t\tlet newCollector = { ...collector }\r\n\t\tlet collectionConsent, airlineConsent\r\n\t\tairlineConsent = templateData.airlineGroupConsent\r\n\t\tcollectionConsent = generateCollectionAgreementMessage({\r\n\t\t\tagreementMessage: templateData.ctpGroupCollectionAgreementMessage,\r\n\t\t\tvoucherDataCollected: voucherDataCollected,\r\n\t\t\ttemplateData: templateData,\r\n\t\t\turlData: urlData\r\n\t\t})\r\n\r\n\t\tnewCollector.collectionConsent = collectionConsent\r\n\t\tnewCollector.airlineConsent = airlineConsent\r\n\t\tthis.props.updateGroupCollectorDetails(newCollector)\r\n\t}\r\n\r\n\tonConsent = async () => {\r\n\t\tlet {\r\n\t\t\tgroupRedemptionFormDuck: { collector },\r\n\t\t} = this.props\r\n\t\tcollector = { ...collector, allowReceivingInfo: !collector.allowReceivingInfo }\r\n\t\tawait this.props.updateGroupCollectorDetails(collector)\r\n\t\tthis.props.onGroupUpdate()\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tgroupRedemptionFormDuck: { group, tourLeader, passengers, collector, cardAssignment },\r\n\t\t} = this.props\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tGroup Reference No\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{group.refNo}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tTour Company\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{group.tourCompany}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tTour Leader Name\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{tourLeader.lastName + ' ' + tourLeader.firstName}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCollection Date / Time\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{moment().format('DD/MM/YY hh:mm')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tPax Booking Ref. No.1\r\n\t\t\t\t\t\t\t\t\t\tFirst name\r\n\t\t\t\t\t\t\t\t\t\tLast name\r\n\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'multi' && Card Number}\r\n\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'physical' && GEN Card Number}\r\n\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'physical' && LPC Card Number}\r\n\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'multi' && Voucher Value}\r\n\t\t\t\t\t\t\t\t\t\t{cardAssignment === MULTI_CARD_EV && Preloaded Card No}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{passengers\r\n\t\t\t\t\t\t\t\t\t\t.filter((p) => p.collecting)\r\n\t\t\t\t\t\t\t\t\t\t.map((passenger, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{passenger.pnr}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.firstName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.lastName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'multi' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{passenger.cardNo}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cardAssignment === MULTI_CARD_EV && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{passenger.preloadedVouchersCardNo}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'physical' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{passenger.genPhysicalVoucherNo}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'physical' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{passenger.lpcPhysicalVoucherNo}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cardAssignment === 'multi' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t${passenger.ctpGenValue ? passenger.ctpGenValue : 0} GEN | ${passenger.ctpLpcValue ? passenger.ctpLpcValue : 0} LPC\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{/* \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
*/}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\twaiting: { color: green[600], fontSize: '.8rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { groupRedemptionFormDuck } = state\r\n\r\n\treturn { groupRedemptionFormDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n\tupdateGroupCollectorDetails: (collector) => dispatch(updateGroupCollectorDetails(collector)),\r\n})\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(GroupCollectorForm))\r\n","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport querystring from 'querystring'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getAllBanner = () => async dispatch => {\r\n dispatch(_getAllBannerIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Banner/GetAllBanner', getCurrentAuthHeader()).catch(e => {\r\n if (!e.response) {\r\n return {data: {success: false, error: {message: 'No response from server'}}}\r\n }\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getAllBannerFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getAllBannerSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getAllBannerFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\nconst GET_ALL_BANNER_IS_LOADING = 'GET_ALL_BANNER_IS_LOADING'\r\nconst GET_ALL_BANNER_SUCCESS = 'GET_ALL_BANNER_SUCCESS'\r\nconst GET_ALL_BANNER_FAIL = 'GET_ALL_BANNER_FAIL'\r\n\r\nconst _getAllBannerIsLoading = () => ({\r\n type: GET_ALL_BANNER_IS_LOADING\r\n})\r\n\r\nconst _getAllBannerSuccess = rs => ({\r\n type: GET_ALL_BANNER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getAllBannerFail = () => ({\r\n type: GET_ALL_BANNER_FAIL\r\n})\r\n\r\nconst UPDATE_SINGLE_BANNER_DETAILS = 'UPDATE_SINGLE_BANNER_DETAILS'\r\nexport const updateSingleBannerDetails = (id, k, v) => ({\r\n type: UPDATE_SINGLE_BANNER_DETAILS,\r\n id, k, v\r\n})\r\n\r\nexport const addBanner = (params, formData) => async dispatch => {\r\n dispatch(_addBannerIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/File/FileUpload?' + querystring.stringify({bucketType: 2}), formData).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(e.response.data && e.response.data.error) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_addBannerFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n params.uri = rs.data.result[0]\r\n const rs2 = await axios.post(baseURL + '/Banner/CreateBanner', params, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(e.response.data && e.response.data.error) {\r\n const {response: {data: {error: { message }}}} = e\r\n return {data: {success: false, error: { message }}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs2.data.success) {\r\n dispatch(_addBannerSuccess(rs))\r\n return {success: true, message: ''}\r\n }\r\n dispatch(_addBannerFail())\r\n return {success: false, message: rs2.data.error.message}\r\n } else {\r\n dispatch(_addBannerFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst ADD_BANNER_IS_LOADING = 'ADD_BANNER_IS_LOADING'\r\nconst ADD_BANNER_SUCCESS = 'ADD_BANNER_SUCCESS'\r\nconst ADD_BANNER_FAIL = 'ADD_BANNER_FAIL'\r\n\r\nconst _addBannerIsLoading = () => ({\r\n type: ADD_BANNER_IS_LOADING\r\n})\r\n\r\nconst _addBannerSuccess = rs => ({\r\n type: ADD_BANNER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _addBannerFail = () => ({\r\n type: ADD_BANNER_FAIL\r\n})\r\n\r\nexport const voidBanner = data => async dispatch => {\r\n dispatch(_voidBannerIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Banner/VoidBanner', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(e.response.data && e.response.data.error) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_voidBannerFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_voidBannerSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_voidBannerFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst VOID_BANNER_IS_LOADING = 'VOID_BANNER_IS_LOADING'\r\nconst VOID_BANNER_SUCCESS = 'VOID_BANNER_SUCCESS'\r\nconst VOID_BANNER_FAIL = 'VOID_BANNER_FAIL'\r\n\r\nconst _voidBannerIsLoading = () => ({\r\n type: VOID_BANNER_IS_LOADING\r\n})\r\n\r\nconst _voidBannerSuccess = rs => ({\r\n type: VOID_BANNER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _voidBannerFail = () => ({\r\n type: VOID_BANNER_FAIL\r\n})\r\n\r\nexport const editBanner = () => async (dispatch, getState) => {\r\n dispatch(_editBannerIsLoading())\r\n\r\n const data = {bannerList: getState().bannerDuck.banners}\r\n const rs = await axios.post(baseURL + '/Banner/EditBanner', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(e.response.data && e.response.data.error) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_editBannerFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_editBannerSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_editBannerFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst EDIT_BANNER_IS_LOADING = 'EDIT_BANNER_IS_LOADING'\r\nconst EDIT_BANNER_SUCCESS = 'EDIT_BANNER_SUCCESS'\r\nconst EDIT_BANNER_FAIL = 'EDIT_BANNER_FAIL'\r\n\r\nconst _editBannerIsLoading = () => ({\r\n type: EDIT_BANNER_IS_LOADING\r\n})\r\n\r\nconst _editBannerSuccess = rs => ({\r\n type: EDIT_BANNER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _editBannerFail = () => ({\r\n type: EDIT_BANNER_FAIL\r\n})\r\n\r\nconst initState = {\r\n getAllBannerIsLoading: false,\r\n banners: [{id: 0, name: '', uri: '', order: 0, sortPriority: 1}],\r\n addBannerIsLoading: false,\r\n voidBannerIsLoading: false,\r\n editBannerIsLoading: false\r\n}\r\n\r\nconst BannerDuck = (state = initState, action) => {\r\n let idx, banner, banners\r\n switch (action.type) {\r\n case GET_ALL_BANNER_IS_LOADING:\r\n return {...state, getAllBannerIsLoading: true}\r\n\r\n case GET_ALL_BANNER_SUCCESS:\r\n return {...state, getAllBannerIsLoading: false, banners: action.rs.data.result.items}\r\n\r\n case GET_ALL_BANNER_FAIL:\r\n return {...state, getAllBannerIsLoading: false}\r\n\r\n case ADD_BANNER_IS_LOADING:\r\n return {...state, addBannerIsLoading: true}\r\n\r\n case ADD_BANNER_SUCCESS:\r\n return {...state, addBannerIsLoading: false}\r\n\r\n case ADD_BANNER_FAIL:\r\n return {...state, addBannerIsLoading: false}\r\n\r\n case VOID_BANNER_IS_LOADING:\r\n return {...state, voidBannerIsLoading: true}\r\n\r\n case VOID_BANNER_SUCCESS:\r\n return {...state, voidBannerIsLoading: false}\r\n\r\n case VOID_BANNER_FAIL:\r\n return {...state, voidBannerIsLoading: false}\r\n\r\n case UPDATE_SINGLE_BANNER_DETAILS:\r\n let {id, k, v} = action\r\n idx = state.banners.findIndex(b => b.id === id)\r\n if (idx !== -1) {\r\n banner = {...state.banners[idx]}\r\n banner[k] = v\r\n banners = [...state.banners]\r\n banners.splice(idx, 1, banner)\r\n return {...state, banners}\r\n }\r\n return state\r\n\r\n case EDIT_BANNER_IS_LOADING:\r\n return {...state, editBannerIsLoading: true}\r\n\r\n case EDIT_BANNER_SUCCESS:\r\n return {...state, editBannerIsLoading: false}\r\n\r\n case EDIT_BANNER_FAIL:\r\n return {...state, editBannerIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default BannerDuck","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, TableRow, TableCell, FormControl, FormHelperText, FormControlLabel, Checkbox, Typography } from '@material-ui/core'\r\nimport moment from 'moment'\r\nimport StyledSection from '../../components/StyledSection'\r\nimport { setMockData, resetIndividualFormReducer } from '../../ducks/individualFormDuck'\r\nimport { TITLE_PREFIX } from '../../constants/titlePrefix'\r\nimport PassengersVoucherTable from '../../components/PassengersVoucherTable'\r\nimport ConsentDerivedDuckContainer from '../derivedDuckContainers/consentDerivedDuckContainer'\r\n\r\nclass CollectorSuccessDisplay extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tconsentError: '',\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Individual Collector Success`\r\n\t}\r\n\r\n\t_renderTableBody = () => {\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: { formDetailsList },\r\n\t\t} = this.props\r\n\t\tconst { individualCollectorOptionDuck } = this.props\r\n\r\n\t\tconst final = []\r\n\t\tformDetailsList.forEach((p) => {\r\n\t\t\tif (p.isDeleted) return\r\n\t\t\tfinal.push(\r\n\t\t\t\t\r\n\t\t\t\t\t{p.eTicketsDetails.eTicket1}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{p.personalDetails.firstName} {p.personalDetails.lastName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{!individualCollectorOptionDuck.isCtpPhysicalVoucher && {p.cardNo}}\r\n\t\t\t\t\t{individualCollectorOptionDuck.isCtpPhysicalVoucher && {p.genPhysicalVoucherNo}}\r\n\t\t\t\t\t{individualCollectorOptionDuck.isCtpPhysicalVoucher && {p.lpcPhysicalVoucherNo}}\r\n\t\t\t\t\t{`$${p.ctpGenValue} GEN | $${p.ctpLpcValue} LPC`}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t})\r\n\t\treturn final\r\n\t}\r\n\r\n\t_totalReceiptValue = () => {\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: { formDetailsList },\r\n\t\t} = this.props\r\n\r\n\t\tlet sum = formDetailsList.reduce((sum, p) => {\r\n\t\t\treturn !p.isDeleted ? sum + p.ctpVoucherValue : sum\r\n\t\t}, 0)\r\n\r\n\t\treturn sum\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, individualFormDuck, consentDerivedDuck } = this.props\r\n\t\tconst { collectorDetails } = individualFormDuck\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tCollector's name:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{collectorDetails.name} {collectorDetails.surname}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tCollector Date/Time:\r\n\t\t\t\t\t\t\t\t{moment().format('DD-MM-YY HH:mm:ss')}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.consentError}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={collectorDetails.allowReceivingInfo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.flexStart}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t */}\r\n\r\n\t\t\t\t\t\t\t{(collectorDetails.clientSignatureBase64 !== '' || collectorDetails.csoSignatureBase64 !== '') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tCollector's Signature:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { individualFormDuck, individualCollectorOptionDuck, consentDerivedDuck } = state\r\n\r\n\treturn { individualFormDuck, individualCollectorOptionDuck, consentDerivedDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tsetMockData: () => dispatch(setMockData()),\r\n\t\tresetIndividualFormReducer: () => dispatch(resetIndividualFormReducer()),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(CollectorSuccessDisplay))\r\n","import { HubConnectionBuilder } from '@aspnet/signalr';\r\nimport {\r\n Button,\r\n Grid,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n withStyles\r\n} from '@material-ui/core';\r\nimport Paper from '@material-ui/core/Paper/Paper';\r\nimport moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport StyledSection from '../../components/StyledSection';\r\nimport { signalRURL } from '../../config/config';\r\nimport {\r\n MULTI_CARD_DIGITAL,\r\n MULTI_CARD_EV,\r\n MULTI_CARD_UNLOADED,\r\n SINGLE_CARD_DIGITAL\r\n} from '../../constants/groupCardAssignment';\r\nimport { TITLE_PREFIX } from '../../constants/titlePrefix';\r\nimport { resetGroupRedemptionFormReducer } from '../../ducks/groupRedemptionFormDuck';\r\nimport { saveCard } from '../../ducks/printCardDuck';\r\nimport signalRConstants from '../../helpers/signalRConstants';\r\n\r\nclass GroupCollectorSuccessDisplay extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n consentError: '',\r\n totalCtpGenValue: 0,\r\n totalCtpLpcValue: 0,\r\n undeletedPax: 0\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Group Collections Success`;\r\n\r\n this.hubConnection = new HubConnectionBuilder()\r\n .withUrl(signalRURL)\r\n .build();\r\n this._startSignalRConnection();\r\n this.hubConnection.on('ReceiveMessage', this._receiveMessage);\r\n this.hubConnection.onclose(async () => {\r\n await this._startSignalRConnection();\r\n });\r\n\r\n const {\r\n groupRedemptionFormDuck: { passengers }\r\n } = this.props;\r\n let totalCtpGenValue = 0;\r\n let totalCtpLpcValue = 0;\r\n let undeletedPax = 0;\r\n for (const p of passengers) {\r\n if (!p.isDeleted) {\r\n totalCtpGenValue = totalCtpGenValue + p.ctpGenValue;\r\n totalCtpLpcValue = totalCtpLpcValue + p.ctpLpcValue;\r\n undeletedPax++;\r\n }\r\n }\r\n\r\n this.setState({ totalCtpGenValue, totalCtpLpcValue, undeletedPax });\r\n }\r\n\r\n _startSignalRConnection = async () => {\r\n this.hubConnection\r\n .start()\r\n .then(() => console.log('Connection started!'))\r\n .catch(err => {\r\n setTimeout(() => this._startSignalRConnection(), 5000);\r\n console.log('Error while establishing connection :(');\r\n });\r\n };\r\n\r\n _receiveMessage = (user, messageStr) => {\r\n let messageObj = JSON.parse(messageStr);\r\n\r\n if (messageObj.source === signalRConstants.USER_CONCIERGE) return;\r\n const currentUser = localStorage.getItem('username');\r\n if (messageObj.user !== currentUser) return;\r\n\r\n if (messageObj.data) {\r\n const {\r\n collectorDetails,\r\n formState,\r\n formDetailsList\r\n } = messageObj.data;\r\n this.props.updateCollectorDetails(collectorDetails);\r\n if (formState) this.setState({ formState });\r\n if (formDetailsList)\r\n this.props.updateFormDetailsList(formDetailsList);\r\n if (messageObj.type === signalRConstants.CLIENT_DONE) {\r\n this.setState({\r\n clientIsDone: true,\r\n isSharingScreen: false,\r\n formState\r\n });\r\n }\r\n }\r\n };\r\n\r\n onPrintAll = cards => {\r\n let { groupRedemptionFormDuck } = this.props;\r\n window.open(\r\n 'print-card?state=ctp_app&id=' +\r\n groupRedemptionFormDuck.redemptionTransactionId\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n groupRedemptionFormDuck: {\r\n collector,\r\n tourLeader,\r\n group,\r\n passengers,\r\n cardAssignment\r\n }\r\n } = this.props;\r\n const cardsToPrint = passengers.map(m => {\r\n return {\r\n cardNo: m.preloadedVouchersCardNo\r\n ? m.preloadedVouchersCardNo\r\n : m.cardNo,\r\n voucherValidFrom: m.voucherValidFrom ? m.voucherValidFrom : '',\r\n voucherValidTo: m.voucherValidFrom ? m.voucherValidTo : '',\r\n voucherValuesAndRemarks: m.voucherValuesAndRemarks\r\n ? m.voucherValuesAndRemarks\r\n : '',\r\n issuedVouchersList: m.issuedVouchersList\r\n };\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n {\r\n this.onPrintAll(cardsToPrint);\r\n }}\r\n variant='contained'\r\n >\r\n Print All Cards\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Group Reference No\r\n \r\n \r\n\r\n \r\n {group.refNo}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tour Company\r\n \r\n \r\n\r\n \r\n {group.tourCompany}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tour Leader Name\r\n \r\n \r\n\r\n \r\n \r\n {tourLeader.lastName +\r\n ' ' +\r\n tourLeader.firstName}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Collection Date / Time\r\n \r\n \r\n\r\n \r\n \r\n {moment().format('DD/MM/YY hh:mm')}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pax Booking Ref. No.1\r\n \r\n \r\n First name\r\n \r\n Last name\r\n {(cardAssignment ===\r\n MULTI_CARD_UNLOADED ||\r\n cardAssignment ===\r\n SINGLE_CARD_DIGITAL ||\r\n cardAssignment ===\r\n MULTI_CARD_DIGITAL) && (\r\n \r\n Card No\r\n \r\n )}\r\n {cardAssignment ===\r\n MULTI_CARD_EV && (\r\n \r\n Preloaded Card No\r\n \r\n )}\r\n\r\n \r\n Voucher Value\r\n \r\n\r\n \r\n Voucher start date\r\n \r\n\r\n \r\n Voucher expiry date\r\n \r\n \r\n \r\n \r\n {passengers\r\n .filter(p => p.collecting)\r\n .map((passenger, index) => {\r\n return (\r\n \r\n \r\n

\r\n {\r\n passenger.pnr\r\n }\r\n

\r\n \r\n \r\n {\r\n passenger.firstName\r\n }\r\n \r\n \r\n {\r\n passenger.lastName\r\n }\r\n \r\n \r\n {/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.printCard(passenger)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{passenger.cardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n \r\n {\r\n passenger.cardNo\r\n }\r\n \r\n \r\n\r\n {/* {(cardAssignment ===\r\n MULTI_CARD_UNLOADED ||\r\n cardAssignment ===\r\n MULTI_CARD_DIGITAL ||\r\n cardAssignment ===\r\n MULTI_CARD_EV) && (\r\n \r\n $\r\n {passenger.ctpGenValue\r\n ? passenger.ctpGenValue\r\n : 0}{' '}\r\n GEN | $\r\n {passenger.ctpLpcValue\r\n ? passenger.ctpLpcValue\r\n : 0}{' '}\r\n LPC\r\n \r\n )} */}\r\n \r\n {passenger.issuedVouchersList &&\r\n passenger\r\n .issuedVouchersList\r\n .length && (\r\n \r\n {\r\n passenger\r\n .issuedVouchersList\r\n .length\r\n }{' '}\r\n x $\r\n {\r\n passenger\r\n .issuedVouchersList[0]\r\n .typeValue\r\n }{' '}\r\n Changi\r\n eVoucher(s)\r\n \r\n )}\r\n \r\n \r\n {passenger.issuedVouchersList &&\r\n passenger\r\n .issuedVouchersList\r\n .length && (\r\n \r\n {\r\n passenger\r\n .issuedVouchersList[0]\r\n .validFrom\r\n }\r\n \r\n )}\r\n \r\n \r\n {passenger.issuedVouchersList &&\r\n passenger\r\n .issuedVouchersList\r\n .length && (\r\n \r\n {\r\n passenger\r\n .issuedVouchersList[0]\r\n .validTo\r\n }\r\n \r\n )}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {collector.clientSignatureBase64 && (\r\n \r\n \r\n \r\n Collector's Signature:\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n row: { display: 'flex' },\r\n rowItem: {\r\n display: 'flex',\r\n flex: 1,\r\n marginRight: 60,\r\n alignItems: 'center'\r\n },\r\n flexStart: { alignItems: 'flex-start' },\r\n consentText: { fontSize: '0.8125rem' },\r\n buttonMargin: { marginTop: '2rem' },\r\n clickable: { cursor: 'pointer', borderBottom: '1px dotted #ccc' }\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const { groupRedemptionFormDuck } = state;\r\n\r\n return { groupRedemptionFormDuck };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n resetGroupRedemptionFormReducer: () =>\r\n dispatch(resetGroupRedemptionFormReducer()),\r\n saveCard: cards => dispatch(saveCard(cards))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(GroupCollectorSuccessDisplay));\r\n","import React from 'react'\r\nimport SectionHeader from '../components/SectionHeader'\r\nimport { HubConnectionBuilder } from '@aspnet/signalr'\r\nimport { signalRURL } from '../config/config'\r\nimport CollectorPersonalDetails from '../containers/individual/CollectorPersonalDetails'\r\nimport {\r\n updateCollectorDetails,\r\n resetIndividualFormReducer,\r\n updateFormDetailsList,\r\n resetCollectorDetails,\r\n updateCrDetails\r\n} from '../ducks/individualFormDuck'\r\nimport { updateAuthDuck } from '../ducks/authDuck'\r\nimport connect from 'react-redux/es/connect/connect'\r\nimport { withStyles, Button, Grid } from '@material-ui/core'\r\nimport signalRConstants from '../helpers/signalRConstants.js'\r\nimport GeneralSignature from '../components/generalForm/GeneralSignature'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { updateGroupRedemptionFormData, updateGroupCollectorDetails } from '../ducks/groupRedemptionFormDuck'\r\nimport GroupCollectorForm from '../containers/group/GroupCollectorForm'\r\nimport StyledSection from '../components/StyledSection'\r\nimport { getAllBanner } from '../ducks/bannerDuck'\r\nimport classNames from 'classnames'\r\nimport anime from 'animejs'\r\nimport CollectorSuccessDisplay from '../containers/individual/CollectorSuccessDisplay'\r\nimport GroupCollectorSuccessDisplay from '../containers/group/GroupCollectorSuccessDisplay'\r\nimport PassengersVoucherTable from \"../components/PassengersVoucherTable\";\r\nimport {updateIndividualCollectorOptions} from \"../ducks/individualCollectorOptionDuck\";\r\nimport {getSettings} from \"../config/config.js\"\r\n\r\nconst BANNER_SCREEN = 'BANNER_SCREEN'\r\nconst INDIVIDUAL_COLLECTOR_SCREEN = 'INDIVIDUAL_COLLECTOR_SCREEN'\r\nconst GROUP_COLLECTOR_SCREEN = 'GROUP_COLLECTOR_SCREEN'\r\nconst INDIVIDUAL_COLLECTOR_SUCCESS = 'INDIVIDUAL_COLLECTOR_SUCCESS'\r\nconst GROUP_COLLECTOR_SUCCESS = 'GROUP_COLLECTOR_SUCCESS'\r\n\r\nlet settings = getSettings()\r\nlet ocidExchangeLink = settings.ocidLink + \"/oauth/authorize?redirect_uri=https://ctpuat.changiairport.com/ocid-exchange&response_type=code&client_id=\" + settings.ocidClientId + \"&state=ctp_app\"\r\n\r\nclass IndividualCollector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.hubConnect = null\r\n\t\tthis.state = {\r\n\t\t\tformState: {},\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tparentDidSubmit: false,\r\n\t\t\tparentDidDone: false,\r\n\t\t\tactiveScreen: 'BANNER_SCREEN',\r\n\t\t\tsortedBanners: [],\r\n overrideExistingCrOptions: false,\r\n\t\t\tsubmitType: ''\r\n\t\t}\r\n\r\n\t\tthis.collectorPersonalDetails = null\r\n\t\tthis.bannerTimeline = null\r\n\t\tthis.homeScreenTimer = null\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tconst user = localStorage.getItem('username')\r\n\t\tif (!user) {\r\n\t\t\tthis._promptLogin()\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n\t\tthis._startSignalRConnection()\r\n\t\tthis.hubConnection.on('ReceiveMessage', this._receiveMessage)\r\n\t\tthis.hubConnection.onclose(async () => {\r\n\t\t\tawait this._startSignalRConnection()\r\n\t\t})\r\n\r\n\t\tconst rs = await this.props.getAllBanner()\r\n\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps, prevState) {\r\n\t\tconst {\r\n\t\t\tbannerDuck: { banners, getAllBannerIsLoading }\r\n\t\t} = this.props\r\n\t\tif (prevProps.bannerDuck.getAllBannerIsLoading === true && getAllBannerIsLoading === false) {\r\n\t\t\tconst sortedBanners = banners.filter(b => !b.isDeleted)\r\n\t\t\tsortedBanners.sort((b1, b2) => b1.sortPriority - b2.sortPriority)\r\n\t\t\tthis.setState({ sortedBanners })\r\n\t\t}\r\n\t}\r\n\r\n\t_startSignalRConnection = async () => {\r\n\t\tthis.hubConnection\r\n\t\t\t.start()\r\n\t\t\t.then(() => console.log('Connection started!'))\r\n\t\t\t.catch(err => {\r\n\t\t\t\tsetTimeout(() => this._startSignalRConnection(), 5000)\r\n\t\t\t\tconsole.log('Error while establishing connection :(')\r\n\t\t\t})\r\n\t}\r\n\r\n\t_sendMessage = (data, messageType = signalRConstants.UPDATE_COLLECTOR_FORM) => {\r\n\t\tconst user = localStorage.getItem('username')\r\n\t\tlet messageObj = {\r\n\t\t\tuser, // check the current user\r\n\t\t\ttype: messageType,\r\n\t\t\tsource: signalRConstants.USER_CLIENT,\r\n\t\t\tdata\r\n\t\t}\r\n\t\tlet messageStr = JSON.stringify(messageObj)\r\n\t\tthis.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function(err) {\r\n\t\t\treturn console.error(err.toString())\r\n\t\t})\r\n\t}\r\n\r\n\t_refreshPage = () => {\r\n\t\twindow.location = '/client-view'\r\n\t}\r\n\r\n\t_receiveMessage = (user, messageStr) => {\r\n\t\tlet messageObj = JSON.parse(messageStr)\r\n\r\n\t\tif (messageObj.type === signalRConstants.REFRESH_CLIENT) {\r\n\t\t\t//window.location = window.location.origin\r\n\t\t\tconsole.log('logout request')\r\n\t\t\twindow.location = '/client-view'\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (messageObj.source === signalRConstants.USER_CLIENT) return\r\n\r\n\t\tconst currentUser = localStorage.getItem('username')\r\n\t\tif (messageObj.user !== currentUser) {\r\n\t\t\tconsole.log('not same user')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tclearTimeout(this.homeScreenTimer)\r\n\r\n\t\tif (messageObj.type === signalRConstants.UPDATE_COLLECTOR_FORM) {\r\n\t\t\tif (messageObj.data) {\r\n\t\t\t\tconst { collectorDetails, formState, formDetailsList, collectorOptions } = messageObj.data\r\n if(collectorDetails) this.props.updateCollectorDetails(collectorDetails)\r\n if(collectorOptions) this.props.updateIndividualCollectorOptions(collectorOptions)\r\n\t\t\t\tif (formState) this.setState({ formState })\r\n\t\t\t\tif (formDetailsList) this.props.updateFormDetailsList(formDetailsList)\r\n\t\t\t}\r\n\t\t} else if (messageObj.type === signalRConstants.DISPLAY_COLLECTOR_FORM) {\r\n\t\t\tthis.setState({ activeScreen: INDIVIDUAL_COLLECTOR_SCREEN, parentDidDone: false, parentDidSubmit: false })\r\n\t\t\tconst { collectorDetails, formState, formDetailsList } = messageObj.data\r\n\t\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\t\tif (formState) this.setState({ formState })\r\n\t\t\tif (formDetailsList) this.props.updateFormDetailsList(formDetailsList)\r\n\t\t} else if (messageObj.type === signalRConstants.DISPLAY_GROUP_COLLECTOR_FORM) {\r\n\t\t\tthis.setState({ activeScreen: GROUP_COLLECTOR_SCREEN })\r\n\t\t\tconst { group, tourLeader, passengers, collector, signatureUri, submitType } = messageObj.data\r\n\t\t\tthis.setState({ submitType })\r\n\t\t\tthis.props.updateGroupRedemptionFormData({ group, tourLeader, passengers, collector, signatureUri })\r\n\t\t} else if (messageObj.type === signalRConstants.DISPLAY_INDIVIDUAL_COLLECTOR_SUCCESS) {\r\n\t\t\tconst { collectorDetails, formDetailsList } = messageObj.data\r\n\t\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\t\tthis.props.updateFormDetailsList(formDetailsList)\r\n\t\t\tthis.setState({ activeScreen: INDIVIDUAL_COLLECTOR_SUCCESS })\r\n\t\t\tthis.homeScreenTimer = setTimeout(() => this.setState({ activeScreen: BANNER_SCREEN }), 20000)\r\n\t\t} else if (messageObj.type === signalRConstants.DISPLAY_GROUP_COLLECTOR_SUCCESS) {\r\n\t\t\tconst { group, tourLeader, passengers, collector, signatureUri } = messageObj.data\r\n\t\t\tthis.props.updateGroupRedemptionFormData({ group, tourLeader, passengers, collector, signatureUri })\r\n\t\t\tthis.setState({ activeScreen: GROUP_COLLECTOR_SUCCESS })\r\n\t\t\tthis.homeScreenTimer = setTimeout(() => this.setState({ activeScreen: BANNER_SCREEN }), 20000)\r\n\t\t} else if (messageObj.type === signalRConstants.EXIT_INDIVIDUAL_COLLECTOR_SUCCESS) {\r\n\t\t\tthis.setState({ activeScreen: BANNER_SCREEN })\r\n\t\t} else if(messageObj.type === signalRConstants.UPDATE_CR_DETAILS_FROM_OCID){\r\n const { crDetails } = messageObj.data\r\n this.props.updateCrDetails(crDetails)\r\n this.setState({overrideExistingCrOptions:true})\r\n\r\n this.ocidWindow.close()\r\n\t\t} else if(messageObj.type === signalRConstants.OPEN_OCID_WINDOW){\r\n \tif(this.state.activeScreen === BANNER_SCREEN ) return;\r\n this.ocidWindow = window.open(\"https://logindev.cag.wwprojects.com/oauth/authorize?redirect_uri=https://ctpuat.changiairport.com/ocid-exchange&response_type=code&client_id=Iu5FSmVXhwJ1PwUQOGfPns3Se6q2gpS1M2y5TiWc&state=ctp_app\"); //todo:minh, need to put as environment variable\r\n\t\t} else if(messageObj.type === signalRConstants.CLOSE_OCID_WINDOW){\r\n this.ocidWindow.close()\r\n }\r\n\t}\r\n\r\n\tonDone = () => {\r\n\t\tthis.setState({ parentDidDone: true })\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\tchildIsValidated = formState => {\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: { collectorDetails }\r\n\t\t} = this.props\r\n\t\t// after child is validated validate signature\r\n\t\tif (collectorDetails.clientSignatureBase64 === '') {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: 'Signature is required to continue'\r\n\t\t\t})\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\t// hide form and send signalR client done\r\n\t\tthis._sendMessage({ collectorDetails, formState }, signalRConstants.CLIENT_DONE)\r\n\t\tthis.setState({ parentDidDone: false, activeScreen: BANNER_SCREEN })\r\n\t\tthis.props.resetIndividualFormReducer()\r\n\t}\r\n\r\n\tresetParentSubmit = () => {\r\n\t\tthis.setState({ parentDidSubmit: false })\r\n\t}\r\n\r\n\tresetParentDone = formState => {\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: { collectorDetails }\r\n\t\t} = this.props\r\n\t\tthis._sendMessage({ collectorDetails, formState })\r\n\t\tthis.setState({ parentDidDone: false })\r\n\t}\r\n\r\n\t// used by INDIVIDUAL_COLLECTOR_SCREEN\r\n\tonSignatureEnd = clientSignatureBase64 => {\r\n\t\tconst details = { ...this.props.individualFormDuck.collectorDetails }\r\n\t\tconst collectorDetails = { ...details, clientSignatureBase64 }\r\n\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\tthis._sendMessage({ collectorDetails })\r\n\t}\r\n\r\n\t// used by INDIVIDUAL_COLLECTOR_SCREEN\r\n\tonSignatureClear = () => {\r\n\t\tconst details = { ...this.props.individualFormDuck.collectorDetails }\r\n\t\tconst collectorDetails = { ...details, clientSignatureBase64: '' }\r\n\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\tthis._sendMessage({ collectorDetails })\r\n\t}\r\n\r\n\t// used by GROUP_COLLECTOR_SCREEN\r\n\tonGroupCollectorSignatureEnd = clientSignatureBase64 => {\r\n\t\tlet {\r\n\t\t\tgroupRedemptionFormDuck: { collector }\r\n\t\t} = this.props\r\n\t\tcollector = { ...collector, clientSignatureBase64 }\r\n\t\tthis.props.updateGroupCollectorDetails(collector)\r\n\t\tthis._sendMessage({ collector }, signalRConstants.UPDATE_GROUP_COLLECTOR_FORM)\r\n\t}\r\n\r\n\t// used by GROUP_COLLECTOR_SCREEN\r\n\tonGroupCollectorSignatureClear = () => {\r\n\t\tlet {\r\n\t\t\tgroupRedemptionFormDuck: { collector }\r\n\t\t} = this.props\r\n\t\tcollector = { ...collector, clientSignatureBase64: '' }\r\n\t\tthis.props.updateGroupCollectorDetails(collector)\r\n\t\tthis._sendMessage({ collector }, signalRConstants.UPDATE_GROUP_COLLECTOR_FORM)\r\n\t}\r\n\r\n\tonClear = async () => {\r\n\t\tthis.props.resetCollectorDetails()\r\n\t\tconst formState = await this.collectorPersonalDetails.onClear()\r\n\t\tthis._sendMessage({\r\n\t\t\tcollectorDetails: this.props.individualFormDuck.collectorDetails,\r\n\t\t\tformState\r\n\t\t})\r\n\t}\r\n\r\n\tonGroupUpdate = () => {\r\n\t\tconst {\r\n\t\t\tgroupRedemptionFormDuck: { collector }\r\n\t\t} = this.props\r\n\t\tthis._sendMessage({ collector }, signalRConstants.UPDATE_GROUP_COLLECTOR_FORM)\r\n\t}\r\n\r\n\tonGroupDone = () => {\r\n\t\tlet {\r\n\t\t\tgroupRedemptionFormDuck: { collector }\r\n\t\t} = this.props\r\n\t\tif (!collector.clientSignatureBase64 && this.state.submitType === 'TOUR_LEADER') {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: 'Signature is required'\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\t\tcollector = { ...collector, clientIsDone: true }\r\n\t\tthis.props.updateGroupCollectorDetails(collector)\r\n\t\tthis._sendMessage({ collector }, signalRConstants.UPDATE_GROUP_COLLECTOR_FORM)\r\n\t\tthis.setState({ activeScreen: BANNER_SCREEN })\r\n\t}\r\n\r\n\tonLogout = () => {\r\n\t\tlocalStorage.clear()\r\n\t\tthis.props.updateAuthDuck('isLoggedIn', null)\r\n\t\tthis._promptLogin()\r\n\t\t//window.location = window.location.origin + '/client-view'\r\n\t}\r\n\r\n\t_promptLogin = () => {\r\n\t\tthis.setState({\r\n\t\t\tshowSnackbar: true,\r\n\t\t\tsnackbarVariant: 'error',\r\n\t\t\tsnackbarMessage: 'Please login on main screen and refresh this page'\r\n\t\t})\r\n\t}\r\n\r\n\r\n\trender() {\r\n\t\tconst { classes, individualFormDuck } = this.props\r\n\t\tconst { sortedBanners } = this.state\r\n\r\n\t\tif (this.state.activeScreen === BANNER_SCREEN && sortedBanners.length > 0) {\r\n\t\t\tif (this.bannerTimeline === null) {\r\n\t\t\t\tthis.bannerTimeline = anime.timeline({\r\n\t\t\t\t\ttargets: '.banner.child',\r\n\t\t\t\t\tduration: 5000,\r\n\t\t\t\t\teasing: 'linear',\r\n\t\t\t\t\tdirection: 'alternate',\r\n\t\t\t\t\tloop: sortedBanners.length > 1 ? true : false\r\n\t\t\t\t})\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.bannerTimeline.add({ delay: 5000 })\r\n\t\t\t\t\tthis.bannerTimeline.add({\r\n\t\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\t\tscale: [0.95, 1],\r\n\t\t\t\t\t\ttranslateX: ['5rem', 0],\r\n\t\t\t\t\t\tdelay: anime.stagger(10000)\r\n\t\t\t\t\t})\r\n\t\t\t\t\tthis.bannerTimeline.add({ delay: 5000 })\r\n\t\t\t\t}, 500)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t{this.state.activeScreen === INDIVIDUAL_COLLECTOR_SCREEN && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t (this.collectorPersonalDetails = instance)}\r\n overrideExistingCrOptions={this.state.overrideExistingCrOptions}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{individualFormDuck.formDetailsList.length > 0 && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.state.activeScreen === BANNER_SCREEN && sortedBanners.length > 0 && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{sortedBanners.map((b, i) => {\r\n\t\t\t\t\t\t\tlet child = ''\r\n\t\t\t\t\t\t\tif (i !== 0) child = 'child'\r\n\t\t\t\t\t\t\treturn banner\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.state.activeScreen === GROUP_COLLECTOR_SCREEN && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{this.state.submitType === 'TOUR_LEADER' && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.state.activeScreen === GROUP_COLLECTOR_SUCCESS && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.state.activeScreen === 'INDIVIDUAL_COLLECTOR_SUCCESS' && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tsectionSingle: { paddingLeft: 30, paddingRight: 30, paddingTop: 50 },\r\n\tdoneBtn: { marginBottom: 50, height: 50 },\r\n\tlogoutBtn: { position: 'absolute', top: '1rem', right: '1rem' },\r\n\timage: { objectFit: 'cover', height: '100vh', width: '100%', position: 'absolute' },\r\n\tfullscreen: { height: '100vh', width: '100%', background: 'black', overflow: 'hidden', position: 'absolute' }\r\n})\r\n\r\nconst mapStateToProps = function(state) {\r\n\tconst { individualFormDuck, groupRedemptionFormDuck, bannerDuck } = state\r\n\treturn { individualFormDuck, groupRedemptionFormDuck, bannerDuck }\r\n}\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n\treturn {\r\n\t\tupdateCollectorDetails: details => dispatch(updateCollectorDetails(details)),\r\n\t\tresetIndividualFormReducer: details => dispatch(resetIndividualFormReducer(details)),\r\n\t\tupdateFormDetailsList: details => dispatch(updateFormDetailsList(details)),\r\n\t\tresetCollectorDetails: () => dispatch(resetCollectorDetails()),\r\n\t\tupdateGroupRedemptionFormData: ({ group, tourLeader, passengers, collector, signatureUri }) =>\r\n\t\t\tdispatch(\r\n\t\t\t\tupdateGroupRedemptionFormData({\r\n\t\t\t\t\tgroup,\r\n\t\t\t\t\ttourLeader,\r\n\t\t\t\t\tpassengers,\r\n\t\t\t\t\tcollector,\r\n\t\t\t\t\tsignatureUri\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\tupdateAuthDuck: (k, v) => dispatch(updateAuthDuck(k, v)),\r\n\t\tupdateGroupCollectorDetails: collector => dispatch(updateGroupCollectorDetails(collector)),\r\n\t\tgetAllBanner: () => dispatch(getAllBanner()),\r\n updateIndividualCollectorOptions: (collectorOptions) => dispatch(updateIndividualCollectorOptions(collectorOptions)),\r\n updateCrDetails: (cardNo) => dispatch(updateCrDetails(cardNo))\r\n\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(IndividualCollector))\r\n","import React from 'react'\r\nimport {NavLink} from 'react-router-dom'\r\nimport {withStyles, Toolbar, Button} from '@material-ui/core'\r\nimport {hasPermissions} from '../../helpers/utilities'\r\nimport {GROUP_CREATOR_PERMISSION, GROUP_ISSUER_PERMISSION} from '../../constants/permissions'\r\n\r\nclass GroupHeader extends React.Component {\r\n\r\n render() {\r\n const {classes} = this.props\r\n\r\n const GROUP_SUBMISSION = props => \r\n const GROUP_ISSUANCE = props => \r\n\r\n const hasCreatorPermissions = hasPermissions([GROUP_CREATOR_PERMISSION])\r\n const hasIssuerPermission = hasPermissions([GROUP_ISSUER_PERMISSION])\r\n\r\n return (\r\n \r\n {hasCreatorPermissions &&\r\n }\r\n {hasIssuerPermission && }\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n active: {\r\n backgroundColor: theme.palette.action.selected\r\n }\r\n})\r\n\r\nexport default withStyles(styles)(GroupHeader)","import React from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {Grid} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport {\r\n hasCreatorPermissions, hasApproverPermissions, hasIssuerPermissions, hasGroupViewPermission\r\n} from '../helpers/utilities'\r\n\r\n/**\r\n * This page exists for routing purpose\r\n */\r\nclass Group extends React.Component {\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Group`\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {hasCreatorPermissions() && }\r\n {(!hasCreatorPermissions() && (hasApproverPermissions() || hasGroupViewPermission())) &&\r\n }\r\n {(!hasCreatorPermissions() && !hasApproverPermissions() && !hasGroupViewPermission() && hasIssuerPermissions()) &&\r\n }\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Group","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n Typography\r\n} from '@material-ui/core';\r\nimport {\r\n uploadGroupManifest,\r\n updateGroupDetails,\r\n getCampaignCodes\r\n} from '../../ducks/groupManifestDuck.js';\r\nimport GeneralDropzone from '../../components/generalForm/GeneralDropzone.js';\r\nimport GeneralFormColumnsContainer from '../../components/generalForm/GeneralFormColumns';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport moment from 'moment';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport { USER_POS } from '../../constants/localStorageType';\r\nimport {\r\n hasCreatorPermissions,\r\n hasApproverPermissions\r\n} from '../../helpers/utilities';\r\nimport { saveAs } from 'file-saver'\r\nimport { getCurrentAuthHeader } from '../../helpers/utilities'\r\nimport { getSettings } from '../../config/config'\r\n\r\nclass GroupSubmissionForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modalOpen: false,\r\n selectedFile: {},\r\n groupDetails: [],\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n isLoading: false,\r\n showRedirectDialog: false\r\n };\r\n }\r\n\r\n componentDidMount = async () => {\r\n let userPos = localStorage.getItem(USER_POS);\r\n if (userPos.length === 0) userPos = 'SIN';\r\n this.handleGroupDetailsChange('pos', userPos);\r\n\r\n const rs = await this.props.getCampaignCodes();\r\n this.setState({\r\n groupDetails: [\r\n {\r\n key: 'collectionDate',\r\n label: 'Collection Date*',\r\n type: 'general-text-date'\r\n },\r\n { key: 'pos', label: 'POS*', type: 'text', disabled: true },\r\n {\r\n key: 'lastFlightDepartureDate',\r\n label: 'Return Flight Departure Date*',\r\n type: 'general-text-date'\r\n },\r\n { key: 'tourCompany', label: 'Tour Company*', type: 'text' },\r\n {\r\n key: 'campaignCode',\r\n label: 'Campaign Code*',\r\n type: 'select',\r\n options: (rs && rs.result) || []\r\n }\r\n ]\r\n });\r\n };\r\n\r\n\tdownloadManifest = () => {\r\n\t\tlet settings = getSettings();\r\n\t\tlet baseURL = settings.baseURL;\r\n\r\n\t\tlet url = baseURL + '/Group/getsamplefile'\r\n\r\n\t\ttry {\r\n\t\t\tvar fetchProp = {method: \"GET\", mode:\"cors\", ...getCurrentAuthHeader()};\r\n\t\t\t\r\n\t\t\tconst fetchFile = fetch(url,fetchProp).then((response) => {\r\n\r\n\t\t\t\tif (!response.ok) {\r\n\t\t\t\t\tconsole.log(\"fetch \"+url+\" response not ok \"+response)\r\n\t\t\t\t\tthrow new Error(response);\r\n\t\t\t\t }\r\n\r\n\t\t\t\t const blob = response.blob().then(fileBlob => {\r\n\t\t\t\t\t// Download the file\r\n\t\t\t\t\tsaveAs(fileBlob, \"ctp_group_manifest.xlsx\");\r\n\t\t\t\t }).catch(err => { console.log(\"download file data has error \"+err)});\r\n\t\t\t \r\n\t\t\t\t \r\n\t\t\t}).catch(resp => { console.log(\"Fetch download file encountered error \"+resp); })\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t } catch (error) {\r\n\t\t\tconsole.error('Failed to download file', error)\r\n\t\t\tthrow new Error(error)\r\n\t\t }\r\n\t}\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n if (acceptedFiles.length === 1) {\r\n this.setState({\r\n selectedFile: acceptedFiles[0],\r\n loaded: 0\r\n });\r\n }\r\n };\r\n\r\n _validateForm = ({\r\n collectionDate,\r\n pos,\r\n lastFlightDepartureDate,\r\n tourCompany,\r\n campaignCode\r\n }) => {\r\n if (!collectionDate) {\r\n this._showSnackBarError('Please fill in collection date');\r\n return false;\r\n }\r\n if (!pos) {\r\n this._showSnackBarError('Please fill in pos');\r\n return false;\r\n }\r\n if (!campaignCode) {\r\n this._showSnackBarError('Please fill in campaign code');\r\n return false;\r\n }\r\n\r\n if (!lastFlightDepartureDate) {\r\n this._showSnackBarError(\r\n 'Please fill in return flight departure date'\r\n );\r\n return false;\r\n }\r\n if (!tourCompany) {\r\n this._showSnackBarError('Please fill in tour company');\r\n return false;\r\n }\r\n\r\n let twoDaysLater = moment().add(2, 'days');\r\n if (!(hasApproverPermissions() && hasCreatorPermissions())) {\r\n // approver + creator permission can by pass 72 hours check.\r\n if (moment(collectionDate).isBefore(twoDaysLater)) {\r\n this._showSnackBarError(\r\n 'Collection Date must be more than 72 hours later'\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n // Validates collection date cannot be after last flight departure, but same day will still go through\r\n if (moment(collectionDate).isAfter(moment(lastFlightDepartureDate))) {\r\n this._showSnackBarError(\r\n 'Collection date cannot be after last flight depature date'\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n _showSnackBarError = message => {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: message,\r\n snackbarVariant: 'error'\r\n });\r\n };\r\n\r\n onSubmit = async () => {\r\n let isValidated = this._validateForm(this.props.groupDetails);\r\n if (isValidated) {\r\n const rs = await this.props.uploadGroupManifest(\r\n this.state.selectedFile,\r\n this.props.groupDetails\r\n );\r\n rs.success\r\n ? this.setState({ showRedirectDialog: true })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error'\r\n });\r\n }\r\n };\r\n\r\n handleGroupDetailsChange = (key, value) => {\r\n let groupDetails = cloneDeep(this.props.groupDetails);\r\n groupDetails[key] = value;\r\n this.props.updateGroupDetails(groupDetails);\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onYes = () => {\r\n window.location = '/dashboard';\r\n };\r\n\r\n onUploadAnotherFile = () => {\r\n window.location = '/group/group-submission';\r\n };\r\n\r\n onRedirectDialogClose = () => {\r\n this.setState({ showRedirectDialog: false });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n File uploaded\r\n \r\n \r\n File verifiction in progress. Status of request will\r\n be updated once read.\r\n
\r\n Do you want to be redirected to dashboard?\r\n
\r\n
\r\n \r\n \r\n \r\n Upload another file\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Download Sample File\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {this.state.selectedFile.name && (\r\n \r\n {this.state.selectedFile.name}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = function(state) {\r\n const { groupManifestDuck } = state;\r\n const { groupDetails } = groupManifestDuck;\r\n return {\r\n groupDetails\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n return {\r\n uploadGroupManifest: (file, groupDetails) =>\r\n dispatch(uploadGroupManifest(file, groupDetails)),\r\n updateGroupDetails: groupDetails =>\r\n dispatch(updateGroupDetails(groupDetails)),\r\n getCampaignCodes: () => dispatch(getCampaignCodes())\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupSubmissionForm);\r\n","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Typography} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport GroupSubmissionForm from '../containers/group/GroupSubmissionForm'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {getAllGroup, voidGroup} from '../ducks/groupApprovalDuck'\r\nimport {GROUP_TYPE_ACTION_REQUIRED} from '../constants/groupType'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\nimport {hasPermissions} from '../helpers/utilities'\r\n\r\nconst LIST_VIEW = 'LIST_VIEW'\r\nconst UPLOAD_VIEW = 'UPLOAD_VIEW'\r\n\r\nclass GroupSubmission extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n activeView: UPLOAD_VIEW,\r\n selectedGroupId: '',\r\n isLoading: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n statusFilter: 'ACTION REQUIRED',\r\n groupType: GROUP_TYPE_ACTION_REQUIRED,\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Group - Group Submission`\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.getAllGroupIsLoading === true && this.props.getAllGroupIsLoading === false) {\r\n this.setState({filteredGroups: this.props.groups})\r\n }\r\n }\r\n\r\n onEdit = row => {\r\n if (this.state.statusFilter === 'PENDING APPROVAL') this.props.history.push('/group/group-approval/' + row.id)\r\n if (this.state.statusFilter === 'ACTION REQUIRED') this.props.history.push('/group/group-submission/' + row.id)\r\n }\r\n\r\n onDelete = row => {\r\n this.setState({showDeleteDialog: true, deletingGroup: row})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const {deletingGroup, groupType} = this.state\r\n const data = {id: deletingGroup.id}\r\n const rs = await this.props.voidGroup(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Group ' + deletingGroup.refNo + ' deleted',\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n const isApprover = hasPermissions('Group.Approver')\r\n this.props.getAllGroup({groupType, getAllUser: isApprover})\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n }\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false, deletingGroup: {}})\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n setActiveView = activeView => this.setState({activeView})\r\n\r\n onFilterChanged = (groupType, statusFilter) => {\r\n this.setState({groupType, statusFilter})\r\n }\r\n\r\n render() {\r\n const {classes, getAllGroupIsLoading, manifestUploadIsLoading} = this.props\r\n const {showDeleteDialog, deletingGroup: {refNo, submittedBy}} = this.state\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n\r\n\r\n\r\n \r\n \r\n\r\n {this.state.activeView === UPLOAD_VIEW && (\r\n \r\n this.setActiveView(LIST_VIEW)}/>\r\n \r\n )}\r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n )\r\n\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = function (state) {\r\n const {groupManifestDuck, groupApprovalDuck, individualFormDuck} = state\r\n\r\n const {groups, getAllGroupIsLoading} = groupApprovalDuck\r\n const {manifestUploadIsLoading, manifestUploadStatus, error, errorArray} = groupManifestDuck\r\n\r\n return {\r\n formDetailsList: individualFormDuck.formDetailsList,\r\n manifestUploadIsLoading,\r\n manifestUploadStatus,\r\n error,\r\n errorArray,\r\n groups,\r\n getAllGroupIsLoading\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {\r\n getAllGroup: ({groupType, getAllUser}) => dispatch(getAllGroup({groupType, getAllUser})),\r\n voidGroup: data => dispatch(voidGroup(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupSubmission))","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Typography} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport GroupSubmissionTable from '../containers/group/GroupSubmissionTable'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {getAllGroup, voidGroup} from '../ducks/groupApprovalDuck'\r\nimport {GROUP_TYPE_PENDING_APPROVAL} from '../constants/groupType.js'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport GroupStatusFilter from '../components/GroupStatusFilter'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\nimport {hasPermissions} from '../helpers/utilities'\r\n\r\nclass GroupSubmission extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isLoading: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n statusFilter: '',\r\n groupType: GROUP_TYPE_PENDING_APPROVAL,\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Group - Group Approval`\r\n\r\n this.setState({statusFilter: 'PENDING APPROVAL'})\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.getAllGroupIsLoading === true && this.props.getAllGroupIsLoading === false) {\r\n this.setState({filteredGroups: this.props.groups})\r\n }\r\n }\r\n\r\n onEdit = row => {\r\n if (this.state.statusFilter === 'PENDING APPROVAL') this.props.history.push('/group/group-approval/' + row.id)\r\n if (this.state.statusFilter === 'ACTION REQUIRED') this.props.history.push('/group/group-submission/' + row.id)\r\n }\r\n\r\n onDelete = row => {\r\n this.setState({showDeleteDialog: true, deletingGroup: row})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const {deletingGroup, groupType} = this.state\r\n const data = {id: deletingGroup.id}\r\n const rs = await this.props.voidGroup(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Group ' + deletingGroup.refNo + ' deleted',\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n const isApprover = hasPermissions('Group.Approver')\r\n this.props.getAllGroup({groupType, getAllUser:isApprover})\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false,\r\n deletingGroup: {}\r\n })\r\n }\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false, deletingGroup: {}})\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onFilterChanged = (groupType, statusFilter) => {\r\n this.setState({groupType, statusFilter})\r\n }\r\n\r\n render() {\r\n const {classes, groups, getAllGroupIsLoading} = this.props\r\n const {groupType, statusFilter, showDeleteDialog, deletingGroup: {refNo, submittedBy}} = this.state\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n Group ref no:\r\n \r\n \r\n {refNo}\r\n \r\n \r\n \r\n \r\n Submitted by:\r\n \r\n \r\n {submittedBy}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n )\r\n\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = function (state) {\r\n const {groupManifestDuck, groupApprovalDuck, individualFormDuck} = state\r\n\r\n const {groups, getAllGroupIsLoading} = groupApprovalDuck\r\n const {manifestUploadIsLoading, manifestUploadStatus, error, errorArray} = groupManifestDuck\r\n\r\n return {\r\n formDetailsList: individualFormDuck.formDetailsList,\r\n manifestUploadIsLoading,\r\n manifestUploadStatus,\r\n error,\r\n errorArray,\r\n groups,\r\n getAllGroupIsLoading\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {\r\n getAllGroup: ({groupType, isApprover}) => dispatch(getAllGroup({groupType, isApprover})),\r\n voidGroup: data => dispatch(voidGroup(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupSubmission))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n withStyles,\r\n Paper,\r\n Table,\r\n TableHead,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TextField,\r\n Checkbox,\r\n Button\r\n} from '@material-ui/core'\r\nimport {toBrowserFriendlyDate} from '../helpers/utilities'\r\nimport StyledDeleteBtn from '../components/StyledDeleteBtn'\r\nimport StyledUndoBtn from '../components/StyledUndoBtn'\r\nimport {\r\n updatePassenger, markAsDelete, unmarkDelete, updateTourLeaderFromPassengerData\r\n} from '../ducks/groupApprovalDuck'\r\nimport {teal, pink, red} from '@material-ui/core/colors'\r\nimport {toHumanFriendlyDate} from '../helpers/utilities'\r\nimport {convertSqStatusForDisplay} from '../helpers/eticketStatusHelper'\r\n\r\nlet eTicket = []\r\n\r\nclass PassengersTableEditable extends Component {\r\n onFieldChange = (id, k, e) => {\r\n const v = e.target ? e.target.value : e\r\n this.props.updatePassenger(id, k, v)\r\n if (e.target) this._updateTourLeaderFromPassengerData(id, k, e.target.value)\r\n }\r\n\r\n _updateTourLeaderFromPassengerData(id, k, v) {\r\n let {passengers} = this.props.groupApprovalDuck\r\n let targetPassenger = passengers.find(passenger => passenger.id.value === id)\r\n if (!targetPassenger) return\r\n if (!targetPassenger.isTourLeader.value) {\r\n return\r\n } else {\r\n this.props.updateTourLeaderFromPassengerData(k, v)\r\n }\r\n\r\n }\r\n\r\n renderETicketIssue = eTicket => {\r\n const {classes} = this.props\r\n\r\n return \r\n }\r\n\r\n renderSqCheckBtn = (pidx, p) => {\r\n const {classes, viewOnly} = this.props\r\n\r\n return \r\n }\r\n\r\n onDelete = id => {\r\n this.props.markAsDelete(id)\r\n }\r\n\r\n onUndo = id => {\r\n this.props.unmarkDelete(id)\r\n }\r\n\r\n renderIssue = issue => {\r\n const {classes} = this.props\r\n return {issue}\r\n }\r\n\r\n getRowClasses = p => {\r\n const {classes} = this.props\r\n\r\n if (p.markedDelete) return classes.deleted\r\n if (p.error) return classes.passengerError\r\n return;\r\n // if (convertSqStatusForDisplay(p.eTicket1.issue) === 'Y') return classes.statusY\r\n // if (convertSqStatusForDisplay(p.eTicket1.issue) === 'N') return classes.statusN\r\n }\r\n\r\n render() {\r\n const {classes, headers, data, dataKeys, viewOnly, origTlId} = this.props\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {headers.map(h => {\r\n return {h}\r\n })}\r\n \r\n \r\n \r\n {data.map((p, i) => {\r\n return \r\n {dataKeys.map(k => {\r\n if (k === 'seq') return \r\n
{i + 1}
\r\n
\r\n\r\n if (k === 'firstName') return \r\n
\r\n {p.id.value === origTlId && *}\r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n
\r\n\r\n
\r\n\r\n if (k === 'lastName') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n \r\n\r\n if (k === 'firstFltNo') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n \r\n\r\n if (k === 'secondFltNo') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n \r\n\r\n if (k === 'thirdFltNo') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n \r\n\r\n if (k === 'fourthFltNo') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderIssue(p[k].issue)}\r\n \r\n\r\n if (k === 'dob') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {p[k].issue}\r\n \r\n\r\n if (k === 'firstFltDepDate') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {p[k].issue}\r\n \r\n\r\n if (k === 'secondFltDepDate') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {p[k].issue}\r\n \r\n\r\n if (k === 'thirdFltDepDate') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {p[k].issue}\r\n \r\n\r\n if (k === 'fourthFltDepDate') return \r\n this.onFieldChange(p.id.value, k, e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {p[k].issue}\r\n \r\n\r\n if (k === 'cardNo') {\r\n return \r\n {p.cardNo.value}\r\n \r\n }\r\n\r\n if (k === 'preloadedVouchersCardNo') {\r\n return \r\n {p.preloadedVouchersCardNo.value}\r\n \r\n }\r\n\r\n if (k === 'genPhysicalVoucherNo') {\r\n return \r\n {p.genPhysicalVoucherNo.value}\r\n \r\n }\r\n\r\n if (k === 'lpcPhysicalVoucherNo') {\r\n return \r\n {p.lpcPhysicalVoucherNo.value}\r\n \r\n }\r\n\r\n if (k === 'voucherValue') {\r\n return \r\n {p.voucherValue.value}\r\n \r\n }\r\n\r\n if (k === 'isTourLeader') {\r\n return \r\n {p.isTourLeader.value && 'Yes'}\r\n \r\n }\r\n\r\n if (k === 'eTicket') {\r\n const eTickets = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n eTickets.forEach(k2 => {\r\n if (p[k2]) eTicket.push(p[k2])\r\n })\r\n const final = eTicket.map((v, i2) => {\r\n if (v.value !== null && v.issue !== null) {\r\n return
  • \r\n
    \r\n this.onFieldChange(p.id.value, 'eTicket' + (i2 + 1), e)}\r\n InputProps={{\r\n classes: {\r\n input: classes.tf\r\n }\r\n }}\r\n disabled={viewOnly}\r\n />\r\n {this.renderETicketIssue(v)}\r\n {!viewOnly && this.renderSqCheckBtn(i, p)}\r\n
    \r\n
  • \r\n }\r\n })\r\n eTicket = []\r\n\r\n return \r\n
      {final}
    \r\n
    \r\n }\r\n\r\n if (k === 'pnr') {\r\n return \r\n

    {p.pnr.value}

    \r\n\r\n {this.renderIssue(p.error && p.error.message)}\r\n
    \r\n }\r\n\r\n if (k === 'collectionDate') {\r\n return {toHumanFriendlyDate(p.collectionDate.value)}\r\n }\r\n\r\n if (k === 'approve' && !viewOnly) {\r\n return \r\n this.onFieldChange(p.id.value, 'approve', !p.approve.value)}\r\n />\r\n \r\n }\r\n\r\n if (k === 'delete' && !viewOnly) {\r\n return \r\n {!p.markedDelete &&\r\n this.onDelete(p.id.value)}/>}\r\n\r\n {p.markedDelete &&\r\n this.onUndo(p.id.value)}/>}\r\n \r\n }\r\n })}\r\n
    \r\n })}\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container,\r\n ol: {padding: '0 1rem', fontSize: '.6rem', width: '12rem'},\r\n tf: {fontSize: '.8rem'},\r\n eTicketIssue: {\r\n color: theme.palette.secondary.main,\r\n display: 'inline',\r\n border: 0,\r\n position: 'absolute',\r\n fontSize: '.8rem',\r\n top: '.7rem',\r\n right: '.5rem',\r\n minWidth: 'auto',\r\n minHeight: 'auto',\r\n width: '1.2rem',\r\n height: '1.2rem',\r\n padding: 0\r\n },\r\n sqCheckBtn: {\r\n display: 'inline',\r\n border: 0,\r\n position: 'absolute',\r\n fontSize: '.8rem',\r\n top: '.7rem',\r\n right: '-1.3rem',\r\n minWidth: 'auto',\r\n minHeight: 'auto',\r\n width: '1.2rem',\r\n height: '1.2rem',\r\n padding: 0\r\n },\r\n deleted: {\r\n background: '#eee',\r\n '& td input': {\r\n color: '#bbb',\r\n textDecoration: 'line-through'\r\n }\r\n },\r\n statusY: {background: teal[50]},\r\n statusN: {background: pink[50]},\r\n passengerError: {background: pink[50]},\r\n issue: {color: red['A100']},\r\n eticketwrap: {position: 'relative'},\r\n firstNameWrap: {position: 'relative'},\r\n tl: {position: 'absolute', top: '.9rem', left: '-1rem'}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {groupApprovalDuck} = state\r\n\r\n return {groupApprovalDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n updatePassenger: (i, k, v) => dispatch(updatePassenger(i, k, v)),\r\n markAsDelete: id => dispatch(markAsDelete(id)),\r\n unmarkDelete: id => dispatch(unmarkDelete(id)),\r\n updateTourLeaderFromPassengerData: (k, v) => dispatch(updateTourLeaderFromPassengerData(k, v))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(PassengersTableEditable))","import React, {PureComponent} from 'react'\r\nimport {Button} from '@material-ui/core'\r\n\r\nclass ScrollToTopBtn extends PureComponent {\r\n onBackToTop = () => {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ScrollToTopBtn","import {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n FormControl,\r\n FormControlLabel,\r\n FormHelperText,\r\n Grid,\r\n InputLabel,\r\n List,\r\n ListItem,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n MenuItem,\r\n OutlinedInput,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Select,\r\n Switch,\r\n TextField,\r\n Typography,\r\n withStyles\r\n} from '@material-ui/core';\r\nimport { RemoveCircle } from '@material-ui/icons';\r\nimport moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport DeleteDialog from '../../components/DeleteDialog';\r\nimport PassengersTableEditable from '../../components/PassengersTableEditable';\r\nimport ScrollToTopBtn from '../../components/ScrollToTopBtn';\r\nimport Spacing from '../../components/Spacing';\r\nimport SqApiCriteriasDialog from '../../components/SqApiCriteriasDialog';\r\nimport StyledDeleteBtn from '../../components/StyledDeleteBtn';\r\nimport StyledGeneralDialog from '../../components/StyledGeneralDialog';\r\nimport StyledSection from '../../components/StyledSection';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport StyledUndoBtn from '../../components/StyledUndoBtn';\r\nimport GeneralDropzone from '../../components/generalForm/GeneralDropzone';\r\nimport GeneralFormColumnsContainer from '../../components/generalForm/GeneralFormColumns';\r\nimport {\r\n MULTI_CARD_DIGITAL,\r\n MULTI_CARD_EV,\r\n MULTI_CARD_UNLOADED,\r\n SINGLE_CARD_DIGITAL\r\n} from '../../constants/groupCardAssignment.js';\r\nimport {\r\n GROUP_ACTION_TYPE_APPROVING,\r\n GROUP_ACTION_TYPE_COLLECTING,\r\n GROUP_ACTION_TYPE_SUBMITTING,\r\n GROUP_ACTION_TYPE_UNAPPROVING,\r\n GROUP_TYPE_ACTION_REQUIRED,\r\n GROUP_TYPE_COLLECTED,\r\n GROUP_TYPE_DELETED,\r\n GROUP_TYPE_NOT_COLLECTED,\r\n GROUP_TYPE_PENDING_APPROVAL,\r\n GROUP_TYPE_PENDING_COLLECTION,\r\n GROUP_TYPE_PENDING_SQ_API,\r\n GROUP_TYPE_REJECTED\r\n} from '../../constants/groupType';\r\nimport { REQUIRED_ERROR_MSG } from '../../constants/messages';\r\nimport {\r\n approvalFilesUpload,\r\n getGroupAndPassengers,\r\n groupApprovalGroupCheckRedeemedPassenger,\r\n markAsDelete,\r\n rejectGroupAndPassengers,\r\n saveGroupEditFormRecord,\r\n unmarkDelete,\r\n updateAllPassengers,\r\n updateApprove,\r\n updateGroupAndPassengers,\r\n updateGroupApprovalDuck,\r\n updateGroupForm,\r\n updatePassenger,\r\n updatePassengersTourLeaderFlag\r\n} from '../../ducks/groupApprovalDuck';\r\nimport { getCampaignCodes } from '../../ducks/groupManifestDuck.js';\r\nimport {\r\n DISPLAY_NO,\r\n convertSqStatusForDisplay\r\n} from '../../helpers/eticketStatusHelper';\r\nimport { getGroupType } from '../../helpers/groupStatusHelper';\r\nimport {\r\n hasApproverPermissions,\r\n hasCreatorPermissions,\r\n hasGroupViewPermission,\r\n hasIssuerPermissions,\r\n sqApiResponseStringToObject,\r\n toBrowserFriendlyDate,\r\n toHumanFriendlyDate\r\n} from '../../helpers/utilities';\r\n\r\nclass GroupReferenceForm extends Component {\r\n sectorHeaders = [\r\n 'Sector 1 Flight No.',\r\n 'Sector 1 Flight Date',\r\n 'Sector 2 Flight No.',\r\n 'Sector 2 Flight Date',\r\n 'Sector 3 Flight No.',\r\n 'Sector 3 Flight Date',\r\n 'Sector 4 Flight No.',\r\n 'Sector 4 Flight Date'\r\n ];\r\n\r\n sectorDataKeys = [\r\n 'firstFltNo',\r\n 'firstFltDepDate',\r\n 'secondFltNo',\r\n 'secondFltDepDate',\r\n 'thirdFltNo',\r\n 'thirdFltDepDate',\r\n 'fourthFltNo',\r\n 'fourthFltDepDate'\r\n ];\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n saveAsDraft: false,\r\n showDialog: false,\r\n editForm: {},\r\n action: 'approveSelected',\r\n sqApiFailedCount: 0,\r\n allChecked: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n criterias: {},\r\n viewCriterias: false,\r\n criteriasMessage: '',\r\n paxWithoutNIssue: 0,\r\n paxWithYIssue: 0,\r\n paxWithMIssue: 0,\r\n paxWithNIssue: 0,\r\n totalPax: 0,\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader',\r\n 'Approve',\r\n 'Delete'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader',\r\n 'approve',\r\n 'delete'\r\n ],\r\n files: [],\r\n groupRefForm: [],\r\n tourLeaderDetailsForm: [\r\n {\r\n key: 'firstName',\r\n label: 'TL First name',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'lastName',\r\n label: 'TL Last name',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'dob',\r\n label: 'TL DOB',\r\n type: 'general-text-date',\r\n customButton: true\r\n },\r\n {\r\n key: 'pnr',\r\n label: 'TL Booking Ref. No. 1',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'pnr2',\r\n label: 'TL Booking Ref. No. 2',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'pnr3',\r\n label: 'TL Booking Ref. No. 3',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'pnr4',\r\n label: 'TL Booking Ref. No. 4',\r\n type: 'text',\r\n customButton: true\r\n }\r\n ],\r\n groupType: '',\r\n viewOnly: false,\r\n accessChecked: false,\r\n deletedOriginalAttachmentIdx: new Set(),\r\n deleteDialog: false,\r\n confirmDelete: false,\r\n transportMeanError: '',\r\n transportRemarksError: '',\r\n attachmentError: '',\r\n deleteNStatusDialog: false,\r\n tlEditable: false,\r\n origTlId: '',\r\n tlDialog: false,\r\n deleteTlDialog: false\r\n };\r\n\r\n this.grpReferenceNo = this.props.location.pathname.split('/').pop();\r\n this.InputLabelRef = null;\r\n }\r\n\r\n componentDidMount = async () => {\r\n const { selectedGroupId } = this.props;\r\n if (selectedGroupId[0] === 'G') {\r\n let getAllUserFlag = false;\r\n if (hasIssuerPermissions() || hasGroupViewPermission())\r\n getAllUserFlag = true;\r\n const rs = await this.props.getGroupAndPassengers({\r\n refNo: this.props.selectedGroupId,\r\n getAllUser: getAllUserFlag\r\n });\r\n if (!rs.success)\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n } else {\r\n // const rs = await this.props.getGroupAndPassengers({groupId: this.props.selectedGroupId, getAllUser:\r\n // true}); if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage:\r\n // rs.message})\r\n }\r\n\r\n const rs = await this.props.getCampaignCodes();\r\n this.setState({\r\n groupRefForm: [\r\n {\r\n key: 'collectionDate',\r\n label: 'Collection Date*',\r\n type: 'general-text-date',\r\n customButton: true\r\n },\r\n {\r\n key: 'tourCompany',\r\n label: 'Tour Company*',\r\n type: 'text',\r\n customButton: true\r\n },\r\n {\r\n key: 'pos',\r\n label: 'POS*',\r\n type: 'text',\r\n customButton: true,\r\n disabled: true\r\n },\r\n {\r\n key: 'lastFlightDepartureDate',\r\n label: 'Return Flight Departure Date*',\r\n type: 'general-text-date',\r\n customButton: true\r\n },\r\n {\r\n key: 'campaignCode',\r\n label: 'Campaign Code*',\r\n type: 'select',\r\n options: (rs && rs.result) || []\r\n }\r\n ]\r\n });\r\n\r\n const { group } = this.props;\r\n let groupType = getGroupType(group);\r\n this.setState({ groupType });\r\n\r\n let viewOnlytemp = false;\r\n\r\n switch (groupType) {\r\n case GROUP_TYPE_PENDING_SQ_API:\r\n break;\r\n case GROUP_TYPE_ACTION_REQUIRED:\r\n if (hasCreatorPermissions()) {\r\n // submittor will always submit all.\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader',\r\n 'Delete'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader',\r\n 'delete'\r\n ],\r\n action: 'approveAll',\r\n groupType,\r\n viewOnly: false,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = false;\r\n } else {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n }\r\n break;\r\n case GROUP_TYPE_PENDING_APPROVAL:\r\n if (hasApproverPermissions()) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader',\r\n 'Approve'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader',\r\n 'approve'\r\n ],\r\n groupType,\r\n viewOnly: false,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = false;\r\n break;\r\n }\r\n\r\n if (hasGroupViewPermission()) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader',\r\n 'Approve'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader',\r\n 'approve'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n break;\r\n }\r\n\r\n if (hasCreatorPermissions()) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n } else {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n }\r\n break;\r\n case GROUP_TYPE_PENDING_COLLECTION:\r\n if (\r\n hasCreatorPermissions() ||\r\n hasApproverPermissions() ||\r\n hasGroupViewPermission() ||\r\n hasIssuerPermissions()\r\n ) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n }\r\n break;\r\n case GROUP_TYPE_COLLECTED:\r\n if (\r\n hasCreatorPermissions() ||\r\n hasApproverPermissions() ||\r\n hasGroupViewPermission() ||\r\n hasIssuerPermissions()\r\n ) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Card No',\r\n 'Preloaded Card No',\r\n 'GEN Voucher No',\r\n 'LPC Voucher No',\r\n 'Voucher Value',\r\n 'Tour leader',\r\n 'Collection Date'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'cardNo',\r\n 'preloadedVouchersCardNo',\r\n 'genPhysicalVoucherNo',\r\n 'lpcPhysicalVoucherNo',\r\n 'voucherValue',\r\n 'isTourLeader',\r\n 'collectionDate'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n }\r\n const { passengers } = this.props;\r\n // if (passengers.length > 0) {\r\n // const keys = [\r\n // 'eTicket1',\r\n // 'eTicket2',\r\n // 'eTicket3',\r\n // 'eTicket4'\r\n // ];\r\n // let eTicketFilter = [];\r\n // passengers.forEach(p => {\r\n // for (let k of keys) {\r\n // if (p[k].value) {\r\n // eTicketFilter.push(p[k].value);\r\n // }\r\n // }\r\n // });\r\n // const rs = await this.props.groupApprovalGroupCheckRedeemedPassenger(\r\n // { eTicketFilter }\r\n // );\r\n // if (!rs.success)\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // }\r\n break;\r\n case GROUP_TYPE_NOT_COLLECTED:\r\n if (\r\n hasCreatorPermissions() ||\r\n hasApproverPermissions() ||\r\n hasGroupViewPermission() ||\r\n hasIssuerPermissions()\r\n ) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n viewOnlytemp = true;\r\n }\r\n break;\r\n\r\n case GROUP_TYPE_REJECTED:\r\n if (\r\n hasApproverPermissions() ||\r\n hasGroupViewPermission() ||\r\n hasCreatorPermissions()\r\n ) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n }\r\n viewOnlytemp = true;\r\n break;\r\n\r\n case GROUP_TYPE_DELETED:\r\n if (hasCreatorPermissions()) {\r\n this.setState({\r\n passengersHeaders: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...this.sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Tour leader'\r\n ],\r\n passengersDataKeys: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...this.sectorDataKeys,\r\n 'pnr',\r\n 'isTourLeader'\r\n ],\r\n groupType,\r\n viewOnly: true,\r\n accessChecked: true\r\n });\r\n }\r\n viewOnlytemp = true;\r\n break;\r\n\r\n default:\r\n throw new Error('Unable to determine status');\r\n }\r\n\r\n if (viewOnlytemp) {\r\n let { groupRefForm, tourLeaderDetailsForm } = this.state;\r\n groupRefForm.forEach(f => {\r\n f.disabled = true;\r\n });\r\n tourLeaderDetailsForm.forEach(f => {\r\n f.disabled = true;\r\n });\r\n this.setState({ groupRefForm, tourLeaderDetailsForm });\r\n }\r\n\r\n const { tlEditable } = this.state;\r\n if (!tlEditable) {\r\n let { tourLeaderDetailsForm } = this.state;\r\n tourLeaderDetailsForm.forEach(f => {\r\n f.disabled = true;\r\n });\r\n this.setState({ tourLeaderDetailsForm });\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (\r\n prevProps.getGroupAndPassengersIsLoading === true &&\r\n this.props.getGroupAndPassengersIsLoading === false\r\n ) {\r\n for (let p of this.props.passengers) {\r\n if (p.isTourLeader.value === true) {\r\n this.setState({ origTlId: p.id.value });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (prevProps.passengers !== this.props.passengers) {\r\n let checkedCount = 0;\r\n let sqApiFailedCount = 0;\r\n let paxWithYIssue = 0;\r\n let paxWithMIssue = 0;\r\n let paxWithNIssue = 0;\r\n\r\n this.props.passengers.forEach(p => {\r\n // if (\r\n // convertSqStatusForDisplay(p['eTicket1'].issue) ===\r\n // DISPLAY_YES\r\n // )\r\n // paxWithYIssue++;\r\n // if (\r\n // convertSqStatusForDisplay(p['eTicket1'].issue) ===\r\n // DISPLAY_MANUAL\r\n // )\r\n // paxWithMIssue++;\r\n // if (\r\n // convertSqStatusForDisplay(p['eTicket1'].issue) ===\r\n // DISPLAY_NO\r\n // )\r\n // paxWithNIssue++;\r\n if (p.approve.value) checkedCount++;\r\n // if (p.sqApiStatus.value === false) sqApiFailedCount++;\r\n });\r\n let totalPax = this.props.passengers.length;\r\n let paxWithoutNIssue = totalPax - paxWithNIssue;\r\n const allChecked = checkedCount === paxWithoutNIssue;\r\n\r\n this.setState({\r\n allChecked,\r\n sqApiFailedCount,\r\n paxWithoutNIssue,\r\n paxWithYIssue,\r\n paxWithMIssue,\r\n paxWithNIssue,\r\n totalPax\r\n });\r\n }\r\n\r\n if (prevProps.tourLeader !== this.props.tourLeader) {\r\n this._updateTourLeaderFlagInPassengers();\r\n }\r\n\r\n if (prevState.tlEditable !== this.state.tlEditable) {\r\n let { tourLeaderDetailsForm } = this.state;\r\n if (this.state.tlEditable) {\r\n tourLeaderDetailsForm.forEach(f => {\r\n delete f.disabled;\r\n });\r\n } else {\r\n tourLeaderDetailsForm.forEach(f => {\r\n f.disabled = true;\r\n });\r\n }\r\n\r\n this.setState({ tourLeaderDetailsForm });\r\n }\r\n }\r\n\r\n onGroupRefChange = (k, v) => {\r\n this.props.updateGroupForm('group', k, v);\r\n };\r\n\r\n onTourLeaderDetailsChange = (k, v) => {\r\n this.props.updateGroupForm('tourLeader', k, v);\r\n };\r\n\r\n _updateTourLeaderFlagInPassengers = () => {\r\n let matchedPassenger = this.props.passengers.find(\r\n passenger =>\r\n passenger.firstName.value === this.props.tourLeader.firstName &&\r\n passenger.lastName.value === this.props.tourLeader.lastName\r\n );\r\n if (!matchedPassenger) this.props.updatePassengersTourLeaderFlag(null);\r\n if (matchedPassenger)\r\n this.props.updatePassengersTourLeaderFlag(\r\n matchedPassenger.id.value\r\n );\r\n };\r\n\r\n onRowEdit = id => {\r\n const idx = this.props.passengers.findIndex(p => p.id.value === id);\r\n const editForm = this.props.passengers[idx];\r\n this.setState({ editForm, showDialog: true });\r\n };\r\n\r\n onRowDelete = id => {\r\n this.props.markAsDelete(id);\r\n };\r\n\r\n onRowUndo = id => {\r\n this.props.unmarkDelete(id);\r\n };\r\n\r\n closeModel = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n onEditFormChange = (k, v) => {\r\n this.setState({\r\n editForm: { ...this.state.editForm, [k]: { value: v } }\r\n });\r\n };\r\n\r\n onEditFormSave = async () => {\r\n const rs = await this.props.saveGroupEditFormRecord(\r\n this.state.editForm\r\n );\r\n if (rs.success) {\r\n this.setState({ showDialog: false, editForm: {} });\r\n } else {\r\n }\r\n };\r\n\r\n onEditFormCancel = () => {\r\n this.setState({ showDialog: false, editForm: {} });\r\n };\r\n\r\n onStatusChange = e => {\r\n this.setState({ action: e.target.value });\r\n };\r\n\r\n _checkMinPax = passengers => {\r\n let approvedCount = 0;\r\n passengers.forEach(p => {\r\n if (p.approve.value === true) {\r\n approvedCount += 1;\r\n }\r\n });\r\n if (approvedCount < 10) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Min. of 10 pax should be approved'\r\n });\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n _checkNIssuePaxIsDeleted = passengers => {\r\n let rs = true;\r\n let illegibleCount = 0;\r\n const { totalPax } = this.state;\r\n for (let p of passengers) {\r\n if (\r\n convertSqStatusForDisplay(p.eTicket1.issue) === DISPLAY_NO &&\r\n !p.markedDelete\r\n )\r\n illegibleCount++;\r\n }\r\n if (illegibleCount > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage:\r\n illegibleCount +\r\n ' of ' +\r\n totalPax +\r\n ' are not eligible. Please remove or edit entries to proceed'\r\n });\r\n rs = false;\r\n }\r\n return rs;\r\n };\r\n\r\n showDeleteDialog = () => {\r\n this.setState({ deleteDialog: true });\r\n };\r\n\r\n onDeleteCancel = () => {\r\n this.setState({ deleteDialog: false, confirmDelete: false });\r\n };\r\n\r\n onDeleteConfirm = () => {\r\n this.setState(\r\n { deleteDialog: false, confirmDelete: true },\r\n async () => {\r\n // Remove attachments in group.attachmentUris then proceed as usual\r\n const {\r\n group: { attachmentUris }\r\n } = this.props;\r\n const { deletedOriginalAttachmentIdx } = this.state;\r\n\r\n let newAttachmentUris = [];\r\n for (let i = 0; i < attachmentUris.length; i++) {\r\n if (!deletedOriginalAttachmentIdx.has(i))\r\n newAttachmentUris.push(attachmentUris[i]);\r\n }\r\n await this.props.updateGroupForm(\r\n 'group',\r\n 'attachmentUris',\r\n newAttachmentUris\r\n );\r\n this.onSubmit();\r\n }\r\n );\r\n };\r\n\r\n validateTransportMean = () => {\r\n const { group } = this.props;\r\n const { deletedOriginalAttachmentIdx } = this.state;\r\n this.setState({\r\n transportMeanError: '',\r\n transportRemarksError: '',\r\n attachmentError: ''\r\n });\r\n\r\n let err = [];\r\n if (group.transportMean === 'na') err.push('transportMeanError');\r\n if (!group.transportRemarks) err.push('transportRemarksError');\r\n\r\n if (this.state.files.length > 0) {\r\n //continue\r\n } else {\r\n if (group.presignedAttachmentUris.length < 1) {\r\n err.push('attachmentError');\r\n } else {\r\n if (\r\n deletedOriginalAttachmentIdx.size ===\r\n group.presignedAttachmentUris.length\r\n ) {\r\n err.push('attachmentError');\r\n }\r\n }\r\n }\r\n\r\n if (err.length > 0) {\r\n err.forEach(k => {\r\n this.setState({ [k]: REQUIRED_ERROR_MSG });\r\n });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please fill in 3-sector fields'\r\n });\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n _currentTourLeader = () => {\r\n const { passengers } = this.props;\r\n\r\n for (let p of passengers) {\r\n if (p.isTourLeader.value) return p.id.value;\r\n }\r\n return '';\r\n };\r\n\r\n _validate2yearsOld = () => {\r\n // 2 years from collection date\r\n const {\r\n group: { collectionDate },\r\n tourLeader: { dob: tlDob, firstName, lastName },\r\n passengers\r\n } = this.props;\r\n let minDob = moment(collectionDate).subtract(2, 'years');\r\n if (moment(tlDob).isAfter(minDob)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `${firstName} ${lastName} has to be at least 2 years old from collection date`\r\n });\r\n return false;\r\n }\r\n let valid = true;\r\n for (let p of passengers) {\r\n if (moment(p.dob.value).isAfter(minDob)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `${p.firstName.value} ${\r\n p.lastName.value\r\n } has to be at least 2 years old from collection date`\r\n });\r\n valid = false;\r\n break;\r\n }\r\n }\r\n return valid;\r\n };\r\n\r\n _validateUniqueETickets = () => {\r\n let eTickets = [];\r\n const { passengers } = this.props;\r\n\r\n for (let passenger of passengers) {\r\n eTickets.push(passenger.eTicket1.value);\r\n if (passenger.eTicket2.value)\r\n eTickets.push(passenger.eTicket2.value);\r\n if (passenger.eTicket3.value)\r\n eTickets.push(passenger.eTicket3.value);\r\n if (passenger.eTicket4.value)\r\n eTickets.push(passenger.eTicket4.value);\r\n }\r\n if (new Set(eTickets).size !== eTickets.length) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `Please ensure no duplicate ETickets`\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n onSubmit = async () => {\r\n const {\r\n groupMetaInfo: { isThreeSector },\r\n paxIdsToReVerify\r\n } = this.props;\r\n const {\r\n groupType,\r\n deletedOriginalAttachmentIdx,\r\n confirmDelete\r\n } = this.state;\r\n\r\n if (paxIdsToReVerify.length > 0) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage:\r\n 'Outstanding changes not verified with SQ checks'\r\n });\r\n return;\r\n }\r\n\r\n if (isThreeSector && !this.validateTransportMean()) return;\r\n\r\n if (!this._validate2yearsOld()) return;\r\n\r\n // if (!this._validateUniqueETickets()) return;\r\n\r\n if (deletedOriginalAttachmentIdx.size > 0 && !confirmDelete) {\r\n return this.showDeleteDialog();\r\n }\r\n\r\n // const { passengers } = this.props;\r\n // let valid = true;\r\n // for (let p of passengers) {\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n // for (let k of keys) {\r\n // if (p[k].value) {\r\n // if (\r\n // !this._validateEticket(\r\n // p[k].value,\r\n // `ETicket ${p[k].value} has to be 13 digits`\r\n // )\r\n // ) {\r\n // valid = false;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // if (!valid) break;\r\n // }\r\n // if (!valid) return;\r\n\r\n let successMessage = '';\r\n if (groupType === GROUP_TYPE_ACTION_REQUIRED) {\r\n if (this.state.saveAsDraft) {\r\n successMessage =\r\n 'Save as Draft Successful. You will be redirected to the Dashboard.';\r\n } else {\r\n successMessage =\r\n 'Submitted for Processing. Please check Dashboard on status of request.';\r\n }\r\n }\r\n if (groupType === GROUP_TYPE_PENDING_APPROVAL)\r\n successMessage =\r\n 'Group Approved - Email has been sent to Requestor. You will be redirected to the Approver Dashboard.';\r\n\r\n if (this.state.action === 'rejectAll') {\r\n const { group, history } = this.props;\r\n const rs = await this.props.rejectGroupAndPassengers(group);\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Rejected successfully'\r\n });\r\n setTimeout(() => {\r\n history.push('/group/group-submission');\r\n }, 3000);\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n }\r\n }\r\n\r\n if (\r\n this.state.action === 'approveAll' ||\r\n this.state.action === 'approveSelected'\r\n ) {\r\n // if approve all, same as \"check all\" then approve selected\r\n if (this.state.action === 'approveAll')\r\n await this.props.updateApprove(true);\r\n const { passengers } = this.props;\r\n\r\n // should have at least 10 pax to be sent for approval\r\n if (!this._checkMinPax(passengers)) return;\r\n // N issues pax should be deleted\r\n // if (!this._checkNIssuePaxIsDeleted(passengers)) return;\r\n\r\n const { files } = this.state;\r\n if (files.length > 0) {\r\n const filesrs = await this.uploadFiles();\r\n if (!filesrs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage:\r\n 'File upload failed for ' + filesrs.message\r\n });\r\n return;\r\n }\r\n }\r\n\r\n const { tourLeader, group } = this.props;\r\n let groupActionType = '';\r\n if (this.state.groupType === GROUP_TYPE_ACTION_REQUIRED && !this.state.saveAsDraft)\r\n groupActionType = GROUP_ACTION_TYPE_SUBMITTING;\r\n if (this.state.groupType === GROUP_TYPE_PENDING_APPROVAL)\r\n groupActionType = GROUP_ACTION_TYPE_APPROVING;\r\n if (this.state.groupType === GROUP_TYPE_PENDING_COLLECTION)\r\n groupActionType = GROUP_ACTION_TYPE_COLLECTING;\r\n let updateResponse = await this.props.updateGroupAndPassengers({\r\n passengers,\r\n tourLeader,\r\n group,\r\n groupActionType\r\n });\r\n if (!updateResponse.success) {\r\n if (updateResponse.result && updateResponse.result.length) {\r\n passengers.forEach(p => (p.error = null));\r\n passengers\r\n .filter(\r\n passenger => passenger.isDeleted.value === false\r\n )\r\n .forEach((p, i) => {\r\n p.error = updateResponse.result[i];\r\n });\r\n }\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage:\r\n (updateResponse.error &&\r\n updateResponse.error.message) ||\r\n updateResponse.message ||\r\n 'An error has occurred',\r\n snackbarVariant: 'error'\r\n });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: successMessage\r\n });\r\n setTimeout(() => {\r\n window.location = '/dashboard';\r\n }, 3000);\r\n }\r\n }\r\n };\r\n\r\n onUnapproveGroup = async () => {\r\n let successMessage = 'Group status is now Pending Approval.';\r\n\r\n const { tourLeader, group, passengers } = this.props;\r\n const groupActionType = GROUP_ACTION_TYPE_UNAPPROVING;\r\n let updateResponse = await this.props.updateGroupAndPassengers({\r\n passengers,\r\n tourLeader,\r\n group,\r\n groupActionType\r\n });\r\n if (!updateResponse.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: updateResponse.error\r\n ? updateResponse.error.message\r\n : 'An error has occurred',\r\n snackbarVariant: 'error'\r\n });\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: successMessage\r\n });\r\n setTimeout(() => {\r\n window.location = '/dashboard';\r\n }, 3000);\r\n }\r\n };\r\n\r\n async uploadFiles() {\r\n const { files } = this.state;\r\n let formData = new FormData();\r\n files.forEach(f => {\r\n formData.append('files', f, f.name);\r\n });\r\n return await this.props.approvalFilesUpload(formData);\r\n }\r\n\r\n onCheckBox = (id, v) => {\r\n this.props.updatePassenger(id, 'approve', !v);\r\n };\r\n\r\n onCheckAll = () => {\r\n this.props.updateApprove(true);\r\n };\r\n\r\n onUncheckAll = () => {\r\n this.props.updateApprove(false);\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onETicketIssueClick = eTicket => {\r\n let criterias = {};\r\n if (/^\\d{11}$/.test(eTicket.remarks))\r\n criterias = sqApiResponseStringToObject(eTicket.remarks);\r\n\r\n Object.keys(criterias).length > 0\r\n ? this.setState({\r\n viewCriterias: true,\r\n criterias,\r\n criteriasMessage: ''\r\n })\r\n : this.setState({\r\n viewCriterias: true,\r\n criterias: {},\r\n criteriasMessage: eTicket.remarks\r\n });\r\n };\r\n\r\n // onSqCheckBtnClick = async (pidx, p) => {\r\n // if (this._checkDuplicateETix()) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: 'Please ensure no duplicated Ticket'\r\n // });\r\n // return;\r\n // }\r\n\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n // const data = { ticketDetails: [] };\r\n // keys.forEach(k => {\r\n // if (p[k].value !== '' && p[k].value !== null)\r\n // data.ticketDetails.push({\r\n // ticketNumber: p[k].value,\r\n // lastName: p.lastName.value,\r\n // passengerId: p.id.value\r\n // });\r\n // });\r\n // const rs = await this.props.groupSubmissionSqApiCheck(pidx, data);\r\n // if (rs.success) {\r\n // const { paxIdsToReVerify } = this.props;\r\n // if (paxIdsToReVerify.includes(p.id.value)) {\r\n // let newPaxIdsToReVerify = paxIdsToReVerify.filter(\r\n // i => i !== p.id.value\r\n // );\r\n // this.props.updateGroupApprovalDuck(\r\n // 'paxIdsToReVerify',\r\n // newPaxIdsToReVerify\r\n // );\r\n // }\r\n // } else {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // }\r\n // };\r\n\r\n onViewCriteriasClose = () => {\r\n this.setState({ viewCriterias: false });\r\n };\r\n\r\n onRadioChange = (k, e) => {\r\n this.props.updateGroupForm('group', k, e.target.value);\r\n };\r\n\r\n onCardAssignmentChange = e => {\r\n this.props.updateGroupForm('group', 'cardAssignment', e.target.value);\r\n };\r\n\r\n ontransportMeanRemarksChange = (k, e) => {\r\n this.props.updateGroupForm('group', k, e.target.value);\r\n };\r\n\r\n onDrop = acceptedFiles => {\r\n const files = [...this.state.files];\r\n for (const af of acceptedFiles) {\r\n let exists = false;\r\n for (const f of files) {\r\n if (af.name === f.name) exists = true;\r\n }\r\n if (!exists) files.push(af);\r\n }\r\n this.setState({ files });\r\n };\r\n\r\n onRemoveCircleClick = (f, i) => {\r\n const files = [...this.state.files];\r\n files.splice(i, 1);\r\n this.setState({ files });\r\n };\r\n\r\n onAttachmentClick = alink => {\r\n window.open(alink);\r\n };\r\n\r\n onCancel = () => {\r\n this.props.history.goBack();\r\n };\r\n\r\n _groupStatus = () => {\r\n const { group, redemptionTransaction } = this.props;\r\n let redeemedDate =\r\n redemptionTransaction.collectionDate ||\r\n redemptionTransaction.creationTime;\r\n\r\n if (redemptionTransaction.creationTime) {\r\n return `Redeemed (${toHumanFriendlyDate(redeemedDate)})`;\r\n } else if (group.approval) {\r\n return 'Approved';\r\n } else if (group.rejected) {\r\n return 'Rejected';\r\n } else {\r\n return '';\r\n }\r\n };\r\n\r\n _formatHumanFriendlyDate = fields => {\r\n let data = { ...fields };\r\n data.dob = toBrowserFriendlyDate(fields.dob);\r\n return data;\r\n };\r\n\r\n onDeleteOrigAttachment = idx => {\r\n this.setState({\r\n deletedOriginalAttachmentIdx: this.state.deletedOriginalAttachmentIdx.add(\r\n idx\r\n )\r\n });\r\n };\r\n\r\n onUndoDeleteOrigAttachment = idx => {\r\n this.state.deletedOriginalAttachmentIdx.delete(idx);\r\n this.setState({\r\n deletedOriginalAttachmentIdx: this.state\r\n .deletedOriginalAttachmentIdx\r\n });\r\n };\r\n\r\n onDeleteNStatus = () => {\r\n this.setState({ deleteNStatusDialog: true });\r\n };\r\n\r\n onDeleteNStatusCancel = () => {\r\n this.setState({ deleteNStatusDialog: false });\r\n };\r\n\r\n onDeleteNStatusConfirm = () => {\r\n const passengers = [...this.props.passengers];\r\n passengers.forEach(p => {\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n for (let k of keys) {\r\n if (\r\n p[k].value !== '' &&\r\n convertSqStatusForDisplay(p[k].issue) === DISPLAY_NO\r\n ) {\r\n p.markedDelete = true;\r\n }\r\n }\r\n });\r\n this.setState({ deleteNStatusDialog: false });\r\n this.props.updateAllPassengers(passengers);\r\n };\r\n\r\n // _checkDuplicateETix() {\r\n // let passengers = this.props.passengers;\r\n // let existingETickets = [];\r\n // for (let i = 0; i < passengers.length; i++) {\r\n // if (!passengers[i].markedDelete) {\r\n // let eTix1Matched = existingETickets.find(\r\n // x => x === passengers[i].eTicket1.value\r\n // );\r\n // let eTix2Matched = existingETickets.find(\r\n // x => x === passengers[i].eTicket2.value\r\n // );\r\n // let eTix3Matched = existingETickets.find(\r\n // x => x === passengers[i].eTicket3.value\r\n // );\r\n // let eTix4Matched = existingETickets.find(\r\n // x => x === passengers[i].eTicket4.value\r\n // );\r\n // if (\r\n // eTix1Matched ||\r\n // eTix2Matched ||\r\n // eTix3Matched ||\r\n // eTix4Matched\r\n // ) {\r\n // return true;\r\n // }\r\n // if (passengers[i].eTicket1.value)\r\n // existingETickets.push(passengers[i].eTicket1.value);\r\n // if (passengers[i].eTicket2.value)\r\n // existingETickets.push(passengers[i].eTicket2.value);\r\n // if (passengers[i].eTicket3.value)\r\n // existingETickets.push(passengers[i].eTicket3.value);\r\n // if (passengers[i].eTicket4.value)\r\n // existingETickets.push(passengers[i].eTicket4.value);\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n\r\n // onSqVerifyAllChanged = async () => {\r\n // if (this._checkDuplicateETix()) {\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: 'Please ensure no duplicated Ticket'\r\n // });\r\n // return;\r\n // }\r\n\r\n // const { passengers, paxIdsToReVerify } = this.props;\r\n // let ticketDetails = [];\r\n // if (paxIdsToReVerify.length < 1) return;\r\n\r\n // paxIdsToReVerify.forEach(pid => {\r\n // let pax = passengers.find(p => p.id.value === pid);\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n // for (let k of keys) {\r\n // if (pax[k].value !== '' && !pax[k].markedDelete) {\r\n // ticketDetails.push({\r\n // ticketNumber: pax[k].value,\r\n // lastName: pax.lastName.value,\r\n // passengerId: pax.id.value\r\n // });\r\n // }\r\n // }\r\n // });\r\n // const data = { ticketDetails };\r\n // const rs = await this.props.groupSubmissionSqApiCheckReVerify(data);\r\n // if (!rs.success)\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: rs.message\r\n // });\r\n // };\r\n\r\n _validateEticket = (eticket, message) => {\r\n if (/[^0-9]/g.test(eticket) || eticket.length !== 13) {\r\n // setTimeout cause any clicking will close snackbar, it causes race condition with onBlur\r\n setTimeout(() => {\r\n const snackbarMessage = message\r\n ? message\r\n : `TL Eticket ${eticket} has to be 13 digits`;\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage\r\n });\r\n }, 500);\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n onCheckTLAndSubmit = () => {\r\n // const { tourLeader } = this.props;\r\n // const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n // let valid = true;\r\n // for (let k of keys) {\r\n // if (tourLeader[k] !== '') {\r\n // if (!this._validateEticket(tourLeader[k])) {\r\n // valid = false;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // if (!valid) return;\r\n\r\n const { origTlId } = this.state;\r\n\r\n if (this._currentTourLeader() !== origTlId) {\r\n this.setState({ tlDialog: true });\r\n } else {\r\n this.setState({\r\n saveAsDraft: false\r\n }, () => {\r\n this.onSubmit();\r\n });\r\n }\r\n };\r\n\r\n onSaveAsDraft = () => {\r\n const { origTlId } = this.state;\r\n\r\n if (this._currentTourLeader() !== origTlId) {\r\n this.setState({ tlDialog: true });\r\n } else {\r\n this.setState({\r\n saveAsDraft: true\r\n }, () => {\r\n this.onSubmit();\r\n });\r\n }\r\n };\r\n\r\n onTlEditableChange = () => {\r\n this.setState({ tlEditable: !this.state.tlEditable });\r\n };\r\n\r\n onTlDialogCancel = () => {\r\n this.setState({ tlDialog: false });\r\n };\r\n\r\n onTlDialogProceed = () => {\r\n this.setState({ tlDialog: false }, () => {\r\n const { passengers } = this.props;\r\n const { origTlId } = this.state;\r\n const p = passengers.find(p => {\r\n if (p.id.value === origTlId && !p.markedDelete) return p;\r\n });\r\n p ? this.setState({ deleteTlDialog: true }) : this.onSubmit();\r\n });\r\n };\r\n\r\n onDeleteTlDialogRetain = () => {\r\n this.setState({ deleteTlDialog: false }, () => {\r\n this.onSubmit();\r\n });\r\n };\r\n\r\n onDeleteTlDialogDelete = () => {\r\n this.setState({ deleteTlDialog: false }, () => {\r\n const { origTlId } = this.state;\r\n this.props.markAsDelete(origTlId);\r\n this.onSubmit();\r\n });\r\n };\r\n\r\n onTourLeaderDetailsBlur = () => {\r\n const { tourLeader } = this.props;\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'];\r\n for (let k of keys) {\r\n if (tourLeader[k] !== '') {\r\n if (!this._validateEticket(tourLeader[k])) break;\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n group,\r\n tourLeader,\r\n passengers,\r\n getGroupAndPassengersIsLoading,\r\n updateGroupAndPassengersIsLoading,\r\n groupSubmissionSqApiCheckIsLoading,\r\n approvalFilesUploadIsLoading,\r\n rejectGroupAndPassengersIsLoading,\r\n groupSubmissionSqApiCheckReVerifyIsLoading,\r\n paxIdsToReVerify,\r\n rejectedPassengers\r\n } = this.props;\r\n const {\r\n totalPax,\r\n passengersHeaders,\r\n passengersDataKeys,\r\n files,\r\n tourLeaderDetailsForm,\r\n groupRefForm,\r\n groupType,\r\n viewOnly,\r\n deletedOriginalAttachmentIdx,\r\n deleteDialog,\r\n transportMeanError,\r\n transportRemarksError,\r\n attachmentError,\r\n deleteNStatusDialog,\r\n tlEditable,\r\n origTlId,\r\n deleteTlDialog,\r\n tlDialog\r\n } = this.state;\r\n let unDeletedPassengers = passengers.filter(\r\n passenger => passenger.isDeleted.value === false\r\n );\r\n const isLoading =\r\n getGroupAndPassengersIsLoading ||\r\n updateGroupAndPassengersIsLoading ||\r\n approvalFilesUploadIsLoading ||\r\n rejectGroupAndPassengersIsLoading ||\r\n groupSubmissionSqApiCheckReVerifyIsLoading;\r\n\r\n return (\r\n \r\n \r\n \r\n Delete/Retain original tour leader\r\n \r\n \r\n Do you want to delete original tour leader?\r\n \r\n \r\n \r\n Retain\r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n\r\n \r\n Tour leader has changed do you want to proceed?\r\n \r\n \r\n All 'N' status will be marked as delete\r\n \r\n \r\n The following attachments will be removed:\r\n
      \r\n {group.attachmentUris.map((a, i) => {\r\n if (deletedOriginalAttachmentIdx.has(i)) {\r\n return
    • {a}
    • ;\r\n }\r\n })}\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n {group && (\r\n \r\n )}\r\n {group && }\r\n {group.rejectionReason && (\r\n \r\n \r\n Rejection Reason\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {tourLeader && (\r\n \r\n )}\r\n \r\n }\r\n disabled={viewOnly}\r\n label={'Edit tour leader'}\r\n />\r\n\r\n {tourLeader && }\r\n \r\n\r\n \r\n \r\n \r\n }\r\n label='Multiple Cards (Unloaded)'\r\n />\r\n }\r\n label='Multiple Cards (Digital)'\r\n />\r\n }\r\n label='Single Card (Digital)'\r\n />\r\n }\r\n label='Multiple Cards (Preloaded eV)'\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Land/Sea\r\n \r\n \r\n \r\n this.onRadioChange('transportMean', e)\r\n }\r\n >\r\n }\r\n label={'NA'}\r\n disabled={viewOnly}\r\n />\r\n }\r\n label={'Sea'}\r\n disabled={viewOnly}\r\n />\r\n }\r\n label={'Land'}\r\n disabled={viewOnly}\r\n />\r\n \r\n {!!transportMeanError && (\r\n \r\n {transportMeanError}\r\n \r\n )}\r\n \r\n \r\n \r\n {group.transportMean !== 'na' && (\r\n \r\n \r\n Land/Sea/Remarks\r\n \r\n \r\n \r\n this.ontransportMeanRemarksChange(\r\n 'transportRemarks',\r\n e\r\n )\r\n }\r\n disabled={viewOnly}\r\n error={!!transportRemarksError}\r\n helperText={transportRemarksError}\r\n />\r\n \r\n \r\n )}\r\n\r\n {!viewOnly && group.transportMean !== 'na' && (\r\n \r\n \r\n Land/Sea booking ref\r\n \r\n \r\n \r\n {!!attachmentError && (\r\n \r\n {attachmentError}\r\n \r\n )}\r\n \r\n \r\n )}\r\n {!viewOnly && group.transportMean !== 'na' && (\r\n \r\n \r\n {' '}\r\n \r\n \r\n
      \r\n {files.map((f, i) => (\r\n
    1. \r\n \r\n {f.name}\r\n \r\n \r\n this.onRemoveCircleClick(\r\n f,\r\n i\r\n )\r\n }\r\n />\r\n \r\n \r\n
    2. \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {group.presignedAttachmentUris.length > 0 && (\r\n \r\n \r\n \r\n Original Attachments\r\n \r\n \r\n \r\n \r\n \r\n {group.presignedAttachmentUris.map(\r\n (alink, i) => (\r\n \r\n \r\n {i + 1}.\r\n \r\n \r\n this.onAttachmentClick(\r\n alink\r\n )\r\n }\r\n classes={{\r\n root:\r\n classes.listItemText\r\n }}\r\n className={\r\n classes.pointer\r\n }\r\n >\r\n {\r\n group\r\n .attachmentUris[\r\n i\r\n ]\r\n }\r\n \r\n \r\n {!deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n disabled={\r\n viewOnly\r\n }\r\n />\r\n )}\r\n {deletedOriginalAttachmentIdx.has(\r\n i\r\n ) && (\r\n \r\n this.onUndoDeleteOrigAttachment(\r\n i\r\n )\r\n }\r\n disabled={\r\n viewOnly\r\n }\r\n />\r\n )}\r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n\r\n \r\n \r\n this.onGroupRefChange('remarks', e.target.value)\r\n }\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Total records submitted: {totalPax}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Records with error:{' '}\r\n {this.state.paxWithNIssue}\r\n \r\n \r\n \r\n \r\n {!group.approval\r\n ? 'Records requiring approval'\r\n : 'Approved'}\r\n : {this.state.paxWithMIssue}\r\n \r\n \r\n \r\n \r\n Records eligible: {this.state.paxWithYIssue}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n const redemptionTransactionId = this.props.redemptionTransaction.id;\r\n window.open(\r\n '/print-card?state=ctp_app&id=' + redemptionTransactionId\r\n );\r\n }}\r\n variant='contained'\r\n >\r\n Print All Cards\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n {!viewOnly && (\r\n \r\n {groupType === GROUP_TYPE_PENDING_APPROVAL && (\r\n \r\n \r\n {\r\n this.InputLabelRef = ref;\r\n }}\r\n htmlFor='action'\r\n >\r\n Action\r\n \r\n {groupType ===\r\n GROUP_TYPE_PENDING_APPROVAL && (\r\n \r\n }\r\n label={'Action'}\r\n displayEmpty\r\n onChange={\r\n this.onStatusChange\r\n }\r\n variant={'filled'}\r\n name='action'\r\n >\r\n \r\n Approve Selected\r\n \r\n \r\n Approve All\r\n \r\n \r\n Reject All\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n {groupType === GROUP_TYPE_PENDING_APPROVAL && (\r\n \r\n {!this.state.allChecked && (\r\n \r\n Check All\r\n \r\n )}\r\n {this.state.allChecked && (\r\n \r\n Uncheck All\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n )}\r\n\r\n {this.state.action === 'rejectAll' && (\r\n \r\n \r\n \r\n this.onGroupRefChange(\r\n 'rejectionReason',\r\n e.target.value\r\n )\r\n }\r\n />\r\n \r\n
    \r\n )}\r\n\r\n {/* {groupType === GROUP_TYPE_ACTION_REQUIRED && (\r\n \r\n \r\n \r\n Delete N status\r\n \r\n \r\n \r\n \r\n Sq verify all changed\r\n \r\n \r\n
    \r\n )} */}\r\n\r\n {!viewOnly && (\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n 0\r\n }\r\n onClick={this.onCheckTLAndSubmit}\r\n >\r\n {groupType ===\r\n GROUP_TYPE_ACTION_REQUIRED &&\r\n 'Submit for approval'}\r\n {groupType ===\r\n GROUP_TYPE_PENDING_APPROVAL &&\r\n 'Submit'}\r\n \r\n \r\n \r\n {groupType ===\r\n GROUP_TYPE_ACTION_REQUIRED && (\r\n 0\r\n }\r\n onClick={this.onSaveAsDraft}\r\n >\r\n Save as draft\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {viewOnly &&\r\n hasApproverPermissions() &&\r\n groupType === GROUP_TYPE_PENDING_COLLECTION && (\r\n \r\n \r\n \r\n 0\r\n }\r\n onClick={this.onUnapproveGroup}\r\n >\r\n Unapproved Group\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n {rejectedPassengers.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n dialog: { width: '20rem' },\r\n listItemText: { flex: 'none' },\r\n pointer: { cursor: 'pointer' },\r\n markedDelete: { ...theme.deletedBackground },\r\n marginTop12: { marginTop: '12px' }\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const {\r\n groupApprovalDuck: {\r\n passengers,\r\n tourLeader,\r\n group,\r\n getGroupAndPassengersIsLoading,\r\n updateGroupAndPassengersIsLoading,\r\n groupSubmissionSqApiCheckIsLoading,\r\n approvalFilesUploadIsLoading,\r\n groupMetaInfo,\r\n rejectGroupAndPassengersIsLoading,\r\n paxIdsToReVerify,\r\n groupSubmissionSqApiCheckReVerifyIsLoading,\r\n rejectedPassengers,\r\n redemptionTransaction\r\n }\r\n } = state;\r\n\r\n return {\r\n passengers,\r\n tourLeader,\r\n group,\r\n getGroupAndPassengersIsLoading,\r\n updateGroupAndPassengersIsLoading,\r\n groupSubmissionSqApiCheckIsLoading,\r\n approvalFilesUploadIsLoading,\r\n groupMetaInfo,\r\n rejectGroupAndPassengersIsLoading,\r\n paxIdsToReVerify,\r\n groupSubmissionSqApiCheckReVerifyIsLoading,\r\n rejectedPassengers,\r\n redemptionTransaction\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n saveGroupEditFormRecord: record =>\r\n dispatch(saveGroupEditFormRecord(record)),\r\n markAsDelete: id => dispatch(markAsDelete(id)),\r\n unmarkDelete: id => dispatch(unmarkDelete(id)),\r\n updatePassenger: (ridx, k, v) => dispatch(updatePassenger(ridx, k, v)),\r\n updateGroupForm: (section, k, v) =>\r\n dispatch(updateGroupForm(section, k, v)),\r\n updateApprove: status => dispatch(updateApprove(status)),\r\n getGroupAndPassengers: data => dispatch(getGroupAndPassengers(data)),\r\n updateGroupAndPassengers: ({\r\n passengers,\r\n group,\r\n tourLeader,\r\n groupActionType\r\n }) =>\r\n dispatch(\r\n updateGroupAndPassengers({\r\n passengers,\r\n group,\r\n tourLeader,\r\n groupActionType\r\n })\r\n ),\r\n rejectGroupAndPassengers: data =>\r\n dispatch(rejectGroupAndPassengers(data)),\r\n // groupSubmissionSqApiCheck: (pidx, data) =>\r\n // dispatch(groupSubmissionSqApiCheck(pidx, data)),\r\n approvalFilesUpload: data => dispatch(approvalFilesUpload(data)),\r\n updateAllPassengers: passengers =>\r\n dispatch(updateAllPassengers(passengers)),\r\n // groupSubmissionSqApiCheckReVerify: data =>\r\n // dispatch(groupSubmissionSqApiCheckReVerify(data)),\r\n updateGroupApprovalDuck: (k, v) =>\r\n dispatch(updateGroupApprovalDuck(k, v)),\r\n updatePassengersTourLeaderFlag: id =>\r\n dispatch(updatePassengersTourLeaderFlag(id)),\r\n groupApprovalGroupCheckRedeemedPassenger: data =>\r\n dispatch(groupApprovalGroupCheckRedeemedPassenger(data)),\r\n getCampaignCodes: () => dispatch(getCampaignCodes())\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(GroupReferenceForm));\r\n","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getGroupAudit = data => async dispatch => {\r\n dispatch(_getGroupAuditIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Group/GetGroupAudit', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getGroupAuditFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getGroupAuditSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getGroupAuditFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_GROUP_AUDIT_IS_LOADING = 'GET_GROUP_AUDIT_IS_LOADING'\r\nconst GET_GROUP_AUDIT_SUCCESS = 'GET_GROUP_AUDIT_SUCCESS'\r\nconst GET_GROUP_AUDIT_FAIL = 'GET_GROUP_AUDIT_FAIL'\r\n\r\nconst _getGroupAuditIsLoading = () => ({\r\n type: GET_GROUP_AUDIT_IS_LOADING\r\n})\r\n\r\nconst _getGroupAuditSuccess = rs => ({\r\n type: GET_GROUP_AUDIT_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getGroupAuditFail = () => ({\r\n type: GET_GROUP_AUDIT_FAIL\r\n})\r\n\r\nexport const getRedemptionTransactionAudit = data => async dispatch => {\r\n dispatch(_getRedemptionTransactionAuditIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/RedemptionTransaction/GetRedemptionTransactionAudit', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getRedemptionTransactionAuditFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getRedemptionTransactionAuditSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getRedemptionTransactionAuditFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_REDEMPTION_TRANSACTION_AUDIT_IS_LOADING = 'GET_REDEMPTION_TRANSACTION_AUDIT_IS_LOADING'\r\nconst GET_REDEMPTION_TRANSACTION_AUDIT_SUCCESS = 'GET_REDEMPTION_TRANSACTION_AUDIT_SUCCESS'\r\nconst GET_REDEMPTION_TRANSACTION_AUDIT_FAIL = 'GET_REDEMPTION_TRANSACTION_AUDIT_FAIL'\r\n\r\nconst _getRedemptionTransactionAuditIsLoading = () => ({\r\n type: GET_REDEMPTION_TRANSACTION_AUDIT_IS_LOADING\r\n})\r\n\r\nconst _getRedemptionTransactionAuditSuccess = rs => ({\r\n type: GET_REDEMPTION_TRANSACTION_AUDIT_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getRedemptionTransactionAuditFail = () => ({\r\n type: GET_REDEMPTION_TRANSACTION_AUDIT_FAIL\r\n})\r\n\r\nlet initState = {\r\n entityChange: {},\r\n entityChangePropertyList: [],\r\n getRedemptionTransactionAuditIsLoading: false,\r\n redemptionTransactionEntityChange: {},\r\n redemptionTransactionEntityChangePropertyList: []\r\n\r\n}\r\n\r\nconst auditLogDuck = (state = initState, action) => {\r\n let entityChangePropertyList, entityChange\r\n switch (action.type) {\r\n\r\n case GET_GROUP_AUDIT_IS_LOADING:\r\n return {...state, getGroupAuditIsLoading: true}\r\n\r\n case GET_GROUP_AUDIT_SUCCESS:\r\n ({entityChangePropertyList, entityChange} = action.rs.data.result)\r\n return {...state, getGroupAuditIsLoading: false, entityChangePropertyList, entityChange}\r\n\r\n case GET_GROUP_AUDIT_FAIL:\r\n return {...state, getGroupAuditIsLoading: false}\r\n\r\n case GET_REDEMPTION_TRANSACTION_AUDIT_IS_LOADING:\r\n return {...state, getRedemptionTransactionAuditIsLoading: true}\r\n\r\n case GET_REDEMPTION_TRANSACTION_AUDIT_SUCCESS:\r\n ({entityChangePropertyList, entityChange} = action.rs.data.result)\r\n return {...state, getRedemptionTransactionAuditIsLoading: false, redemptionTransactionEntityChange: entityChange, redemptionTransactionEntityChangePropertyList: entityChangePropertyList}\r\n\r\n case GET_REDEMPTION_TRANSACTION_AUDIT_FAIL:\r\n return {...state, getRedemptionTransactionAuditIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default auditLogDuck\r\n","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {getGroupAudit} from '../ducks/auditLogDuck'\r\nimport StyledTable from '../components/StyledTable'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport moment from 'moment'\r\n\r\n// TODO: refactor user/time keys\r\nconst AUDIT_TABLE_FIELDS = [\r\n {key: 'seq', label: 'S/N'},\r\n {key: 'userName', label: 'User'},\r\n {key: 'formattedChangeTime', label: 'Time'},\r\n {key: 'entityType', label: 'Type'},\r\n {key: 'entityDisplayName', label: 'Identity'},\r\n {key: 'propertyName', label: 'Field'},\r\n {key: 'originalValue', label: 'Original value'},\r\n {key: 'newValue', label: 'New value'}\r\n]\r\n\r\nclass AuditLogTable extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n\r\n }\r\n\r\n componentDidUpdate = async (prevProps, prevState) => {\r\n if (prevProps.getGroupAndPassengersIsLoading !== this.props.getGroupAndPassengersIsLoading) {\r\n if (this.props.group.id) {\r\n const data = {params: {groupId: this.props.group.id}, ...getCurrentAuthHeader()}\r\n const rs = await this.props.getGroupAudit(data)\r\n \r\n }\r\n }\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n _formatAuditData = auditDatas => {\r\n let formattedAuditDatas = [].concat(auditDatas)\r\n formattedAuditDatas.forEach(formattedAuditData =>\r\n formattedAuditData.formattedChangeTime = moment(formattedAuditData.changeTime).format('DD-MM-YYYY')\r\n )\r\n return formattedAuditDatas\r\n }\r\n\r\n render() {\r\n const {auditLogDuck: {entityChangePropertyList, getGroupAuditIsLoading}} = this.props\r\n\r\n return (\r\n
    \r\n \r\n {entityChangePropertyList.length > 0 && }\r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {auditLogDuck, groupApprovalDuck} = state\r\n const {group, getGroupAndPassengersIsLoading} = groupApprovalDuck\r\n\r\n return {auditLogDuck, group, getGroupAndPassengersIsLoading}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getGroupAudit: data => dispatch(getGroupAudit(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AuditLogTable)","import React, {Component} from 'react'\r\nimport Header from '../containers/Header'\r\nimport {withStyles, Button, Grid} from '@material-ui/core'\r\nimport StyledSection from '../components/StyledSection'\r\nimport GroupReferenceForm from '../containers/group/GroupReferenceForm'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport {GROUP_TYPE_PENDING_APPROVAL} from '../constants/groupType'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport AuditLogTable from '../components/AuditLogTable'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {GROUP_APPROVER_PERMISSION} from '../constants/permissions'\r\nimport {Redirect} from 'react-router-dom'\r\n\r\nclass GroupApprovalDetail extends Component {\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Group - Group Approval Detail`\r\n }\r\n\r\n onBackToListing = () => {\r\n this.props.history.push('/group/group-approval')\r\n }\r\n\r\n render() {\r\n const {classes, match} = this.props\r\n\r\n const hasApprovalPermissions = hasPermissions([GROUP_APPROVER_PERMISSION])\r\n if (!hasApprovalPermissions) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nexport default withStyles(styles)(GroupApprovalDetail)","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nlet settings = getSettings()\r\nlet baseURL = settings.baseURL\r\n\r\nexport const getReprintAuditLog = (redemptionTransactionId) => async (dispatch) => {\r\n\tdispatch(_getReprintAuditLogIsLoading())\r\n\r\n\tconst rs = await axios\r\n\t\t.get(baseURL + '/RedemptionTransaction/GetReprintAuditLog', { params: { redemptionTransactionId: redemptionTransactionId }, ...getCurrentAuthHeader() })\r\n\t\t.catch((e) => {\r\n\t\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\terror: { message },\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t} = e\r\n\t\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t\t}\r\n\t\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t\t})\r\n\r\n\tif (!rs.data) {\r\n\t\tdispatch(_getReprintAuditLogFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_getReprintAuditLogSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_getReprintAuditLogFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst GET_REPRINT_AUDIT_LOG_IS_LOADING = 'GET_REPRINT_AUDIT_LOG_IS_LOADING'\r\nconst GET_REPRINT_AUDIT_LOG_SUCCESS = 'GET_REPRINT_AUDIT_LOG_SUCCESS'\r\nconst GET_REPRINT_AUDIT_LOG_FAIL = 'GET_REPRINT_AUDIT_LOG_FAIL'\r\n\r\nconst _getReprintAuditLogIsLoading = () => ({\r\n\ttype: GET_REPRINT_AUDIT_LOG_IS_LOADING,\r\n})\r\n\r\nconst _getReprintAuditLogSuccess = (rs) => ({\r\n\ttype: GET_REPRINT_AUDIT_LOG_SUCCESS,\r\n\trs,\r\n})\r\n\r\nconst _getReprintAuditLogFail = () => ({\r\n\ttype: GET_REPRINT_AUDIT_LOG_FAIL,\r\n})\r\n\r\nlet initState = {\r\n\tgetReprintAuditLogIsLoading: false,\r\n\treprintLogs: [],\r\n}\r\n\r\nconst reprintAuditLog = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase GET_REPRINT_AUDIT_LOG_IS_LOADING:\r\n\t\t\treturn { ...state, getReprintAuditLogIsLoading: true }\r\n\r\n\t\tcase GET_REPRINT_AUDIT_LOG_SUCCESS:\r\n\t\t\treturn { ...state, reprintLogs: action.rs.data.result, getReprintAuditLogIsLoading: false }\r\n\r\n\t\tcase GET_REPRINT_AUDIT_LOG_FAIL:\r\n\t\t\treturn { ...state, getReprintAuditLogIsLoading: false }\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default reprintAuditLog\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Paper, Table, TableHead, TableBody, TableRow, TableCell, Button, Grid } from '@material-ui/core'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { getGroupAudit, getRedemptionTransactionAudit } from '../ducks/auditLogDuck'\r\nimport { getCurrentAuthHeader, toHumanFriendlyDateTime, toHumanFriendlyMessage, objHasData } from '../helpers/utilities'\r\nimport { getReprintAuditLog } from '../ducks/reprintAuditLogDuck'\r\n\r\nclass AuditLogTable2 extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tdates: [],\r\n\t\t\tnewAuditDatas: {},\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {}\r\n\r\n\tcomponentDidUpdate = async (prevProps, prevState) => {}\r\n\r\n\t_retriveAuditLogs = async () => {\r\n\t\tif (this.props.groupApprovalDuck.group && this.props.groupApprovalDuck.group.id) {\r\n\t\t\tconst data = { params: { groupId: this.props.groupApprovalDuck.group.id }, ...getCurrentAuthHeader() }\r\n\t\t\tconst rs = await this.props.getGroupAudit(data)\r\n\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tconst { auditLogDuck: { entityChangePropertyList } } = this.props\r\n\t\t\t\tthis._filterAuditData(entityChangePropertyList)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.props.redemptionTransactionPassengersDuck.redemptionTransaction && this.props.redemptionTransactionPassengersDuck.redemptionTransaction.id) {\r\n\t\t\tvar rid = this.props.redemptionTransactionPassengersDuck.redemptionTransaction.id\r\n\t\t\tconst data = { params: { redemptionTransactionId: rid }, ...getCurrentAuthHeader() }\r\n\t\t\tconst rs = await this.props.getRedemptionTransactionAudit(data)\r\n\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tconst { auditLogDuck: { redemptionTransactionEntityChangePropertyList } } = this.props\r\n\t\t\t\tthis._filterAuditData(redemptionTransactionEntityChangePropertyList)\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.props.redemptionTransactionId) await this.props.getReprintAuditLog(this.props.redemptionTransactionId)\r\n\t}\r\n\r\n\t_filterAuditData = (data) => {\r\n\t\tconst tempDates = []\r\n\t\tconst tempData = {}\r\n\t\tlet lastDate = ''\r\n\t\tdata.forEach((d) => {\r\n\t\t\tif (d.originalValue === null && d.propertyName !== 'SubmittedBy' && d.propertyName !== 'RefNo' && d.propertyName !== 'CreatorId' && d.propertyName !== 'RedeemerId') return\r\n\r\n\t\t\tif (d.originalValue === null && (d.newValue === null || d.newValue === '')) return\r\n\r\n\t\t\t// sample string: 2019-04-15T15:13:47\r\n\t\t\tif (d.changeTime.substr(0, 19) !== lastDate) {\r\n\t\t\t\tlastDate = d.changeTime.substr(0, 19)\r\n\t\t\t\ttempDates.push(lastDate)\r\n\t\t\t}\r\n\t\t\tif (lastDate) {\r\n\t\t\t\tif (tempData.hasOwnProperty(lastDate)) {\r\n\t\t\t\t\tif (d.propertyName === 'Remarks') {\r\n\t\t\t\t\t\tif (!(d.originalValue === null && d.newValue === null) && !(d.originalValue === null && d.newValue === '\"\"')) {\r\n\t\t\t\t\t\t\ttempData[lastDate].remarks.push(d)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttempData[lastDate].changes.push(d)\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttempData[lastDate] = { changes: [], remarks: [] }\r\n\t\t\t\t\tif (d.propertyName === 'Remarks') {\r\n\t\t\t\t\t\tif (!(d.originalValue === null && d.newValue === null) && !(d.originalValue === null && d.newValue === '\"\"')) {\r\n\t\t\t\t\t\t\ttempData[lastDate].remarks.push(d)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttempData[lastDate].changes.push(d)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t// remove dates that doesn't have relevant changes or remarks\r\n\t\tfor (let k in tempData) {\r\n\t\t\tif (tempData[k].changes.length < 1 && tempData[k].remarks.length < 1) {\r\n\t\t\t\tconst idx = tempDates.findIndex((d) => d === k)\r\n\t\t\t\tif (idx !== -1) tempDates.splice(idx, 1)\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.setState({ dates: tempDates, newAuditDatas: tempData })\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, auditLogDuck: { getGroupAuditIsLoading, getRedemptionTransactionAuditIsLoading }, reprintAuditLogDuck: { getReprintAuditLogIsLoading, reprintLogs } } = this.props\r\n\t\tconst { dates, newAuditDatas } = this.state\r\n\r\n\t\tlet userName = ''\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.state.dates.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tDate\r\n\t\t\t\t\t\t\t\t\t\tChanges\r\n\t\t\t\t\t\t\t\t\t\tRemarks\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{dates.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\tdates.map((d) => {\r\n\t\t\t\t\t\t\t\t\t\t\tuserName = newAuditDatas[d].changes[0] ? newAuditDatas[d].changes[0].userName : newAuditDatas[d].remarks[0].userName\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{toHumanFriendlyDateTime(d)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{userName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{objHasData(newAuditDatas[d].changes) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewAuditDatas[d].changes.map((c) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn
    • {toHumanFriendlyMessage(c)}
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{objHasData(newAuditDatas[d].remarks) && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{newAuditDatas[d].remarks.map((c) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn
    • {toHumanFriendlyMessage(c)}
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{reprintLogs && reprintLogs.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tDate\r\n\t\t\t\t\t\t\t\t\t\tPrinted By\r\n\t\t\t\t\t\t\t\t\t\tCard No\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{reprintLogs.map((m, i) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{toHumanFriendlyDateTime(m.creationTime)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{m.userName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{m.reprintCardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (themes) => ({\r\n\tcontainer: { ...themes.container, marginTop: 20 },\r\n\tul: { paddingLeft: '1rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { auditLogDuck, groupApprovalDuck, redemptionTransactionPassengersDuck, reprintAuditLogDuck } = state\r\n\r\n\treturn { auditLogDuck, groupApprovalDuck, redemptionTransactionPassengersDuck, reprintAuditLogDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn { getGroupAudit: (data) => dispatch(getGroupAudit(data)), getRedemptionTransactionAudit: (data) => dispatch(getRedemptionTransactionAudit(data)), getReprintAuditLog: (data) => dispatch(getReprintAuditLog(data)) }\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(AuditLogTable2))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport Header from '../containers/Header'\r\nimport { withStyles, Button, Grid, Typography } from '@material-ui/core'\r\nimport StyledSection from '../components/StyledSection'\r\nimport GroupReferenceForm from '../containers/group/GroupReferenceForm'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport AuditLogTable2 from '../components/AuditLogTable2'\r\nimport { objHasData } from '../helpers/utilities'\r\n\r\nclass GroupDetail extends Component {\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Group - Group Detail`\r\n\t}\r\n\r\n\tonBackToListing = () => {\r\n\t\tthis.props.history.push('/dashboard')\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tmatch,\r\n\t\t\tgroupApprovalDuck: { redemptionTransaction },\r\n\t\t} = this.props\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{objHasData(redemptionTransaction) && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCollector's signature\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { groupApprovalDuck } = state\r\n\r\n\treturn { groupApprovalDuck }\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tnull\r\n)(withStyles(styles)(GroupDetail))\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n withStyles,\r\n Grid,\r\n Table,\r\n TableHead,\r\n TableRow,\r\n TableBody,\r\n TableCell,\r\n Checkbox,\r\n Paper,\r\n Button,\r\n TextField\r\n} from '@material-ui/core';\r\nimport StyledEditBtn from '../../../components/StyledEditBtn';\r\nimport StyledDeleteBtn from '../../../components/StyledDeleteBtn';\r\nimport StyledUndoBtn from '../../../components/StyledUndoBtn';\r\nimport SqApiCriteriasDialog from '../../../components/SqApiCriteriasDialog';\r\nimport StyledTinyFabCheckCircle from '../../../components/StyledTinyFabCheckCircle';\r\nimport StyledTinyFabError from '../../../components/StyledTinyFabError';\r\nimport {\r\n updateCollectingStatus,\r\n updateSinglePax,\r\n updateGroupRedemptionFormDuck\r\n} from '../../../ducks/groupRedemptionFormDuck';\r\nimport LoadingContainer from '../../loadingContainer';\r\nimport { toHumanFriendlyDate } from '../../../helpers/utilities';\r\nimport {\r\n convertSqStatusForDisplay,\r\n DISPLAY_YES,\r\n DISPLAY_MANUAL\r\n} from '../../../helpers/eticketStatusHelper';\r\n\r\nlet eTicket = [];\r\n\r\nclass SimplePassengersTable extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n criterias: {},\r\n criteriasMessage: '',\r\n viewCriterias: false,\r\n editingIdx: null,\r\n physicalEditingIdx: {}\r\n };\r\n }\r\n\r\n _renderEticketIssues = (idx, p) => {\r\n if (!p.meta) return

    Error

    ;\r\n const issue = p.meta['eTicket' + idx + 'Status'].issue;\r\n if (issue) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n _renderEticketSqCriteria = targetETicket => {\r\n const {\r\n classes,\r\n groupRedemptionFormDuck: { groupSqApiCheckResults }\r\n } = this.props;\r\n\r\n let matchedTicket = groupSqApiCheckResults.find(\r\n ticketData => ticketData.ticketNumber === targetETicket\r\n );\r\n if (groupSqApiCheckResults.length > 0 && matchedTicket) {\r\n const ctpEligibility = matchedTicket.ctpEligibility;\r\n if (convertSqStatusForDisplay(ctpEligibility) === DISPLAY_YES) {\r\n return (\r\n \r\n this.onShowEligibilityPopup(matchedTicket)\r\n }\r\n />\r\n );\r\n } else if (\r\n convertSqStatusForDisplay(ctpEligibility) === DISPLAY_MANUAL\r\n ) {\r\n return (\r\n \r\n this.onShowEligibilityPopup(matchedTicket)\r\n }\r\n />\r\n );\r\n } else {\r\n return (\r\n \r\n this.onShowEligibilityPopup(matchedTicket)\r\n }\r\n />\r\n );\r\n }\r\n }\r\n };\r\n\r\n onShowEligibilityPopup = rs => {\r\n if (rs.criterias) {\r\n this.setState({\r\n viewCriterias: true,\r\n criterias: rs.criterias,\r\n criteriasMessage: ''\r\n });\r\n } else {\r\n rs.remarks\r\n ? this.setState({\r\n viewCriterias: true,\r\n criterias: {},\r\n criteriasMessage: rs.remarks\r\n })\r\n : this.setState({\r\n viewCriterias: true,\r\n criterias: {},\r\n criteriasMessage: 'ETicket not found in database'\r\n });\r\n }\r\n };\r\n\r\n onViewCriteriasClose = () => {\r\n this.setState({ viewCriterias: false });\r\n };\r\n\r\n onEticketIssueClicked = () => {\r\n // todo: show dialog\r\n };\r\n\r\n onCollectingChange = idx => {\r\n this.props.updateCollectingStatus(idx);\r\n };\r\n\r\n onCardEdit = (idx, p) => {\r\n if (p.collecting) this.setState({ editingIdx: idx });\r\n };\r\n\r\n onPreloadedVouchersCardEdit = (idx, p) => {\r\n if (p.collecting) this.setState({ editingIdx: idx });\r\n };\r\n\r\n onCardNoChange = (idx, e) => {\r\n let cardNo = e.target.value;\r\n if (cardNo.length > 19) {\r\n cardNo = cardNo.substr(0, 19);\r\n }\r\n this.props.updateSinglePax(idx - 1, 'cardNo', cardNo);\r\n };\r\n\r\n onPreloadedVouchersCardNoChange = (idx, e) => {\r\n let cardNo = e.target.value;\r\n if (cardNo.length > 19) {\r\n cardNo = cardNo.substr(0, 19);\r\n }\r\n this.props.updateSinglePax(idx - 1, 'preloadedVouchersCardNo', cardNo);\r\n };\r\n\r\n onCardNoKeyPress = e => {\r\n if (e.key === 'Enter')\r\n this.setState({ editingIdx: null, physicalEditingIdx: {} });\r\n };\r\n\r\n onPreloadedVouchersCardNoKeyPress = e => {\r\n if (e.key === 'Enter')\r\n this.setState({ editingIdx: null, physicalEditingIdx: {} });\r\n };\r\n\r\n onCardNoBlur = idx => {\r\n if (this.state.editingIdx === idx) this.setState({ editingIdx: null });\r\n };\r\n\r\n onPreloadedVouchersCardNoBlur = idx => {\r\n if (this.state.editingIdx === idx) this.setState({ editingIdx: null });\r\n };\r\n\r\n onPhysicalCardEdit = (row, col) => {\r\n this.setState({ physicalEditingIdx: { row, col } });\r\n };\r\n\r\n onPhysicalCardNoChange = (idx, voucherIdx, e) => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n\r\n const {\r\n groupRedemptionFormDuck: { passengers }\r\n } = this.props;\r\n const newPax = { ...passengers[idx] };\r\n if (voucherIdx === 0) {\r\n newPax.genPhysicalVoucherNo = numericValue;\r\n } else {\r\n newPax.lpcPhysicalVoucherNo = numericValue;\r\n }\r\n let newPassengers = [...passengers];\r\n newPassengers.splice(idx, 1, newPax);\r\n this.props.updateGroupRedemptionFormDuck('passengers', newPassengers);\r\n };\r\n\r\n onPhysicalCardNoBlur = (idx, col) => {\r\n const { physicalEditingIdx } = this.state;\r\n if (physicalEditingIdx.row === idx && physicalEditingIdx.col === col)\r\n this.setState({ physicalEditingIdx: {} });\r\n };\r\n\r\n _renderCell = (p, k, i) => {\r\n const { classes } = this.props;\r\n const noNeedFormat = [\r\n 'firstName',\r\n 'lastName',\r\n 'pnr',\r\n 'firstFltNo',\r\n 'secondFltNo',\r\n 'thirdFltNo',\r\n 'fourthFltNo'\r\n ];\r\n\r\n if (k === 'seq') return {i};\r\n\r\n if (noNeedFormat.includes(k)) {\r\n if (p[k] === undefined) return;\r\n return {p[k]};\r\n }\r\n\r\n if (\r\n k === 'firstFltDepDate' ||\r\n k === 'secondFltDepDate' ||\r\n k === 'thirdFltDepDate' ||\r\n k === 'fourthFltDepDate'\r\n ) {\r\n return (\r\n \r\n {toHumanFriendlyDate(p[k])}\r\n \r\n );\r\n }\r\n\r\n if (k === 'eTicket') {\r\n ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4'].forEach(k2 => {\r\n if (p[k2] !== '') eTicket.push(p[k2]);\r\n });\r\n const final = eTicket.map((v, i2) => {\r\n if (v) {\r\n return (\r\n
  • \r\n {v} {this._renderEticketIssues(i2 + 1, p)}\r\n {this._renderEticketSqCriteria(v)}\r\n
  • \r\n );\r\n }\r\n });\r\n eTicket = [];\r\n\r\n return (\r\n \r\n
      {final}
    \r\n
    \r\n );\r\n }\r\n\r\n if (k === 'dob') {\r\n return (\r\n \r\n {toHumanFriendlyDate(p.dob)}\r\n \r\n );\r\n }\r\n\r\n if (k === 'edit') {\r\n return (\r\n \r\n this.props.onEdit(p.id)}\r\n />\r\n \r\n );\r\n }\r\n\r\n if (k === 'delete') {\r\n return (\r\n \r\n {!p.markedDelete && (\r\n this.props.onDelete(p.id)}\r\n />\r\n )}\r\n\r\n {p.markedDelete && (\r\n this.props.onUndo(p.id)}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n\r\n if (k === 'cardNo') {\r\n const { editingIdx } = this.state;\r\n return (\r\n \r\n {editingIdx !== i && (\r\n this.onCardEdit(i, p)}>\r\n {p.cardNo}\r\n \r\n )}\r\n {editingIdx === i && (\r\n this.onCardNoChange(i, e)}\r\n autoFocus\r\n InputProps={{ className: classes.textFieldInput }}\r\n onKeyPress={this.onCardNoKeyPress}\r\n onBlur={() => this.onCardNoBlur(i)}\r\n disabled={!p.collecting}\r\n type='number'\r\n />\r\n )}\r\n \r\n );\r\n }\r\n\r\n if (k === 'preloadedVouchersCardNo') {\r\n const { editingIdx } = this.state;\r\n return (\r\n \r\n {editingIdx !== i && (\r\n \r\n this.onPreloadedVouchersCardEdit(i, p)\r\n }\r\n >\r\n {p.preloadedVouchersCardNo}\r\n \r\n )}\r\n {editingIdx === i && (\r\n \r\n this.onPreloadedVouchersCardNoChange(i, e)\r\n }\r\n autoFocus\r\n InputProps={{ className: classes.textFieldInput }}\r\n onKeyPress={this.onPreloadedVouchersCardNoKeyPress}\r\n onBlur={() => this.onPreloadedVouchersCardNoBlur(i)}\r\n disabled={!p.collecting}\r\n type='number'\r\n />\r\n )}\r\n \r\n );\r\n }\r\n\r\n if (k === 'creationTime') {\r\n return (\r\n \r\n {toHumanFriendlyDate(p[k])}\r\n \r\n );\r\n }\r\n\r\n const { physicalEditingIdx } = this.state;\r\n let idx = i - 1;\r\n if (k === 'genCardNo') {\r\n return (\r\n \r\n {(physicalEditingIdx.row !== idx ||\r\n physicalEditingIdx.col !== 0) && (\r\n this.onPhysicalCardEdit(idx, 0)}>\r\n {p.genPhysicalVoucherNo}\r\n \r\n )}\r\n {physicalEditingIdx.row === idx &&\r\n physicalEditingIdx.col === 0 && (\r\n \r\n this.onPhysicalCardNoChange(idx, 0, e)\r\n }\r\n autoFocus\r\n InputProps={{\r\n className: classes.textFieldInput\r\n }}\r\n onKeyPress={this.onCardNoKeyPress}\r\n onBlur={() => this.onPhysicalCardNoBlur(idx, 0)}\r\n disabled={!p.collecting}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n\r\n if (k === 'lpcCardNo') {\r\n return (\r\n \r\n {(physicalEditingIdx.row !== idx ||\r\n physicalEditingIdx.col !== 1) && (\r\n this.onPhysicalCardEdit(idx, 1)}>\r\n {p.lpcPhysicalVoucherNo}\r\n \r\n )}\r\n {physicalEditingIdx.row === idx &&\r\n physicalEditingIdx.col === 1 && (\r\n \r\n this.onPhysicalCardNoChange(idx, 1, e)\r\n }\r\n autoFocus\r\n InputProps={{\r\n className: classes.textFieldInput\r\n }}\r\n onKeyPress={this.onCardNoKeyPress}\r\n onBlur={() => this.onPhysicalCardNoBlur(idx, 1)}\r\n disabled={!p.collecting}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n\r\n if (k === 'collecting') {\r\n return (\r\n \r\n this.onCollectingChange(i - 1)}\r\n />\r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n data,\r\n headers,\r\n dataKeys,\r\n groupRedemptionFormDuck: { groupSqApiCheckIsLoading }\r\n } = this.props;\r\n const { criterias, criteriasMessage, viewCriterias } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {headers.map(v => (\r\n {v}\r\n ))}\r\n \r\n \r\n \r\n {data.map((p, i) => (\r\n \r\n {dataKeys.map(k =>\r\n this._renderCell(p, k, i + 1)\r\n )}\r\n \r\n ))}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n ol: { padding: '0 1rem' },\r\n // eTicketWrap: { position: 'relative' },\r\n icon: { top: '-.3rem', right: '-1.5rem' },\r\n // paper: { position: 'relative', width: 1800 },\r\n textFieldInput: { fontSize: '0.8125rem' }\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const { groupRedemptionFormDuck } = state;\r\n\r\n return { groupRedemptionFormDuck };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n updateCollectingStatus: (idx, status) =>\r\n dispatch(updateCollectingStatus(idx, status)),\r\n updateSinglePax: (idx, key, status) =>\r\n dispatch(updateSinglePax(idx, key, status)),\r\n updateGroupRedemptionFormDuck: (k, v) =>\r\n dispatch(updateGroupRedemptionFormDuck(k, v))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(SimplePassengersTable));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n withStyles,\r\n Button,\r\n Grid,\r\n Typography,\r\n TextField,\r\n FormLabel,\r\n RadioGroup,\r\n FormControlLabel,\r\n Radio\r\n} from '@material-ui/core';\r\nimport { updatePassengers } from '../../ducks/groupRedemptionFormDuck';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport CardRangeHelper from '../../helpers/cardRangeHelper';\r\nimport StyledSection from '../../components/StyledSection';\r\nimport SimplePassengersTable from './components/SimplePassengersTable';\r\nimport {\r\n getGroupAndPassengersRedemption,\r\n groupSqApiCheck,\r\n groupCheckRedeemedPassenger,\r\n updateGroupRedemptionFormDuck,\r\n updateGroupRedemptionFormDuckObj,\r\n checkInactiveCards\r\n} from '../../ducks/groupRedemptionFormDuck';\r\nimport StyledSnackbar from '../../components/StyledSnackbar';\r\nimport StyledPlaceholder from '../../components/StyledPlaceholder';\r\nimport moment from 'moment';\r\nimport PassportParser from '../../helpers/passportParser';\r\nimport { checkBonusCities } from '../../helpers/voucherBonusHelper';\r\nimport BoardingPassParser from '../../helpers/boardingPassParser';\r\nimport {\r\n getOriginFromFltNumber,\r\n parseFullCardNo\r\n} from '../../helpers/utilities';\r\nimport {\r\n NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG,\r\n REASSIGN_CARD_OR_VOUCHER\r\n} from '../../constants/messages';\r\nimport StyledGeneralDialog from '../../components/StyledGeneralDialog';\r\nimport {\r\n CARD_NO_OF_DIGITS,\r\n CTP_CARD_PREFIX\r\n} from '../../constants/cardConstants';\r\nimport PromiseModalWrapper from '../../components/promiseModal/PromiseModalWrapper.js';\r\nimport {\r\n MULTI_CARD_UNLOADED,\r\n MULTI_CARD_DIGITAL,\r\n SINGLE_CARD_DIGITAL,\r\n MULTI_CARD_EV\r\n} from '../../constants/groupCardAssignment.js';\r\nimport { getSettings } from '../../config/config.js';\r\n\r\nconst sectorHeaders = [\r\n 'Sector 1 Flight No.',\r\n 'Sector 1 Flight Date',\r\n 'Sector 2 Flight No.',\r\n 'Sector 2 Flight Date',\r\n 'Sector 3 Flight No.',\r\n 'Sector 3 Flight Date',\r\n 'Sector 4 Flight No.',\r\n 'Sector 4 Flight Date'\r\n];\r\n\r\nconst sectorDataKeys = [\r\n 'firstFltNo',\r\n 'firstFltDepDate',\r\n 'secondFltNo',\r\n 'secondFltDepDate',\r\n 'thirdFltNo',\r\n 'thirdFltDepDate',\r\n 'fourthFltNo',\r\n 'fourthFltDepDate'\r\n];\r\n\r\nconst PASSENGERS_NOT_COLLECTING_HEADERS = [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.'\r\n];\r\nconst PASSENGERS_NOT_COLLECTING_DATA_KEYS = [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr'\r\n];\r\nconst settings = getSettings();\r\nconst PASSENGERS_REDEEMED_HEADERS = [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Card No',\r\n 'Collection Date'\r\n];\r\nconst PASSENGERS_REDEEMED_DATA_KEYS = [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'cardNo',\r\n 'creationTime'\r\n];\r\n\r\nclass GroupRedemptionForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n totalPax: 0,\r\n cardPrefix: '0000400000000',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n isGroupApproved: true,\r\n isDateValid: true,\r\n isRedeemed: false,\r\n groupRefNo: this.props.groupRefNo,\r\n tlLastName: '',\r\n tlDob: '',\r\n tlETicket: '',\r\n tlVerified: false,\r\n genCardPrefix: '',\r\n lpcCardPrefix: '',\r\n cardRangeStringFrom: '',\r\n cardRangeStringTo: '',\r\n genCardRangeFrom: '',\r\n genCardRangeTo: '',\r\n lpcCardRangeFrom: '',\r\n lpcCardRangeTo: '',\r\n PASSENGERS_HEADERS: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Collecting',\r\n 'Card No'\r\n ],\r\n PASSENGERS_DATA_KEYS: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'collecting',\r\n 'cardNo'\r\n ],\r\n showGeneralDialog: false,\r\n generalDialogTitle: '',\r\n promiseModalProceedMessage: '',\r\n promiseModalCancelMessage: '',\r\n promiseModalContent: '',\r\n allowChangeCardAssignment: false,\r\n allCollectingChecked: false\r\n };\r\n this.ppInputTimeout = null;\r\n this.eTixInputTimeout = null;\r\n this.promiseModalRef = React.createRef();\r\n }\r\n\r\n componentDidMount = async () => {\r\n const { groupRefNo } = this.state;\r\n const {\r\n groupRedemptionFormDuck: {\r\n group: { id }\r\n }\r\n } = this.props;\r\n\r\n if (groupRefNo && id === '') {\r\n this.fetchGroupRefNo(groupRefNo);\r\n } else {\r\n const {\r\n groupRedemptionFormDuck: { ui }\r\n } = this.props;\r\n if (!!ui.tlETicket)\r\n this.setState({ tlETicket: ui.tlETicket, tlVerified: true });\r\n if (!!ui.tlDob)\r\n this.setState({ tlDob: ui.tlDob, tlVerified: true });\r\n\r\n const {\r\n groupRedemptionFormDuck: { cardAssignment }\r\n } = this.props;\r\n if (\r\n cardAssignment === MULTI_CARD_UNLOADED ||\r\n cardAssignment === MULTI_CARD_DIGITAL\r\n ) {\r\n this.setState({\r\n PASSENGERS_HEADERS: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Collecting',\r\n 'Card No'\r\n ]\r\n });\r\n this.setState({\r\n PASSENGERS_DATA_KEYS: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'collecting',\r\n 'cardNo'\r\n ]\r\n });\r\n }\r\n\r\n if (cardAssignment === SINGLE_CARD_DIGITAL) {\r\n // TODO:\r\n // this.setState({\r\n // PASSENGERS_HEADERS: [\r\n // 'S/N',\r\n // 'First name',\r\n // 'Last name',\r\n // 'DOB',\r\n // ...sectorHeaders,\r\n // 'Booking Ref. No.',\r\n // 'Collecting',\r\n // 'GEN Voucher No',\r\n // 'LPC Voucher No'\r\n // ]\r\n // });\r\n // this.setState({\r\n // PASSENGERS_DATA_KEYS: [\r\n // 'seq',\r\n // 'firstName',\r\n // 'lastName',\r\n // 'dob',\r\n // ...sectorDataKeys,\r\n // 'pnr',\r\n // 'collecting',\r\n // 'genCardNo',\r\n // 'lpcCardNo'\r\n // ]\r\n // });\r\n }\r\n\r\n if (cardAssignment === MULTI_CARD_EV) {\r\n this.setState({\r\n PASSENGERS_HEADERS: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Collecting',\r\n 'Preloaded Card No'\r\n ]\r\n });\r\n this.setState({\r\n PASSENGERS_DATA_KEYS: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'collecting',\r\n 'preloadedVouchersCardNo'\r\n ]\r\n });\r\n\r\n this.props.groupRedemptionFormDuck.passengers.forEach(p => {\r\n p.preloadedVouchersCardNo = '';\r\n });\r\n }\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {\r\n groupRedemptionFormDuck: { passengers, group }\r\n } = this.props;\r\n\r\n if (prevProps.groupRedemptionFormDuck.passengers !== passengers) {\r\n this.setState({ totalPax: passengers.length });\r\n this.setState({\r\n allCollectingChecked: passengers.every(p => p.collecting)\r\n });\r\n }\r\n\r\n if (prevProps.groupRedemptionFormDuck.group !== group) {\r\n if (!group.approval || group.rejected) {\r\n this.setState({ isGroupApproved: false });\r\n }\r\n\r\n // Can only collection between collectionDate and lastFlightDepartureDate (inclusive)\r\n const now = moment();\r\n if (\r\n now.isBefore(moment(group.collectionDate)) ||\r\n now.isSameOrAfter(\r\n moment(group.lastFlightDepartureDate).add(1, 'day')\r\n )\r\n ) {\r\n this.setState({ isDateValid: false });\r\n }\r\n\r\n if (group.redemption) {\r\n this.setState({ isRedeemed: true });\r\n }\r\n }\r\n\r\n if (\r\n prevProps.groupRedemptionFormDuck.cardAssignment !==\r\n this.props.groupRedemptionFormDuck.cardAssignment\r\n ) {\r\n const {\r\n groupRedemptionFormDuck: { cardAssignment }\r\n } = this.props;\r\n if (\r\n cardAssignment === MULTI_CARD_UNLOADED ||\r\n cardAssignment === MULTI_CARD_DIGITAL\r\n ) {\r\n this.setState({\r\n PASSENGERS_HEADERS: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Collecting',\r\n 'Card No'\r\n ]\r\n });\r\n this.setState({\r\n PASSENGERS_DATA_KEYS: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'collecting',\r\n 'cardNo'\r\n ]\r\n });\r\n }\r\n\r\n if (cardAssignment === MULTI_CARD_EV) {\r\n this.setState({\r\n PASSENGERS_HEADERS: [\r\n 'S/N',\r\n 'First name',\r\n 'Last name',\r\n 'DOB',\r\n ...sectorHeaders,\r\n 'Booking Ref. No.',\r\n 'Collecting',\r\n 'Preloaded Card No'\r\n ]\r\n });\r\n this.setState({\r\n PASSENGERS_DATA_KEYS: [\r\n 'seq',\r\n 'firstName',\r\n 'lastName',\r\n 'dob',\r\n ...sectorDataKeys,\r\n 'pnr',\r\n 'collecting',\r\n 'preloadedVouchersCardNo'\r\n ]\r\n });\r\n }\r\n\r\n if (cardAssignment === SINGLE_CARD_DIGITAL) {\r\n // TODO\r\n // this.setState({\r\n // PASSENGERS_HEADERS: [\r\n // 'S/N',\r\n // 'First name',\r\n // 'Last name',\r\n // 'DOB',\r\n // ...sectorHeaders,\r\n // 'Booking Ref. No.',\r\n // 'Collecting',\r\n // 'GEN Voucher No',\r\n // 'LPC Voucher No'\r\n // ]\r\n // });\r\n // this.setState({\r\n // PASSENGERS_DATA_KEYS: [\r\n // 'seq',\r\n // 'firstName',\r\n // 'lastName',\r\n // 'dob',\r\n // ...sectorDataKeys,\r\n // 'pnr',\r\n // 'collecting',\r\n // 'genCardNo',\r\n // 'lpcCardNo'\r\n // ]\r\n // });\r\n }\r\n\r\n const passengers = this.props.groupRedemptionFormDuck.passengers;\r\n passengers.forEach(p => {\r\n p.lpcPhysicalVoucherNo = '';\r\n p.genPhysicalVoucherNo = '';\r\n p.physicalVoucherIssued = false;\r\n p.physicalVoucher = [];\r\n p.cardNo = '';\r\n p.preloadedVouchersCardNo = '';\r\n });\r\n\r\n this.props.updateGroupRedemptionFormDuckObj({ passengers });\r\n }\r\n }\r\n\r\n requestToChangeCardAssignment = () => {\r\n this.setState({\r\n allowChangeCardAssignment: true\r\n });\r\n };\r\n\r\n onCheckAll = () => {\r\n this.setPassengersCollecting(true);\r\n };\r\n\r\n onUncheckAll = () => {\r\n this.setPassengersCollecting(false);\r\n };\r\n\r\n setPassengersCollecting = (state) => {\r\n const {\r\n groupRedemptionFormDuck: { passengers }\r\n } = this.props;\r\n let updatedPassengers = cloneDeep(passengers);\r\n updatedPassengers.forEach(p => {\r\n p.collecting = state;\r\n });\r\n this.props.updateGroupRedemptionFormDuckObj({ passengers: updatedPassengers });\r\n this.setState({\r\n allCollectingChecked: state\r\n });\r\n };\r\n\r\n onAssign = async () => {\r\n const {\r\n groupRedemptionFormDuck: { passengers, cardAssignment }\r\n } = this.props;\r\n let updatedPassengers = cloneDeep(passengers);\r\n const { flightData } = JSON.parse(localStorage.getItem('FLIGHT_DATA'));\r\n\r\n if (\r\n cardAssignment === MULTI_CARD_UNLOADED ||\r\n cardAssignment === MULTI_CARD_EV\r\n ) {\r\n const {\r\n cardRangeStringFrom,\r\n cardRangeStringTo,\r\n cardPrefix\r\n } = this.state;\r\n if (\r\n cardRangeStringTo === '' ||\r\n /[a-zA-Z]/.test(cardRangeStringTo) ||\r\n cardRangeStringFrom === '' ||\r\n /[a-zA-Z]/.test(cardRangeStringFrom)\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please enter a valid card range'\r\n });\r\n return;\r\n }\r\n\r\n let cardRangeString = cardRangeStringFrom + '-' + cardRangeStringTo;\r\n let cardRangeHelper = new CardRangeHelper({\r\n rangeString: cardRangeString,\r\n prefix: cardPrefix,\r\n noOfDigits: CARD_NO_OF_DIGITS\r\n });\r\n cardRangeHelper.prepareData();\r\n let cards = cardRangeHelper.generateRange();\r\n\r\n if (cardAssignment === MULTI_CARD_UNLOADED) {\r\n updatedPassengers = this._populateVoucherValue({\r\n passengers: updatedPassengers,\r\n cards: cards,\r\n cardAssignment: MULTI_CARD_UNLOADED\r\n });\r\n } else if (cardAssignment === MULTI_CARD_EV) {\r\n updatedPassengers = this._populateVoucherValue({\r\n passengers: updatedPassengers,\r\n cards: cards,\r\n cardAssignment: MULTI_CARD_EV\r\n });\r\n }\r\n }\r\n\r\n this.props.updatePassengers(updatedPassengers);\r\n };\r\n\r\n _validatePassengers = ({ passengers, cardAssignmentType }) => {\r\n let passValidation = true;\r\n\r\n if (\r\n cardAssignmentType === MULTI_CARD_EV &&\r\n passengers.some(m => !m.preloadedVouchersCardNo)\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG\r\n });\r\n return false;\r\n }\r\n\r\n for (let p of passengers) {\r\n if (!p.collecting && (p.cardNo || p.genPhysicalVoucherNo)) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: REASSIGN_CARD_OR_VOUCHER\r\n });\r\n passValidation = false;\r\n break;\r\n }\r\n\r\n if (!p.collecting) continue;\r\n\r\n if (cardAssignmentType === MULTI_CARD_UNLOADED) {\r\n if (!p.cardNo) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: NOT_ALL_PAX_ASSIGNED_CARD_ERROR_MSG\r\n });\r\n passValidation = false;\r\n break;\r\n }\r\n if (p.cardNo.substr(0, 5) !== CTP_CARD_PREFIX) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Please input correct ctp card no'\r\n });\r\n passValidation = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (cardAssignmentType === MULTI_CARD_UNLOADED) {\r\n let eligibleCardPassengers = passengers.filter(\r\n p => p.collecting === true\r\n );\r\n eligibleCardPassengers = passengers.filter(p => !!p.cardNo);\r\n\r\n let cardNoSet = new Set();\r\n eligibleCardPassengers.forEach(p => cardNoSet.add(p.cardNo));\r\n if (cardNoSet.size !== eligibleCardPassengers.length) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Duplicated Card No Detected'\r\n });\r\n return;\r\n }\r\n }\r\n\r\n return passValidation;\r\n };\r\n\r\n onProceed = async () => {\r\n const {\r\n groupRedemptionFormDuck: { passengers, cardAssignment }\r\n } = this.props;\r\n let passValidation = this._validatePassengers({\r\n passengers,\r\n cardAssignmentType: cardAssignment\r\n });\r\n if (!passValidation) return;\r\n this.props.history.push('/group/group-collector');\r\n // let passengerCards = passengers.map(p => p.cardNo);\r\n // let checkCardsResponse = await this.props.checkInactiveCards(\r\n // passengerCards\r\n // );\r\n // if (!checkCardsResponse.success) {\r\n // if (checkCardsResponse.error) {\r\n // this.setState(\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: checkCardsResponse.error.message\r\n // })\r\n // );\r\n // } else {\r\n // this.setState(\r\n // this.setState({\r\n // showSnackbar: true,\r\n // snackbarVariant: 'error',\r\n // snackbarMessage: 'An unexpected Error has occured'\r\n // })\r\n // );\r\n // }\r\n // return;\r\n // } else {\r\n // this.props.history.push('/group/group-collector');\r\n // }\r\n };\r\n\r\n _updateCardPrefix = event => {\r\n this.setState({ cardPrefix: event.target.value });\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onBack = () => {\r\n window.location = window.location.href;\r\n };\r\n\r\n updateGroupRefNo = async e => {\r\n let groupRefNo = e.target.value;\r\n this.setState({ groupRefNo: groupRefNo });\r\n this.fetchGroupRefNo(groupRefNo);\r\n };\r\n\r\n fetchGroupRefNo = async groupRefNo => {\r\n if (groupRefNo.length === 10 && groupRefNo[0].toLowerCase() === 'g') {\r\n //starts with g\r\n const rs = await this.props.getGroupAndPassengersRedemption({\r\n refNo: groupRefNo,\r\n getAllUser: true\r\n }); //rename property to refNo\r\n if (!rs.success)\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n // call GroupSqApiCheck\r\n if (rs.success) {\r\n const {\r\n groupRedemptionFormDuck: { passengers, groupMetaInfo }\r\n } = this.props;\r\n this.props.updateGroupRedemptionFormDuck(\r\n 'cardAssignment',\r\n this.props.groupRedemptionFormDuck.group.cardAssignment\r\n );\r\n\r\n if (!groupMetaInfo.isTourLeaderInPassengerList) {\r\n this.setState({\r\n showGeneralDialog: true,\r\n generalDialogTitle: 'Tour leader is not in group'\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n updateTlLastName = e => {\r\n let lastName = e.target.value;\r\n clearTimeout(this.ppInputTimeout);\r\n this.ppInputTimeout = setTimeout(() => {\r\n let regex = /\\//gi;\r\n if (lastName.match(regex) && lastName.match(regex).length >= 4) {\r\n this._processScanPassport(lastName);\r\n }\r\n }, 1000);\r\n this.setState({ tlLastName: lastName });\r\n };\r\n\r\n updateTlDob = e => {\r\n let ppInput = e.target.value;\r\n clearTimeout(this.ppInputTimeout);\r\n this.ppInputTimeout = setTimeout(() => {\r\n let regex = /\\//gi;\r\n if (ppInput.match(regex) && ppInput.match(regex).length >= 4) {\r\n this._processScanPassport(ppInput);\r\n }\r\n }, 1000);\r\n this.setState({ tlDob: ppInput });\r\n };\r\n\r\n updateTlETicket = e => {\r\n let eTixInput = e.target.value;\r\n clearTimeout(this.eTixInputTimeout);\r\n this.eTixInputTimeout = setTimeout(() => {\r\n if (eTixInput.length >= 90) {\r\n this._processBoardingPass(eTixInput);\r\n }\r\n }, 1000);\r\n this.setState({ tlETicket: eTixInput });\r\n };\r\n\r\n onLastNameKeyUp = e => {\r\n //if (e.key === 'Enter') this._verifyTlIdentity()\r\n };\r\n\r\n onLastNameBlur = e => {\r\n //this._verifyTlIdentity()\r\n };\r\n\r\n _verifyTlIdentity = ({ dob, eTix }) => {\r\n if (dob) {\r\n if (\r\n moment(dob).isSame(\r\n moment(this.props.groupRedemptionFormDuck.tourLeader.dob),\r\n 'day'\r\n )\r\n ) {\r\n this.setState({ tlVerified: true });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Tour Leader Verified'\r\n });\r\n } else {\r\n this.setState({ tlVerified: false });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Tour Leader not matched'\r\n });\r\n }\r\n }\r\n\r\n if (eTix) {\r\n let {\r\n eTicket1,\r\n eTicket2,\r\n eTicket3,\r\n eTicket4\r\n } = this.props.groupRedemptionFormDuck.tourLeader;\r\n if (\r\n eTix === eTicket1 ||\r\n eTix === eTicket2 ||\r\n eTix === eTicket3 ||\r\n eTix === eTicket4\r\n ) {\r\n this.setState({ tlVerified: true });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Tour Leader Verified'\r\n });\r\n } else {\r\n this.setState({ tlVerified: false });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Tour Leader not matched'\r\n });\r\n }\r\n }\r\n };\r\n\r\n _processScanPassport = passportString => {\r\n let passportParser = new PassportParser(passportString);\r\n let passportData = passportParser.getData();\r\n this.setState({ tlLastName: passportData.lastName });\r\n this.setState({ tlDob: moment(passportData.dob).format('DD/MM/YYYY') });\r\n this.props.updateGroupRedemptionFormDuckObj({\r\n ui: {\r\n tlDob: moment(passportData.dob).format('DD/MM/YYYY'),\r\n tlLastName: passportData.lastName\r\n }\r\n });\r\n this._verifyTlIdentity({ dob: passportData.dob });\r\n };\r\n\r\n _processBoardingPass = eTicketInput => {\r\n let boardingPassParser = new BoardingPassParser(eTicketInput);\r\n let boardingPassData = boardingPassParser.getData();\r\n this.setState({ tlETicket: boardingPassData.eTix });\r\n this.props.updateGroupRedemptionFormDuckObj({\r\n ui: { tlETicket: boardingPassData.eTix }\r\n });\r\n this._verifyTlIdentity({ eTix: boardingPassData.eTix });\r\n };\r\n\r\n onViewDetails = groupRefNo => {\r\n window.open('/group/group-detail/' + groupRefNo);\r\n };\r\n\r\n onCardAssignmentChange = e => {\r\n let updatedPassengers = this._populateVoucherValue({\r\n passengers: this.props.groupRedemptionFormDuck.passengers,\r\n cards: [],\r\n cardAssignment: MULTI_CARD_DIGITAL\r\n });\r\n this.props.updateGroupRedemptionFormDuck(\r\n 'cardAssignment',\r\n e.target.value\r\n );\r\n this.props.updatePassengers(updatedPassengers);\r\n };\r\n\r\n _populateVoucherValue = ({ passengers, cards, cardAssignment }) => {\r\n let ctpVoucher = settings.voucher_sources.find(\r\n s => s.membership_type == 'CTP'\r\n );\r\n let genVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == 'GEN');\r\n let lpcVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == 'LPC');\r\n let updatedPassengers = cloneDeep(passengers);\r\n const { flightData } = JSON.parse(localStorage.getItem('FLIGHT_DATA'));\r\n\r\n for (let i = 0; i < updatedPassengers.length; i++) {\r\n if (!updatedPassengers[i].collecting) {\r\n //set to default if not collecting\r\n updatedPassengers[i].cardNo = '';\r\n updatedPassengers[i].preloadedVouchersCardNo = '';\r\n updatedPassengers[i].ctpVoucherValue = null;\r\n updatedPassengers[i].ctpGenValue = null;\r\n updatedPassengers[i].ctpLpcValue = null;\r\n } else if (updatedPassengers[i].collecting) {\r\n if (cardAssignment === MULTI_CARD_UNLOADED) {\r\n if (cards) updatedPassengers[i].cardNo = cards.shift(); //DIGITALCARD assignment do not provide cards.\r\n }\r\n if (cardAssignment === MULTI_CARD_EV) {\r\n if (cards)\r\n updatedPassengers[\r\n i\r\n ].preloadedVouchersCardNo = cards.shift(); //DIGITALCARD assignment do not provide cards.\r\n }\r\n\r\n updatedPassengers[i].origin = getOriginFromFltNumber(\r\n updatedPassengers[i].firstFltNo,\r\n flightData\r\n );\r\n let bonusCityEntitlement = checkBonusCities(\r\n updatedPassengers[i].origin\r\n );\r\n if (bonusCityEntitlement) {\r\n let cityBonusVoucher = settings.voucher_sources.find(\r\n s => s.membership_type == 'CITY_BONUS'\r\n );\r\n let genCityBonusVoucher = cityBonusVoucher.vouchers.find(\r\n s => s.voucher_type == 'GEN'\r\n );\r\n let lpcCityBonusVoucher = cityBonusVoucher.vouchers.find(\r\n s => s.voucher_type == 'LPC'\r\n );\r\n updatedPassengers[i].ctpGenValue =\r\n genVoucher.voucher_value +\r\n genCityBonusVoucher.voucher_value;\r\n updatedPassengers[i].ctpLpcValue =\r\n lpcVoucher.voucher_value +\r\n lpcCityBonusVoucher.voucher_value;\r\n updatedPassengers[i].ctpVoucherValue =\r\n parseInt(updatedPassengers[i].ctpGenValue) +\r\n parseInt(updatedPassengers[i].ctpLpcValue);\r\n } else {\r\n updatedPassengers[i].ctpGenValue = genVoucher.voucher_value;\r\n updatedPassengers[i].ctpLpcValue = lpcVoucher.voucher_value;\r\n updatedPassengers[i].ctpVoucherValue =\r\n parseInt(updatedPassengers[i].ctpGenValue) +\r\n parseInt(updatedPassengers[i].ctpLpcValue);\r\n }\r\n }\r\n }\r\n return updatedPassengers;\r\n };\r\n\r\n onGenCardPrefixChange = e => {\r\n this.setState({ genCardPrefix: e.target.value });\r\n };\r\n\r\n onlpcCardPrefixChange = e => {\r\n this.setState({ lpcCardPrefix: e.target.value });\r\n };\r\n\r\n _updateCardRangeStringTo = event => {\r\n this.setState({\r\n cardRangeStringTo: parseFullCardNo(event.target.value)\r\n });\r\n };\r\n\r\n _updateCardRangeStringFrom = event => {\r\n this.setState({\r\n cardRangeStringFrom: parseFullCardNo(event.target.value)\r\n });\r\n };\r\n\r\n _updateGenCardRangeFrom = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ genCardRangeFrom: numericValue });\r\n };\r\n\r\n _updateGenCardRangeTo = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ genCardRangeTo: numericValue });\r\n };\r\n\r\n _updatelpcCardRangeFrom = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ lpcCardRangeFrom: numericValue });\r\n };\r\n\r\n _updatelpcCardRangeTo = e => {\r\n let numericValue = e.target.value.replace(/\\D/g, '');\r\n this.setState({ lpcCardRangeTo: numericValue });\r\n };\r\n\r\n onCloseGeneralDialog = () => {\r\n this.setState({ showGeneralDialog: false });\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n groupRedemptionFormDuck: {\r\n getGroupAndPassengersIsLoading,\r\n group,\r\n passengers,\r\n rejectedPassengers,\r\n paxFlown,\r\n cardAssignment\r\n }\r\n } = this.props;\r\n const {\r\n isGroupApproved,\r\n isRedeemed,\r\n groupRefNo,\r\n tlVerified,\r\n cardRangeStringFrom,\r\n cardRangeStringTo,\r\n PASSENGERS_HEADERS,\r\n PASSENGERS_DATA_KEYS,\r\n showGeneralDialog,\r\n generalDialogTitle,\r\n allowChangeCardAssignment\r\n } = this.state;\r\n\r\n if (!isGroupApproved) {\r\n let message = '';\r\n if (!group.approved)\r\n message = `Group ref: ${group.refNo} has not been approved`;\r\n if (group.rejected)\r\n message = `Group ref: ${\r\n group.refNo\r\n } has been rejected with the following reason: ${\r\n group.rejectionReason\r\n }`;\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Back\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n if (isRedeemed) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Back\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n \r\n Tour Leader is not part of this group. Please issue card\r\n individually if eligible\r\n \r\n\r\n \r\n \r\n {this.props.groupRefNo && (\r\n \r\n \r\n this.onViewDetails(groupRefNo)\r\n }\r\n >\r\n View Details\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n Group Reference No\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n TL ETicket\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n TL DOB\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n TL Last Name\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {tlVerified && (\r\n \r\n \r\n \r\n Actual Pax flown: {paxFlown} out of{' '}\r\n {passengers.length +\r\n rejectedPassengers.length}\r\n \r\n \r\n \r\n )}\r\n\r\n {tlVerified && (\r\n \r\n \r\n Card assignment\r\n \r\n }\r\n label='Multiple Cards (Unloaded)'\r\n />\r\n }\r\n label='Multiple Cards (Digital)'\r\n />\r\n }\r\n label='Single Card (Digital)'\r\n />\r\n }\r\n label='Multiple Cards (Preloaded eV)'\r\n />\r\n \r\n \r\n \r\n \r\n Request to change\r\n \r\n \r\n {(cardAssignment === MULTI_CARD_UNLOADED ||\r\n cardAssignment === MULTI_CARD_EV) && (\r\n \r\n \r\n \r\n \r\n Card Prefix\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Card Range (Last 6 Digit.\r\n E.g. 000001 - 000009)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Assign\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {this.state.tlVerified && (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Proceed\r\n \r\n \r\n \r\n {!this.state.allCollectingChecked && (\r\n \r\n Check All\r\n \r\n )}\r\n {this.state.allCollectingChecked && (\r\n \r\n Uncheck All\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {this.state.tlVerified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.state.tlVerified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n table: { width: '100%', overflowY: 'auto' },\r\n backBtn: { alignSelf: 'center' }\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const { groupRedemptionFormDuck } = state;\r\n\r\n return { groupRedemptionFormDuck };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n updatePassengers: passengers => dispatch(updatePassengers(passengers)),\r\n getGroupAndPassengersRedemption: input =>\r\n dispatch(getGroupAndPassengersRedemption(input)),\r\n groupSqApiCheck: data => dispatch(groupSqApiCheck(data)),\r\n groupCheckRedeemedPassenger: data =>\r\n dispatch(groupCheckRedeemedPassenger(data)),\r\n updateGroupRedemptionFormDuck: (k, v) =>\r\n dispatch(updateGroupRedemptionFormDuck(k, v)),\r\n updateGroupRedemptionFormDuckObj: obj =>\r\n dispatch(updateGroupRedemptionFormDuckObj(obj)),\r\n checkInactiveCards: cards => dispatch(checkInactiveCards(cards))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(GroupRedemptionForm));\r\n","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport GroupRedemptionForm from '../containers/group/GroupRedemptionForm'\r\nimport {getGroupAndPassengersRedemption, updateSelectedGroupId} from '../ducks/groupRedemptionFormDuck'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport moment from 'moment'\r\nimport {getFlightsData, updateFlights} from '../ducks/flightDuck'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {GROUP_ISSUER_PERMISSION} from '../constants/permissions'\r\nimport {Redirect} from 'react-router-dom'\r\n\r\n\r\nclass GroupIssuance extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n isLoading: false\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Group - Group Issuance`\r\n\r\n let flightDataWithMetaStr = await localStorage.getItem('FLIGHT_DATA')\r\n let flightDataWithMeta = {}\r\n if (flightDataWithMetaStr) {\r\n flightDataWithMeta = JSON.parse(flightDataWithMetaStr)\r\n let today = moment().format('YYYY-MM-DD')\r\n if (flightDataWithMeta.flightData && flightDataWithMeta.dateCreated === today) {\r\n this.props.updateFlights(flightDataWithMeta.flightData)\r\n } else {\r\n await this.props.getFlightsData()\r\n }\r\n } else {\r\n\r\n await this.props.getFlightsData()\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.flightData !== this.props.flightData && this.props.flightData != null) {\r\n if (this.props.flightData.length > 0) {\r\n let today = moment().format('YYYY-MM-DD')\r\n let flightDataWithMeta = {\r\n dateCreated: today,\r\n flightData: this.props.flightData\r\n }\r\n let flightsDataWithMetaStr = JSON.stringify(flightDataWithMeta)\r\n localStorage.setItem('FLIGHT_DATA', flightsDataWithMetaStr)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const hasIssuerPermissions = hasPermissions([GROUP_ISSUER_PERMISSION])\r\n if (!hasIssuerPermissions) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n\r\n {this.state.isLoading && }\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({})\r\n\r\nconst mapStateToProps = state => {\r\n const {groupRedemptionFormDuck} = state\r\n const {flightDuck: {flightData}} = state\r\n return {groupRedemptionFormDuck, flightData}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getGroupAndPassengersRedemption: groupId => dispatch(getGroupAndPassengersRedemption(groupId)),\r\n updateSelectedGroupId: groupId => dispatch(updateSelectedGroupId(groupId)),\r\n getFlightsData: () => dispatch(getFlightsData()),\r\n updateFlights: (flights) => dispatch(updateFlights(flights))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupIssuance))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Header from '../containers/Header'\r\nimport {withStyles} from '@material-ui/core'\r\nimport GroupRedemptionForm from '../containers/group/GroupRedemptionForm'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport moment from 'moment'\r\nimport {getFlightsData, updateFlights} from '../ducks/flightDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {updateGroupRedemptionFormDuckObj} from '../ducks/groupRedemptionFormDuck'\r\n\r\nclass GroupSubmissionDetail extends Component {\r\n\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Group - Group Issuance ${this.props.match.params.id}`\r\n\r\n let flightDataWithMetaStr = await localStorage.getItem('FLIGHT_DATA')\r\n let flightDataWithMeta = {}\r\n if (flightDataWithMetaStr) {\r\n flightDataWithMeta = JSON.parse(flightDataWithMetaStr)\r\n let today = moment().format('YYYY-MM-DD')\r\n if (flightDataWithMeta.flightData && flightDataWithMeta.dateCreated === today) {\r\n this.props.updateFlights(flightDataWithMeta.flightData)\r\n } else {\r\n const rs = await this.props.getFlightsData()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n } else {\r\n const rs = await this.props.getFlightsData()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n // clear signature\r\n const obj = {collector: {csoSignatureBase64: ''}}\r\n this.props.updateGroupRedemptionFormDuckObj(obj)\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.flightData !== this.props.flightData && this.props.flightData != null) {\r\n if (this.props.flightData.length > 0) {\r\n let today = moment().format('YYYY-MM-DD')\r\n let flightDataWithMeta = {\r\n dateCreated: today,\r\n flightData: this.props.flightData\r\n }\r\n let flightsDataWithMetaStr = JSON.stringify(flightDataWithMeta)\r\n localStorage.setItem('FLIGHT_DATA', flightsDataWithMetaStr)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {match} = this.props\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {flightDuck: {flightData}, groupRedemptionFormDuck} = state\r\n return {flightData, groupRedemptionFormDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getFlightsData: () => dispatch(getFlightsData()),\r\n updateFlights: (flights) => dispatch(updateFlights(flights)),\r\n updateGroupRedemptionFormDuckObj: obj => dispatch(updateGroupRedemptionFormDuckObj(obj))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupSubmissionDetail))","import React from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {\r\n USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION, USER_ADMIN_CAMPAIGN_EDIT_PERMISSION,\r\n USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION, USER_ADMIN_ACCOUNT_EDIT_PERMISSION,\r\n USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION, USER_ADMIN_ROLE_EDIT_PERMISSION,\r\n USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION\r\n} from '../constants/permissions'\r\n\r\n/**\r\n * This page exists for routing purpose\r\n */\r\nclass AdminSettings extends React.Component {\r\n\r\n componentDidMount() {\r\n document.title = `Changi Transit Privileges - Admin settings`\r\n }\r\n\r\n render() {\r\n const campaignPermissions = hasPermissions([USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_EDIT_PERMISSION], 'or')\r\n\r\n const accountPermissions = hasPermissions([USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION,\r\n USER_ADMIN_ACCOUNT_EDIT_PERMISSION], 'or')\r\n\r\n const accessPermissions = hasPermissions([USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION,\r\n USER_ADMIN_ROLE_EDIT_PERMISSION], 'or')\r\n\r\n const bannerPermissions = hasPermissions([USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION,\r\n USER_ADMIN_BANNER_EDIT_PERMISSION], 'or')\r\n\r\n return
    \r\n {campaignPermissions && }\r\n {!campaignPermissions && accountPermissions && }\r\n {!campaignPermissions && !accountPermissions && accessPermissions &&\r\n }\r\n {!campaignPermissions && !accountPermissions && !accessPermissions && bannerPermissions &&\r\n }\r\n
    \r\n }\r\n}\r\n\r\nexport default AdminSettings\r\n","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {Link} from 'react-router-dom'\r\nimport {withStyles, Button, TextField, Typography, Grid, Paper} from '@material-ui/core'\r\nimport {ExitToApp} from '@material-ui/icons'\r\nimport {login, authSendOtp, authAuthenticateWithOtp} from '../ducks/authDuck'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport MySnackbarContent from '../components/MySnackbarContent'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport {maskContactNo} from '../helpers/utilities'\r\nimport Logo from '../components/Logo'\r\nimport moment from 'moment'\r\nimport { LOCAL_STORAGE_LAST_ACTION_TIME } from '../constants/localStorageType'\r\n\r\nclass LoginScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n usernameOrEmailAddress: '',\r\n usernameOrEmailAddressError: '',\r\n password: '',\r\n passwordError: '',\r\n verifyOtpScreen: false,\r\n otp: '',\r\n otpError: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Login`\r\n\r\n const accessToken = localStorage.getItem('accessToken')\r\n if (accessToken) {\r\n this.props.history.push('/dashboard')\r\n }\r\n }\r\n\r\n onTextFieldChange = name => e => {\r\n const errorKey = name + 'Error'\r\n this.setState({[name]: e.target.value, [errorKey]: ''})\r\n }\r\n\r\n onKeyPress = e => {\r\n if (e.key === 'Enter') {\r\n // set last actopm time\r\n let lastActionTime = moment().format()\r\n localStorage.setItem(LOCAL_STORAGE_LAST_ACTION_TIME, lastActionTime)\r\n // submit\r\n this.onSubmit()\r\n } \r\n }\r\n\r\n validate() {\r\n if (this.state.usernameOrEmailAddress === '') this.setState({usernameOrEmailAddressError: 'This field is required'})\r\n if (this.state.password === '') this.setState({passwordError: 'This field is required'})\r\n return !(this.state.usernameOrEmailAddress === '' || this.state.password === '')\r\n }\r\n\r\n onSubmit = async () => {\r\n\r\n this.setState({showSnackbar: false})\r\n if (!this.validate()) return\r\n\r\n // Without OTP login\r\n if (!this.props.isLoggedIn) {\r\n const {usernameOrEmailAddress, password} = this.state\r\n const rs = await this.props.login(usernameOrEmailAddress, password)\r\n if (rs.success) {\r\n const {shouldChangePassword} = this.props\r\n shouldChangePassword\r\n ? this.props.history.push('/change-password')\r\n : this.props.history.push('/dashboard')\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n } else {\r\n this.props.history.push('/dashboard')\r\n }\r\n\r\n // OTP login\r\n // if (!this.props.isLoggedIn) {\r\n // const {usernameOrEmailAddress, password} = this.state\r\n // const data = {usernameOrEmailAddress, password}\r\n // const rs = await this.props.authSendOtp(data)\r\n // rs.success\r\n // ? this.setState({verifyOtpScreen: true})\r\n // : this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n // } else {\r\n // this.props.history.push('/dashboard')\r\n // }\r\n }\r\n\r\n onResend = async () => {\r\n const {usernameOrEmailAddress, password} = this.state\r\n const data = {usernameOrEmailAddress, password}\r\n const rs = await this.props.authSendOtp(data)\r\n rs.success\r\n ? this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'OTP sent'})\r\n : this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n clearErrorMessage = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onSubmitOtp = async e => {\r\n if (e) e.preventDefault()\r\n\r\n const {usernameOrEmailAddress, password, otp} = this.state\r\n\r\n if (otp === '') {\r\n this.setState({otpError: 'This field is required'})\r\n return\r\n } else {\r\n this.setState({otpError: ''})\r\n }\r\n\r\n const {uid} = this.props\r\n const data = {usernameOrEmailAddress, password, otp, uid}\r\n const rs = await this.props.authAuthenticateWithOtp(data)\r\n if (rs.success) {\r\n this.props.history.push('/dashboard')\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n render() {\r\n const {classes, isLoggingIn, authSendOtpIsLoading, authAuthenticateWithOtpIsLoading, contactNo} = this.props\r\n const {verifyOtpScreen, otp, snackbarVariant, snackbarMessage, otpError} = this.state\r\n const isLoading = isLoggingIn || authSendOtpIsLoading || authAuthenticateWithOtpIsLoading\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n {!verifyOtpScreen &&
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {this.state.showSnackbar &&\r\n \r\n \r\n }\r\n\r\n \r\n \r\n Forgot password\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    }\r\n\r\n {verifyOtpScreen &&
    \r\n \r\n \r\n Please enter the OTP code sent\r\n to {maskContactNo(contactNo)}\r\n \r\n \r\n \r\n \r\n {this.state.showSnackbar &&\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    }\r\n\r\n {isLoading && }\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {\r\n authDuck: {\r\n isLoggedIn, loginFailedReason, isLoggingIn, uid, authSendOtpIsLoading,\r\n authAuthenticateWithOtpIsLoading, contactNo, shouldChangePassword\r\n }\r\n } = state\r\n\r\n return {\r\n isLoggedIn, loginFailedReason, isLoggingIn, uid, authSendOtpIsLoading,\r\n authAuthenticateWithOtpIsLoading, contactNo, shouldChangePassword\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n login: (username, password) => dispatch(login(username, password)),\r\n authSendOtp: (username, password) => dispatch(authSendOtp(username, password)),\r\n authAuthenticateWithOtp: (username, password, otp, uid) => dispatch(authAuthenticateWithOtp(username, password, otp, uid))\r\n }\r\n}\r\n\r\nconst styles = {\r\n loginContainer: {width: '100%', height: '100vh'},\r\n loginWrapper: {width: '30rem', height: '30rem', textAlign: 'center', margin: 'auto'},\r\n logoWrap: {padding: '1rem'},\r\n paper: {padding: '2rem', position: 'relative'}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(LoginScreen))","import React, {PureComponent} from 'react'\r\nimport {Grid} from '@material-ui/core'\r\n\r\nclass NotFoundScreen extends PureComponent {\r\n render() {\r\n return (\r\n \r\n \r\n Not found\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default NotFoundScreen","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, TextField} from '@material-ui/core'\r\nimport {setErrorMessage} from '../ducks/systemError'\r\nimport {addUserTicketAndPassport} from '../ducks/individualFormDuck'\r\n\r\nclass ScanTicket extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n ticket: '',\r\n passport: ''\r\n }\r\n this.ticketRef = React.createRef()\r\n this.passportRef = React.createRef()\r\n this.ticketTimeout = null\r\n this.passportTimeout = null\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.ticketTimeout)\r\n clearTimeout(this.passportTimeout)\r\n }\r\n\r\n handleInputChange = e => {\r\n if (e.target.id === 'ticket') {\r\n let input = e.target.value\r\n clearTimeout(this.ticketTimeout)\r\n this.ticketTimeout = setTimeout(() => {\r\n this._addTicket(input)\r\n this.passportRef.current.focus()\r\n }, 1000\r\n )\r\n }\r\n\r\n if (e.target.id === 'passport') {\r\n let input = e.target.value\r\n clearTimeout(this.passportTimeout)\r\n this.passportTimeout = setTimeout(() => {\r\n this._addPassport(input)\r\n this.props.addUserTicketAndPassport(this.state)\r\n this.props.onScanDone()\r\n }, 1000\r\n )\r\n }\r\n\r\n }\r\n\r\n _addTicket = input => {\r\n // let tixNo = this._findTixNo(input)\r\n // if (!tixNo) {\r\n // this.props.setErrorMessage('Cannot find ticket no')\r\n // return\r\n // }\r\n\r\n this.setState({ticket: input})\r\n }\r\n\r\n _addPassport = input => {\r\n this.setState({passport: input})\r\n }\r\n\r\n _findTixNo = input => {\r\n let re = /SQ SQ (\\d+)/\r\n let match = input.match(re)\r\n if (!match) return\r\n return match[1]\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = {\r\n container: {\r\n marginTop: '10em'\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = function (dispatch) {\r\n return {\r\n addUserTicketAndPassport: formState => dispatch(addUserTicketAndPassport(formState)),\r\n setErrorMessage: msg => dispatch(setErrorMessage(msg))\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(withStyles(styles)(ScanTicket))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {Link} from 'react-router-dom'\r\nimport {withStyles, Grid, Button, TextField, Typography, Paper} from '@material-ui/core'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport MySnackbarContent from '../components/MySnackbarContent'\r\nimport {forgotPassword} from '../ducks/authDuck'\r\nimport {REQUIRED_ERROR_MSG} from '../constants/messages'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\n\r\nclass ForgotPasswordScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n userId: '',\r\n userIdError: '',\r\n submitSuccess: false,\r\n submitMessage: ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Forgot Password`\r\n }\r\n\r\n _onSubmit = async () => {\r\n if (this.validate()) {\r\n const data = {userId: this.state.userId}\r\n const rs = await this.props.forgotPassword(data)\r\n this.setState({\r\n submitSuccess: true,\r\n submitMessage: 'An email with further instructions has been sent to your email'\r\n })\r\n // if (rs.success) {\r\n // this.setState({\r\n // submitSuccess: rs.success,\r\n // submitMessage: 'An email with further instructions has been sent to your email'\r\n // })\r\n // } else {\r\n // this.setState({submitSuccess: rs.success, submitMessage: 'Email is not valid'})\r\n // }\r\n }\r\n }\r\n\r\n validate() {\r\n let rs = true\r\n if (this.state.userId === '') {\r\n this.setState({userIdError: REQUIRED_ERROR_MSG})\r\n rs = false\r\n } else {\r\n this.setState({userIdError: ''})\r\n }\r\n return rs\r\n }\r\n\r\n onFieldChange = e => {\r\n this.setState({userId: e.target.value})\r\n }\r\n\r\n clearErrorMessage = () => {\r\n this.setState({submitMessage: ''})\r\n }\r\n\r\n render() {\r\n const {classes, forgotPasswordIsLoading} = this.props\r\n const {submitSuccess, submitMessage, userId, userIdError} = this.state\r\n\r\n return (\r\n \r\n\r\n
    \r\n \r\n \r\n Forgot Password\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n {!submitSuccess && \r\n \r\n }\r\n \r\n
    \r\n
    \r\n\r\n {submitSuccess && submitMessage !== '' &&\r\n \r\n \r\n }\r\n\r\n {!submitSuccess && submitMessage !== '' &&\r\n \r\n \r\n }\r\n\r\n {submitMessage !== '' && \r\n \r\n }\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = {\r\n container: {width: '100%', height: '100vh'},\r\n inner: {width: '40em', height: '30em', textAlign: 'center', maxWidth: '20em', margin: 'auto'},\r\n notice: {textAlign: 'center'},\r\n paper: {padding: '2rem', position: 'relative'}\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {authDuck: {forgotPasswordIsLoading}} = state\r\n\r\n return {forgotPasswordIsLoading}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n forgotPassword: data => dispatch(forgotPassword(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(ForgotPasswordScreen))","import React, {Component} from 'react'\r\nimport {withStyles, Grid, TextField, Typography, Button} from '@material-ui/core'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport Header from '../containers/Header.js'\r\nimport StyledSection from '../components/StyledSection'\r\n\r\nclass ResetPasswordScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n currentPassword: '',\r\n currentPasswordError: '',\r\n newPassword: '',\r\n newPasswordError: '',\r\n confirmPassword: '',\r\n confirmPasswordError: ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Reset Password`\r\n }\r\n\r\n onSubmit = () => {\r\n if (this._validate()) {\r\n\r\n }\r\n }\r\n\r\n _validate() {\r\n\r\n }\r\n\r\n onFieldChange = (k, e) => {\r\n\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n const {currentPassword, currentPasswordError, newPassword, newPasswordError, confirmPassword, confirmPasswordError} = this.state\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n Current password\r\n \r\n \r\n this.onFieldChange('currentPassword', e)}/>\r\n \r\n \r\n\r\n \r\n \r\n New password\r\n \r\n \r\n this.onFieldChange('newPassword', e)}/>\r\n \r\n \r\n\r\n \r\n \r\n Confirm new password\r\n \r\n \r\n this.onFieldChange('confirmPassword', e)}/>\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = themes => ({\r\n container: {...themes.container}\r\n})\r\n\r\nexport default withStyles(styles)(ResetPasswordScreen)","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\n//\r\nconst UPDATE_USER_ACCESS_ACCOUNT_DUCK = 'UPDATE_USER_ACCESS_ACCOUNT_DUCK'\r\nconst UPDATE_USER_ACESS_ACCOUNT_PERMISSIONS = 'UPDATE_USER_ACESS_ACCOUNT_PERMISSIONS'\r\nconst CREATE_ROLE_IS_LOADING = 'CREATE_ROLE_IS_LOADING'\r\nconst CREATE_ROLE_SUCCESS = 'CREATE_ROLE_SUCCESS'\r\nconst CREATE_ROLE_FAIL = 'CREATE_ROLE_FAIL'\r\nconst UPDATE_ROLE_IS_LOADING = 'UPDATE_ROLE_IS_LOADING'\r\nconst UPDATE_ROLE_SUCCESS = 'UPDATE_ROLE_SUCCESS'\r\nconst UPDATE_ROLE_FAIL = 'UPDATE_ROLE_FAIL'\r\nconst DELETE_ROLE_IS_LOADING = 'DELETE_ROLE_IS_LOADING'\r\nconst DELETE_ROLE_SUCCESS = 'DELETE_ROLE_SUCCESS'\r\nconst DELETE_ROLE_FAIL = 'DELETE_ROLE_FAIL'\r\n//\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\n//\r\nexport const createRole = fields => async (dispatch) => {\r\n dispatch(_createRoleIsLoading())\r\n\r\n const permissions = []\r\n for (let k in fields.permissions) {\r\n if (fields.permissions[k] === true) permissions.push(k)\r\n }\r\n\r\n const data = {name: fields.roleNameField, displayName: fields.roleNameField, permissions}\r\n const rs = await axios.post(baseURL + '/Role', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_createRoleSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_createRoleFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _createRoleIsLoading = () => ({\r\n type: CREATE_ROLE_IS_LOADING\r\n})\r\n\r\nconst _createRoleSuccess = () => ({\r\n type: CREATE_ROLE_SUCCESS\r\n})\r\n\r\nconst _createRoleFail = () => ({\r\n type: CREATE_ROLE_FAIL\r\n})\r\n\r\nexport const updateRole = fields => async dispatch => {\r\n dispatch(_updateRoleIsLoading())\r\n\r\n const permissions = []\r\n for (let k in fields.permissions) {\r\n if (fields.permissions[k] === true) permissions.push(k)\r\n }\r\n const data = {...fields, permissions}\r\n const rs = await axios.put(baseURL + '/Role/Update', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_updateRoleSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateRoleFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updateRoleIsLoading = () => ({\r\n type: UPDATE_ROLE_IS_LOADING\r\n})\r\n\r\nconst _updateRoleSuccess = rs => ({\r\n type: UPDATE_ROLE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _updateRoleFail = () => ({\r\n type: UPDATE_ROLE_FAIL\r\n})\r\n\r\nexport const updateUserAccessAccountDuck = (k, v) => ({\r\n type: UPDATE_USER_ACCESS_ACCOUNT_DUCK,\r\n k, v\r\n})\r\n\r\nexport const updateUserAccessAccountPermissions = (k, v) => ({\r\n type: UPDATE_USER_ACESS_ACCOUNT_PERMISSIONS,\r\n k, v\r\n})\r\n\r\nexport const deleteRole = Id => async dispatch => {\r\n dispatch(_deleteRoleIsLoading())\r\n\r\n const rs = await axios.delete(baseURL + '/Role/Delete?Id=' + Id, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_deleteRoleSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_deleteRoleFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _deleteRoleIsLoading = () => ({\r\n type: DELETE_ROLE_IS_LOADING\r\n})\r\n\r\nconst _deleteRoleSuccess = rs => ({\r\n type: DELETE_ROLE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _deleteRoleFail = () => ({\r\n type: DELETE_ROLE_FAIL\r\n})\r\n\r\n//\r\n\r\nconst initState = {\r\n roleNameField: '',\r\n permissions: {},\r\n createRoleIsLoading: false,\r\n updateRoleIsLoading: false,\r\n deleteRoleIsLoading: false\r\n}\r\n\r\nconst UserAccessAccountDuck = (state = initState, action) => {\r\n let newPermissions\r\n\r\n switch (action.type) {\r\n\r\n case UPDATE_USER_ACCESS_ACCOUNT_DUCK:\r\n return {...state, [action.k]: action.v}\r\n\r\n case UPDATE_USER_ACESS_ACCOUNT_PERMISSIONS:\r\n newPermissions = {...state.permissions, [action.k]: action.v}\r\n return {...state, permissions: newPermissions}\r\n\r\n case CREATE_ROLE_SUCCESS:\r\n newPermissions = {...state.permissions}\r\n for (let k in newPermissions) {\r\n newPermissions[k] = false\r\n }\r\n return {...state, permissions: newPermissions, roleNameField: ''}\r\n\r\n case UPDATE_ROLE_IS_LOADING:\r\n return {...state}\r\n\r\n case UPDATE_ROLE_SUCCESS:\r\n return {...state}\r\n\r\n case UPDATE_ROLE_FAIL:\r\n return {...state}\r\n\r\n case DELETE_ROLE_IS_LOADING:\r\n return {...state}\r\n\r\n case DELETE_ROLE_SUCCESS:\r\n return {...state}\r\n\r\n case DELETE_ROLE_FAIL:\r\n return {...state}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default UserAccessAccountDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst UPDATE_CREATE_NEW_ACCOUNT_DUCK = ' UPDATE_CREATE_NEW_ACCOUNT_DUCK'\r\nconst SUBMIT_CREATE_NEW_ACCOUNT_IS_LOADING = 'SUBMIT_CREATE_NEW_ACCOUNT_IS_LOADING'\r\nconst SUBMIT_CREATE_NEW_ACCOUNT_SUCCESS = 'SUBMIT_CREATE_NEW_ACCOUNT_SUCCESS'\r\nconst SUBMIT_CREATE_NEW_ACCOUNT_FAIL = 'SUBMIT_CREATE_NEW_ACCOUNT_FAIL'\r\n\r\nexport const updateCreateNewAccountDuck = (k, v) => ({\r\n type: UPDATE_CREATE_NEW_ACCOUNT_DUCK,\r\n k, v\r\n})\r\n\r\nexport const submitCreateNewAccount = fields => async dispatch => {\r\n dispatch(_submitCreateNewAccountIsLoading())\r\n\r\n const {name, contactNo, emailAddress, roleNames, pos, startActiveTime, endActiveTime} = fields\r\n const data = {name, contactNo, emailAddress, roleNames, pos, startActiveTime, endActiveTime}\r\n\r\n const rs = await axios.post(baseURL + '/Account/Create', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_submitCreateNewAccountSuccess())\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_submitCreateNewAccountFail())\r\n if(rs.data.error){\r\n if(rs.data.error.message) return {success:false, message: rs.data.error.message}\r\n }\r\n return {success: false, message: 'Please try again 1'}\r\n }\r\n}\r\n\r\nconst _submitCreateNewAccountIsLoading = () => ({\r\n type: SUBMIT_CREATE_NEW_ACCOUNT_IS_LOADING\r\n})\r\n\r\nconst _submitCreateNewAccountSuccess = () => ({\r\n type: SUBMIT_CREATE_NEW_ACCOUNT_SUCCESS\r\n})\r\n\r\nconst _submitCreateNewAccountFail = () => ({\r\n type: SUBMIT_CREATE_NEW_ACCOUNT_FAIL\r\n})\r\n\r\nconst initState = {\r\n name: '',\r\n emailAddress: '',\r\n contactNo: '',\r\n pos: '',\r\n roleNames: [],\r\n submitCreateNewAccountIsLoading: false,\r\n startActiveTime: '',\r\n endActiveTime: ''\r\n}\r\n\r\nconst createNewAccountDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n case UPDATE_CREATE_NEW_ACCOUNT_DUCK:\r\n return {...state, [action.k]: action.v}\r\n\r\n case SUBMIT_CREATE_NEW_ACCOUNT_IS_LOADING:\r\n return {...state, submitCreateNewAccountIsLoading: true}\r\n\r\n case SUBMIT_CREATE_NEW_ACCOUNT_SUCCESS:\r\n return {...state, ...initState}\r\n\r\n case SUBMIT_CREATE_NEW_ACCOUNT_FAIL:\r\n return {...state, submitCreateNewAccountIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default createNewAccountDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nconst GET_ROLES_IS_LOADING = 'GET_ROLES_IS_LOADING'\r\nconst GET_ROLES_SUCCESS = 'GET_ROLES_SUCCESS'\r\nconst GET_ROLES_FAIL = 'GET_ROLES_FAIL'\r\nconst GET_PERMISSIONS_IS_LOADING = 'GET_PERMISSIONS_IS_LOADING'\r\nconst GET_PERMISSIONS_SUCCESS = 'GET_PERMISSIONS_SUCCESS'\r\nconst GET_PERMISSIONS_FAIL = 'GET_PERMISSIONS_FAIL'\r\nconst GET_USERS_IS_LOADING = 'GET_USERS_IS_LOADING'\r\nconst GET_USERS_SUCCESS = 'GET_USERS_SUCCESS'\r\nconst GET_USERS_FAIL = 'GET_USERS_FAIL'\r\nconst DELETE_USER_IS_LOADING = 'DELETE_USER_IS_LOADING'\r\nconst DELETE_USER_SUCCESS = 'DELETE_USER_SUCCESS'\r\nconst DELETE_USER_FAIL = 'DELETE_USER_FAIL'\r\nconst UPDATE_USER_IS_LOADING = 'UPDATE_USER_IS_LOADING'\r\nconst UPDATE_USER_SUCCESS = 'UPDATE_USER_SUCCESS'\r\nconst UPDATE_USER_FAIL = 'UPDATE_USER_FAIL'\r\nconst UNLOCK_USER_IS_LOADING = 'UNLOCK_USER_IS_LOADING'\r\nconst UNLOCK_USER_SUCCESS = 'UNLOCK_USER_SUCCESS'\r\nconst UNLOCK_USER_FAIL = 'UNLOCK_USER_FAIL'\r\nconst GET_ALL_ROLES_IS_LOADING = 'GET_ALL_ROLES_IS_LOADING'\r\nconst GET_ALL_ROLES_SUCCESS = 'GET_ALL_ROLES_SUCCESS'\r\nconst GET_ALL_ROLES_FAIL = 'GET_ALL_ROLES_FAIL'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getAllRoles = () => async dispatch => {\r\n dispatch(_getAllRolesIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Role/GetAll', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_getAllRolesSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getAllRolesFail())\r\n return {success: true, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAllRolesIsLoading = () => ({\r\n type: GET_ALL_ROLES_IS_LOADING\r\n})\r\n\r\nconst _getAllRolesSuccess = rs => ({\r\n type: GET_ALL_ROLES_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getAllRolesFail = () => ({\r\n type: GET_ALL_ROLES_FAIL\r\n})\r\n\r\nexport const getRoles = () => async dispatch => {\r\n dispatch(_getRolesIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Role/GetAll', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_getRolesSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getRolesFail())\r\n return {success: true, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getRolesIsLoading = () => ({\r\n type: GET_ROLES_IS_LOADING\r\n})\r\n\r\nconst _getRolesSuccess = rs => ({\r\n type: GET_ROLES_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getRolesFail = errorDetails => ({\r\n type: GET_ROLES_FAIL,\r\n errorDetails\r\n})\r\n\r\nexport const getPermissions = () => async dispatch => {\r\n dispatch(_getPermissionsIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Permission', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getPermissionsSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getPermissionsFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getPermissionsIsLoading = () => ({\r\n type: GET_PERMISSIONS_IS_LOADING\r\n})\r\n\r\nconst _getPermissionsSuccess = rs => ({\r\n type: GET_PERMISSIONS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getPermissionsFail = () => ({\r\n type: GET_PERMISSIONS_FAIL\r\n})\r\n\r\nexport const getUsers = () => async dispatch => {\r\n dispatch(_getUsersIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Account/GetAll', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_getUsersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getUsersFail())\r\n return {success: false, message: 'Unable to load users'}\r\n }\r\n}\r\n\r\nconst _getUsersIsLoading = () => ({\r\n type: GET_USERS_IS_LOADING\r\n})\r\n\r\nconst _getUsersSuccess = rs => ({\r\n type: GET_USERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getUsersFail = () => ({\r\n type: GET_USERS_FAIL\r\n})\r\n\r\nexport const deleteUser = id => async dispatch => {\r\n dispatch(_deleteUserIsLoading())\r\n\r\n const rs = await axios.delete(baseURL + '/Account/Delete?Id=' + id, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_deleteUserSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_deleteUserFail())\r\n return {success: false, message: ''}\r\n }\r\n}\r\n\r\nconst _deleteUserIsLoading = () => ({\r\n type: DELETE_USER_IS_LOADING\r\n})\r\n\r\nconst _deleteUserSuccess = rs => ({\r\n type: DELETE_USER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _deleteUserFail = () => ({\r\n type: DELETE_USER_FAIL\r\n})\r\n\r\nexport const updateUser = user => async dispatch => {\r\n dispatch(_updateUserIsLoading())\r\n\r\n const {id, name, contactNo, emailAddress, roleNames, pos, isActive, startActiveTime, endActiveTime} = user\r\n const data = {id, name, contactNo, emailAddress, roleNames, pos, isActive, startActiveTime, endActiveTime}\r\n\r\n const rs = await axios.put(baseURL + '/Account/Update', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_updateUserSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateUserFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updateUserIsLoading = () => ({\r\n type: UPDATE_USER_IS_LOADING\r\n})\r\n\r\nconst _updateUserSuccess = rs => ({\r\n type: UPDATE_USER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _updateUserFail = () => ({\r\n type: UPDATE_USER_FAIL\r\n})\r\n\r\nexport const unlockUser = user => async dispatch => {\r\n dispatch(_unlockUserIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Account/ReleaseLockout', user, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs && rs.data.success) {\r\n dispatch(_unlockUserSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_unlockUserFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _unlockUserIsLoading = () => ({\r\n type: UNLOCK_USER_IS_LOADING\r\n})\r\n\r\nconst _unlockUserSuccess = rs => ({\r\n type: UNLOCK_USER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _unlockUserFail = () => ({\r\n type: UNLOCK_USER_FAIL\r\n})\r\n\r\nexport const getShouldCallSQ = () => async dispatch => {\r\n dispatch(_getShouldCallSQIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/SqApi/GetShouldCallSQ', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getShouldCallSQFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getShouldCallSQSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getShouldCallSQFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\nconst GET_SHOULD_CALL_SQ_IS_LOADING = 'GET_SHOULD_CALL_SQ_IS_LOADING'\r\nconst GET_SHOULD_CALL_SQ_SUCCESS = 'GET_SHOULD_CALL_SQ_SUCCESS'\r\nconst GET_SHOULD_CALL_SQ_FAIL = 'GET_SHOULD_CALL_SQ_FAIL'\r\nconst _getShouldCallSQIsLoading = () => ({\r\n type: GET_SHOULD_CALL_SQ_IS_LOADING\r\n})\r\nconst _getShouldCallSQSuccess = rs => ({\r\n type: GET_SHOULD_CALL_SQ_SUCCESS,\r\n rs\r\n})\r\nconst _getShouldCallSQFail = () => ({\r\n type: GET_SHOULD_CALL_SQ_FAIL\r\n})\r\n\r\nexport const updateShouldCallSQ = data => async dispatch => {\r\n dispatch(_updateShouldCallSQIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/SqApi/UpdateShouldCallSQ', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_updateShouldCallSQFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_updateShouldCallSQSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateShouldCallSQFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\nconst UPDATE_SHOULD_CALL_SQ_IS_LOADING='UPDATE_SHOULD_CALL_SQ_IS_LOADING'\r\nconst UPDATE_SHOULD_CALL_SQ_SUCCESS='UPDATE_SHOULD_CALL_SQ_SUCCESS'\r\nconst UPDATE_SHOULD_CALL_SQ_FAIL='UPDATE_SHOULD_CALL_SQ_FAIL'\r\nconst _updateShouldCallSQIsLoading = () => ({\r\n type: UPDATE_SHOULD_CALL_SQ_IS_LOADING\r\n})\r\nconst _updateShouldCallSQSuccess = rs => ({\r\n type: UPDATE_SHOULD_CALL_SQ_SUCCESS,\r\n rs\r\n})\r\nconst _updateShouldCallSQFail = () => ({\r\n type: UPDATE_SHOULD_CALL_SQ_FAIL\r\n})\r\n\r\nconst initState = {\r\n getRolesIsLoading: false,\r\n roles: [],\r\n getPermissionsIsLoading: false,\r\n permissions: [],\r\n getUsersIsLoading: false,\r\n users: [],\r\n deleteUserIsLoading: false,\r\n getShouldCallSQIsLoading: false,\r\n shouldCallSQ: false,\r\n updateShouldCallSQIsLoading: false\r\n}\r\n\r\nconst systemDataDuck = (state = initState, action) => {\r\n let newPermissions\r\n\r\n switch (action.type) {\r\n case GET_ROLES_IS_LOADING:\r\n return {...state, getRolesIsLoading: true}\r\n\r\n case GET_ROLES_SUCCESS:\r\n return {...state, getRolesIsLoading: false, roles: action.rs.data.result.items}\r\n\r\n case GET_ROLES_FAIL:\r\n return {...state, getRolesIsLoading: false}\r\n\r\n case GET_PERMISSIONS_IS_LOADING:\r\n return {...state, getPermissionsIsLoading: true}\r\n\r\n case GET_PERMISSIONS_SUCCESS:\r\n newPermissions = {...state.permissions}\r\n action.rs.data.result.items.forEach(i => {\r\n newPermissions[i.name] = false\r\n })\r\n return {...state, getPermissionsIsLoading: false, permissions: newPermissions}\r\n\r\n case GET_PERMISSIONS_FAIL:\r\n return {...state, getPermissionsIsLoading: false}\r\n\r\n case GET_USERS_IS_LOADING:\r\n return {...state, getUsersIsLoading: true}\r\n\r\n case GET_USERS_SUCCESS:\r\n return {...state, getUsersIsLoading: false, users: action.rs.data.result.items}\r\n\r\n case GET_USERS_FAIL:\r\n return {...state, getUsersIsLoading: false}\r\n\r\n case DELETE_USER_IS_LOADING:\r\n return {...state, deleteUserIsLoading: true}\r\n\r\n case DELETE_USER_SUCCESS:\r\n return {...state, deleteUserIsLoading: false}\r\n\r\n case DELETE_USER_FAIL:\r\n return {...state, deleteUserIsLoading: false}\r\n\r\n case UPDATE_USER_IS_LOADING:\r\n return {...state, updateUserIsLoading: true}\r\n\r\n case UPDATE_USER_SUCCESS:\r\n return {...state, updateUserIsLoading: false}\r\n\r\n case UPDATE_USER_FAIL:\r\n return {...state, updateUserIsLoading: false}\r\n\r\n case GET_ALL_ROLES_IS_LOADING:\r\n return {...state, getAllRolesIsLoading: true}\r\n\r\n case GET_ALL_ROLES_SUCCESS:\r\n return {...state, getAllRolesIsLoading: false, roles: action.rs.data.result.items}\r\n\r\n case GET_ALL_ROLES_FAIL:\r\n return {...state, getAllRolesIsLoading: false}\r\n\r\n case GET_SHOULD_CALL_SQ_IS_LOADING:\r\n return {...state, getShouldCallSQIsLoading: true}\r\n\r\n case GET_SHOULD_CALL_SQ_SUCCESS:\r\n return {...state, getShouldCallSQIsLoading: false, shouldCallSQ: action.rs.data.result}\r\n\r\n case GET_SHOULD_CALL_SQ_FAIL:\r\n return {...state, getShouldCallSQIsLoading: false}\r\n\r\n case UPDATE_SHOULD_CALL_SQ_IS_LOADING:\r\n return {...state, updateShouldCallSQIsLoading: true}\r\n\r\n case UPDATE_SHOULD_CALL_SQ_SUCCESS:\r\n return {...state, updateShouldCallSQIsLoading: false}\r\n\r\n case UPDATE_SHOULD_CALL_SQ_FAIL:\r\n return {...state, updateShouldCallSQIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default systemDataDuck\r\n","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const searchPassengers = data => async dispatch => {\r\n dispatch(_searchPassengersIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Passenger/SearchPassengers', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_searchPassengersFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_searchPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_searchPassengersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst SEARCH_PASSENGERS_IS_LOADING = 'SEARCH_PASSENGERS_IS_LOADING'\r\nconst SEARCH_PASSENGERS_SUCCESS = 'SEARCH_PASSENGERS_SUCCESS'\r\nconst SEARCH_PASSENGERS_FAIL = 'SEARCH_PASSENGERS_FAIL'\r\n\r\nconst _searchPassengersIsLoading = () => ({\r\n type: SEARCH_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _searchPassengersSuccess = rs => ({\r\n type: SEARCH_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _searchPassengersFail = () => ({\r\n type: SEARCH_PASSENGERS_FAIL\r\n})\r\n\r\nexport const getGroupsByAttribute = data => async dispatch => {\r\n dispatch(_getGroupsByAttributeIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Group/GetGroupsByAttribute', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status)) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getGroupsByAttributeFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getGroupsByAttributeSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getGroupsByAttributeFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_GROUPS_BY_ATTRIBUTE_IS_LOADING = 'GET_GROUPS_BY_ATTRIBUTE_IS_LOADING'\r\nconst GET_GROUPS_BY_ATTRIBUTE_SUCCESS = 'GET_GROUPS_BY_ATTRIBUTE_SUCCESS'\r\nconst GET_GROUPS_BY_ATTRIBUTE_FAIL = 'GET_GROUPS_BY_ATTRIBUTE_FAIL'\r\n\r\nconst _getGroupsByAttributeIsLoading = () => ({\r\n type: GET_GROUPS_BY_ATTRIBUTE_IS_LOADING\r\n})\r\n\r\nconst _getGroupsByAttributeSuccess = rs => ({\r\n type: GET_GROUPS_BY_ATTRIBUTE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getGroupsByAttributeFail = () => ({\r\n type: GET_GROUPS_BY_ATTRIBUTE_FAIL\r\n})\r\n\r\nexport const getPassengersByCardRange = data => async dispatch => {\r\n dispatch(_getPassengersByCardRangeIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Passenger/GetPassengersByCardRange', data).catch(e => {\r\n if (e.response.status === 500) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getPassengersByCardRangeFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getPassengersByCardRangeSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getPassengersByCardRangeFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_PASSENGERS_BY_CARD_RANGE_IS_LOADING = 'GET_PASSENGERS_BY_CARD_RANGE_IS_LOADING'\r\nconst GET_PASSENGERS_BY_CARD_RANGE_SUCCESS = 'GET_PASSENGERS_BY_CARD_RANGE_SUCCESS'\r\nconst GET_PASSENGERS_BY_CARD_RANGE_FAIL = 'GET_PASSENGERS_BY_CARD_RANGE_FAIL'\r\n\r\nconst _getPassengersByCardRangeIsLoading = () => ({\r\n type: GET_PASSENGERS_BY_CARD_RANGE_IS_LOADING\r\n})\r\n\r\nconst _getPassengersByCardRangeSuccess = rs => ({\r\n type: GET_PASSENGERS_BY_CARD_RANGE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getPassengersByCardRangeFail = () => ({\r\n type: GET_PASSENGERS_BY_CARD_RANGE_FAIL\r\n})\r\n\r\nexport const getPhysicalVoucherByRange = data => async dispatch => {\r\n dispatch(_getPhysicalVoucherByRangeIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/PhysicalVoucher/GetPhysicalVoucherByRange', data).catch(e => {\r\n if (e.response.status === 500) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getPhysicalVoucherByRangeFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getPhysicalVoucherByRangeSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getPhysicalVoucherByRangeFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst GET_PHYSICAL_VOUCHER_BY_RANGE_IS_LOADING = 'GET_PHYSICAL_VOUCHER_BY_RANGE_IS_LOADING'\r\nconst GET_PHYSICAL_VOUCHER_BY_RANGE_SUCCESS = 'GET_PHYSICAL_VOUCHER_BY_RANGE_SUCCESS'\r\nconst GET_PHYSICAL_VOUCHER_BY_RANGE_FAIL = 'GET_PHYSICAL_VOUCHER_BY_RANGE_FAIL'\r\n\r\nconst _getPhysicalVoucherByRangeIsLoading = () => ({\r\n type: GET_PHYSICAL_VOUCHER_BY_RANGE_IS_LOADING\r\n})\r\n\r\nconst _getPhysicalVoucherByRangeSuccess = rs => ({\r\n type: GET_PHYSICAL_VOUCHER_BY_RANGE_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getPhysicalVoucherByRangeFail = () => ({\r\n type: GET_PHYSICAL_VOUCHER_BY_RANGE_FAIL\r\n})\r\n\r\nconst initState = {\r\n searchPassengersIsLoading: false,\r\n passengers: [],\r\n getGroupsByAttributeIsLoading: false,\r\n groups: [],\r\n getPassengersByCardRangeIsLoading: false,\r\n getPhysicalVoucherByRangeIsLoading: false,\r\n cardVoucherRangeSearchResults: []\r\n}\r\n\r\nconst searchDuck = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n case SEARCH_PASSENGERS_IS_LOADING:\r\n return {...state, searchPassengersIsLoading: true}\r\n\r\n case SEARCH_PASSENGERS_SUCCESS:\r\n return {...state, searchPassengersIsLoading: false, passengers: action.rs.data.result.items}\r\n\r\n case SEARCH_PASSENGERS_FAIL:\r\n return {...state, searchPassengersIsLoading: false}\r\n\r\n case GET_GROUPS_BY_ATTRIBUTE_IS_LOADING:\r\n return {...state, getGroupsByAttributeIsLoading: true}\r\n\r\n case GET_GROUPS_BY_ATTRIBUTE_SUCCESS:\r\n return {...state, getGroupsByAttributeIsLoading: false, groups: action.rs.data.result.items}\r\n\r\n case GET_GROUPS_BY_ATTRIBUTE_FAIL:\r\n return {...state, getGroupsByAttributeIsLoading: false}\r\n\r\n case GET_PASSENGERS_BY_CARD_RANGE_IS_LOADING:\r\n return {...state, getPassengersByCardRangeIsLoading: true}\r\n\r\n case GET_PASSENGERS_BY_CARD_RANGE_SUCCESS:\r\n return {...state, getPassengersByCardRangeIsLoading: false, cardVoucherRangeSearchResults: action.rs.data.result.items}\r\n\r\n case GET_PASSENGERS_BY_CARD_RANGE_FAIL:\r\n return {...state, getPassengersByCardRangeIsLoading: false}\r\n\r\n case GET_PHYSICAL_VOUCHER_BY_RANGE_IS_LOADING:\r\n return {...state, getPhysicalVoucherByRangeIsLoading: true}\r\n\r\n case GET_PHYSICAL_VOUCHER_BY_RANGE_SUCCESS:\r\n return {...state, getPhysicalVoucherByRangeIsLoading: false, cardVoucherRangeSearchResults: action.rs.data.result.items}\r\n\r\n case GET_PHYSICAL_VOUCHER_BY_RANGE_FAIL:\r\n return {...state, getPhysicalVoucherByRangeIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default searchDuck","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const secondUserAuthenticate = data => async dispatch => {\r\n\treturn await axios.post(baseURL + '/Account/Login', {\r\n\t\tusernameOrEmailAddress: data.secondUserAuthId,\r\n\t\tpassword: data.secondUserAuthPassword\r\n\t})\r\n}\r\n\r\nexport const passengerCardReplacement = data => async dispatch => {\r\n\tdispatch(_passengerCardReplacementIsLoading())\r\n\r\n\tconst rs = await axios.post(baseURL + '/Member/CardReplacement', data, getCurrentAuthHeader()).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_passengerCardReplacementFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_passengerCardReplacementSuccess(rs))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_passengerCardReplacementFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst PASSENGER_CARD_REPLACEMENT_IS_LOADING = 'PASSENGER_CARD_REPLACEMENT_IS_LOADING'\r\nconst PASSENGER_CARD_REPLACEMENT_SUCCESS = 'PASSENGER_CARD_REPLACEMENT_SUCCESS'\r\nconst PASSENGER_CARD_REPLACEMENT_FAIL = 'PASSENGER_CARD_REPLACEMENT_FAIL'\r\n\r\nconst _passengerCardReplacementIsLoading = () => ({\r\n\ttype: PASSENGER_CARD_REPLACEMENT_IS_LOADING\r\n})\r\n\r\nconst _passengerCardReplacementSuccess = rs => ({\r\n\ttype: PASSENGER_CARD_REPLACEMENT_SUCCESS,\r\n\trs\r\n})\r\n\r\nconst _passengerCardReplacementFail = () => ({\r\n\ttype: PASSENGER_CARD_REPLACEMENT_FAIL\r\n})\r\n\r\nexport const getAllRewardsByCardNo = cardNo => async dispatch => {\r\n\tdispatch(_getAllRewardsByCardNoIsFetching())\r\n\r\n\tconst rs = await axios.get(baseURL + '/Member/GetAllRewardsByCardNo?cardNo=' + cardNo, getCurrentAuthHeader()).catch(e => {\r\n\t\tif (!checkValidStatusCode(e.response.status)) {\r\n\t\t\tconst {\r\n\t\t\t\tresponse: {\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\terror: { message }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} = e\r\n\t\t\treturn { data: { success: false, error: { message } } }\r\n\t\t}\r\n\t\treturn { data: { success: false, error: { message: e.response.status + ' Unexpected error' } } }\r\n\t})\r\n\tif (!rs.data) {\r\n\t\tdispatch(_getAllRewardsByCardNoFail())\r\n\t\treturn { success: false, message: 'No data from server' }\r\n\t}\r\n\tif (rs.data.success) {\r\n\t\tdispatch(_getAllRewardsByCardNoSuccess(rs.data.result.items))\r\n\t\treturn { success: true, message: '' }\r\n\t} else {\r\n\t\tdispatch(_getAllRewardsByCardNoFail())\r\n\t\treturn { success: false, message: rs.data.error.message }\r\n\t}\r\n}\r\n\r\nconst GET_ALL_REWARDS_BY_CARD_NO_IS_FETCHING = 'GET_ALL_REWARDS_BY_CARD_NO_IS_FETCHING'\r\nconst GET_ALL_REWARDS_BY_CARD_NO_SUCCESS = 'GET_ALL_REWARDS_BY_CARD_NO_SUCCESS'\r\nconst GET_ALL_REWARDS_BY_CARD_NO_FAIL = 'GET_ALL_REWARDS_BY_CARD_NO_FAIL'\r\n\r\nconst _getAllRewardsByCardNoIsFetching = () => ({\r\n\ttype: GET_ALL_REWARDS_BY_CARD_NO_IS_FETCHING\r\n})\r\n\r\nconst _getAllRewardsByCardNoSuccess = data => ({\r\n\ttype: GET_ALL_REWARDS_BY_CARD_NO_SUCCESS,\r\n\tdata\r\n})\r\n\r\nconst _getAllRewardsByCardNoFail = () => ({\r\n\ttype: GET_ALL_REWARDS_BY_CARD_NO_FAIL\r\n})\r\n\r\nconst initState = {\r\n\tpassengerCardReplacementIsLoading: false,\r\n\tgetAllRewardsByCardNoIsFetching: false\r\n}\r\n\r\nconst PassengerDuck = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase PASSENGER_CARD_REPLACEMENT_IS_LOADING:\r\n\t\t\treturn { ...state, passengerCardReplacementIsLoading: true }\r\n\r\n\t\tcase PASSENGER_CARD_REPLACEMENT_SUCCESS:\r\n\t\t\treturn { ...state, passengerCardReplacementIsLoading: false, cardReplacementResponse: action.rs }\r\n\r\n\t\tcase PASSENGER_CARD_REPLACEMENT_FAIL:\r\n\t\t\treturn { ...state, passengerCardReplacementIsLoading: false }\r\n\r\n\t\tcase GET_ALL_REWARDS_BY_CARD_NO_IS_FETCHING:\r\n\t\t\treturn { ...state, getAllRewardsByCardNoIsFetching: true }\r\n\r\n\t\tcase GET_ALL_REWARDS_BY_CARD_NO_SUCCESS:\r\n\t\t\treturn { ...state, getAllRewardsByCardNoIsFetching: false, rewardsByCardNo: action.data }\r\n\r\n\t\tcase GET_ALL_REWARDS_BY_CARD_NO_FAIL:\r\n\t\t\treturn { ...state, getAllRewardsByCardNoIsFetching: false, rewardsByCardNo: [] }\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default PassengerDuck\r\n","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader, spreadObj} from '../helpers/utilities'\r\nimport querystring from 'querystring'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\n//\r\nconst GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING = 'GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING'\r\nconst GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS = 'GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS'\r\nconst GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL = 'GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n//\r\n\r\n//\r\nexport const getRedemptionTransactionAndPassengers = data => async dispatch => {\r\n dispatch(_getRedemptionTransactionAndPassengersIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/RedemptionTransaction/GetRedemptionTransactionAndPassengers', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getRedemptionTransactionAndPassengersFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getRedemptionTransactionAndPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getRedemptionTransactionAndPassengersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getRedemptionTransactionAndPassengersIsLoading = () => ({\r\n type: GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _getRedemptionTransactionAndPassengersSuccess = rs => ({\r\n type: GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getRedemptionTransactionAndPassengersFail = () => ({\r\n type: GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL\r\n})\r\n\r\nexport const updateRedemptionTransactionPassengerSinglePax = (idx, sect, k, v) => ({\r\n type: UPDATE_REDEMPTION_TRANSATION_PASSENGER_SINGLE_PAX,\r\n idx, sect, k, v\r\n})\r\nconst UPDATE_REDEMPTION_TRANSATION_PASSENGER_SINGLE_PAX = 'UPDATE_REDEMPTION_TRANSATION_PASSENGER_SINGLE_PAX'\r\n\r\nexport const updateRedemptionTransactionPassenger = (k, v) => ({\r\n type: UPDATE_REDEMPTION_TRANSATION_PASSENGER,\r\n k, v\r\n})\r\n\r\nconst UPDATE_REDEMPTION_TRANSATION_PASSENGER = 'UPDATE_REDEMPTION_TRANSATION_PASSENGER'\r\n\r\nexport const updateRedemptionTransactionAndPassengers = data => async dispatch => {\r\n dispatch(_updateRedemptionTransactionAndPassengersIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/RedemptionTransaction/UpdateRedemptionTransactionAndPassengers', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_updateRedemptionTransactionAndPassengersFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_updateRedemptionTransactionAndPassengersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateRedemptionTransactionAndPassengersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING = 'UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING'\r\nconst UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS = 'UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS'\r\nconst UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL = 'UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL'\r\n\r\nconst _updateRedemptionTransactionAndPassengersIsLoading = () => ({\r\n type: UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING\r\n})\r\n\r\nconst _updateRedemptionTransactionAndPassengersSuccess = rs => ({\r\n type: UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _updateRedemptionTransactionAndPassengersFail = () => ({\r\n type: UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL\r\n})\r\n\r\nexport const voidTransaction = data => async dispatch => {\r\n dispatch(_voidTransactionIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/RedemptionTransaction/VoidTransaction', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_voidTransactionFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_voidTransactionSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_voidTransactionFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst VOID_TRANSACTION_IS_LOADING = 'VOID_TRANSACTION_IS_LOADING'\r\nconst VOID_TRANSACTION_SUCCESS = 'VOID_TRANSACTION_SUCCESS'\r\nconst VOID_TRANSACTION_FAIL = 'VOID_TRANSACTION_FAIL'\r\n\r\nconst _voidTransactionIsLoading = () => ({\r\n type: VOID_TRANSACTION_IS_LOADING\r\n})\r\n\r\nconst _voidTransactionSuccess = rs => ({\r\n type: VOID_TRANSACTION_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _voidTransactionFail = () => ({\r\n type: VOID_TRANSACTION_FAIL\r\n})\r\n\r\nexport const redemptionTransactionPassengersFilesUpload = data => async dispatch => {\r\n dispatch(_redemptionTransactionPassengersFilesUploadIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/File/FilesUpload?' + querystring.stringify({bucketType: 1}), data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_redemptionTransactionPassengersFilesUploadFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_redemptionTransactionPassengersFilesUploadSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_redemptionTransactionPassengersFilesUploadFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_IS_LOADING = 'REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_IS_LOADING'\r\nconst REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_SUCCESS = 'REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_SUCCESS'\r\nconst REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_FAIL = 'REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_FAIL'\r\n\r\nconst _redemptionTransactionPassengersFilesUploadIsLoading = () => ({\r\n type: REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_IS_LOADING\r\n})\r\n\r\nconst _redemptionTransactionPassengersFilesUploadSuccess = rs => ({\r\n type: REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _redemptionTransactionPassengersFilesUploadFail = () => ({\r\n type: REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_FAIL\r\n})\r\n\r\nexport const updateRedemptionTransactionPassengersDuck = obj => ({\r\n type: UPDATE_REDEMPTION_TRANSACTION_PASSENGERS_DUCK,\r\n obj\r\n})\r\n\r\nconst UPDATE_REDEMPTION_TRANSACTION_PASSENGERS_DUCK = 'UPDATE_REDEMPTION_TRANSACTION_PASSENGERS_DUCK'\r\n\r\n//\r\n\r\nconst initETicket = {\r\n 'eTicketNo': '',\r\n 'lastName': '',\r\n 'id': '',\r\n 'sqResponse': '',\r\n 'sector': [\r\n {\r\n 'sectorNo': 1,\r\n 'origin': '',\r\n 'destination': '',\r\n 'flightNo': '',\r\n 'departureDate': '',\r\n 'arrivalDate': '',\r\n 'transportMean': '',\r\n 'landSea': '',\r\n 'remarks': '',\r\n 'attachmentUri': ''\r\n },\r\n {\r\n 'sectorNo': 2,\r\n 'origin': '',\r\n 'destination': '',\r\n 'flightNo': '',\r\n 'departureDate': '',\r\n 'arrivalDate': '',\r\n 'transportMean': '',\r\n 'landSea': '',\r\n 'remarks': '',\r\n 'attachmentUri': ''\r\n },\r\n {\r\n 'sectorNo': 3,\r\n 'origin': '',\r\n 'destination': '',\r\n 'flightNo': '',\r\n 'departureDate': '',\r\n 'arrivalDate': '',\r\n 'transportMean': '',\r\n 'landSea': '',\r\n 'remarks': '',\r\n 'attachmentUri': ''\r\n },\r\n {\r\n 'sectorNo': 4,\r\n 'origin': '',\r\n 'destination': '',\r\n 'flightNo': '',\r\n 'departureDate': '',\r\n 'arrivalDate': '',\r\n 'transportMean': '',\r\n 'landSea': '',\r\n 'remarks': '',\r\n 'attachmentUri': ''\r\n },\r\n ]\r\n}\r\n\r\nconst initState = {\r\n redemptionTransaction: {\r\n id: '',\r\n collectorFirstName: '',\r\n collectorLastName: '',\r\n collectorContactNo: '',\r\n redeemerId: 0,\r\n physicalVoucherIssued: false,\r\n eVoucherIssued: false,\r\n signatureURI: null,\r\n groupId: 0,\r\n allowReceivingInfo: false,\r\n referenceNo: ''\r\n },\r\n passengers: [\r\n {\r\n 'id': '',\r\n 'groupId': '',\r\n 'transactionId': 0,\r\n 'cardNo': '',\r\n 'firstName': '',\r\n 'lastName': '',\r\n 'dob': '',\r\n 'passportNo': '',\r\n 'countryOfResidence': '',\r\n 'origin': '',\r\n 'sqResponse': '',\r\n 'eTicket': [\r\n {...initETicket, sector: [...initETicket.sector]},\r\n {...initETicket, sector: [...initETicket.sector]},\r\n {...initETicket, sector: [...initETicket.sector]},\r\n {...initETicket, sector: [...initETicket.sector]}\r\n ],\r\n 'memberType': '',\r\n 'eTicket1': '',\r\n 'eTicket2': '',\r\n 'eTicket3': '',\r\n 'eTicket4': '',\r\n 'firstFltDepDate': '0001-01-01T00:00:00',\r\n 'firstFltNo': '',\r\n 'secondFltDepDate': '0001-01-01T00:00:00',\r\n 'secondFltNo': '',\r\n 'isDeleted': false,\r\n 'isRedeemed': false,\r\n 'rejected': false,\r\n 'redemptionTransactionId': 0,\r\n 'redeemerId': '',\r\n 'firstFltArrDate': '',\r\n 'secondFltArrDate': '',\r\n 'creationTime': '',\r\n 'ctpEligibility': '',\r\n 'etVerified': ''\r\n }\r\n ],\r\n currentIdx: 0,\r\n getRedemptionTransactionAndPassengersIsLoading: false,\r\n updateRedemptionTransactionAndPassengersIsLoading: false,\r\n redemptionTransactionPassengersFilesUploadIsLoading: false\r\n}\r\n\r\nconst redemptionTransactionPassengersDuck = (state = initState, action) => {\r\n\r\n let newPassenger, newPassengers, idx, k, v, sect, sector1, sector2, sector3, sector4 , sector2Idx, newSector2, newState, obj\r\n switch (action.type) {\r\n\r\n case GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING:\r\n return {...state, getRedemptionTransactionAndPassengersIsLoading: true}\r\n\r\n case GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS:\r\n const {data: {result: {redemptionTransaction, passengers}}} = action.rs\r\n return {\r\n ...state, redemptionTransaction, passengers, getRedemptionTransactionAndPassengersIsLoading: false\r\n }\r\n\r\n case GET_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL:\r\n return {...state, getRedemptionTransactionAndPassengersIsLoading: false}\r\n\r\n case UPDATE_REDEMPTION_TRANSATION_PASSENGER_SINGLE_PAX:\r\n ({idx, sect, k, v} = action)\r\n\r\n if (sect === '' && (k.indexOf('eTicket') === -1)) {\r\n newPassenger = {...state.passengers[idx]}\r\n newPassenger[k] = v\r\n }\r\n\r\n if (sect === '' && k.indexOf('eTicket') !== -1) {\r\n newPassenger = {...state.passengers[idx]}\r\n newPassenger[k] = v\r\n let etixidx = parseInt(k[k.length - 1])\r\n etixidx--\r\n newPassenger.eTicket[etixidx].eTicketNo = v\r\n }\r\n\r\n if (sect === 'lastName') {\r\n newPassenger = {...state.passengers[idx]}\r\n let etixidx = parseInt(k[k.length - 1])\r\n etixidx--\r\n newPassenger.eTicket[etixidx].lastName = v\r\n }\r\n\r\n if (sect === 'sector1') {\r\n newPassenger = {...state.passengers[idx]}\r\n sector1 = newPassenger.eTicket[0].sector.find(s => s.sectorNo === 1)\r\n sector1[k] = v\r\n }\r\n\r\n if (sect === 'sector2') {\r\n newPassenger = {...state.passengers[idx]}\r\n sector2 = newPassenger.eTicket[0].sector.find(s => s.sectorNo === 2)\r\n sector2[k] = v\r\n }\r\n\r\n if (sect === 'sector3') {\r\n newPassenger = {...state.passengers[idx]}\r\n sector3 = newPassenger.eTicket[0].sector.find(s => s.sectorNo === 3)\r\n sector3[k] = v\r\n }\r\n\r\n if (sect === 'sector4') {\r\n newPassenger = {...state.passengers[idx]}\r\n sector4 = newPassenger.eTicket[0].sector.find(s => s.sectorNo === 4)\r\n sector4[k] = v\r\n }\r\n\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n\r\n return {...state, passengers: newPassengers}\r\n\r\n case UPDATE_REDEMPTION_TRANSATION_PASSENGER:\r\n ({k, v} = action)\r\n return {...state, [k]: v}\r\n\r\n case UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_IS_LOADING:\r\n return {...state, updateRedemptionTransactionAndPassengersIsLoading: true}\r\n\r\n case UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_SUCCESS:\r\n return {...state, updateRedemptionTransactionAndPassengersIsLoading: false}\r\n\r\n case UPDATE_REDEMPTION_TRANSACTION_AND_PASSENGERS_FAIL:\r\n return {...state, updateRedemptionTransactionAndPassengersIsLoading: false}\r\n\r\n case VOID_TRANSACTION_IS_LOADING:\r\n return {...state, updateRedemptionTransactionAndPassengersIsLoading: true}\r\n case VOID_TRANSACTION_SUCCESS:\r\n case VOID_TRANSACTION_FAIL:\r\n return {...state, updateRedemptionTransactionAndPassengersIsLoading: false}\r\n\r\n case REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_IS_LOADING:\r\n return {...state, redemptionTransactionPassengersFilesUploadIsLoading: true}\r\n\r\n case REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_SUCCESS:\r\n // append results to existing attachementUris\r\n idx = state.currentIdx\r\n newPassenger = {...state.passengers[idx]}\r\n sector2Idx = newPassenger.eTicket[0].sector.findIndex(s => s.sectorNo === 2)\r\n newSector2 = newPassenger.eTicket[0].sector[sector2Idx]\r\n newSector2.attachmentUris = [...newSector2.attachmentUris, ...action.rs.data.result]\r\n newPassenger.eTicket[0].sector[sector2Idx] = newSector2\r\n newPassengers = [...state.passengers]\r\n newPassengers.splice(idx, 1, newPassenger)\r\n return {\r\n ...state, redemptionTransactionPassengersFilesUploadIsLoading: false,\r\n passengers: newPassengers\r\n }\r\n\r\n case REDEMPTION_TRANSACTION_PASSENGERS_FILES_UPLOAD_FAIL:\r\n return {...state, redemptionTransactionPassengersFilesUploadIsLoading: false}\r\n\r\n case UPDATE_REDEMPTION_TRANSACTION_PASSENGERS_DUCK:\r\n ({obj} = action)\r\n newState = {...state}\r\n newState = {...spreadObj(newState, obj)}\r\n return newState\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default redemptionTransactionPassengersDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nconst GET_ALL_IATA_IS_LOADING = 'GET_ALL_IATA_IS_LOADING';\r\nconst GET_ALL_IATA_SUCCESS = 'GET_ALL_IATA_SUCCESS';\r\nconst GET_ALL_IATA_FAIL = 'GET_ALL_IATA_FAIL';\r\nconst ADD_IATA_IS_LOADING = 'ADD_IATA_IS_LOADING'\r\nconst ADD_IATA_SUCCESS = 'ADD_IATA_SUCCESS'\r\nconst ADD_IATA_FAIL = 'ADD_IATA_FAIL'\r\nconst UPDATE_IATA_IS_LOADING = 'DELETE_IATA_IS_LOADING'\r\nconst UPDATE_IATA_SUCCESS = 'UPDATE_IATA_SUCCESS'\r\nconst UPDATE_IATA_FAIL = 'UPDATE_IATA_FAIL'\r\nconst DELETE_IATA_IS_LOADING = 'DELETE_IATA_IS_LOADING'\r\nconst DELETE_IATA_SUCCESS = 'DELETE_IATA_SUCCESS'\r\nconst DELETE_IATA_FAIL = 'DELETE_IATA_FAIL'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getAllIata = () => async dispatch => {\r\n dispatch(_getAllIataIsLoading())\r\n\r\n const rs = await axios.get(baseURL + '/Iata/GetIataList', getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getAllIataSuccess(rs.data.result.items))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getAllIataFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAllIataIsLoading = () => ({\r\n type: GET_ALL_IATA_IS_LOADING\r\n})\r\n\r\nconst _getAllIataSuccess = iatas => ({\r\n type: GET_ALL_IATA_SUCCESS,\r\n iatas\r\n})\r\n\r\nconst _getAllIataFail = () => ({\r\n type: GET_ALL_IATA_FAIL\r\n})\r\n\r\nexport const updateIata = data => async dispatch => {\r\n dispatch(_updateIataIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Iata/EditIata', data, getCurrentAuthHeader()).catch(e => {\r\n\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(typeof(e.response.data.Errors) !== 'undefined' && e.response.data.Errors.length > 0)\r\n return {data: {success: false, error: {message: e.response.data.Errors[0]}}}\r\n else\r\n {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_updateIataSuccess(rs.data.result))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateIataFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updateIataIsLoading = () => ({\r\n type: UPDATE_IATA_IS_LOADING\r\n})\r\n\r\nconst _updateIataSuccess = () => ({\r\n type: UPDATE_IATA_SUCCESS\r\n});\r\n\r\nconst _updateIataFail = () => ({\r\n type: UPDATE_IATA_FAIL\r\n});\r\n\r\nexport const deleteIata = id => async dispatch => {\r\n dispatch(_deleteIataIsLoading());\r\n\r\n const deleteHeader = {...getCurrentAuthHeader()};\r\n const rs = await axios.delete(baseURL + `/Iata/DeleteIata?id=${id}`, deleteHeader).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e;\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_deleteIataSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_deleteIataFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\n\r\nconst _deleteIataIsLoading = () => ({\r\n type: DELETE_IATA_IS_LOADING\r\n})\r\n\r\nconst _deleteIataSuccess = rs => ({\r\n type: DELETE_IATA_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _deleteIataFail = () => ({\r\n type: DELETE_IATA_FAIL\r\n})\r\n\r\n\r\nexport const addIata = data => async dispatch => {\r\n dispatch(_addIataIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/Iata/AddIata', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n if(typeof(e.response.data.Errors) !== 'undefined' && e.response.data.Errors.length > 0)\r\n return {data: {success: false, error: {message: e.response.data.Errors[0]}}}\r\n else\r\n {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_addIataSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_addIataFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _addIataIsLoading = () => ({\r\n type: ADD_IATA_IS_LOADING\r\n})\r\n\r\nconst _addIataSuccess = () => ({\r\n type: ADD_IATA_SUCCESS,\r\n})\r\n\r\nconst _addIataFail = () => ({\r\n type: ADD_IATA_FAIL\r\n})\r\n\r\nconst initState = {\r\n getAllIataIsLoading: false,\r\n iatas: [],\r\n updateIataIsLoading: false,\r\n deleteIataIsLoading: false,\r\n addIataIsLoading: false\r\n}\r\n\r\nconst IataDuck = (state = initState, action) => {\r\n\r\n switch (action.type) {\r\n case GET_ALL_IATA_IS_LOADING:\r\n return {...state, getAllIataIsLoading: true};\r\n\r\n case GET_ALL_IATA_SUCCESS:\r\n return {...state, getAllIataIsLoading: false, iatas: action.iatas};\r\n\r\n case GET_ALL_IATA_FAIL:\r\n return {...state, getAllIataIsLoading: false};\r\n\r\n case UPDATE_IATA_IS_LOADING:\r\n return {...state, updateIataIsLoading: true};\r\n\r\n case UPDATE_IATA_SUCCESS:\r\n return {...state, updateIataIsLoading: false};\r\n\r\n case UPDATE_IATA_FAIL:\r\n return {...state, updateIataIsLoading: false};\r\n\r\n case DELETE_IATA_IS_LOADING:\r\n return {...state, deleteIataIsLoading: true};\r\n\r\n case DELETE_IATA_SUCCESS:\r\n return {...state, deleteIataIsLoading: false};\r\n\r\n case DELETE_IATA_FAIL:\r\n return {...state, deleteIataIsLoading: false};\r\n\r\n case ADD_IATA_IS_LOADING:\r\n return {...state, addIataIsLoading: true};\r\n\r\n case ADD_IATA_SUCCESS:\r\n return {...state, addIataIsLoading: false};\r\n\r\n case ADD_IATA_FAIL:\r\n return {...state, addIataIsLoading: false};\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default IataDuck","import axios from 'axios'\r\nimport {getSettings} from '../config/config'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nconst GET_ALL_PHYSICAL_VOUCHERS_IS_LOADING = 'GET_ALL_PHYSICAL_VOUCHERS_IS_LOADING'\r\nconst GET_ALL_PHYSICAL_VOUCHERS_SUCCESS = 'GET_ALL_PHYSICAL_VOUCHES_SUCCESS'\r\nconst GET_ALL_PHYSICAL_VOUCHERS_FAIL = 'GET_ALL_PHYSICAL_VOUCHERS_FAIL'\r\nconst ADD_PHYSICAL_VOUCHERS_IS_LOADING = 'ADD_PHYSICAL_VOUCHERS_IS_LOADING'\r\nconst ADD_PHYSICAL_VOUCHERS_SUCCESS = 'ADD_PHYSICAL_VOUCHERS_SUCCESS'\r\nconst ADD_PHYSICAL_VOUCHERS_FAIL = 'ADD_PHYSICAL_VOUCHERS_FAIL'\r\nconst UPDATE_PHYSICAL_VOUCHER_IS_LOADING = 'UPDATE_PHYSICAL_VOUCHER_IS_LOADING'\r\nconst UPDATE_PHYSICAL_VOUCHER_SUCCESS = 'UPDATE_PHYSICAL_VOUCHER_SUCCESS'\r\nconst UPDATE_PHYSICAL_VOUCHER_FAIL = 'UPDATE_PHYSICAL_VOUCHER_FAIL'\r\nconst DELETE_PHYSICAL_VOUCHER_IS_LOADING = 'DELETE_PHYSICAL_VOUCHER_IS_LOADING'\r\nconst DELETE_PHYSICAL_VOUCHER_SUCCESS = 'DELETE_PHYSICAL_VOUCHER_SUCCESS'\r\nconst DELETE_PHYSICAL_VOUCHER_FAIL = 'DELETE_PHYSICAL_VOUCHER_FAIL'\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nexport const getAllPhysicalVouchers = data => async dispatch => {\r\n dispatch(_getAllPhysicalVouchersIsLoading())\r\n const rs = await axios.get(baseURL + '/PhysicalVoucher/GetPhysicalVouchersByAttributes', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getAllPhysicalVouchersSuccess(rs.data.result.items))\r\n return {success: true, message: '', totalCount: rs.data.result.totalCount}\r\n } else {\r\n dispatch(_getAllPhysicalVouchersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAllPhysicalVouchersIsLoading = () => ({\r\n type: GET_ALL_PHYSICAL_VOUCHERS_IS_LOADING\r\n})\r\n\r\nconst _getAllPhysicalVouchersSuccess = physicalVouchers => ({\r\n type: GET_ALL_PHYSICAL_VOUCHERS_SUCCESS,\r\n physicalVouchers\r\n})\r\n\r\nconst _getAllPhysicalVouchersFail = () => ({\r\n type: GET_ALL_PHYSICAL_VOUCHERS_FAIL\r\n})\r\n\r\nexport const updatePhysicalVouchers = data => async dispatch => {\r\n dispatch(_updatePhysicalVoucherIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/PhysicalVoucher/EditPhysicalVoucher', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_updatePhysicalVoucherSuccess(rs.data.result))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updatePhysicalVoucherFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updatePhysicalVoucherIsLoading = () => ({\r\n type: UPDATE_PHYSICAL_VOUCHER_IS_LOADING\r\n})\r\n\r\nconst _updatePhysicalVoucherSuccess = () => ({\r\n type: UPDATE_PHYSICAL_VOUCHER_SUCCESS\r\n})\r\n\r\nconst _updatePhysicalVoucherFail = () => ({\r\n type: UPDATE_PHYSICAL_VOUCHER_FAIL\r\n})\r\n\r\nexport const deletePhysicalVoucher = id => async dispatch => {\r\n dispatch(_deletePhysicalVoucherIsLoading())\r\n\r\n const deleteHeader = {...getCurrentAuthHeader()}\r\n const rs = await axios.delete(baseURL + `/PhysicalVoucher/DeletePhysicalVoucher?id=${id}`, deleteHeader).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_deletePhysicalVoucherSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_deletePhysicalVoucherFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _deletePhysicalVoucherIsLoading = () => ({\r\n type: DELETE_PHYSICAL_VOUCHER_IS_LOADING\r\n})\r\n\r\nconst _deletePhysicalVoucherSuccess = rs => ({\r\n type: DELETE_PHYSICAL_VOUCHER_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _deletePhysicalVoucherFail = () => ({\r\n type: DELETE_PHYSICAL_VOUCHER_FAIL\r\n})\r\n\r\nexport const addPhysicalVouchers = data => async dispatch => {\r\n dispatch(_addPhysicalVouchersIsLoading())\r\n const rs = await axios.post(baseURL + '/PhysicalVoucher/AddPhysicalVouchers', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_addPhysicalVouchersSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_addPhysicalVouchersFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _addPhysicalVouchersIsLoading = () => ({\r\n type: ADD_PHYSICAL_VOUCHERS_IS_LOADING\r\n})\r\n\r\nconst _addPhysicalVouchersSuccess = () => ({\r\n type: ADD_PHYSICAL_VOUCHERS_SUCCESS\r\n})\r\n\r\nconst _addPhysicalVouchersFail = () => ({\r\n type: ADD_PHYSICAL_VOUCHERS_FAIL\r\n})\r\n\r\nconst initState = {\r\n getAllPhysicalVouchersIsLoading: false,\r\n physicalVouchers: [],\r\n updatePhysicalVoucherIsLoading: false,\r\n deletePhysicalVoucherIsLoading: false,\r\n addPhysicalVouchersIsLoading: false\r\n}\r\n\r\nconst PhysicalVoucherDuck = (state = initState, action) => {\r\n\r\n switch (action.type) {\r\n case GET_ALL_PHYSICAL_VOUCHERS_IS_LOADING:\r\n return {...state, getAllPhysicalVouchersIsLoading: true}\r\n\r\n case GET_ALL_PHYSICAL_VOUCHERS_SUCCESS:\r\n return {...state, getAllPhysicalVouchersIsLoading: false, physicalVouchers: action.physicalVouchers}\r\n\r\n case GET_ALL_PHYSICAL_VOUCHERS_FAIL:\r\n return {...state, getAllPhysicalVouchersIsLoading: false}\r\n\r\n case UPDATE_PHYSICAL_VOUCHER_IS_LOADING:\r\n return {...state, updatePhysicalVoucherIsLoading: true}\r\n\r\n case UPDATE_PHYSICAL_VOUCHER_SUCCESS:\r\n return {...state, updatePhysicalVoucherIsLoading: false}\r\n\r\n case UPDATE_PHYSICAL_VOUCHER_FAIL:\r\n return {...state, updatePhysicalVoucherIsLoading: false}\r\n\r\n case DELETE_PHYSICAL_VOUCHER_IS_LOADING:\r\n return {...state, deletePhysicalVoucherIsLoading: true}\r\n\r\n case DELETE_PHYSICAL_VOUCHER_SUCCESS:\r\n return {...state, deletePhysicalVoucherIsLoading: false}\r\n\r\n case DELETE_PHYSICAL_VOUCHER_FAIL:\r\n return {...state, deletePhysicalVoucherIsLoading: false}\r\n\r\n case ADD_PHYSICAL_VOUCHERS_IS_LOADING:\r\n return {...state, addPhysicalVouchersIsLoading: true}\r\n\r\n case ADD_PHYSICAL_VOUCHERS_SUCCESS:\r\n return {...state, addPhysicalVouchersIsLoading: false}\r\n\r\n case ADD_PHYSICAL_VOUCHERS_FAIL:\r\n return {...state, addPhysicalVouchersIsLoading: false}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default PhysicalVoucherDuck","import axios from 'axios'\r\nimport { getSettings } from '../config/config'\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport { checkValidStatusCode } from '../helpers/httpHelper'\r\nimport { cloneDeep, forEach } from 'lodash'\r\n\r\nlet settings = getSettings()\r\nlet baseURL = settings.baseURL\r\n\r\nconst initState = {\r\n getAllAppealTransactionLoading: false,\r\n\r\n appealTransactionDetail: {\r\n \"id\": null,\r\n \"submittedBy\": null,\r\n \"approvedBy\": null,\r\n \"approvedUserName\": null,\r\n \"approval\": false,\r\n \"approvedTime\": null,\r\n \"rejectedBy\": null,\r\n \"rejectedUserName\": null,\r\n \"rejected\": false,\r\n \"rejectedTime\": null,\r\n \"refNo\": \"\",\r\n \"remarks\": null,\r\n \"passengers\": [\r\n {\r\n \"id\": null,\r\n \"groupId\": null,\r\n \"cardNo\": null,\r\n \"preloadedVouchersCardNo\": null,\r\n \"firstName\": \"\",\r\n \"lastName\": \"\",\r\n \"dob\": null,\r\n \"collectionDate\": null,\r\n \"passportNo\": null,\r\n \"countryOfResidence\": null,\r\n \"origin\": null,\r\n \"sqResponse\": null,\r\n \"eTicket\": [\r\n {\r\n \"eTicketNo\": \"\",\r\n \"lastName\": \"\",\r\n \"id\": null,\r\n \"sqResponse\": \"\",\r\n \"sqError\": false,\r\n \"checkStatus\": \"\",\r\n \"status\": null,\r\n \"sector\": [\r\n {\r\n \"id\": null,\r\n \"sectorNo\": 1,\r\n \"origin\": \"\",\r\n \"destination\": \"\",\r\n \"flightNo\": \"\",\r\n \"departureDate\": null,\r\n \"arrivalDate\": null,\r\n \"transportMean\": null,\r\n \"landSea\": null,\r\n \"remarks\": null,\r\n \"attachmentUris\": [],\r\n \"presignedAttachmentUris\": null\r\n },\r\n {\r\n \"id\": null,\r\n \"sectorNo\": 2,\r\n \"origin\": \"\",\r\n \"destination\": \"\",\r\n \"flightNo\": \"\",\r\n \"departureDate\": null,\r\n \"arrivalDate\": null,\r\n \"transportMean\": null,\r\n \"landSea\": null,\r\n \"remarks\": null,\r\n \"attachmentUris\": [],\r\n \"presignedAttachmentUris\": null\r\n },\r\n {\r\n \"id\": null,\r\n \"sectorNo\": 3,\r\n \"origin\": \"\",\r\n \"destination\": \"\",\r\n \"flightNo\": \"\",\r\n \"departureDate\": null,\r\n \"arrivalDate\": null,\r\n \"transportMean\": null,\r\n \"landSea\": null,\r\n \"remarks\": null,\r\n \"attachmentUris\": [],\r\n \"presignedAttachmentUris\": null\r\n },\r\n {\r\n \"id\": null,\r\n \"sectorNo\": 4,\r\n \"origin\": \"\",\r\n \"destination\": \"\",\r\n \"flightNo\": \"\",\r\n \"departureDate\": null,\r\n \"arrivalDate\": null,\r\n \"transportMean\": null,\r\n \"landSea\": null,\r\n \"remarks\": null,\r\n \"attachmentUris\": [],\r\n \"presignedAttachmentUris\": null\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"attachmentURIs\": [],\r\n \"memberId\": \"\",\r\n \"cardNo\": \"\",\r\n \"firstName\": \"\",\r\n \"lastName\": \"\",\r\n \"email\": \"\",\r\n \"nationality\": \"\",\r\n \"contactNo\": \"\",\r\n \"dob\": \"\",\r\n \"countryCode\": \"\",\r\n \"country\": \"\",\r\n \"areaCode\": \"\",\r\n \"source\": \"\",\r\n \"rejectionReason\": null,\r\n \"processingTimeoutEndDate\": null,\r\n \"processingUser\": null,\r\n \"bookingRefNo\": \"\",\r\n \"creationTime\": null\r\n }\r\n}\r\n\r\nconst GET_ALL_APPEAL_TRANSACTIONS_IS_LOADING = 'GET_ALL_APPEAL_TRANSACTIONS_IS_LOADING'\r\nconst GET_ALL_APPEAL_TRANSACTIONS_SUCCESS = 'GET_ALL_APPEAL_TRANSACTIONS_SUCCESS'\r\nconst GET_ALL_APPEAL_TRANSACTIONS_FAIL = 'GET_ALL_APPEAL_TRANSACTIONS_FAIL'\r\n\r\nconst GET_APPEAL_TRANSACTION_DETAIL_IS_LOADING = 'GET_APPEAL_TRANSACTION_DETAIL_IS_LOADING'\r\nconst GET_APPEAL_TRANSACTION_DETAIL_SUCCESS = 'GET_APPEAL_TRANSACTION_DETAIL_SUCCESS'\r\nconst GET_APPEAL_TRANSACTION_DETAIL_FAIL = 'GET_APPEAL_TRANSACTION_DETAIL_FAIL'\r\n\r\nconst APPROVE_APPEAL_TRANSACTION_DETAIL_IS_LOADING = 'APPROVE_APPEAL_TRANSACTION_DETAIL_IS_LOADING'\r\nconst APPROVE_APPEAL_TRANSACTION_DETAIL_SUCCESS = 'APPROVE_APPEAL_TRANSACTION_DETAIL_SUCCESS'\r\nconst APPROVE_APPEAL_TRANSACTION_DETAIL_FAIL = 'APPROVE_APPEAL_TRANSACTION_DETAIL_FAIL'\r\n\r\nconst UPDATE_ETICKET_APPEAL_TRANSACTION_SUCCESS = 'UPDATE_ETICKET_APPEAL_TRANSACTION_SUCCESS'\r\nconst UPDATE_ETICKET_APPEAL_TRANSACTION_FAIL = 'UPDATE_ETICKET_APPEAL_TRANSACTION_FAIL'\r\n\r\nconst REJECT_APPEAL_TRANSACTION_DETAIL_IS_LOADING = 'REJECT_APPEAL_TRANSACTION_DETAIL_IS_LOADING'\r\nconst REJECT_APPEAL_TRANSACTION_DETAIL_SUCCESS = 'REJECT_APPEAL_TRANSACTION_DETAIL_SUCCESS'\r\nconst REJECT_APPEAL_TRANSACTION_DETAIL_FAIL = 'REJECT_APPEAL_TRANSACTION_DETAIL_FAIL'\r\n\r\nconst PROCESS_APPEAL_TRANSACTION_IS_LOADING = 'PROCESS_APPEAL_TRANSACTION_IS_LOADING'\r\nconst PROCESS_APPEAL_TRANSACTION_SUCCESS = 'PROCESS_APPEAL_TRANSACTION_SUCCESS'\r\nconst PROCESS_APPEAL_TRANSACTION_FAIL = 'PROCESS_APPEAL_TRANSACTION_FAIL'\r\n\r\n\r\nexport const getAllAppealTransaction = (data) => async dispatch => {\r\n dispatch(_getAllAppealTransactionIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/AppealTransaction/GetAllAppealTransactions', data.params, {\r\n headers: data.headers\r\n }).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n dispatch(_getAllAppealTransactionFail())\r\n return {success: false, message: 'No data from server'}\r\n }\r\n if (rs.data.success) {\r\n dispatch(_getAllAppealTransactionSuccess(rs))\r\n return rs.data\r\n } else {\r\n dispatch(_getAllAppealTransactionFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\n\r\nconst _getAllAppealTransactionIsLoading = () => ({\r\n type: GET_ALL_APPEAL_TRANSACTIONS_IS_LOADING\r\n})\r\n\r\nconst _getAllAppealTransactionSuccess = rs => ({\r\n type: GET_ALL_APPEAL_TRANSACTIONS_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getAllAppealTransactionFail = () => ({\r\n type: GET_ALL_APPEAL_TRANSACTIONS_FAIL\r\n})\r\n\r\n\r\nexport const getAppealTransactionDetail = (data) => async dispatch => {\r\n dispatch(_getAppealTransactionDetailIsLoading())\r\n\r\n const rs = await axios.post(baseURL + '/AppealTransaction/GetAppealTransaction?id=' + data, null ,getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_getAppealTransactionDetailSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_getAppealTransactionDetailFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _getAppealTransactionDetailIsLoading = () => ({\r\n type: GET_APPEAL_TRANSACTION_DETAIL_IS_LOADING\r\n})\r\n\r\nconst _getAppealTransactionDetailSuccess = rs => ({\r\n type: GET_APPEAL_TRANSACTION_DETAIL_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _getAppealTransactionDetailFail = () => ({\r\n type: GET_APPEAL_TRANSACTION_DETAIL_FAIL\r\n})\r\n\r\nexport const updateEicketAppealTransaction = (data) => async dispatch => {\r\n dispatch(_approveAppealTransactionDetailIsLoading())\r\n const rs = await axios.post(baseURL + '/Pretravel/UpdateETicketAppealCase', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n data.result = rs.data.result\r\n dispatch(_updateEicketAppealTransactionSuccess(data))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_updateEicketAppealTransactionFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _updateEicketAppealTransactionSuccess = (data) => ({\r\n type: UPDATE_ETICKET_APPEAL_TRANSACTION_SUCCESS,\r\n data\r\n})\r\n\r\nconst _updateEicketAppealTransactionFail = () => ({\r\n type: UPDATE_ETICKET_APPEAL_TRANSACTION_FAIL\r\n})\r\n\r\nexport const approveAppealTransactionDetail = (data, appealTransactionDetail) => async dispatch => {\r\n dispatch(_approveAppealTransactionDetailIsLoading())\r\n const rs = await axios.post(baseURL + '/AppealTransaction/ApproveAppealTransaction', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n appealTransactionDetail.approval = rs.data.result.approval;\r\n appealTransactionDetail.approvedTime = rs.data.result.approvedTime;\r\n appealTransactionDetail.approvedBy = rs.data.result.approvedBy;\r\n appealTransactionDetail.approvedUserName = rs.data.result.approvedUserName;\r\n appealTransactionDetail.approvalRemarks = rs.data.result.approvalRemarks;\r\n dispatch(_approveAppealTransactionDetailSuccess(appealTransactionDetail))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_approveAppealTransactionDetailFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _approveAppealTransactionDetailIsLoading = () => ({\r\n type: APPROVE_APPEAL_TRANSACTION_DETAIL_IS_LOADING\r\n})\r\n\r\nconst _approveAppealTransactionDetailSuccess = rs => ({\r\n type: APPROVE_APPEAL_TRANSACTION_DETAIL_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _approveAppealTransactionDetailFail = () => ({\r\n type: APPROVE_APPEAL_TRANSACTION_DETAIL_FAIL\r\n})\r\n\r\n\r\nexport const rejectAppealTransactionDetail = (data, appealTransactionDetail) => async dispatch => {\r\n dispatch(_rejectAppealTransactionDetailIsLoading())\r\n const rs = await axios.post(baseURL + '/AppealTransaction/RejectAppealTransaction', data, getCurrentAuthHeader()).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n appealTransactionDetail.rejected = rs.data.result.rejected;\r\n appealTransactionDetail.rejectedTime = rs.data.result.rejectedTime;\r\n appealTransactionDetail.rejectedBy = rs.data.result.rejectedBy;\r\n appealTransactionDetail.rejectedUserName = rs.data.result.rejectedUserName;\r\n appealTransactionDetail.rejectionRemarks = rs.data.result.rejectionRemarks;\r\n dispatch(_rejectAppealTransactionDetailSuccess(appealTransactionDetail))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_rejectAppealTransactionDetailFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _rejectAppealTransactionDetailIsLoading = () => ({\r\n type: REJECT_APPEAL_TRANSACTION_DETAIL_IS_LOADING\r\n})\r\n\r\nconst _rejectAppealTransactionDetailSuccess = rs => ({\r\n type: REJECT_APPEAL_TRANSACTION_DETAIL_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _rejectAppealTransactionDetailFail = () => ({\r\n type: REJECT_APPEAL_TRANSACTION_DETAIL_FAIL\r\n})\r\n\r\n\r\nexport const processAppealTransaction = (data) => async dispatch => {\r\n dispatch(_processAppealTransactionIsLoading())\r\n const rs = await axios.post(baseURL + '/AppealTransaction/ProcessAppealTransaction', data, getCurrentAuthHeader() ).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (rs.data.success) {\r\n dispatch(_processAppealTransactionSuccess(rs))\r\n return {success: true, message: ''}\r\n } else {\r\n dispatch(_processAppealTransactionFail())\r\n return {success: false, message: rs.data.error.message}\r\n }\r\n}\r\n\r\nconst _processAppealTransactionIsLoading = () => ({\r\n type: PROCESS_APPEAL_TRANSACTION_IS_LOADING\r\n})\r\n\r\nconst _processAppealTransactionSuccess = rs => ({\r\n type: PROCESS_APPEAL_TRANSACTION_SUCCESS,\r\n rs\r\n})\r\n\r\nconst _processAppealTransactionFail = () => ({\r\n type: PROCESS_APPEAL_TRANSACTION_FAIL\r\n})\r\n\r\n\r\n// ===============================================Reducer=============================================\r\nconst appealTransactionDuck = (state = initState, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase GET_ALL_APPEAL_TRANSACTIONS_IS_LOADING:\r\n return {...state, getAllAppealTransactionLoading: true}\r\n\r\n case GET_ALL_APPEAL_TRANSACTIONS_SUCCESS:\r\n return {...state, getAllAppealTransactionLoading: false, appealTransactions: action.rs.data.result.items}\r\n\r\n case GET_ALL_APPEAL_TRANSACTIONS_FAIL:\r\n return {...state, getAllAppealTransactionLoading: false}\r\n\r\n case GET_APPEAL_TRANSACTION_DETAIL_IS_LOADING:\r\n return {...state, getAppealTransactionDetailIsLoading: true}\r\n\r\n case GET_APPEAL_TRANSACTION_DETAIL_SUCCESS:\r\n return {...state, getAppealTransactionDetailIsLoading: false, appealTransactionDetail: action.rs.data.result}\r\n\r\n case GET_APPEAL_TRANSACTION_DETAIL_FAIL:\r\n return {...state, getAppealTransactionDetailIsLoading: false}\r\n\r\n case APPROVE_APPEAL_TRANSACTION_DETAIL_IS_LOADING:\r\n return {...state, approveAppealTransactionIsLoading: true}\r\n\r\n case UPDATE_ETICKET_APPEAL_TRANSACTION_SUCCESS:\r\n // map new eTicket to current passenger\r\n let newAppealTransactionDetail = cloneDeep(state.appealTransactionDetail)\r\n for (let currentPax of newAppealTransactionDetail.passengers) {\r\n if (currentPax.id === action.data.passengerId) {\r\n const eTicketsKeys = ['eTicket2', 'eTicket3', 'eTicket4']\r\n let i = 0\r\n for (let eTixKey of eTicketsKeys) {\r\n if (action.data.eTicketNumbers[i]) {\r\n currentPax[eTixKey] = action.data.eTicketNumbers[i]\r\n }\r\n i++\r\n }\r\n }\r\n }\r\n // add more new audit log\r\n newAppealTransactionDetail.auditLogs.push(...action.data.result)\r\n \r\n return {...state, approveAppealTransactionIsLoading: false, appealTransactionDetail: newAppealTransactionDetail }\r\n\r\n case UPDATE_ETICKET_APPEAL_TRANSACTION_FAIL:\r\n return {...state, approveAppealTransactionIsLoading: false}\r\n\r\n case APPROVE_APPEAL_TRANSACTION_DETAIL_SUCCESS:\r\n return {...state, approveAppealTransactionIsLoading: false, appealTransactionDetail: action.rs}\r\n\r\n case APPROVE_APPEAL_TRANSACTION_DETAIL_FAIL:\r\n return {...state, approveAppealTransactionIsLoading: false}\r\n\r\n case REJECT_APPEAL_TRANSACTION_DETAIL_IS_LOADING:\r\n return {...state, rejectAppealTransactionIsLoading: true}\r\n\r\n case REJECT_APPEAL_TRANSACTION_DETAIL_SUCCESS:\r\n return {...state, rejectAppealTransactionIsLoading: false, appealTransactionDetail: action.rs}\r\n\r\n case REJECT_APPEAL_TRANSACTION_DETAIL_FAIL:\r\n return {...state, rejectAppealTransactionIsLoading: false}\r\n\r\n case PROCESS_APPEAL_TRANSACTION_IS_LOADING:\r\n return {...state, processAppealTransactionIsLoading: true}\r\n\r\n case PROCESS_APPEAL_TRANSACTION_SUCCESS:\r\n return {...state, processAppealTransactionIsLoading: false}\r\n\r\n case PROCESS_APPEAL_TRANSACTION_FAIL:\r\n return {...state, processAppealTransactionIsLoading: false}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n\r\nexport default appealTransactionDuck\r\n","import { combineReducers } from 'redux'\r\nimport individualFormDuck from './individualFormDuck.js'\r\nimport systemErrorReducer from './systemError.js'\r\nimport authDuck from './authDuck.js'\r\nimport groupApprovalDuck from './groupApprovalDuck.js'\r\nimport groupRedemptionFormDuck from './groupRedemptionFormDuck.js'\r\nimport userAccessAccountDuck from './userAccessAccountDuck'\r\nimport groupManifestDuck from './groupManifestDuck'\r\nimport createNewAccountDuck from './createNewAccountDuck'\r\nimport systemDataDuck from './systemDataDuck'\r\nimport flightDuck from './flightDuck.js'\r\nimport campaignPeriodDuck from './campaignPeriodDuck'\r\nimport redemptionTransactionDuck from './redemptionTransactionDuck'\r\nimport auditLogDuck from './auditLogDuck'\r\nimport bannerDuck from './bannerDuck'\r\nimport searchDuck from './searchDuck'\r\nimport passengerDuck from './passengerDuck'\r\nimport redemptionTransactionPassengersDuck from './redemptionTransactionPassengersDuck'\r\nimport groupStatsDuck from './groupStatsDuck'\r\nimport iataDuck from './iataDuck'\r\nimport physicalVoucherDuck from './physicalVoucherDuck'\r\nimport consentDerivedDuck from './derivedDucks/consentDerivedDuck'\r\nimport individualCollectorOptionDuck from './individualCollectorOptionDuck'\r\nimport printCardDuck from './printCardDuck'\r\nimport appealTransactionDuck from './appealTransactionDuck'\r\nimport reprintAuditLogDuck from './reprintAuditLogDuck'\r\n\r\nexport default combineReducers({\r\n\tindividualFormDuck,\r\n\tsystemErrorReducer,\r\n\tauthDuck,\r\n\tgroupApprovalDuck,\r\n\tgroupRedemptionFormDuck,\r\n\tuserAccessAccountDuck,\r\n\tgroupManifestDuck,\r\n\tcreateNewAccountDuck,\r\n\tsystemDataDuck,\r\n\tflightDuck,\r\n\tcampaignPeriodDuck,\r\n\tredemptionTransactionDuck,\r\n\tauditLogDuck,\r\n\tbannerDuck,\r\n\tsearchDuck,\r\n\tpassengerDuck,\r\n\tredemptionTransactionPassengersDuck,\r\n\tgroupStatsDuck,\r\n\tiataDuck,\r\n\tphysicalVoucherDuck,\r\n\tconsentDerivedDuck,\r\n\tindividualCollectorOptionDuck,\r\n\tprintCardDuck,\r\n\tappealTransactionDuck,\r\n\treprintAuditLogDuck,\r\n})\r\n","import {applyMiddleware, compose, createStore} from 'redux'\r\nimport rootReducer from './ducks/index.js'\r\nimport thunkMiddleware from 'redux-thunk'\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\r\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunkMiddleware)))\r\n\r\nexport default store\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { updateAuthDuck, updateMultipleAuthProperties } from '../ducks/authDuck'\r\nimport { SHOULD_CHANGE_PASSWORD } from '../constants/localStorageType'\r\nimport { decrypt } from '../helpers/utilities'\r\n\r\nclass ProtectedRoute extends Component {\r\n\trender() {\r\n\t\tconst { component: Component, isLoggedIn, shouldChangePassword, redirectPath, ...rest } = this.props\r\n\r\n\t\t// uncomment below to bypass auth check\r\n\t\t// return }/>\r\n\r\n\t\t// All this does is explicitly set login status in authDuck\r\n\t\tif (isLoggedIn === null) {\r\n\t\t\tlet shouldChangePassword\r\n\t\t\tlet isLoggedIn = false\r\n\t\t\tlet shouldChangePasswordEncrypted = localStorage.getItem(SHOULD_CHANGE_PASSWORD)\r\n\t\t\tif (shouldChangePasswordEncrypted){\r\n\t\t\t\tlet shouldChgPwdObj = JSON.parse(decrypt(shouldChangePasswordEncrypted))\r\n\t\t\t\tshouldChangePassword = shouldChgPwdObj.shouldChange\r\n\t\t\t} \r\n\t\t\tconst accessToken = localStorage.getItem('accessToken')\r\n\t\t\tif (accessToken) isLoggedIn = true\r\n\r\n\t\t\tthis.props.updateMultipleAuthProperties([\r\n\t\t\t\t{ key: 'isLoggedIn', value: isLoggedIn },\r\n\t\t\t\t{ key: 'shouldChangePassword', value: shouldChangePassword }\r\n\t\t\t])\r\n\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\t// redirect to redirectPath is set\r\n\t\tif (!isLoggedIn && redirectPath) {\r\n\t\t\treturn } />\r\n\t\t}\r\n\r\n\t\tif (isLoggedIn === true) {\r\n\t\t\treturn } />\r\n\t\t} else {\r\n\t\t\tlocalStorage.clear() //this basically logs the user out\r\n\t\t\treturn } /> //this should return a redirect to 404 or 500, not the root path\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n\tconst {\r\n\t\tauthDuck: { isLoggedIn, shouldChangePassword }\r\n\t} = state\r\n\r\n\treturn { isLoggedIn, shouldChangePassword }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tupdateAuthDuck: (k, v) => dispatch(updateAuthDuck(k, v)),\r\n\t\tupdateMultipleAuthProperties: propertiesToUpdate => dispatch(updateMultipleAuthProperties(propertiesToUpdate))\r\n\t}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ProtectedRoute)\r\n","import React, {Component} from 'react'\r\nimport classNames from 'classnames'\r\nimport {Button} from '@material-ui/core'\r\nimport {withRouter} from 'react-router'\r\n\r\nclass CustomNavButton extends Component {\r\n onClick = to => {\r\n window.location = to\r\n }\r\n\r\n render() {\r\n const {to, activeClassName, className, match: {path}} = this.props\r\n\r\n const re = new RegExp(to)\r\n const match = re.test(path) ? activeClassName : ''\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(CustomNavButton)","import React from 'react'\r\nimport {withStyles, Toolbar, Button} from '@material-ui/core'\r\nimport CustomNavButton from '../../components/CustomNavButton'\r\nimport {hasPermissions} from '../../helpers/utilities'\r\nimport {\r\n USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION, USER_ADMIN_CAMPAIGN_EDIT_PERMISSION,\r\n USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION, USER_ADMIN_ACCOUNT_EDIT_PERMISSION,\r\n USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION, USER_ADMIN_ROLE_EDIT_PERMISSION,\r\n USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION\r\n} from '../../constants/permissions'\r\n\r\nclass AdminSettingsNav extends React.Component {\r\n\r\n render() {\r\n const {classes} = this.props\r\n\r\n const campaignPermissions = hasPermissions([USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION,\r\n USER_ADMIN_CAMPAIGN_EDIT_PERMISSION], 'or')\r\n const accountPermissions = hasPermissions([USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION,\r\n USER_ADMIN_ACCOUNT_EDIT_PERMISSION], 'or')\r\n const accessPermissions = hasPermissions([USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION,\r\n USER_ADMIN_ROLE_EDIT_PERMISSION], 'or')\r\n const bannerPermissions = hasPermissions([USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION], 'or')\r\n\r\n const customCampaignPeriod = props => \r\n\r\n const customCreateNewAccount = props => \r\n\r\n const customUserAccessAccount = props => \r\n\r\n\r\n const customBanner = props => \r\n const customSqApi = props => \r\n\r\n const customIata = props => \r\n\r\n const customPhysicalVoucher = props => \r\n\r\n return (\r\n \r\n {campaignPermissions && }\r\n\r\n {accountPermissions && }\r\n\r\n {accessPermissions && }\r\n\r\n {/**/}\r\n {/**/}\r\n\r\n {bannerPermissions && }\r\n\r\n {}\r\n\r\n {campaignPermissions && }\r\n\r\n {campaignPermissions && }\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n active: {\r\n backgroundColor: theme.palette.action.selected\r\n }\r\n})\r\n\r\nexport default withStyles(styles)(AdminSettingsNav)","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n withStyles,\r\n Grid,\r\n Button,\r\n TextField,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Typography,\r\n DialogActions\r\n} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledTable from '../components/StyledTable'\r\nimport {getAllCampaigns, updateCampaign, addCampaign, deleteCampaign} from '../ducks/campaignPeriodDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport moment from 'moment'\r\nimport {Warning} from '@material-ui/icons'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport {toHumanFriendlyDate} from '../helpers/utilities'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {\r\n USER_ADMIN_CAMPAIGN_READ_PERMISSION, USER_ADMIN_CAMPAIGN_CREATE_PERMISSION, USER_ADMIN_CAMPAIGN_EDIT_PERMISSION\r\n} from '../constants/permissions'\r\n\r\nconst TABLE_FIELDS = [\r\n {key: 'seq', label: 'S/N'},\r\n {key: 'startDate', label: 'Start Date'},\r\n {key: 'endDate', label: 'End Date'}\r\n]\r\n\r\nclass CampaignPeriod extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n startDate: '',\r\n endDate: '',\r\n startDateError: '',\r\n endDateError: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n editCampaign: {},\r\n deleteCampaign: {},\r\n showDeleteDialog: false,\r\n showDialog: false\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - Campaign Period`\r\n\r\n const rs = await this.props.getAllCampaigns()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n\r\n }\r\n\r\n onAdd = async () => {\r\n const {startDate, endDate} = this.state\r\n if (this._validate(startDate, endDate)) {\r\n const data = {startDate, endDate}\r\n\r\n const rs = await this.props.addCampaign(data)\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Campaign added'})\r\n this.props.getAllCampaigns()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n }\r\n\r\n _validate = (startDate, endDate, id) => {\r\n if (startDate === '' || endDate === '') {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Dates cannot be empty'})\r\n return false\r\n }\r\n if (moment(startDate).isAfter(moment(endDate))) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'End date cannot be earlier than start date'})\r\n return false\r\n }\r\n\r\n // Check for overlaps\r\n const {campaignPeriodDuck: {campaigns}} = this.props\r\n let rs = true\r\n for (let c of campaigns) {\r\n if (id && c.id === id) { continue }\r\n const newStartDate = moment(startDate)\r\n const newEndDate = moment(endDate)\r\n const prevStartDate = moment(c.startDate)\r\n const prevEndDate = moment(c.endDate)\r\n if ((newStartDate.isSameOrBefore(prevEndDate) && newStartDate.isSameOrAfter(prevStartDate))\r\n || (prevStartDate.isSameOrBefore(newEndDate) && prevStartDate.isSameOrAfter(newStartDate))) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: `New campaign overlaps with existing campaign ${toHumanFriendlyDate(prevStartDate)}, ${toHumanFriendlyDate(prevEndDate)}`\r\n })\r\n rs = false\r\n break\r\n }\r\n }\r\n return rs\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n _updateStartDate = (e) => {\r\n this.setState({startDate: e.target.value})\r\n }\r\n\r\n _updateEndDate = (e) => {\r\n this.setState({endDate: e.target.value})\r\n }\r\n\r\n _formatCampaigns = (campaignPeriods) => {\r\n let formattedCampaigns = []\r\n campaignPeriods.forEach(period => {\r\n let formattedPeriod = {\r\n id: period.id,\r\n startDate: moment(period.startDate).format('DD/MM/YYYY'),\r\n endDate: moment(period.endDate).format('DD/MM/YYYY')\r\n }\r\n formattedCampaigns.push(formattedPeriod)\r\n }\r\n )\r\n return formattedCampaigns\r\n }\r\n\r\n onRowEdit = row => {\r\n const {campaignPeriodDuck: {campaigns}} = this.props\r\n const p = campaigns.find(c => c.id === row.id)\r\n this.setState({editCampaign: p, showDialog: true})\r\n }\r\n\r\n onRowDelete = row => {\r\n this.setState({deleteCampaign: row, showDeleteDialog: true})\r\n }\r\n\r\n onEditCancel = () => {\r\n this.setState({editCampaign: {}, showDialog: false})\r\n }\r\n\r\n onEditSave = async () => {\r\n const {editCampaign: {startDate, endDate, id}} = this.state\r\n if (this._validate(startDate, endDate, id)) {\r\n const data = {startDate, endDate, id}\r\n const rs = await this.props.updateCampaign(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Campaign updated',\r\n showDialog: false,\r\n editCampaign: {}\r\n })\r\n this.props.getAllCampaigns()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n }\r\n\r\n onEditChange = (k, v) => {\r\n this.setState({editCampaign: {...this.state.editCampaign, [k]: v.target.value}})\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({deleteCampaign: {}, showDeleteDialog: false})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const {deleteCampaign: {id}} = this.state\r\n const data = {data: {id}}\r\n const rs = await this.props.deleteCampaign(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: `Deleted campaign`,\r\n deleteCampaign: {},\r\n showDeleteDialog: false\r\n })\r\n this.props.getAllCampaigns()\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const {classes, campaignPeriodDuck} = this.props\r\n const {startDate, endDate, editCampaign, deleteCampaign} = this.state\r\n\r\n const hasEditPermission = hasPermissions([USER_ADMIN_CAMPAIGN_EDIT_PERMISSION])\r\n const hasCreatePermission = hasPermissions([USER_ADMIN_CAMPAIGN_CREATE_PERMISSION])\r\n const hasReadPermission = hasPermissions([USER_ADMIN_CAMPAIGN_READ_PERMISSION]) || hasEditPermission || hasCreatePermission\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n {/*{}*/}\r\n {Object.keys(deleteCampaign).length > 0 &&\r\n \r\n Proceed to delete the following campaign period:\r\n \r\n \r\n \r\n \r\n Start date: \r\n \r\n \r\n {deleteCampaign.startDate}\r\n \r\n \r\n \r\n \r\n End date:\r\n \r\n \r\n {deleteCampaign.endDate}\r\n \r\n\r\n \r\n \r\n \r\n This process cannot be reversed.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {/*{}*/}\r\n\r\n {/*{}*/}\r\n \r\n Editing Period\r\n \r\n \r\n \r\n this.onEditChange('startDate', e)}\r\n value={moment(editCampaign.startDate).format('YYYY-MM-DD')}\r\n fullWidth/>\r\n \r\n \r\n this.onEditChange('endDate', e)}\r\n value={moment(editCampaign.endDate).format('YYYY-MM-DD')}\r\n variant=\"outlined\" fullWidth/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*{}*/}\r\n\r\n
    \r\n {hasReadPermission && \r\n \r\n \r\n {campaignPeriodDuck.campaigns.length > 0 &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n {hasCreatePermission &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {campaignPeriodDuck} = state\r\n\r\n return {campaignPeriodDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllCampaigns: () => dispatch(getAllCampaigns()),\r\n updateCampaign: data => dispatch(updateCampaign(data)),\r\n addCampaign: data => dispatch(addCampaign(data)),\r\n deleteCampaign: data => dispatch(deleteCampaign(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(CampaignPeriod))","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, Button, TextField, Dialog, DialogTitle, DialogContent, DialogActions, Typography } from '@material-ui/core'\r\nimport { Warning } from '@material-ui/icons'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSelect from '../components/StyledSelect'\r\nimport { updateCreateNewAccountDuck, submitCreateNewAccount } from '../ducks/createNewAccountDuck'\r\nimport { getRoles, getUsers, deleteUser, updateUser, unlockUser } from '../ducks/systemDataDuck'\r\nimport { getAllIata } from '../ducks/iataDuck'\r\nimport { labelToObject, rolesToLabelObject } from '../helpers/reactSelectHelper'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport StyledTable from '../components/StyledTable'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport { hasPermissions } from '../helpers/utilities'\r\nimport { USER_ADMIN_ACCOUNT_READ_PERMISSION, USER_ADMIN_ACCOUNT_CREATE_PERMISSION, USER_ADMIN_ACCOUNT_EDIT_PERMISSION } from '../constants/permissions'\r\nimport { USER_ACCOUNTS_TABLE_KEY_NAME } from '../constants/tableKeys'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport Switch from '@material-ui/core/Switch'\r\nimport Radio from '@material-ui/core/Radio'\r\nimport RadioGroup from '@material-ui/core/RadioGroup'\r\n\r\nconst USER_ACCOUNTS_TABLE_FIELDS = [\r\n\t{ key: 'seq', label: 'No.' },\r\n\t{ key: 'id', label: 'Id' },\r\n\t{ key: 'name', label: 'Name' },\r\n\t{ key: 'contactNo', label: 'Mobile No' },\r\n\t{ key: 'roleNames', label: 'Role' },\r\n\t{ key: 'status', label: 'Status' }\r\n]\r\n\r\nclass CreateNewAccount extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tnameError: '',\r\n\t\t\temailAddressError: '',\r\n\t\t\tcontactNoError: '',\r\n\t\t\tnameEditError: '',\r\n\t\t\temailAddressEditError: '',\r\n\t\t\tcontactNoEditError: '',\r\n\t\t\troleNamesError: '',\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tshowDialog: false,\r\n\t\t\tshowUnlockDialog: false,\r\n\t\t\teditingUser: {},\r\n\t\t\teditingUsername: '',\r\n\t\t\tshowDeleteDialog: false,\r\n\t\t\tdeletingUser: {},\r\n\t\t\tfilteredUsers: [],\r\n\t\t\tunlockingUser: {},\r\n\t\t\troleFilter: { label: 'View All', value: '' },\r\n\t\t\tstatusFilter: 'all'\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tdocument.title = `${TITLE_PREFIX} Admin settings - Create New Account`\r\n\r\n\t\tthis.props.getAllIata()\r\n\r\n\t\tlet rs = ''\r\n\t\trs = await this.props.getRoles()\r\n\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\r\n\t\trs = await this.props.getUsers()\r\n\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\r\n\t\tif (rs.success) {\r\n\t\t\tconst { systemDataDuck } = this.props\r\n\t\t\tthis.setState({ filteredUsers: this._removeAdminUser(systemDataDuck.users) })\r\n\t\t}\r\n\t}\r\n\r\n\thandleStatusRadioGroupChange = e => {\r\n\t\tthis.setState({\r\n\t\t\tstatusFilter: e.target.value,\r\n\t\t\tfilteredUsers: this.__filterUsersByStatus(this.__filterUsersByRole(this.props.systemDataDuck.users, this.state.roleFilter), e.target.value)\r\n\t\t})\r\n\t}\r\n\r\n\t__filterUsersByStatus(users, statusFilter) {\r\n\t\treturn statusFilter === 'all' ? users : statusFilter === 'active' ? users.filter(u => u.isActive) : users.filter(u => !u.isActive)\r\n\t}\r\n\r\n\t__filterUsersByRole(users, roleFilter) {\r\n\t\treturn users.filter(u => {\r\n\t\t\treturn u.roleNames.length > 0 ? u.roleNames[0].toLowerCase().indexOf(roleFilter.value.toLowerCase()) !== -1 : false\r\n\t\t})\r\n\t}\r\n\r\n\tonRoleChange = e => {\r\n\t\tthis.props.updateCreateNewAccountDuck('roleNames', [e.label])\r\n\t}\r\n\r\n\tonPosChange = e => {\r\n\t\tthis.props.updateCreateNewAccountDuck('pos', e.label)\r\n\t}\r\n\r\n\tonSubmit = async () => {\r\n\t\tconst { createNewAccountDuck } = this.props\r\n\r\n\t\tif (this._validate(createNewAccountDuck, 'Error')) {\r\n\t\t\tconst rs = await this.props.submitCreateNewAccount(createNewAccountDuck)\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tthis.props.getUsers()\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'success',\r\n\t\t\t\t\tsnackbarMessage: `Created account: ${createNewAccountDuck.name}`\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\t_validate = (fields, errorSuffix) => {\r\n\t\tlet rs = true\r\n\r\n\t\tconst requiredFields = ['name', 'emailAddress', 'contactNo']\r\n\t\trequiredFields.forEach(k => {\r\n\t\t\tlet sk = k + errorSuffix\r\n\t\t\tif (fields[k] === '') {\r\n\t\t\t\tthis.setState({ [sk]: 'This field is required' })\r\n\t\t\t\trs = false\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({ [sk]: '' })\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (!rs) return rs\r\n\r\n\t\tif (!/^\\+/.test(fields.contactNo)) {\r\n\t\t\tthis.state.showDialog\r\n\t\t\t\t? this.setState({ contactNoEditError: 'Please include `+` followed by area code and mobile number' })\r\n\t\t\t\t: this.setState({ contactNoError: 'Please include `+` followed by area code and mobile number' })\r\n\t\t\trs = false\r\n\t\t\tif (!rs) return rs\r\n\t\t} else {\r\n\t\t\tthis.state.showDialog ? this.setState({ contactNoEditError: '' }) : this.setState({ contactNoError: '' })\r\n\t\t}\r\n\r\n\t\tif (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/i.test(fields.emailAddress)) {\r\n\t\t\tthis.setState({ emailAddressError: 'Email is invalid' })\r\n\t\t\trs = false\r\n\t\t}\r\n\r\n\t\tif (fields['roleNames'].length === 0) {\r\n\t\t\tthis.setState({ roleNamesError: 'This field is required' })\r\n\t\t\trs = false\r\n\t\t} else {\r\n\t\t\tthis.setState({ roleNamesError: '' })\r\n\t\t}\r\n\r\n\t\tif (!rs) return rs\r\n\r\n\t\treturn rs\r\n\t}\r\n\r\n\tonFormChange = (k, e) => {\r\n\t\tif (k === 'contactNo') {\r\n\t\t\tif (/[^+0-9]/g.test(e.target.value)) return false\r\n\t\t}\r\n\t\tthis.props.updateCreateNewAccountDuck(k, e.target.value)\r\n\t}\r\n\r\n\tonUserEdit = row => {\r\n\t\tthis.setState({ editingUser: { ...row }, showDialog: true, editingUsername: row.name })\r\n\t}\r\n\r\n\tonUserDelete = row => {\r\n\t\tthis.setState({ showDeleteDialog: true, deletingUser: row })\r\n\t}\r\n\r\n\tonUnlockingUser = user => {\r\n\t\tif (!user.isLockout) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.setState({ showUnlockDialog: true, unlockingUser: user })\r\n\t}\r\n\r\n\tonUnlockUser = async () => {\r\n\t\tconst { name, emailAddress, id } = this.state.unlockingUser\r\n\t\tconst rs = await this.props.unlockUser({\r\n\t\t\tname,\r\n\t\t\temailAddress,\r\n\t\t\tid\r\n\t\t})\r\n\t\tif (rs.success) {\r\n\t\t\tthis.setState(prevState => ({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'success',\r\n\t\t\t\tsnackbarMessage: `Unlocked user: ${name}`,\r\n\t\t\t\tshowUnlockDialog: false,\r\n\t\t\t\tunlockingUser: null,\r\n\t\t\t\teditingUser: {\r\n\t\t\t\t\t...prevState.editingUser,\r\n\t\t\t\t\tisLockout: false\r\n\t\t\t\t}\r\n\t\t\t}))\r\n\t\t} else {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t}\r\n\t}\r\n\r\n\tonUnlockCancel = () => {\r\n\t\tthis.setState({ showUnlockDialog: false, unlockingUser: null })\r\n\t}\r\n\r\n\tonEditSave = async () => {\r\n\t\tif (this._validate(this.state.editingUser, 'EditError')) {\r\n\t\t\tthis.setState({ showDialog: false })\r\n\t\t\tconst rs = await this.props.updateUser(this.state.editingUser)\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tconst UserRefresh = await this.props.getUsers()\r\n\t\t\t\tif (UserRefresh.success) {\r\n\t\t\t\t\tconst { systemDataDuck } = this.props\r\n\t\t\t\t\tconst users = systemDataDuck.users\r\n\t\t\t\t\tconst { roleFilter } = this.state\r\n\t\t\t\t\tif (roleFilter.value.length >= 1) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tfilteredUsers: this.__filterUsersByStatus(this.__filterUsersByRole(users, roleFilter), this.state.statusFilter)\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.setState({ filteredUsers: this.__filterUsersByStatus(users, this.state.statusFilter) })\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'success',\r\n\t\t\t\t\tsnackbarMessage: `Updated user: ${this.state.editingUser.name}`,\r\n\t\t\t\t\teditingUser: {}\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\tsnackbarMessage: rs.message,\r\n\t\t\t\t\teditingUser: {}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonEditCancel = () => {\r\n\t\tthis.setState({ showDialog: false, emailAddressEditError: '', contactNoEditError: '', nameEditError: '' })\r\n\t}\r\n\r\n\tonEditChange = (k, e) => {\r\n\t\tif (k === 'contactNo') {\r\n\t\t\tif (/[^+0-9]/g.test(e.target.value)) return false\r\n\t\t}\r\n\t\tthis.setState({ editingUser: { ...this.state.editingUser, [k]: e.target.value } })\r\n\t}\r\n\r\n\tonRoleEditChange = v => {\r\n\t\tthis.setState({ editingUser: { ...this.state.editingUser, roleNames: [v.label] } })\r\n\t}\r\n\r\n\tonPosEditChange = v => {\r\n\t\tthis.setState({ editingUser: { ...this.state.editingUser, pos: v.label } })\r\n\t}\r\n\r\n\tonStatusEditChange = v => {\r\n\t\tthis.setState({ editingUser: { ...this.state.editingUser, isActive: v.value } })\r\n\t}\r\n\r\n\tonDeleteCancel = () => {\r\n\t\tthis.setState({ showDeleteDialog: false, deletingUser: {} })\r\n\t}\r\n\r\n\tonDeleteConfirm = async () => {\r\n\t\tthis.setState({ showDeleteDialog: false })\r\n\r\n\t\tconst rs = await this.props.deleteUser(this.state.deletingUser.id)\r\n\t\tif (rs.success) {\r\n\t\t\tthis.props.getUsers()\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'success',\r\n\t\t\t\tsnackbarMessage: `Deleted user: ${this.state.deletingUser.name}`,\r\n\t\t\t\tdeletingUser: {}\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: rs.message !== '' ? rs.message : 'Unexpected error'\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t_removeAdminUser = roles => {\r\n\t\treturn roles.filter(r => r.name !== 'admin')\r\n\t}\r\n\r\n\t_removeAdminRole = roles => {\r\n\t\treturn roles.filter(r => r.name !== 'Admin')\r\n\t}\r\n\r\n\tonFilterChange = e => {\r\n\t\tconst { systemDataDuck } = this.props\r\n\t\tconst users = systemDataDuck.users\r\n\t\tconst v = e.value.toLowerCase()\r\n\t\tif (v.length > 1) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tfilteredUsers: this.__filterUsersByStatus(this.__filterUsersByRole(users, e), this.state.statusFilter)\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (v.length < 1) {\r\n\t\t\tthis.setState({ filteredUsers: this.__filterUsersByStatus(users, this.state.statusFilter) })\r\n\t\t}\r\n\t\tthis.setState({ roleFilter: { label: e.label, value: e.value } })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, createNewAccountDuck, systemDataDuck } = this.props\r\n\t\tconst { editingUser, editingUsername, deletingUser, roleFilter, filteredUsers, statusFilter } = this.state\r\n\r\n\t\tconst hasCreatePermission = hasPermissions([USER_ADMIN_ACCOUNT_CREATE_PERMISSION])\r\n\t\tconst hasEditPermission = hasPermissions([USER_ADMIN_ACCOUNT_EDIT_PERMISSION])\r\n\t\tconst hasReadPermission = hasPermissions([USER_ADMIN_ACCOUNT_READ_PERMISSION]) || hasCreatePermission || hasEditPermission\r\n\r\n\t\tconst RolesDropDown = rolesToLabelObject(systemDataDuck.roles)\r\n\t\tRolesDropDown.unshift({ label: 'View All', value: '' })\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t{/*{}*/}\r\n\t\t\t\t{Object.keys(deletingUser).length > 0 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tProceed to delete the following user:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t Name: \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{deletingUser.name}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t Role:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{deletingUser.roleNames[0]}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t This process cannot be reversed.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{/*{}*/}\r\n\r\n\t\t\t\t{/*{}*/}\r\n\t\t\t\t\r\n\t\t\t\t\tEditing {editingUsername} \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onRoleEditChange(e)}\r\n\t\t\t\t\t\t\t\t\tlabel={'Role'}\r\n\t\t\t\t\t\t\t\t\terror={this.state.roleNamesError !== ''}\r\n\t\t\t\t\t\t\t\t\thelperText={this.state.roleNamesError}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onStatusEditChange(e)}\r\n\t\t\t\t\t\t\t\t\tlabel={'Status'}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t ({ label: iata.iataCode, value: iata.iataCode }))}\r\n\t\t\t\t\t\t\t\t\tonChange={e => this.onPosEditChange(e)}\r\n\t\t\t\t\t\t\t\t\tlabel={'POS'}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onEditChange('name', e)}\r\n\t\t\t\t\t\t\t\t\tvalue={editingUser.name}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onEditChange('emailAddress', e)}\r\n\t\t\t\t\t\t\t\t\tvalue={editingUser.emailAddress}\r\n\t\t\t\t\t\t\t\t\tvariant='outlined'\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onEditChange('contactNo', e)}\r\n\t\t\t\t\t\t\t\t\tvalue={editingUser.contactNo || ''}\r\n\t\t\t\t\t\t\t\t\tvariant='outlined'\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onEditChange('startActiveTime', e)}\r\n\t\t\t\t\t\t\t\t\t\tInputLabelProps={{shrink: true}} fullWidth/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onEditChange('endActiveTime', e)}\r\n\t\t\t\t\t\t\t\t\t\tInputLabelProps={{shrink: true}} fullWidth/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onUnlockingUser(editingUser)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={editingUser.isLockout}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlabel={editingUser.isLockout ? 'Unlock User' : 'User locked out?'}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{/*{}*/}\r\n\t\t\t\t{/*{}*/}\r\n\t\t\t\t\r\n\t\t\t\t\tUnlock User\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tAre you sure you want to unlock user {editingUsername}?\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{/*{}*/}\r\n\t\t\t\t
    \r\n\t\t\t\t\t{hasReadPermission && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onFilterChange(e)} label={'Role Filter'} />\r\n\r\n\t\t\t\t\t\t\t\t\tStatus\r\n\t\t\t\t\t\t\t\t\t this.handleStatusRadioGroupChange(e)}\r\n\t\t\t\t\t\t\t\t\t\tvalue={statusFilter}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t} label='All' />\r\n\t\t\t\t\t\t\t\t\t\t} label='Active' />\r\n\t\t\t\t\t\t\t\t\t\t} label='Inactive' />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{hasCreatePermission && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onFormChange('name', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={createNewAccountDuck.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onFormChange('emailAddress', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={createNewAccountDuck.emailAddress}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant='outlined'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onFormChange('contactNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={createNewAccountDuck.contactNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant='outlined'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t ({ label: iata.iataCode, value: iata.iataCode }))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={e => this.onPosChange(e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={'POS'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onRoleChange(e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={'Role'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terror={this.state.roleNamesError !== ''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={this.state.roleNamesError}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onFormChange('startActiveTime', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={createNewAccountDuck.startActiveTime}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tInputLabelProps={{shrink: true}} fullWidth/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.onFormChange('endActiveTime', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={createNewAccountDuck.endActiveTime}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tInputLabelProps={{shrink: true}} fullWidth/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: { ...theme.container },\r\n\ticon: { display: 'inline-block', verticalAlign: 'bottom' },\r\n\tselect: { marginTop: '5px' }\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n\tconst { createNewAccountDuck, systemDataDuck, iataDuck } = state\r\n\r\n\treturn { createNewAccountDuck, systemDataDuck, iataDuck }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tupdateCreateNewAccountDuck: (k, v) => dispatch(updateCreateNewAccountDuck(k, v)),\r\n\t\tgetRoles: () => dispatch(getRoles()),\r\n\t\tsubmitCreateNewAccount: fields => dispatch(submitCreateNewAccount(fields)),\r\n\t\tgetUsers: () => dispatch(getUsers()),\r\n\t\tdeleteUser: id => dispatch(deleteUser(id)),\r\n\t\tupdateUser: user => dispatch(updateUser(user)),\r\n\t\tunlockUser: user => dispatch(unlockUser(user)),\r\n\t\tgetAllIata: () => dispatch(getAllIata())\r\n\t}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(CreateNewAccount))\r\n","import React, {Component} from 'react'\r\nimport {Grid, Typography, FormGroup, FormControlLabel, Switch, Divider} from '@material-ui/core'\r\n\r\nclass UserAccessAccountRightsTable extends Component {\r\n\r\n render() {\r\n const userAdmin = [\r\n {key: 'User_Admin.CampaignRead', label: 'Campaign Read'},\r\n {key: 'User_Admin.CampaignCreate', label: 'Campaign Create'},\r\n {key: 'User_Admin.CampaignEdit', label: 'Campaign Edit'},\r\n {key: 'User_Admin.AccountRead', label: 'Account Read'},\r\n {key: 'User_Admin.AccountCreate', label: 'Account Create'},\r\n {key: 'User_Admin.AccountEdit', label: 'Account Edit'},\r\n {key: 'User_Admin.RoleRead', label: 'Role Read'},\r\n {key: 'User_Admin.RoleCreate', label: 'Role Create'},\r\n {key: 'User_Admin.RoleEdit', label: 'Role Edit'},\r\n {key: 'User_Admin.BannerRead', label: 'Banner Read'},\r\n {key: 'User_Admin.BannerCreate', label: 'Banner Create'},\r\n {key: 'User_Admin.BannerEdit', label: 'Banner Edit'}\r\n ]\r\n\r\n const group = [\r\n {key: 'Group.Approver', label: 'Approver'},\r\n {key: 'Group.Creator', label: 'Creator'},\r\n {key: 'Group.Issuer', label: 'Issuer'},\r\n {key: 'Group.View', label: 'View'},\r\n ]\r\n\r\n const individual = [\r\n {key: 'Individual.Issuer', label: 'Issuer'},\r\n {key: 'Individual.Editor', label: 'Editor'},\r\n //{key: 'Individual.View', label: 'View'}\r\n ]\r\n\r\n const appeal = [\r\n {key: 'Appeal.Editor', label: 'Editor'},\r\n {key: 'Appeal.Approver', label: 'Approver'},\r\n {key: 'Appeal.SuperApprover', label: 'SuperApprover'},\r\n ]\r\n\r\n const search = [\r\n {key: 'Search.Group', label: 'Group'},\r\n {key: 'Search.Passenger', label: 'Passenger'}\r\n ]\r\n\r\n return (\r\n \r\n \r\n \r\n Individual\r\n \r\n \r\n \r\n {individual.map(i => {\r\n return this.props.onSwitch(i.key)}\r\n color=\"primary\"\r\n />}\r\n label={i.label}\r\n />\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n Group\r\n \r\n \r\n \r\n {group.map(g => {\r\n return this.props.onSwitch(g.key)}\r\n color=\"primary\"\r\n />}\r\n label={g.label}\r\n />\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Search\r\n \r\n \r\n \r\n {search.map(i => {\r\n return this.props.onSwitch(i.key)}\r\n color=\"primary\"\r\n />}\r\n label={i.label}\r\n />\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Pre-Travel(Ad-hoc)\r\n \r\n \r\n \r\n this.props.onSwitch('PreTravel.Creator')}\r\n color=\"primary\"\r\n />}\r\n label={'Creator'}\r\n />\r\n this.props.onSwitch('PreTravel.Issuer')}\r\n color=\"primary\"\r\n />}\r\n label={'Issuer'}\r\n />\r\n this.props.onSwitch('PreTravel.Editor')}\r\n color=\"primary\"\r\n />}\r\n label={'Editor - edit selected fields with comments'}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Appeal\r\n \r\n \r\n \r\n {appeal.map(i => {\r\n return this.props.onSwitch(i.key)}\r\n color=\"primary\"\r\n />}\r\n label={i.label}\r\n />\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Retrospective\r\n \r\n \r\n \r\n this.props.onSwitch('Retrospective.Creator')}\r\n color=\"primary\"\r\n />}\r\n label={'Creator'}\r\n />\r\n this.props.onSwitch('Retrospective.Approver')}\r\n color=\"primary\"\r\n />}\r\n label={'Approver'}\r\n />\r\n this.props.onSwitch('Retrospective.Issuer')}\r\n color=\"primary\"\r\n />}\r\n label={'Issuer'}\r\n />\r\n this.props.onSwitch('Retrospective.Editor')}\r\n color=\"primary\"\r\n />}\r\n label={'Editor - edit selected fields with comments'}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Voucher Mangement\r\n \r\n \r\n \r\n this.props.onSwitch('VoucherManagement.InvalidateEV')}\r\n color=\"primary\"\r\n />}\r\n label={'Invalidate eV'}\r\n />\r\n this.props.onSwitch('VoucherManagement.RefundEV')}\r\n color=\"primary\"\r\n />}\r\n label={'Refund eV'}\r\n />\r\n this.props.onSwitch('VoucherManagement.TransferEV')}\r\n color=\"primary\"\r\n />}\r\n label={'Transfer CTP eV to another account'}\r\n />\r\n this.props.onSwitch('VoucherManagement.VoidTransaction')}\r\n color=\"primary\"\r\n />}\r\n label={'Void transaction'}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n User admin\r\n \r\n \r\n {userAdmin.map(p => {\r\n return \r\n this.props.onSwitch(p.key)}\r\n color=\"primary\"\r\n />}\r\n label={p.label}\r\n />\r\n \r\n })}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Reports\r\n \r\n \r\n \r\n this.props.onSwitch('Report')}\r\n color=\"primary\"\r\n />}\r\n label={'Reconciliation and Settlement'}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserAccessAccountRightsTable","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n withStyles,\r\n Grid,\r\n TextField,\r\n Typography,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Button\r\n} from '@material-ui/core'\r\nimport {Warning} from '@material-ui/icons'\r\nimport {\r\n updateUserAccessAccountDuck,\r\n updateUserAccessAccountPermissions,\r\n createRole,\r\n updateRole,\r\n deleteRole\r\n} from '../ducks/userAccessAccountDuck'\r\nimport {getAllRoles, getPermissions} from '../ducks/systemDataDuck'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledTable from '../components/StyledTable'\r\nimport UserAccessAccountRightsTable from '../containers/adminSettings/UserAccessAccountRightsTable'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport LoadingContainer from '../containers/loadingContainer'\r\nimport axios from 'axios'\r\nimport {getCurrentAuthHeader, hasPermissions} from '../helpers/utilities'\r\nimport {getSettings} from '../config/config'\r\nimport {\r\n USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION, USER_ADMIN_ROLE_EDIT_PERMISSION\r\n} from '../constants/permissions'\r\nimport GlobalTimeChecker from \"../containers/GlobalTimeChecker\";\r\nimport {checkValidStatusCode} from \"../helpers/httpHelper\";\r\n\r\nlet settings = getSettings();\r\nlet baseURL = settings.baseURL;\r\n\r\nconst RIGHT_TABLE_FIELDS = [\r\n {key: 'seq', label: 'S/N'},\r\n {key: 'displayName', label: 'Role Name'}\r\n]\r\n\r\nclass UserAccessAccount extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showDialog: false,\r\n roleNameFieldError: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n editing: {},\r\n deletingRole: {},\r\n showDeleteDialog: false,\r\n getRoleForEditIsLoading: false\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - User Access Account`\r\n this.props.getAllRoles()\r\n const rs = await this.props.getPermissions()\r\n if (rs.success) {\r\n const permissions = {}\r\n for (let k in this.props.systemDataDuck.permissions) {\r\n permissions[k] = false\r\n }\r\n this.props.updateUserAccessAccountDuck('permissions', {...permissions})\r\n }\r\n }\r\n\r\n onPermissionsSwitch = k => {\r\n this.props.updateUserAccessAccountPermissions(k, !this.props.userAccessAccountDuck.permissions[k])\r\n }\r\n\r\n onRightsEdit = async row => {\r\n this.setState({getRoleForEditIsLoading: true})\r\n\r\n // calls api to get granted permissions.\r\n const data = {params: {Id: row.id}, ...getCurrentAuthHeader()}\r\n const rs = await axios.get(baseURL + '/Role/GetRoleForEdit', data).catch(e => {\r\n if (!checkValidStatusCode(e.response.status )) {\r\n const {response: {data: {error: {message}}}} = e\r\n return {data: {success: false, error: {message}}}\r\n }\r\n return {data: {success: false, error: {message: e.response.status + ' Unexpected error'}}}\r\n })\r\n if (!rs.data) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'No data from server'})\r\n }\r\n if (rs.data.success) {\r\n const {grantedPermissionNames} = rs.data.result\r\n\r\n const permissions = {}\r\n for (let k in this.props.systemDataDuck.permissions) {\r\n permissions[k] = !!grantedPermissionNames.includes(k)\r\n }\r\n\r\n this.setState({showDialog: true, editing: {...row, permissions}, getRoleForEditIsLoading: false})\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.data.error.message})\r\n }\r\n }\r\n\r\n onRightsDelete = row => {\r\n this.setState({showDeleteDialog: true, deletingRole: row})\r\n }\r\n\r\n onEditCancel = () => {\r\n this.setState({showDialog: false, editing: {}})\r\n }\r\n\r\n onEditSave = async () => {\r\n const rs = await this.props.updateRole(this.state.editing)\r\n this.setState({showDialog: false, editing: {}})\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Role updated',\r\n showDialog: false,\r\n editing: {}\r\n })\r\n this.props.getAllRoles()\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDialog: false,\r\n editing: {}\r\n })\r\n }\r\n }\r\n\r\n onSubmit = async () => {\r\n if (this._validate()) {\r\n const rs = await this.props.createRole(this.props.userAccessAccountDuck)\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Role created'})\r\n this.props.getAllRoles()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n }\r\n\r\n _validate() {\r\n if (this.props.userAccessAccountDuck.roleNameField === '') {\r\n this.setState({roleNameFieldError: 'This field is required'})\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onSwitch = (k) => {\r\n this.setState({\r\n editing: {\r\n ...this.state.editing,\r\n permissions: {...this.state.editing.permissions, [k]: !this.state.editing.permissions[k]}\r\n }\r\n })\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false, deletingRole: {}})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const rs = await this.props.deleteRole(this.state.deletingRole.id)\r\n\r\n if (rs.success) {\r\n this.props.getAllRoles()\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Role deleted',\r\n showDeleteDialog: false\r\n })\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false\r\n })\r\n }\r\n }\r\n\r\n _removeAdminRole = roles => {\r\n return roles.filter(r => r.name !== 'Admin')\r\n }\r\n\r\n render() {\r\n const {classes, userAccessAccountDuck, systemDataDuck} = this.props\r\n const {deletingRole} = this.state\r\n const permissionsLoaded = Object.keys(userAccessAccountDuck.permissions).length > 0\r\n\r\n const hasCreatePermission = hasPermissions([USER_ADMIN_ROLE_CREATE_PERMISSION])\r\n const hasEditPermission = hasPermissions([USER_ADMIN_ROLE_EDIT_PERMISSION])\r\n const hasReadPermission = hasPermissions([USER_ADMIN_ROLE_READ_PERMISSION]) || hasEditPermission || hasCreatePermission\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n {/*{}*/}\r\n {Object.keys(deletingRole).length > 0 &&\r\n \r\n Proceed to delete the following role:\r\n \r\n \r\n \r\n \r\n Role: \r\n \r\n \r\n {deletingRole.name}\r\n \r\n \r\n \r\n \r\n This process cannot be reversed.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {/*{}*/}\r\n\r\n \r\n Editing {this.state.editing.name}\r\n {Object.keys(this.state.editing).length > 0 && \r\n \r\n {userAccessAccountDuck.updateRoleIsLoading && }\r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {hasReadPermission && \r\n \r\n \r\n {systemDataDuck.roles.length > 0 && }\r\n \r\n \r\n\r\n {hasCreatePermission && \r\n \r\n \r\n \r\n this.props.updateUserAccessAccountDuck('roleNameField', e.target.value)}/>\r\n \r\n\r\n {permissionsLoaded &&\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n }\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {userAccessAccountDuck, systemDataDuck} = state\r\n\r\n return {userAccessAccountDuck, systemDataDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n updateUserAccessAccountDuck: (k, v) => dispatch(updateUserAccessAccountDuck(k, v)),\r\n getPermissions: () => dispatch(getPermissions()),\r\n getAllRoles: () => dispatch(getAllRoles()),\r\n updateRole: fields => dispatch(updateRole(fields)),\r\n updateUserAccessAccountPermissions: (k, v) => dispatch(updateUserAccessAccountPermissions(k, v)),\r\n createRole: fields => dispatch(createRole(fields)),\r\n deleteRole: Id => dispatch(deleteRole(Id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(UserAccessAccount))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Button, TextField} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledTable from '../components/StyledTable'\r\nimport StyledSelect from '../components/StyledSelect'\r\nimport GlobalTimeChecker from \"../containers/GlobalTimeChecker\";\r\n\r\nconst REJECT_TABLE_FIELDS = [\r\n {key: 'id', label: 'S/N'},\r\n {key: 'rejectReason', label: 'Reject reason'},\r\n {key: 'emailTemplate', label: 'Email template'},\r\n {key: 'system', label: 'system'}\r\n]\r\n\r\nconst DATA = [\r\n {id: 1, rejectReason: 'reasons', emailTemplate: 'nil', system: 'CSO'}\r\n]\r\n\r\nclass RejectReason extends Component {\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Admin settings - Reject Reason`\r\n }\r\n\r\n onSubmit = () => {\r\n\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nexport default connect(null, null)(withStyles(styles)(RejectReason))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Button} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledTable from '../components/StyledTable'\r\nimport GlobalTimeChecker from \"../containers/GlobalTimeChecker\";\r\n\r\nconst EMAIL_TABLE_FIELDS = [\r\n {key: 'id', label: 'S/N'},\r\n {key: 'templateName', label: 'Email Template Name'}\r\n]\r\n\r\nconst DATA = [\r\n {id: 1, templateName: 'Not within campaign period'},\r\n {id: 2, templateName: 'Not within campaign period'}\r\n]\r\n\r\nclass EmailTemplate extends Component {\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Admin settings - Email Template`\r\n }\r\n\r\n onCreate = () => {\r\n\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nexport default connect(null, null)(withStyles(styles)(EmailTemplate))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {\r\n withStyles,\r\n Paper,\r\n Table,\r\n TableHead,\r\n TableRow,\r\n TableBody,\r\n TableCell,\r\n Typography,\r\n TextField, Dialog, DialogTitle, DialogContent, Grid, DialogActions, Button\r\n} from '@material-ui/core'\r\nimport {updateSingleBannerDetails, voidBanner, getAllBanner} from '../ducks/bannerDuck'\r\nimport StyledDeleteBtn from './StyledDeleteBtn'\r\nimport {Warning} from '@material-ui/icons'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {USER_ADMIN_BANNER_EDIT_PERMISSION} from '../constants/permissions'\r\n\r\nconst BANNER_TABLE_FIELDS = [\r\n {key: 'uri', label: 'Images'},\r\n {key: 'name', label: 'Banner name'},\r\n {key: 'sortPriority', label: 'Order'}\r\n]\r\n\r\nclass BannerTable extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n sortedBanners: [],\r\n deletingBanner: {},\r\n showDeleteDialog: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n const rs = await this.props.getAllBanner()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {bannerDuck: {getAllBannerIsLoading, banners}} = this.props\r\n if (prevProps.bannerDuck.getAllBannerIsLoading === true && getAllBannerIsLoading === false) {\r\n const {bannerDuck: {banners}} = this.props\r\n if (banners.length > 0 && banners[0].uri) {\r\n const sortedBanners = banners.filter(b => !b.isDeleted)\r\n sortedBanners.sort((b1, b2) => b1.sortPriority - b2.sortPriority)\r\n this.setState({sortedBanners})\r\n }\r\n }\r\n\r\n if (prevProps.bannerDuck.banners !== banners) {\r\n if (banners.length > 0 && banners[0].uri) {\r\n const sortedBanners = banners.filter(b => !b.isDeleted)\r\n sortedBanners.sort((b1, b2) => b1.sortPriority - b2.sortPriority)\r\n this.setState({sortedBanners})\r\n }\r\n }\r\n }\r\n\r\n onOrderChange = (banner, e) => {\r\n this.props.updateSingleBannerDetails(banner.id, 'sortPriority', e.target.value)\r\n }\r\n\r\n onDelete = deletingBanner => {\r\n this.setState({deletingBanner, showDeleteDialog: true})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const data = {bannerList: [{...this.state.deletingBanner}]}\r\n const rs = await this.props.voidBanner(data)\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: `Deleted banner ${this.state.deletingBanner.name}`,\r\n showDeleteDialog: false\r\n\r\n })\r\n this.props.getAllBanner()\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false\r\n })\r\n }\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false})\r\n }\r\n\r\n onNameChange = (banner, e) => {\r\n this.props.updateSingleBannerDetails(banner.id, 'name', e.target.value)\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n render() {\r\n const {classes} = this.props\r\n const {sortedBanners, deletingBanner} = this.state\r\n\r\n const hasEditPermission = hasPermissions([USER_ADMIN_BANNER_EDIT_PERMISSION])\r\n\r\n return (\r\n
    \r\n {/*{}*/}\r\n {Object.keys(deletingBanner).length > 0 &&\r\n \r\n Proceed to delete the following banner:\r\n \r\n \r\n \r\n \r\n Name: \r\n \r\n \r\n {deletingBanner.name}\r\n \r\n \r\n \r\n \r\n Banner:\r\n \r\n\r\n \r\n \r\n \r\n This process cannot be reversed.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {/*{}*/}\r\n\r\n \r\n \r\n \r\n \r\n {BANNER_TABLE_FIELDS.map(f => {\r\n return {f.label}\r\n })}\r\n {hasEditPermission && Delete}\r\n \r\n\r\n \r\n \r\n {sortedBanners.length > 0 && sortedBanners.map((b, ridx) => {\r\n return \r\n {BANNER_TABLE_FIELDS.map(f => {\r\n return \r\n {f.key === 'seq' && {ridx + 1}}\r\n\r\n {f.key === 'uri' && {''}\r\n}\r\n\r\n {f.key === 'name' && this.onNameChange(b, e)}\r\n disabled={!hasEditPermission}\r\n />}\r\n\r\n {f.key === 'sortPriority' &&\r\n this.onOrderChange(b, e)} type={'number'}\r\n disabled={!hasEditPermission}\r\n />}\r\n\r\n \r\n })}\r\n {hasEditPermission &&\r\n this.onDelete(b)}/>}\r\n \r\n })}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container},\r\n image: {maxWidth: '100%', width: '200px'}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {bannerDuck} = state\r\n\r\n return {bannerDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllBanner: () => dispatch(getAllBanner()),\r\n updateSingleBannerDetails: (id, k, v) => dispatch(updateSingleBannerDetails(id, k, v)),\r\n voidBanner: data => dispatch(voidBanner(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(BannerTable))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Button, TextField, Typography} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport BannerTable from '../components/BannerTable'\r\nimport {getAllBanner, addBanner, editBanner} from '../ducks/bannerDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport GeneralDropzone from '../components/generalForm/GeneralDropzone'\r\nimport {REQUIRED_ERROR_MSG} from '../constants/messages'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {\r\n USER_ADMIN_BANNER_READ_PERMISSION, USER_ADMIN_BANNER_CREATE_PERMISSION, USER_ADMIN_BANNER_EDIT_PERMISSION\r\n} from '../constants/permissions'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\n\r\nclass BannerScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n selectedFile: '',\r\n selectedFileError: '',\r\n bannerName: '',\r\n bannerNameError: '',\r\n bannerSortPriority: ''\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - Banner`\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {bannerDuck: {getAllBannerIsLoading}} = this.props\r\n let banners = [{id: 0, name: '', uri: '', order: 0, sortPriority: 1}]\r\n if (prevProps.bannerDuck.getAllBannerIsLoading === true && getAllBannerIsLoading === false) {\r\n const bannerSortPriority = banners[banners.length - 1].sortPriority + 1\r\n this.setState({bannerSortPriority})\r\n }\r\n }\r\n\r\n validateSubmit = () => {\r\n const {bannerName, selectedFile} = this.state\r\n let rs = true\r\n if (bannerName === '') {\r\n this.setState({bannerNameError: REQUIRED_ERROR_MSG})\r\n rs = false\r\n } else {\r\n this.setState({bannerNameError: ''})\r\n }\r\n\r\n if (typeof selectedFile !== 'object') {\r\n this.setState({selectedFileError: REQUIRED_ERROR_MSG})\r\n rs = false\r\n } else {\r\n this.setState({selectedFileError: ''})\r\n }\r\n return rs\r\n }\r\n\r\n onSubmit = async () => {\r\n if (!this.validateSubmit()) return\r\n\r\n const formData = new FormData()\r\n const {selectedFile} = this.state\r\n formData.append('file', selectedFile, selectedFile.name)\r\n\r\n const {bannerName, bannerSortPriority} = this.state\r\n const params = {name: bannerName, sortPriority: bannerSortPriority}\r\n const rs = await this.props.addBanner(params, formData)\r\n this.props.getAllBanner()\r\n rs.success\r\n ? this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'Banner uploaded',\r\n selectedFile: '',\r\n bannerName: '',\r\n bannerSortPriority: this.state.bannerSortPriority + 1\r\n })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n selectedFile: ''\r\n })\r\n\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n if (acceptedFiles.length === 1) {\r\n this.setState({selectedFile: acceptedFiles[0]})\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Please upload one file at a time'})\r\n }\r\n if (rejectedFiles.length > 0) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: `${rejectedFiles[0].name} is not valid. Please upload only images`})\r\n }\r\n }\r\n\r\n onUpdate = async () => {\r\n const rs = await this.props.editBanner()\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Banners updated'})\r\n this.props.getAllBanner()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n onUploadFieldsChange = (k, e) => {\r\n if (k === 'name') this.setState({bannerName: e.target.value})\r\n if (k === 'order') this.setState({bannerSortPriority: e.target.value})\r\n }\r\n\r\n render() {\r\n const {classes, bannerDuck: {getAllBannerIsLoading, addBannerIsLoading, banners}} = this.props\r\n const {bannerNameError, selectedFileError} = this.state\r\n\r\n const hasEditPermission = hasPermissions([USER_ADMIN_BANNER_EDIT_PERMISSION])\r\n const hasCreatePermission = hasPermissions([USER_ADMIN_BANNER_CREATE_PERMISSION])\r\n const hasReadPermission = hasPermissions([USER_ADMIN_BANNER_READ_PERMISSION]) || hasEditPermission || hasCreatePermission\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n {hasReadPermission && \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hasEditPermission && banners.length>0 && banners[0].uri && \r\n \r\n }\r\n \r\n \r\n \r\n\r\n {hasCreatePermission && \r\n \r\n \r\n \r\n \r\n this.onUploadFieldsChange('name', e)}\r\n fullWidth error={!!bannerNameError} helperText={bannerNameError}/>\r\n \r\n \r\n this.onUploadFieldsChange('order', e)}\r\n fullWidth/>\r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.selectedFile.name && (\r\n \r\n {this.state.selectedFile.name}\r\n \r\n )}\r\n {selectedFileError && {selectedFileError}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n }\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {bannerDuck} = state\r\n\r\n return {bannerDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllBanner: () => dispatch(getAllBanner()),\r\n addBanner: (params, formData) => dispatch(addBanner(params, formData)),\r\n editBanner: () => dispatch(editBanner())\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(BannerScreen))","import React, {PureComponent} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {Redirect} from 'react-router'\r\nimport {withStyles} from '@material-ui/core'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport {updateAuthDuck} from '../ducks/authDuck'\r\nimport {HubConnectionBuilder} from '@aspnet/signalr'\r\nimport {signalRURL} from '../config/config'\r\nimport signalRConstants from '../helpers/signalRConstants'\r\n\r\nclass LogoutScreen extends PureComponent {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n loggedOut: false\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n document.title = `${TITLE_PREFIX} Logout`\r\n console.log('clearing all data')\r\n localStorage.clear()\r\n this.props.updateAuthDuck('isLoggedIn', null)\r\n\r\n this.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n this._startSignalRConnection()\r\n this.hubConnection.onclose(async () => {\r\n await this._startSignalRConnection()\r\n })\r\n // this.setState({loggedOut: true})\r\n setTimeout(() => window.location = window.location.origin, 2000)\r\n }\r\n\r\n _startSignalRConnection = async () => {\r\n this.hubConnection.start()\r\n .then(() => {console.log('Connection started!'); this._sendMessage();}).catch(err => {\r\n setTimeout(() => this._startSignalRConnection(), 5000)\r\n console.log('Error while establishing connection :(')\r\n })\r\n }\r\n\r\n _sendMessage = () => {\r\n let messageType = signalRConstants.REFRESH_CLIENT\r\n\r\n const user = localStorage.getItem('username')\r\n let messageObj = {\r\n user,\r\n type: messageType\r\n }\r\n let messageStr = JSON.stringify(messageObj)\r\n this.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function (err) {\r\n return console.error(err.toString())\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.state.loggedOut && }\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n updateAuthDuck: (k, v) => dispatch(updateAuthDuck(k, v))\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(withStyles(styles)(LogoutScreen))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Fab, Button, Grid } from '@material-ui/core'\r\nimport Header from '../containers/Header'\r\nimport { Print, ScreenShare } from '@material-ui/icons'\r\nimport { resetIndividualFormReducer, updateIndividualFormDuck } from '../ducks/individualFormDuck'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport CollectorSuccessDisplay from '../containers/individual/CollectorSuccessDisplay'\r\nimport { HubConnectionBuilder } from '@aspnet/signalr'\r\nimport { signalRURL } from '../config/config'\r\nimport signalRConstants from '../helpers/signalRConstants'\r\n\r\nclass IndividualCollectorSuccess extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tconsentError: '',\r\n\t\t\ttotalCtpGenValue: 0,\r\n\t\t\ttotalCtpLpcValue: 0,\r\n\t\t\tundeletedPax: 0,\r\n\t\t\tTABLE_HEAD: [],\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Individual Collector Success`\r\n\r\n\t\tthis.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n\t\tthis._startSignalRConnection()\r\n\t\tthis.hubConnection.on('ReceiveMessage', this._receiveMessage)\r\n\t\tthis.hubConnection.onclose(async () => {\r\n\t\t\tawait this._startSignalRConnection()\r\n\t\t})\r\n\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: { formDetailsList },\r\n\t\t} = this.props\r\n\t\tlet totalCtpGenValue = 0\r\n\t\tlet totalCtpLpcValue = 0\r\n\t\tlet undeletedPax = 0\r\n\t\tfor (const p of formDetailsList) {\r\n\t\t\tif (!p.isDeleted) {\r\n\t\t\t\ttotalCtpGenValue = totalCtpGenValue + p.ctpGenValue\r\n\t\t\t\ttotalCtpLpcValue = totalCtpLpcValue + p.ctpLpcValue\r\n\t\t\t\tundeletedPax++\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState({ totalCtpGenValue, totalCtpLpcValue, undeletedPax })\r\n\t}\r\n\r\n\t_startSignalRConnection = async () => {\r\n\t\tthis.hubConnection\r\n\t\t\t.start()\r\n\t\t\t.then(() => console.log('Connection started!'))\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tsetTimeout(() => this._startSignalRConnection(), 5000)\r\n\t\t\t\tconsole.log('Error while establishing connection :(')\r\n\t\t\t})\r\n\t}\r\n\r\n\t_sendMessage = (dataObj, messageType) => {\r\n\t\tconst user = localStorage.getItem('username')\r\n\t\tlet messageObj = {\r\n\t\t\tuser,\r\n\t\t\ttype: messageType,\r\n\t\t\tsource: signalRConstants.USER_CONCIERGE,\r\n\t\t\tdata: dataObj,\r\n\t\t}\r\n\t\tlet messageStr = JSON.stringify(messageObj)\r\n\t\tthis.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function(err) {\r\n\t\t\treturn console.error(err.toString())\r\n\t\t})\r\n\t}\r\n\r\n\t_receiveMessage = (user, messageStr) => {\r\n\t\tlet messageObj = JSON.parse(messageStr)\r\n\r\n\t\tif (messageObj.source === signalRConstants.USER_CONCIERGE) return\r\n\t\tconst currentUser = localStorage.getItem('username')\r\n\t\tif (messageObj.user !== currentUser) return\r\n\r\n\t\tif (messageObj.data) {\r\n\t\t\tconst { collectorDetails, formState, formDetailsList } = messageObj.data\r\n\t\t\tthis.props.updateCollectorDetails(collectorDetails)\r\n\t\t\tif (formState) this.setState({ formState })\r\n\t\t\tif (formDetailsList) this.props.updateFormDetailsList(formDetailsList)\r\n\t\t\tif (messageObj.type === signalRConstants.CLIENT_DONE) {\r\n\t\t\t\tthis.setState({ clientIsDone: true, isSharingScreen: false, formState })\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_toolbarButtons = () => {\r\n\t\treturn [\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    ,\r\n\t\t]\r\n\t}\r\n\r\n\tonScreenShare = () => {\r\n\t\tthis._sendMessage(\r\n\t\t\t{\r\n\t\t\t\tcollectorDetails: this.props.individualFormDuck.collectorDetails,\r\n\t\t\t\tformDetailsList: this.props.individualFormDuck.formDetailsList,\r\n\t\t\t},\r\n\t\t\tsignalRConstants.DISPLAY_INDIVIDUAL_COLLECTOR_SUCCESS\r\n\t\t)\r\n\t}\r\n\r\n\tonPrint = () => {\r\n\t\twindow.print()\r\n\t}\r\n\r\n\tonBackClick = () => {\r\n\t\tthis._sendMessage({}, signalRConstants.EXIT_INDIVIDUAL_COLLECTOR_SUCCESS)\r\n\t\tthis.props.resetIndividualFormReducer()\r\n\t\t//this.props.resetRedemptionTransactionReducer()\r\n\r\n\t\t//this.props.history.push('/individual')\r\n\t\twindow.location.replace('/individual')\r\n\t}\r\n\r\n\tonPrintAll = () => {\r\n\t\twindow.open('print-card?state=ctp_app&id=' + this.props.individualFormDuck.redemptionTransactionId)\r\n\t}\r\n\r\n\tshouldDisablePrintAll = () => {\r\n\t\tif (\r\n\t\t\t(this.props.individualFormDuck.ctpDigitalCards && this.props.individualFormDuck.ctpDigitalCards.length) ||\r\n\t\t\t(this.props.individualFormDuck.preloadedVouchersCards && this.props.individualFormDuck.preloadedVouchersCards.length)\r\n\t\t) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes } = this.props\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { individualFormDuck } = state\r\n\r\n\treturn { individualFormDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tresetIndividualFormReducer: () => dispatch(resetIndividualFormReducer()),\r\n\t\t//resetRedemptionTransactionReducer: () => dispatch(resetRedemptionTransactionReducer()),\r\n\t\tupdateIndividualFormDuck: (obj) => dispatch(updateIndividualFormDuck(obj)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(IndividualCollectorSuccess))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Fab } from '@material-ui/core'\r\nimport Header from '../containers/Header'\r\nimport { Print, ScreenShare } from '@material-ui/icons'\r\nimport { resetGroupRedemptionFormReducer } from '../ducks/groupRedemptionFormDuck'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport GroupCollectorSuccessDisplay from '../containers/group/GroupCollectorSuccessDisplay'\r\nimport { signalRURL } from '../config/config'\r\nimport signalRConstants from '../helpers/signalRConstants'\r\nimport { HubConnectionBuilder } from '@aspnet/signalr'\r\n\r\nclass GroupCollectorSuccess extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tconsentError: '',\r\n\t\t\ttotalCtpGenValue: 0,\r\n\t\t\ttotalCtpLpcValue: 0,\r\n\t\t\tundeletedPax: 0,\r\n\t\t\tTABLE_HEAD: []\r\n\t\t}\r\n\t}\r\n\r\n\t_toolbarButtons = () => {\r\n\t\treturn [\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t]\r\n\t}\r\n\r\n\t_startSignalRConnection = async () => {\r\n\t\tthis.hubConnection\r\n\t\t\t.start()\r\n\t\t\t.then(() => console.log('Connection started!'))\r\n\t\t\t.catch(err => {\r\n\t\t\t\tsetTimeout(() => this._startSignalRConnection(), 5000)\r\n\t\t\t\tconsole.log('Error while establishing connection :(')\r\n\t\t\t})\r\n\t}\r\n\r\n\t_sendMessage = (dataObj, messageType) => {\r\n\t\tconst user = localStorage.getItem('username')\r\n\t\tlet messageObj = {\r\n\t\t\tuser,\r\n\t\t\ttype: messageType,\r\n\t\t\tsource: signalRConstants.USER_CONCIERGE,\r\n\t\t\tdata: dataObj\r\n\t\t}\r\n\t\tlet messageStr = JSON.stringify(messageObj)\r\n\t\tthis.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function(err) {\r\n\t\t\treturn console.error(err.toString())\r\n\t\t})\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n\t\tthis._startSignalRConnection()\r\n\t\tthis.hubConnection.on('ReceiveMessage', this._receiveMessage)\r\n\t\tthis.hubConnection.onclose(async () => {\r\n\t\t\tawait this._startSignalRConnection()\r\n\t\t})\r\n\t}\r\n\r\n\tonScreenShare = () => {\r\n\t\tthis._sendMessage(\r\n\t\t\t{\r\n\t\t\t\tgroup: this.props.groupRedemptionFormDuck.group,\r\n\t\t\t\ttourLeader: this.props.groupRedemptionFormDuck.tourLeader,\r\n\t\t\t\tcollector: this.props.groupRedemptionFormDuck.collector,\r\n\t\t\t\tpassengers: this.props.groupRedemptionFormDuck.passengers,\r\n\t\t\t\tsignatureUri: this.props.groupRedemptionFormDuck.signatureUri\r\n\t\t\t},\r\n\t\t\tsignalRConstants.DISPLAY_GROUP_COLLECTOR_SUCCESS\r\n\t\t)\r\n\t}\r\n\r\n\tonPrint = () => {\r\n\t\twindow.print()\r\n\t}\r\n\r\n\tonBackClick = () => {\r\n\t\tthis.props.resetGroupRedemptionFormReducer()\r\n\t\twindow.location.replace('/group/group-submission')\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n\tbuttonMargin: { marginTop: '2rem' }\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n\tconst { groupRedemptionFormDuck } = state\r\n\r\n\treturn { groupRedemptionFormDuck }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tresetGroupRedemptionFormReducer: () => dispatch(resetGroupRedemptionFormReducer())\r\n\t}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(GroupCollectorSuccess))\r\n","import React, {Component} from 'react'\r\nimport Header from '../containers/Header'\r\nimport {withStyles, Button, Grid} from '@material-ui/core'\r\nimport StyledSection from '../components/StyledSection'\r\nimport GroupReferenceForm from '../containers/group/GroupReferenceForm'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport {GROUP_TYPE_ACTION_REQUIRED} from '../constants/groupType'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport AuditLogTable from '../components/AuditLogTable'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {GROUP_CREATOR_PERMISSION} from '../constants/permissions'\r\nimport {Redirect} from 'react-router-dom'\r\n\r\nclass GroupSubmissionDetail extends Component {\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Group - Group Submission Detail`\r\n }\r\n\r\n onBackToListing = () => {\r\n this.props.history.push('/group/group-submission')\r\n }\r\n\r\n render() {\r\n const {classes, match} = this.props\r\n\r\n const hasCreatorPermissions = hasPermissions([GROUP_CREATOR_PERMISSION])\r\n if (!hasCreatorPermissions) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nexport default withStyles(styles)(GroupSubmissionDetail)","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport LinearProgress from '@material-ui/core/LinearProgress'\r\n\r\nconst styles = {\r\n\troot: {\r\n\t\tflexGrow: 1\r\n\t}\r\n}\r\n\r\nfunction LinearIndeterminate(props) {\r\n\tconst { classes } = props\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t)\r\n}\r\n\r\nLinearIndeterminate.propTypes = {\r\n\tclasses: PropTypes.object.isRequired\r\n}\r\n\r\nexport default withStyles(styles)(LinearIndeterminate)\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles, Grid, Button, Fab, Typography, RadioGroup, FormControlLabel, Radio } from '@material-ui/core';\r\nimport { green } from '@material-ui/core/colors';\r\nimport Header from '../containers/Header.js';\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix';\r\nimport { HubConnectionBuilder } from '@aspnet/signalr';\r\nimport { signalRURL } from '../config/config';\r\nimport signalRConstants from '../helpers/signalRConstants';\r\nimport StyledSnackbar from '../components/StyledSnackbar';\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker';\r\nimport GroupCollectorForm from '../containers/group/GroupCollectorForm';\r\nimport {\r\n createGroupTransactionAndAssignDigitalCards,\r\n groupIssueCards,\r\n updateGroupCollectorDetails,\r\n groupCollectorSignatureUpload,\r\n multipleActivateAndIssueCard\r\n} from '../ducks/groupRedemptionFormDuck';\r\nimport { ScreenShare } from '@material-ui/icons';\r\nimport StyledSection from '../components/StyledSection';\r\nimport { dataURItoBlob } from '../helpers/utilities';\r\nimport GeneralSignature from '../components/generalForm/GeneralSignature';\r\nimport LinearIndeterminate from '../components/LinearIndeterminate';\r\n\r\nclass GroupCollector extends React.Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n formState: {},\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n parentDidSubmit: false,\r\n clientIsDone: false,\r\n isSharingScreen: false,\r\n isSubmitted: false,\r\n promiseModalProceedMessage: '',\r\n promiseModalCancelMessage: '',\r\n promiseModalContent: '',\r\n submitType: 'TOUR_LEADER'\r\n };\r\n\r\n this.collectorPersonalDetails = null;\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Group Collector`;\r\n\r\n this.hubConnection = new HubConnectionBuilder()\r\n .withUrl(signalRURL)\r\n .build();\r\n this._startSignalRConnection();\r\n this.hubConnection.on('ReceiveMessage', this._receiveMessage);\r\n this.hubConnection.onclose(async () => {\r\n await this._startSignalRConnection();\r\n });\r\n\r\n this.props.history.listen(location => {\r\n const { isSubmitted } = this.state;\r\n if (\r\n isSubmitted &&\r\n location.pathname.indexOf('/group/group-issuance') !== -1\r\n ) {\r\n window.location = '/dashboard';\r\n }\r\n });\r\n }\r\n\r\n _startSignalRConnection = async () => {\r\n this.hubConnection\r\n .start()\r\n .then(() => console.log('Connection started!'))\r\n .catch(err => {\r\n setTimeout(() => this._startSignalRConnection(), 5000);\r\n console.log('Error while establishing connection :(');\r\n });\r\n };\r\n\r\n _sendMessage = (data, messageType) => {\r\n const user = localStorage.getItem('username');\r\n let messageObj = {\r\n user,\r\n type: messageType,\r\n source: signalRConstants.USER_CONCIERGE,\r\n data: data\r\n };\r\n\r\n let messageStr = JSON.stringify(messageObj);\r\n this.hubConnection\r\n .invoke('SendMessage', 'default', messageStr)\r\n .catch(function(err) {\r\n return console.error(err.toString());\r\n });\r\n };\r\n\r\n _receiveMessage = (user, messageStr) => {\r\n let messageObj = JSON.parse(messageStr);\r\n\r\n if (messageObj.source === signalRConstants.USER_CONCIERGE) return;\r\n const currentUser = localStorage.getItem('username');\r\n if (messageObj.user !== currentUser) return;\r\n\r\n // if (messageObj.data) {\r\n // const {collectorDetails, formState, formDetailsList} = messageObj.data\r\n // this.props.updateCollectorDetails(collectorDetails)\r\n // if (formState) this.setState({formState})\r\n // if (formDetailsList) this.props.updateFormDetailsList(formDetailsList)\r\n // if (messageObj.type === signalRConstants.CLIENT_DONE) {\r\n // this.setState({clientIsDone: true, formState})\r\n // }\r\n // }\r\n\r\n if (messageObj.type === signalRConstants.UPDATE_GROUP_COLLECTOR_FORM) {\r\n const { collector } = messageObj.data;\r\n this.props.updateGroupCollectorDetails(collector);\r\n }\r\n };\r\n\r\n _toolbarButtons = () => {\r\n return [\r\n // \r\n // \t\r\n // ,\r\n \r\n \r\n \r\n ];\r\n };\r\n\r\n onPrint = () => {\r\n window.print();\r\n };\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n _createGroupTransactionAndAssignDigitalCards = async () => {\r\n let { groupRedemptionFormDuck } = this.props;\r\n let response = await this.props.createGroupTransactionAndAssignDigitalCards(\r\n {\r\n tourLeader: groupRedemptionFormDuck.tourLeader,\r\n group: groupRedemptionFormDuck.group,\r\n passengers: groupRedemptionFormDuck.passengers,\r\n signatureUri: groupRedemptionFormDuck.signatureUri,\r\n collector: groupRedemptionFormDuck.collector,\r\n cardAssignment: groupRedemptionFormDuck.cardAssignment\r\n }\r\n );\r\n if (!response.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: response.message\r\n });\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n _multipleActivateAndIssueCards = async () => {\r\n let passengersWithCard = this.props.groupRedemptionFormDuck.passengers.filter(\r\n x => !!x.cardNo\r\n );\r\n\r\n let issueCardResponse = await this.props.multipleActivateAndIssueCard(\r\n passengersWithCard\r\n );\r\n if (!issueCardResponse.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: issueCardResponse.message\r\n });\r\n return null;\r\n } else {\r\n return issueCardResponse;\r\n }\r\n };\r\n\r\n _groupIssueCards = async cardActivationResponse => {\r\n let { groupRedemptionFormDuck } = this.props;\r\n let response = await this.props.groupIssueCards({\r\n tourLeader: groupRedemptionFormDuck.tourLeader,\r\n group: groupRedemptionFormDuck.group,\r\n passengers: groupRedemptionFormDuck.passengers,\r\n signatureUri: groupRedemptionFormDuck.signatureUri,\r\n collector: groupRedemptionFormDuck.collector,\r\n cardAssignment: groupRedemptionFormDuck.cardAssignment,\r\n redemptionTransactionId:\r\n groupRedemptionFormDuck.redemptionTransactionId,\r\n cardActivationResponse: cardActivationResponse\r\n });\r\n if (!response.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: response.message\r\n });\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n onSubmit = async () => {\r\n const {\r\n collector,\r\n cardAssignment\r\n } = this.props.groupRedemptionFormDuck;\r\n\r\n if (\r\n collector.csoSignatureBase64 === '' &&\r\n collector.clientSignatureBase64 === '' &&\r\n this.state.submitType === 'TOUR_LEADER'\r\n ) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: 'Signature is required'\r\n });\r\n return;\r\n }\r\n\r\n if (this.state.submitType === 'TOUR_LEADER') {\r\n const blob = dataURItoBlob(\r\n collector.csoSignatureBase64\r\n ? collector.csoSignatureBase64\r\n : collector.clientSignatureBase64\r\n );\r\n const formData = new FormData();\r\n formData.append('file', blob);\r\n // api call: upload signature\r\n let rs = await this.props.groupCollectorSignatureUpload(formData);\r\n if (!rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error'\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n // api call: get redemption transaction and digital cards if applicable\r\n let createTransactionAndDigitalCardsSuccess = await this._createGroupTransactionAndAssignDigitalCards();\r\n if (!createTransactionAndDigitalCardsSuccess) return;\r\n let cardActivationResponse = null;\r\n // api call: Card Activation\r\n // if (\r\n // cardAssignment === MULTI_CARD_DIGITAL ||\r\n // cardAssignment === MULTI_CARD_UNLOADED\r\n // ) {\r\n // cardActivationResponse = await this._multipleActivateAndIssueCards();\r\n // if (!cardActivationResponse) return;\r\n // }\r\n\r\n // api call: final submission\r\n let response = await this._groupIssueCards(cardActivationResponse);\r\n if (response) this.props.history.push('/group-collector-success');\r\n\r\n //todo:syd remove as refactor to its own method\r\n /*\r\n\t\tlet passengersWithCard = this.props.groupRedemptionFormDuck.passengers.filter(x => !!x.cardNo)\r\n\t\tif (passengersWithCard) {\r\n\t\t\tlet issueCardResponse = await this.props.multipleActivateAndIssueCard(passengersWithCard)\r\n\t\t\tif (!issueCardResponse.success) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\tsnackbarMessage: issueCardResponse.message\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tpreIssuanceCheck = true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t//physicalVoucher don't have to check\r\n\t\t\tpreIssuanceCheck = true\r\n\t\t}\r\n\t\t*/\r\n\r\n //todo:syd remove as refactor to use sub-method\r\n /*\r\n\t\tlet response = await this.props.groupIssueCards({\r\n\t\t\ttourLeader: groupRedemptionFormDuck.tourLeader,\r\n\t\t\tgroup: groupRedemptionFormDuck.group,\r\n\t\t\tpassengers: groupRedemptionFormDuck.passengers,\r\n\t\t\tsignatureUri: groupRedemptionFormDuck.signatureUri,\r\n\t\t\tcollector: groupRedemptionFormDuck.collector,\r\n\t\t\tcardAssignment: groupRedemptionFormDuck.cardAssignment\r\n\t\t})\r\n\t\tresponse.success\r\n\t\t\t? this.props.history.push('/group-collector-success')\r\n\t\t\t: this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: response.message })\r\n\t\t*/\r\n };\r\n\r\n onScreenShare = () => {\r\n let formattedPassengers = [];\r\n this.props.groupRedemptionFormDuck.passengers.forEach(passenger => {\r\n let formattedPassenger = {\r\n eTicket1: passenger.eTicket1,\r\n eTicket2: passenger.eTicket2,\r\n eTicket3: passenger.eTicket3,\r\n eTicket4: passenger.eTicket4,\r\n firstName: passenger.firstName,\r\n lastName: passenger.lastName,\r\n cardNo: passenger.cardNo,\r\n genPhysicalVoucherNo: passenger.genPhysicalVoucherNo,\r\n lpcPhysicalVoucherNo: passenger.lpcPhysicalVoucherNo,\r\n id: passenger.id,\r\n collecting: passenger.collecting,\r\n ctpVoucherValue: passenger.ctpVoucherValue,\r\n ctpGenValue: passenger.ctpGenValue,\r\n ctpLpcValue: passenger.ctpLpcValue\r\n };\r\n formattedPassengers.push(formattedPassenger);\r\n });\r\n this._sendMessage(\r\n {\r\n group: this.props.groupRedemptionFormDuck.group,\r\n passengers: formattedPassengers,\r\n tourLeader: this.props.groupRedemptionFormDuck.tourLeader,\r\n collector: this.props.groupRedemptionFormDuck.collector,\r\n signatureUri: this.props.groupRedemptionFormDuck.signatureUri,\r\n submitType: this.state.submitType\r\n },\r\n signalRConstants.DISPLAY_GROUP_COLLECTOR_FORM\r\n );\r\n this.setState({ isSharingScreen: true });\r\n };\r\n\r\n onBack = () => {\r\n const {\r\n groupRedemptionFormDuck: {\r\n group: { refNo }\r\n }\r\n } = this.props;\r\n const { isSubmitted } = this.state;\r\n isSubmitted\r\n ? (window.location = '/dashboard')\r\n : this.props.history.push('/group/group-issuance/' + refNo);\r\n };\r\n\r\n onSignatureEnd = async csoSignatureBase64 => {\r\n let {\r\n groupRedemptionFormDuck: { collector }\r\n } = this.props;\r\n collector = { ...collector, csoSignatureBase64 };\r\n await this.props.updateGroupCollectorDetails(collector);\r\n };\r\n\r\n onSignatureClear = async () => {\r\n let {\r\n groupRedemptionFormDuck: { collector }\r\n } = this.props;\r\n collector = { ...collector, csoSignatureBase64: '' };\r\n await this.props.updateGroupCollectorDetails(collector);\r\n };\r\n\r\n onSubmitTypeChange = e => {\r\n this.setState({ submitType: e.target.value });\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n groupRedemptionFormDuck: {\r\n collector,\r\n groupCollectorSignatureUploadIsLoading,\r\n groupIssueCardIsLoading,\r\n multipleActivateAndIssueCardIsLoading\r\n }\r\n } = this.props;\r\n const { isSharingScreen, clientIsDone, isSubmitted } = this.state;\r\n const isLoading =\r\n groupCollectorSignatureUploadIsLoading ||\r\n groupIssueCardIsLoading ||\r\n multipleActivateAndIssueCardIsLoading;\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n\r\n \r\n \r\n }\r\n label='Tour Leader Acknowledgement'\r\n />\r\n }\r\n label='CSO Acknowledgement'\r\n />\r\n \r\n \r\n\r\n {!isSharingScreen && !clientIsDone && this.state.submitType === 'TOUR_LEADER' && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {collector.clientSignatureBase64 && (\r\n \r\n \r\n \r\n Collector's Signature:\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {isSubmitted\r\n ? 'Back to dashboard'\r\n : 'Back to issuance'}\r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n {isSharingScreen && (\r\n \r\n {!collector.clientIsDone && (\r\n \r\n Waiting for client to\r\n confirm....\r\n \r\n )}\r\n {collector.clientIsDone && (\r\n \r\n Client is done\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n {this.state.multipleActivateAndIssueCardIsLoading && (\r\n \r\n )}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n waiting: { color: green[600], fontSize: '.8rem' }\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const { groupRedemptionFormDuck } = state;\r\n\r\n return { groupRedemptionFormDuck };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n groupIssueCards: ({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment,\r\n redemptionTransactionId,\r\n cardActivationResponse\r\n }) =>\r\n dispatch(\r\n groupIssueCards({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment,\r\n redemptionTransactionId,\r\n cardActivationResponse\r\n })\r\n ),\r\n updateGroupCollectorDetails: collector =>\r\n dispatch(updateGroupCollectorDetails(collector)),\r\n groupCollectorSignatureUpload: (formData, type) =>\r\n dispatch(groupCollectorSignatureUpload(formData, type)),\r\n multipleActivateAndIssueCard: cards =>\r\n dispatch(multipleActivateAndIssueCard(cards)),\r\n createGroupTransactionAndAssignDigitalCards: ({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment\r\n }) =>\r\n dispatch(\r\n createGroupTransactionAndAssignDigitalCards({\r\n tourLeader,\r\n collector,\r\n group,\r\n passengers,\r\n signatureUri,\r\n cardAssignment\r\n })\r\n )\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(GroupCollector));\r\n","import React, {Component} from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {SEARCH_GROUP_PERMISSION, SEARCH_PASSENGER_PERMISSION} from '../constants/permissions'\r\n\r\n/**\r\n * This page exists for routing purpose\r\n */\r\nclass SearchScreen extends Component {\r\n render() {\r\n if (hasPermissions(SEARCH_PASSENGER_PERMISSION)) {\r\n return \r\n }\r\n if (hasPermissions(SEARCH_GROUP_PERMISSION)) {\r\n return \r\n }\r\n return \r\n }\r\n}\r\n\r\nexport default SearchScreen","import React, { Component } from 'react'\r\nimport {\r\n\twithStyles,\r\n\tPaper,\r\n\tTable,\r\n\tTableHead,\r\n\tTableBody,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTableSortLabel,\r\n\tTooltip,\r\n\tDialog,\r\n\tDialogTitle,\r\n\tDialogContent,\r\n\tDialogContentText,\r\n\tDialogActions,\r\n\tButton,\r\n} from '@material-ui/core'\r\nimport { getGroupLabel } from '../../helpers/groupStatusHelper'\r\nimport moment from 'moment'\r\nimport { v4 as uuidv4 } from 'uuid'\r\nimport { requestForReprinting } from '../../ducks/printCardDuck'\r\nimport { connect } from 'react-redux'\r\n\r\nclass SearchResultTable extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\torder: 'asc',\r\n\t\t\torderBy: 'cardNo',\r\n\t\t\treprintDialogOpen: false,\r\n\t\t\treprintCard: null,\r\n\t\t}\r\n\t}\r\n\trenderEticket = (d) => {\r\n\t\tconst { classes } = this.props\r\n\r\n\t\tconst keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t\treturn (\r\n\t\t\t
      \r\n\t\t\t\t{keys.map((e, i) => {\r\n\t\t\t\t\tif (d[e] === '') return
      \r\n\t\t\t\t\treturn
    1. {d[e]}
    2. \r\n\t\t\t\t})}\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n\r\n\tonChangeCardNo = (d, idx) => {\r\n\t\tthis.props.history.push('/search/passenger/' + d.eTicket1 + '/' + idx)\r\n\t}\r\n\r\n\tonView = (d, idx) => {\r\n\t\tthis.props.history.push('/redemption-transaction-detail/' + d.redemptionTransactionId)\r\n\t}\r\n\r\n\tonLinkClick = (type, identifier) => {\r\n\t\tif (type === \"group\"){\r\n\t\t\twindow.open(\"/group/group-detail/\" + identifier)\r\n\t\t} else if (type === \"redemption\"){\r\n window.open(\"/redemption-transaction-detail/\" + identifier)\r\n } else if (type === \"appealTransaction\"){\r\n window.open(\"/appeal-transaction-detail/\" + identifier)\r\n }\r\n\t}\r\n\r\n\t_getGroupStatus = (d) => {\r\n\t\tif (d.redemptionTransactionId) return COLLECTED\r\n\t\tif (d.groupId && d.group && d.group != null) {\r\n\t\t\treturn {getGroupLabel(d.group)}\r\n\t\t}\r\n\t}\r\n\r\n _getAppealTransactionStatus = (d, classes) =>{\r\n\t\tif (!d.appealTransaction) return \"\";\r\n\t\tif (d.appealTransaction.approval){\r\n\t\t\treturn (APPROVED)\r\n\t\t} else if (d.appealTransaction.rejected){\r\n\t\t\treturn (REJECTED)\r\n\t\t} else {\r\n\t\t\treturn (PENDING)\r\n\t\t}\r\n\r\n\t}\r\n\t_getCardNo = (d, classes) => {\r\n\t\tif (d.cardNo) {\r\n\t\t\tif (d.cardNo.startsWith('00004')) {\r\n\t\t\t\treturn \r\n\t\t\t\t\t\t this.handleClickOpen(d.cardNo, d.redemptionTransactionId)}>\r\n\t\t\t\t\t\t\t{d.cardNo}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t} else if (d.cardNo.startsWith('00002')) {\r\n\t\t\t\treturn {d.cardNo}\r\n\t\t\t} else {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdescendingComparator = (a, b, orderBy) => {\r\n\t\tif (b[orderBy] < a[orderBy]) {\r\n\t\t\treturn -1\r\n\t\t}\r\n\t\tif (b[orderBy] > a[orderBy]) {\r\n\t\t\treturn 1\r\n\t\t}\r\n\t\treturn 0\r\n\t}\r\n\r\n\tgetComparator = (order, orderBy) => {\r\n\t\treturn order === 'desc' ? (a, b) => this.descendingComparator(a, b, orderBy) : (a, b) => -this.descendingComparator(a, b, orderBy)\r\n\t}\r\n\r\n\tstableSort(array, comparator) {\r\n\t\tconst stabilizedThis = array.map((el, index) => [el, index])\r\n\t\tstabilizedThis.sort((a, b) => {\r\n\t\t\tconst order = comparator(a[0], b[0])\r\n\t\t\tif (order !== 0) return order\r\n\t\t\treturn a[1] - b[1]\r\n\t\t})\r\n\t\treturn stabilizedThis.map((el) => el[0])\r\n\t}\r\n\r\n\tprintCard = async () => {\r\n\t\tlet url = '/print-card?state=ctp_app';\r\n\t\tconst { reprintCard, reprintTransactionId } = this.state\r\n\r\n\t\tif (reprintTransactionId) {\r\n\t\t\turl = url + '&id=' + reprintTransactionId\r\n\t\t\tthis.setState({ reprintTransactionId: null })\r\n\t\t}\r\n\t\tif (reprintCard) {\r\n\t\t\turl = url + '&cardNo=' + reprintCard.toString()\r\n\t\t\tthis.setState({ reprintCard: null })\r\n\t\t}\r\n\t\twindow.open(window.location.origin + url)\r\n\t}\r\n\r\n\thandleDialogClose = () => {\r\n\t\tthis.setState({ reprintDialogOpen: false })\r\n\t}\r\n\r\n\thandleClickOpen = (card, id) => {\r\n\t\tthis.setState({ reprintDialogOpen: true, reprintCard: card, reprintTransactionId: id })\r\n\t}\r\n\r\n\thandleDialogNo = () => {\r\n\t\tthis.setState({ reprintDialogOpen: false, reprintCard: null, reprintTransactionId: null })\r\n\t}\r\n\r\n\thandleDialogYes = async () => {\r\n\t\tthis.setState({ reprintDialogOpen: false })\r\n\t\tawait this.printCard()\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, data, fields } = this.props\r\n\t\tconst { order, orderBy, reprintDialogOpen } = this.state\r\n\t\tconst textFields = ['firstName', 'lastName', 'genPhysicalVoucherNo', 'lpcPhysicalVoucherNo', 'customField']\r\n\t\tconst handleRequestSort = (event, property) => {\r\n\t\t\tconst isAsc = orderBy !== property || (orderBy === property && order === 'desc')\r\n\t\t\tthis.setState({ order: isAsc ? 'asc' : 'desc', orderBy: property })\r\n\t\t}\r\n\t\tconst visuallyHidden = {\r\n\t\t\tborder: 0,\r\n\t\t\tclip: 'rect(0 0 0 0)',\r\n\t\t\theight: 1,\r\n\t\t\tmargin: -1,\r\n\t\t\toverflow: 'hidden',\r\n\t\t\tpadding: 0,\r\n\t\t\tposition: 'absolute',\r\n\t\t\ttop: 20,\r\n\t\t\twidth: 1,\r\n\t\t}\r\n\t\tfunction EnhancedTableHead(props) {\r\n\t\t\tconst { onRequestSort } = props\r\n\t\t\tconst createSortHandler = (property) => (event) => {\r\n\t\t\t\tonRequestSort(event, property)\r\n\t\t\t}\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{fields.map((headCell) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{headCell.label}\r\n\t\t\t\t\t\t\t\t\t{orderBy === headCell.key ? {order === 'desc' ? 'sorted descending' : 'sorted ascending'} : null}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.stableSort(data, this.getComparator(order, orderBy)).map((d, idx) => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{fields.map((f) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'seq' && {idx + 1}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'pnr' && d.pnr}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{textFields.includes(f.key) && {d[f.key]}}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'cardNo' && this._getCardNo(d, classes)}\r\n\r\n {f.key === 'preloadedVouchersCardNo' && (\r\n \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.handleClickOpen(d[f.key], d.redemptionTransactionId)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{d[f.key]}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n \r\n )}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'eticket' && this.renderEticket(d)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'group.refNo' && d.groupId && d.group && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.onLinkClick('group', d.group.refNo)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{d.group.refNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'redemptionTransactionId' && d.redemptionTransactionId && !d.group && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.onLinkClick('redemption', d.redemptionTransactionId)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{d.redemptionTransaction.refNo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? d.redemptionTransaction.refNo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'M' + moment(d.creationTime).format('YYMM') + '-' + d.redemptionTransactionId}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'status' && this._getGroupStatus(d)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'appealRefNo' && d.appealTransaction && (\r\n this.onLinkClick('appealTransaction', d.appealTransaction.id)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{d.appealTransaction.refNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{f.key === 'appealStatus' && this._getAppealTransactionStatus(d, classes)}\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{'Are you sure you want to reprint this Card?'}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.state.reprintCard ? `CardNo: ${this.state.reprintCard}` : ''}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { printCardDuck } = state\r\n\r\n\treturn { printCardDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn { requestForReprinting: (cards, redemptionTransactionId) => dispatch(requestForReprinting(cards, redemptionTransactionId)) }\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: theme.container,\r\n\teticket: { padding: '0 1rem' },\r\n\tclickable: {\r\n\t\tcursor: 'pointer',\r\n\t\tborderBottom: '1px dotted #ccc',\r\n\t},\r\n\tpretravelClickable: {\r\n\t\tcursor: 'pointer',\r\n\t\tborderBottom: '1px dotted #ccc',\r\n\t\tcolor: 'blue',\r\n\t},\r\n\tpreTravelStat: { color: 'blue' },\r\n})\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(SearchResultTable))\r\n","import React, {Component} from 'react'\r\nimport {withStyles, Toolbar, Button} from '@material-ui/core'\r\nimport CustomNavButton from '../../components/CustomNavButton'\r\n\r\nclass SearchNav extends Component {\r\n render() {\r\n const {classes} = this.props\r\n\r\n const customPassenger = props => \r\n const customGroup = props => \r\n const customIssuanceSummary = props => \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n active: {backgroundColor: theme.palette.action.selected}\r\n})\r\n\r\nexport default withStyles(styles)(SearchNav)","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, TextField, Button, Typography } from '@material-ui/core'\r\nimport { Redirect } from 'react-router-dom'\r\nimport Header from '../containers/Header.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport SearchResultTable from '../containers/search/SearchResultTable'\r\nimport { searchPassengers } from '../ducks/searchDuck'\r\nimport { getRedemptionTransactionAndPassengers } from '../ducks/redemptionTransactionPassengersDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport StyledPlaceholder from '../components/StyledPlaceholder'\r\nimport SearchNav from '../containers/search/SearchNav'\r\nimport { hasPermissions, parseFullCardNoWithPrefix } from '../helpers/utilities'\r\nimport { SEARCH_PASSENGER_PERMISSION } from '../constants/permissions'\r\n\r\nconst FIELDS = [\r\n\t{ key: 'seq', label: 'S/N' },\r\n\t{ key: 'pnr', label: 'Pnr' },\r\n\t{ key: 'firstName', label: 'First Name' },\r\n\t{ key: 'lastName', label: 'Last Name' },\r\n\t{ key: 'customField', label: 'Campaign Code' },\r\n\t{ key: 'eticket', label: 'E-Ticket' },\r\n\t{ key: 'cardNo', label: 'Card No' },\r\n\t{ key: 'preloadedVouchersCardNo', label: 'Preloaded Card No' },\r\n\t{ key: 'genPhysicalVoucherNo', label: 'GEN Voucher No' },\r\n\t{ key: 'lpcPhysicalVoucherNo', label: 'LPC Voucher No' },\r\n\t{ key: 'group.refNo', label: 'Group ref' },\r\n\t{ key: 'redemptionTransactionId', label: 'Redemption' },\r\n\t{ key: 'status', label: 'Status' },\r\n\t{ key: 'appealRefNo', label: 'Pretravel ID' },\r\n\t{ key: 'appealStatus', label: 'Pretravel Status' },\r\n]\r\n\r\nclass SearchPassengerScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tpnr: '',\r\n\t\t\teTicketFilter: '',\r\n\t\t\tfirstName: '',\r\n\t\t\tlastName: '',\r\n\t\t\tcardNoFrom: '',\r\n\t\t\tcardNoTo: '',\r\n\t\t\tpreloadedCardFrom: '',\r\n\t\t\tpreloadedCardTo: '',\r\n\t\t\tvoucherNoFrom: '',\r\n\t\t\tvoucherNoTo: '',\r\n\t\t\tdob: '',\r\n\t\t\tfirstFltDepDate: '',\r\n\t\t\tcollectionDate: '',\r\n\t\t\tcustomField: '',\r\n\t\t\ttl: '',\r\n\t\t\ttc: '',\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\thasSearched: false,\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Search Passenger`\r\n\t}\r\n\r\n\tonSearchFieldsChange = (k, e) => {\r\n\t\tif (k === 'cardNoFrom' || k === 'cardNoTo') this.setState({ [k]: parseFullCardNoWithPrefix(e.target.value) })\r\n\t\telse this.setState({ [k]: e.target.value })\r\n\t}\r\n\r\n\tonPhysicalVoucherFieldsChange = (k, e) => {\r\n\t\tlet numericValue = e.target.value.replace(/\\D/g, '')\r\n\t\tthis.setState({ [k]: numericValue })\r\n\t}\r\n\r\n\t_validateCardNo = (cardNo) => {\r\n\t\tif (cardNo && (cardNo.length !== 19 || /[^0-9]/g.test(cardNo))) {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: `Card no: ${cardNo} should be 19 digits` })\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\t_validate = () => {\r\n\t\tconst { pnr, firstName, lastName, firstFltDepDate, collectionDate, cardNoFrom, cardNoTo, preloadedCardFrom, preloadedCardTo } = this.state\r\n\t\t// if (firstFltDepDate !== '' || collectionDate !== '') {\r\n\t\t// \tif (lastName === '' && firstName === '') {\r\n\t\t// \t\tthis.setState({\r\n\t\t// \t\t\tshowSnackbar: true,\r\n\t\t// \t\t\tsnackbarVariant: 'error',\r\n\t\t// \t\t\tsnackbarMessage: 'Last Name/First name is required for Departure and/or Collection date filter',\r\n\t\t// \t\t})\r\n\t\t// \t\treturn false\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n\t\tif (!this._validateCardNo(cardNoFrom)) return false\r\n\t\tif (!this._validateCardNo(cardNoTo)) return false\r\n\t\tif (!this._validateCardNo(preloadedCardFrom)) return false\r\n\t\tif (!this._validateCardNo(preloadedCardTo)) return false\r\n\t\treturn true\r\n\t}\r\n\r\n\tonSubmit = async () => {\r\n\t\tif (!this._validate()) return\r\n\r\n\t\tconst fields = [\r\n\t\t\t'pnr',\r\n\t\t\t'eTicketFilter',\r\n\t\t\t'firstName',\r\n\t\t\t'lastName',\r\n\t\t\t'cardNoFrom',\r\n\t\t\t'cardNoTo',\r\n\t\t\t'preloadedCardFrom',\r\n\t\t\t'preloadedCardTo',\r\n\t\t\t'voucherNoFrom',\r\n\t\t\t'voucherNoTo',\r\n\t\t\t'dob',\r\n\t\t\t'firstFltDepDate',\r\n\t\t\t'collectionDate'\r\n\t\t]\r\n\r\n\t\tlet data = {}\r\n\t\tlet hasFilter = false\r\n\t\tfields.forEach((f) => {\r\n\t\t\tif (this.state[f] !== '') {\r\n\t\t\t\tdata[f] = this.state[f]\r\n\t\t\t\thasFilter = true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// customField needs to be combined with at least 1 other field to search\r\n\t\tdata.customField = this.state.customField\r\n\r\n\t\tif (hasFilter) {\r\n\t\t\tconst rs = await this.props.searchPassengers(data)\r\n\t\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\tthis.setState({ hasSearched: true })\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tsearchDuck: { passengers, searchPassengersIsLoading },\r\n\t\t} = this.props\r\n\t\tconst {\r\n\t\t\teTicketFilter,\r\n\t\t\tpnr,\r\n\t\t\tfirstName,\r\n\t\t\tlastName,\r\n\t\t\tcardNoFrom,\r\n\t\t\tcardNoTo,\r\n\t\t\tpreloadedCardFrom,\r\n\t\t\tpreloadedCardTo,\r\n\t\t\tvoucherNoFrom,\r\n\t\t\tvoucherNoTo,\r\n\t\t\tdob,\r\n\t\t\tfirstFltDepDate,\r\n\t\t\tcollectionDate,\r\n\t\t\tcustomField,\r\n\t\t\thasSearched,\r\n\t\t} = this.state\r\n\r\n\t\tif (!hasPermissions(SEARCH_PASSENGER_PERMISSION)) {\r\n\t\t\treturn \r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPNR\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('pnr', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tE-ticket number\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('eTicketFilter', e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tFirst Name\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('firstName', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tLast Name\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('lastName', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCard No\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('cardNoFrom', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tto\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('cardNoTo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPreloaded Card No\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('preloadedCardFrom', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tto\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('preloadedCardTo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPhysical Voucher\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalVoucherFieldsChange('voucherNoFrom', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tto\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onPhysicalVoucherFieldsChange('voucherNoTo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tDate Of Birth\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('dob', e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tDeparture date\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('firstFltDepDate', e)}\r\n\t\t\t\t\t\t\t\t\t\tInputLabelProps={{ shrink: true }}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCollection date\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('collectionDate', e)}\r\n\t\t\t\t\t\t\t\t\t\tInputLabelProps={{ shrink: true }}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCampaign Code\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('customField', e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* Tour Leader*/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* this.onSearchFieldsChange('tl', e)}/>*/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* Tour Company*/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/* this.onSearchFieldsChange('tc', e)}/>*/}\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{hasSearched && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{passengers.length > 0 && }\r\n\r\n\t\t\t\t\t\t\t{passengers.length < 1 && }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: theme.container,\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { searchDuck, redemptionTransactionPassengersDuck } = state\r\n\r\n\treturn { searchDuck, redemptionTransactionPassengersDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tsearchPassengers: (data) => dispatch(searchPassengers(data)),\r\n\t\tgetRedemptionTransactionAndPassengers: (data) => dispatch(getRedemptionTransactionAndPassengers(data)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(SearchPassengerScreen))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Table, TableBody, TableCell, TableHead, TableRow, TextField, Grid, Button, Typography } from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport { REQUIRED_ERROR_MSG } from '../constants/messages'\r\nimport { passengerCardReplacement, getAllRewardsByCardNo } from '../ducks/passengerDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { toHumanFriendlyDate, toHumanFriendlyDateTime } from '../helpers/utilities'\r\nimport { CR_CARD_PREFIX } from '../constants/cardConstants'\r\nconst cardReplacementInitState = {\r\n\toldCardNo: '',\r\n\toldCardNoError: '',\r\n\tnewCardNo: '',\r\n\tnewCardNoError: '',\r\n\treason: '',\r\n\treasonError: '',\r\n\tonApproverAuthenticating: false,\r\n\tapproverId: '',\r\n\tapproverIdError: '',\r\n\tapproverPassword: '',\r\n\tapproverPasswordError: ''\r\n}\r\n\r\nclass CardReplacementScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\r\n\t\tthis.state = {\r\n\t\t\tcardNo: '',\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\t...cardReplacementInitState\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tdocument.title = `${TITLE_PREFIX} Card Replacement`\r\n\t}\r\n\r\n\tonFieldChange = (key, e) => {\r\n\t\tthis.setState({ [key]: e.target.value })\r\n\t}\r\n\r\n\tonSubmit = () => {\r\n\t\tif (this.validate(['oldCardNo', 'newCardNo', 'reason'])) {\r\n\t\t\tconst { oldCardNo, newCardNo } = this.state\r\n\t\t\tif (oldCardNo.startsWith(CR_CARD_PREFIX) || newCardNo.startsWith(CR_CARD_PREFIX))\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'This operation cannot be done with CR Card', ...cardReplacementInitState })\r\n\t\t\telse this.setState({ onApproverAuthenticating: true })\r\n\t\t}\r\n\t}\r\n\r\n\tapproverOnSubmit = async () => {\r\n\t\tawait this._cardReplacement()\r\n\t}\r\n\r\n\tapproverOnCancel = () => {\r\n\t\tthis.setState({ onApproverAuthenticating: false })\r\n\t}\r\n\r\n\t_cardReplacement = async () => {\r\n\t\tconst { oldCardNo, newCardNo, reason, approverId, approverPassword } = this.state\r\n\t\tconst data = { oldCardNo, newCardNo, reason, approverId, approverPassword }\r\n\t\tconst rs = await this.props.passengerCardReplacement(data)\r\n\t\trs.success\r\n\t\t\t? this.setState({ showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Card replaced', ...cardReplacementInitState })\r\n\t\t\t: this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message, ...cardReplacementInitState })\r\n\t}\r\n\r\n\tonListRewards = async () => {\r\n\t\tconst { cardNo } = this.state\r\n\t\tif (await this.props.getAllRewardsByCardNo(cardNo)) {\r\n\t\t\tthis.setState({ oldCardNo: cardNo })\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate(required) {\r\n\t\tlet rs = true\r\n\t\tfor (const k of required) {\r\n\t\t\tconst errorKey = k + 'Error'\r\n\t\t\tif (this.state[k] === '') {\r\n\t\t\t\tthis.setState({ [errorKey]: REQUIRED_ERROR_MSG })\r\n\t\t\t\trs = false\r\n\t\t\t} else {\r\n\t\t\t\tthis.setState({ [errorKey]: '' })\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn rs\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tpassengerDuck: { passengerCardReplacementIsLoading, getAllRewardsByCardNoIsFetching, rewardsByCardNo }\r\n\t\t} = this.props\r\n\t\tconst {\r\n\t\t\tcardNo,\r\n\t\t\toldCardNo,\r\n\t\t\toldCardNoError,\r\n\t\t\tnewCardNo,\r\n\t\t\tnewCardNoError,\r\n\t\t\treason,\r\n\t\t\treasonError,\r\n\t\t\tonApproverAuthenticating,\r\n\t\t\tapproverId,\r\n\t\t\tapproverIdError,\r\n\t\t\tapproverPassword,\r\n\t\t\tapproverPasswordError\r\n\t\t} = this.state\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCard no:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onFieldChange('cardNo', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{rewardsByCardNo && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{rewardsByCardNo.length === 0 && Card not found!}\r\n\t\t\t\t\t\t\t\t\t{rewardsByCardNo.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tNo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tVoucher Name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tVoucher Value\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tIssued Date\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tExpiry Date\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tRedeemed/Voided On\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tRedeemed Outlet Name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tVoucher Status\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{rewardsByCardNo.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trewardsByCardNo.map((r, i) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {i + 1}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {r.voucherTypeName}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {r.typeValue ? `SGD ${r.typeValue.toFixed(2)}` : 'N/A'}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {toHumanFriendlyDate(r.voucherIssuedOn)}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {toHumanFriendlyDate(r.validTo)}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {toHumanFriendlyDateTime(r.voucherUsedOn)}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {r.redeemedOutletName}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    {r.voucherStatus}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{!onApproverAuthenticating && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tOld card no:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.onFieldChange('oldCardNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\terror={!!oldCardNoError}\r\n\t\t\t\t\t\t\t\t\t\t\thelperText={oldCardNoError}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tNew card no:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.onFieldChange('newCardNo', e)}\r\n\t\t\t\t\t\t\t\t\t\t\terror={!!newCardNoError}\r\n\t\t\t\t\t\t\t\t\t\t\thelperText={newCardNoError}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tReason\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.onFieldChange('reason', e)}\r\n\t\t\t\t\t\t\t\t\t\t\terror={!!reasonError}\r\n\t\t\t\t\t\t\t\t\t\t\thelperText={reasonError}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{onApproverAuthenticating && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tOld Card No\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{oldCardNo}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tNew Card No\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{newCardNo}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tReason\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{reason}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tID\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.onFieldChange('approverId', e)}\r\n\t\t\t\t\t\t\t\t\t\t\terror={!!approverIdError}\r\n\t\t\t\t\t\t\t\t\t\t\thelperText={approverIdError}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tPassword\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.onFieldChange('approverPassword', e)}\r\n\t\t\t\t\t\t\t\t\t\t\terror={!!approverPasswordError}\r\n\t\t\t\t\t\t\t\t\t\t\thelperText={approverPasswordError}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: theme.container\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n\tconst { passengerDuck } = state\r\n\r\n\treturn { passengerDuck }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tpassengerCardReplacement: data => dispatch(passengerCardReplacement(data)),\r\n\t\tgetAllRewardsByCardNo: cardNo => dispatch(getAllRewardsByCardNo(cardNo))\r\n\t}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(CardReplacementScreen))\r\n","import React from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {Grid} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport GroupHeader from '../containers/group/GroupHeader.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport {hasVoucherTransferPermission} from '../helpers/utilities'\r\n\r\n/**\r\n * This page exists for routing purpose\r\n */\r\nclass Card extends React.Component {\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Card`\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n\r\n
    \r\n {hasVoucherTransferPermission() && }\r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default Card","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n withStyles,\r\n Button,\r\n TextField,\r\n Typography,\r\n Grid,\r\n Paper\r\n} from '@material-ui/core';\r\nimport { ExitToApp } from '@material-ui/icons';\r\nimport {\r\n login,\r\n authSendOtp,\r\n authAuthenticateWithOtp,\r\n authSendEmailOtp,\r\n authAuthenticateWithEmailOtp\r\n} from '../ducks/authDuck';\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix';\r\nimport MySnackbarContent from '../components/MySnackbarContent';\r\nimport LoadingContainer from '../containers/loadingContainer';\r\nimport { maskContactNo } from '../helpers/utilities';\r\nimport Logo from '../components/Logo';\r\nimport { getSettings } from '../config/config.js';\r\n\r\nclass LoginScreen2 extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n usernameOrEmailAddress: '',\r\n usernameOrEmailAddressError: '',\r\n password: '',\r\n passwordError: '',\r\n verifyOtpScreen: false,\r\n verifyEmailOtpScreen: false,\r\n otp: '',\r\n otpError: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: '',\r\n otpResendAttempts: 0,\r\n otpResendDisabled: false,\r\n otpSubmitAttempt: 0\r\n };\r\n\r\n const settings = getSettings();\r\n const script = document.createElement('script');\r\n script.src = `https://www.google.com/recaptcha/api.js?render=${\r\n settings.reCaptchaSiteKey\r\n }`;\r\n\r\n document.body.appendChild(script);\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Login`;\r\n\r\n const accessToken = localStorage.getItem('accessToken');\r\n if (accessToken) {\r\n this.props.history.push('/dashboard');\r\n }\r\n }\r\n\r\n componentDidUpdate(prevState) {\r\n if (prevState.otpResendAttempts !== this.state.otpResendAttempts) {\r\n if (this.state.otpResendAttempts > 1) {\r\n this.setState({ otpResendDisabled: true });\r\n }\r\n }\r\n }\r\n\r\n onTextFieldChange = name => e => {\r\n const errorKey = name + 'Error';\r\n this.setState({ [name]: e.target.value, [errorKey]: '' });\r\n };\r\n\r\n // onKeyPress = e => {\r\n // \tif (e.key === 'Enter') this.onSubmit()\r\n // }\r\n\r\n validate() {\r\n if (this.state.usernameOrEmailAddress === '')\r\n this.setState({\r\n usernameOrEmailAddressError: 'This field is required'\r\n });\r\n if (this.state.password === '')\r\n this.setState({ passwordError: 'This field is required' });\r\n return !(\r\n this.state.usernameOrEmailAddress === '' ||\r\n this.state.password === ''\r\n );\r\n }\r\n\r\n genReCaptchaToken = () => {\r\n const settings = getSettings();\r\n\r\n return window.grecaptcha.execute(settings.reCaptchaSiteKey, {\r\n action: 'login'\r\n });\r\n };\r\n\r\n onSubmit = async () => {\r\n this.setState({ showSnackbar: false });\r\n if (!this.validate()) return;\r\n\r\n if (!this.props.isLoggedIn) {\r\n const { usernameOrEmailAddress, password } = this.state;\r\n const captchaToken = await this.genReCaptchaToken();\r\n const data = { usernameOrEmailAddress, password, captchaToken };\r\n const rs = await this.props.authSendOtp(data);\r\n rs.success\r\n ? this.setState({ verifyOtpScreen: true })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n } else {\r\n this.props.history.push('/dashboard');\r\n }\r\n };\r\n\r\n onSubmitEmail = async () => {\r\n this.setState({ showSnackbar: false });\r\n if (!this.validate()) return;\r\n\r\n if (!this.props.isLoggedIn) {\r\n const { usernameOrEmailAddress, password } = this.state;\r\n const captchaToken = await this.genReCaptchaToken();\r\n const data = { usernameOrEmailAddress, password, captchaToken };\r\n const rs = await this.props.authSendEmailOtp(data);\r\n this.genReCaptchaToken();\r\n rs.success\r\n ? this.setState({ verifyEmailOtpScreen: true })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n } else {\r\n this.props.history.push('/dashboard');\r\n }\r\n };\r\n\r\n onResend = async () => {\r\n this.setState({ otpSubmitAttempt: 0 });\r\n\r\n const captchaToken = await this.genReCaptchaToken();\r\n const { usernameOrEmailAddress, password } = this.state;\r\n const data = { usernameOrEmailAddress, password, captchaToken };\r\n const rs = await this.props.authSendOtp(data);\r\n rs.success\r\n ? this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'OTP sent',\r\n otpResendAttempts: this.state.otpResendAttempts + 1\r\n })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n otpResendAttempts: this.state.otpResendAttempts + 1\r\n });\r\n };\r\n\r\n onResendEmailOtp = async () => {\r\n this.setState({ otpSubmitAttempt: 0 });\r\n\r\n const { usernameOrEmailAddress, password } = this.state;\r\n const captchaToken = await this.genReCaptchaToken();\r\n const data = { usernameOrEmailAddress, password, captchaToken };\r\n const rs = await this.props.authSendEmailOtp(data);\r\n rs.success\r\n ? this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'OTP sent',\r\n otpResendAttempts: this.state.otpResendAttempts + 1\r\n })\r\n : this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n otpResendAttempts: this.state.otpResendAttempts + 1\r\n });\r\n };\r\n\r\n onResendEmailOtpFromSMS = async () => {\r\n await this.onResendEmailOtp();\r\n this.setState({ verifyOtpScreen: false, verifyEmailOtpScreen: true });\r\n };\r\n\r\n clearErrorMessage = () => {\r\n this.setState({ showSnackbar: false });\r\n };\r\n\r\n onSubmitOtp = async e => {\r\n if (e) e.preventDefault();\r\n\r\n const { usernameOrEmailAddress, password, otp } = this.state;\r\n\r\n if (otp === '') {\r\n this.setState({ otpError: 'This field is required' });\r\n return;\r\n } else {\r\n this.setState({ otpError: '' });\r\n }\r\n\r\n const { uid } = this.props;\r\n const data = { usernameOrEmailAddress, password, otp, uid };\r\n const rs = await this.props.authAuthenticateWithOtp(data);\r\n\r\n if (rs.success) {\r\n const { shouldChangePassword } = this.props;\r\n\r\n shouldChangePassword\r\n ? this.props.history.push('/change-password')\r\n : this.props.history.push('/dashboard');\r\n } else {\r\n this.setState({\r\n otpSubmitAttempt: this.state.otpSubmitAttempt + 1\r\n });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n }\r\n };\r\n\r\n onSubmitEmailOtp = async e => {\r\n if (e) e.preventDefault();\r\n\r\n const { usernameOrEmailAddress, password, otp } = this.state;\r\n\r\n if (otp === '') {\r\n this.setState({ otpError: 'This field is required' });\r\n return;\r\n } else {\r\n this.setState({ otpError: '' });\r\n }\r\n\r\n const data = { usernameOrEmailAddress, password, otp };\r\n const rs = await this.props.authAuthenticateWithEmailOtp(data);\r\n\r\n if (rs.success) {\r\n const { shouldChangePassword } = this.props;\r\n\r\n shouldChangePassword\r\n ? this.props.history.push('/change-password')\r\n : this.props.history.push('/dashboard');\r\n } else {\r\n this.setState({\r\n otpSubmitAttempt: this.state.otpSubmitAttempt + 1\r\n });\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n classes,\r\n isLoggingIn,\r\n authSendOtpIsLoading,\r\n authAuthenticateWithOtpIsLoading,\r\n contactNo\r\n } = this.props;\r\n const {\r\n verifyOtpScreen,\r\n verifyEmailOtpScreen,\r\n otp,\r\n snackbarVariant,\r\n snackbarMessage,\r\n otpError,\r\n usernameOrEmailAddress\r\n } = this.state;\r\n const isLoading =\r\n isLoggingIn ||\r\n authSendOtpIsLoading ||\r\n authAuthenticateWithOtpIsLoading;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n {!verifyOtpScreen && !verifyEmailOtpScreen && (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {this.state.showSnackbar && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n Forgot password\r\n \r\n \r\n \r\n\r\n \r\n \r\n Get your OTP via one of the\r\n following options\r\n \r\n \r\n\r\n \r\n \r\n \r\n Mobile\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {verifyOtpScreen && (\r\n \r\n \r\n \r\n \r\n Please enter the OTP code sent to{' '}\r\n {maskContactNo(contactNo)}\r\n \r\n \r\n \r\n \r\n \r\n {this.state.showSnackbar && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Resend OTP via Email\r\n \r\n \r\n \r\n \r\n Resend OTP\r\n \r\n \r\n \r\n 2\r\n }\r\n >\r\n Submit\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {verifyEmailOtpScreen && (\r\n \r\n \r\n \r\n \r\n Please enter the OTP code sent to{' '}\r\n {maskContactNo(\r\n usernameOrEmailAddress\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {this.state.showSnackbar && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Resend OTP\r\n \r\n \r\n \r\n 2\r\n }\r\n >\r\n Submit\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {isLoading && }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {\r\n authDuck: {\r\n isLoggedIn,\r\n loginFailedReason,\r\n isLoggingIn,\r\n uid,\r\n authSendOtpIsLoading,\r\n authAuthenticateWithOtpIsLoading,\r\n contactNo,\r\n shouldChangePassword\r\n }\r\n } = state;\r\n\r\n return {\r\n isLoggedIn,\r\n loginFailedReason,\r\n isLoggingIn,\r\n uid,\r\n authSendOtpIsLoading,\r\n authAuthenticateWithOtpIsLoading,\r\n contactNo,\r\n shouldChangePassword\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n login: (username, password) => dispatch(login(username, password)),\r\n authSendOtp: (username, password) =>\r\n dispatch(authSendOtp(username, password)),\r\n authAuthenticateWithOtp: (username, password, otp, uid) =>\r\n dispatch(authAuthenticateWithOtp(username, password, otp, uid)),\r\n authSendEmailOtp: (username, password) =>\r\n dispatch(authSendEmailOtp(username, password)),\r\n authAuthenticateWithEmailOtp: (username, password) =>\r\n dispatch(authAuthenticateWithEmailOtp(username, password))\r\n };\r\n};\r\n\r\nconst styles = {\r\n loginContainer: { width: '100%', height: '100vh' },\r\n loginWrapper: {\r\n width: '30rem',\r\n height: '30rem',\r\n textAlign: 'center',\r\n margin: 'auto'\r\n },\r\n logoWrap: { padding: '1rem' },\r\n paper: { padding: '2rem', position: 'relative' }\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(LoginScreen2));\r\n","import React, {Component} from 'react'\r\nimport {withStyles, Paper, Table, TableRow, TableHead, TableBody, TableCell} from '@material-ui/core'\r\nimport {lime} from '@material-ui/core/colors'\r\nimport { convertSqStatusForDisplay } from '../../helpers/eticketStatusHelper'\r\n\r\nconst FIELDS = [\r\n {key: 'seq', label: 'S/N'},\r\n {key: 'firstName', label: 'First name'},\r\n {key: 'lastName', label: 'Last name'},\r\n {key: 'pnr', label: 'Pnr'},\r\n {key: 'customField', label: 'Campaign Code'},\r\n {key: 'eticket', label: 'E-Ticket'},\r\n {key: 'cardNo', label: 'Card No'},\r\n {key: 'ctpEligibility', label: 'CTP Eligibility'},\r\n {key: 'etVerified', label: 'Verified ET'},\r\n {key: 'voucherNo', label: 'Voucher No'},\r\n {key: 'genPhysicalVoucherNo', label: 'GEN Voucher No'},\r\n {key: 'lpcPhysicalVoucherNo', label: 'LPC Voucher No'},\r\n {key: 'voucherValue', label: 'Voucher Value'}\r\n]\r\n\r\nclass RedemptionPassengersTable extends Component {\r\n\r\n _renderEticket = d => {\r\n const keys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n return
      \r\n {keys.map(k => {\r\n if (d[k] !== '') return
    1. {d[k]}
    2. \r\n else return
      \r\n })}\r\n
    \r\n }\r\n\r\n render() {\r\n const {classes, data, currentIdx} = this.props\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n {FIELDS.map(f => {\r\n return {f.label}\r\n })}\r\n \r\n \r\n\r\n \r\n {data.map((d, ridx) => {\r\n return \r\n {FIELDS.map(f => {\r\n return \r\n {f.key === 'seq' && ridx + 1}\r\n\r\n {f.key === 'firstName' &&\r\n this.props.onNameClick(ridx, d)}>{d.firstName}}\r\n\r\n {f.key === 'lastName' &&\r\n this.props.onNameClick(ridx, d)}>{d.lastName}}\r\n\r\n {f.key === 'pnr' &&

    {d.pnr}

    }\r\n\r\n {f.key === 'customField' &&

    {d.customField}

    }\r\n\r\n {f.key === 'eticket' && this._renderEticket(d)}\r\n\r\n {f.key === 'cardNo' &&

    {d.cardNo}

    }\r\n\r\n {f.key === 'ctpEligibility' &&

    {convertSqStatusForDisplay(d.ctpEligibility)}

    }\r\n\r\n {f.key === 'etVerified' &&

    {d.etVerified}

    }\r\n\r\n {f.key === 'voucherNo' &&

    {d.vouchers && d.vouchers.length && d.vouchers[0].voucherNo}

    }\r\n\r\n {f.key === 'genPhysicalVoucherNo' &&

    {d.genPhysicalVoucherNo}

    }\r\n\r\n {f.key === 'lpcPhysicalVoucherNo' &&

    {d.lpcPhysicalVoucherNo}

    }\r\n\r\n {f.key === 'voucherValue' &&

    {d.voucherValue}

    }\r\n\r\n
    \r\n })}\r\n
    \r\n })}\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container},\r\n name: {cursor: 'pointer', borderBottom: '1px dotted #ccc'},\r\n editing: {backgroundColor: lime[50]}\r\n})\r\n\r\nexport default withStyles(styles)(RedemptionPassengersTable)","import React, { Component } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles, Paper, List, ListItem, ListItemText, ListItemSecondaryAction } from '@material-ui/core'\r\nimport StyledDeleteBtn from '../components/StyledDeleteBtn'\r\nimport StyledUndoBtn from '../components/StyledUndoBtn'\r\n\r\nclass StyledAttachmentList extends Component {\r\n\trender() {\r\n\t\tconsole.log(this.props);\r\n\t\tconst { classes, attachmentUris, presignedAttachmentUris, deletedOriginalAttachmentIdx, viewOnly } = this.props\r\n\t\tconst deletable = deletedOriginalAttachmentIdx && this.props.onDeleteOrigAttachment && this.props.onUndoDeleteOrigAttachment\r\n\t\tif (!deletable) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{presignedAttachmentUris.map((alink, i) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{i + 1}.\r\n\t\t\t\t\t\t\t\t this.props.onAttachmentClick(alink)} classes={{ root: classes.listItemText }} className={classes.pointer}>\r\n\t\t\t\t\t\t\t\t\t{attachmentUris[i]}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{presignedAttachmentUris.map((alink, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{i + 1}.\r\n\t\t\t\t\t\t\t this.props.onAttachmentClick(alink)} classes={{ root: classes.listItemText }} className={classes.pointer}>\r\n\t\t\t\t\t\t\t\t{attachmentUris[i]}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.props.onDeleteOrigAttachment && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!deletedOriginalAttachmentIdx.has(i) && this.props.onDeleteOrigAttachment(i)} disabled={viewOnly} />}\r\n\t\t\t\t\t\t\t\t\t{deletedOriginalAttachmentIdx.has(i) && this.props.onUndoDeleteOrigAttachment(i)} disabled={viewOnly} />}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nStyledAttachmentList.propsTypes = {\r\n\tattachmentUris: PropTypes.array.isRequired,\r\n\tonAttachmentClick: PropTypes.func.isRequired,\r\n\tonUndoDeleteOrigAttachment: PropTypes.func.isRequired,\r\n\tdeletedOriginalAttachmentIdx: PropTypes.func.isRequired\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: { ...theme.container },\r\n\tlistItemText: { flex: 'none' },\r\n\tpointer: { cursor: 'pointer' },\r\n\tmarkedDelete: { ...theme.deletedBackground }\r\n})\r\n\r\nexport default withStyles(styles)(StyledAttachmentList)\r\n","import React, {Component} from 'react'\r\nimport {\r\n withStyles,\r\n Grid,\r\n TextField,\r\n Divider, Typography, RadioGroup, FormControlLabel, Radio\r\n} from '@material-ui/core'\r\nimport PropTypes from 'prop-types'\r\nimport {toBrowserFriendlyDate} from \"../../helpers/utilities\";\r\nimport StyledAttachmentList from \"../../components/StyledAttachmentList\";\r\nimport GeneralDropzone from \"../../components/generalForm/GeneralDropzone\";\r\nimport {RemoveCircle} from \"@material-ui/icons\";\r\n\r\nconst DEFAULT_SECTOR = {\r\n flightno: '',\r\n origin: '',\r\n departureDate: '',\r\n destination: '',\r\n remarks: ''\r\n}\r\n\r\nclass PassengerDetails extends Component {\r\n\r\n onFieldChange = (sect, k, e) => {\r\n this.props.onFieldChange(sect, k, e)\r\n }\r\n\r\n onAttachmentClick = (url) => {\r\n window.open(url)\r\n }\r\n\r\n render() {\r\n const {classes, viewOnly, passenger, files, deletedOriginalAttachmentIdx, isShowing} = this.props;\r\n let sector1 = DEFAULT_SECTOR;\r\n let sector2 = DEFAULT_SECTOR;\r\n let sector3 = DEFAULT_SECTOR;\r\n let sector4 = DEFAULT_SECTOR;\r\n if (passenger.eTicket.length > 0) {\r\n sector1 = passenger.eTicket[0].sector.find(s => s.sectorNo === 1);\r\n sector2 = passenger.eTicket[0].sector.find(s => s.sectorNo === 2)\r\n sector3 = passenger.eTicket[0].sector.find(s => s.sectorNo === 3);\r\n sector4 = passenger.eTicket[0].sector.find(s => s.sectorNo === 4)\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n First/Given Name*\r\n \r\n \r\n this.onFieldChange('', 'firstName', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Last/Surname*\r\n \r\n \r\n this.onFieldChange('', 'lastName', e)}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Date of birth*\r\n \r\n \r\n this.onFieldChange('', 'dob', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Pnr\r\n \r\n \r\n this.onFieldChange('', 'pnr', e)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Remarks\r\n \r\n \r\n this.onFieldChange('', 'remarks', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Campaign Code\r\n \r\n \r\n this.onFieldChange('', 'customField', e)}\r\n />\r\n \r\n \r\n {passenger.attachmentURIs && passenger.attachmentURIs.length > 0 && (\r\n \r\n \r\n \r\n Attachments\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Sector 1\r\n \r\n \r\n \r\n Flight No*\r\n \r\n \r\n this.onFieldChange('sector1', 'flightNo', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Point of Origin\r\n \r\n \r\n this.onFieldChange('sector1', 'origin', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Departing Date*\r\n \r\n \r\n this.onFieldChange('sector1', 'departureDate', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Destination*\r\n \r\n \r\n this.onFieldChange('sector1', 'destination', e)}\r\n />\r\n \r\n \r\n {!isShowing && (\r\n \r\n Remark\r\n \r\n \r\n this.onFieldChange('sector1', 'remarks', e)}\r\n />\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n Sector 2\r\n \r\n \r\n \r\n Flight No*\r\n \r\n \r\n this.onFieldChange('sector2', 'secondFltNo', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Point of Origin\r\n \r\n \r\n this.onFieldChange('sector2', 'origin', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Departing Date*\r\n \r\n \r\n this.onFieldChange('sector2', 'departureDate', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Destination*\r\n \r\n \r\n this.onFieldChange('sector2', 'destination', e)}\r\n />\r\n \r\n \r\n {!isShowing &&(\r\n \r\n Land/Sea/Scoot\r\n \r\n \r\n this.onFieldChange('sector2', 'transportMean', e)}>\r\n } label={'NA'} />\r\n } label={'Sea'} />\r\n } label={'Land'} />\r\n } label={'Scoot'} />\r\n \r\n \r\n )}\r\n\r\n {sector2.transportMean !== 'na' && !isShowing && (\r\n \r\n \r\n Land/Sea/Scoot Remarks\r\n \r\n \r\n this.onFieldChange('sector2', 'remarks', e)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {sector2.transportMean !== 'na' && !isShowing &&(\r\n \r\n \r\n Land/Sea/Scoot booking ref\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {sector2.transportMean !== 'na' && !isShowing &&(\r\n \r\n \r\n {' '}\r\n \r\n \r\n
      \r\n {files.map((f, i) => (\r\n
    1. \r\n \r\n {f.name}\r\n \r\n this.onRemoveCircleClick(f, i)}\r\n />\r\n \r\n \r\n
    2. \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {sector2.transportMean !== 'na' && sector2.attachmentUris && sector2.attachmentUris.length > 0 && !isShowing &&(\r\n \r\n \r\n \r\n )}\r\n
    \r\n {/* ===================================================================================== */}\r\n {isShowing && (\r\n \r\n Sector 3\r\n \r\n \r\n \r\n Flight No\r\n \r\n \r\n this.onFieldChange('sector3', 'flightNo', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Point of Origin\r\n \r\n \r\n this.onFieldChange('sector3', 'origin', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Departing Date\r\n \r\n \r\n this.onFieldChange('sector3', 'departureDate', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Destination\r\n \r\n \r\n this.onFieldChange('sector3', 'destination', e)}\r\n />\r\n \r\n \r\n {!isShowing && (\r\n \r\n Remark\r\n \r\n \r\n this.onFieldChange('sector3', 'remarks', e)}\r\n />\r\n \r\n )}\r\n )}\r\n\r\n {/* ================================================================================== */}\r\n {isShowing && (\r\n \r\n Sector 4\r\n \r\n \r\n \r\n Flight No\r\n \r\n \r\n this.onFieldChange('sector2', 'secondFltNo', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Point of Origin\r\n \r\n \r\n this.onFieldChange('sector4', 'origin', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Departing Date\r\n \r\n \r\n this.onFieldChange('sector4', 'departureDate', e)}\r\n />\r\n \r\n \r\n \r\n \r\n Destination\r\n \r\n \r\n this.onFieldChange('sector4', 'destination', e)}\r\n />\r\n \r\n \r\n {!isShowing && (\r\n \r\n Land/Sea/Scoot\r\n \r\n \r\n this.onFieldChange('sector4', 'transportMean', e)}>\r\n } label={'NA'} />\r\n } label={'Sea'} />\r\n } label={'Land'} />\r\n } label={'Scoot'} />\r\n \r\n \r\n )}\r\n\r\n {sector4 !== null && sector4 !== undefined && sector4.transportMean !== 'na' && !isShowing &&(\r\n \r\n \r\n Land/Sea/Scoot Remarks\r\n \r\n \r\n this.onFieldChange('sector4', 'remarks', e)}\r\n />\r\n \r\n \r\n )}\r\n\r\n {sector4 !== null && sector4 !== undefined && sector4.transportMean !== 'na' && !isShowing &&(\r\n \r\n \r\n Land/Sea/Scoot booking ref\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {sector4 !== null && sector4 !== undefined && sector4.transportMean !== 'na' && !isShowing &&(\r\n \r\n \r\n {' '}\r\n \r\n \r\n
      \r\n {files.map((f, i) => (\r\n
    1. \r\n \r\n {f.name}\r\n \r\n this.onRemoveCircleClick(f, i)}\r\n />\r\n \r\n \r\n
    2. \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {sector4 !== null && sector4 !== undefined && sector4.transportMean !== 'na' && sector4.attachmentUris && sector4.attachmentUris.length > 0 && !isShowing &&(\r\n \r\n \r\n \r\n )}\r\n
    )}\r\n\r\n\r\n {/* ======================================================================================== */}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n pointer: { cursor: 'pointer' }\r\n});\r\n\r\n\r\nPassengerDetails.propTypes = {\r\n viewOnly: PropTypes.bool.isRequired,\r\n passenger: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired,\r\n deletedOriginalAttachmentIdx: PropTypes.number.isRequired,\r\n onFieldChange: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(PassengerDetails)","import React, {Component} from 'react'\r\nimport {\r\n withStyles,\r\n Grid,\r\n TextField,\r\n Typography, FormControlLabel, FormControl, Checkbox, Button\r\n} from '@material-ui/core'\r\nimport PropTypes from 'prop-types'\r\nimport StyledAttachmentList from \"../../components/StyledAttachmentList\";\r\nimport {toBrowserFriendlyDate} from \"../../helpers/utilities\";\r\n\r\nclass CollectorDetails extends Component {\r\n\r\n onCollectorFieldChange = (k, e) =>{\r\n this.props.onCollectorFieldChange(k,e)\r\n };\r\n\r\n onPromoClick = (url) => {\r\n window.open(url)\r\n }\r\n\r\n render() {\r\n const {classes, viewOnly, redemptionTransaction} = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n First/Given Name*\r\n \r\n \r\n this.onCollectorFieldChange('collectorFirstName', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Last Name/Surname*\r\n \r\n \r\n this.onCollectorFieldChange('collectorLastName', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Country of Residence*\r\n \r\n \r\n this.onCollectorFieldChange('collectorCountry', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Date of birth*\r\n \r\n \r\n this.onCollectorFieldChange('collectorDob', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n Country code\r\n \r\n \r\n this.onCollectorFieldChange('collectorCountryCode', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Email address\r\n \r\n \r\n this.onCollectorFieldChange('collectorEmail', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Area code\r\n \r\n \r\n this.onCollectorFieldChange('collectorAreaCode', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Email Type\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n Mobile number\r\n \r\n \r\n this.onCollectorFieldChange('collectorContactNo', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n {redemptionTransaction.promocodeURIs && redemptionTransaction.promocodeURIs.length > 0 && (\r\n \r\n \r\n \r\n Promo Attachments\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n }\r\n checked={redemptionTransaction.allowReceivingInfo}\r\n className={classes.flexStart}\r\n label={\r\n \r\n
    \r\n \r\n }\r\n />\r\n \r\n \r\n\r\n \r\n
    \r\n \r\n\r\n \r\n Collector's Signature\r\n \r\n \r\n\r\n \r\n \r\n Collector Remarks\r\n \r\n \r\n this.onCollectorFieldChange('remarks', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n pointer: { cursor: 'pointer' }\r\n});\r\n\r\n\r\nCollectorDetails.propTypes = {\r\n viewOnly: PropTypes.bool.isRequired,\r\n redemptionTransaction: PropTypes.object.isRequired,\r\n onCollectorFieldChange: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(CollectorDetails)","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Paper, Table, TableHead, TableBody, TableRow, TableCell, Button, Grid } from '@material-ui/core'\r\nimport StyledSection from './StyledSection'\r\nimport StyledSnackbar from './StyledSnackbar'\r\nimport { getReprintAuditLog } from '../ducks/reprintAuditLogDuck'\r\nimport { toHumanFriendlyDateTime } from '../helpers/utilities'\r\n\r\nclass ReprintAuditLogTable extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\tgetReprintAuditLog = async () => {\r\n\t\tif (this.props.redemptionTransactionId) await this.props.getReprintAuditLog(this.props.redemptionTransactionId)\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\treprintAuditLogDuck: { getReprintAuditLogIsLoading, reprintLogs },\r\n\t\t} = this.props\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{reprintLogs && reprintLogs.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tDate\r\n\t\t\t\t\t\t\t\t\t\tPrinted By\r\n\t\t\t\t\t\t\t\t\t\tCard No\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{reprintLogs.map((m, i) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{toHumanFriendlyDateTime(m.creationTime)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{m.userName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{m.reprintCardNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (themes) => ({\r\n\tcontainer: { ...themes.container, marginTop: 20 },\r\n\tul: { paddingLeft: '1rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { reprintAuditLogDuck } = state\r\n\r\n\treturn { reprintAuditLogDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tgetReprintAuditLog: (data) => dispatch(getReprintAuditLog(data)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(ReprintAuditLogTable))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Grid, withStyles, Button, TextField } from '@material-ui/core'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport Header from '../containers/Header.js'\r\nimport { getCurrentAuthHeader, hasPermissions } from '../helpers/utilities'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {\r\n\tgetRedemptionTransactionAndPassengers,\r\n\tupdateRedemptionTransactionPassengerSinglePax,\r\n\tupdateRedemptionTransactionPassenger,\r\n\tupdateRedemptionTransactionAndPassengers,\r\n\tredemptionTransactionPassengersFilesUpload,\r\n\tupdateRedemptionTransactionPassengersDuck,\r\n\tvoidTransaction\r\n} from '../ducks/redemptionTransactionPassengersDuck'\r\nimport RedemptionPassengersTable from '../containers/redemptionTransactionDetail/RedemptionPassengersTable'\r\nimport PassengerDetails from '../containers/redemptionTransactionDetail/PassengerDetails'\r\nimport CollectorDetails from '../containers/redemptionTransactionDetail/CollectorDetails'\r\nimport StyledSection from '../components/StyledSection'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\nimport AuditLogTable2 from '../components/AuditLogTable2'\r\nimport ReprintAuditLogTable from '../components/ReprintAuditLogTable'\r\n\r\nconst initState = {\r\n\tshowSnackbar: false,\r\n\tsnackbarMessage: '',\r\n\tsnackbarVariant: 'success',\r\n\tdeleteDialog: false,\r\n\tvoidTransactionDialog: false,\r\n\tdeletedOriginalAttachmentIdx: new Set(),\r\n\tconfirmDelete: false,\r\n\tviewOnly: false,\r\n\tredemptionTransactionId: 0,\r\n\tfiles: [],\r\n\tvoidRemark: ''\r\n}\r\n\r\nclass RedemptionTransactionDetailScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = { ...initState }\r\n\t\tthis.etixkeys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tconst {\r\n\t\t\tmatch: {\r\n\t\t\t\tparams: { id },\r\n\t\t\t},\r\n\t\t} = this.props\r\n\t\tthis.setState({ redemptionTransactionId: +id })\r\n\t\tdocument.title = `${TITLE_PREFIX} Redemption transaction detail - ${id}`\r\n\r\n\t\tconst data = { params: { redemptionTransactionId: id }, ...getCurrentAuthHeader() }\r\n\t\tconst rs = await this.props.getRedemptionTransactionAndPassengers(data)\r\n\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\tif (!hasPermissions('Individual.Editor')) {\r\n\t\t\tthis.setState({ viewOnly: true })\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\tonNameClick = (idx, p) => {\r\n\t\tthis.props.updateRedemptionTransactionPassenger('currentIdx', idx)\r\n\t}\r\n\r\n\tonETicketChange = (idx, sect, etix, e) => {\r\n\t\tconst key = 'eTicket' + (etix + 1)\r\n\t\tthis.props.updateRedemptionTransactionPassengerSinglePax(idx, sect, key, e.target.value)\r\n\t}\r\n\r\n\tonFieldChange = (sect, k, e) => {\r\n\t\tlet idx = this.props.redemptionTransactionPassengersDuck.currentIdx\r\n\t\tthis.props.updateRedemptionTransactionPassengerSinglePax(idx, sect, k, e.target.value)\r\n\t}\r\n\r\n\tonCollectorFieldChange = (k, e) => {\r\n\t\tthis.props.updateRedemptionTransactionPassengersDuck({ redemptionTransaction: { [k]: e.target.value } })\r\n\t}\r\n\r\n\tonVoidRemarkChange = (e) => {\r\n\t\tthis.setState({ voidRemark: e.target.value });\r\n\t}\r\n\r\n\tonSubmit = async () => {\r\n\t\tconst { deletedOriginalAttachmentIdx, confirmDelete, files } = this.state\r\n\r\n\t\tif (deletedOriginalAttachmentIdx.size > 0 && !confirmDelete) {\r\n\t\t\treturn this.showDeleteDialog()\r\n\t\t}\r\n\r\n\t\tif (files.length > 0) {\r\n\t\t\tconst filesrs = await this.uploadFiles()\r\n\t\t\tif (!filesrs.success) {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'File upload failed' })\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst {\r\n\t\t\tredemptionTransactionPassengersDuck: { redemptionTransaction, passengers },\r\n\t\t} = this.props\r\n\t\tconst data = { redemptionTransaction, passengers }\r\n\r\n\t\tthis.setState({ ...initState, files: [], deletedOriginalAttachmentIdx: new Set() })\r\n\t\tconst rs = await this.props.updateRedemptionTransactionAndPassengers(data)\r\n\t\tif (rs.success) {\r\n\t\t\tconst {\r\n\t\t\t\tmatch: {\r\n\t\t\t\t\tparams: { id },\r\n\t\t\t\t},\r\n\t\t\t} = this.props\r\n\t\t\tconst data = { params: { redemptionTransactionId: id }, ...getCurrentAuthHeader() }\r\n\t\t\tthis.props.getRedemptionTransactionAndPassengers(data)\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Record updated' })\r\n\t\t} else {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t}\r\n\t}\r\n\r\n\tasync uploadFiles() {\r\n\t\tconst { files } = this.state\r\n\t\tlet formData = new FormData()\r\n\t\tfiles.forEach((f) => {\r\n\t\t\tformData.append('files', f, f.name)\r\n\t\t})\r\n\t\treturn await this.props.redemptionTransactionPassengersFilesUpload(formData)\r\n\t}\r\n\r\n\tshowDeleteDialog = () => {\r\n\t\tthis.setState({ deleteDialog: true })\r\n\t}\r\n\r\n\tshowVoidTransactionDialog = () => {\r\n\t\tthis.setState({ voidTransactionDialog: true })\r\n\t}\r\n\r\n\tonAttachmentClick = (url) => {\r\n\t\twindow.open(url)\r\n\t}\r\n\r\n\tonUndoDeleteOrigAttachment = (idx) => {\r\n\t\tlet newDeletedOriginalAttachmentIdx = new Set(this.state.deletedOriginalAttachmentIdx)\r\n\t\tnewDeletedOriginalAttachmentIdx.delete(idx)\r\n\t\tthis.setState({ deletedOriginalAttachmentIdx: newDeletedOriginalAttachmentIdx })\r\n\t}\r\n\r\n\tonDeleteOrigAttachment = (idx) => {\r\n\t\tthis.setState({ deletedOriginalAttachmentIdx: this.state.deletedOriginalAttachmentIdx.add(idx) })\r\n\t}\r\n\r\n\tonDeleteCancel = () => {\r\n\t\tthis.setState({ deleteDialog: false, confirmDelete: false })\r\n\t}\r\n\r\n\tonVoidTransactionCancel = () => {\r\n\t\tthis.setState({ voidTransactionDialog: false })\r\n\t}\r\n\r\n\tonDeleteConfirm = () => {\r\n\t\tthis.setState({ deleteDialog: false, confirmDelete: true }, async () => {\r\n\t\t\t// Remove attachments in attachmentUris then proceed as usual\r\n\t\t\tconst {\r\n\t\t\t\tredemptionTransactionPassengersDuck: { currentIdx, passengers },\r\n\t\t\t} = this.props\r\n\t\t\tlet sector2 = passengers[currentIdx].eTicket[0].sector.find((s) => s.sectorNo === 2)\r\n\t\t\tlet attachmentUris = sector2.attachmentUris\r\n\r\n\t\t\tlet newAttachmentUris = []\r\n\t\t\tfor (let i = 0; i < attachmentUris.length; i++) {\r\n\t\t\t\tif (!this.state.deletedOriginalAttachmentIdx.has(i)) newAttachmentUris.push(attachmentUris[i])\r\n\t\t\t}\r\n\t\t\tawait this.props.updateRedemptionTransactionPassengerSinglePax(currentIdx, 'sector2', 'attachmentUris', newAttachmentUris)\r\n\t\t\tthis.onSubmit()\r\n\t\t})\r\n\t}\r\n\r\n\tonVoidTransactionConfirm = () => {\r\n\t\tthis.setState({ voidTransactionDialog: false }, async () => {\r\n\t\t\tconst rs = await this.props.voidTransaction({\r\n\t\t\t\tredemptionTransactionId: this.state.redemptionTransactionId,\r\n\t\t\t\tremark: this.state.voidRemark\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Transaction voided' })\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tonRemoveCircleClick = (f, i) => {\r\n\t\tconst files = [...this.state.files]\r\n\t\tfiles.splice(i, 1)\r\n\t\tthis.setState({ files })\r\n\t}\r\n\r\n\tonDrop = (acceptedFiles) => {\r\n\t\tconst files = [...this.state.files]\r\n\t\tfor (const af of acceptedFiles) {\r\n\t\t\tlet exists = false\r\n\t\t\tfor (const f of files) {\r\n\t\t\t\tif (af.name === f.name) exists = true\r\n\t\t\t}\r\n\t\t\tif (!exists) files.push(af)\r\n\t\t}\r\n\t\tthis.setState({ files })\r\n\t}\r\n\r\n\tonConsent = () => {\r\n\t\tconst {\r\n\t\t\tredemptionTransactionPassengersDuck: {\r\n\t\t\t\tredemptionTransaction: { allowReceivingInfo },\r\n\t\t\t},\r\n\t\t} = this.props\r\n\t\tthis.props.updateRedemptionTransactionPassengersDuck({ redemptionTransaction: { allowReceivingInfo: !allowReceivingInfo } })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tredemptionTransactionPassengersDuck: {\r\n\t\t\t\tredemptionTransaction,\r\n\t\t\t\tpassengers,\r\n\t\t\t\tcurrentIdx,\r\n\t\t\t\tgetRedemptionTransactionAndPassengersIsLoading,\r\n\t\t\t\tupdateRedemptionTransactionAndPassengersIsLoading,\r\n\t\t\t\tredemptionTransactionPassengersFilesUploadIsLoading,\r\n\t\t\t},\r\n\t\t} = this.props\r\n\t\tconst { voidTransactionDialog, deleteDialog, deletedOriginalAttachmentIdx, files, viewOnly } = this.state\r\n\r\n\t\tlet sector1 = {\r\n\t\t\tflightno: '',\r\n\t\t\torigin: '',\r\n\t\t\tdepartureDate: '',\r\n\t\t\tdestination: '',\r\n\t\t\tremarks: '',\r\n\t\t}\r\n\r\n\t\tlet sector2 = {\r\n\t\t\tflightno: '',\r\n\t\t\torigin: '',\r\n\t\t\tdepartureDate: '',\r\n\t\t\tdestination: '',\r\n\t\t\ttransportMean: 'na',\r\n\t\t}\r\n\t\tif (passengers[currentIdx].eTicket.length > 0) {\r\n\t\t\tsector1 = passengers[currentIdx].eTicket[0].sector.find((s) => s.sectorNo === 1)\r\n\t\t\tsector2 = passengers[currentIdx].eTicket[0].sector.find((s) => s.sectorNo === 2)\r\n\t\t}\r\n\r\n\t\tconst isLoading =\r\n\t\t\tgetRedemptionTransactionAndPassengersIsLoading || updateRedemptionTransactionAndPassengersIsLoading || redemptionTransactionPassengersFilesUploadIsLoading\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{sector2.transportMean !== 'na' && sector2.attachmentUris && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tThe following attachments will be removed:\r\n\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t{sector2.attachmentUris.map((a, i) => {\r\n\t\t\t\t\t\t\t\t\tif (deletedOriginalAttachmentIdx.has(i)) {\r\n\t\t\t\t\t\t\t\t\t\treturn
    • {a}
    • \r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\treturn
      \r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tAre you sure you wish to void the transaction?\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tRemarks\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t this.onVoidRemarkChange(e)}\r\n\t\t\t\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{!viewOnly && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\tpointer: { cursor: 'pointer' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { redemptionTransactionPassengersDuck } = state\r\n\r\n\treturn { redemptionTransactionPassengersDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tgetRedemptionTransactionAndPassengers: (data) => dispatch(getRedemptionTransactionAndPassengers(data)),\r\n\t\tupdateRedemptionTransactionPassengerSinglePax: (idx, sect, k, v) => dispatch(updateRedemptionTransactionPassengerSinglePax(idx, sect, k, v)),\r\n\t\tvoidTransaction: (data) => dispatch(voidTransaction(data)),\r\n\t\tupdateRedemptionTransactionPassenger: (k, v) => dispatch(updateRedemptionTransactionPassenger(k, v)),\r\n\t\tupdateRedemptionTransactionAndPassengers: (data) => dispatch(updateRedemptionTransactionAndPassengers(data)),\r\n\t\tredemptionTransactionPassengersFilesUpload: (formData) => dispatch(redemptionTransactionPassengersFilesUpload(formData)),\r\n\t\tupdateRedemptionTransactionPassengersDuck: (obj) => dispatch(updateRedemptionTransactionPassengersDuck(obj)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(RedemptionTransactionDetailScreen))\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { withStyles, Grid, Button, TextField, Typography } from '@material-ui/core'\r\nimport * as cloneDeep from 'lodash/cloneDeep'\r\nimport StyledSection from '../../components/StyledSection'\r\nimport StyledSnackbar from '../../components/StyledSnackbar'\r\nimport { REQUIRED_ERROR_MSG, ETICKET_ELIGIBILITY_ERROR_MSG } from '../../constants/messages'\r\nimport StyledTinyFabCheckCircle from '../../components/StyledTinyFabCheckCircle'\r\nimport StyledTinyFabError from '../../components/StyledTinyFabError'\r\nimport BoardingPassParser from '../../helpers/boardingPassParser'\r\nimport SqApiCriteriasDialog from '../../components/SqApiCriteriasDialog'\r\nimport StyledTinyErrorCross from '../../components/StyledTinyErrorCross'\r\nimport StyledGeneralDialog from '../../components/StyledGeneralDialog'\r\nimport { hasPermissions } from '../../helpers/utilities'\r\nimport { convertSqStatusForDisplay, DISPLAY_YES, DISPLAY_MANUAL } from '../../helpers/eticketStatusHelper'\r\nimport { updateEicketAppealTransaction } from '../../ducks/appealTransactionDuck'\r\nimport {\r\n\tcheckAndUpdateEligibility,\r\n\tfindPassengerDataWithCardNo,\r\n\tfindPassengerInGroup,\r\n\tfindPassengersDataWithAppealTransaction,\r\n\tcopyFormDetailsToCurrentPax\r\n} from '../../ducks/individualFormDuck.js'\r\nimport { APPEAL_EDITOR, APPEAL_APPROVER, APPEAL_SUPER_APPROVER } from '../../constants/permissions'\r\n\r\nconst E_TIX_1_KEY = 'eTicket1'\r\nconst E_TIX_2_KEY = 'eTicket2'\r\nconst E_TIX_3_KEY = 'eTicket3'\r\nconst E_TIX_4_KEY = 'eTicket4'\r\n\r\n// generalDialogTitle\r\nconst PASSENGER_HAS_EXISTING_CARD = 'Existing card found'\r\nconst PASSENGER_HAS_EXISTING_GROUP = 'Existing group found'\r\nconst PASSENGER_HAS_EXISTING_DRAFT = 'Existing draft found'\r\nconst PASSENGER_HAS_EXISTING_APPEAL = 'Existing appeal found'\r\n\r\nclass AppealETicketForm extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\teTixErrorStore: {\r\n\t\t\t\t[E_TIX_1_KEY]: '',\r\n\t\t\t\t[E_TIX_2_KEY]: '',\r\n\t\t\t\t[E_TIX_3_KEY]: '',\r\n\t\t\t\t[E_TIX_4_KEY]: '',\r\n\t\t\t},\r\n\t\t\teTix: {\r\n\t\t\t\teTicket1: '',\r\n\t\t\t\teTicket2: '',\r\n\t\t\t\teTicket3: '',\r\n\t\t\t\teTicket4: '',\r\n\t\t\t},\r\n\t\t\teTixBackUp: {\r\n\t\t\t\teTicket1: '',\r\n\t\t\t\teTicket2: '',\r\n\t\t\t\teTicket3: '',\r\n\t\t\t\teTicket4: '',\r\n\t\t\t},\r\n\t\t\tflightFormFields: [\r\n\t\t\t\t{ key: [E_TIX_1_KEY], label: 'E-Ticket No. 1*', type: 'text', customButton: true },\r\n\t\t\t\t{ key: [E_TIX_2_KEY], label: 'E-Ticket No. 2', type: 'text', customButton: true },\r\n\t\t\t\t{ key: [E_TIX_3_KEY], label: 'E-Ticket No. 3', type: 'text', customButton: true },\r\n\t\t\t\t{ key: [E_TIX_4_KEY], label: 'E-Ticket No. 4', type: 'text', customButton: true },\r\n\t\t\t],\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tviewCriterias: false,\r\n\t\t\tcriteriasMessage: '',\r\n\t\t\tcriterias: {},\r\n\t\t\tshowEticketField: 0,\r\n\t\t\teTicketIsYes: false,\r\n\t\t\tshowGeneralDialog: false,\r\n\t\t\tgeneralDialogTitle: '',\r\n\t\t\tgeneralDialogActionText: 'Yes',\r\n\t\t\tpretravelId:'',\r\n\t\t\tisUpdateETicket: false,\r\n\t\t\tisCheckEligibilitySuccess: false\r\n\t\t}\r\n\r\n\t\tthis.eTicketRefs = []\r\n\t\tthis.inputTimeout = null\r\n\t\tthis.popPropsETixTimeout = null\r\n\t}\r\n\r\n\tcomponentDidUpdate = (prevProps, prevState) => {\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\t\r\n\t}\r\n\r\n\t_checkApprovedTicketNo = (eTixNo) => {\r\n\t\tif (!eTixNo) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tlet subString = eTixNo.substr(0, 3)\r\n\t\tif (\r\n\t\t\t(subString !== '618' && subString !== '629' && subString !== '086' && subString !== '081' && subString !== '000')\r\n\t\t) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\thandleETicketsDetailsChange = (key, value) => {\r\n\t\tthis._updateStateETicketDetails(key, value)\r\n\r\n\t\tclearTimeout(this.inputTimeout)\r\n\t\tthis.inputTimeout = setTimeout(() => {\r\n\t\t\tif (value.length >= 90) {\r\n\t\t\t\tthis._processScanTicket(key, value)\r\n\t\t\t}\r\n\t\t}, 1000)\r\n\t}\r\n\r\n\t_processScanTicket = (key, value) => {\r\n\t\tif (value.length < 90) return\r\n\t\tlet boardingPassParser = new BoardingPassParser(value)\r\n\t\tlet bpData = boardingPassParser.getData()\r\n\t\tif (\r\n\t\t\tbpData.eTix === this.props.passenger[E_TIX_1_KEY] ||\r\n\t\t\tbpData.eTix === this.props.passenger[E_TIX_2_KEY] ||\r\n\t\t\tbpData.eTix === this.props.passenger[E_TIX_3_KEY]\r\n\t\t) {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Same E Ticket Number' })\r\n\t\t\tthis._updateStateETicketDetails(key, '')\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis._updateStateETicketDetails(key, bpData.eTix)\r\n\t\tthis.props.updateBoardingPassDetails({ eTicketKey: key, boardingPassData: bpData })\r\n\t}\r\n\r\n\t_loadStateEticketDetails(pax) {\r\n\t\tlet stateETix = {\r\n\t\t\teTicket1: '',\r\n\t\t\teTicket2: '',\r\n\t\t\teTicket3: '',\r\n\t\t\teTicket4: '',\r\n\t\t}\r\n\t\tpax.eTicket.forEach((obj, i) => {\r\n\t\t\tif (obj.eTicketNo) {\r\n\t\t\t\tlet key = 'eTicket' + (i + 1)\r\n\t\t\t\tstateETix[key] = obj.eTicketNo\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.setState({ eTix: stateETix, eTixBackUp: stateETix }) // keep 1 back up version to compare later\r\n\t}\r\n\r\n\t_updateStateETicketDetails(key, value) {\r\n\t\tlet stateETix = { ...this.state.eTix }\r\n\t\tstateETix[key] = value\r\n\t\tthis.setState({ eTix: stateETix })\r\n\t\tthis._isCheckEligibilityDisable(stateETix)\r\n\t}\r\n\r\n\t_isCheckEligibilityDisable(stateETix) {\r\n\t\tconst { eTixBackUp } = this.state\r\n\t\tlet flag = false\r\n\t\tfor (let i = 1; i < 4; i++) {\r\n\t\t\tlet key = 'eTicket' + (i + 1)\r\n\t\t\tif (stateETix[key] !== eTixBackUp[key]) {\r\n\t\t\t\tflag = true\r\n\t\t\t\tthis.setState({ isUpdateETicket: true, isCheckEligibilitySuccess: false })\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!flag) {\r\n\t\t\tthis.setState({ isUpdateETicket: false, isCheckEligibilitySuccess: false })\r\n\t\t}\r\n\t}\r\n\r\n\tconfirmTickets = (tickets) => {\r\n\t\ttickets.forEach((ticket, i) => {\r\n\t\t\tthis.handleETicketsDetailsChange(`eTicket${i + 1}`, ticket)\r\n\t\t})\r\n\t}\r\n\r\n\t_checkEligibility = async () => {\r\n\t\tconst { passenger, editMode } = this.props\r\n\t\tconst { eTix, eTixBackUp } = this.state\r\n\r\n\t\t// map eTix (state) to passenger\r\n\t\tpassenger.eTicket.splice(1)\r\n\t\tfor (let i = 1; i < 4; i++) {\r\n\t\t\tlet key = 'eTicket' + (i + 1)\r\n\t\t\t// set default info as 1st eTicket\r\n\t\t\tif (eTix[key] && eTix[key] !== '') {\r\n\t\t\t\tlet newEticket = cloneDeep(passenger.eTicket[0])\r\n\t\t\t\tnewEticket.eTicketNo = eTix[key]\r\n\t\t\t\tpassenger[key] = eTix[key]\r\n\t\t\t\tpassenger.eTicket.push(newEticket)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!passenger.eTicket[0]) {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: `Please check ETicket is valid` })\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// if (!this._validatePreviousPaxETixDuplicate(this.props.individualFormDuck.passenger, this.props.individualFormDuck.formDetailsList)) {\r\n\t\t// \tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: `Please ensure no E Tickets duplicate` })\r\n\t\t// \treturn\r\n\t\t// }\r\n\r\n\t\tif (this._validateEligibility(passenger)) {\r\n\t\t\tconst ticketDetails = []\r\n\t\t\tlet eTixKeys = [E_TIX_1_KEY, E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY]\r\n\t\t\tlet checkDuplicate = []\r\n\t\t\tlet hasDuplicates = false\r\n\t\t\tfor (let eTixKey of eTixKeys) {\r\n\t\t\t\tif (passenger[eTixKey]) {\r\n\t\t\t\t\t// validate for 13 numberic numbers\r\n\t\t\t\t\tif (!/^[0-9][0-9]{12}$/.test(passenger[eTixKey])) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\t\t\tsnackbarMessage: `ETicket has be to 13 numberic numbers (${passenger[eTixKey]})`,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!checkDuplicate.includes(passenger[eTixKey])) {\r\n\t\t\t\t\t\tticketDetails.push({\r\n\t\t\t\t\t\t\tticketNumber: passenger[eTixKey],\r\n\t\t\t\t\t\t\tlastName: passenger.eTicket[eTixKey + 'LastName'],\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\thasDuplicates = true\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\t\t\tsnackbarMessage: 'Please fix duplicate eTicket: ' + passenger[eTixKey],\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcheckDuplicate.push(passenger[eTixKey])\r\n\t\t\t}\r\n\t\t\tif (hasDuplicates) return\r\n\r\n\t\t\tconst { eTixBackUp } = this.state\r\n\t\t\tlet eTickets = []\r\n\t\t\tif (passenger[E_TIX_2_KEY] && passenger[E_TIX_2_KEY] !== eTixBackUp[E_TIX_2_KEY]) eTickets.push(passenger[E_TIX_2_KEY])\r\n\t\t\tif (passenger[E_TIX_3_KEY] && passenger[E_TIX_3_KEY] !== eTixBackUp[E_TIX_3_KEY]) eTickets.push(passenger[E_TIX_3_KEY])\r\n\t\t\tif (passenger[E_TIX_4_KEY] && passenger[E_TIX_4_KEY] !== eTixBackUp[E_TIX_4_KEY]) eTickets.push(passenger[E_TIX_4_KEY])\r\n\r\n\t\t\tconst checkCardData = { eTickets: eTickets }\r\n\r\n\t\t\tconst rs = await this.props.findPassengerDataWithCardNo(checkCardData)\r\n\t\t\tif (!rs.success) this.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\tif (rs.success) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tindividualFormDuck: {\r\n\t\t\t\t\t\tpassengerDataWithCardNo: { group, redemptionTransaction },\r\n\t\t\t\t\t},\r\n\t\t\t\t} = this.props\r\n\r\n\t\t\t\tif ((Object.keys(group).length > 0 || Object.keys(redemptionTransaction).length > 0) && !editMode) {\r\n\t\t\t\t\treturn this.setState({ generalDialogTitle: PASSENGER_HAS_EXISTING_CARD, showGeneralDialog: true, generalDialogActionText: '' })\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/// check appeal\r\n\t\t\t\tconst checkAppealResponse = await this.props.findPassengersDataWithAppealTransaction(checkCardData);\r\n\t\t\t\tif (!checkAppealResponse.success) {\r\n\t\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(checkAppealResponse.success){\r\n\t\t\t\t\tif(checkAppealResponse.result.items.length > 0) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tgeneralDialogTitle: PASSENGER_HAS_EXISTING_APPEAL,\r\n\t\t\t\t\t\t\tshowGeneralDialog: true,\r\n\t\t\t\t\t\t\tgeneralDialogActionText: '',\r\n\t\t\t\t\t\t\tpretravelId: checkAppealResponse.result.items[0].appealTransactionId\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// check sq api\r\n\t\t\t\tthis._checkSqApi()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_validateEligibility(passenger) {\r\n\t\tlet rs = true\r\n\t\tif (passenger.eTicket[0].eTicketNo === '' || passenger.eTicket[0].eTicketNo === undefined) {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: `Please check ETicket 1 is valid` })\r\n\t\t\treturn\r\n\t\t} else {\r\n\t\t\tif (!this._checkApprovedTicketNo(passenger.eTicket[0].eTicketNo)) {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: ETICKET_ELIGIBILITY_ERROR_MSG })\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rs\r\n\t}\r\n\r\n\t_validatePreviousPaxETixDuplicate(currentPax, existingList) {\r\n\t\tlet eTixObj = currentPax.eTicketsDetails\r\n\r\n\t\tfor (let i = 0; i < existingList.length; i++) {\r\n\t\t\tif (currentPax.pax === existingList[i].pax) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (eTixObj.eTicket4) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teTixObj.eTicket4 === existingList[i].eTicketsDetails.eTicket1 ||\r\n\t\t\t\t\teTixObj.eTicket4 === existingList[i].eTicketsDetails.eTicket2 ||\r\n\t\t\t\t\teTixObj.eTicket4 === existingList[i].eTicketsDetails.eTicket3 ||\r\n\t\t\t\t\teTixObj.eTicket4 === existingList[i].eTicketsDetails.eTicket4\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (eTixObj.eTicket3) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teTixObj.eTicket3 === existingList[i].eTicketsDetails.eTicket1 ||\r\n\t\t\t\t\teTixObj.eTicket3 === existingList[i].eTicketsDetails.eTicket2 ||\r\n\t\t\t\t\teTixObj.eTicket3 === existingList[i].eTicketsDetails.eTicket3 ||\r\n\t\t\t\t\teTixObj.eTicket3 === existingList[i].eTicketsDetails.Ticket4\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (eTixObj.eTicket2) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teTixObj.eTicket2 === existingList[i].eTicketsDetails.eTicket1 ||\r\n\t\t\t\t\teTixObj.eTicket2 === existingList[i].eTicketsDetails.eTicket2 ||\r\n\t\t\t\t\teTixObj.eTicket2 === existingList[i].eTicketsDetails.eTicket3 ||\r\n\t\t\t\t\teTixObj.eTicket2 === existingList[i].eTicketsDetails.eTicket4\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (eTixObj.eTicket1) {\r\n\t\t\t\tif (\r\n\t\t\t\t\teTixObj.eTicket1 === existingList[i].eTicketsDetails.eTicket1 ||\r\n\t\t\t\t\teTixObj.eTicket1 === existingList[i].eTicketsDetails.eTicket2 ||\r\n\t\t\t\t\teTixObj.eTicket1 === existingList[i].eTicketsDetails.eTicket3 ||\r\n\t\t\t\t\teTixObj.eTicket1 === existingList[i].eTicketsDetails.eTicket4\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true\r\n\t}\r\n\r\n\t_saveEticket = async () => {\r\n\t\tconst {\r\n\t\t\tpassenger,\r\n\t\t\tindividualFormDuck: {\r\n\t\t\t\tcurrentPaxFormDetails\r\n\t\t\t},\r\n\t\t} = this.props;\r\n\t\tconst { eTix } = this.state\r\n\r\n\t\tconst eTicketsKeys = [E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY]\r\n\t\tlet eTicketNumbers = []\r\n\t\tfor (let eTixKey of eTicketsKeys) {\r\n\t\t\tif (eTix[eTixKey]) {\r\n\t\t\t\teTicketNumbers.push(eTix[eTixKey])\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst data = { passengerId: currentPaxFormDetails.id, eTicketNumbers: eTicketNumbers }\r\n\t\tconst rs = await this.props.updateEicketAppealTransaction(data)\r\n if (rs.success) {\r\n // No need to send auditLogs on first request\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: 'Success',\r\n snackbarVariant: 'success',\r\n parentDidSumit: false,\r\n\t\t\t\teventName: 'updateEticket',\r\n\t\t\t\teTix: eTix,\r\n\t\t\t\teTixBackUp: eTix,\r\n\t\t\t\tisUpdateETicket: false,\r\n\t\t\t\tisCheckEligibilitySuccess: false\r\n })\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error',\r\n parentDidSumit: false,\r\n eventName: 'updateEticket'\r\n })\r\n }\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\t_renderNotiIcon = (ticketNumber) => {\r\n\t\tconst { isCheckEligibilitySuccess } = this.state\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: {\r\n\t\t\t\tcurrentPaxFormDetails\r\n\t\t\t},\r\n\t\t} = this.props;\r\n\r\n\t\tif (isCheckEligibilitySuccess) {\r\n\t\t\tlet ticketDetails = currentPaxFormDetails.ticketDetails\r\n\r\n\t\t\tif (!ticketDetails || ticketNumber === '') return null\r\n\r\n\t\t\tconst d = ticketDetails.find((d) => d.ticketNumber === ticketNumber)\r\n\t\t\tif (d === undefined) return null\r\n\r\n\t\t\tif (convertSqStatusForDisplay(d.ctpEligibility) === DISPLAY_YES) {\r\n\t\t\t\tif (this.state.eTicketIsYes !== true) this.setState({ eTicketIsYes: true })\r\n\t\t\t\treturn this.onShowEligibilityPopup(d)} />\r\n\t\t\t} else if (convertSqStatusForDisplay(d.ctpEligibility) === DISPLAY_MANUAL) {\r\n\t\t\t\treturn this.onShowEligibilityPopup(d)} />\r\n\t\t\t} else {\r\n\t\t\t\treturn this.onShowEligibilityPopup(d)} />\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null\r\n\t}\r\n\r\n\tonShowEligibilityPopup = (rs) => {\r\n\t\tif (rs.criterias) {\r\n\t\t\tthis.setState({ viewCriterias: true, criterias: rs.criterias, criteriasMessage: '' })\r\n\t\t} else {\r\n\t\t\trs.remarks\r\n\t\t\t\t? this.setState({ viewCriterias: true, criterias: {}, criteriasMessage: rs.remarks })\r\n\t\t\t\t: this.setState({ viewCriterias: true, criterias: {}, criteriasMessage: 'ETicket not found in database' })\r\n\t\t}\r\n\t}\r\n\r\n\tonViewCriteriasClose = () => {\r\n\t\tthis.setState({ viewCriterias: false })\r\n\t}\r\n\r\n\tonDialogCancel = async () => {\r\n\t\tthis.setState({ showGeneralDialog: false })\r\n\t}\r\n\r\n\t_checkSqApi = async () => {\r\n\t\tthis.setState({ showGeneralDialog: false })\r\n\t\tconst { eTixBackUp } = this.state\r\n\t\tconst { passenger } = this.props\r\n\t\tconst ticketDetails = []\r\n\t\tlet eTixKeys = [E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY]\r\n\t\tfor (let eTixKey of eTixKeys) {\r\n\t\t\tif (passenger[eTixKey] && passenger[eTixKey] !== eTixBackUp[eTixKey]) {\r\n\t\t\t\tticketDetails.push({\r\n\t\t\t\t\tticketNumber: passenger[eTixKey],\r\n\t\t\t\t\tlastName: passenger.lastName,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (ticketDetails.length > 0) {\r\n\t\t\tconst rs = await this.props.checkAndUpdateEligibility({ ticketDetails: ticketDetails, redemptionTransactionId: null })\r\n\t\t\tif (!rs.success) {\r\n\t\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message })\r\n\t\t\t} else {\r\n\t\t\t\tthis._isCheckEligibilitySuccess()\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.setState({ showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Need have atleast 1 E-Ticket Number except E-Ticket No.1' })\r\n\t\t}\r\n\t}\r\n\r\n\t_isCheckEligibilitySuccess() {\r\n\t\tconst {\r\n\t\t\tindividualFormDuck: {\r\n\t\t\t\tcurrentPaxFormDetails\r\n\t\t\t},\r\n\t\t} = this.props;\r\n\r\n\t\tlet ticketDetails = currentPaxFormDetails.ticketDetails\r\n\r\n\t\tif (!ticketDetails){\r\n\t\t\tthis.setState({ isCheckEligibilitySuccess: false })\r\n\t\t} else {\r\n\t\t\tlet flag = true\r\n\t\t\tfor (let ticketDetail of ticketDetails) {\r\n\t\t\t\tif (convertSqStatusForDisplay(ticketDetail.ctpEligibility) !== DISPLAY_YES\r\n\t\t\t\t\t&& convertSqStatusForDisplay(ticketDetail.ctpEligibility) !== DISPLAY_MANUAL) {\r\n\t\t\t\t\tflag = false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.setState({ isCheckEligibilitySuccess: flag })\r\n\t\t}\r\n\t}\r\n\r\n\tonLinkClick = async (id) => {\r\n const url = '/appeal-transaction-detail/'\r\n\t\twindow.open(url + id)\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses, innerRef, editMode, editModeClass,\r\n\t\t\tpassenger,\r\n\t\t\tcheckAndUpdateEligibilityIsLoading,\r\n\t\t\tindividualFormDuck: {\r\n\t\t\t\tcurrentPaxFormDetails,\r\n\t\t\t\tfindPassengerDataWithCardNoIsLoading,\r\n\t\t\t\tfindPassengerInGroupIsLoading,\r\n findPassengerWithAppealIsLoading,\r\n\t\t\t},\r\n\t\t} = this.props;\r\n\t\tconst eTicketsKeys = [E_TIX_1_KEY, E_TIX_2_KEY, E_TIX_3_KEY, E_TIX_4_KEY]\r\n\t\tconst { eTicketIsYes, showGeneralDialog, showEticketField, generalDialogTitle, generalDialogActionText, eTix, isUpdateETicket, isCheckEligibilitySuccess } = this.state\r\n\r\n\t\tconst hasEditorPermissions = hasPermissions([APPEAL_EDITOR], 'or')\r\n\t\tconst isLoading =\r\n\t\t\tcheckAndUpdateEligibilityIsLoading ||\r\n\t\t\tfindPassengerDataWithCardNoIsLoading ||\r\n\t\t\tfindPassengerInGroupIsLoading ||\r\n\t\t\tfindPassengerWithAppealIsLoading\r\n\t\t\r\n\t\t// update eTicket from passenger to eTix state\r\n\t\tif (!this.state.eTix['eTicket1'] || passenger.eTicket[0].eTicketNo !== this.state.eTix['eTicket1']) {\r\n\t\t\tif (passenger.eTicket[0].eTicketNo) {\r\n\t\t\t\tthis._loadStateEticketDetails(passenger)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet onConfirm = function() {}\r\n\t\tlet onClose = function() {}\r\n\t\tswitch (generalDialogTitle) {\r\n\t\t\tcase PASSENGER_HAS_EXISTING_GROUP:\r\n\t\t\t\tonConfirm = () => {\r\n\t\t\t\t\tthis.setState({ showGeneralDialog: false }, async () => {\r\n\t\t\t\t\t\tawait this.props.populatePassengerFromGroup()\r\n\t\t\t\t\t\tawait this.props.updatePromptedRetrieveDraft(true)\r\n\t\t\t\t\t\tthis._checkSqApi()\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tonClose = () => {\r\n\t\t\t\t\tthis._checkSqApi()\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n case PASSENGER_HAS_EXISTING_APPEAL:\r\n onConfirm = () => {\r\n\r\n }\r\n onClose = () => {\r\n this.setState({ showGeneralDialog: false })\r\n }\r\n break\r\n\t\t\tcase PASSENGER_HAS_EXISTING_DRAFT:\r\n\t\t\t\tonConfirm = () => {\r\n\t\t\t\t\tthis.setState({ showGeneralDialog: false }, async () => {\r\n\t\t\t\t\t\t// populate data\r\n\t\t\t\t\t\tawait this.props.replaceDraft()\r\n\r\n\t\t\t\t\t\tconst { formDetailsList } = this.props\r\n\t\t\t\t\t\tif (formDetailsList.length > 0) {\r\n\t\t\t\t\t\t\tconst eTicketFilter = []\r\n\t\t\t\t\t\t\tformDetailsList.forEach((p) => {\r\n\t\t\t\t\t\t\t\tif (p.eTicketsDetails['eTicket1'] !== '') {\r\n\t\t\t\t\t\t\t\t\teTicketFilter.push(p.eTicketsDetails['eTicket1'])\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tconst data = { eTicketFilter }\r\n\t\t\t\t\t\t\tthis.props.individualGroupCheckRedeemedPassenger(data)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.props.updateRedemptionTransaction(this.props.draftRedemptionTransaction)\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tonClose = () => {\r\n\t\t\t\t\tthis._checkSqApi()\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t\tdefault:\r\n\t\t\t\tbreak\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{generalDialogTitle === PASSENGER_HAS_EXISTING_APPEAL && (\r\n \r\n \r\n\t\t\t\t\t\t\t\tThere is an existing pretravel appeal for this passenger. \r\n\t\t\t\t\t\t\t\t\t this.onLinkClick(this.state.pretravelId)}>\r\n\t\t\t\t\t\t\t\t\t Click here.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n \r\n )}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{eTicketsKeys.map((k, i) => (\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{(passenger.eTicket[k] !== '' || i === 0 || showEticketField >= i) && (\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tE-Ticket No. {i + 1} {i === 0 && *}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.handleETicketsDetailsChange(k, e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this._renderNotiIcon(eTix[k])}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{i === 0 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLast Name *\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{(hasEditorPermissions && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex', marginTop: 20 },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tlabel: { flex: '2' },\r\n\tcontrol: { flex: '3' },\r\n\ttextfield: { width: '100%' },\r\n\ttextfieldError: { height: 60, width: '100%' },\r\n\ttfWrap: { position: 'relative' },\r\n\tclickable: { cursor: 'pointer', borderBottom: '1px dotted #ccc', color: 'blue' },\r\n})\r\n\r\nconst mapStateToProps = function(state) {\r\n\tconst { individualFormDuck } = state\r\n\tconst { checkAndUpdateEligibilityIsLoading } = individualFormDuck\r\n\treturn {\r\n\t\tindividualFormDuck,\r\n\t\tcheckAndUpdateEligibilityIsLoading\r\n\t}\r\n}\r\n\r\nconst mapDispatchToProps = function(dispatch) {\r\n\treturn {\r\n\t\tcheckAndUpdateEligibility: ({ ticketDetails, redemptionTransactionId }) => dispatch(checkAndUpdateEligibility({ ticketDetails, redemptionTransactionId })),\r\n\t\tfindPassengerDataWithCardNo: (data) => dispatch(findPassengerDataWithCardNo(data)),\r\n\t\tfindPassengerInGroup: (data) => dispatch(findPassengerInGroup(data)),\r\n\t\tfindPassengersDataWithAppealTransaction: (data) => dispatch(findPassengersDataWithAppealTransaction(data)),\r\n\t\tcopyFormDetailsToCurrentPax: (p) => dispatch(copyFormDetailsToCurrentPax(p)),\r\n\t\tupdateEicketAppealTransaction: (data) => dispatch(updateEicketAppealTransaction(data)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(AppealETicketForm))\r\n","import React, {Component} from 'react'\r\nimport {\r\n withStyles,\r\n Grid,\r\n TextField,\r\n Typography, FormControlLabel, FormControl, Checkbox, Button\r\n} from '@material-ui/core'\r\nimport PropTypes from 'prop-types'\r\nimport {toBrowserFriendlyDate} from \"../../helpers/utilities\";\r\n\r\nclass AppealCollectorDetails extends Component {\r\n\r\n onCollectorFieldChange = (k, e) =>{\r\n this.props.onCollectorFieldChange(k,e)\r\n };\r\n\r\n render() {\r\n const {classes, viewOnly, appealTransactionDetail, isShowing} = this.props;\r\n console.log(\"detail\", appealTransactionDetail)\r\n console.log(\"allow\", appealTransactionDetail.allowReceivingInfo)\r\n return (\r\n \r\n \r\n \r\n \r\n First/Given Name*\r\n \r\n \r\n this.onCollectorFieldChange('collectorFirstName', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Last Name/Surname*\r\n \r\n \r\n this.onCollectorFieldChange('collectorLastName', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Country of Residence*\r\n \r\n \r\n this.onCollectorFieldChange('collectorCountry', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Date of birth*\r\n \r\n \r\n this.onCollectorFieldChange('collectorDob', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n Country code\r\n \r\n \r\n this.onCollectorFieldChange('collectorCountryCode', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Email address\r\n \r\n \r\n this.onCollectorFieldChange('collectorEmail', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Area code\r\n \r\n \r\n this.onCollectorFieldChange('collectorAreaCode', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n Mobile number\r\n \r\n \r\n this.onCollectorFieldChange('collectorContactNo', e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n }\r\n checked={appealTransactionDetail.allowReceivingInfo != null? appealTransactionDetail.allowReceivingInfo : false}\r\n className={classes.flexStart}\r\n label={\r\n \r\n
    \r\n \r\n }\r\n />\r\n \r\n \r\n\r\n \r\n
    \r\n \r\n\r\n {!isShowing && (\r\n \r\n Collector Remarks\r\n \r\n \r\n this.onCollectorFieldChange('remarks', e)}\r\n fullWidth\r\n />\r\n \r\n )}\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n pointer: { cursor: 'pointer' }\r\n});\r\n\r\n\r\nAppealCollectorDetails.propTypes = {\r\n viewOnly: PropTypes.bool.isRequired,\r\n appealTransactionDetail: PropTypes.object.isRequired,\r\n onCollectorFieldChange: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(AppealCollectorDetails)","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport * as cloneDeep from 'lodash/cloneDeep'\r\nimport { Grid, withStyles, TextField, Divider, Typography, RadioGroup, FormControlLabel, Radio, Button, FormControl, Checkbox, TableBody, TableRow, TableCell, Table, Paper, TableHead } from '@material-ui/core'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport Header from '../containers/Header.js'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport RedemptionPassengersTable from '../containers/redemptionTransactionDetail/RedemptionPassengersTable'\r\nimport AppealETicketForm from '../containers/appealTransactionDetail/AppealETicketForm'\r\nimport PassengerDetails from '../containers/redemptionTransactionDetail/PassengerDetails'\r\nimport AppealCollectorDetails from '../containers/appealTransactionDetail/AppealCollectorDetails'\r\nimport StyledSection from '../components/StyledSection'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\nimport { getAppealTransactionDetail, approveAppealTransactionDetail, rejectAppealTransactionDetail } from '../ducks/appealTransactionDuck'\r\nimport {\r\n\tcopyFormDetailsToCurrentPax\r\n} from '../ducks/individualFormDuck.js'\r\nimport {REQUIRED_ERROR_MSG} from '../constants/messages'\r\nimport { hasPermissions, getCurrentAuthHeader, toHumanFriendlyDateTime } from '../helpers/utilities'\r\nimport { APPEAL_SUPER_APPROVER } from '../constants/permissions'\r\n\r\n\r\nconst initState = {\r\n\tshowSnackbar: false,\r\n\tsnackbarMessage: '',\r\n\tsnackbarVariant: 'success',\r\n\tcurrentIdx: 0,\r\n\tremarkError: '',\r\n remarks: '',\r\n eventName: ''\r\n}\r\n\r\nclass AppealTransactionDetailScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n\t\tthis.state = { ...initState }\r\n this.etixkeys = ['eTicket1', 'eTicket2', 'eTicket3', 'eTicket4']\r\n this.individualETicket = null\r\n }\r\n\r\n componentDidMount = async () => {\r\n const { match: { params: { id } } } = this.props\r\n\t\tdocument.title = `${TITLE_PREFIX} Appeal transaction detail - ${id}`\r\n const rs = await this.props.getAppealTransactionDetail(id)\r\n\r\n const {\r\n appealTransactionDuck: {\r\n appealTransactionDetail\r\n }\r\n } = this.props\r\n const { currentIdx } = this.state\r\n let passengers = []\r\n\t\tif (appealTransactionDetail) {\r\n\t\t\tpassengers = appealTransactionDetail.passengers\r\n }\r\n this.props.copyFormDetailsToCurrentPax(cloneDeep(passengers[currentIdx]))\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({ showSnackbar: false })\r\n }\r\n\r\n onNameClick = (idx, p) => {\r\n this.setState({ currentIdx: idx })\r\n this.props.copyFormDetailsToCurrentPax(cloneDeep(p))\r\n }\r\n\r\n onApprove = async (id, remark, appealTransaction) => {\r\n const data = { id: id, approvalRemarks: remark }\r\n if (!this._validateRemark()) return\r\n const rs = await this.props.approveAppealTransactionDetail(data, appealTransaction)\r\n if (rs.success) {\r\n // No need to send auditLogs on first request\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: 'Success',\r\n snackbarVariant: 'success',\r\n parentDidSumit: false,\r\n eventName: 'approve'\r\n })\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error',\r\n parentDidSumit: false,\r\n eventName: 'approve'\r\n })\r\n }\r\n }\r\n\r\n onReject = async (id, remark, appealTransaction) => {\r\n const data = { id: id, rejectionRemarks: remark }\r\n if (!this._validateRemark()) return\r\n\t\tconst rs = await this.props.rejectAppealTransactionDetail(data, appealTransaction)\r\n\t\tif (rs.success) {\r\n\t\t\t// No need to send auditLogs on first request\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarMessage: 'Success',\r\n\t\t\t\tsnackbarVariant: 'success',\r\n parentDidSumit: false,\r\n eventName: 'reject'\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarMessage: rs.message,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n parentDidSumit: false,\r\n eventName: 'reject'\r\n\t\t\t})\r\n\t\t}\r\n }\r\n\r\n _validateRemark = () => {\r\n const { remarks } = this.state\r\n\t\tif (remarks === '') {\r\n\t\t\tthis.setState({ remarkError: REQUIRED_ERROR_MSG })\r\n\t\t\treturn false\r\n\t\t} else {\r\n\t\t\tthis.setState({ remarkError: '' })\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n onCollectorFieldChange = (k, e) => {\r\n }\r\n onFieldChange = e => {\r\n this.setState({ remarks: e.target.value })\r\n }\r\n\r\n render() {\r\n const {\r\n classes,\r\n editMode,\r\n appealTransactionDuck: {\r\n appealTransactionDetail,\r\n getAppealTransactionDetailIsLoading,\r\n rejectAppealTransactionIsLoading,\r\n approveAppealTransactionIsLoading\r\n }\r\n } = this.props\r\n const { currentIdx, remarks, remarkError } = this.state\r\n\t\tconst isLoading = getAppealTransactionDetailIsLoading || rejectAppealTransactionIsLoading || approveAppealTransactionIsLoading //todo: need to load when send api request\r\n\t\tlet passengers = []\r\n\t\tlet appealTransaction\r\n\t\tif (appealTransactionDetail) {\r\n\t\t\tappealTransaction = appealTransactionDetail\r\n\t\t\tpassengers = appealTransactionDetail.passengers\r\n }\r\n\r\n // check disabled or not for button after approve/reject\r\n const hasSuperApproverPermissions = hasPermissions([APPEAL_SUPER_APPROVER])\r\n const snackbarVariant = this.state.snackbarVariant\r\n const eventName = this.state.eventName\r\n let isDisabled = false;\r\n if ((eventName == 'approve' && snackbarVariant == 'success') \r\n || (eventName == 'reject' && snackbarVariant == 'success' && !hasSuperApproverPermissions)) {\r\n isDisabled = true\r\n }\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n (this.individualETicket = instance)}\r\n passenger = {passengers[currentIdx]}\r\n editMode={editMode} \r\n editModeClass={classes.editMode} />\r\n\r\n {appealTransaction && (\r\n {}}\r\n isShowing\r\n />\r\n )}\r\n\r\n {appealTransaction && (\r\n \r\n\r\n )}\r\n\r\n\r\n {appealTransaction && (\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {appealTransaction.approval == false && appealTransaction.rejected == false && ()}\r\n\r\n {appealTransaction.approval == false && appealTransaction.rejected == true && ()}\r\n\r\n {appealTransaction.approval == true && ()}\r\n \r\n \r\n \r\n \r\n CR Member ID\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n CSO Remark\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Card Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {(!appealTransaction.approval && (!appealTransaction.rejected || hasSuperApproverPermissions)) && (\r\n \r\n )}\r\n {(!appealTransaction.rejected && !appealTransaction.approval) && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tDate\r\n\t\t\t\t\t\t\t\t\t\tChanges\r\n Remarks\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n \r\n {appealTransaction.auditLogs && (appealTransaction.auditLogs.map((auditLog, i) => {\r\n return \r\n {toHumanFriendlyDateTime(auditLog.creationTime)} {auditLog.createdByName}\r\n The {auditLog.field} was updated{auditLog.oldValue && ( from {auditLog.oldValue} )} to {auditLog.newValue}\r\n \r\n \r\n }))}\r\n {appealTransaction.rejectedTime && (\r\n \t\t\t\t\t\t {toHumanFriendlyDateTime(appealTransaction.rejectedTime)} {appealTransaction.rejectedUserName}\r\n {appealTransaction.rejectedUserName} has rejected this case\r\n {appealTransaction.rejectionRemarks}\r\n \t\t\t\t\t )}\r\n {appealTransaction.approvedTime && (\r\n {toHumanFriendlyDateTime(appealTransaction.approvedTime)} {appealTransaction.approvedUserName}\r\n {appealTransaction.approvedUserName} has approved this case\r\n {appealTransaction.approvalRemarks}\r\n \t\t\t\t\t )}\r\n \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: { ...theme.container },\r\n pointer: { cursor: 'pointer' },\r\n auditColumn : { width:'20%'},\r\n editMode: {}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const { appealTransactionDuck } = state\r\n return { \r\n appealTransactionDuck,\r\n editMode: appealTransactionDuck.editMode,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n approveAppealTransactionDetail: (data, appealTransaction) => dispatch(approveAppealTransactionDetail(data, appealTransaction)),\r\n rejectAppealTransactionDetail: (data, appealTransaction) => dispatch(rejectAppealTransactionDetail(data, appealTransaction)),\r\n getAppealTransactionDetail: (data) => dispatch(getAppealTransactionDetail(data)),\r\n copyFormDetailsToCurrentPax: (p) => dispatch(copyFormDetailsToCurrentPax(p)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(AppealTransactionDetailScreen))\r\n","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, TextField, Button} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledTable from '../components/StyledTable'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport {hasPermissions} from '../helpers/utilities'\r\nimport {getAllIata, addIata, updateIata, deleteIata} from '../ducks/iataDuck.js'\r\nimport {\r\n USER_ADMIN_ROLE_READ_PERMISSION, USER_ADMIN_ROLE_CREATE_PERMISSION, USER_ADMIN_ROLE_EDIT_PERMISSION\r\n} from '../constants/permissions'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledGeneralDialog from '../components/StyledGeneralDialog'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\n\r\nconst RIGHT_TABLE_FIELDS = [\r\n {key: 'seq', label: 'S/N'},\r\n {key: 'iataCode', label: 'IATA CODE'},\r\n {key: 'name', label: 'Name'}\r\n]\r\n\r\nclass AdminIataScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showDialog: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n iataCodeError: '',\r\n iataCodeEditError: '',\r\n iataCode: '',\r\n nameError: '',\r\n nameEditError: '',\r\n name: '',\r\n showEditDialog: false,\r\n origEditing: {},\r\n editing: {},\r\n showDeleteDialog: false,\r\n deleting: {}\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - IATA`\r\n const rs = await this.props.getAllIata()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n onEditCancel = () => {\r\n this.setState({showEditDialog: false})\r\n }\r\n\r\n onEditSave = async () => {\r\n if (this._validate(this.state.editing)) {\r\n const rs = await this.props.updateIata(this.state.editing)\r\n this.setState({showEditDialog: false})\r\n if (rs.success) {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: 'IATA updated',\r\n showEditDialog: false\r\n })\r\n this.props.getAllIata()\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showEditDialog: false,\r\n showDeleteDialog: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n onSubmit = async () => {\r\n if (this._validate({iataCode: this.state.iataCode})) {\r\n const rs = await this.props.addIata({iataCode: this.state.iataCode.toUpperCase(), name: this.state.name})\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'IATA created'})\r\n this.props.getAllIata()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n }\r\n\r\n _validate(obj) {\r\n const {showEditDialog} = this.state\r\n if (obj.iataCode.length !== 3) {\r\n !showEditDialog\r\n ? this.setState({iataCodeError: 'IATA code must be 3 letters'})\r\n : this.setState({iataCodeEditError: 'IATA code must be 3 letters'})\r\n return false\r\n } else {\r\n this.setState({iataCodeError: '', iataCodeEditError: ''})\r\n }\r\n\r\n return true\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onEdit = row => {\r\n this.setState({showEditDialog: true, editing: row, origEditing: row})\r\n }\r\n\r\n onEditChange = (k, v) => {\r\n this.setState({editing: {...this.state.editing, [k]: v}})\r\n }\r\n\r\n onDelete = row => {\r\n this.setState({showDeleteDialog: true, deleting: row})\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const rs = await this.props.deleteIata(this.state.deleting.id)\r\n\r\n if (rs.success) {\r\n this.props.getAllIata()\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'success',\r\n snackbarMessage: `IATA ${this.state.deleting.iataCode} deleted`,\r\n showDeleteDialog: false\r\n })\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarVariant: 'error',\r\n snackbarMessage: rs.message,\r\n showDeleteDialog: false\r\n })\r\n }\r\n }\r\n\r\n updateIataCode = iataCode => {\r\n this.setState({iataCode})\r\n }\r\n\r\n updateName = name => {\r\n this.setState({name})\r\n }\r\n\r\n render() {\r\n const {classes, iataDuck} = this.props\r\n const {showEditDialog, showDeleteDialog, editing, deleting, origEditing, iataCodeEditError, nameEditError} = this.state\r\n\r\n const hasCreatePermission = hasPermissions([USER_ADMIN_ROLE_CREATE_PERMISSION])\r\n const hasEditPermission = hasPermissions([USER_ADMIN_ROLE_EDIT_PERMISSION])\r\n const hasReadPermission = hasPermissions([USER_ADMIN_ROLE_READ_PERMISSION]) || hasEditPermission || hasCreatePermission\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n The following IATA Code will be removed:\r\n \r\n \r\n IATA code:\r\n {deleting.iataCode}\r\n \r\n \r\n Name:\r\n {deleting.name}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n IATA CODE\r\n \r\n this.onEditChange('iataCode', e.target.value)}/>\r\n \r\n \r\n \r\n Name\r\n \r\n this.onEditChange('name', e.target.value)}/>\r\n \r\n \r\n \r\n \r\n\r\n {hasReadPermission && \r\n \r\n \r\n {iataDuck.iatas.length > 0 && }\r\n \r\n \r\n\r\n {hasCreatePermission && \r\n \r\n \r\n \r\n this.updateIataCode(e.target.value)}/>\r\n \r\n\r\n \r\n this.updateName(e.target.value)}/>\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n }\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {iataDuck} = state\r\n return {iataDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllIata: () => dispatch(getAllIata()),\r\n addIata: iata => dispatch(addIata(iata)),\r\n updateIata: iata => dispatch(updateIata(iata)),\r\n deleteIata: id => dispatch(deleteIata(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(AdminIataScreen))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Button, FormControlLabel, Switch} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport {getShouldCallSQ, updateShouldCallSQ} from '../ducks/systemDataDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport GlobalTimeChecker from \"../containers/GlobalTimeChecker\";\r\n\r\nclass SqApiScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n shouldCallSQ: false,\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success'\r\n }\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - SQ API`\r\n\r\n const rs = await this.props.getShouldCallSQ()\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.systemDataDuck.getShouldCallSQIsLoading === true && this.props.systemDataDuck.getShouldCallSQIsLoading === false) {\r\n const {systemDataDuck: {shouldCallSQ}} = this.props\r\n this.setState({shouldCallSQ: shouldCallSQ})\r\n }\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n onSubmit = async () => {\r\n const data = {input: this.state.shouldCallSQ}\r\n const rs = await this.props.updateShouldCallSQ(data)\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'SQ API updated'})\r\n this.props.getShouldCallSQ()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n render() {\r\n const {classes, systemDataDuck: {getShouldCallSQIsLoading, updateShouldCallSQIsLoading}} = this.props\r\n const {shouldCallSQ} = this.state\r\n const isLoading = getShouldCallSQIsLoading || updateShouldCallSQIsLoading\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n this.setState({shouldCallSQ: !this.state.shouldCallSQ})}\r\n color={'primary'}\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {systemDataDuck} = state\r\n\r\n return {systemDataDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getShouldCallSQ: () => dispatch(getShouldCallSQ()),\r\n updateShouldCallSQ: data => dispatch(updateShouldCallSQ(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(SqApiScreen))","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, Button, TextField, Typography} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport AdminSettingsNav from '../containers/adminSettings/AdminSettingsNav'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport StyledSection from '../components/StyledSection'\r\nimport {\r\n getAllPhysicalVouchers, addPhysicalVouchers, deletePhysicalVoucher, updatePhysicalVouchers\r\n} from '../ducks/physicalVoucherDuck'\r\nimport {getAllCampaigns} from '../ducks/campaignPeriodDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSelect from '../components/StyledSelect'\r\nimport {toHumanFriendlyDate} from '../helpers/utilities'\r\nimport CardRangeHelper from '../helpers/cardRangeHelper'\r\nimport StyledTable from '../components/StyledTable'\r\nimport StyledGeneralDialog from '../components/StyledGeneralDialog'\r\nimport DeleteDialog from '../components/DeleteDialog'\r\nimport PageHelper from '../helpers/pageHelper'\r\nimport StyledPagination from '../components/StyledPagination'\r\nimport {getCurrentAuthHeader} from '../helpers/utilities'\r\n\r\nconst PHYSICAL_VOUCHERS_FIELDS = [{key: 'seq', label: 'S/N'}, {key: 'campaignPeriod', label: 'Campaign'},\r\n {key: 'voucherType', label: 'Voucher type'}, {key: 'voucherNo', label: 'Voucher no'}, {key: 'passengerId', label: 'status', render: v => !!v ? 'issued' : ''}]\r\n\r\nclass PhysicalVoucherScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n campaign: {label: '', value: ''},\r\n filterCampaign: {label: 'ALL', value: ''},\r\n voucherType: {label: 'GEN', value: 'GEN'},\r\n filterVoucherType: {label: 'ALL', value: 'ALL'},\r\n voucherRange: '',\r\n showEditDialog: false,\r\n showDeleteDialog: false,\r\n editingVoucher: {},\r\n deletingVoucher: {},\r\n currentPage: 1,\r\n totalCount: 0\r\n }\r\n\r\n this.rowsPerPage = 100\r\n this.pageHelper = new PageHelper({maxResultCount: this.rowsPerPage})\r\n }\r\n\r\n componentDidMount = async () => {\r\n document.title = `${TITLE_PREFIX} Admin settings - Physical Vouchers`\r\n const rs2 = await this.props.getAllCampaigns()\r\n if (!rs2.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs2.message})\r\n\r\n /*\r\n let pageData = this.pageHelper.newCall()\r\n\r\n const data = {params: {MaxResultCount: pageData.maxResultCount, SkipCount: pageData.skipCount}, ...getCurrentAuthHeader()}\r\n const rs = await this.props.getAllPhysicalVouchers(data)\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n if (rs.success) {\r\n this.pageHelper.populatePagingData({totalCount: rs.totalCount})\r\n this.setState({totalCount: this.pageHelper.getTotalCount()})\r\n }\r\n */\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n _validate() {\r\n const {campaign, voucherRange} = this.state\r\n\r\n if (campaign.value === '') {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Campaign is required'})\r\n return false\r\n }\r\n if (voucherRange === '') {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Voucher range is required'})\r\n return false\r\n }\r\n if (/[^0-9\\-,\\s]/g.test(voucherRange)) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Please enter a valid card range'})\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n onSubmit = async () => {\r\n if (!this._validate()) return\r\n let cardRangeHelper = new CardRangeHelper({rangeString: this.state.voucherRange, fixedDigits: false})\r\n cardRangeHelper.prepareData()\r\n let cardRange = cardRangeHelper.generateRange()\r\n\r\n const {campaign, voucherType} = this.state\r\n let data = cardRange.map(n => {\r\n return {campaignId: campaign.value, voucherNo: n, voucherType: voucherType.value}\r\n })\r\n const rs = await this.props.addPhysicalVouchers({physicalVouchers: data})\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Physical vouchers added ', currentPage: 1})\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n _getAllPhysicalVouchers = async () => {\r\n const {filterCampaign, filterVoucherType} = this.state\r\n let data = {params: {}}\r\n if (filterCampaign.value) data.params.campaignId = filterCampaign.value\r\n if (filterVoucherType.value !== 'ALL') data.params.voucherType = filterVoucherType.value\r\n\r\n let pageData = this.pageHelper.pageCall(this.state.currentPage)\r\n data.params.MaxResultCount = pageData.maxResultCount\r\n data.params.SkipCount = pageData.skipCount\r\n\r\n data = {...data, ...getCurrentAuthHeader()}\r\n\r\n const rs = await this.props.getAllPhysicalVouchers(data)\r\n if (rs.success) {\r\n this.pageHelper.populatePagingData({totalCount: rs.totalCount})\r\n this.setState({totalCount: this.pageHelper.getTotalCount()})\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n\r\n }\r\n\r\n campaignToSelectFriendly = campaigns => {\r\n return campaigns.map(c => {\r\n return {\r\n label: `${toHumanFriendlyDate(c.startDate)} - ${toHumanFriendlyDate(c.endDate)}`,\r\n value: c.id\r\n }\r\n })\r\n }\r\n\r\n filterCampaignOptions = (campaigns) => {\r\n const c = campaigns.map(c => {\r\n return {\r\n label: `${toHumanFriendlyDate(c.startDate)} - ${toHumanFriendlyDate(c.endDate)}`,\r\n value: c.id\r\n }\r\n })\r\n return [{label: 'ALL', value: ''}, ...c]\r\n }\r\n\r\n onCampaignChange = e => {\r\n this.setState({campaign: e})\r\n }\r\n\r\n onVoucherTypeChange = e => {\r\n this.setState({voucherType: e})\r\n }\r\n\r\n voucherTypeOptions = () => {\r\n const types = ['GEN', 'LPC']\r\n return types.map(t => ({label: t, value: t}))\r\n }\r\n\r\n filterVoucherTypeOptions = () => {\r\n const types = ['ALL', 'GEN', 'LPC']\r\n return types.map(t => ({label: t, value: t}))\r\n }\r\n\r\n onVoucherRangeChange = e => {\r\n this.setState({voucherRange: e.target.value})\r\n }\r\n\r\n onEditPhysicalVoucher = row => {\r\n this.setState({showEditDialog: true, editingVoucher: row})\r\n }\r\n\r\n onEditClose = () => {\r\n this.setState({showEditDialog: false})\r\n }\r\n\r\n _formatCampaignToSelectFriendly = physicalVoucher => {\r\n if (physicalVoucher.startDate.indexOf('T') !== -1) {\r\n return {\r\n label: `${toHumanFriendlyDate(physicalVoucher.startDate)} - ${toHumanFriendlyDate(physicalVoucher.endDate)}`,\r\n value: physicalVoucher.campaignId\r\n }\r\n } else {\r\n return {\r\n label: `${physicalVoucher.startDate} - ${physicalVoucher.endDate}`,\r\n value: physicalVoucher.campaignId\r\n }\r\n }\r\n }\r\n\r\n onEditingCampaignChange = e => {\r\n const {editingVoucher} = this.state\r\n const [startDate, endDate] = e.label.split('-').map(e => e.trim())\r\n this.setState({\r\n editingVoucher: {\r\n ...editingVoucher,\r\n campaignId: e.value,\r\n startDate: startDate,\r\n endDate: endDate\r\n }\r\n })\r\n }\r\n\r\n onEditingVoucherTypeChange = e => {\r\n const {editingVoucher} = this.state\r\n this.setState({editingVoucher: {...editingVoucher, voucherType: e.value}})\r\n }\r\n\r\n _formatVoucherToSelectFriendly = physicalVoucher => {\r\n return {label: physicalVoucher.voucherType, value: physicalVoucher.voucherType}\r\n }\r\n\r\n onDeletePhysicalVoucher = row => {\r\n this.setState({showDeleteDialog: true, deletingVoucher: row})\r\n }\r\n\r\n onEditingVoucherChange = e => {\r\n const {editingVoucher} = this.state\r\n this.setState({editingVoucher: {...editingVoucher, voucherNo: e.target.value}})\r\n }\r\n\r\n onEditSave = async () => {\r\n const {editingVoucher: {id, campaignId, voucherNo, voucherType}} = this.state\r\n\r\n const data = {id, campaignId, voucherNo, voucherType}\r\n const rs = await this.props.updatePhysicalVouchers(data)\r\n if (rs.success) {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: 'Voucher updated'})\r\n this.props.getAllPhysicalVouchers()\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n onDeleteCancel = () => {\r\n this.setState({showDeleteDialog: false})\r\n }\r\n\r\n onDeleteConfirm = async () => {\r\n const {deletingVoucher} = this.state\r\n const rs = await this.props.deletePhysicalVoucher(deletingVoucher.id)\r\n if (rs.success) {\r\n this.setState({showDeleteDialog: false})\r\n this.setState({showSnackbar: true, snackbarVariant: 'success', snackbarMessage: 'Voucher deleted'})\r\n this.props.getAllPhysicalVouchers()\r\n\r\n } else {\r\n this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n }\r\n }\r\n\r\n onChangePage = (e, page) => {\r\n switch (page) {\r\n case 'first':\r\n this.setState({currentPage: 1})\r\n this.pageHelper.pageCall(1)\r\n this.setState({currentPage: 1},\r\n () => {this._getAllPhysicalVouchers()})\r\n break\r\n\r\n case 'prev':\r\n this.pageHelper.pageCall(this.state.currentPage - 1)\r\n this.setState({currentPage: this.state.currentPage - 1},\r\n () => {this._getAllPhysicalVouchers()})\r\n break\r\n\r\n case 'next':\r\n this.pageHelper.pageCall(this.state.currentPage + 1)\r\n this.setState({currentPage: this.state.currentPage + 1},\r\n () => {this._getAllPhysicalVouchers()})\r\n break\r\n\r\n case 'last':\r\n const lastPage = this.pageHelper.getTotalNoOfPages()\r\n this.pageHelper.pageCall(lastPage)\r\n this.setState({currentPage: lastPage},\r\n () => {this._getAllPhysicalVouchers()})\r\n break\r\n\r\n default:\r\n this.setState({currentPage: page},\r\n () => {this._getAllPhysicalVouchers()})\r\n }\r\n }\r\n\r\n onFilterVoucherTypeChange = e => {\r\n this.setState({filterVoucherType: e, currentPage: 1}, () => {this._getAllPhysicalVouchers()})\r\n }\r\n\r\n onFilterCampaignChange = e => {\r\n this.setState({filterCampaign: e, currentPage: 1}, () => {this._getAllPhysicalVouchers()})\r\n }\r\n\r\n _formatPhysicalVouchers = physicalVouchers => (\r\n physicalVouchers.map(p => {\r\n if(p.campaign){\r\n p.campaignPeriod = `${toHumanFriendlyDate(p.campaign.startDate)} - ${toHumanFriendlyDate(p.campaign.endDate)}`\r\n }\r\n return p\r\n })\r\n )\r\n\r\n render() {\r\n const {\r\n classes, physicalVoucherDuck: {\r\n getAllPhysicalVouchersIsLoading, addPhysicalVouchersIsLoading, physicalVouchers, deletePhysicalVoucherIsLoading,\r\n updatePhysicalVoucherIsLoading\r\n },\r\n campaignPeriodDuck: {campaigns}\r\n } = this.props\r\n const {\r\n campaign, voucherType, voucherRange, showEditDialog, editingVoucher, showDeleteDialog, deletingVoucher,\r\n currentPage, totalCount, filterCampaign, filterVoucherType\r\n } = this.state\r\n const isLoading = getAllPhysicalVouchersIsLoading || addPhysicalVouchersIsLoading || updatePhysicalVoucherIsLoading || deletePhysicalVoucherIsLoading\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n {Object.keys(deletingVoucher).length > 0 && \r\n \r\n The following voucher will be deleted\r\n \r\n \r\n \r\n Campaign id\r\n \r\n \r\n {deletingVoucher.campaignId}\r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n {toHumanFriendlyDate(deletingVoucher.startDate)}\r\n \r\n \r\n \r\n \r\n End date\r\n \r\n \r\n {toHumanFriendlyDate(deletingVoucher.endDate)}\r\n \r\n \r\n \r\n \r\n Voucher type\r\n \r\n \r\n {deletingVoucher.voucherType}\r\n \r\n \r\n \r\n \r\n Voucher no\r\n \r\n \r\n {deletingVoucher.voucherNo}\r\n \r\n \r\n \r\n \r\n Passenger id\r\n \r\n \r\n {deletingVoucher.passengerId}\r\n \r\n \r\n }\r\n \r\n\r\n \r\n {Object.keys(editingVoucher).length > 0 && \r\n \r\n \r\n Campaign\r\n \r\n \r\n this.onEditingCampaignChange(e)}\r\n label={'Campaign'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Voucher type\r\n \r\n \r\n this.onEditingVoucherTypeChange(e)}\r\n label={'Voucher type'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Voucher no\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n Campaign\r\n \r\n \r\n this.onCampaignChange(e)}\r\n label={'Campaign'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Voucher type\r\n \r\n \r\n this.onVoucherTypeChange(e)}\r\n label={'Voucher type'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Voucher no range\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*\r\n \r\n \r\n \r\n Filters\r\n \r\n\r\n \r\n \r\n Campaign\r\n \r\n \r\n this.onFilterCampaignChange(e)}\r\n label={'Campaign'}\r\n />\r\n \r\n \r\n Voucher type\r\n \r\n \r\n this.onFilterVoucherTypeChange(e)}\r\n label={'Voucher type'}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n */}\r\n\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: {...theme.container},\r\n select: {width: '20rem', marginTop: '.3rem'}\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {physicalVoucherDuck, campaignPeriodDuck} = state\r\n\r\n return {physicalVoucherDuck, campaignPeriodDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getAllPhysicalVouchers: data => dispatch(getAllPhysicalVouchers(data)),\r\n addPhysicalVouchers: data => dispatch(addPhysicalVouchers(data)),\r\n getAllCampaigns: () => dispatch(getAllCampaigns()),\r\n deletePhysicalVoucher: id => dispatch(deletePhysicalVoucher(id)),\r\n updatePhysicalVouchers: data => dispatch(updatePhysicalVouchers(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(PhysicalVoucherScreen))","import React, {Component} from 'react'\r\nimport {\r\n withStyles,\r\n Paper,\r\n Table,\r\n TableHead,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TableSortLabel\r\n} from '@material-ui/core'\r\nimport {getGroupLabel} from '../../helpers/groupStatusHelper'\r\nimport {toHumanFriendlyDate} from '../../helpers/utilities'\r\n\r\nclass SearchGroupResultTable extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n order : 'asc',\r\n orderBy : 'cardNo'\r\n }\r\n }\r\n onLinkClick = refNo => {\r\n const url = '/group/group-detail/'\r\n window.open(url + refNo)\r\n }\r\n\r\n _getGroupStatus = d => {\r\n return {getGroupLabel(d)}\r\n }\r\n\r\n descendingComparator = (a, b, orderBy) => {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n getComparator = (order, orderBy) => {\r\n if(orderBy==='status'){\r\n return order === 'desc'\r\n ? (a, b) => {\r\n a.statusOrder = this._getGroupStatus(a).props.children;\r\n b.statusOrder = this._getGroupStatus(b).props.children;\r\n return this.descendingComparator(a, b, 'statusOrder');\r\n }\r\n : (a, b) => {\r\n a.statusOrder = this._getGroupStatus(a).props.children;\r\n b.statusOrder = this._getGroupStatus(b).props.children;\r\n return -this.descendingComparator(a, b, 'statusOrder');\r\n }\r\n }\r\n return order === 'desc'\r\n ? (a, b) => this.descendingComparator(a, b, orderBy)\r\n : (a, b) => -this.descendingComparator(a, b, orderBy);\r\n }\r\n\r\n stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n render() {\r\n const {classes, data, fields} = this.props\r\n const {order, orderBy} = this.state\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy !== property || orderBy === property && order === 'desc' ;\r\n this.setState({order:isAsc ? 'asc' : 'desc', orderBy: property})\r\n };\r\n const visuallyHidden = {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n };\r\n function EnhancedTableHead(props) {\r\n const { onRequestSort } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n {fields.map(headCell => (\r\n \r\n \r\n {headCell.label}\r\n {orderBy === headCell.key ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {this.stableSort(data,this.getComparator(order,orderBy)).map((d, idx) => {\r\n return \r\n {fields.map(f => {\r\n return \r\n\r\n {f.key === 'refNo' && this.onLinkClick(d[f.key])}\r\n className={classes.clickable}>{d[f.key]}}\r\n\r\n {f.key === 'paxCount' && {d[f.key]}}\r\n\r\n {f.key === 'firstFlightArrivalDate' &&\r\n {toHumanFriendlyDate(d[f.key])}}\r\n\r\n {f.key === 'lastFlightDepartureDate' &&\r\n {toHumanFriendlyDate(d[f.key])}}\r\n\r\n {f.key === 'collectionDate' && {toHumanFriendlyDate(d[f.key])}}\r\n {f.key === 'tourCompany' && {d[f.key]}}\r\n {f.key === 'tourLeader' &&\r\n {`${d[f.key][0].firstName} ${d[f.key][0].lastName}`}}\r\n\r\n {f.key === 'submitterName' && {d[f.key]}}\r\n {f.key === 'approverName' && {d[f.key]}}\r\n {f.key === 'submissionTime' && {toHumanFriendlyDate(d[f.key])}}\r\n {f.key === 'status' && {this._getGroupStatus(d)}}\r\n \r\n })}\r\n \r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container,\r\n eticket: {padding: '0 1rem'},\r\n clickable: {cursor: 'pointer', borderBottom: '1px dotted #ccc'}\r\n})\r\n\r\nexport default withStyles(styles)(SearchGroupResultTable)","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {withStyles, Grid, TextField, Button, Typography} from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport {TITLE_PREFIX} from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport SearchGroupResultTable from '../containers/search/SearchGroupResultTable'\r\nimport {getGroupsByAttribute} from '../ducks/searchDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport StyledPlaceholder from '../components/StyledPlaceholder'\r\nimport SearchNav from '../containers/search/SearchNav'\r\nimport {getCurrentAuthHeader, hasPermissions} from '../helpers/utilities'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {SEARCH_GROUP_PERMISSION} from '../constants/permissions'\r\nimport GeneralTextDate from '../components/generalForm/GeneralTextDate'\r\n\r\nconst FIELDS = [{key: 'refNo', label: 'Group ref no.'}, {key: 'paxCount', label: 'No. of Pax'},\r\n {key: 'firstFlightArrivalDate', label: 'First Flt arrival date'}, {key: 'lastFlightDepartureDate', label: 'Return Flt Departure Date'},\r\n {key: 'collectionDate', label: 'Collection date'}, {key: 'tourCompany', label: 'Company'}, {key: 'tourLeader', label: 'Tour Leader'},\r\n {key: 'submitterName', label: 'Submitted by'}, {key: 'approverName', label: 'Approved by'}, {key: 'submissionTime', label: 'Submitted date'}, {key: 'status', label: 'Status'}]\r\n\r\nclass SearchGroupScreen extends Component {\r\n constructor(props, context) {\r\n super(props, context)\r\n this.state = {\r\n TourLeaderFirstName: '',\r\n TourLeaderLastName: '',\r\n TourCompany: '',\r\n LastFlightDepartureDate: '',\r\n CollectionDate: '',\r\n RefNo: '',\r\n TourLeaderDob: '',\r\n showSnackbar: false,\r\n snackbarMessage: '',\r\n snackbarVariant: 'success',\r\n hasSearched: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.title = `${TITLE_PREFIX} Search Group`\r\n }\r\n\r\n onSearchFieldsChange = (k, e) => {\r\n this.setState({[k]: e.target.value})\r\n }\r\n\r\n onSubmit = async () => {\r\n const fields = ['TourLeaderFirstName', 'TourLeaderLastName', 'TourCompany', 'LastFlightDepartureDate', 'CollectionDate', 'RefNo', 'TourLeaderDob']\r\n\r\n let params = {}\r\n let hasFilter = false\r\n fields.forEach(f => {\r\n if (this.state[f] !== '') {\r\n params[f] = this.state[f]\r\n hasFilter = true\r\n }\r\n })\r\n\r\n if (hasFilter) {\r\n const rs = await this.props.getGroupsByAttribute({params: params, ...getCurrentAuthHeader()})\r\n if (!rs.success) this.setState({showSnackbar: true, snackbarVariant: 'error', snackbarMessage: rs.message})\r\n this.setState({hasSearched: true})\r\n }\r\n }\r\n\r\n closeSnackbar = () => {\r\n this.setState({showSnackbar: false})\r\n }\r\n\r\n render() {\r\n const {classes, searchDuck: {groups, getGroupsByAttributeIsLoading}} = this.props\r\n const {TourLeaderFirstName, TourLeaderLastName, TourCompany, LastFlightDepartureDate, CollectionDate, RefNo, TourLeaderDob, hasSearched} = this.state\r\n\r\n if (!hasPermissions(SEARCH_GROUP_PERMISSION)) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n Tour Leader Firstname\r\n \r\n \r\n this.onSearchFieldsChange('TourLeaderFirstName', e)}/>\r\n \r\n \r\n \r\n \r\n Tour Leader Lastname\r\n \r\n \r\n this.onSearchFieldsChange('TourLeaderLastName', e)}/>\r\n \r\n \r\n \r\n \r\n Tour Company\r\n \r\n \r\n this.onSearchFieldsChange('TourCompany', e)}/>\r\n \r\n \r\n \r\n \r\n Last Flt Departure Date\r\n \r\n \r\n \r\n \r\n this.onSearchFieldsChange('LastFlightDepartureDate', e)}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Collection Date\r\n \r\n \r\n this.onSearchFieldsChange('CollectionDate', e)}/>\r\n \r\n \r\n \r\n \r\n Ref No\r\n \r\n \r\n this.onSearchFieldsChange('RefNo', e)}/>\r\n \r\n \r\n \r\n \r\n Date of birth\r\n \r\n \r\n this.onSearchFieldsChange('TourLeaderDob', e)}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {hasSearched && \r\n {groups.length > 0 &&\r\n }\r\n\r\n {groups.length < 1 && }\r\n }\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n container: theme.container\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n const {searchDuck, redemptionTransactionPassengersDuck} = state\r\n\r\n return {searchDuck, redemptionTransactionPassengersDuck}\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getGroupsByAttribute: data => dispatch(getGroupsByAttribute(data))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(SearchGroupScreen))\r\n\r\n","import React, { Component } from 'react'\r\nimport {\r\n\twithStyles,\r\n\tPaper,\r\n\tTable,\r\n\tTableHead,\r\n\tTableBody,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTypography,\r\n\tFormControl,\r\n\tInputLabel,\r\n\tSelect,\r\n\tMenuItem,\r\n\tMuiThemeProvider,\r\n\tOutlinedInput,\r\n\tGrid,\r\n\tTableFooter,\r\n\tTableSortLabel\r\n} from '@material-ui/core'\r\nimport { toHumanFriendlyDateTime } from '../../helpers/utilities'\r\nimport { hoverSelectOverride } from '../../styles/mui/theme'\r\nimport SpreadSheetComponent from '../../components/SpreadSheetComponent'\r\n\r\nclass SearchIssuanceSummaryResultTable extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tstatusFilter: '',\r\n\t\t\tissuedCount: 0,\r\n\t\t\ttotalCount: 0,\r\n\t\t\torder: 'asc',\r\n\t\t\torderBy: 'cardNo'\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.updateCount()\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps, prevState) {\r\n\t\tif (prevProps.data !== this.props.data) {\r\n\t\t\tthis.updateCount()\r\n\t\t}\r\n\t}\r\n\r\n\tupdateCount = () => {\r\n\t\tconst { data } = this.props\r\n\t\tif (data) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tissuedCount: data.filter(d => d.redeemed === true).length,\r\n\t\t\t\ttotalCount: data.length\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tonStatusFilterChange = v => {\r\n\t\tthis.setState({ statusFilter: v })\r\n\t}\r\n\r\n\tfilterStatus = data => {\r\n\t\tconst { statusFilter } = this.state\r\n\t\tif (statusFilter === 'issued') return data.filter(d => d.redeemed === true)\r\n\t\tif (statusFilter === 'not issued') return data.filter(d => d.redeemed === false)\r\n\t\treturn data\r\n\t}\r\n\r\n\tformatToExcel = data => {\r\n\t\tlet clonedData = []\r\n\t\tdata.forEach(record => {\r\n\t\t\tlet clonedRecord = { ...record }\r\n\t\t\tclonedRecord.redeemedDateTime = toHumanFriendlyDateTime(record.redeemedDateTime)\r\n\t\t\tclonedRecord.redeemed = record.redeemed ? 'Issued' : 'Not Issued'\r\n\t\t\tclonedData.push(clonedRecord)\r\n\t\t})\r\n\t\treturn clonedData\r\n\t}\r\n\r\n\tdescendingComparator = (a, b, orderBy) => {\r\n\t\tif (b[orderBy] < a[orderBy]) {\r\n\t\t\treturn -1\r\n\t\t}\r\n\t\tif (b[orderBy] > a[orderBy]) {\r\n\t\t\treturn 1\r\n\t\t}\r\n\t\treturn 0\r\n\t}\r\n\r\n\tgetComparator = (order, orderBy) => {\r\n\t\treturn order === 'desc' ? (a, b) => this.descendingComparator(a, b, orderBy) : (a, b) => -this.descendingComparator(a, b, orderBy)\r\n\t}\r\n\r\n\tstableSort(array, comparator) {\r\n\t\tconst stabilizedThis = array.map((el, index) => [el, index])\r\n\t\tstabilizedThis.sort((a, b) => {\r\n\t\t\tconst order = comparator(a[0], b[0])\r\n\t\t\tif (order !== 0) return order\r\n\t\t\treturn a[1] - b[1]\r\n\t\t})\r\n\t\treturn stabilizedThis.map(el => el[0])\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, fields, data } = this.props\r\n\t\tconst { statusFilter, issuedCount, totalCount, order, orderBy } = this.state\r\n\t\tconst filtered = this.filterStatus(data)\r\n\t\tconst handleRequestSort = (event, property) => {\r\n\t\t\tconst isAsc = orderBy !== property || (orderBy === property && order === 'desc')\r\n\t\t\tthis.setState({ order: isAsc ? 'asc' : 'desc', orderBy: property })\r\n\t\t}\r\n\t\tconst visuallyHidden = {\r\n\t\t\tborder: 0,\r\n\t\t\tclip: 'rect(0 0 0 0)',\r\n\t\t\theight: 1,\r\n\t\t\tmargin: -1,\r\n\t\t\toverflow: 'hidden',\r\n\t\t\tpadding: 0,\r\n\t\t\tposition: 'absolute',\r\n\t\t\ttop: 20,\r\n\t\t\twidth: 1\r\n\t\t}\r\n\t\tfunction EnhancedTableHead(props) {\r\n\t\t\tconst { onRequestSort } = props\r\n\t\t\tconst createSortHandler = property => event => {\r\n\t\t\t\tonRequestSort(event, property)\r\n\t\t\t}\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{fields.map(headCell => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{headCell.label}\r\n\t\t\t\t\t\t\t\t\t{orderBy === headCell.key ? {order === 'desc' ? 'sorted descending' : 'sorted ascending'} : null}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{`${issuedCount} out of ${totalCount} had been issued`}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tStatus Filter\r\n\t\t\t\t\t\t\t\t\t this.onStatusFilterChange(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\tinput={}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tAll\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tIssued\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tNot issued\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.stableSort(filtered, this.getComparator(order, orderBy)).map((d, ridx) => {\r\n\t\t\t\t\t\t\t\tlet rowKey = d.cardNo ? d.cardNo : d.voucherNo\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{fields.map(f => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (f.key === 'redeemedDateTime') {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{toHumanFriendlyDateTime(d[f.key])}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (f.key === 'redeemed') {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{d[f.key] === true ? 'issued' : 'not issued'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{d[f.key]}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: theme.container,\r\n\tstatusFilter: { width: '18rem' },\r\n\tmenuItem: { color: 'white' }\r\n})\r\n\r\nexport default withStyles(styles)(SearchIssuanceSummaryResultTable)\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, TextField, Button, Typography } from '@material-ui/core'\r\nimport Header from '../containers/Header.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport SearchIssuanceSummaryResultTable from '../containers/search/SearchIssuanceSummaryResultTable'\r\nimport { getPassengersByCardRange, getPhysicalVoucherByRange } from '../ducks/searchDuck'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport StyledPlaceholder from '../components/StyledPlaceholder'\r\nimport SearchNav from '../containers/search/SearchNav'\r\nimport { getCurrentAuthHeader, hasPermissions, parseFullCardNoWithPrefix } from '../helpers/utilities'\r\nimport { Redirect } from 'react-router-dom'\r\nimport { SEARCH_GROUP_PERMISSION } from '../constants/permissions'\r\n\r\nconst FIELDS = [\r\n\t{ key: 'refNo', label: 'Group ref no.' },\r\n\t{ key: 'paxCount', label: 'No. of Pax' },\r\n\t{ key: 'firstFlightArrivalDate', label: 'First Flt arrival date' },\r\n\t{ key: 'lastFlightDepartureDate', label: 'Last Flt depart date' },\r\n\t{ key: 'collectionDate', label: 'Collection date' },\r\n\t{ key: 'tourCompany', label: 'Company' },\r\n\t{ key: 'tourLeader', label: 'Tour Leader' },\r\n\t{ key: 'submitterName', label: 'Submitted by' },\r\n\t{ key: 'approverName', label: 'Approved by' },\r\n\t{ key: 'submissionTime', label: 'Submitted date' },\r\n\t{ key: 'status', label: 'Status' }\r\n]\r\n\r\nclass SearchGroupScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tshowSnackbar: false,\r\n\t\t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t\tcardNoFrom: '',\r\n\t\t\tcardNoTo: '',\r\n\t\t\tvoucherNoFrom: '',\r\n\t\t\tvoucherNoTo: '',\r\n\t\t\thasSearched: false,\r\n\t\t\tfields: []\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Search Issuance Summary`\r\n\t}\r\n\r\n\tonCardFieldsChange = (k, e) => {\r\n\t\tif (k === 'cardNoFrom' || k === 'cardNoTo') this.setState({ [k]: parseFullCardNoWithPrefix(e.target.value) })\r\n\t\telse this.setState({ [k]: e.target.value })\r\n\t}\r\n\r\n\tonPhysicalVoucherFieldsChange = (k, e) => {\r\n\t\tlet numericValue = e.target.value.replace(/\\D/g, '')\r\n\t\tthis.setState({ [k]: numericValue })\r\n\t}\r\n\r\n\tonSubmit = () => {\r\n\t\tif (this.props.searchDuck.getPassengersByCardRangeIsLoading || this.props.searchDuck.getPhysicalVoucherByRangeIsLoading) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: 'Still retrieving previous data'\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst { cardNoFrom, cardNoTo, voucherNoFrom, voucherNoTo } = this.state\r\n\r\n\t\tif ((cardNoFrom !== '' || cardNoTo !== '') && (voucherNoFrom !== '' || voucherNoTo !== '')) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: 'Please search either card or voucher'\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif ((cardNoFrom !== '' || cardNoTo !== '') && (voucherNoFrom !== '' || voucherNoTo !== '')) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: 'Please search either card or voucher'\r\n\t\t\t})\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (cardNoFrom !== '' && cardNoTo !== '') {\r\n\t\t\tif (parseInt(cardNoTo) - parseInt(cardNoFrom) > 500) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\tsnackbarMessage: 'Please limit search to 500'\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tconst data = { params: { cardNoFrom, cardNoTo }, ...getCurrentAuthHeader() }\r\n\t\t\tthis.setState(\r\n\t\t\t\t{\r\n\t\t\t\t\tfields: [\r\n\t\t\t\t\t\t{ key: 'eTicket1', label: 'E-Ticket' },\r\n\t\t\t\t\t\t{ key: 'cardNo', label: 'Card Number' },\r\n\t\t\t\t\t\t{ key: 'redeemedBy', label: 'CSO Name' },\r\n\t\t\t\t\t\t{ key: 'redeemedDateTime', label: 'Date' },\r\n\t\t\t\t\t\t{ key: 'redeemed', label: 'Status' }\r\n\t\t\t\t\t],\r\n\t\t\t\t\thasSearched: true\r\n\t\t\t\t},\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.props.getPassengersByCardRange(data)\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tif (voucherNoFrom !== '' && voucherNoTo !== '') {\r\n\t\t\tif (parseInt(voucherNoTo) - parseInt(voucherNoFrom) > 500) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\tsnackbarMessage: 'Please limit search to 500'\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tconst data = { params: { voucherNoFrom, voucherNoTo }, ...getCurrentAuthHeader() }\r\n\t\t\tthis.props.getPhysicalVoucherByRange(data)\r\n\t\t\tthis.setState({\r\n\t\t\t\tfields: [\r\n\t\t\t\t\t{ key: 'eTicket1', label: 'E-Ticket' },\r\n\t\t\t\t\t{ key: 'voucherType', label: 'Voucher Type' },\r\n\t\t\t\t\t{ key: 'voucherNo', label: 'Voucher Number' },\r\n\t\t\t\t\t{ key: 'redeemedBy', label: 'CSO Name' },\r\n\t\t\t\t\t{ key: 'redeemedDateTime', label: 'Date' },\r\n\t\t\t\t\t{ key: 'redeemed', label: 'Status' }\r\n\t\t\t\t],\r\n\t\t\t\thasSearched: true\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\t_formatData = data => {\r\n\t\tif (data.length > 0) {\r\n\t\t\tif (data[0].voucherNo) {\r\n\t\t\t\tdata.sort((a, b) => a.voucherNo - b.voucherNo)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn data\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tclasses,\r\n\t\t\tsearchDuck: { cardVoucherRangeSearchResults, getPassengersByCardRangeIsLoading, getPhysicalVoucherByRangeIsLoading }\r\n\t\t} = this.props\r\n\t\tconst { cardNoFrom, cardNoTo, voucherNoFrom, voucherNoTo, hasSearched, fields } = this.state\r\n\t\tconst isLoading = getPassengersByCardRangeIsLoading || getPhysicalVoucherByRangeIsLoading\r\n\r\n\t\tif (!hasPermissions(SEARCH_GROUP_PERMISSION)) {\r\n\t\t\treturn \r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCard No\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onCardFieldsChange('cardNoFrom', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onCardFieldsChange('cardNoTo', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPhysical Voucher\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onPhysicalVoucherFieldsChange('voucherNoFrom', e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onPhysicalVoucherFieldsChange('voucherNoTo', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{hasSearched && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{cardVoucherRangeSearchResults.length > 0 && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{!isLoading && cardVoucherRangeSearchResults.length < 1 && }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = theme => ({\r\n\tcontainer: theme.container\r\n})\r\n\r\nconst mapStateToProps = state => {\r\n\tconst { searchDuck } = state\r\n\r\n\treturn { searchDuck }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n\treturn {\r\n\t\tgetPassengersByCardRange: data => dispatch(getPassengersByCardRange(data)),\r\n\t\tgetPhysicalVoucherByRange: data => dispatch(getPhysicalVoucherByRange(data))\r\n\t}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(SearchGroupScreen))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Button, Grid } from '@material-ui/core'\r\nimport Header from '../containers/Header'\r\nimport { getCrDetailsFromOCID } from '../ducks/individualFormDuck'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport signalRConstants from \"../helpers/signalRConstants\";\r\nimport {HubConnectionBuilder} from \"@aspnet/signalr\";\r\nimport {signalRURL} from \"../config/config\";\r\n\r\nclass OCIDExchange extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tauthorizationCode: '',\r\n\t\t\torigin: '',\r\n\t\t\tisLoading: false,\r\n\t\t\tprintingCard: '',\r\n\t\t\tcardNoPrinted: '',\r\n signalRConnected: false,\r\n\t\t}\r\n this.ocidWindow = null;\r\n }\r\n\r\n\tasync componentDidMount() {\r\n\t\tconst queryString = require('query-string')\r\n\t\tconst code = queryString.parse(window.location.search).code\r\n\t\tif (code)\r\n\t\t\tawait this.props.getCrDetailsFromOCID(code)\r\n\r\n this.hubConnection = new HubConnectionBuilder().withUrl(signalRURL).build()\r\n this._startSignalRConnection()\r\n this.hubConnection.on('ReceiveMessage', this._receiveMessage)\r\n this.hubConnection.onclose(async () => {\r\n await this._startSignalRConnection()\r\n })\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps,prevState){\r\n\t\tif(prevProps.individualFormDuck.crDetailsFromOCID !== this.props.individualFormDuck.crDetailsFromOCID ||\r\n\t\t\tprevState.signalRConnected !== this.state.signalRConnected\r\n\r\n\t\t){\r\n\t\t\tif(this.props.individualFormDuck.crDetailsFromOCID.cardNo && this.state.signalRConnected){\r\n this._sendMessage({crDetails:this.props.individualFormDuck.crDetailsFromOCID}, signalRConstants.UPDATE_CR_DETAILS_FROM_OCID )\r\n\r\n }\r\n\t\t}\r\n\r\n\t}\r\n\r\n _startSignalRConnection = async () => {\r\n this.hubConnection\r\n .start()\r\n .then(() =>{\r\n console.log('Connection started!');\r\n \t\tthis.setState({signalRConnected: true})\r\n\t\t\t})\r\n .catch(err => {\r\n setTimeout(() => this._startSignalRConnection(), 5000)\r\n console.log('Error while establishing connection :(')\r\n })\r\n }\r\n\r\n _sendMessage = ({ crDetails }, messageType) => {\r\n if (messageType === undefined) throw new Error(\"No message type defined for signalR\")\r\n\r\n const user = localStorage.getItem('username')\r\n let messageObj = {\r\n user,\r\n type: messageType,\r\n source: signalRConstants.OCID_EXCHANGE,\r\n data: { crDetails }\r\n }\r\n let messageStr = JSON.stringify(messageObj)\r\n if(this.hubConnection){\r\n this.hubConnection.invoke('SendMessage', 'default', messageStr).catch(function(err) {\r\n return console.error(err.toString())\r\n })\r\n }\r\n }\r\n\r\n _receiveMessage = (user, messageStr) => {\r\n return; //no need to listen for any message on this screen\r\n }\r\n\r\n\tonPrint = () => {\r\n\t\twindow.print()\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, individualFormDuck } = this.props\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t

    Redirecting you back to form

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { individualFormDuck } = state\r\n\r\n\treturn { individualFormDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tgetCrDetailsFromOCID: (code) => dispatch(getCrDetailsFromOCID(code)),\r\n\t}\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(OCIDExchange))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles } from '@material-ui/core'\r\nimport ctpPrintBackground from '../images/ctp-print-background-new1.png'\r\nimport {getSettings} from \"../config/config.js\"\r\nimport '../styles/printcard.css'\r\nimport '../styles/printcard-font.css'\r\nvar QRCode = require('qrcode.react')\r\n\r\nclass CTPCardPrintLayout1 extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tprinting: false,\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, card } = this.props\r\n\t\tlet settings = getSettings()\r\n\t\tlet ctpVoucher = settings.voucher_sources.find(s => s.membership_type == \"CTP\")\r\n\t\tlet genVoucher = ctpVoucher.vouchers.find(s => s.voucher_type == \"GEN\")\r\n\t\tlet voucherCurrency = settings.voucher_currency\r\n\t\tconst defaultRemarks = `1 x ${voucherCurrency}${genVoucher.voucher_value}`\r\n\r\n\t\tif (card.voucherLists)\r\n\t\t\tcard.issuedVouchersList = JSON.parse(card.voucherLists)\r\n\r\n\t\tconst validFrom =\r\n\t\t\tcard.issuedVouchersList && card.issuedVouchersList.length && card.issuedVouchersList[0]\r\n\t\t\t\t? new Date(card.issuedVouchersList[0].ValidFrom)\r\n\t\t\t\t: card.issuedDate\r\n\t\t\t\t? new Date(card.issuedDate)\r\n\t\t\t\t: null\r\n\r\n\t\tconst validTo =\r\n\t\t\tcard.issuedVouchersList && card.issuedVouchersList.length && card.issuedVouchersList[0]\r\n\t\t\t\t? new Date(card.issuedVouchersList[0].ValidTo)\r\n\t\t\t\t: card.voucherValidTo\r\n\t\t\t\t? new Date(card.voucherValidTo)\r\n\t\t\t\t: null\r\n\r\n\t\tconst voucherRemarks =\r\n\t\t\tcard.issuedVouchersList && card.issuedVouchersList.length > 0\r\n\t\t\t\t? `${card.issuedVouchersList.length} X $${card.issuedVouchersList[0].TypeValue}`\r\n\t\t\t\t: card.voucherValuesAndRemarks\r\n\t\t\t\t? card.voucherValuesAndRemarks\r\n\t\t\t\t: defaultRemarks\r\n\r\n\t\tconst validFromStr = `${validFrom.getDate()} ${validFrom.toLocaleString(\r\n\t\t\t'default',\r\n\t\t\t{\r\n\t\t\t\tmonth:\r\n\t\t\t\t\t'long',\r\n\t\t\t},\r\n\t\t)} ${validFrom.getFullYear()}`;\r\n\r\n\t\tconst validToStr = `${validTo.getDate()} ${validTo.toLocaleString(\r\n\t\t\t'default',\r\n\t\t\t{\r\n\t\t\t\tmonth:\r\n\t\t\t\t\t'long',\r\n\t\t\t},\r\n\t\t)} ${validTo.getFullYear()}`;\r\n\t\tconst src = '/card-template.html?cardNumber=' + card.cardNo \r\n\t\t\t+ '&vQty=Voucher Quantity: ' + voucherRemarks\r\n\t\t\t+ '&validFrom=Valid from' + validFromStr\r\n\t\t\t+ '&validTo=Expires on' + validToStr\r\n\t\treturn
    \r\n\t\t\tbackground\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    HERE'S YOUR
    \r\n\t\t\t\t\t
    CHANGI E-VOUCHER
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tSimply present and scan your Changi e-Voucher Card QR code prior to\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tmaking payment to offset the final amount at any participating outlet\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{card.cardNo}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tAccepted at participating outlets at Changi\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tAirport main terminals and\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tJewel Changi Airport.\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tVoucher Quantity: {voucherRemarks}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tValid from {validFromStr}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tExpires on {validToStr}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tVisit https://ev.changirewards.com to check for\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tavailable balance, validity of the card and the full\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tlist of the participating outlets in Changi Airport\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tTerms and Conditions\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• This Changi e-Voucher Card copy contains Changi e-Voucher(s) with no minimum spend required. E-Voucher(s) should be utilised in $5 denominations and any unused amount will not be refunded.\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• Each Changi e-Voucher Card contains Changi e-Voucher(s) with such value as determined by Changi Airport Group (Singapore) Pte Ltd (“CAG”). The Changi e-Voucher(s) credited are in denominations of S$5.\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• Changi Airport Group (Singapore) Pte Ltd (“CAG”) may at its absolute discretion, modify the total amount of Changi e-Voucher(s) loaded in the Changi e-Voucher card.\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• Changi e-Voucher Card will expire 1 year from the date of issuance.\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• No replacement or refund of Changi e-Voucher(s), and no extension of Changi e-Voucher(s)' validity, will be allowed.\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• Lost Changi e-Voucher Card will not be replaced\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t• Subject to the terms and conditions herein, the use of Changi e-Voucher(s) within Changi e-Voucher Card is subject to the terms and conditions governing the use of \"Changi Rewards e-Voucher(s)\" as set out at Clauses 5.7.3 to 5.7.10 of the (except for Clause 5.7.7) of the Changi Rewards Programme terms and conditions:\r\nhttps://rewards.changiairport.com/en/terms-and-conditions.html\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t{/*
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tThis section will be updated with the Changi\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tapp artwork\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tDownload Changi App\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\trewards.changiairport.com.\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    */}\r\n\t\t\t
    \r\n\t\t
    \r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\tpage: {\r\n\t\toverflow: 'hidden',\r\n\t\tbackgroundColor: 'white',\r\n\t\twidth: '14.8cm',\r\n\t\theight: '21cm',\r\n\t\tborder: 0,\r\n\t\tmargin: '13px auto',\r\n\t\t/*boxShadow: '1px 1px 3px 1px #333',*/\r\n\t\tborderCollapse: 'separate',\r\n\t\tposition: 'relative',\r\n\t\t'-webkit-transform-origin': '0 0',\r\n\t},\r\n\tbackground: {\r\n\t\twidth: '14.8cm',\r\n\t\theight: '21cm',\r\n\t\tbottom: '-0.5px',\r\n\t\tborder: 0,\r\n\t\tmargin: 0,\r\n\t\tuserSelect: 'none',\r\n\t\tposition: 'absolute',\r\n\t},\r\n\ttitleWrapper: {\r\n\t\tposition: 'absolute',\r\n\t\twhiteSpace: 'pre',\r\n\t\tfontFamily: 'ff3',\r\n\t\tcolor: '#443f3a',\r\n\t\twidth: '100%',\r\n\r\n\t\tlineHeight: '0.9',\r\n\t\tfontStyle: 'normal',\r\n\t\tfontWeight: 'normal',\r\n\t\tvisibility: 'visible',\r\n\t\tfontSize: '35px',\r\n\t\tmarginTop: '55px',\r\n\t},\r\n\ttitleText: {\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tdescription: {\r\n\t\tposition: 'absolute',\r\n\t\twhiteSpace: 'pre',\r\n\t\tfontFamily: 'ff5',\r\n\t\tcolor: '#443f3a',\r\n\t\tmarginTop: '130px',\r\n\t\tlineHeight: '1.3',\r\n\t\tfontStyle: 'normal',\r\n\t\tfontWeight: 'normal',\r\n\t\twidth: '100%',\r\n\t\tfontSize: '13.5px',\r\n\t\tmargin: '130px auto 0 auto',\r\n\t},\r\n\tdesText: {\r\n\t\ttextAlign: 'center',\r\n\t\twidth: '100%',\r\n\t},\r\n\tdesTextBold: {\r\n\t\tfontFamily: 'ff4',\r\n\t\tlineHeight: 1.004000,\r\n\t\tfontStyle: 'normal',\r\n\t\tfontWeight: 'normal',\r\n\t\tvisibility: 'visible',\r\n\t},\r\n\tqr: {\r\n\t\tposition: 'absolute',\r\n\t\ttop: '187px',\r\n\t\tright: '93px',\r\n\t\tlineHeight: 1.45,\r\n\t},\r\n\tcardNo: {\r\n\t\tfontFamily: 'ff5',\r\n\t\tcolor: '#443f3a',\r\n\t\tfontSize: '12px',\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tcardInfo: {\r\n\t\tposition: 'absolute',\r\n\t\tfontFamily: 'ff5',\r\n\t\tcolor: '#443f3a',\r\n\t\tlineHeight: '1.2',\r\n\t\tfontStyle: 'normal',\r\n\t\tfontWeight: 'normal',\r\n\t\twidth: '72%',\r\n\t\tmarginLeft: '14%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'row',\r\n\t},\r\n\tcardDes: {\r\n\t\twidth: '58%',\r\n\t\tmarginTop: '340px',\r\n\t\tlineHeight: '1.45',\r\n\t\tfontSize: '11.5px',\r\n\t\tfontFamily: 'ff5',\r\n\t},\r\n\tcardDesText: {\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tvoucherDes: {\r\n\t\twidth: '42%',\r\n\t\tmarginTop: '340px',\r\n\t\tlineHeight: '1.45',\r\n\t\tfontSize: '11.5px',\r\n\t\tfontFamily: 'ff5',\r\n\t},\r\n\tvoucherQty: {\r\n\t\tcolor: '#6c217f',\r\n\t\ttextAlign: 'center',\r\n\t\tfontFamily: 'ff5',\r\n\t\tfontWeight: 'bold',\r\n\t},\r\n\twebInfo: {\r\n\t\tposition: 'absolute',\r\n\t\tfontFamily: 'ff5',\r\n\t\tcolor: '#443f3a',\r\n\t\twidth: '100%',\r\n\t\tfontSize: '13.2px',\r\n\t\ttop: '411px',\r\n \tleft: '175.3px',\r\n\t\tlineHeight: '1.35',\r\n\t},\r\n\twebInfoLink: {\r\n\t\tfontFamily: 'ff4',\r\n\t\tlineHeight: 1.004000,\r\n\t\tfontStyle: 'normal',\r\n\t\tfontWeight: 'normal',\r\n\t\tvisibility: 'visible',\r\n\t\tfontSize: '13.2px',\r\n\t},\r\n\ttnc: {\r\n\t\tposition: 'absolute',\r\n\t\tcolor: '#443f3a',\r\n\t\twidth: '77%',\r\n\t\tmarginLeft: '11.5%',\r\n\t\ttop: '495px',\r\n\t\tlineHeight: '1.3',\r\n\t\tmarginTop: '15px'\r\n\t},\r\n\ttncTitle: {\r\n\t\tfontFamily: 'ff4',\r\n\t\tfontSize: '9px',\r\n\t},\r\n\ttncItem: {\r\n\t\tfontFamily: 'ff6',\r\n\t\tfontSize: '8.35px',\r\n\t},\r\n\tfooter: {\r\n\t\tposition: 'absolute',\r\n\t\tcolor: '#000000',\r\n\t\twidth: '100%',\r\n\t\ttop: '675px',\r\n\t\tlineHeight: '1.3',\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tfooterTop: {\r\n\t\tfontFamily: 'ff3',\r\n\t\tfontSize: '11px',\r\n\t},\r\n\tfooterBottom: {\r\n\t\tfontFamily: 'ff7',\r\n\t\tfontSize: '11px',\r\n\t}\r\n})\r\n\r\nexport default connect()(withStyles(styles)(CTPCardPrintLayout1))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, Typography } from '@material-ui/core'\r\nimport headerImage from '../images/CAG-CTP-TransitProgramme-Desktop.jpg'\r\nimport cardImage from '../images/crCardPrint.png'\r\nimport thumb1 from '../images/thumb1.png'\r\nimport thumb2 from '../images/thumb2.jpg'\r\nimport thumb3 from '../images/thumb3.png'\r\nimport thumb4 from '../images/thumb4.jpg'\r\nimport topImgText from '../images/CTP_Logo_Final_Black.png';\r\nimport {getSettings} from \"../config/config.js\"\r\nimport '../styles/printcard.css'\r\nvar QRCode = require('qrcode.react')\r\n\r\nclass CRCardPrintLayout1 extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tprinting: false,\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, cards } = this.props\r\n\t\t// get first card as default card\r\n\t\t// all card in cards have same data\r\n\t\tlet card = cards[0]\r\n\t\tif (card.voucherLists)\r\n\t\t\tcard.issuedVouchersList = JSON.parse(card.voucherLists)\r\n\r\n\t\tlet noOfVoucher = card.issuedVouchersList && card.issuedVouchersList.length > 0 ? card.issuedVouchersList.length : 1\r\n\t\t// count total voucher issued\r\n\t\tnoOfVoucher = noOfVoucher * cards.length\r\n\t\t\r\n\t\tconst validFrom = card.issuedVouchersList && card.issuedVouchersList.length ? new Date(card.issuedVouchersList[0].ValidFrom) : new Date()\r\n\t\tconst validTo = card.issuedVouchersList && card.issuedVouchersList.length ? new Date(card.issuedVouchersList[0].ValidTo) : new Date()\r\n\r\n\t\tlet settings = getSettings()\r\n\t\tlet crVoucher = settings.voucher_sources.find(s => s.membership_type == \"CR\")\r\n\t\tlet genVoucher = crVoucher.vouchers.find(s => s.voucher_type == \"GEN\")\r\n\t\tconst genValue = card.issuedVouchersList && card.issuedVouchersList.length ? card.issuedVouchersList[0].TypeValue : genVoucher.voucher_value\r\n\t\tlet lpcVoucher = crVoucher.vouchers.find(s => s.voucher_type == \"LPC\")\r\n\t\tlet voucherCurrency = settings.voucher_currency\r\n\t\treturn (
    \r\n\t\t\t\t
    \r\n\t\t\t\t\ttop-banner\r\n\t\t\t\t\ttop-img-text\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tHere are your Changi Transit Vouchers!\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tPresent the QR code below at participating\r\n\t\t\t\t\t\t\toutlets to enjoy your vouchers.\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tcr-card\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tChangi Rewards Card Number:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    {card.cardNo}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tVOUCHER ISSUE DATE:\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    {`${validFrom.getDate()} ${validFrom.toLocaleString(\r\n\t\t\t\t\t\t\t\t\t'default',\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tmonth: 'long',\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t)} ${validFrom.getFullYear()}`}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tQUANTITY:\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    {noOfVoucher} x {voucherCurrency}{genValue} Voucher
    \r\n\t\t\t\t\t\t\t\t{!card.isQantasFlight &&
    \r\n\t\t\t\t\t\t\t\t\t{noOfVoucher} x {voucherCurrency}{lpcVoucher.voucher_value} Liquor, Cosmetic & Perfume Voucher\r\n\t\t\t\t\t\t\t\t\t
    }\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tVOUCHER EXPIRY DATE:\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    {`${validTo.getDate()} ${validTo.toLocaleString(\r\n\t\t\t\t\t\t\t\t\t'default',\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tmonth: 'long',\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t)} ${validTo.getFullYear()}`}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tScan to use vouchers\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tYour temporary CR e-Card QR code\r\n\t\t\t\t\t\t\t\t\twill\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\texpire within 7 days.{' '}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPlease download the iChangi app or\r\n\t\t\t\t\t\t\t\t\tlogin to rewards.changiairport.com\r\n\t\t\t\t\t\t\t\t\tto access your Changi Rewards\r\n\t\t\t\t\t\t\t\t\te-Card.\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\tRECOMMENDATIONS FOR YOU!\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tthumb1\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tTry SKII travel exclusives\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tShop exclusive curation of brands\r\n\t\t\t\t\t\t\t\t\tfor your beauty needs at Shilla\r\n\t\t\t\t\t\t\t\t\tCosmetics & Perfumes Stores!\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tTake SG with you\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t‘Da bao’ (or takeaway) your\r\n\t\t\t\t\t\t\t\t\tfavourite local delicacies to bring\r\n\t\t\t\t\t\t\t\t\thome, or bring them with you on your\r\n\t\t\t\t\t\t\t\t\ttravels.\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tthumb1\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tthumb1\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tUltimate Destination for Your\r\n\t\t\t\t\t\t\t\t\t\tTaste\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tEnjoy over 490 brands with lowest\r\n\t\t\t\t\t\t\t\t\tprice guaranteed\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t*Price inclusive of promotions\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tShop Tax-Free Online\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tAccess travel exclusives and special offers at your fingertips on iShopChangi.com. Enjoy \r\n\t\t\t\t\t\t\t\t\t\t10%*\r\n\t\t\t\t\t\t\t\t\t with code \r\n\t\t\t\t\t\t\t\t\t\tCTP_TY2X\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t*Valid till 31 March 2021. No min.\r\n\t\t\t\t\t\t\t\t\tspend. Discount is capped at S$10.\r\n\t\t\t\t\t\t\t\t\tProduct exclusions and T&Cs apply.\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tthumb1\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCHANGI TRANSIT VOUCHER TERMS AND CONDITIONS\r\n\t\t\t\t\t\t\t(credited into Changi Rewards account)\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tThe Changi Transit Voucher is issued by\r\n\t\t\t\t\t\t\t\tChangi Airport Group (Singapore) Pte Ltd\r\n\t\t\t\t\t\t\t\t(“CAG”).\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tChangi Transit Vouchers may be used at\r\n\t\t\t\t\t\t\t\tall participating merchants at Singapore\r\n\t\t\t\t\t\t\t\tChangi Airport which accepts Changi\r\n\t\t\t\t\t\t\t\tTransit Vouchers, including food and\r\n\t\t\t\t\t\t\t\tbeverage outlets. Changi Rewards (“CR”)\r\n\t\t\t\t\t\t\t\tmembers receive one (1) additional S$20\r\n\t\t\t\t\t\t\t\tChangi Transit Voucher that can be used\r\n\t\t\t\t\t\t\t\tfor only Liquor, Perfumes or Cosmetics\r\n\t\t\t\t\t\t\t\tpurchases at Singapore Changi Airport.\r\n\t\t\t\t\t\t\t\tAll types of Changi Transit Vouchers\r\n\t\t\t\t\t\t\t\tcannot be used to purchase any tobacco\r\n\t\t\t\t\t\t\t\tproducts at Singapore Changi Airport.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tThe value of the Changi Transit Vouchers\r\n\t\t\t\t\t\t\t\t(or any part thereof, including any\r\n\t\t\t\t\t\t\t\tunutilised portion) (i) is not\r\n\t\t\t\t\t\t\t\trefundable in any currency; (ii) cannot\r\n\t\t\t\t\t\t\t\tbe transferred to any other person apart\r\n\t\t\t\t\t\t\t\tfrom whom the Changi Transit Vouchers is\r\n\t\t\t\t\t\t\t\tissued to; (iii) cannot be withdrawn in\r\n\t\t\t\t\t\t\t\texchange for any currency; and (iv)\r\n\t\t\t\t\t\t\t\tcannot be exchanged for any form of cash\r\n\t\t\t\t\t\t\t\tor credit. No refund shall be given if\r\n\t\t\t\t\t\t\t\tthe value of the Changi Transit Vouchers\r\n\t\t\t\t\t\t\t\texceeds the value of the goods/ services\r\n\t\t\t\t\t\t\t\tpaid for using the Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tThe Changi Transit Vouchers expire 6\r\n\t\t\t\t\t\t\t\tmonths from the date of issuance or as\r\n\t\t\t\t\t\t\t\tindicated, whichever is earlier. No\r\n\t\t\t\t\t\t\t\treplacement, exchange, refund or\r\n\t\t\t\t\t\t\t\textension of validity, of the Changi\r\n\t\t\t\t\t\t\t\tTransit Vouchers will be considered or\r\n\t\t\t\t\t\t\t\tallowed. All unutilized Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers will be forfeited upon expiry.\r\n\t\t\t\t\t\t\t\tCAG shall not be liable for any expired\r\n\t\t\t\t\t\t\t\tChangi Transit Vouchers.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tChangi Transit Vouchers can only be used\r\n\t\t\t\t\t\t\t\tin denominations of S$20. For each\r\n\t\t\t\t\t\t\t\ttransaction, only one Changi Transit\r\n\t\t\t\t\t\t\t\tPrivileges (“CTP”) Card or the Changi\r\n\t\t\t\t\t\t\t\tTransit Vouchers in one CR account may\r\n\t\t\t\t\t\t\t\tbe used. If one CTP Card or one CR\r\n\t\t\t\t\t\t\t\taccount has more than one Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers, all the Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers in that CTP Card or CR account\r\n\t\t\t\t\t\t\t\tmay be used in a single transaction. For\r\n\t\t\t\t\t\t\t\tthe avoidance of doubt, (a) the Changi\r\n\t\t\t\t\t\t\t\tTransit Vouchers in one CTP card/ CR\r\n\t\t\t\t\t\t\t\taccount and the Changi Transit Vouchers\r\n\t\t\t\t\t\t\t\tin another CTP card/ CR account, cannot\r\n\t\t\t\t\t\t\t\tbe combined and used in a single\r\n\t\t\t\t\t\t\t\ttransaction; (b) the Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers in a CTP card cannot be\r\n\t\t\t\t\t\t\t\tcombined with the Changi Transit\r\n\t\t\t\t\t\t\t\tVouchers in a CR account and used in a\r\n\t\t\t\t\t\t\t\tsingle transaction.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tEach Changi Transit Voucher cannot be\r\n\t\t\t\t\t\t\t\tused for two or more separate\r\n\t\t\t\t\t\t\t\ttransactions.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tThe Changi Transit Vouchers may not be\r\n\t\t\t\t\t\t\t\tused in conjunction with ongoing\r\n\t\t\t\t\t\t\t\tin-store promotions and cannot be\r\n\t\t\t\t\t\t\t\tredeemed on iShopChangi.com.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tThe Changi Transit Vouchers may be used\r\n\t\t\t\t\t\t\t\tin conjunction with Singapore\r\n\t\t\t\t\t\t\t\tAirlines/SilkAir Boarding Pass\r\n\t\t\t\t\t\t\t\tPrivileges.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\tAny alteration(s) to the QR code printed\r\n\t\t\t\t\t\t\t\tis not allowed.\r\n\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    )\r\n }\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\tpage: {\r\n\t\tbackground: 'white',\r\n\t\twidth: '21cm',\r\n\t\theight: '29.7cm',\r\n\t\tdisplay: 'block',\r\n\t\tmargin: '0 auto',\r\n\t\tmarginBottom: '0.5cm',\r\n\t\tboxShadow: '0 0 0.5cm rgba(0,0,0,0.5)',\r\n\t},\r\n\ttopImgBlock: {\r\n\t\tbackGroundColor: 'azure',\r\n\t\theight: '13%',\r\n\t\tboxSizing: 'content-box',\r\n\t\tposition: 'relative',\r\n\t},\r\n\ttopImg: {\r\n\t\twidth: '100%',\r\n\t\theight: '100%',\r\n\t},\r\n\ttopImgText: {\r\n\t\tposition: 'absolute',\r\n\t\ttop: '30%',\r\n\t\tleft: '14%',\r\n\t\twidth: '20%',\r\n\t},\r\n\tvoucherBlock: {\r\n\t\theight: '27%',\r\n\t\tboxSizing: 'border-box',\r\n\t\tborderBottom: '10px solid #E3D3C6',\r\n\t\tpadding: '2% 6% 0 6%',\r\n\t},\r\n\tvoucherName: {\r\n\t\ttextAlign: 'center',\r\n\t\tcolor: '#781D83',\r\n\t\tmargin: '1% 0',\r\n\t\tfontSize: '15px',\r\n\t},\r\n\tvoucherTitle: {\r\n\t\tfontWeight: 'bold',\r\n\t},\r\n\tvoucherText: {\r\n\t\tfontSize: '15px',\r\n\t},\r\n\tvoucherInfo: {\r\n\t\tpadding: '0 4%',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'stretch',\r\n\t},\r\n\tcardImg: {\r\n\t\twidth: '33%',\r\n\t\tmarginTop: '15px',\r\n\t},\r\n\tcardNum: {\r\n\t\tcolor: '#781D83',\r\n\t\tfontSize: '12px',\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tvoucherDetail: {\r\n\t\twidth: '35%',\r\n\t\tpadding: '0 0.5% 0 4%',\r\n\t\tfontSize: '12px',\r\n\t\tmarginTop: '12px',\r\n\t},\r\n\tvoucherQuantity: {\r\n\t\tmarginTop: '20px',\r\n\t},\r\n\tvoucherExpiryDate: {\r\n\t\tmarginTop: '20px',\r\n\t},\r\n\tqrCodeBlock: {\r\n\t\tfontSize: '12px',\r\n\t},\r\n\tqrCodeText: {\r\n\t\tfontSize: '12px',\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\tqrCode: {\r\n\t\ttextAlign: 'center',\r\n\t\tmargin: '12px 0',\r\n\t},\r\n\tqrWarning: {\r\n\t\tfontSize: '10px',\r\n\t\ttextAlign: 'justify',\r\n\t\twidth: '157px',\r\n\t\tmargin: '0',\r\n\t},\r\n\topacityText: {\r\n\t\topacity: '0.6',\r\n\t},\r\n\trecommendBlock: {\r\n\t\theight: '35%',\r\n\t\tboxSizing: 'border-box',\r\n\t\tborderBottom: '10px solid #E3D3C6',\r\n\t\tpadding: '16px 0 15px 0',\r\n\t},\r\n\trecommendTitle: {\r\n\t\ttextAlign: 'center',\r\n\t\tpadding: '0 0 15px 0',\r\n\t},\r\n\trecommendContainer: {\r\n\t\tdisplay: 'flex',\r\n\t\tpadding: '0 10%',\r\n\t\talignItems: 'stretch',\r\n\t\theight: '90%',\r\n\t\tfontSize: '12px',\r\n\t},\r\n\trecommendItem: {\r\n\t\twidth: '25%',\r\n\t},\r\n\tthumbImg: {\r\n\t\twidth: '100%',\r\n\t\theight: '50%',\r\n\t},\r\n\tthumbText: {\r\n\t\theight: '50%',\r\n\t\ttextAlign: 'center',\r\n\t\tpadding: '25px 10px',\r\n\t\tboxSizing: 'border-box',\r\n\t},\r\n\tthumbTextNote: {\r\n\t\tfontSize: '9px',\r\n\t\topacity: '0.6',\r\n\t\tfontStyle: 'italic',\r\n\t\tpadding: '3px 0',\r\n\t},\r\n\tthumbTextLastPanel: {\r\n\t\theight: '50%',\r\n\t\ttextAlign: 'center',\r\n\t\tpadding: '10px 7px',\r\n\t\tboxSizing: 'border-box',\r\n\t},\r\n\tinfoBlock: {\r\n\t\theight: '12%',\r\n\t\tboxSizing: 'content-box',\r\n\t\tpadding: '16px 5% 0 5%',\r\n\t\tfontSize: '11px',\r\n\t\ttextAlign: 'justify',\r\n\t},\r\n\ttncTitle: {\r\n\t\tpaddingLeft: '35px',\r\n\t},\r\n\ttncList: {\r\n\t\tfontSize: '9px',\r\n\t},\r\n\ttncListUl: {\r\n\t\tmargin: '5px 0',\r\n\t\topacity: '0.6',\r\n\t},\r\n})\r\n\r\nexport default connect()(withStyles(styles)(CRCardPrintLayout1))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Button, Grid } from '@material-ui/core'\r\nimport Header from '../containers/Header'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport backgroundGrey from '../images/background-grey.svg'\r\nimport CTPCardPrintLayout1 from '../components/CTPCardPrintLayout1'\r\nimport CRCardPrintLayout1 from '../components/CRCardPrintLayout1'\r\nimport { requestForReprinting } from '../ducks/printCardDuck'\r\nimport querystring from 'querystring'\r\n\r\nclass PrintCard extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tauthorizationCode: '',\r\n\t\t\torigin: '',\r\n\t\t\tisLoading: false,\r\n\t\t\tprintingCard: '',\r\n\t\t\tcardNoPrinted: '',\r\n\t\t\tshowCr: false,\r\n\t\t\tcards: []\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount = async () => {\r\n\t\tconst redemptionTransactionId = querystring.parse(window.location.search).id\r\n\t\tconst cardNo = querystring.parse(window.location.search).cardNo\r\n\t\tlet lstCardNo = []\r\n\t\tif (cardNo !== null && cardNo !== undefined && cardNo !== '') {\r\n\t\t\tlstCardNo = [cardNo]\r\n\t\t}\r\n\t\tawait this.props.requestForReprinting(lstCardNo, redemptionTransactionId)\r\n\t\tlet cards = this.props.printCardDuck.cards\r\n\t\tthis.setState({ cards })\r\n\t}\r\n\r\n\tonPrint = () => {\r\n\t\twindow.print()\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { cards } = this.state;\r\n\t\tlet submittedCards = cards || [];\r\n\t\tlet submittedCRCards = submittedCards.filter((m) => {\r\n\t\t\treturn m.cardNo && m.cardNo.startsWith('00002')\r\n\t\t})\r\n\t\tlet submittedCTPCards = submittedCards.filter((m) => {\r\n\t\t\treturn m.cardNo && m.cardNo.startsWith('00004')\r\n\t\t})\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t{submittedCRCards && submittedCRCards.length > 0 &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{submittedCTPCards && submittedCTPCards.length > 0 &&\r\n\t\t\t\t\t\tsubmittedCTPCards.map((m, i) => {\r\n\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { individualFormDuck, printCardDuck } = state\r\n\r\n\treturn { individualFormDuck, printCardDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn { requestForReprinting: (cards, redemptionTransactionId) => dispatch(requestForReprinting(cards, redemptionTransactionId)) }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(PrintCard))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Button, Grid } from '@material-ui/core'\r\nimport Header from '../containers/Header'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport CTPCardPrintLayout1 from '../components/CTPCardPrintLayout1'\r\nimport CRCardPrintLayout1 from '../components/CRCardPrintLayout1'\r\nimport querystring from 'querystring'\r\nimport {getSettings} from \"../config/config.js\"\r\n\r\nclass PrintCardOnDemandScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tauthorizationCode: '',\r\n\t\t\torigin: '',\r\n\t\t\tisLoading: false,\r\n\t\t\tprintingCard: '',\r\n\t\t\tcardNoPrinted: '',\r\n\t\t\tshowCr: false,\r\n\t\t\tcards: []\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount(){\r\n\t\tlet settings = getSettings()\r\n\r\n\t\t// this url will be not existing in production\r\n\t\tif (settings.environment == 'production')\r\n\t\t{\r\n\t\t\tthis.props.history('/404')\r\n\t\t}\r\n\r\n\t\tlet defaultVouchers = settings.voucher_sources.find(s => s.membership_type == \"DEFAULT\")\r\n\t\tlet defaultVoucher = defaultVouchers.vouchers.find(s => s.voucher_type == \"DEFAULT\")\r\n\t\tvar cards = []\r\n const queryString = require('query-string');\r\n const cardNoFrom = queryString.parse(window.location.search).cardNoFrom;\r\n const cardNoTo = queryString.parse(window.location.search).cardNoTo;\r\n const validFrom = queryString.parse(window.location.search).validFrom;\r\n\t\tconst validTo = queryString.parse(window.location.search).validTo;\r\n\t\tconst voucherValue = queryString.parse(window.location.search).voucherValue;\r\n\t\tconst numberOfVoucher = queryString.parse(window.location.search).numberOfVoucher;\r\n\t\tconst cardNos = this.generateCardRange(cardNoFrom, cardNoTo)\r\n\r\n\t\tcardNos.forEach(cardNo=>{\r\n\t\t\tlet card = {\r\n cardNo: cardNo,\r\n issuedDate: validFrom,\r\n\t\t\t\tvalidTo: validTo,\r\n\t\t\t\tvoucherValue: voucherValue,\r\n\t\t\t\tnumberOfVoucher: numberOfVoucher,\r\n issuedVouchersList: [\r\n ]\r\n\t\t\t}\r\n\t\t\tif (numberOfVoucher) {\r\n\t\t\t\tfor (let i = 0; i < numberOfVoucher; i++) {\r\n\t\t\t\t\tcard.issuedVouchersList.push({\r\n\t\t\t\t\t\tvalidFrom: validFrom,\r\n\t\t\t\t\t\tvalidTo: validTo,\r\n\t\t\t\t\t\ttypeValue: voucherValue ? voucherValue : defaultVoucher.voucher_value\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcard.issuedVouchersList.push({\r\n\t\t\t\t\tvalidFrom: validFrom,\r\n\t\t\t\t\tvalidTo: validTo,\r\n\t\t\t\t\ttypeValue: voucherValue ? voucherValue : defaultVoucher.voucher_value\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcards.push(card)\r\n\t\t})\r\n\r\n this.setState({\"cards\": cards})\r\n\r\n }\r\n\r\n generateCardRange = (cardNoFrom, cardNoTo)=>{\r\n\r\n\t\tlet cardNos = [];\r\n\t\tlet cardNoFromInt = parseInt(cardNoFrom)\r\n\t\tlet cardNoToInt = parseInt(cardNoTo)\r\n let noOfCard = cardNoToInt - cardNoFromInt\r\n if(noOfCard < 1) return [cardNoFrom];\r\n\t\tfor(let i = 0; i <= noOfCard; i++){\r\n\t\t\tvar currentCardNoInt = cardNoFromInt + i;\r\n\t\t\tvar currentCardNo = \"0000\" + currentCardNoInt;\r\n\t\t\tcardNos.push(currentCardNo);\r\n\t\t}\r\n\t\tconsole.log(cardNos)\r\n\r\n\t\treturn cardNos\r\n\r\n\r\n\t}\r\n\r\n\tonPrint = () => {\r\n\t\twindow.print()\r\n\t}\r\n\r\n\trender() {\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.state.cards.map((m, i) => {\r\n\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: { ...theme.container },\r\n\trow: { display: 'flex' },\r\n\trowItem: { display: 'flex', flex: 1, marginRight: 60, alignItems: 'center' },\r\n\tflexStart: { alignItems: 'flex-start' },\r\n\tconsentText: { fontSize: '0.8125rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { individualFormDuck } = state\r\n\r\n\treturn { individualFormDuck }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withStyles(styles)(PrintCardOnDemandScreen))\r\n","import React, { Component } from 'react'\r\nimport {\r\n\twithStyles,\r\n\tTable,\r\n\tTableHead,\r\n\tTableBody,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTableFooter,\r\n\tTablePagination\r\n} from '@material-ui/core'\r\nimport { connect } from 'react-redux'\r\nimport { getAppealTransactionDetail } from '../ducks/appealTransactionDuck'\r\nimport {lime} from '@material-ui/core/colors'\r\nimport {toBrowserFriendlyDate, toHumanFriendlyDateTime} from \"../helpers/utilities\";\r\nimport { processAppealTransaction } from \"../ducks/appealTransactionDuck\"\r\nimport { getCurrentAuthHeader } from '../helpers/utilities'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport StyledPagination from '../components/StyledPagination'\r\n\r\nclass AppealTransactionTable extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = {\r\n\t\t\tshowSnackbar: false,\r\n \t\tsnackbarMessage: '',\r\n\t\t\tsnackbarVariant: 'success',\r\n\t\t}\r\n\t}\r\n\r\n\tonLinkClick = async (refNo) => {\r\n\t\tconst data = { id: refNo }\r\n\t\tconst rs = await this.props.processAppealTransaction(data)\r\n\t\tif (rs.success) {\r\n const url = '/appeal-transaction-detail/'\r\n\t\t\twindow.open(url + refNo)\r\n } else {\r\n this.setState({\r\n showSnackbar: true,\r\n snackbarMessage: rs.message,\r\n snackbarVariant: 'error',\r\n parentDidSumit: false,\r\n })\r\n }\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n this.setState({ showSnackbar: false })\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { classes, data, fields, currentIdx, count, page, rowsPerPage, onChangePage, onChangeRowsPerPage } = this.props\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\t\r\n \r\n \t\t\t\t\t\r\n \t\t\t\t\tS/N\r\n \t\t\t\t\tPretravel ID\r\n \t\t\t\t\tCR Member ID\r\n \t\t\t\t\tFirst Name\r\n \t\t\t\t\tLast Name\r\n Date/Time of Request\r\n\t\t\t\t\t\t\t\tETicket\r\n \t\t\t\t\tBooking Ref No\r\n\t\t\t\t\t\t\t\tPretravel Status\r\n \t\t\t\t\tCSO User Name\r\n \t\t\t\t\tDate/Time CSO Responded\r\n \t\t\t\t\t\r\n \t\t\t\t\r\n\t\t\t\t\t\t\r\n \t\t\t\t\t\t{data && data.map((row,ridx) => (\r\n \t\t\t\t\t\r\n \t\t\t\t\t\t\r\n \t\t\t\t\t\t{ridx + 1}\r\n \t\t\t\t\t\t\r\n \t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t \t this.onLinkClick(row.id)}>\r\n\t\t\t\t\t\t\t\t\t \t\t{row.refNo}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n \t\t\t\t\t\t{row.memberId}\r\n\t\t\t\t\t\t\t\t\t\r\n \t\t\t\t\t\t{row.firstName}\r\n \t\t\t\t\t\t{row.lastName}\r\n {toHumanFriendlyDateTime(row.creationTime)}\r\n\t\t\t\t\t\t\t\t\t{/* ETicket */}\r\n\t\t\t\t\t\t\t\t\t{row.eTicket1 && ({row.eTicket1})}\r\n\t\t\t\t\t\t\t\t \t{row.eTicket1 === null && ()}\r\n \t\t\t\t\t\t{row.bookingRefNo}\r\n\t\t\t\t\t\t\t\t\t{/* Status */}\r\n\t\t\t\t\t\t\t\t\t{row.approval === true && (APPROVED)}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === true &&(REJECTED)}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === false &&(PENDING)}\r\n\t\t\t\t\t\t\t\t\t{/* CSO User Name */}\r\n \t\t\t\t\t\t{row.approval === true && ({row.approvedUserName})}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === true && row.rejectedBy && ({row.rejectedUserName})}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === false && ()}\r\n\t\t\t\t\t\t\t\t\t{/* Date/Time CSO Responded */}\r\n\t\t\t\t\t\t\t\t\t{row.approval === true && row.approvedTime && ({toHumanFriendlyDateTime(row.approvedTime)})}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === true && row.rejectedTime && ({toHumanFriendlyDateTime(row.rejectedTime)})}\r\n\t\t\t\t\t\t\t\t\t{row.approval === false && row.rejected === false && ()}\r\n \t\t\t\t\t\r\n \t\t\t\t\t\t))}\r\n \t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { appealTransactionDuck } = state\r\n\treturn { appealTransactionDuck }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tprocessAppealTransaction: (data) => dispatch(processAppealTransaction(data)),\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: theme.container,\r\n\teticket: { padding: '0 1rem' },\r\n\tclickable: { cursor: 'pointer', borderBottom: '1px dotted #ccc' },\r\n\tediting: {backgroundColor: lime[50]}\r\n})\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps\r\n)(withStyles(styles)(AppealTransactionTable))\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withStyles, Grid, TextField, Button, Typography, Select, MenuItem, FormControl, InputLabel, MuiThemeProvider, OutlinedInput } from '@material-ui/core'\r\nimport { Redirect } from 'react-router-dom'\r\nimport Header from '../containers/Header.js'\r\nimport { TITLE_PREFIX } from '../constants/titlePrefix'\r\nimport GlobalTimeChecker from '../containers/GlobalTimeChecker'\r\nimport StyledSection from '../components/StyledSection'\r\nimport StyledSnackbar from '../components/StyledSnackbar'\r\nimport { hasPermissions, parseFullCardNoWithPrefix } from '../helpers/utilities'\r\nimport { SEARCH_PASSENGER_PERMISSION } from '../constants/permissions'\r\nimport { getAllAppealTransaction } from '../ducks/appealTransactionDuck'\r\nimport AppealTransactionTable from '../components/AppealTransactionTable.js'\r\nimport { hoverSelectOverride } from '../styles/mui/theme'\r\nimport {toBrowserFriendlyDate, getCurrentAuthHeader} from \"../helpers/utilities\";\r\nimport PageHelper from \"../helpers/pageHelper\";\r\n\r\nclass AppealTransactionScreen extends Component {\r\n\tconstructor(props, context) {\r\n\t\tsuper(props, context)\r\n\t\tthis.state = { cardNo: '', email: '', refNo: '', startDate: '', endDate: '', showSnackbar: false, snackbarMessage: '', snackbarVariant: 'success', caseStatus: 'PENDING', selectedPage: 1, filterData: { approval: false, rejected: false } }\r\n\t\tthis.rowsPerPage = 100\r\n\t\tthis.pageHelper = new PageHelper({\r\n\t\t\tmaxResultCount: this.rowsPerPage,\r\n\t\t})\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tdocument.title = `${TITLE_PREFIX} Search Passenger`\r\n\t}\r\n\r\n\tonSearchFieldsChange = (k, e) => {\r\n\t\tif (k === 'cardNoFrom' || k === 'cardNoTo') this.setState({ [k]: parseFullCardNoWithPrefix(e.target.value) })\r\n\t\telse this.setState({ [k]: e.target.value })\r\n\t}\r\n\r\n\tonPhysicalVoucherFieldsChange = (k, e) => {\r\n\t\tlet numericValue = e.target.value.replace(/\\D/g, '')\r\n\t\tthis.setState({ [k]: numericValue })\r\n\t}\r\n\r\n\t_validateCardNo = (cardNo) => {\r\n\t\tif (cardNo && (cardNo.length !== 19 || /[^0-9]/g.test(cardNo))) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: `Card no: ${cardNo} should be 19 digits`,\r\n\t\t\t})\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\t_validate = () => {\r\n\t\tconst { firstName, lastName, firstFltDepDate, collectionDate, cardNoFrom, cardNoTo, preloadedCardFrom, preloadedCardTo } = this.state\r\n\t\tif (firstFltDepDate !== '' || collectionDate !== '') {\r\n\t\t\tif (lastName === '' && firstName === '') {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tshowSnackbar: true,\r\n\t\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\t\tsnackbarMessage:\r\n\t\t\t\t\t\t'Last Name/First name is required for Departure and/or Collection date filter',\r\n\t\t\t\t})\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!this._validateCardNo(cardNoFrom)) return false\r\n\t\tif (!this._validateCardNo(cardNoTo)) return false\r\n\t\tif (!this._validateCardNo(preloadedCardFrom)) return false\r\n\t\tif (!this._validateCardNo(preloadedCardTo)) return false\r\n\t\treturn true\r\n\t}\r\n\r\n\tonSubmit = async () => {\r\n\t\tif (!this._validate()) return\r\n\t\tconst fields = ['cardNo', 'email', 'refNo', 'startDate', 'endDate', 'caseStatus']\r\n\r\n\t\tlet data = {}\r\n\t\tlet hasFilter = false\r\n\t\tfields.forEach((f) => {\r\n\t\t\tif (this.state[f] !== '') {\r\n\t\t\t\tdata[f] = this.state[f]\r\n\t\t\t\thasFilter = true\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (data.caseStatus === 'ALL') {\r\n\t\t\thasFilter = false\r\n\t\t\tdata.caseStatus = null\r\n\t\t}\r\n\r\n\t\tif (hasFilter) {\r\n\t\t\tlet dataFiltered = { ...data, ...this.state.filterData }\r\n\t\t\tthis._getAllGroups(dataFiltered)\r\n\t\t} else {\r\n\t\t\tthis.setState(\r\n\t\t\t\t{ filterData: { approval: '', rejected: '' } },\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis._getAllGroups(data)\r\n\t\t\t\t},\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSnackbar = () => {\r\n\t\tthis.setState({ showSnackbar: false })\r\n\t}\r\n\tcomponentWillMount = () => {\r\n\t\tlet data = this.state.filterData\r\n\t\tthis._getAllGroups(data)\r\n\t}\r\n\r\n\tasync _getAllGroups(data){\r\n let skipCount\r\n\t\tif (this.pageHelper.totalCount === 0) {\r\n\t\t\tskipCount = 0\r\n\t\t} else {\r\n\t\t\tlet pageCallInput = this.pageHelper.pageCall(this.state.selectedPage)\r\n\t\t\tskipCount = this.pageHelper.skipCount\r\n\t\t}\r\n\t\tconst params = { params: { ...data, maxResultCount: this.rowsPerPage, skipCount: skipCount }, ...getCurrentAuthHeader() }\r\n\t\tconst rs = await this.props.getAllAppealTransaction(params)\r\n\t\tif (!rs.success) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tshowSnackbar: true,\r\n\t\t\t\tsnackbarVariant: 'error',\r\n\t\t\t\tsnackbarMessage: rs.message,\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tthis.pageHelper.populatePagingData({\r\n\t\t\t\ttotalCount: rs.result.totalCount,\r\n\t\t\t})\r\n\t\t\tthis.setState({ totalCount: rs.result.totalCount })\r\n\t\t}\r\n }\r\n\r\n\tonChangePage = (e, page) => {\r\n let selectedPage\r\n\t\tswitch (page) {\r\n\t\t\tcase 'first':\r\n\t\t\t\tselectedPage = 1\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase 'prev':\r\n\t\t\t\tselectedPage = this.state.selectedPage - 1\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase 'next':\r\n\t\t\t\tselectedPage = this.state.selectedPage + 1\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase 'last':\r\n\t\t\t\tselectedPage = this.pageHelper.getTotalNoOfPages()\r\n\t\t\t\tbreak\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tselectedPage = page\r\n\t\t}\r\n\r\n\t\tthis.setState({ selectedPage: selectedPage }, () => {\r\n\t\t\tthis._getAllGroups(this.state.filterData)\r\n\t\t})\r\n\t}\r\n\r\n\thandleStatusChange = (event) => {\r\n\t\tthis.setState({ caseStatus: event.target.value }, () => {\r\n\t\t\tconst { caseStatus } = this.state\r\n\t\t\tif (caseStatus === 'PENDING') {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tfilterData: { approval: false, rejected: false },\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tif (caseStatus === 'REJECTED') {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tfilterData: { approval: false, rejected: true },\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tif (caseStatus === 'APPROVED') {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tfilterData: { approval: true, rejected: '' },\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t};\r\n\r\n\trender() {\r\n\t\tconst { classes, appealTransactionDuck: { getAllAppealTransactionLoading, appealTransactions, searchAppealTransactionIsLoading } } = this.props\r\n\t\tconst isLoading = searchAppealTransactionIsLoading || getAllAppealTransactionLoading\r\n\t\tconst { cardNo, email, refNo, startDate, endDate, caseStatus } = this.state\r\n\t\tif (appealTransactions) {\r\n\t\t\tappealTransactions.sort(function(a, b) {\r\n\t\t\t\ta.status = 'PENDING'\r\n\t\t\t\tif (a.rejected) a.status = 'REJECTED'\r\n\t\t\t\tif (a.approval) a.status = 'APPROVED'\r\n\r\n\t\t\t\tb.status = 'PENDING'\r\n\t\t\t\tif (b.rejected) b.status = 'REJECTED'\r\n\t\t\t\tif (b.approval) b.status = 'APPROVED'\r\n\r\n\t\t\t\tif (a.status === b.status) return 0\r\n\t\t\t\tif (a.status === 'PENDING' && b.status !== 'PENDING') return -1\r\n\t\t\t\tif (a.status !== 'PENDING' && b.status === 'PENDING') return 1\r\n\r\n\t\t\t\tif (a.status === 'REJECTED' && b.status !== 'REJECTED') return -1\r\n\t\t\t\tif (a.status !== 'REJECTED' && b.status === 'REJECTED') return 1\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (!hasPermissions(SEARCH_PASSENGER_PERMISSION)) {\r\n\t\t\treturn \r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCR Member Card:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('cardNo', e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEmail Address:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('email', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPretravel ID:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('refNo', e)} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPretravel Status:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tStatus Filter\r\n\t\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t\t\tPENDING\r\n \t\t\t\t\t\t\t\t\tREJECTED\r\n \t\t\t\t\t\t\t\t\tAPPROVED\r\n\t\t\t\t\t\t\t\t\t\t\tALL\r\n \t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tRequest Date\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('startDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tto\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t this.onSearchFieldsChange('endDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nconst styles = (theme) => ({\r\n\tcontainer: theme.container,\r\n\tstatusFilter: { width: '14rem' },\r\n})\r\n\r\nconst mapStateToProps = (state) => {\r\n\tconst { appealTransactionDuck } = state\r\n\tconst { getAllAppealTransactionLoading, appealTransactions } = appealTransactionDuck\r\n\treturn { appealTransactionDuck, getAllAppealTransactionLoading, appealTransactions }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn { getAllAppealTransaction: (data) => dispatch(getAllAppealTransaction(data)) }\r\n}\r\n\r\nexport default connect(\r\n\tmapStateToProps,\r\n\tmapDispatchToProps,\r\n)(withStyles(styles)(AppealTransactionScreen))\r\n","import React, { Component } from 'react'\r\nimport { Provider } from 'react-redux'\r\nimport { BrowserRouter, Route, Switch } from 'react-router-dom'\r\nimport { MuiThemeProvider } from '@material-ui/core/styles'\r\nimport CssBaseline from '@material-ui/core/CssBaseline'\r\nimport theme from '../styles/mui/theme'\r\nimport SystemModal from '../containers/SystemModal.js'\r\nimport Dashboard from './Dashboard'\r\nimport IndividualScreen from './IndividualScreen'\r\nimport IndividualCollector from './IndividualCollector'\r\nimport ClientView from './ClientView'\r\nimport Group from './Group'\r\nimport GroupSubmission from './GroupSubmission'\r\nimport GroupApproval from './GroupApproval'\r\nimport GroupApprovalDetail from './GroupApprovalDetail'\r\nimport GroupDetail from './GroupDetail'\r\nimport GroupIssuance from './GroupIssuance'\r\nimport GroupIssuanceDetail from './GroupIssuanceDetail'\r\nimport AdminSettings from './AdminSettings'\r\nimport LoginScreen from './LoginScreen'\r\nimport NotFoundScreen from './NotFoundScreen'\r\nimport ScanTicket from '../containers/ScanTicket'\r\nimport ForgotPasswordScreen from './ForgotPasswordScreen'\r\nimport ResetPasswordScreen from './ResetPasswordScreen'\r\nimport ChangePasswordScreen from './ChangePasswordScreen'\r\nimport store from '../store.js'\r\nimport ProtectedRoute from '../components/ProtectedRoute'\r\nimport CampaignPeriod from './CampaignPeriod'\r\nimport CreateNewAccount from './CreateNewAccount'\r\nimport UserAccessAccount from './UserAccessAccount'\r\nimport RejectReason from './RejectReason'\r\nimport EmailTemplate from './EmailTemplate'\r\nimport Banner from './BannerScreen'\r\nimport LogoutScreen from './LogoutScreen'\r\nimport IndividualCollectorSuccess from './IndividualCollectorSuccess'\r\nimport GroupCollectorSuccess from './GroupCollectorSuccess'\r\nimport GroupSubmissionDetail from './GroupSubmissionDetail'\r\nimport GroupCollector from './GroupCollector'\r\nimport moment from 'moment'\r\nimport SearchScreen from './SearchScreen'\r\nimport SearchPassengerScreen from './SearchPassengerScreen'\r\nimport CardReplacementScreen from './CardReplacementScreen'\r\nimport Card from './Card'\r\nimport { LOCAL_STORAGE_LAST_ACTION_TIME } from '../constants/localStorageType'\r\nimport LoginScreen2 from './LoginScreen2'\r\nimport RedemptionTransactionDetailScreen from './RedemptionTransactionDetailScreen'\r\nimport AppealTransactionDetailScreen from './AppealTransactionDetailScreen'\r\nimport AdminIataScreen from './AdminIataScreen'\r\nimport SqApi from './SqApiScreen'\r\nimport PhysicalVoucherScreen from './PhysicalVoucherScreen'\r\nimport SearchGroupScreen from './SearchGroupScreen'\r\nimport SearchIssuanceSummaryScreen from './SearchIssuanceSummaryScreen'\r\nimport OCIDExchange from './OCIDExchangeScreen'\r\nimport PrintCard from './PrintCardScreen'\r\nimport PrintCardOnDemandScreen from './PrintCardOnDemandScreen'\r\nimport AppealTransactionScreen from './AppealTransactionScreen'\r\n\r\nclass Root extends Component {\r\n\tcomponentDidMount = () => {}\r\n\r\n\t_onGlobalClick = () => {\r\n\t\tlet lastActionTime = moment().format()\r\n\t\tlocalStorage.setItem(LOCAL_STORAGE_LAST_ACTION_TIME, lastActionTime)\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/*idx, position in duck's result*/}\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default Root\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport Root from './app/screens/Root.js';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport \"./web.config\";\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport logo from '../images/CTP_Logo_Final_Black.png'\r\n\r\nconst Logo = props => {\r\n const {width: w, invert} = props\r\n const style = {width: w ? w : '8rem'}\r\n if (invert) {\r\n style.filter = 'invert(1)'\r\n }\r\n return (\r\n \"logo\"\r\n )\r\n}\r\n\r\nLogo.propTypes = {\r\n width: PropTypes.string,\r\n invert: PropTypes.bool\r\n}\r\n\r\nexport default Logo"],"sourceRoot":""}