{"version":3,"sources":["shared/validation/errors.tsx","utils/request.ts","redux/actions/setLoadingStatus.ts","utils/local-storage.ts","types/toggles.ts","types/authTypes.ts","types/sharedTypes.ts","redux/actions/setMobileMenusStatus.ts","types/requestTypes.ts","api/restApiService.ts","redux/actions/auth.ts","api/auth/index.ts","icons/icons.tsx","components/mobile/OperationsMenuMobile.module.css","../../../src/components/app-accordion.tsx","../../../src/components/app-login-page.tsx","../../../src/components/app-navbar-user.tsx","../../../src/components/app-navbar-utils.tsx","../../../src/components/app-navbar.tsx","../../../src/components/app-pagination.tsx","../../../src/components/app-utils.tsx","../../../src/components/app-progress.tsx","../../../src/components/app-restore-account-page.tsx","../../../src/components/app-horizontal-line.tsx","../../../src/components/app-sidebar.tsx","../../../src/components/app-table.tsx","../../../src/components/app-simple-table.tsx","../../../src/utils/times.ts","../../../src/utils/tables.tsx","../../../src/entity/redux-action.ts","../../../src/entity/direction.ts","../../../src/entity/app-sidebar-item.ts","types/settingsTypes.ts","redux/actions/investor/fetchInvestorDetails.ts","types/masterTypes.ts","components/shared/SimpleInput.tsx","redux/actions/shared/fetchConfig.ts","redux/actions/master/fetchMasterDetails.ts","utils/date-time.ts","redux/actions/requests/fetchRequestsCount.ts","utils/validate-schema.ts","redux/actions/shared/fetchSummary.ts","utils/currency.ts","const/size.const.ts","utils/number.ts","types/investorTypes.ts","redux/actions/investor/fetchInvestors.ts","redux/actions/shared/fetchProfit.ts","redux/actions/master/fetchMasters.ts","redux/reducers/configReducer.ts","redux/reducers/authReducer.ts","redux/reducers/investor/investorsReducer.ts","redux/reducers/investor/investorReducer.ts","redux/reducers/master/masterReducer.ts","redux/reducers/shared/ordersReducer.ts","redux/reducers/shared/balanceOperationsReducer.ts","redux/reducers/master/mastersReducer.ts","redux/reducers/shared/profitReducer.ts","redux/reducers/master/volumeReducer.ts","redux/reducers/shared/generalInfoReducer.ts","redux/reducers/shared/createUserReducer.ts","redux/reducers/settings/settingsReducer.ts","redux/reducers/admin/adminsReducer.ts","redux/reducers/admin/adminReducer.ts","redux/reducers/loadingStatusReducer.ts","redux/reducers/journalReducer.ts","redux/reducers/shared/summaryReducer.ts","redux/reducers/requests/requestsReducer.ts","redux/reducers/feeAccountsReducer.ts","redux/reducers/mobileMenusStatusReducer.ts","redux/reducers/master/masterInvestorsOrders.ts","redux/reducers/maintenance/reportReducer.ts","redux/reducers/rootReducer.ts","redux/store.ts","styles/styles.ts","hooks/useWindowSize.ts","redux/actions/settings/mtServers.ts","redux/actions/settings/periods.ts","icons/English.svg","icons/Deutsch.svg","icons/French.svg","icons/Portugal.svg","icons/Spanish.svg","icons/Russian.svg","icons/Arabian.svg","icons/Japan.svg","icons/Korean.svg","icons/Georgia.svg","icons/Chinese.svg","redux/actions/shared/fetchOrders.ts","redux/actions/master/updateMaster.ts","redux/actions/investor/updateInvestor.ts","utils/value.ts","redux/actions/shared/fetchBalanceOperations.ts","redux/actions/shared/fetchServers.ts","redux/actions/shared/fetchCurrencies.ts","redux/actions/settings/master.ts","types/adminTypes.ts","redux/actions/investor/attachInvestor.ts","redux/actions/settings/admin.ts","redux/actions/settings/investor.ts","redux/actions/admin/editAdmin.ts","redux/actions/investor/detachInvestor.ts","redux/actions/shared/createUser.ts","redux/actions/master/fetchMasterInvestorsOrders.ts","utils/object.ts","redux/actions/requests/fetchRequests.ts","redux/actions/master/fetchMasterPaymentPeriods.ts","redux/actions/master/fetchVolume.ts","redux/actions/settings/callbackAddresses.ts","redux/actions/settings/server.ts","redux/actions/investor/massAttachDetachInvestors.ts","components/administrator/investorsReport/fetchInvestorsReport.ts","redux/actions/investor/investorDetail.ts","redux/actions/admin/fetchAdmins.ts","redux/actions/admin/fetchAdminDetails.ts","redux/actions/fetchLogs.ts","redux/actions/feeAccounts/fetchFeeAccounts.tsx","components/administrator/monitoring/fetchMonitoring.ts","redux/actions/maintenance/fetchAccountsParameters.ts","redux/actions/maintenance/fetchEditBalanceOperation.ts","redux/actions/maintenance/fetchInvestorsCheck.ts","redux/actions/maintenance/fetchLoadOrdersByTickets.ts","redux/actions/maintenance/fetchOrdersCompare.ts","redux/actions/maintenance/fetchOrdersRedistribute.ts","redux/actions/maintenance/fetchOrdersReload.ts","redux/actions/maintenance/fetchOrdersReopen.ts","redux/actions/maintenance/fetchPerformanceFeeCharge.ts","redux/actions/maintenance/fetchPositionCheckFix.ts","redux/actions/maintenance/fetchSendReport.ts","logos/logo-dark.png","components/administrator/investor/modals/InvestorEditModal.tsx","components/administrator/master/modals/MasterEditModal.tsx","logo-light.png","components/generalUser/GenUserNavbar.tsx","const/logo.const.ts","components/privateRoute/index.tsx","components/mobile/SoMobile.tsx","components/routes/Routes.tsx","components/mobile/BottomBarMobile.tsx","components/mobile/OperationsMenuMobile.tsx","components/mobile/LinkedAccountsMenuMobile.tsx","components/mobile/LanguagesMenuMobile.tsx","components/mobile/ConfirmConnectToMasterMenuMobile.tsx","utils/operationsMenuMobile.ts","components/mobile/ConfirmDisconnectFromMasterMenuMobile.tsx","utils/linkedAccountsMenuMobile.tsx","app.tsx","index.tsx"],"names":["history","createBrowserHistory","bottomRightToastPosition","position","toast","POSITION","BOTTOM_RIGHT","throwErrorMessage","e","error","id","message","Errors","throwSuccessMessage","values","success","checkResponseForErrors","response","api","isText","status","text","then","Error","JSON","parse","Code","Message","accountType","LocalStorageUtils","getValueFromLocalStorage","putValueToLocalStorage","stringify","page","window","location","pathname","store","dispatch","logoutUserAsync","catch","json","newCheckResponseForErrors","data","throwErrorMessageNew","Method","getRequestType","request","translationKey","Type","RequestType","ChangeBalance","Amount","ChangeCredit","ChangeFeeAccountsInfo","Attach","Detach","charAt","toLowerCase","slice","getRequestStatus","Status","RequestStatus","Approved","Canceled","Completed","Executing","New","Planned","Rejected","getBootstrapTextColor","type","headersBuilder","method","body","undefined","headers","getJwt","SET_LOADING_STATUS","CHECK_MT_SERVERS_UPDATE","SET_LOADING_STATUS_DOWNLOAD","SET_LOADING_STATUS_OPEN_ORDERS","SET_LOADING_STATUS_CLOSED_ORDERS","SET_LOADING_STATUS_BALANCE_OPERATIONS","SET_LOADING_STATUS_CONNECTED_INVESTORS","setLoadingStatus","setLoadingStatusDownload","checkMtServersUpdate","setLoadingStatusOpenOrders","setLoadingStatusClosedOrders","setLoadingStatusBalanceOperations","setLoadingStatusConnectedInvestors","putValuesToLocalStorage","key","localStorage","setItem","join","getValuesFromLocalStorage","searchResult","getItem","split","setValuesOnEvent","eventKey","onEvent","onstorage","event","value","removeValueFromLocalStorage","removeItem","localStorageKeyExists","VisibilityToggle","VisibilityToggleAdmin","StateToggle","StateToggleAdmin","StateRequestToggle","StateRequestToggleAdmin","BooleanToggle","AccountType","UserType","OrderType","ServerType","BalanceOperationType","Language","SummaryType","PaginationInfo","TotalRecords","TotalPages","CurrentPage","RecordsOnPage","GraphicsPeriodTypes","GraphicsPeriodTypesExt","AnnualManagementFeeMode","PerLotDealFeeMode","IncentiveAccount","Login","ServerName","IncentiveFee","ManagementFee","AnnualManagementFee","PerLotFee","PerDealFee","Mode","ByCurrentBalance","OrderMode","BalanceOperationTypesMasters","BalanceOperationTypesInvestors","FeeAccountSet","PerLotDealFee","PerDeal","Valid","SET_OPS_MENU_STATUS","SET_LINKED_ACCOUNTS_MENU_STATUS","SET_LANGUAGES_MENU_STATUS","SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS","SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS","setOpsMenuStatus","setLinkedAccountsMenuStatus","setLanguagesMenuStatus","setConnectToMasterConfirmationStatus","setDisconnectFromMasterConfirmationStatus","RequestPeriod","ChangeBalanceMethod","RequestSchedule","tokenName","url","handleSuccess","handleError","Promise","reject","create","cancel","axios","CancelToken","source","token","headerAuth","Authorization","service","cancelToken","interceptors","use","get","path","params","post","put","delete","this","cookies","postLogin","RestAPI","Cookies","removeJwt","remove","LOGIN","LOGOUT","LOGIN_START","LOGIN_SUCCESS","LOGIN_RESET_STATE","loginUserAC","user","loginUserAsync","username","password","rememberMe","fetch","POST","Username","Password","set","Token","maxAge","ExpiresIn","Date","now","toString","rememberURL","currentURL","push","loginUserSSOAsync","errorAuth","reload","Icons","DownloadIcon","color","size","icon","faDownload","LanguageIcon","faLanguage","FilterIcon","faFilter","DollarSignIcon","faDollarSign","PlusIcon","faPlus","FileAltIcon","faFileAlt","PencilIcon","faPencilAlt","UnlinkIcon","faUnlink","TrashIcon","faTrash","CogIcon","faCog","CogsIcon","faCogs","HistoryIcon","faHistory","RoundIcon","faCircle","SwitchIcon","enabled","faToggleOn","faToggleOff","OnIcon","OffIcon","PowerOnIcon","faPowerOff","TimesCircleIcon","faTimesCircle","RedoIcon","className","faRedo","SaveIcon","faSave","AlertIcon","faExclamationTriangle","LoadingCat","faCat","spin","LoadingSpinner","faCircleNotch","AngleDoubleDownIcon","faAngleDoubleDown","ArrowsAltH","faArrowsAltH","AngleDownIcon","faAngleDown","AngleDoubleUpIcon","faAngleDoubleUp","AngleUpIcon","faAngleUp","AngleLeftIcon","faAngleLeft","AngleRightIcon","faAngleRight","ArrowDown","faLongArrowAltDown","ArrowAltCircleLeft","faArrowAltCircleLeft","ArrowUp","faLongArrowAltUp","LinkIcon","faLink","TableIcon","faTable","CheckSquareIcon","faCheckSquare","SquareIcon","faSquare","EyeIcon","faEye","SearchIcon","faSearch","DropdownIcon","faSortDown","ArrowRight","faLongArrowAltRight","SignInIcon","faSignInAlt","UserIcon","faUser","UsersIcon","faUsers","EllipsisIcon","faEllipsisV","ChartAreaIcon","faChartArea","ExchangeIcon","faExchangeAlt","SlidersIcon","faSlidersH","SuitcaseIcon","faSuitcase","ClockIcon","faClock","BarsIcon","faBars","BellIcon","faBell","SignOutIcon","faSignOutAlt","CircleIcon","ArrowLeftIcon","faArrowLeft","ArrowRightIcon","faArrowRight","CalendarIcon","faCalendarAlt","module","exports","setTransitioningClass","DatePattern","Direction","PeriodTypes","CommissionType","AllocationMode","WithdrawalMethod","OperationType","RequestAutoExecutionMode","CreditAutoExecutionMode","AttachAutoExecutionMode","ICallbackAddresses","Address","CallbackTypes","RegularPeriodSettings","PeriodType","Daily","PeriodDay","PeriodTime","ReversedDays","PaymentPeriodSettings","Performance","ReportPeriodSettings","IncludeAllOpenOrders","EditCallbackAddressesType","AdminSettings","EmailNotifications","Default","OrdersCommissions","MasterSettings","CalcMasterFeeButton","MmConnectedInvestors","LockedWithdrawalsAndDisconnections","InvestorSettings","InvestorStatementButton","MasterListButton","MasterList","CalcInvestorFeeButton","ChangeSlTpButton","InvestorOpenOrdersTab","InvestorHistoryTab","MasterOpenOrdersTab","MasterHistoryTab","InvestorWithdrawButton","InvestorMmDetails","InvestorMmBalanceDetails","DetachAction","DepositNotification","WithdrawalNotification","ConnectNotification","DisconnectNotification","PerformanceFeeNotification","MetaTraderServerSettings","Guid","Name","TypeStr","FreeMarginCoef","StatusStr","FETCH_INVESTOR_DETAILS","FETCH_INVESTOR_DETAILS_FALSE","FETCH_INVESTOR_DETAILS_ATTACH_DETACH","fetchInvestorDetailsFalse","investor","investorDetails","fetchInvestorDetails","fetchInvestorDetailsFalseAsync","investorId","GET","finally","fetchInvestorDetailsAttachDetachAsync","admin","fetchInvestorDetailsAttachDetach","fetchInvestorDetailsAsync","MasterMode","AllocationModes","FundsType","RegularPeriod","Monthly","PaymentPeriod","AccountOptionsMaster","ShowMmOwnFunds","MmChangeFeeAccountsRequest","ConnectDisconnectRequestsManaging","OwnFunds","Id","Balance","Credit","Equity","EquityNoCredit","Profit","FreeMargin","FreeMarginNoCredit","AvailableFreeMargin","AvailableFreeMarginNoCredit","Master","MtServerType","Email","Currency","RegistrationDate","Private","Invisible","InvestorsCount","MinInvestment","IncentiveAccounts","Margin","MarginLevel","Normal","DisablingTime","TotalProfit","Info","Bio","TermsAndConditions","PaymentPeriods","StatementPeriods","UseDefaultStatementSettings","AccountOptions","MtServerStatus","MtServerStatusStr","So","SoMode","Off","MtMmAccountStatus","CreateMaster","LoadHistoryMonthCount","Server","UseDefaultPaymentSettings","ByBalance","IDefaultSorting","RegisterMaster","Comment","SimpleInput","state","valueKey","schema","placeholder","setState","labelTranslateKey","disabled","style","inputStyle","inline","acceptZero","validField","setValidField","intl","useIntl","errorMessageBody","React","modified","setModified","isInvalid","wrapper","target","Number","newState","InputUtils","validateSchema","errors","map","index","Control","Feedback","desktopBody","Label","formatMessage","autoComplete","onChange","fontSize","mobileBody","xs","fontWeight","borderRight","borderLeft","borderTop","borderRadius","Group","FETCH_CONFIG","FETCH_LANG_JSON","FETCH_CONFIG_SHARED","fetchSharedSettingsAsync","config","fetchLanguageJSONAsync","lang","langFile","fetchConfigAsync","flags","hideRegisterButton","showMmRegistrator","customColors","customColorsGeneralUser","FETCH_MASTER_DETAILS","FETCH_MASTER_DETAILS_DEFAULT","RESET_MASTER_DETAILS","fetchMasterDetails","master","masterDetails","fetchMasterDetailsDefault","masterDetailsDefault","resetMasterDetailsAC","fetchMasterDetailsAsync","masterId","notAdmin","PAMMDateTime","dateTimeString","date","time","year","month","day","hours","minutes","substring","getDateEN","getTimeEN","getDateRU","getTimeRU","timeZone","Math","abs","dateObj","setUTCFullYear","setUTCMonth","setUTCDate","timeConverter","timestamp","fromJournal","a","getFullYear","getMonth","getDate","hour","getHours","min","getMinutes","sec","getSeconds","getDateFortnightAgo","setUTCHours","getSpecificDate","daysAgo","hoursAgo","getUTCHours","getUTCDate","isDateValid","Object","prototype","call","isWeekDay","getDay","isLeapYear","getFromDateForRequest","startDate","fromMonth","fromDay","getToDateForRequest","endDate","toMonth","toDay","getOneDayAhead","returnDateArray","leapYear","amountToIncrement","dayOfWeek","dateObject","getUnixDawnOfTime","getHourAgo","hourAgo","FETCH_REQUESTS_COUNT","fetchRequestsCountAsync","count","fetchRequestsCount","validateSync","FETCH_DEPOSITS","FETCH_INVESTMENTS","FETCH_PROFIT","FETCH_PROFIT_PER_PERIOD","FETCH_VOLUMES","FETCH_INVESTORS_SUMMARY","fetchSummaryAsync","period","summaryType","dateFrom","dateTo","calcMethod","base","query","dateTimeDateFrom","dateTimeDateTo","summary","fetchSummary","Deposits","Investments","Volumes","Investors","getSummaryActionType","getCurrencySymbol","currency","currenciesConfig","result","keys","includes","mobileWidth","phoneToTabletBreakPoint","spaceSeparatedThousands","noDecimals","masterDetailsBox","toFixed","abbreviatedNumber","isNaN","x","x1","x2","length","rgx","test","replace","getEquityOverInvestments","InvestorMode","AccountOptionsInvestor","InvestorCreditButton","AnnualManagementFeeNotification","UpdateBalanceType","UpdateCreditType","IncentiveSummary","Investor","LinkToken","Country","Phone","Sl","Tp","SlPercent","TpPercent","SoPercent","EquityCallLevel","SlMode","TpMode","EquityCallLevelMode","MasterId","IsOwnFunds","LastChargeBalance","LastChargeTime","AttachTime","CreationTime","HighWaterMark","CurrentProfit","IncentiveAccountsServer","IsTestInvestor","MmName","DisconnectEquity","CreateInvestor","UpdateInvestor","LimitOrderTypes","CreateInvestorFeeSetFlags","performanceFeeEnabled","managementFeeEnabled","annualManagementFeeEnabled","perLotDealFeeEnabled","RegisterInvestor","FETCH_INVESTORS","RESET_DATA_INVESTORS","UPDATE_INVESTORS","SELECTED_LINKED_ACCOUNT","selectedLinkedAccountAC","isSelected","resetDataInvestorsAC","updateInvestorsAC","investors","fetchInvestorsAsync","linkToken","filter","mmId","limit","sortField","direction","queryString","Data","paginationInfo","FETCH_ARRAY_OF_PROFITS","FETCH_PROFIT_OVERALL","fetchProfitAsync","isArray","profitFortnight","fetchProfitOverall","fetchProfit","fetchArrayOfProfits","FETCH_MASTERS","FETCH_MASTERS_DEFAULT","getInfoMastersThunkAC","getState","configReducer","userLS","userInfoAtLSJson","generateAccountOptions","generateFetchRoute","Admin","userData","updateUser","AccountInfo","fetchMastersAsync","showInactive","showTest","hideNegativeProfitMasters","returnAccountOptionsValues","mastersDefault","masters","fetchMasters","initialState","copyright","customColor","languages","loginPageDisclaimer","redirectRegistrationURL","welcomeMessage","defaultLanguage","defaultSorting","sharedConfig","action","isAuthenticated","isLoading","authReducer","investorsReport","investorsReducer","FETCH_INVESTORS_REPORT","investorFalse","investorAttachDetachRequests","investorReducer","RESET_DETAIL_INVESTOR","masterDefault","paymentPeriods","masterReducer","FETCH_MASTER_PAYMENT_PERIODS","openOrders","orders","closedOrders","ordersReducer","FETCH_OPEN_ORDERS","FETCH_CLOSED_ORDERS","balanceOperations","operations","totalAccruedToBalance","totalAccruedToCredit","balanceOperationsReducer","FETCH_BALANCE_OPERATIONS","BalanceOperations","TotalAccruedToBalance","TotalAccruedToCredit","mastersReducer","profit","profitPerPeriod","profitOverall","arrayOfProfits","profitReducer","arrayOfProfitsCopy","volumePerPeriod","volumeReducer","FETCH_VOLUME","volumeFortnight","servers","currencies","generalInfoReducer","FETCH_SERVERS","FETCH_CURRENCIES","createdUser","createUserReducer","CREATE_USER","adminSettings","masterSettings","investorSettings","mtServersSettings","mtServersSettingsDisabled","mtServersSettingsEnabled","callbackAddresses","statementPeriodsSettings","reportPeriodsSettings","paymentPeriodsSettings","serverSettings","FETCH_ADMIN_SETTINGS","settings","FETCH_MASTER_SETTINGS","FETCH_INVESTOR_SETTINGS","FETCH_CONNECTED_MT_SERVERS","FETCH_MT_SERVERS_DISABLED","FETCH_MT_SERVERS_ENABLED","FETCH_CALLBACK_ADDRESSES","addresses","FETCH_STATEMENT_PERIODS_SETTINGS","FETCH_REPORT_PERIODS_SETTINGS","FETCH_PAYMENT_PERIODS_SETTINGS","FETCH_SERVER_SETTINGS","admins","adminsReducer","FETCH_ADMINS","adminReducer","FETCH_ADMIN_DETAILS","adminDetails","EDIT_ADMIN","editedAdmin","isLoadingDownload","checkMtServers","isLoadingOpenOrders","isLoadingClosedOrders","isLoadingBalanceOperations","isLoadingConnectedInvestors","loadingStatusReducer","logs","JournalReducer","FETCH_LOGS","deposits","investments","volumes","summaryReducer","requests","requestsReducer","FETCH_REQUESTS","feeAccounts","feeAccountsReducer","FETCH_FEE_ACCOUNTS","showOpsMenu","showlinkedAccountsMenu","showLanguagesMenu","showConnectToMasterConfirmation","showDisconnectFromMasterConfirmation","mobileMenusStatusReducer","masterInvestorsOrdersReducer","FETCH_MASTER_INVESTORS_ORDERS","sendReport","loadOrders","ordersReload","orderReopen","ordersCompare","balanceOperation","ordersRedistribute","parametersAccounts","parametersInvestors","positionCheckFix","performanceFeeCharge","parameters","massAttach","reportReducer","FETCH_SEND_REPORT","FETCH_LOAD_ORDERS","FETCH_ORDERS_RELOAD","FETCH_ORDERS_REOPEN","FETCH_ORDERS_COMPARE","FETCH_EDIT_BALANCE_OPERATION","FETCH_ORDERS_REDISTRIBUTE","FETCH_ACCOUNT_PARAMETERS","FETCH_INVESTORS_CHECK_PARAMETERS","FETCH_POSITION_CHECK_FIX","FETCH_PERFORMANCE_FEE_CHARGE","FETCH_MONITORING_ACTION","FETCH_MASS_ATTACH","rootReducer","combineReducers","settingsReducer","journalReducer","createStore","applyMiddleware","thunkMiddleware","mobileBodyWithNavbar","paddingTop","marginBottom","mobileBodyWithEllipsis","shadowBox","boxShadow","backgroundColor","margin","padding","pageButton","height","width","border","marginLeft","directionSwitchStyle","marginTop","paddingLeft","paddingRight","sortBySelectStyle","MozAppearance","WebkitAppearance","useWindowResize","useState","setSize","useLayoutEffect","updateSize","innerWidth","innerHeight","addEventListener","removeEventListener","fetchMtServersSettings","editServerSettingsAsync","fetchMtServersSettingsAsync","fetchMtServersSettingsEnabled","getActionConst","actionName","fetchPeriodsSettings","periodsType","editPeriodsSettingsAsync","Periods","fetchPeriodsSettingsAsync","fetchOrdersAsync","mtServerGuid","delimiter","Open","Closed","fetchClosedOrders","updateMaster","updateInvestor","fetchBalanceOperationsAsync","userType","typeFilters","filtersStateObject","filters","entries","forEach","entry","getTypeFilters","fetchServersAsync","fetchServers","fetchCurrenciesAsync","fetchCurrencies","fetchMasterSettings","editMasterSettingsAsync","editMasterSettingsIdAsync","fetchMasterSettingsAsync","IAdminMode","AccountOptionsAdmin","Hide","ViewOnly","ModeCode","CreateAdmin","createRequestToAttachInvestor","isMobile","MmId","parseInt","AccountId","attachInvestor","fetchAdminSettings","editAdminSettingsAsync","fetchAdminSettingsAsync","fetchInvestorSettings","editInvestorSettingsAsync","editInvestorSettingsIdAsync","fetchInvestorSettingsAsync","editAdminAsync","editAdmin","createRequestToDetachInvestor","detachInvestor","createUserAsync","endpoint","createUser","toUpperCase","fetchMasterInvestorsOrdersAsync","orderId","areAllPropsEQFalse","object","every","property","convertAllPropsToTrue","objectCopy","fetchRequestsAsync","createdFrom","createdTo","statusFilters","idSearch","mmChangeFeeAccountsRequestOff","verifiedTypeFilters","verifiedStatusFilters","round","getTime","fetchMasterPaymentPeriodsAsync","fetchMasterPaymentPeriods","fetchVolumeAsync","fetchCallbackAddresses","fetchCallbackAddressesAsync","editFetchCallbackAddressesAsync","fetchServerSettings","fetchServerSettingsAsync","fetchMassAttach","massDetachInvestors","massAttachInvestors","fetchInvestorsReportAsync","sortDirection","filtered","resetDetailInvestorAC","fetchAdminsAsync","fetchAdmins","fetchAdminDetailsAsync","adminId","fetchAdminDetails","fetchLogsAsync","search","startDateTimestamp","endDateTimestamp","fetchFeeAccountsAsync","fetchMonitoringAsync","fetchMonitoringAction","fetchAccountsParametersAsync","parameter","account","fetchAccountsParameters","fetchEditBalanceOperationAsync","operationId","fetchEditBalanceOperation","fetchInvestorsParametersAsync","fetchInvestorsParameters","fetchLoadOrdersByTicketsAsync","fetchLoadOrders","fetchOrdersCompareAsync","fetchOrdersCompare","fetchOrdersRedistributeAsync","fetchOrdersReloadAsync","fetchOrdersReload","fetchOrderReopenAsync","fetchOrderReopen","fetchPerformanceFeeChargeAsync","fetchPerformanceFeeCharge","fetchPositionCheckFixAsync","fetchIPositionCheckFix","fetchSendReportAsync","fetchSendReport","InvestorEditModal","show","toggleVisibility","useDispatch","useSelector","userJSON","setUser","useEffect","editInvestorSchema","Yup","required","max","matches","val","nullable","transform","v","o","originalInvestor","editInvestorForm","setEditInvestorForm","investorForTests","setInvestorForTests","handleCancel","isUpdateDisabled","shape","btnStyle","borderColor","onHide","centered","scrollable","Header","closeButton","Title","Body","Check","label","checked","Footer","variant","onClick","handleSubmit","MasterEditModal","editMasterSchema","originalMaster","editMasterForm","setEditMasterForm","masterForTests","setMasterForTests","privateMaster","setPrivateMaster","invisibleMaster","setInvisibleMaster","controlId","as","handleInputChange","Test","Disabled","withRouter","signOutFunc","currentLang","onLangChange","requestsCount","linkedAccounts","showEditInvestorModal","setShowEditInvestorModal","showEditMasterModal","setShowEditMasterModal","linkedId","background","light","additionalText","marginRight","btnStyleActive","dark","linkStyleActive","borderBottom","toggleModalVisibility","getLanguagesFlags","englishIcon","deutschIcon","frenchIcon","portugalIcon","spanishIcon","georgiaIcon","arabianIcon","koreanIcon","russianIcon","japanIcon","chineseIcon","languagesItems","Dropdown","Item","src","alt","Navbar","zIndex","maxWidth","to","T4BLogo","maxHeight","Button","RequestTab","minWidth","Toggle","en","Menu","APP_LOGO","logo","href","PrivateRoute","component","rest","render","SoMobile","equityOverInvestments","setEquityOverInvestments","creditShow","CountCreditInRiskControl","bg","fixed","Row","Col","orderType","getSoSlTpValue","lazy","InvestorsList","InvestorDetails","MastersList","MasterDetails","AdminDetails","Admins","Settings","CreateUser","Journal","AdminDashboard","RequestsList","FeeAccountsList","OrdersList","ResetPassword","Register","MaintenancePage","Monitoring","MassAttachDetach","InvestorsReport","LoginMobile","MasterDetailsMobile","MastersListMobile","RequestsListMobile","RequestsFiltersMobile","InvestorDetailsMobile","ProfileMobile","ChangeBalanceCreditMobile","CommissionsMobile","DownloadStatementMobile","HistoryMobile","OrderMobile","BalanceOperationMobile","BioMobile","SlTpMobile","RegisterUserMobile","RegisterUserSelectMobile","ConnectedInvestorsMobile","ConnectedInvestorDetailMobile","GenUserMastersList","GenUserRequestsList","InvestorDashboard","MasterDashboard","AppRoutes","signInFunc","showMobileVersion","setShowMobileVersion","listen","routes","redirectAfterLogin","loginPage","fillRoutes","fallback","currentAddress","shouldDashboardButtonLightUp","onlyTwoButtonsActive","buttonStyle","display","justifyContent","alignItems","activeButtonStyle","textStyle","activeTextStyle","textDecoration","outline","paddingBottom","random","menuHeight","onSwipe","onCancel","customColorsGenUser","showDisconnectFromThisMasterWarning","bottom","transition","iconStyle","onPointerMove","onPointerCancel","OperationsMenuMobileCss","link","styleRow","mb","LinkedAccountsMenuMobile","setSelectedLinkedAccountIndex","findIndex","linkedAccountsLinks","linkedAccount","LanguagesMenuMobile","langLinks","ConfirmConnectToMasterMenu","useHistory","WebkitBoxShadow","getOperationsMenuHeight","accountOptions","Disconnect","ConfirmDisconnectFromMasterMenu","getLinkedAccountsMenuMobileHeight","App","useLocation","langJSON","setLang","languagesList","sidebarHidden","setSidebarHidden","tokenState","setTokenState","tokenExpired","isTokenExpired","setTimeout","langKey","exitButton","Nav","Link","data-testid","showModal","setShowModal","sidebarItems","translateKey","isExternal","IconItem","tooltipKey","faHandHoldingDollar","faUserTie","faPercent","faUserPlus","faNetworkWired","faFileLines","faList","faBook","faDesktop","licenceModal","Modal","genUserCopyrightBar","sidebarComponent","progressItems","currentLocation","onLicenceClick","isScrollable","showConfirmConnectToMasterMenu","showConfirmDisconnectFromMasterMenu","touches","handleSwipe","pageY","menu","shadow","overlayscrollbarsOptions","overflowBehavior","scrollbars","autoHide","autoHideDelay","locale","messages","showAdminNavbar","i18nLangs","currentLangKey","onSidebarHandlerClick","onPointerDown","options","ReactDOM","document","getElementById"],"mappings":"6GAAA,qEASMA,EAAUC,cAEVC,EAA2B,CAAEC,SAAUC,IAAMC,SAASC,cAY5D,SAASC,EAAkBC,GACzBJ,IAAMK,MAAM,kBAAC,IAAD,CAAkBC,GAAIF,EAAEG,UAAaT,GAsEnD,IAAMU,EAAS,CACbL,oBACAM,oBArEF,SAA6BF,EAAiBG,GACxCA,EACFV,IAAMW,QAAQ,kBAAC,IAAD,CAAkBL,GAAIC,EAASG,OAAQA,IAAYZ,GAEjEE,IAAMW,QAAQ,kBAAC,IAAD,CAAkBL,GAAIC,IAAaT,IAkEnDc,uBA9DF,SAAgCC,EAAoBC,GAAgD,IAAnCC,EAAkC,wDACjG,cAAQF,QAAR,IAAQA,OAAR,EAAQA,EAAUG,QAEhB,KAAK,IAEH,OAAOH,EAASI,OAAOC,MAAK,SAACD,GAC3B,MAAM,IAAIE,MAAJ,UAAaC,KAAKC,MAAMJ,GAAMK,KAA9B,aAAuCF,KAAKC,MAAMJ,GAAMM,aAIlE,KAAK,IACH,IAAMC,EAAcC,IAAkBC,yBAAyB,eAG/D,OAFAD,IAAkBE,uBAAuB,eAAgBP,KAAKQ,UAAU,CAACC,KAAMC,OAAOC,SAASC,SAAUR,YAAaA,GAAe,MACrIS,IAAMC,SAASC,YAAgBrB,EAAKlB,GAAS,IACtCiB,EAASI,OAAOC,MAAK,SAACD,GAC3B,MAAM,IAAIE,MAAJ,UAAaC,KAAKC,MAAMJ,GAAMK,KAA9B,aAAuCF,KAAKC,MAAMJ,GAAMM,aAIlE,KAAK,IAML,KAAK,IAML,KAAK,IACH,OAAOV,EAASI,OAAOC,MAAK,SAACD,GAC3B,MAAM,IAAIE,MAAJ,UAAaC,KAAKC,MAAMJ,GAAMK,KAA9B,aAAuCF,KAAKC,MAAMJ,GAAMM,aAGlE,QACE,OAAIR,EACKF,EAASI,OAAOmB,OAAM,kBAAMjC,EAAkBgB,MAAM,mBAEtDN,EAASwB,OAAOD,OAAM,kBAAMjC,EAAkBgB,MAAM,qBAuB/DmB,0BAjBF,SAAmCzB,EAA0CC,GAC3E,cAAQD,QAAR,IAAQA,OAAR,EAAQA,EAAUG,QAEhB,KAAK,IACHiB,IAAMC,SAASC,YAAgBrB,EAAKlB,IACpC,MAEF,QAAU,IAAD,IACP,MAAM,IAAIuB,MAAJ,UAAaC,KAAKC,MAAL,OAAWR,QAAX,IAAWA,GAAX,UAAWA,EAAU0B,YAArB,aAAW,EAAgBjB,MAAxC,oBAAkDT,QAAlD,IAAkDA,GAAlD,UAAkDA,EAAU0B,YAA5D,aAAkD,EAAgBhB,YAU5EiB,qBAhF2B,SAACnC,GAC5BL,IAAMK,MAAM,kBAAC,IAAD,CAAkBC,GAAID,EAAMkB,UAAazB,KAkFxCU,O,6BCtGf,4IAGYiC,EAHZ,iB,SAGYA,K,UAAAA,E,aAAAA,M,KAKZ,IAWaC,EAAiB,SAACC,EAAcC,GAC3C,OAAQD,EAAQE,MACd,KAAKC,IAAYC,cACf,OAAIJ,EAAQK,OAAS,EACZJ,EAAiB,2BAA6B,aAGhDA,EAAiB,wBAA0B,UACpD,KAAKE,IAAYG,aACf,OAAIN,EAAQK,OAAS,EACZJ,EAAiB,0BAA4B,YAG/CA,EAAiB,yBAA2B,WACrD,KAAKE,IAAYI,sBACf,OAAON,EAAiB,oCAAsC,yBAChE,KAAKE,IAAYK,OACf,OAAOP,EAAiB,wBAA0B,UACpD,KAAKE,IAAYM,OACf,OAAOR,EAAiB,2BAA6B,aACvD,QACE,OAAOA,EAAc,kCAA8BD,EAAQE,KAAKQ,OAAO,GAAGC,cAAgBX,EAAQE,KAAKU,MAAM,IAAOZ,EAAQE,OAIrHW,EAAmB,SAACb,EAAcC,GAC7C,OAAQD,EAAQc,QACd,KAAKC,IAAcC,SACf,OAAOf,EAAiB,2BAA6B,WACzD,KAAKc,IAAcE,SACf,OAAOhB,EAAiB,2BAA6B,WACzD,KAAKc,IAAcG,UACjB,OAAOjB,EAAiB,4BAA8B,YACxD,KAAKc,IAAcvC,MACjB,OAAOyB,EAAiB,wBAA0B,QACpD,KAAKc,IAAcI,UACjB,OAAOlB,EAAiB,4BAA8B,YACxD,KAAKc,IAAcK,IACjB,OAAOnB,EAAiB,sBAAwB,MAClD,KAAKc,IAAcM,QACjB,OAAOpB,EAAiB,0BAA4B,UACtD,KAAKc,IAAcO,SACjB,OAAOrB,EAAiB,2BAA6B,WACvD,QACE,MAAwB,KAIjBsB,EAAwB,SAACC,GACpC,OAAQA,GACJ,KAAKT,IAAcI,UACnB,KAAKJ,IAAcM,QACf,MAAO,eAEX,KAAKN,IAAcC,SACnB,KAAKD,IAAcG,UACf,MAAO,eAEX,KAAKH,IAAcO,SACnB,KAAKP,IAAcvC,MACnB,KAAKuC,IAAcE,SACf,MAAO,cAEX,QACI,MAAO,cAKFQ,IAhFQ,SAACC,EAAgBC,GACtC,MAAO,CACLD,SACAC,KAAMA,EAAOlD,KAAKQ,UAAU0C,QAAQC,EACpCC,QAAS,CACP,eAAgB,mBAChB,cAAgB,UAAhB,OAA2BC,mB,8BCdjC,4dAAO,IAAMC,EAAqB,sBACrBC,EAA0B,0BAC1BC,EAA8B,8BAC9BC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAwC,wCACxCC,EAAyC,yCAOzCC,EAAmB,SAACjE,GAC/B,MAAO,CACLmD,KAAMO,EACN1D,WAISkE,EAA2B,SAAClE,GACvC,MAAO,CACLmD,KAAMS,EACN5D,WAISmE,EAAuB,SAACnE,GACnC,MAAO,CACLmD,KAAMQ,EACN3D,WAISoE,EAA6B,SAACpE,GACzC,MAAO,CACLmD,KAAMU,EACN7D,WAISqE,EAA+B,SAACrE,GAC3C,MAAO,CACLmD,KAAMW,EACN9D,WAISsE,EAAoC,SAACtE,GAChD,MAAO,CACLmD,KAAMY,EACN/D,WAISuE,EAAqC,SAACvE,GACjD,MAAO,CACLmD,KAAMa,EACNhE,WAGWiE,O,kCC3Bf,IAAMxD,EAAoB,CACxB+D,wBAnCF,SAAiCC,EAAa/E,GAC5CgF,aAAaC,QAAQF,EAAK/E,EAAOkF,KAAK,OAmCtCC,0BAxBF,SAAmCJ,GACjC,IAAMK,EAAeJ,aAAaK,QAAQN,GAC1C,OAAOK,EAAeA,EAAaE,MAAM,KAAO,MAuBhDC,iBAZF,SAA0BC,EAAkBC,GAC1CrE,OAAOsE,UAAY,SAACC,GACdA,EAAMZ,MAAQS,GAChBC,MAUJxE,uBAlCF,SAAgC8D,EAAaa,GAC3CZ,aAAaC,QAAQF,EAAKa,IAkC1BC,4BAtBF,SAAqCd,GACnCC,aAAac,WAAWf,IAsBxBgB,sBAnBF,SAA+BhB,GAC7B,OAAqC,OAA9BC,aAAaK,QAAQN,IAmB5B/D,yBAjCF,SAAkC+D,GAChC,OAAOC,aAAaK,QAAQN,KAmCfhE,O,+BC5CR,IAAKiF,EAMAC,EAKAC,EAMAC,EAKAC,EAOAC,EAMAC,EAnCZ,4M,SAAYN,K,YAAAA,E,YAAAA,E,mBAAAA,M,cAMAC,K,YAAAA,E,aAAAA,M,cAKAC,K,QAAAA,E,UAAAA,E,mBAAAA,M,cAMAC,K,QAAAA,E,WAAAA,M,cAKAC,K,QAAAA,E,UAAAA,E,kBAAAA,E,mBAAAA,M,cAOAC,K,QAAAA,E,UAAAA,E,mBAAAA,M,cAMAC,K,YAAAA,E,eAAAA,M,oCCrBL,IAAKC,EAAZ,kC,SAAYA,K,cAAAA,E,cAAAA,E,oBAAAA,E,iBAAAA,M,+bCdAC,EAMAC,EAKAC,E,kBAXAF,K,oBAAAA,E,gBAAAA,E,eAAAA,M,cAMAC,K,YAAAA,E,iBAAAA,M,cAKAC,O,aAAAA,I,cAAAA,M,KAKL,IAUKC,G,SAAAA,K,kBAAAA,E,wBAAAA,E,kBAAAA,E,oBAAAA,E,0BAAAA,E,8BAAAA,E,wBAAAA,E,sCAAAA,E,YAAAA,E,2CAAAA,M,KAaL,IAmBKC,EAKAC,EAxBCC,EAAb,sCACEC,aAAe,EADjB,KAEEC,WAAa,EAFf,KAGEC,YAAc,EAHhB,KAIEC,cAAgB,I,SAeNN,K,QAAAA,E,SAAAA,M,cAKAC,K,oBAAAA,E,0BAAAA,E,gBAAAA,E,kBAAAA,E,uBAAAA,M,KAQL,IAMKM,EASAC,EAUAC,G,SAnBAF,K,YAAAA,E,UAAAA,E,YAAAA,E,sBAAAA,E,cAAAA,E,aAAAA,M,cASAC,K,YAAAA,E,UAAAA,E,YAAAA,E,sBAAAA,E,cAAAA,E,YAAAA,E,WAAAA,M,cAUAC,K,oCAAAA,E,2CAAAA,M,KAKL,IAWKC,EAXCC,EAAb,sCACEC,MAAQ,EADV,KAEEC,WAAc,GAFhB,KAGEC,aAAoB,EAHtB,KAIEC,cAAqB,EAJvB,KAKEC,oBAA2B,EAL7B,KAMEC,UAAiB,EANnB,KAOEC,WAAkB,EAPpB,KAQEC,KAAYV,EAAwBW,mB,SAG1BV,K,gBAAAA,E,mBAAAA,M,KAKL,IAiBKW,EA2BAC,EAqBAC,EAjECC,EAAb,sCAGEZ,MAAQ,GAHV,KAIEE,aAAe,EAJjB,KAKEC,cAAgB,EALlB,KAMEC,oBAAsB,EANxB,KAOEP,wBAA0BA,EAAwBW,iBAPpD,KAQEK,cAAgB,EARlB,KASEf,kBAAoBA,EAAkBgB,QATxC,KAUEC,OAAQ,I,SAOEN,K,UAAAA,E,kBAAAA,E,cAAAA,E,gBAAAA,E,mBAAAA,M,cA2BAC,K,kBAAAA,E,wBAAAA,E,kBAAAA,E,oBAAAA,E,0BAAAA,E,8BAAAA,E,0CAAAA,E,wBAAAA,E,gCAAAA,E,kBAAAA,E,YAAAA,E,sCAAAA,E,gBAAAA,E,qCAAAA,E,qCAAAA,E,+BAAAA,E,sCAAAA,M,cAqBAC,K,kBAAAA,E,oBAAAA,E,0BAAAA,E,8BAAAA,E,0CAAAA,E,wBAAAA,E,gCAAAA,E,kBAAAA,E,YAAAA,E,sCAAAA,E,gBAAAA,E,qCAAAA,E,sCAAAA,M,wCCtLZ,oVAAO,IAAMK,EAAsB,uBACtBC,EAAkC,kCAClCC,EAA4B,4BAC5BC,EAA4C,4CAC5CC,EAAiD,iDAOjDC,EAAmB,SAACvI,GAC/B,MAAO,CACLmD,KAAM+E,EACNlI,WAISwI,EAA8B,SAACxI,GAC1C,MAAO,CACLmD,KAAMgF,EACNnI,WAISyI,EAAyB,SAACzI,GACrC,MAAO,CACLmD,KAAMiF,EACNpI,WAIS0I,EAAuC,SAAC1I,GACnD,MAAO,CACLmD,KAAMkF,EACNrI,WAIS2I,EAA4C,SAAC3I,GACxD,MAAO,CACLmD,KAAMmF,EACNtI,Y,2KC1CQ8B,EAYAY,E,gBAZAZ,K,gCAAAA,E,oBAAAA,E,gBAAAA,E,gBAAAA,E,8CAAAA,E,8BAAAA,E,4BAAAA,E,kBAAAA,E,yBAAAA,M,cAYAY,K,oBAAAA,E,UAAAA,E,kBAAAA,E,sBAAAA,E,sBAAAA,E,oBAAAA,E,oBAAAA,E,eAAAA,M,KAWL,IA2BKkG,EASAC,EAKAC,G,SAdAF,K,YAAAA,E,UAAAA,E,YAAAA,E,sBAAAA,E,cAAAA,E,aAAAA,M,cASAC,K,wBAAAA,E,6BAAAA,M,cAKAC,K,kBAAAA,E,mBAAAA,M,2cCSG,MAhEb,aAAgC,IAAD,OAAnBC,EAAmB,uDAAP,MAAO,yBAJ/BC,SAI+B,OAF/BD,eAE+B,OAK/BE,cAAgB,SAACpJ,GAAD,OAA4CA,GAL7B,KAO/BqJ,YAAc,SAAC7J,GAEb,OAAO8J,QAAQC,OAAO/J,IATO,KAY/BgK,OAAS,SAAC7F,GACR,IAAM8F,EAASC,IAAMC,YAAYC,SAC3BC,EAAQhF,aAAaK,QAAQ,EAAKgE,WAClCY,EAAaD,GAAS,CAAEE,cAAc,UAAD,OAAYF,IACjDG,EAAUN,IAAMF,OAAO,CAC3B7F,QAAQ,eACHA,EADE,GAEFmG,GAELG,YAAaR,EAAOI,QAGtB,OADAG,EAAQE,aAAalK,SAASmK,IAAI,EAAKf,cAAe,EAAKC,aACpDW,GAxBsB,KA2B/BI,IAAM,WAA8D,IAA7DC,EAA4D,uDAArD,GAAIC,EAAiD,uCAAhC3G,EAAgC,uCAC3DqG,EAAU,EAAKR,OAAO7F,GAC5B,OAAOqG,EAAQlI,QAAQ,CACrB0B,OAAQ,MACR2F,IAAI,GAAD,OAAK,EAAKA,KAAV,OAAgBkB,GACnBC,YAhC2B,KAoC/BC,KAAO,WAAgE,IAA/DF,EAA8D,uDAAvD,GAAI3I,EAAmD,uDAApC,GAAIiC,EAAgC,uCAC9DqG,EAAU,EAAKR,OAAO7F,GAC5B,OAAOqG,EAAQlI,QAAQ,CACrB0B,OAAQ,OACR2F,IAAI,GAAD,OAAK,EAAKA,KAAV,OAAgBkB,GACnB3I,UAzC2B,KA6C/B8I,IAAM,WAAgE,IAA/DH,EAA8D,uDAAvD,GAAI3I,EAAmD,uDAApC,GAAIiC,EAAgC,uCAC7DqG,EAAU,EAAKR,OAAO7F,GAC5B,OAAOqG,EAAQlI,QAAQ,CACrB0B,OAAQ,MACR2F,IAAI,GAAD,OAAK,EAAKA,KAAV,OAAgBkB,GACnB3I,UAlD2B,KAsD/B+I,OAAS,WAAkE,IAAjEJ,EAAgE,uDAAzD,GAAIC,EAAqD,uDAApC,GAAI3G,EAAgC,uCAClEqG,EAAU,EAAKR,OAAO7F,GAC5B,OAAOqG,EAAQlI,QAAQ,CACrB0B,OAAQ,SACR2F,IAAI,GAAD,OAAK,EAAKA,KAAV,OAAgBkB,GACnBC,YA1DFI,KAAKvB,IAAMvI,IAAkBC,yBAAyB,WAAa,GACnE6J,KAAKxB,UAAYA,GCHfyB,GCDS,I,sCAJbC,UAAY,SAAClJ,GAAD,OACVmJ,EAAQN,KAAK,cAAe7I,KDIhB,IAAIoJ,KAEb,SAASlH,IACd,OAAO+G,EAAQP,IAAI,OAGd,SAASW,IACdJ,EAAQK,OAAO,OAGV,IAAMC,EAAQ,QACRC,EAAS,SACTC,EAAc,cACdC,EAAgB,gBAChBC,EAAoB,oBAO3BC,EAAc,SAACC,GAAD,MAA4B,CAAEjI,KAAM2H,EAAOM,SAUzDC,EAAiB,SACrBvL,EACAwL,EACAC,EACAC,EACA5M,GAEA,OAAO,SAACsC,GACNuK,MAAM,GAAD,OACA3L,EADA,eAEHsD,YAAe3B,IAAOiK,KAAM,CAC1BC,SAAUL,EACVM,SAAUL,EACVC,gBAGDtL,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACkL,GACLZ,EAAQqB,IAAI,MAAOT,EAAKU,MAAO,CAAE5B,KAAM,IAAK6B,OAAyB,IAAjBX,EAAKY,YACzDvL,IAAkBE,uBAChB,OACCsL,KAAKC,MAAyB,IAAjBd,EAAKY,WAAkBG,mBAEhCf,EAAKU,MACZrL,IAAkBE,uBAAuB,cAAeyK,EAAKnF,aAC7DxF,IAAkBE,uBAAuB,OAAQP,KAAKQ,UAAUwK,IAChE,IAAMgB,EAAc3L,IAAkBC,yBAAyB,gBAG/D,OAFAQ,EAASiK,EAAYC,IACrB3K,IAAkBE,uBAAuB,kBAAmB,QACrDyL,KAERlM,MAAK,SAACkM,GACL,IAAMC,EAAavL,OAAOC,SAASC,SAC7BR,EAAcC,IAAkBC,yBAAyB,eAC5D0L,GAAe5L,IAAgBJ,KAAKC,MAAM+L,GAAa5L,aAA8B,WAAf6L,EACvEzN,EAAQ0N,KAAR,UAAgBlM,KAAKC,MAAM+L,GAAavL,OAEnB,WAAfwL,EACNzN,EAAQ0N,KAAKD,GAGbzN,EAAQ0N,KAAK,iBAGhBlL,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIlDkN,EAAoB,SACxBzM,EACA4J,EACA9K,GAEA,OAAO,SAACsC,GACNuK,MAAM,GAAD,OACA3L,EADA,0BAEHsD,YAAe3B,IAAOiK,KAAM,CAC1BI,MAAOpC,KAGRxJ,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACkL,GACLZ,EAAQqB,IAAI,MAAOT,EAAKU,MAAO,CAAE5B,KAAM,IAAK6B,OAAyB,IAAjBX,EAAKY,YACzDvL,IAAkBE,uBAChB,OACCsL,KAAKC,MAAyB,IAAjBd,EAAKY,WAAkBG,mBAEhCf,EAAKU,MACZrL,IAAkBE,uBAAuB,cAAeyK,EAAKnF,aAC7DxF,IAAkBE,uBAAuB,OAAQP,KAAKQ,UAAUwK,IAChE,IAAMgB,EAAc3L,IAAkBC,yBAAyB,gBAG/D,OAFAQ,EAASiK,EAAYC,IACrB3K,IAAkBE,uBAAuB,kBAAmB,QACrDyL,KAERlM,MAAK,SAACkM,GACL,IAAMC,EAAavL,OAAOC,SAASC,SAC7BR,EAAcC,IAAkBC,yBAAyB,eAC5D0L,GAAe5L,IAAgBJ,KAAKC,MAAM+L,GAAa5L,aAA8B,WAAf6L,EACvEzN,EAAQ0N,KAAR,UAAgBlM,KAAKC,MAAM+L,GAAavL,OAGnB,WAAfwL,EACNzN,EAAQ0N,KAAKD,GAGbzN,EAAQ0N,KAAK,iBAGhBlL,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QA0BlD8B,EAAkB,SAACrB,EAAalB,EAAkB4N,GACtD,OAAO,SAACtL,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,gBAAuBsD,YAAe3B,IAAOiK,OAC/CtK,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDa,MAAK,WACJgB,EAhIgC,CAAEiC,KAAM4H,IAiIxCtK,IAAkB8E,4BAA4B,eAC9C9E,IAAkB8E,4BAA4B,QAC9C9E,IAAkB8E,4BAA4B,oBAC9C9E,IAAkB8E,4BAA4B,kBAC9C9E,IAAkB8E,4BAA4B,WAC9C9E,IAAkB8E,4BAA4B,aAC9C9E,IAAkBE,uBAAuB,kBAAmB,SACvD6L,GACH/L,IAAkB8E,4BAA4B,gBAEhD3G,EAAQ0N,KAAK,UACbxL,OAAOC,SAAS0L,YAEjBrL,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAMzCgM,O,mCElLf,0BAwHMqB,EAAQ,CACZC,aA3DmB,SAACC,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAF7D,UAEoFC,KAAMA,EAAMC,KAAMC,OA4DzHC,aA3DmB,SAACJ,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAH7D,UAGoFC,KAAMA,EAAMC,KAAMG,OA4DzHC,WA3DiB,SAACN,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAJ3D,UAIkFC,KAAMA,EAAMC,KAAMK,OA4DvHC,eA3DqB,SAACR,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAL/D,UAKsFC,KAAMA,EAAMC,KAAMO,OA4D3HC,SAzDe,SAACV,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GARxC,UAQ+DE,KAAMS,OA0DxFC,YA3DkB,SAACZ,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAP5D,UAOmFC,KAAMA,EAAMC,KAAMW,OA4DxHC,WA1DiB,SAACd,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAT1C,UASiEE,KAAMa,OA2D1FC,WA1DiB,SAAChB,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAV1C,UAUiEE,KAAMe,QA2D1FC,UAzDgB,SAAClB,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAZzC,UAYgEE,KAAMiB,QA0DzFC,QArDc,SAACpB,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAjBxD,UAiB+EC,KAAMA,EAAMC,KAAMmB,OAsDpHC,SArDe,SAACtB,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAlBzD,UAkBgFC,KAAMA,EAAMC,KAAMqB,OAsDrHC,YArDkB,SAACxB,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAnB5D,UAmBmFE,KAAMuB,OAsD5GC,UArDgB,SAAC1B,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GApBzC,UAoBgEE,KAAMyB,OAsDzFC,WArDiB,SAACC,GAAD,OAAsB,gBAAC,IAAD,CAAiB7B,MAAO6B,EAAU,QAAU,UAAW3B,KAAM2B,EAAUC,KAAaC,QAsD3HC,OA5Da,SAAChC,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAftC,UAe6DE,KAAM6B,QA6DtFE,QA5Dc,SAACjC,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAhBvC,UAgB8DE,KAAM4B,QA6DvFI,YAhEkB,SAAClC,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAb3C,UAakEE,KAAMiC,OAiE3FC,gBAhEsB,SAACpC,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAd/C,UAcsEE,KAAMmC,QAiE/FC,SAzDe,SAACtC,EAAgBuC,GAAjB,OAAwC,gBAAC,IAAD,CAAiBvC,MAAOA,GAtB5D,UAsBmFuC,UAAWA,EAAWrC,KAAMsC,OA0DlIC,SAzDe,SAACzC,EAAgBuC,GAAjB,OAAwC,gBAAC,IAAD,CAAiBvC,MAAOA,GAvB5D,UAuBmFuC,UAAWA,EAAWrC,KAAMwC,OA0DlIC,UAzDgB,SAAC3C,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBA,KAAMA,EAAMD,MAAOA,EAAOE,KAAM0C,OA0DtGC,WAzDiB,SAAC5C,GAAD,OAAqB,gBAAC,IAAD,CAAiBC,KAAM4C,IAAO7C,KAAMA,EAAM8C,MAAI,KA0DpFC,eAzDqB,SAAC/C,GAAD,OAAqB,gBAAC,IAAD,CAAiBC,KAAM+C,IAAehD,KAAMA,EAAM8C,MAAI,KA0DhGG,oBAzD0B,SAAClD,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA3BpE,UA2B2FE,KAAMiD,IAAmBlD,KAAMA,KA0D7ImD,WAxDiB,SAACpD,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA7B3D,UA6BkFE,KAAMmD,IAAcpD,KAAMA,KAyD/HqD,cA1DoB,SAACtD,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA5B9D,UA4BqFE,KAAMqD,IAAatD,KAAMA,KA2DjIuD,kBAvDwB,SAACxD,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAhClE,UAgCyFE,KAAMuD,IAAiBxD,KAAMA,KAwDzIyD,YAvDkB,SAAC1D,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAjC5D,UAiCmFE,KAAMyD,IAAW1D,KAAMA,KAwD7H2D,cA3DoB,SAAC5D,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA9B9D,UA8BqFE,KAAM2D,IAAa5D,KAAMA,KA4DjI6D,eA3DqB,SAAC9D,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA/B/D,UA+BsFE,KAAM6D,IAAc9D,KAAMA,KA4DnI+D,UAxDgB,SAAChE,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAnC1D,UAmCiFE,KAAM+D,IAAoBhE,KAAMA,KAyDpIiE,mBAvDyB,SAAClE,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GArCnE,UAqC0FE,KAAMiE,IAAsBlE,KAAMA,KAwD/ImE,QA3Dc,SAACpE,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAlCxD,UAkC+EE,KAAMmE,IAAkBpE,KAAMA,KA4DhIqE,SAnFe,SAACtE,GAAD,OAAoB,gBAAC,IAAD,CAAiBA,MAAOA,GAXxC,UAW+DE,KAAMqE,OAoFxFC,UArCgB,gBAAC,IAAD,CAAiBtE,KAAMuE,OAsCvCC,gBA1DsB,SAAC1E,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAtChE,UAsCuFE,KAAMyE,IAAe1E,KAAMA,KA2DrI2E,WA1DiB,SAAC5E,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAvC3D,UAuCkFE,KAAM2E,KAAU5E,KAAMA,KA2D3H6E,QA1Dc,SAAC9E,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAxCxD,UAwC+EE,KAAM6E,IAAO9E,KAAMA,KA2DrH+E,WA1DiB,SAAChF,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAzC3D,UAyCkFE,KAAM+E,IAAUhF,KAAMA,KA2D3HiF,aA9FmB,SAAClF,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAN7D,UAMoFC,KAAMA,EAAMC,KAAMiF,QA+FzHC,WAjEiB,SAACpF,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GApC3D,UAoCkFE,KAAMmF,IAAqBpF,KAAMA,KAkEtIqF,WA5DiB,SAACtF,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA1C3D,UA0CkFE,KAAMqF,IAAatF,KAAMA,KA6D9HuF,SA3De,SAACxF,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA5CzD,UA4CgFE,KAAMuF,KAAQxF,KAAMA,KA4DvHyF,UA3DgB,SAAC1F,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA7C1D,UA6CiFE,KAAMyF,KAAS1F,KAAMA,KA4DzH2F,aA3DmB,SAAC5F,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA9C7D,UA8CoFE,KAAM2F,IAAa5F,KAAMA,KA4DhI6F,cA3DoB,SAAC9F,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA/C9D,UA+CqFE,KAAM6F,IAAa9F,KAAMA,KA4DjI+F,aA3DmB,SAAChG,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAhD7D,UAgDoFE,KAAM+F,IAAehG,KAAMA,KA4DlIiG,YA3DkB,SAAClG,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAjD5D,UAiDmFE,KAAMiG,KAAYlG,KAAMA,KA4D9HmG,aA3DmB,SAACpG,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAlD7D,UAkDoFE,KAAMmG,KAAYpG,KAAMA,KA4D/HqG,UA3DgB,SAACtG,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAnD1D,UAmDiFE,KAAMqG,IAAStG,KAAMA,KA4DzHuG,SA3De,SAACxG,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GApDzD,UAoDgFE,KAAMuG,IAAQxG,KAAMA,KA4DvHyG,SA3De,SAAC1G,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GArDzD,UAqDgFE,KAAMyG,IAAQ1G,KAAMA,KA4DvH2G,YAtEkB,SAAC5G,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GA3C5D,UA2CmFE,KAAM2G,KAAc5G,KAAMA,KAuEhI6G,WA5DiB,SAAC9G,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAtD3D,UAsDkFE,KAAMyB,IAAU1B,KAAMA,KA6D3H8G,cA5DoB,SAAC/G,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAvD9D,UAuDqFE,KAAM8G,IAAa/G,KAAMA,KA6DjIgH,eA5DqB,SAACjH,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAxD/D,UAwDsFE,KAAMgH,IAAcjH,KAAMA,KA6DnIkH,aA5DmB,SAACnH,EAAgBC,GAAjB,OAAqC,gBAAC,IAAD,CAAiBD,MAAOA,GAzD7D,UAyDoFE,KAAMkH,IAAenH,KAAMA,MA+DrHH,O,kBCpLfuH,EAAOC,QAAU,CAAC,SAAW,uCAAuC,GAAK,iCAAiC,KAAO,qC,0TCYrF,sBAAW,SAAC,EAAgD,G,IAA/C,cAAW,UAAO,aAAU,SAE7D,oCAAC,OAAQ,OACT,yBAAC,OAAoB,OAEzB,OAAF,sBAAE,CAAkB,GAAK,WAAM,MAAC,CAC9B,OAAM,WACJ,KAEF,KAAI,WACF,KAEF,MAAK,WACH,SAIF,IAAI,EAAe,iBAAO,MAEtB,EAAc,WACdC,EAAkB,mBACtB,GAAW,IAGP,EAAa,WACjB,EAAsB,mBACtB,GAAU,IAGN,EAAc,WAClB,EAAsB,mBACtB,GAAU,IAON,6BAAC,OAAQ,OAET,EAAiB,WACjB,EAAM,EAAQ,QAAQ,eAG5B,qBAAU,WAGR,OAFA,EAAU,EAAQ,QAAQ,cAC1B,OAAO,iBAAiB,SAAU,GAC3B,WAAM,cAAO,oBAAoB,SAA3B,MACZ,IACH,qBAAU,WACR,EAAU,EAAQ,QAAQ,iBAG5B,IAAM,EAAc,EAAS,CAAC,MAAO,UAAW,OAAQ,OAAQ,WAAY,KAAO,CAAC,MAAO,UAAW,WAAY,KAC5G,EAAY,EAAS,OAAS,mBAC9B,EAAc,EAAS,mBAAqB,GAElD,OACI,kBAAC,IAAI,CAAC,UAAW,iBAAiB,EAAS,IAAI,EAAe,MAAO,GACnE,kBAAC,IAAK,OAAM,CAAC,UAAU,kDAAkD,QAAS,EAAa,MAAO,GACpG,8BAAO,EAAK,OACZ,kBAAC,IAAe,CAAC,KAAM,IAAc,UAAW,KAElD,yBAAK,gBA7BiB,WAC1B,EAAsB,KA4ByB,UAAW,aAAa,EAAkB,KAAI,EAAS,kBAAoB,IAAM,MAAO,CAAC,OAAQ,EAAS,EAAI,IACvJ,kBAAC,IAAK,KAAI,CAAC,IAAK,GACb,EAAK,W,yDCxEO,IAAW,CAChC,SAAQ,MAAa,WACrB,SAAQ,MAAa,WACrB,WAAU,Q,yBCAD,EAAoC,SAAC,G,IAAC,SAC1C,SAAM,UAAO,cAAW,UAAO,aAEhC,EAAgB,EAAM,KAAI,SAAC,EAAM,GAAQ,OAC3C,gBAAC,IAAI,CAAC,IAAK,EAAK,UAAU,gBAAgB,GAAI,EAAK,KAAM,QAAS,EAAK,aACpE,EAFwC,SAM/C,OACI,uBAAK,UAAU,8DACb,gBAAC,IAAQ,CAAC,UAAU,uBAClB,gBAAC,IAAS,OAAM,CAAC,GAAG,MAAM,GAAG,iBAAiB,UAAU,UACtD,2BACE,uBAAK,UAAU,cAAc,GAC7B,uBAAK,UAAU,cAAc,KAGjC,gBAAC,IAAS,KAAI,KACX,EACD,gBAAC,IAAS,QAAO,MACjB,gBAAC,IAAI,CAAC,UAAU,6BAA6B,GAAG,SAAS,QAAS,GAAS,cAK/E,uBACI,OAAQ,GACR,MAAO,GACP,IAAK,EACL,IAAI,gB,SC/BH,EAAO,oCA4Bd,SAAU,EAAiB,EAAsB,EAAwB,GAE7E,IAAM,EAAQ,4BAAM,gBAAC,IAAe,CAAC,KAAM,KAAM,KAAM,MAAc,EAAM,EAAU,IAErF,OACI,gBAAC,IAAW,CAAC,YAAY,EAAM,MAAO,EAAO,UAAU,0CAA0C,GAAG,iBACjG,OAAO,KAAK,GAAW,KAAI,SAAC,EAAM,GAAQ,OAhBnD,SAA8B,EAAsB,EAAkB,EAAa,GAKjF,OACI,gBAAC,IAAY,KAAI,CAAC,SALC,EAKsB,EAJpC,WAAM,cAIyC,IAAK,GAAM,EAAU,IAL7E,IAAuB,EAe0B,CAAqB,EAAW,EAAM,EAAtC,OCH5C,IAAM,EAAuC,SAAC,G,IACxB,EADyB,cAAW,eAAY,mBAAgB,iBAAc,qBAAkB,oBAAiB,0BAAuB,SAAM,SAUzK,OACI,gBAAC,IAAM,CAAC,GAAG,OAAO,QAAQ,OAAO,OAAO,KAAK,UAAU,cACpD,GAXoB,EAWgB,EARrC,uBAAK,UAAU,4CAA4C,QAF3C,WAAM,aAGpB,gBAAC,IAAe,CAAC,KAAM,IAAQ,KAAM,KAAM,UAAU,iBAOO,KAC9D,uBAAK,MAAO,CAAE,SAAU,IAAK,WAAY,OAAQ,YAAa,OAAQ,SAAU,UAAY,UAAU,2CD1CxG,SAAoB,G,IAAC,SAAM,QAAK,UAAO,WAAQ,cAAW,QAC9D,OACI,gBAAC,IAAO,MAAK,KACX,gBAAC,IAAI,CAAC,GAAI,GACR,uBACI,IAAK,EACL,MAAO,EACP,OAAQ,EACR,UAAW,EACX,IAAK,MCkCR,CAAU,IAEb,gBAAC,IAAG,CAAC,UAAU,WACZ,GAAmB,EAAmB,EAAiB,KAAI,SAAC,GAAS,YAAQ,KAC7E,GAAmB,EAAO,gBAAC,EAAU,CAAC,KAAM,IAAU,KACtD,EAAiB,EAAW,EAAgB,GAC5C,GAAmB,EAAa,EAAa,Q,kBC9C3C,EAA+C,SAAC,G,IAAC,SAAM,SAAM,UAAO,UAAO,YAEhF,gBAAC,OAAW,OAEhB,OAAF,YAAE,EAAQ,WACJ,EAAI,KACP,CAAC,IAEF,IAAI,EAAwB,SAAC,EAAwB,GAA2B,kBAAM,SAAQ,EAAR,KAmClF,EACJ,gBAAC,IAAc,CAAC,GAAG,wBAAwB,SANtB,SAAC,GACtB,EAAQ,OAAO,IACf,EAAQ,EAAM,OAAO,KAIgD,UAAU,kBAAkB,KAAK,KAAK,MAAO,GAC/G,EAAM,KAAI,SAAC,EAAM,GAAQ,uBAAC,IAAS,KAAI,CAAC,IAAK,EAAK,SAAU,EAAK,YAAxC,OAI9B,OACE,uBAAK,UAAU,qCACZ,EACD,gBAAC,IAAU,CAAC,KAAK,KAAK,UAAU,QAC9B,gBAAC,IAAW,MAAK,CAAC,SAAmB,IAAT,EAAY,QAAS,EAAsB,EAAG,KAC1E,gBAAC,IAAW,KAAI,CAAC,SAAmB,IAAT,EAAY,QAAS,EAAsB,EAAO,EAAG,KA5C5D,SAAC,EAAqB,GAO1C,IANA,IACE,EAAQ,GAER,EAAY,KAAK,IAAI,EAAG,EAHhB,GAIR,EAAO,KAAK,IAAI,EAAgB,EAAG,EAJ3B,GAML,EAAI,EAAW,GAAK,EAAM,IACjC,EAAM,KAAK,gBAAC,IAAW,KAAI,CAAC,IAAK,EAAG,QAAS,EAAsB,EAAG,GAAY,OAAQ,IAAM,GAAc,IAiBhH,OAdI,EAVU,EAUY,GACxB,EAAM,QAAQ,gBAAC,IAAW,SAAQ,CAAC,IAAI,WAErC,EAbU,EAaY,EAAgB,GACxC,EAAM,KAAK,gBAAC,IAAW,SAAQ,CAAC,IAAI,UAIlC,EAAE,QAAQ,gBAAC,IAAW,KAAI,CAAC,IAAK,EAAG,QAAS,EAAsB,EAAG,GAAY,OAAwB,IAAhB,GAAoB,IAE7G,EAAgB,GAClB,EAAM,KAAK,gBAAC,IAAW,KAAI,CAAC,IAAK,EAAe,QAAS,EAAsB,EAAe,GAAY,OAAQ,IAAgB,GAAgB,IAG7I,EAoBF,CAAkB,EAAM,GACzB,gBAAC,IAAW,KAAI,CAAC,SAAU,IAAS,EAAO,QAAS,EAAsB,EAAO,EAAG,KACpF,gBAAC,IAAW,KAAI,CAAC,SAAU,IAAS,EAAO,QAAS,EAAsB,EAAO,Q,mCCnEnF,SAAU,EACZ,EACA,EACA,EACA,yBAEA,IAAI,EAAU,kBAAC,IAAO,CAAC,GAAI,WAAW,GAAQ,GAC9C,OACE,kBAAC,IAAc,CACX,IAAK,EACL,UAAW,EACX,QAAS,GAEV,GCJF,IAAM,EAAgC,SAAC,G,IAAC,QAAK,gBAAa,WAAQ,cACjE,EAAgB,EAAS,CAAC,MAAO,OAAQ,OAAQ,QAAU,CAAC,OAAQ,QAC1E,OACI,kBAAC,IAAI,KAAI,CAAC,UAAU,eAClB,yBAAK,UAAU,kCACZ,EAAS,KAAO,uBAAG,UAAU,cAAc,GAC5C,yBAAK,UAAW,UACb,EAAY,kBAAC,IAAW,CAAC,IAAK,EAAK,UAAc,EAAS,KAAI,EAAS,SAAW,SAAW,MAAO,IAAkB,UAAW,OACjI,EAAS,KAAO,0BAAM,UAAU,mBAAmB,O,GCRpD,MAAa,W,OCNZ,EAA2C,SAAC,G,IAAC,cAA4B,OAClF,wBAAI,UAAW,mBAAmB,KC0BzB,EAAiC,SAAC,G,IAAC,iBAAc,kBAAe,kBAAe,oBAAiB,mBAAgB,4BAAyB,iBAsD9I,EACJ,kBAAC,IAAI,KAAI,CAAC,UAAU,UAClB,yBAAK,UAAU,uBACZ,EAAc,OAAS,8BAAM,kBAAC,IAAgB,CAAC,GAAG,cAAsB,OAKzE,EAAwB,EAAa,KAAI,SAAC,EAAsB,GAAgB,OA5D7D,SAAC,EAAsB,EAAU,GAC7C,IAAJ,iBAAc,yBAAsB,SAAM,SAAM,eACjD,EAAmB,EAAe,kBAAC,IAAgB,CAAC,GAAI,IAAkB,KAC1E,EAA2B,EAAuB,kBAAC,IAAgB,CAAC,GAAI,IAA0B,KAClG,EAAgB,EAAgB,0BAA4B,+BAE5D,EAAgB,kBADD,EAAK,MAAM,KAAK,QAAO,SAAC,GAAc,gBAAU,KAAQ,EAAS,MAAM,KAAM,QAAO,SAAC,GAAc,gBAAU,GAC5E,kBAAoB,IACpE,EAAsB,EAAgB,2BAA6B,sBAEnE,EACJ,yBAAK,MAAO,CAAC,QAAS,OAAQ,MAAO,EAAK,KAAM,OAAQ,EAAK,KAAM,aAAc,EAAK,OAAQ,gBAAiB,EAAK,MAAO,WAAY,EAAG,SAAU,aAClJ,kBAAC,IAAe,CAAC,KAAM,EAAK,KAAM,KAAM,EAAK,SAAU,UAAU,sBAChE,EAAK,cAAgB,EACpB,yBAAK,MAAO,CACV,MAAO,OACP,OAAQ,OACR,aAAc,MACd,gBAAiB,MACjB,SAAU,WACV,OAAQ,OACR,MAAO,UAEL,EAAK,aAAa,KAAM,KAAK,SAAU,iBAG3C,EACJ,yBAAK,UAAW,6CAA6C,EAAuB,MAAO,CAAC,MAAO,EAAgB,IAAM,QAAS,OAAQ,OAAQ,WAAY,IAC5J,0BAAM,UAAU,2BAA2B,GAC3C,0BAAM,UAAU,oCAAoC,IAUlD,EAAU,kBAAC,IAAI,CAAC,GAAI,EAAM,UAAW,GAAgB,EAAe,GACpE,EAAS,GAAc,EAAgB,EAAY,EAAS,EAAY,EAAY,SAAW,EAEjG,OACF,kBAAC,IAAI,KAAI,CAAO,IAAD,EAAK,UAAW,EAAe,QAV5B,WACd,EAAK,QACP,EAAK,OAAO,KASX,GAiB+E,CAAiB,EAAM,EAAvB,MAChF,EAA4B,EAAc,KAAI,SAAC,EAAwB,GAAgB,OAbhE,SAAC,EAAwB,GAChD,OAAG,kBAAC,EAAQ,CAAC,IAAK,EAAK,OAAQ,EAAe,IAAK,EAAK,IAAK,YAAa,EAAK,YAAa,UAAc,EAAK,WAAU,qBAYlC,CAAqB,EAArB,MACvF,EAA8C,IAAzB,EAAc,QAErC,kBAAC,IAAG,CAAC,UAAU,qBACX,GAAiB,EAClB,GAKD,EACJ,yBAAK,UAAU,iBACb,yBAAK,UAAW,YAAW,EAAgB,gBAAkB,sBAAwB,QAAS,GAC5F,kBAAC,IAAe,CAAC,KAAM,IAAQ,KAAK,KAAK,UAAU,eAClD,EAAgB,KAAO,0BAAM,UAAU,mBAAkB,kBAAC,IAAgB,CAAC,GAAG,eAI/E,EAAwB,SAAC,GACzB,GACF,EAAwB,IAI5B,OAAI,EAEA,yBAAK,UAAW,EAAgB,iCAAmC,cAAe,gBAAiB,GACjG,kBAAC,IAA0B,CAAC,MAAO,CAAC,OAAQ,qBAAsB,MAAO,QAAS,QAAS,CAAC,iBAAkB,CAAC,EAAG,iBAAkB,EAAG,YACrI,yBAAK,UAAU,oDACb,6BACE,kBAAC,EAAiB,CAAC,UAAU,SAC7B,kBAAC,IAAG,CAAC,UAAU,eACZ,IAGL,6BACG,EACD,kBAAC,EAAiB,MACjB,MAQX,yBAAK,UAAW,EAAgB,iCAAmC,cAAe,gBAAiB,GACjG,6BACE,kBAAC,EAAiB,CAAC,UAAU,SAC7B,kBAAC,IAAG,CAAC,UAAU,eACZ,IAGL,6BACG,EACD,kBAAC,EAAiB,MACjB,K,wNCzII,EAAgC,SAAC,G,IAAC,iBAAc,gBAAa,cAAW,cAAW,aAAU,kBAClG,EAAM,EAAY,KAAI,SAAC,GAAsB,YAC7C,EAAO,GAAa,EAAU,OAAS,EAAI,EAE7C,4BACE,wBAAI,UAAU,cAAc,QAAS,EAAI,QAAQ,kBAAC,IAAgB,CAAC,GAAG,mBAItE,EAAS,EAAe,CAAC,OAAQ,QAAgB,EACjD,EAAsB,EAAgB,CAAC,iBAAkB,EAAe,iBAAkB,QAAQ,EAEtG,OACA,kBAAC,IAA0B,CAAC,MAAK,OAAM,GAAM,CAAE,cAAe,QAAQ,QAAS,GAC7E,kBAAC,IAAK,CAAC,UAAW,cAAa,GAAa,IAAM,OAAK,GACrD,+BACE,wBAAI,UAAU,kBAAkB,IAElC,2BAAO,UAAU,kBAAkB,GACnC,+BAAQ,M,cCvBT,ICXK,EC8BN,EAA4B,SAAC,G,IAAC,gBAAa,WAAQ,cAAW,YAAS,YACrE,EAAiB,GAAW,EAAS,WAAM,kBAAkB,EACjE,OACA,sBAAI,UAAU,oBAAoB,QAAS,GACxC,EACA,EAAY,EAAa,EAAQ,KAKlC,EAA8C,SAAC,G,IAAC,gBAAa,WAAQ,cAAW,mBAAgB,YAAS,YACvG,iBAAC,OAAY,OACb,kBAAC,OAAY,OACjB,EAAF,WAAgB,WAEZ,EADE,EACY,KAEA,KAEZ,EAAW,KACd,CAAC,EAAY,IAEhB,IAIM,EAAiB,GAAW,EAAS,WACrC,EAAI,SACN,EAIF,OACA,sBAAI,UAAU,qBACZ,yBAAO,KAAK,OAAO,MAAO,EAAY,SAZpB,SAAC,GACrB,EAAc,EAAM,cAAc,QAW+B,YAAa,EAAS,UAAU,uBAC/F,gBAAC,IAAe,CAAC,MAAO,CAAC,OAAQ,OAAQ,MAAO,QAAS,KAAM,EAAY,QAAS,EALrE,WAAM,mBAKyF,IAC7G,EAAY,EAAa,EAAQ,EAAW,KAK7C,EAA6C,SAAC,G,IAAC,gBAAa,YAAS,mBAAgB,gBAAa,cAChG,EAAO,cACN,cAAW,gBAAa,mBAAgB,WAAQ,eACnD,EAA4C,EAKhD,OAJI,IACF,EAAU,EAAiB,gBAAC,IAAgB,CAAC,GAAI,EAAa,OAAQ,IAAoB,gBAAC,IAAgB,CAAC,GAAI,IAChH,EAAU,EAAK,cAAc,CAAC,GAAI,GAAc,IAE9C,GAAc,EAEd,gBAAC,EAAe,CACd,eAAgB,EAChB,QAAS,EACT,YAAa,EACb,UAAW,EACX,OAAQ,EACR,QAAS,IAKb,gBAAC,EAAK,CACA,QAAK,EACT,YAAa,EACb,UAAW,EACX,OAAQ,EACR,QAAS,KAKf,SAAS,EACP,EACA,EACA,EACA,EACA,GAEA,OAAO,EAAI,KAAI,SAAC,EAA2B,GACzC,OAAa,OAAT,EACM,sBAAI,IAAK,EAAK,aAAa,IAAI,UAAU,sBAE5C,gBAAC,EAAY,CAAC,IAAK,EAAO,YAAa,EAAM,UAAW,EAAW,eAAgB,EAAgB,QAAS,EAAS,YAAa,OAI7I,SAAS,EAAY,EAAsB,EAAuB,EAAuB,GACvF,GAAI,IAAiB,GAAe,EAClC,OAAQ,GACN,IAAK,MACH,OAAO,gBAAC,IAAe,CAAC,QAAS,QAAW,EAAW,KAAM,KAAU,UAAU,SACnF,IAAK,OACH,OAAO,gBAAC,IAAe,CAAC,QAAS,QAAW,EAAW,KAAM,KAAY,UAAU,SACrF,IAAK,OACH,OAAO,gBAAC,IAAe,CAAC,QAAS,QAAW,EAAW,KAAM,KAAQ,UAAU,SACjF,QACE,OAAO,UAEN,GAAI,EACT,OAAO,gBAAC,IAAe,CAAC,QAAS,QAAW,EAAW,KAAM,KAAQ,UAAU,SAEjF,OAAO,KAGH,SAAU,EACd,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAAM,EAAU,EAAkB,EAAY,EAAS,EAAa,EAAW,GAC/E,OAAO,gBAAC,EAAQ,CAAC,YAAa,EAAS,UAAW,EAAW,aAAc,EAAQ,cAAe,CAAC,EAAG,SAAU,EAAG,qBDjJrH,SAAY,GACV,+BACEC,EAAYA,EAAd,6CACEA,EAAYA,EAAd,2BACEA,EAAYA,EAAd,6CACEA,EAAYA,EAAY,uBAA1B,yBACEA,EAAYA,EAAd,uBANF,CAAY,MAAW,KEAvB,ICAY,ECEZ,EAOE,SACI,EACA,EACA,EACA,EACA,GAEE,KAAC,KAAO,EACR7J,KAAC,KAAO,EACRA,KAAC,SAAW,EACZA,KAAC,OAAS,EACVA,KAAC,MAAQ,IDpBjB,SAAY,GACV,YACE8J,EAAF,YACEA,EAAF,YAHF,CAAY,MAAS,M,0bEGTC,EAQAC,E,4CARAD,K,YAAAA,E,cAAAA,E,gBAAAA,E,kBAAAA,E,uBAAAA,M,cAQAC,K,0BAAAA,E,qCAAAA,M,KAKL,IAoBKC,EAKAC,EAIAC,EAQAC,EAMAC,EAMAC,EAjDCC,EAAb,sCACEC,QAAU,GADZ,KAEEC,cAAgB,CAAC,WAAY,eAGlBC,EAAb,sCACEC,WAAaZ,EAAYa,MAD3B,KAEEC,UAAY,GAFd,KAGEC,WAAa,GAHf,KAIEC,aAAe,SAGJC,EAAb,4MACEhB,eAAiBA,EAAeiB,YADlC,YAA2CP,GAI9BQ,EAAb,4MACEC,sBAAuB,EADzB,YAA0CT,I,SAI9BT,O,yBAAAA,I,wBAAAA,M,cAKAC,K,4BAAAA,E,yBAAAA,M,cAIAC,K,kBAAAA,E,sCAAAA,E,oCAAAA,E,kBAAAA,E,qBAAAA,M,cAQAC,K,UAAAA,E,cAAAA,E,eAAAA,M,cAMAC,K,UAAAA,E,cAAAA,E,eAAAA,M,cAMAC,K,UAAAA,E,cAAAA,E,eAAAA,M,KAML,IAwJKc,EAxJCC,EAAb,sCACEC,mBAAqBjQ,IAAYkQ,QADnC,KAEEC,kBAAoBrQ,IAAiBoQ,SAG1BE,EAAb,sCACEC,oBAAsBvQ,IAAiBoQ,QADzC,KAEEI,qBAAuBxQ,IAAiBoQ,QAF1C,KAGEC,kBAAoBrQ,IAAiBoQ,QAHvC,KAIED,mBAAqBjQ,IAAYkQ,QAJnC,KAKEK,mCAAqCvQ,IAAYkQ,SAGtCM,EAAb,sCACEC,wBAA0B3Q,IAAiBoQ,QAD7C,KAEEQ,iBAAmB5Q,IAAiBoQ,QAFtC,KAGES,WAAa7Q,IAAiBoQ,QAHhC,KAIEU,sBAAwB9Q,IAAiBoQ,QAJ3C,KAKEW,iBAAmB/Q,IAAiBoQ,QALtC,KAMEY,sBAAwBhR,IAAiBoQ,QAN3C,KAOEa,mBAAqBjR,IAAiBoQ,QAPxC,KAQEc,oBAAsBlR,IAAiBoQ,QARzC,KASEe,iBAAmBnR,IAAiBoQ,QATtC,KAUEgB,uBAAyBpR,IAAiBoQ,QAV5C,KAWEiB,kBAAoBrR,IAAiBoQ,QAXvC,KAYEkB,yBAA2BtR,IAAiBoQ,QAZ9C,KAaEC,kBAAoBrQ,IAAiBoQ,QAbvC,KAcEmB,aAAenR,IAAmBgQ,QAdpC,KAeED,mBAAqBjQ,IAAYkQ,QAfnC,KAgBEoB,oBAAsBtR,IAAYkQ,QAhBpC,KAiBEqB,uBAAyBvR,IAAYkQ,QAjBvC,KAkBEsB,oBAAsBxR,IAAYkQ,QAlBpC,KAmBEuB,uBAAyBzR,IAAYkQ,QAnBvC,KAoBEwB,2BAA6B1R,IAAYkQ,SAiG9ByB,EAAb,sCACEC,KAAO,GADT,KAEEC,KAAO,GAFT,KAGE5V,KAAO,EAHT,KAIE6V,QAAU,GAJZ,KAKEC,eAAiB,EALnB,KAMEC,UAAY,K,SAgBFjC,K,UAAAA,E,gBAAAA,E,aAAAA,M,qCC9NZ,uQAKakC,EAAyB,2BACzBC,EAA+B,gCAC/BC,EAAuC,uCAOvCC,EAA4B,SAACC,GACxC,MAAO,CACL9U,KAAM2U,EACNI,gBAAiBD,IAIRE,EAAuB,SAACF,GACnC,MAAO,CACL9U,KAAM0U,EACNK,gBAAiBD,IAWd,SAASG,EAA+BtY,EAAauY,GAC1D,OAAO,SAACnX,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OACA3L,EADA,sBACiBuY,EADjB,oCAEHjV,YAAe3B,IAAO6W,MAErBpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+X,GAAD,OAAmB/W,EAAS8W,EAA0BC,OAC3D7W,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,QAmBxC,SAASuU,EAAsC1Y,EAAauY,EAAoBI,GACrF,OAAO,SAACvX,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OACA3L,EADA,sBACiBuY,EADjB,uCAC0DI,GAC7DrV,YAAe3B,IAAO6W,MAErBpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+X,GAAD,OAAmB/W,EA9CiB,SAAC+W,GAC/C,MAAO,CACL9U,KAAM4U,EACNG,gBAAiBD,GA2CmBS,CAAiCT,OAClE7W,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,QAIhC0U,IA9Bf,SAAmC7Y,EAAauY,EAAoBI,GAClE,OAAO,SAACvX,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OACA3L,EADA,sBACiBuY,EADjB,uCAC0DI,GAC7DrV,YAAe3B,IAAO6W,MAErBpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+X,GAAD,OAAmB/W,EAASiX,EAAqBF,OACtD7W,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,gaC3DnCqQ,EAQAC,EAKAqE,EAMA/R,EASAgS,E,oDA5BAvE,K,YAAAA,E,cAAAA,E,gBAAAA,E,kBAAAA,E,uBAAAA,M,cAQAC,K,0BAAAA,E,qCAAAA,M,cAKAqE,O,mBAAAA,I,uBAAAA,I,gBAAAA,M,cAMA/R,K,YAAAA,E,UAAAA,E,YAAAA,E,sBAAAA,E,cAAAA,E,aAAAA,M,cASAgS,O,yBAAAA,I,wBAAAA,M,KAKL,IA8IKC,EA9ICC,EAAb,sCAGE7D,WAAaZ,EAAY0E,QAH3B,KAIE5D,UAA6B,EAJ/B,KAKEC,WAAa,GALf,KAMEC,cAAe,EANjB,KAOErN,OAAS,GAGEgR,EAAb,4MACE1E,eAAiBA,EAAeiB,YADlC,YAAmCuD,GAatBG,EAAb,sCACEjD,oBAAsBvQ,IAAiBoQ,QADzC,KAEEI,qBAAuBxQ,IAAiBoQ,QAF1C,KAGEC,kBAAoBrQ,IAAiBoQ,QAHvC,KAIEqD,eAAiBzT,IAAiBoQ,QAJpC,KAKED,mBAAqBjQ,IAAYkQ,QALnC,KAMEK,mCAAqCvQ,IAAYkQ,QANnD,KAOEsD,2BAA6BxT,IAAYkQ,QAP3C,KAQEuD,kCAAoCzT,IAAYkQ,SAGrCwD,EAAb,sCACEC,GAAK,EADP,KAEEC,QAAU,EAFZ,KAGEC,OAAS,EAHX,KAIEC,OAAS,EAJX,KAKEC,eAAiB,EALnB,KAMEC,OAAS,EANX,KAOEC,WAAa,EAPf,KAQEC,mBAAqB,EARvB,KASEC,oBAAsB,EATxB,KAUEC,4BAA8B,GAGnBC,EAAb,sCACE/S,MAAQ,EADV,KAEEC,WAAa,GAFf,KAGE+S,aAAe,GAHjB,KAIEX,GAAK,EAJP,KAKE9B,KAAO,GALT,KAME9L,SAAW,GANb,KAOEwO,MAAQ,GAPV,KAQEC,SAAW,MARb,KASEC,iBAAmB,GATrB,KAUEC,SAAU,EAVZ,KAWEC,WAAY,EAXd,KAYEC,eAAiB,EAZnB,KAaEhG,eAAiB,EAbnB,KAcEiG,cAAgB,EAdlB,KAeEC,kBAA6C,CAAC,IAAIzT,KAfpD,KAgBEuS,QAAU,EAhBZ,KAiBEC,OAAS,EAjBX,KAkBEC,OAAS,EAlBX,KAmBEC,eAAiB,EAnBnB,KAoBEC,OAAS,EApBX,KAqBEe,OAAS,EArBX,KAsBEd,WAAa,EAtBf,KAuBEC,mBAAqB,EAvBvB,KAwBEc,YAAc,EAxBhB,KAyBEnT,KAAOmR,EAAWiC,OAzBpB,KA0BEC,cAAgB,KA1BlB,KA2BEC,YAAc,EA3BhB,KA4BEC,KAAsB,GA5BxB,KA6BEC,IAAM,GA7BR,KA8BEC,mBAAqB,GA9BvB,KA+BEC,eAAwC,GA/B1C,KAgCEC,iBAAyC,CAAC,IAAIrC,GAhChD,KAiCEsC,6BAA8B,EAjChC,KAkCEC,eAAiB,IAAIpC,EAlCvB,KAmCEI,SAAW,IAAIA,EAnCjB,KAoCEiC,eAAiB,EApCnB,KAqCEC,kBAAoB,GArCtB,KAsCEC,GAAK,GAtCP,KAuCEC,OAAS/T,IAAUgU,IAvCrB,KAwCEC,kBAAoB,IAGTC,EAAb,sCACEC,sBAAwB,EAD1B,KAEEC,OAAS,GAFX,KAGE7U,MAAQ,EAHV,KAIEwT,kBAA8C,CAAC,IAAIzT,KAJrD,KAKEkU,eAAwC,CAAC,IAAIlC,GAL/C,KAMEmC,iBAA0C,CAAC,IAAIrC,GANjD,KAQEiD,2BAA4B,EAR9B,KASEX,6BAA8B,EAThC,KAUE7G,eAAiBqE,EAAgBoD,UAVnC,KAWExB,cAAgB,GAXlB,KAYEhD,KAAO,GAZT,KAaE9L,SAAW,GAbb,KAcEwO,MAAQ,K,SAsCErB,K,wBAAAA,E,qBAAAA,M,KAML,IAuCKoD,EAvCCC,EAAb,sCACE3H,eAAiB,EADnB,KAEEiG,cAAgB,EAFlB,KAGEhD,KAAO,GAHT,KAIE9L,SAAW,GAJb,KAKEwO,MAAQ,GALV,KAMEO,kBAAoB,CAAC,IAAIzT,KAN3B,KAOE8U,OAAS,GAPX,KAQE7U,MAAQ,EARV,KASEkT,SAAW,MATb,KAUEgC,QAAU,K,SA6BAF,K,cAAAA,E,QAAAA,E,wBAAAA,E,gBAAAA,E,sBAAAA,E,8BAAAA,E,aAAAA,M,yHCnBGG,IAlL4B,SAAC,GAiBxB,IAkCd/W,EAlDJgX,EAgBiB,EAhBjBA,MACAC,EAeiB,EAfjBA,SACAC,EAciB,EAdjBA,OACArZ,EAaiB,EAbjBA,KACAsZ,EAYiB,EAZjBA,YACAC,EAWiB,EAXjBA,SACAC,EAUiB,EAVjBA,kBACAC,EASiB,EATjBA,SACAzN,EAQiB,EARjBA,UACA0N,EAOiB,EAPjBA,MACAhQ,EAMiB,EANjBA,KACAiQ,EAKiB,EALjBA,WACAC,EAIiB,EAJjBA,OACAC,EAGiB,EAHjBA,WACAC,EAEiB,EAFjBA,WACAC,EACiB,EADjBA,cAGMC,EAAOC,cAETC,EAAgC,iCAJnB,EAMeC,YAAwB,GANvC,mBAMVC,EANU,KAMAC,EANA,KAObC,GAAiB,EAEfC,EAAU,SAACrY,GACVkY,GAAUC,GAAY,GAE3B,IAAMlY,EAAkB,WAATnC,GAA4C,KAAvBkC,EAAMsY,OAAOrY,MAAgBsY,OAAOvY,EAAMsY,OAAOrY,OAASD,EAAMsY,OAAOrY,MACrGuY,EAAQ,eAAQvB,EAAR,eAAgBC,EAAWjX,IACzCoX,EAASmB,GACLX,GAAeA,GAAc,IAMnC,GAJIK,IACFE,EAAYK,IAAWC,eAAyBvB,EAAQF,EAAOC,IAG7DK,EACFS,EAAmB,uBAAKlO,UAAU,qBAC7B,GAAIsO,GAAaR,EAAY,CAAC,IAAD,EAElCI,EAAgB,WADhBI,EAAYK,IAAWC,eAAyBvB,EAAQF,EAAOC,IAClCyB,cAAb,aAAG,EAAkBC,KAAI,SAAC5e,EAAe6e,GAAhB,OACvC,gBAAC,IAAKC,QAAQC,SAAd,CAAuB3Z,IAAG,UAAKpF,EAAL,YAAc6e,GAAS/a,KAAK,UAAUgM,UAAU,eACvE9P,MAULiG,EADsB,IAApBgX,EAAMC,GACA,EACCD,EAAMC,GACPD,EAAMC,GAEN,GAGV,IAQM8B,EACJ,gCACE,gBAAC,IAAKC,MAAN,CAAYnP,UAAU,aACpB,gBAAC,IAAD,CAAkB7P,GAAIqd,IACN,UAAbJ,GACa,cAAbA,GACa,YAAbA,GACa,kBAAbA,GACa,YAAbA,GACsB,2DAAtBI,GACsB,mDAAtBA,GACsB,kDAAtBA,GACsB,sDAAtBA,GACsB,kDAAtBA,GACsB,8CAAtBA,GACsB,+CAAtBA,GACsB,uDAAtBA,GACsB,oEAAtBA,GACsB,sDAAtBA,GACsB,8BAAtBA,GACsB,+BAAtBA,GACsB,+BAAtBA,GACsB,kCAAtBA,EACC,KACA,wBAAME,MAAO,CAACjQ,MAAO,YAArB,OAEN,gBAAC,IAAKuR,QAAN,CACE1B,YAAaU,EAAKoB,cAAc,CAAEjf,GAAImd,IACtC+B,aAAa,eACb5B,SAAUA,EACVzZ,KAAMA,EACNmC,MAAO0X,EAAa1X,EAAQA,IAAuB,kBAAbiX,EAA+BjX,EAAQ,IAC7EmZ,SAAU,SAACpZ,GAAD,OAAgDqY,EAAQrY,IAClEoY,WAAWb,GAAmBa,EAC9B5Q,KAAMA,GAAQ,KACdsC,UAAWA,IAEZsO,EACGJ,EAEc,aAAbd,EAEG,uBAAKpN,UAAU,OAAO0N,MAAO,CAAE6B,SAAU,MAAO9R,MAAO,SACpDuQ,EAAKoB,cAAc,CAAEjf,GAAI,wCAG5B,uBAAK6P,UAAU,iBAIrBwP,EACJ,gBAAC,IAAD,CAAKxP,UAAU,QACb,gBAAC,IAAD,CAAKyP,GAAI,EAAGzP,UAAU,QACpB,gBAAC,IAAKmP,MAAN,CAAYnP,UAAU,OAAO0N,MAAO,CAAE6B,SAAU,GAAIG,WAAY,SAC9D,gBAAC,IAAD,CAAkBvf,GAAIqd,IACP,UAAbJ,GACY,cAAbA,GACa,YAAbA,GACa,gBAAbA,GACa,kBAAbA,GACa,YAAbA,GACa,WAAbA,GACa,kBAAbA,GACsB,yDAAtBI,EAEC,KACA,wBAAME,MAAO,CAACjQ,MAAO,YAArB,QAGN,gBAAC,IAAD,CAAKgS,GAAI,GACP,gBAAC,IAAKT,QAAN,CACE1B,YAAaU,EAAKoB,cAAc,CAAEjf,GAAImd,IACtC+B,aAAa,eACb5B,SAAUA,EACVzZ,KAAMA,EACNmC,MAAO0X,EAAa1X,EAAQA,GAAS,GACrCmZ,SAAU,SAACpZ,GAAD,OAAgDqY,EAAQrY,IAClEoY,WAAWb,GAAmBa,EAC9B5Q,KAAK,KACLgQ,MAAOE,EAvFU,CACvB+B,YAAa,OACbC,WAAY,OACZC,UAAW,OACXC,aAAc,EACdP,SAAU,IAkF+B,GACnCvP,UAAWA,IAEZsO,EAAYJ,EAAmB,uBAAKlO,UAAU,kBAKrD,OACEwN,EACKI,EAAS4B,EAAaN,EACvB,gBAAC,IAAKa,MAAN,CAAYrC,MAAOA,GAAS,MAC1B,gBAAC,IAAKsB,QAAN,CACE1B,YAAaU,EAAKoB,cAAc,CAAEjf,GAAImd,IACtC+B,aAAa,eACb5B,SAAUA,EACVzZ,KAAMA,EACNmC,MAAO0X,EAAa1X,EAAQA,GAAS,GACrCmZ,SAAU,SAACpZ,GAAD,OAAgDqY,EAAQrY,IAClEoY,WAAWb,GAAmBa,EAC9B5Q,KAAMA,GAAQ,KACdgQ,MAAOC,GAAc,KACrB3N,UAAWA,IAEXsO,GAAaR,EAAcI,EAAmB,uBAAKlO,UAAU,mB,8BCrMzE,oMAIagQ,EAAe,eACfC,EAAkB,kBAClBC,EAAsB,sBAqEtBC,EAA2B,SAACxf,GACvC,OAAO,SAACoB,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,2BAAkCsD,YAAe3B,IAAO6W,MAC1DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACmB,GAMLH,EA3DC,CACLiC,KAAMkc,EACNE,OAyD+Ble,OAE5BD,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,QAIpCmgB,EAAyB,SAACC,GACrC,OAAO,SAACve,GACNuK,MAAM,SAAD,OAAUgU,EAAV,UACFvf,MAAK,SAACL,GAAD,OAAcA,EAASwB,UAC5BnB,MAAK,SAACmB,GACLH,EA3BC,CACLiC,KAAMic,EACNM,SAyB+Bre,OAE5BD,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,QAIlCsgB,IAtEU,WACvB,OAAO,SAACze,GACNuK,MAAM,cAAcvL,MAAK,SAACL,GAAD,OACvBA,EACGwB,OACAnB,MAAK,SAACmB,GACLZ,IAAkBE,uBAAuB,SAAzC,OAAmDU,QAAnD,IAAmDA,OAAnD,EAAmDA,EAAMvB,KACzDW,IAAkBE,uBAChB,qBACAU,EAAKue,MAAMC,mBAAmB1T,YAOhC1L,IAAkBE,uBAChB,oBACAU,EAAKue,MAAME,kBAAkB3T,YAE/B1L,IAAkBE,uBAChB,eACAP,KAAKQ,UAAUS,EAAK0e,eAEtBtf,IAAkBE,uBAChB,0BACAP,KAAKQ,UAAUS,EAAK2e,0BAGtB9e,EA1CD,CACLiC,KAAMgc,EACNI,OAwC2Ble,OAEtBD,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,Y,oCC/DnD,qOAKa4gB,EAAuB,wBACvBC,EAA+B,gCAC/BC,EAAuB,uBAYvBC,EAAqB,SAACC,GACjC,MAAO,CACLld,KAAM8c,EACNK,cAAeD,IAKNE,EAA4B,SAACF,GACxC,MAAO,CACLld,KAAM+c,EACNM,qBAAsBH,IAIbI,EAAuB,iBAAO,CAAEtd,KAAMgd,IAqBpCO,IAlBf,SAAiC5gB,EAAa6gB,EAAkBC,GAC9D,OAAO,SAAC1f,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,oBAAmB6gB,EAAnB,yCAA4DC,GAAYxd,YAAe3B,IAAO6W,MAChGpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACmgB,GAEHnf,GADe,IAAb0f,EACOL,EAA0BF,GAE1BD,EAAmBC,OAG/Bjf,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,wZCrCzC4c,E,WAWJ,WAAYC,GAAyB,IAAD,6BAV5BC,UAU4B,OAT5BC,UAS4B,OAP7BC,UAO6B,OAN7BC,WAM6B,OAL7BC,SAK6B,OAH7BC,WAG6B,OAF7BC,aAE6B,EAClC9W,KAAKwW,KAAL,OAAYD,QAAZ,IAAYA,OAAZ,EAAYA,EAAgBQ,UAAU,EAAG,IAAItc,MAAM,KACnDuF,KAAKyW,KAAL,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAgBQ,UAAU,GAAI,IAAItc,MAAM,KAFlB,gBAIEuF,KAAKwW,YAJP,QAIe,GAJf,mBAIjCxW,KAAK0W,KAJ4B,KAItB1W,KAAK2W,MAJiB,KAIV3W,KAAK4W,IAJK,qBAKL5W,KAAKyW,YALA,QAKQ,GALR,mBAKjCzW,KAAK6W,MAL4B,KAKrB7W,KAAK8W,QALgB,K,4DASlC,MAAM,GAAN,OAAU9W,KAAKgX,YAAf,cAAgChX,KAAKiX,e,sCAIrC,MAAM,GAAN,OAAUjX,KAAKkX,YAAf,cAAgClX,KAAKmX,e,uCAGfC,GACtB,MAAM,GAAN,OAAUpX,KAAKkX,YAAf,cAAgClX,KAAKmX,YAArC,qBACKC,GAAY,EAAI,IAAM,KAD3B,OACiCC,KAAKC,IAAIF,GAAY,GAArB,WAA8BC,KAAKC,IAAIF,IAAcC,KAAKC,IAAIF,GAD/F,S,kCAKA,MAAM,GAAN,OAAUpX,KAAK2W,MAAf,YAAwB3W,KAAK4W,IAA7B,YAAoC5W,KAAK0W,Q,kCAIzC,MAAM,GAAN,OAAU1W,KAAK4W,IAAf,YAAsB5W,KAAK2W,MAA3B,YAAoC3W,KAAK0W,Q,kCAKzC,OAAK1W,KAAK6W,MAAQ,GAEI,MAAf7W,KAAK6W,OAAgC,MAAf7W,KAAK6W,MACxB,GAAN,QAAW7W,KAAK6W,MAAQ,GAAxB,YAA8B7W,KAAK8W,QAAnC,IAA8C,MAG1C,IAAN,QAAY9W,KAAK6W,MAAQ,GAAzB,YAA+B7W,KAAK8W,QAApC,IAA+C,MAG7B,MAAf9W,KAAK6W,MACF,GAAN,QAAW7W,KAAK6W,MAAhB,YAAyB7W,KAAK8W,QAA9B,IAAyC,MAGrC,GAAN,OAAU9W,KAAK6W,MAAf,YAAwB7W,KAAK8W,QAA7B,IAAwC,Q,kCAIxC,MAAM,GAAN,OAAU9W,KAAK6W,MAAf,YAAwB7W,KAAK8W,W,4CAI7B,MAAM,GAAN,OAAU9W,KAAK0W,KAAf,YAAuB1W,KAAK2W,MAA5B,YAAqC3W,KAAK4W,IAA1C,cAAmD5W,KAAK6W,MAAxD,YAAiE7W,KAAK8W,W,wCAItE,MAAM,GAAN,OAAU9W,KAAK0W,KAAf,YAAuB1W,KAAK2W,MAA5B,YAAqC3W,KAAK4W,O,sCAI1C,IAAMW,EAAU,IAAI7V,KAMpB,OAJA6V,EAAQC,eAAenE,OAAOrT,KAAK0W,OACnCa,EAAQE,YAAYpE,OAAOrT,KAAK2W,OAAS,GACzCY,EAAQG,WAAWrE,OAAOrT,KAAK4W,MAExBW,M,KAIEI,EAAgB,SAACC,EAAmBC,GAC/C,IAAMC,EAAID,EAAc,IAAInW,KAAiB,IAAZkW,GAAoB,IAAIlW,KAAKkW,EAAY,KACpElB,EAAOoB,EAAEC,cACTpB,EAASmB,EAAEE,WAAa,EAAK,GAArB,WAA8BF,EAAEE,WAAa,GAAMF,EAAEE,WAAa,EAC1EpB,EAAMkB,EAAEG,UAAY,GAAd,WAAuBH,EAAEG,WAAcH,EAAEG,UAC/CC,EAAOJ,EAAEK,WAAa,GAAf,WAAwBL,EAAEK,YAAeL,EAAEK,WAClDC,EAAMN,EAAEO,aAAe,GAAjB,WAA0BP,EAAEO,cAAiBP,EAAEO,aACrDC,EAAMR,EAAES,aAAe,GAAjB,WAA0BT,EAAES,cAAiBT,EAAES,aAI3D,MAFc,UAAM7B,EAAN,YAAcC,EAAd,YAAuBC,EAAvB,YAA8BsB,EAA9B,YAAsCE,EAAtC,YAA6CE,EAA7C,aAKHE,EAAsB,WACjC,IAAMhC,EAAO,IAAI9U,KAMjB,OAJA8U,EAAKiC,YAAY,EAAG,EAAG,GAEvBjC,EAAKkB,WAAWlB,EAAKyB,UAAY,IAE1BzB,GAGIkC,EAAkB,SAACC,EAAiBC,GAC/C,IAAMpC,EAAO,IAAI9U,KAQjB,OANA8U,EAAKiC,YAAYG,EAAWpC,EAAKqC,cAAgBD,EAAW,EAAG,EAAG,EAAG,GAEjED,GACFnC,EAAKkB,WAAWlB,EAAKsC,aAAeH,GAG/BnC,GAGIuC,EAAc,SAACvC,GAC1B,MAAgD,kBAAzCwC,OAAOC,UAAUrX,SAASsX,KAAK1C,IAG3B2C,EAAY,SAAC3C,GACxB,IAAMI,EAAMJ,EAAK4C,SAEjB,OAAe,IAARxC,GAAqB,IAARA,GAGf,SAASyC,EAAW3C,GACzB,OAAIA,EAAO,IAAM,GACXA,EAAO,MAAQ,GACbA,EAAO,MAAQ,EASlB,IAyBM4C,EAAwB,SAACC,GACpC,IAAIC,EACAC,EAcJ,OAXED,EADED,EAAUvB,WAAa,EAAI,GACpB,WAAOuB,EAAUvB,WAAa,IAE1BuB,EAAUvB,WAAa,GAAGpW,WAIvC6X,EADEF,EAAUtB,UAAY,GACjB,WAAOsB,EAAUtB,WAEbsB,EAAUtB,UAAWrW,WAG5B,GAAN,OAAU2X,EAAUxB,cAApB,YAAqCyB,EAArC,YAAkDC,IAGvCC,EAAsB,SAACC,GAClC,IAAIC,EACAC,EAcJ,OAXED,EADED,EAAQ3B,WAAa,EAAI,GACpB,WAAO2B,EAAQ3B,WAAa,IAExB2B,EAAQ3B,WAAa,GAAGpW,WAInCiY,EADEF,EAAQ1B,UAAY,GACjB,WAAO0B,EAAQ1B,WAEX0B,EAAQ1B,UAAWrW,WAGxB,GAAN,OAAU+X,EAAQ5B,cAAlB,YAAmC6B,EAAnC,YAA8CC,IAGzC,SAASC,EAAetD,EAAYuD,GACzC,IAAIC,EAKAC,EAJEvD,EAAOF,EAAKuB,cACZpB,EAAQH,EAAKwB,WAAa,EAC1BpB,EAAMJ,EAAKyB,UACXiC,EAAY1D,EAAK4C,SAKvB,OAFAY,EAAWX,EAAW3C,GAEdwD,GACN,KAAK,EACHD,EAAoB,EACpB,MACF,KAAK,EACHA,EAAoB,EACpB,MACF,QACEA,EAAoB,EAIxB,IAAME,EAAa,CACjBzD,OACAC,QACAC,OAGF,OAAQD,GACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACH,OAAKC,EAAMqD,EAAqB,IAC9BE,EAAWvD,IAAMA,EAAMqD,EAAoB,GAC3CE,EAAWxD,MAAQA,EAAQ,EAEpBoD,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,IAGjFA,EAAWvD,IAAMA,EAAMqD,EAEhBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GACjF,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACH,OAAKvD,EAAMqD,EAAqB,IAC9BE,EAAWvD,IAAMA,EAAMqD,EAAoB,GAC3CE,EAAWxD,MAAQA,EAAQ,EAEpBoD,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,IAGjFA,EAAWvD,IAAMA,EAAMqD,EAEhBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GACjF,KAAK,EACH,OAAIH,EACGpD,EAAMqD,EAAqB,IAC9BE,EAAWvD,IAAMA,EAAMqD,EAAoB,GAC3CE,EAAWxD,MAAQA,EAAQ,EAEpBoD,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,IAGjFA,EAAWvD,IAAMA,EAAMqD,EAEhBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GAG5EvD,EAAMqD,EAAqB,IAC9BE,EAAWvD,IAAMA,EAAMqD,EAAoB,GAC3CE,EAAWxD,MAAQA,EAAQ,EAEpBoD,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,IAEjFA,EAAWvD,IAAMA,EAAMqD,EAEhBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GACjF,KAAK,GACH,OAAKvD,EAAMqD,EAAqB,IAC9BE,EAAWvD,IAAMA,EAAMqD,EAAoB,GAC3CE,EAAWxD,MAAQ,EACnBwD,EAAWzD,KAAOA,EAAOuD,EAElBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,IAEjFA,EAAWvD,IAAMA,EAAMqD,EAEhBF,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GACjF,QACE,OAAOJ,EAAkB,CAACI,EAAWzD,KAAMyD,EAAWxD,MAAOwD,EAAWvD,KAAOuD,GAI9E,IAOMC,EAAoB,WAC/B,OAAO,IAAI1Y,KAAK,KAAM,EAAG,IAGd2Y,EAAa,WACxB,IAAMC,EAAU,IAAI5Y,KAGpB,OAFA4Y,EAAQ7B,YAAY6B,EAAQzB,cAAgB,GAErCyB,GAGMhE,O,gCC5Uf,2DAIaiE,EAAuB,uBA0BrBC,IAZf,SAAiCjlB,GAC/B,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,oCAA2CsD,YAAe3B,IAAO6W,MACrEpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8kB,GAAD,OAAgB9jB,EAbQ,SAAC8jB,GACjC,MAAO,CACL7hB,KAAM2hB,EACNE,SAU+BC,CAAmBD,OACjD5jB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,wCCP7C,IAAM6Z,EAAa,CACjBC,eAnBF,SAA8BvB,EAAmBF,EAAUC,GACzD,GAAIA,EACF,IACEC,EAAO0I,aAAa5I,EAAMC,IAC1B,MAAOnd,GACP,OAAOA,OAGT,IACEod,EAAO0I,aAAa5I,GACpB,MAAOld,GACP,OAAOA,EAIX,OAAO,IAOM0e,O,wCCvBf,qPAOaqH,EAAiB,gBACjBC,EAAoB,oBACpBC,EAAe,eACfC,EAA0B,0BAC1BC,EAAgB,gBAChBC,EAA0B,0BA6DxBC,IA9BW,SAAC3lB,EAAa4lB,EAA6BC,EAA0BC,EAAgBC,EAAcvmB,EAAawmB,GACxI,IAAIC,EAAO,GACPC,EAAQ,GAINC,EAAmBpC,YAAsB+B,GACzCM,EAAiBjC,YAAoB4B,GAY3C,OATEE,EADEzmB,EACE,WAAOA,EAAP,mBAAoBomB,GAEpB,kBAAcA,GAGhBE,IAAUI,GAAK,gBAAaC,IAC5BJ,IAAQG,GAAK,cAAWE,IACxBJ,IAAYE,GAAK,sBAAmBF,IAEjC,SAAC5kB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,oBAAmB6lB,GAAnB,OAAiCI,GAAjC,OAAwCC,GAAS5iB,YAAe3B,IAAO6W,MAC3EpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,EA/BJ,SAACilB,EAAyBR,GAC7C,MAAO,CACLxiB,KAAMwiB,EACNQ,WA4B8BC,CAAa7kB,EArDlB,SAACokB,GAC5B,OAAQA,GACN,KAAKpf,IAAY8f,SACf,OAAOlB,EACT,KAAK5e,IAAY+f,YACf,OAAOlB,EACT,KAAK7e,IAAYqT,OACf,OAAOyL,EACT,KAAK9e,IAAYggB,QACf,OAAOhB,EACT,KAAKhf,IAAYigB,UACf,OAAOhB,EACT,QACE,MAAO,IAwCwCiB,CAAqBd,QACrEvkB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCzC9ByiB,IA7BW,SAACC,EAAkBC,GAe3C,IAAIC,EAAS,GACTD,IAICC,EAH2BtD,OAAOuD,KAAKF,GAEhBG,SAASJ,GACvBC,EAAiBD,GAGfA,GAGhB,OAAOE,I,+BC1BT,oEAAO,IAAMG,EAAc,IACdC,EAA0B,K,uDCWhC,SAASC,EAAwB5hB,EAAe6hB,EAAsBC,GAC3E,GAAIxF,KAAKC,IAAIvc,GAAS,KAAa8hB,EACjC,OAZG,SAA2B9hB,GAChC,OAAIA,EAAQ,IACJ,GAAN,QAAWA,EAAQ,KAAW+hB,QAAQ,GAAtC,QACI/hB,EAAQ,IACN,GAAN,QAAWA,EAAQ,KAAe+hB,QAAQ,GAA1C,QAGK/hB,EAAM6G,WAKJmb,CAAkB1F,KAAKC,IAAIvc,IAGpC,IAAKA,EAAO,MAAO,IAEnB,GAAIsY,OAAO2J,MAAMjiB,EAAQ,IACvB,MAAO,IAUT,IAPA,IACMkiB,EADOliB,EAAM6G,WACJnH,MAAM,KACjByiB,EAAKD,EAAE,GAGLE,EAAKF,EAAEG,OAAS,EAAX,WAAqBH,EAAE,IAAO,MACnCI,EAAM,eACLA,EAAIC,KAAKJ,IAEdA,EAAKA,EAAGK,QAAQF,EAAK,SAEvB,OAAOT,EAAaM,EAAMA,EAAKC,EAG1B,SAASK,EAAyB9P,GACvC,OAAI,OAACA,QAAD,IAACA,OAAD,EAACA,EAAUqO,aAIR1I,SAAS3F,EAAS0B,eAAiB1B,EAASqO,aAAe1E,KAAKC,IAAI5J,EAASqO,aAAe,KAAKe,QAAQ,IAHrG,EArCb,qE,qXCKY/S,EAQAzN,E,wDARAyN,K,YAAAA,E,cAAAA,E,gBAAAA,E,kBAAAA,E,uBAAAA,M,cAQAzN,K,YAAAA,E,UAAAA,E,YAAAA,E,sBAAAA,E,cAAAA,E,aAAAA,M,KASL,IAyBKmhB,EAzBCC,EAAb,sCACE5R,wBAA0B3Q,IAAiBoQ,QAD7C,KAEEQ,iBAAmB5Q,IAAiBoQ,QAFtC,KAGES,WAAa7Q,IAAiBoQ,QAHhC,KAIEU,sBAAwB9Q,IAAiBoQ,QAJ3C,KAKEW,iBAAmB/Q,IAAiBoQ,QALtC,KAMEY,sBAAwBhR,IAAiBoQ,QAN3C,KAOEa,mBAAqBjR,IAAiBoQ,QAPxC,KAQEc,oBAAsBlR,IAAiBoQ,QARzC,KASEe,iBAAmBnR,IAAiBoQ,QATtC,KAUEgB,uBAAyBpR,IAAiBoQ,QAV5C,KAWEoS,qBAAuBxiB,IAAiBoQ,QAX1C,KAYEiB,kBAAoBrR,IAAiBoQ,QAZvC,KAaEkB,yBAA2BtR,IAAiBoQ,QAb9C,KAcEC,kBAAoBrQ,IAAiBoQ,QAdvC,KAeEmB,aAAenR,IAAmBgQ,QAfpC,KAgBED,mBAAqBjQ,IAAYkQ,QAhBnC,KAiBEoB,oBAAsBtR,IAAYkQ,QAjBpC,KAkBEqB,uBAAyBvR,IAAYkQ,QAlBvC,KAmBEsB,oBAAsBxR,IAAYkQ,QAnBpC,KAoBEuB,uBAAyBzR,IAAYkQ,QApBvC,KAqBEwB,2BAA6B1R,IAAYkQ,QArB3C,KAsBEqS,gCAAkCviB,IAAYkQ,U,SAGpCkS,O,mBAAAA,I,yBAAAA,I,uCAAAA,I,wBAAAA,M,KAOL,IA+IKI,EAKAC,EApJCC,EAAb,sCACElhB,aAAe,EADjB,KAEEC,cAAgB,EAFlB,KAGEC,oBAAsB,EAHxB,KAIEC,UAAY,EAJd,KAKEC,WAAa,GAGF+gB,EAAb,sCACEhP,GAAK,EADP,KAEE9B,KAAO,GAFT,KAGE9L,SAAW,GAHb,KAIE6c,UAAY,GAJd,KAKEC,QAAU,GALZ,KAMEC,MAAQ,GANV,KAOEvO,MAAQ,GAPV,KAQEC,SAAW,MARb,KASEuO,GAAK,EATP,KAUEC,GAAK,EAVP,KAWEnN,GAAK,EAXP,KAYEoN,UAAY,EAZd,KAaEC,UAAY,EAbd,KAcEC,UAAY,EAdd,KAeEC,gBAAkB,EAfpB,KAgBEC,OAASthB,IAAUgU,IAhBrB,KAiBEuN,OAASvhB,IAAUgU,IAjBrB,KAkBED,OAAS/T,IAAUgU,IAlBrB,KAmBEwN,oBAAsBxhB,IAAUgU,IAnBlC,KAoBEyN,SAAW,EApBb,KAqBEC,YAAa,EArBf,KAsBE7P,QAAU,EAtBZ,KAuBE8M,YAAc,EAvBhB,KAwBE7M,OAAS,EAxBX,KAyBE6P,kBAAoB,EAzBtB,KA0BEC,eAAiB,GA1BnB,KA2BE7P,OAAS,EA3BX,KA4BEC,eAAiB,EA5BnB,KA6BEgB,OAAS,EA7BX,KA8BEd,WAAa,EA9Bf,KA+BEC,mBAAqB,EA/BvB,KAgCEc,YAAc,EAhChB,KAiCEb,oBAAsB,EAjCxB,KAkCEC,4BAA8B,EAlChC,KAmCEvS,KAAOugB,EAAanN,OAnCtB,KAoCEC,cAAgB,KApClB,KAqCE0O,WAAa,GArCf,KAsCEC,aAAe,GAtCjB,KAuCE1O,YAAc,EAvChB,KAwCE2O,cAAgB,EAxClB,KAyCEC,cAAgB,EAzClB,KA0CE/P,OAAS,EA1CX,KA2CEgQ,wBAA0B,GA3C5B,KA4CElP,kBAAoB,CAAC,IAAIzT,KA5C3B,KA6CEqhB,iBAAmB,IAAIA,EA7CzB,KA8CEhN,eAAiB,IAAI2M,EA9CvB,KA+CElM,OAAS,GA/CX,KAgDE7B,aAAe,GAhDjB,KAiDEkB,iBAAyC,CAAC,IAAIrC,KAjDhD,KAkDE8Q,gBAAiB,EAlDnB,KAmDE3iB,MAAQ,EAnDV,KAoDE4iB,OAAS,GApDX,KAqDEle,SAAW,GArDb,KAsDEyP,6BAA8B,EAtDhC,KAuDE0O,iBAAmB,GAoBRC,EAAb,sCACEre,SAAW,GADb,KAEEC,SAAW,GAFb,KAGE6L,KAAO,GAHT,KAIE0C,MAAQ,GAJV,KAKEuO,MAAQ,GALV,KAMED,QAAU,GANZ,KAOED,UAAY,GAPd,KAQEpO,SAAW,MARb,KASE2B,OAAS,GATX,KAUE6N,wBAA0B,GAV5B,KAWElP,kBAA8C,CAAC,IAAIzT,KAXrD,KAYEmU,iBAA0C,CAAC,IAAIrC,KAZjD,KAaEsC,6BAA8B,EAbhC,KAcEnU,MAAS,GAGE+iB,EAAb,sCACEte,SAAY,GADd,KAEE8L,KAAQ,GAFV,KAGE7L,SAAY,GAHd,KAIEuO,MAAS,GAJX,KAKEsO,QAAW,GALb,KAMEC,MAAS,GANX,KAOEF,UAAa,GAPf,KAQE/gB,KAAQugB,EAAanN,OARvB,KASEoO,OAAU,GATZ,KAUEN,GAAM,EAVR,KAWEO,OAAU,GAXZ,KAYEN,GAAM,EAZR,KAaElN,OAAU,GAbZ,KAcED,GAAM,EAdR,KAeE0N,oBAAuB,GAfzB,KAgBEH,gBAAmB,EAhBrB,KAiBEU,cAAiB,EAjBnB,KAkBEjP,cAAiB,IAlBnB,KAmBEoP,gBAAkB,I,SAwBRzB,K,kBAAAA,E,yBAAAA,M,cAKAC,K,oBAAAA,E,uBAAAA,M,KAKL,IA+BK6B,EA/BCC,EAAb,sCACEC,uBAAwB,EAD1B,KAEEC,sBAAuB,EAFzB,KAGEC,4BAA6B,EAH/B,KAIEC,sBAAuB,GAGZC,EAAb,sCACE/S,KAAO,GADT,KAEE9L,SAAW,GAFb,KAGE8c,QAAU,GAHZ,KAIEC,MAAQ,GAJV,KAKEvO,MAAQ,GALV,KAMEC,SAAW,MANb,KAOEkM,YAAc,EAPhB,KAQElK,QAAU,K,SAgBA8N,K,QAAAA,E,QAAAA,E,QAAAA,E,SAAAA,M,mCC/OZ,+QAOaO,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAmB,mBACnBC,EAA0B,0BAa1BC,EAA0B,SAACC,GACtC,MAAO,CACL3nB,KAAMynB,EACNE,eAgBSC,EAAuB,iBAAO,CAAE5nB,KAAMunB,IAEtCM,EAAoB,SAACC,GAAD,MAAqB,CAAE9nB,KAAMwnB,EAAkBM,cAuDjEC,IArDf,SACEprB,EACAqrB,EACAC,EACAC,EACAxqB,EACAyqB,EACAtF,EACAuF,EACAC,GAEA,IAAIC,EAAW,gBAAY5qB,GA2B3B,OAzBIyqB,IAAOG,GAAW,iBAAcH,IAChCF,IAAQK,GAAe,oBACvBzF,IAAOyF,GAAW,iBAAczF,IAChCuF,IAAWE,GAAW,qBAAkBF,IACxCC,IAAWC,GAAW,qBAAkBD,IACxCH,IAAMI,GAAW,oBAAiBJ,IAClCF,IAAWM,GAAW,qBAAkBN,IAEvC1qB,IAAkBgF,sBAAsB,cAC3ChF,IAAkB+D,wBAAwB,YAAa,CACrD,UACA,eACA,YACA,gBACA,eACA,cACA,cAEA,cACA,cACA,gBACA,oBAIG,SAACtD,GACNA,EAAS+C,aAAiB,IAC1B/C,EAASqD,aAAmC,IAE5CkH,MAAM,GAAD,OAAI3L,EAAJ,qBAAoB2rB,GAAeroB,YAAe3B,IAAO6W,MAC3DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,GA3DzB+pB,EA2DiD1pB,EAAKmqB,KA1DtDC,EA0D4DpqB,EAAKiF,eAxD1D,CACLrD,KAAMsnB,EACNQ,YACAU,oBAP0B,IAC5BV,EACAU,KA2DKvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,WACPrX,EAASqD,aAAmC,IAC5CrD,EAAS+C,aAAiB,U,6BC9FlC,kKAMaohB,EAAe,eACfC,EAA0B,0BAC1BsG,EAAyB,yBACzBC,EAAuB,uBA0ErBC,IAhCU,SAAChsB,EAAaR,EAAYomB,EAA6BE,EAAgBC,EAAcC,EAAqBiG,GACjI,IAAI/F,EAAK,UAAM1mB,EAAN,mBAAmBomB,GAEtBO,EAAmBpC,YAAsB+B,GACzCM,EAAiBjC,YAAoB4B,GAM3C,OAJID,IAAUI,GAAK,gBAAaC,IAC5BJ,IAAQG,GAAK,cAAWE,IACxBJ,IAAYE,GAAK,sBAAmBF,IAEjC,SAAC5kB,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,2BAA0BkmB,GAAS5iB,YAAe3B,IAAO6W,MAC7DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAEHL,EADiB,YAAf4kB,EAnCD,CACL3iB,KAAMmiB,EACN0G,gBAkCkCzqB,GAER,6BAAfukB,EAhCY,SAACkG,GAC1B,MAAO,CACL7oB,KAAM0oB,EACNG,mBA8BaC,CAAmB1qB,GA/ChB,SAACyqB,GACnB,MAAO,CACL7oB,KAAMkiB,EACN2G,mBA+CaE,CAAY3qB,IAGnBwqB,GACF7qB,EAjCoB,SAACyf,EAAkBqL,GAC7C,MAAO,CACL7oB,KAAMyoB,EACNjL,WACAqL,mBA6BaG,CAAoB7sB,EAAIiC,OAGpCH,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,S,+MCrEzC+sB,EAAgB,gBAChBC,EAAwB,wBAsCxBC,EACX,yDACA,WAAOprB,EAAoBqrB,GAA3B,6BAAAlK,EAAA,yDACUviB,EAAQysB,IAAWC,cAAnB1sB,IACF2sB,EAAShsB,IAAkBC,yBAAyB,QACpDgsB,EAAmBD,EAASrsB,KAAKC,MAAMosB,GAAU,GAGjDE,EAAyB,WAC7B,OAAQD,EAAiBzmB,aACvB,KAAKA,IAAYgU,OACf,MAAO,kCAET,KAAKhU,IAAYsiB,SACf,MAAO,iCAET,QACE,MAAO,KAIPqE,EAAqB,WACzB,OAAQF,EAAiBzmB,aACvB,KAAKA,IAAYgU,OACf,MAAO,UAET,KAAKhU,IAAY4mB,MACf,MAAO,SAET,KAAK5mB,IAAYsiB,SACf,MAAO,YAET,QACE,MAAO,KAGTmE,EAAiBzmB,cAAgBA,IAAY4mB,MAlCnD,0CAoCY3rB,EAAS+C,aAAiB,IApCtC,wBAqC6BwH,MAAM,GAAD,OACvB3L,EADuB,YAChB8sB,IADgB,mBACQF,QADR,IACQA,OADR,EACQA,EAAkBnT,GAD1B,YACgCoT,KAC1DvpB,YAAe3B,IAAO6W,MAvC9B,eAqCYzY,EArCZ,iBAyC6BA,EAASwB,OAzCtC,QAyCYyrB,EAzCZ,OA0CYC,EA1CZ,eA2CWL,EA3CX,CA4CQM,YAAaF,IAEfrsB,IAAkBE,uBAAuB,OAAQP,KAAKQ,UAAUmsB,IAChE7rB,EAAS+C,aAAiB,IA/ChC,kDAiDMzE,IAAOL,kBAAP,MAjDN,0DADA,yDAoIa8tB,IA7Ef,SACEntB,EACAotB,EACAC,EACAC,EACAvsB,EACAyqB,EACAtF,EACAuF,EACAC,EACA6B,GAEA,IAAI5B,EAAW,gBAAY5qB,GAgD3B,OA7CE4qB,GADE2B,EACa,kCAEA,mCAEb9B,IAAOG,GAAW,iBAAcH,IAChCtF,IAAOyF,GAAW,iBAAczF,IAChCuF,IAAWE,GAAW,qBAAkBF,IACxCC,IAAWC,GAAW,qBAAkBD,IACxC6B,IAA4B5B,GAAW,sCAAmC4B,IAC1EH,GAAgBC,EAClB1B,GAAe,wBACNyB,EACTzB,GAAe,mBACN0B,IACT1B,GAAe,gBAGZhrB,IAAkBgF,sBAAsB,YAC3ChF,IAAkB+D,wBAAwB,UAAW,CACnD,UACA,aACA,YACA,gBACA,eACA,cACA,cACA,cACA,cACA,gBACA,iBAIC/D,IAAkBgF,sBAAsB,wBAC3ChF,IAAkBE,uBAAuB,sBAAuB,SAG7DF,IAAkBgF,sBAAsB,oBAC3ChF,IAAkBE,uBAAuB,kBAAmB,SAGzDF,IAAkBgF,sBAAsB,8BAC3ChF,IAAkBE,uBAAuB,4BAA6B,SAGjE,SAACO,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,mBAAkB2rB,GAAeroB,YAAe3B,IAAO6W,MACzDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GArIsB,IACjC+rB,EACA3B,EAqIQzqB,EADEmsB,GArIVC,EAsIqC/rB,EAAKmqB,KArI1CC,EAqIgDpqB,EAAKiF,eAnI9C,CACLrD,KAAMkpB,EACNiB,iBACA3B,mBAzBwB,SAC1B4B,EACA5B,GAEA,MAAO,CACLxoB,KAAMipB,EACNmB,UACA5B,kBAoJiB6B,CAAajsB,EAAKmqB,KAAMnqB,EAAKiF,oBAG3CpF,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,uEC/JzCwpB,EAA4B,CAChC3tB,IAAK,GACL4tB,UAAW,GACXC,YAAa,GACb3N,wBAAyB,GACzB4N,UAAW,GACXC,oBAAqB,GACrBC,wBAAyB,GACzBC,eAAgB,GAChBrO,SAAU,GACVE,MAAO,GACPoO,gBAAiB,GACjBC,eAAgB,GAChBtH,SAAU,GACVuH,aAAc,IAoCD1B,EAjCO,WAA0G,IAAzGlQ,EAAwG,uDAAnFmR,EAAcU,EAAqE,uCAC7H,OAAQA,EAAOhrB,MACb,KAAKgc,IACH,OAAO,eACF7C,EADL,CAEExc,IAAKquB,EAAO5O,OAAOzf,IACnB4tB,UAAWS,EAAO5O,OAAOmO,UACzBC,YAAaQ,EAAO5O,OAAOoO,YAC3B3N,wBAAyBmO,EAAO5O,OAAOS,wBACvC4N,UAAWO,EAAO5O,OAAOqO,UACzBC,oBAAqBM,EAAO5O,OAAOsO,oBACnCC,wBAAyBK,EAAO5O,OAAOuO,wBACvCC,eAAgBI,EAAO5O,OAAOwO,eAC9BnO,MAAOuO,EAAO5O,OAAOK,MACrBoO,gBAAiBG,EAAO5O,OAAOyO,gBAC/BC,eAAgBE,EAAO5O,OAAO0O,eAC9BtH,SAAUwH,EAAO5O,OAAOoH,WAE5B,KAAKvH,IACH,OAAO,eACF9C,EADL,CAEEoD,SAAUyO,EAAOzO,WAErB,KAAKL,IACH,OAAO,eACF/C,EADL,CAEE4R,aAAcC,EAAO5O,SAEzB,QACE,OAAOjD,I,QChDPmR,EAA0B,CAC9BW,iBAAiB,EACjBhjB,KAAM,GACNijB,WAAW,EACX1uB,SAAS,GA2CI2uB,EAxCK,WAAqE,IAApEhS,EAAmE,uDAAhDmR,EAAcU,EAAkC,uCACtF,OAAQA,EAAOhrB,MACb,KAAK2H,IACH,OAAO,eACFwR,EADL,CAEE8R,iBAAiB,EACjBhjB,KAAM+iB,EAAO/iB,OAEjB,KAAKL,IACH,OAAO,eACFuR,EADL,CAEE8R,iBAAiB,EACjBhjB,KAAM,KAGV,KAAKJ,IACH,OAAO,eACFsR,EADL,CAEE+R,WAAW,IAGf,KAAKpjB,IACH,OAAO,eACFqR,EADL,CAEE+R,WAAW,EACX1uB,SAAS,IAGb,KAAKuL,IACH,OAAO,eACFoR,EADL,CAEE+R,WAAW,EACX1uB,SAAS,IAGb,QACE,OAAO2c,I,mCC1CPmR,EAA+B,CACnCxC,UAAW,GACXsD,gBAAiB,GACjB5C,eAAgB,IAAInlB,IACpBskB,YAAY,GAiDC0D,EA9CU,WAGH,IAFpBlS,EAEmB,uDAFKmR,EACxBU,EACmB,uCACnB,OAAQA,EAAOhrB,MACb,KAAKsnB,IACH,OAAO,eACFnO,EADL,CAEE2O,UAAWkD,EAAOlD,UAClBU,eAAgBwC,EAAOxC,iBAE3B,KAAKjB,IACH,OAAO,eACFpO,EADL,CAEE2O,UAAW,GACXU,eAAgB,IAAInlB,IACpBskB,YAAY,IAEhB,KAAKH,IACH,OAAO,eACFrO,EADL,CAEE2O,UAAU,YAAKkD,EAAOlD,aAE1B,KAAKL,IACH,OAAO,eACFtO,EADL,CAEEwO,WAAYqD,EAAOrD,aAEvB,KAAK2D,IACH,OAAO,eACFnS,EADL,CAEEiS,gBAAiBJ,EAAOI,gBACxB5C,eAAgBwC,EAAOxC,iBAS3B,QACE,OAAOrP,I,0BCrDPmR,EAAqC,CACzCxV,SAAU,IAAIsQ,IACdmG,cAAe,IAAInG,IACnBoG,6BAA8B,IAAIpG,KAqCrBqG,EAjCS,WAGI,IAF1BtS,EAEyB,uDAFKmR,EAC9BU,EACyB,uCACzB,OAAQA,EAAOhrB,MACb,KAAK0U,IACH,OAAO,eACFyE,EADL,CAEErE,SAAUkW,EAAOjW,kBAGrB,KAAKJ,IACH,OAAO,eACFwE,EADL,CAEEoS,cAAeP,EAAOjW,kBAG1B,KAAKH,IACH,OAAO,eACFuE,EADL,CAEEqS,6BAA8BR,EAAOjW,kBAGzC,KAAK2W,IACH,OAAO,eACFvS,EADL,CAEErE,SAAU,IAAIsQ,MAElB,QACE,OAAOjM,I,yBCxCPmR,EAAmC,CACvCpN,OAAQ,IAAIpG,IACZ6U,cAAe,IAAI7U,IACnB8U,eAAgB,IAmCHC,EA7BO,WAAqG,IAApG1S,EAAmG,uDAAvEmR,EAAcU,EAAyD,uCACxH,OAAQA,EAAOhrB,MACb,KAAK8c,IACH,OAAO,eACF3D,EADL,CAEE+D,OAAQ8N,EAAO7N,gBAGnB,KAAK2O,IACH,OAAO,eACF3S,EADL,CAEEyS,eAAgBZ,EAAOY,iBAE3B,KAAK7O,IACH,OAAO,eACF5D,EADL,CAEEwS,cAAeX,EAAO3N,uBAE1B,KAAKL,IACH,MAAO,CACLE,OAAQ,IAAIpG,IACZ6U,cAAe,IAAI7U,IACnB8U,eAAgB,IAEpB,QACE,OAAOzS,I,SC9BPmR,EAA4B,CAChCyB,WAAY,CACVC,OAAQ,GACRxD,eAAgB,IAAInlB,KAEtB4oB,aAAc,CACZD,OAAQ,GACRxD,eAAgB,IAAInlB,MA2BT6oB,EAvBO,WAAgF,IAA/E/S,EAA8E,uDAAzDmR,EAAcU,EAA2C,uCACnG,OAAQA,EAAOhrB,MACb,KAAKmsB,IACH,OAAO,eACFhT,EADL,CAEE4S,WAAY,CACVC,OAAQhB,EAAOgB,OACfxD,eAAgBwC,EAAOxC,kBAG7B,KAAK4D,IACH,OAAO,eACFjT,EADL,CAEE8S,aAAc,CACZD,OAAQhB,EAAOgB,OACfxD,eAAgBwC,EAAOxC,kBAG7B,QACE,OAAOrP,I,SCjCPmR,EAAuC,CAC3C+B,kBAAmB,CACjBC,WAAY,GACZ9D,eAAgB,IAAInlB,IACpBkpB,sBAAuB,EACvBC,qBAAsB,IAqBXC,EAjBkB,WAAiH,IAAhHtT,EAA+G,uDAA/EmR,EAAcU,EAAiE,uCAC/I,OAAQA,EAAOhrB,MACb,KAAK0sB,IACH,OAAO,eACFvT,EADL,CAEEkT,kBAAmB,CACjBC,WAAYtB,EAAOqB,kBAAkBM,kBACrCnE,eAAgBwC,EAAOxC,eACvB+D,sBAAuBvB,EAAOqB,kBAAkBO,sBAChDJ,qBAAsBxB,EAAOqB,kBAAkBQ,wBAGrD,QACE,OAAO1T,I,SCxBPmR,EAA6B,CACjCF,QAAS,GACTD,eAAgB,GAChB3B,eAAgB,IAAInlB,KAuBPypB,EAlBQ,WAA6E,IAA5E3T,EAA2E,uDAArDmR,EAAcU,EAAuC,uCACjG,OAAQA,EAAOhrB,MACb,KAAKipB,IACH,OAAO,eACF9P,EADL,CAEEiR,QAASY,EAAOZ,QAChB5B,eAAgBwC,EAAOxC,iBAE3B,KAAKU,IACH,OAAO,eACF/P,EADL,CAEEgR,eAAgBa,EAAOb,iBAE3B,QACE,OAAOhR,I,SCrBPmR,EAA4B,CAChCyC,OAAQ,GACRC,gBAAiB,GACjBC,cAAe,GACfC,eAAgB,IAsCHC,EAlCO,WAA4G,IAA3GhU,EAA0G,uDAArFmR,EAAcU,EAAuE,uCAC/H,OAAQA,EAAOhrB,MACb,KAAKkiB,IACH,OAAO,eACF/I,EADL,CAEE4T,OAAQ/B,EAAOnC,kBAEnB,KAAK1G,IACH,OAAO,eACFhJ,EADL,CAEE6T,gBAAiBhC,EAAOnC,kBAE5B,KAAKH,IACH,OAAO,eACFvP,EADL,CAEE8T,cAAejC,EAAOnC,kBAE1B,KAAKJ,IAEH,IAAM2E,EAAqBjU,EAAM+T,eAAepS,KAAI,SAACuJ,GAAD,OAAOA,KAM3D,OALA+I,EAAmBjkB,KAAK,CACtBqU,SAAUwN,EAAOxN,SACjBqL,gBAAiBmC,EAAOnC,kBAGnB,eACF1P,EADL,CAEE+T,eAAgBE,IAEpB,QACE,OAAOjU,I,SC1CPmR,EAA4B,CAChC+C,gBAAiB,IAgBJC,EAZO,WAAgF,IAA/EnU,EAA8E,uDAAzDmR,EAAcU,EAA2C,uCACnG,OAAQA,EAAOhrB,MACb,KAAKutB,IACH,OAAO,eACFpU,EADL,CAEEkU,gBAAiBrC,EAAOwC,kBAE5B,QACE,OAAOrU,I,kBCXPmR,EAAiC,CACrCmD,QAAS,GACTC,WAAY,IAuBCC,EAjBY,WAA0F,IAAzFxU,EAAwF,uDAA9DmR,EAAcU,EAAgD,uCAClH,OAAQA,EAAOhrB,MACb,KAAK4tB,IACH,OAAO,eACFzU,EADL,CAEEsU,QAASzC,EAAOyC,UAEpB,KAAKI,IACH,OAAO,eACF1U,EADL,CAEEuU,WAAY1C,EAAO0C,aAEvB,QACE,OAAOvU,I,SCvBPmR,EAAgC,CACpCwD,YAAa,IAeAC,EAZW,WAAuF,IAAtF5U,EAAqF,uDAA5DmR,EAAcU,EAA8C,uCAC9G,OAAQA,EAAOhrB,MACb,KAAKguB,IACH,OAAO,eACF7U,EADL,CAEE2U,YAAa9C,EAAO8C,cAExB,QACE,OAAO3U,I,2ECgBPmR,GAA8B,CAClC2D,cAAe,IAAIxb,KACnByb,eAAgB,IAAIrb,KACpBsb,iBAAkB,IAAIlb,KACtBmb,kBAAmB,CAAC,IAAIha,MACxBia,0BAA2B,CAAC,IAAIja,MAChCka,yBAA0B,CAAC,IAAIla,MAC/Bma,kBAAmB,GACnBC,yBAA0B,CAAC,IAAI1c,MAC/B2c,sBAAuB,CAAC,IAAI3c,MAC5B4c,uBAAwB,CAAC,IAAItc,MAC7Buc,eAAgB,IAoEHtD,GA9DU,WAAsE,IAArElS,EAAoE,uDAA7CmR,GAAcU,EAA+B,uCAC5F,OAAQA,EAAOhrB,MACb,KAAK4uB,IACH,OAAO,eACFzV,EADL,CAEE8U,cAAejD,EAAO6D,WAE1B,KAAKC,IACH,OAAO,eACF3V,EADL,CAEE+U,eAAgBlD,EAAO6D,WAE3B,KAAKE,IACH,OAAO,eACF5V,EADL,CAEEgV,iBAAkBnD,EAAO6D,WAE7B,KAAKG,KACH,OAAO,eACF7V,EADL,CAEEiV,kBAAmBpD,EAAO6D,WAE9B,KAAKI,KACH,OAAO,eACF9V,EADL,CAEEkV,0BAA2BrD,EAAO6D,WAEtC,KAAKK,KACH,OAAO,eACF/V,EADL,CAEEmV,yBAA0BtD,EAAO6D,WAErC,KAAKM,IACH,OAAO,eACFhW,EADL,CAEEoV,kBAAmBvD,EAAOoE,YAE9B,KAAKC,KACH,OAAO,eACFlW,EADL,CAEEqV,yBAA0BxD,EAAO6D,WAErC,KAAKS,KACH,OAAO,eACFnW,EADL,CAEEsV,sBAAuBzD,EAAO6D,WAElC,KAAKU,KACH,OAAO,eACFpW,EADL,CAEEuV,uBAAwB1D,EAAO6D,WAEnC,KAAKW,KACH,OAAO,eACFrW,EADL,CAEEwV,eAAgB3D,EAAO6D,WAE3B,QACE,OAAO1V,I,UCvGPmR,GAA4B,CAChCmF,OAAQ,IAcKC,GAXO,WAAgF,IAA/EvW,EAA8E,uDAAzDmR,GAAcU,EAA2C,uCACnG,OAAQA,EAAOhrB,MACb,KAAK2vB,KACH,MAAO,CACLF,OAAQzE,EAAOyE,QAEnB,QACE,OAAOtW,I,oBCVPmR,GAAkC,CACtChV,MAAO,I,OAAIoU,IAuBEkG,GAjBM,WAAsF,IAArFzW,EAAoF,uDAAzDmR,GAAcU,EAA2C,uCACxG,OAAQA,EAAOhrB,MACb,KAAK6vB,KACH,OAAO,eACF1W,EADL,CAEE7D,MAAO0V,EAAO8E,eAElB,KAAKC,KACH,OAAO,eACF5W,EADL,CAEE7D,MAAO0V,EAAOgF,cAElB,QACE,OAAO7W,I,QChBPmR,GAAmC,CACvCY,WAAW,EACX+E,mBAAmB,EACnBC,gBAAgB,EAChBC,qBAAqB,EACrBC,uBAAuB,EACvBC,4BAA4B,EAC5BC,6BAA6B,GAsDhBC,OAnDf,WAA6H,IAA/FpX,EAA8F,uDAAlEmR,GAAcU,EAAoD,uCAC1H,OAAQA,EAAOhrB,MACb,KAAKO,KACH,OAAO,eACF4Y,EADL,CAEE+R,UAAWF,EAAOnuB,SAItB,KAAK4D,KACH,OAAO,eACF0Y,EADL,CAEE8W,kBAAmBjF,EAAOnuB,SAG9B,KAAK2D,KACH,OAAO,eACF2Y,EADL,CAEE+W,eAAgBlF,EAAOnuB,SAG3B,KAAK6D,KACH,OAAO,eACFyY,EADL,CAEEgX,oBAAqBnF,EAAOnuB,SAGhC,KAAK8D,KACH,OAAO,eACFwY,EADL,CAEEiX,sBAAuBpF,EAAOnuB,SAGlC,KAAK+D,KACH,OAAO,eACFuY,EADL,CAEEkX,2BAA4BrF,EAAOnuB,SAGvC,KAAKgE,KACH,OAAO,eACFsY,EADL,CAEEmX,4BAA6BtF,EAAOnuB,SAGxC,QACE,OAAOsc,I,UC3DPmR,GAA6B,CACjCkG,KAAM,GACNhI,eAAgB,IAAInlB,KAgBPotB,GAbQ,WAAgF,IAA/EtX,EAA8E,uDAAxDmR,GAAcU,EAA0C,uCACpG,OAAQA,EAAOhrB,MACb,KAAK0wB,KACH,OAAO,eACFvX,EADL,CAEEqX,KAAMxF,EAAOwF,KACbhI,eAAgBwC,EAAOxC,iBAE3B,QACE,OAAOrP,I,UCHPmR,GAA6B,CACjCqG,SAAU,GACVC,YAAa,GACb7D,OAAQ,GACRC,gBAAiB,GACjB6D,QAAS,GACT/I,UAAW,IAyCEgJ,GArCQ,WAAmF,IAAlF3X,EAAiF,uDAA3DmR,GAAcU,EAA6C,uCACvG,OAAQA,EAAOhrB,MACb,KAAKgiB,KACH,OAAO,eACF7I,EADL,CAEEwX,SAAU3F,EAAOhI,UAErB,KAAKf,KACH,OAAO,eACF9I,EADL,CAEEyX,YAAa5F,EAAOhI,UAExB,KAAKd,KACH,OAAO,eACF/I,EADL,CAEE4T,OAAQ/B,EAAOhI,UAEnB,KAAKb,KACH,OAAO,eACFhJ,EADL,CAEE6T,gBAAiBhC,EAAOhI,UAE5B,KAAKZ,KACH,OAAO,eACFjJ,EADL,CAEE0X,QAAS7F,EAAOhI,UAEpB,KAAKX,KACH,OAAO,eACFlJ,EADL,CAEE2O,UAAWkD,EAAOhI,UAEtB,QACE,OAAO7J,I,mBCrDPmR,GAA8B,CAClCyG,SAAU,GACVvI,eAAgB,IAAInlB,IACpBwe,MAAO,GAuBMmP,GAlBS,WAAiF,IAAhF7X,EAA+E,uDAAxDmR,GAAcU,EAA0C,uCACtG,OAAQA,EAAOhrB,MACb,KAAKixB,KACH,OAAO,eACF9X,EADL,CAEE4X,SAAU/F,EAAO+F,SACjBvI,eAAgBwC,EAAOxC,iBAE3B,KAAK7G,KACH,OAAO,eACFxI,EADL,CAEE0I,MAAOmJ,EAAOnJ,QAElB,QACE,OAAO1I,I,UCvBPmR,GAAiC,CACrC4G,YAAa,GACb1I,eAAgB,IAAInlB,KAgBP8tB,GAbY,WAA+F,IAA9FhY,EAA6F,uDAAnEmR,GAAcU,EAAqD,uCACvH,OAAQA,EAAOhrB,MACb,KAAKoxB,KACH,OAAO,eACFjY,EADL,CAEE+X,YAAalG,EAAOkG,YACpB1I,eAAgBwC,EAAOxC,iBAE3B,QACE,OAAOrP,I,SCNPmR,GAAuC,CAC3C+G,aAAa,EACbC,wBAAwB,EACxBC,mBAAmB,EACnBC,iCAAiC,EACjCC,sCAAsC,GAyCzBC,OAtCf,WAAuI,IAArGvY,EAAoG,uDAApEmR,GAAcU,EAAsD,uCACpI,OAAQA,EAAOhrB,MACb,KAAK+E,KACH,OAAO,eACFoU,EADL,CAEEkY,YAAarG,EAAOnuB,SAGxB,KAAKmI,KACH,OAAO,eACFmU,EADL,CAEEmY,uBAAwBtG,EAAOnuB,SAGnC,KAAKoI,KACH,OAAO,eACFkU,EADL,CAEEoY,kBAAmBvG,EAAOnuB,SAG9B,KAAKqI,KACH,OAAO,eACFiU,EADL,CAEEqY,gCAAiCxG,EAAOnuB,SAG5C,KAAKsI,KACH,OAAO,eACFgU,EADL,CAEEsY,qCAAsCzG,EAAOnuB,SAGjD,QACE,OAAOsc,I,UCjDPmR,GAA2C,CAC/C0B,OAAQ,GACRxD,eAAgB,IAiBHmJ,GAbsB,WAA6H,IAA5HxY,EAA2H,uDAAvFmR,GAAcU,EAAyE,uCAC/J,OAAQA,EAAOhrB,MACb,KAAK4xB,KACH,OAAO,eACFzY,EADL,CAEE6S,OAAQhB,EAAOgB,OACfxD,eAAgBwC,EAAOxC,iBAE3B,QACE,OAAOrP,I,kICQPmR,GAAgC,CACpCuH,WAAY,GACZC,WAAY,GACZC,aAAc,GACdC,YAAc,GACdC,cAAe,GACfC,iBAAkB,GAClBC,mBAAoB,GACpBC,mBAAoB,GACpBC,oBAAqB,GACrBC,iBAAkB,GAClBC,qBAAsB,GACtBC,WAAY,GACZC,WAAY,IA6FCC,GA3EO,WAGC,IAFrBvZ,EAEoB,uDAFKmR,GACzBU,EACoB,uCACpB,OAAQA,EAAOhrB,MACb,KAAK2yB,KACH,OAAO,eACFxZ,EADL,CAEE0Y,WAAY7G,EAAO6G,aAEvB,KAAKe,KACH,OAAO,eACFzZ,EADL,CAEE2Y,WAAY9G,EAAO8G,aAErB,KAAKe,KACH,OAAO,eACF1Z,EADL,CAEE4Y,aAAc/G,EAAO+G,eAEvB,KAAKe,KACH,OAAO,eACF3Z,EADL,CAEE6Y,YAAahH,EAAOgH,cAE5B,KAAKe,KACH,OAAO,eACF5Z,EADL,CAEE8Y,cAAejH,EAAOiH,gBAE1B,KAAKe,KACH,OAAO,eACF7Z,EADL,CAEE+Y,iBAAkBlH,EAAOkH,mBAE7B,KAAKe,KACH,OAAO,eACF9Z,EADL,CAEEgZ,mBAAoBnH,EAAOmH,qBAE/B,KAAKe,KACH,OAAO,eACF/Z,EADL,CAEEiZ,mBAAoBpH,EAAOoH,qBAE/B,KAAKe,KACH,OAAO,eACFha,EADL,CAEEkZ,oBAAqBrH,EAAOqH,sBAEhC,KAAKe,KACH,OAAO,eACFja,EADL,CAEEmZ,iBAAkBtH,EAAOsH,mBAE7B,KAAKe,KACH,OAAO,eACFla,EADL,CAEEoZ,qBAAsBvH,EAAOuH,uBAEjC,KAAKe,KACH,OAAO,eACFna,EADL,CAEEqZ,WAAYxH,EAAOwH,aAEvB,KAAKe,KACH,OAAO,eACFpa,EADL,CAEEsZ,WAAYzH,EAAOyH,aAEvB,QACE,OAAOtZ,ICnFEqa,GA1BKC,YAAgB,CAClCpK,gBACA8B,cACAM,kBACAI,gBACAR,mBACAa,gBACAO,2BACAK,iBACAK,gBACAG,gBACAK,qBACAI,oBACA2F,mBACAhE,iBACAE,gBACAW,wBACAoD,kBACA7C,kBACAE,mBACAG,sBACAO,4BACAC,gCACAe,mBCvCI50B,GAAQ81B,YAAYJ,GAAaK,YAAgBC,MAExCh2B,Q,qPCTFi2B,EAAuB,CAElCC,WAAY,SACZC,aAAc,SAGHC,EAAsB,eAC9BH,EAD8B,CAEjCC,WAAY,WAGDG,EAAY,CACvBC,UAAW,6BACXC,gBAAiB,QACjBC,OAAQ,mBACRC,QAAS,GAGEC,EAAa,CACxB1Y,aAAc,MACd2Y,OAAQ,SACRC,MAAO,SACPL,gBAAiB,QACjBM,OAAQ,OACRJ,QAAS,EACThZ,SAAU,OACVqZ,WAAY,QAGDC,EAAuB,CAClCR,gBAAiB,OACjBI,OAAQ,GACRE,OAAQ,EACR7Y,aAAc,GACd8Y,WAAY,EACZE,UAAW,EACXP,QAAS,EACTQ,YAAa,GACbC,aAAc,IAGHC,EAAoB,CAC/BP,MAAO,OACPL,gBAAiB,OACjBM,OAAQ,EACR7Y,aAAc,GACdoZ,cAAe,OACfC,iBAAkB,OAClBV,OAAQ,GACRlZ,SAAU,GACVqZ,WAAY,OACZE,UAAW,I,gDChCEM,IAnBS,WAAO,IAAD,EACJC,mBAAS,CAAC,EAAG,IADT,mBACrB3rB,EADqB,KACf4rB,EADe,KAgB5B,OAbAC,2BAAgB,WACd,SAASC,IACPF,EAAQ,CAAC33B,OAAO83B,WAAY93B,OAAO+3B,cAMrC,OAHA/3B,OAAOg4B,iBAAiB,SAAUH,GAClCA,IAEO,WACL73B,OAAOi4B,oBAAoB,SAAUJ,MAEtC,IAEI9rB,I,mCCjBT,yKAMaslB,EAA6B,6BAC7BC,EAA4B,4BAC5BC,EAA2B,2BAOlC2G,EAAyB,SAAChH,GAC9B,MAAO,CACL7uB,KAAMgvB,EACNH,aA+CSiH,EAA0B,SAACn5B,EAAa6B,GACnD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,uBAA8BsD,YAAe3B,IAAOiK,KAAM/J,IAC5DzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,WACJlB,IAAMW,QAAQ,8DAA+D,CAC3EZ,SAAUC,IAAMC,SAASC,kBAG5BgB,MAAK,kBAAMgB,EAASiD,aAAqB,OACzC/C,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIzC65B,IA3CqB,SAACp5B,EAAasrB,GAChD,OAAO,SAAClqB,GACNA,EAAS+C,aAAiB,IACnBmnB,EAOH3f,MAAM,GAAD,OAAI3L,EAAJ,sCAAqCsrB,GAAU,IAAMhoB,YAAe3B,IAAO6W,MAC7EpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqyB,GACU,aAAXnH,GACFlqB,EA3BL,CACLiC,KAAMivB,EACNJ,SAyBkDO,IAE3B,YAAXnH,GACFlqB,EAxBwB,SAAC8wB,GACrC,MAAO,CACL7uB,KAAMkvB,EACNL,YAqBmBmH,CAA8B5G,SAE1BhvB,IAAX6nB,GACFlqB,EAAS83B,EAAuBzG,OAGnCnxB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,OApB/CwH,MAAM,GAAD,OAAI3L,EAAJ,uBAA8BsD,YAAe3B,IAAO6W,MACtDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqyB,GAAD,OAAoBrxB,EAAS83B,EAAuBzG,OACzDnxB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,+BC5C/C,yKAKauuB,EAAmC,mCACnCC,EAAgC,gCAChCC,EAAiC,iCAOxC0G,EAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,mBACH,OAAO7G,EACT,IAAK,gBACH,OAAOC,EACT,IAAK,iBACH,OAAOC,EACT,QACE,MAAO,YAIP4G,EAAuB,SAACtH,EAAoBuH,GAChD,MAAO,CACLp2B,KAAMi2B,EAAeG,GACrBvH,aAgBSwH,EAA2B,SAAC15B,EAAa6B,EAAc43B,GAClE,OAAO,SAACr4B,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,qBAAoBy5B,EAApB,KAAoCn2B,YAAe3B,IAAOiK,KAAM/J,IACpEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAASo4B,EAAqBtH,EAASyH,QAASF,IAChDv6B,IAAMW,QAAQ,wCAAyC,CACrDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIvCq6B,IA1BmB,SAAC55B,EAAay5B,GAC9C,OAAO,SAACr4B,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,qBAAoBy5B,GAAen2B,YAAe3B,IAAO6W,MAC7DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GAAD,OAAmB9wB,EAASo4B,EAAqBtH,EAASzO,OAAOuD,KAAKkL,GAAU,IAAKuH,OAC1Fn4B,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6CC3C7CgQ,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,4B,gBCA3CD,EAAOC,QAAU,IAA0B,8B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,2B,gBCA3CD,EAAOC,QAAU,IAA0B,4B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,gBCA3CD,EAAOC,QAAU,IAA0B,6B,yCCC3C,qGAKaob,EAAoB,oBACpBC,EAAsB,sBA8EpBoK,IAtDU,SACvB75B,EACA2J,EACAtG,EACA7D,EACAuB,EACAmlB,EACAsF,EACAC,EACAC,EACAoO,GAEA,IACIC,EADApO,EAAW,gBAAY5qB,GAc3B,OAXIyqB,IAAOG,GAAW,iBAAcH,IAChCC,IAAWE,GAAW,qBAAkBF,IACxCC,IAAWC,GAAW,qBAAkBD,IACxCxF,IAAOyF,GAAW,iBAAczF,IAChC4T,IAAcnO,GAAW,wBAAoBmO,IAG/CC,EADEv6B,EACO,UAAM6D,IAASgD,IAAU2zB,KAAO3zB,IAAU2zB,KAAO3zB,IAAU4zB,OAA3D,YAAqEz6B,GAErE,UAAM6D,IAASgD,IAAU2zB,KAAO3zB,IAAU2zB,KAAO3zB,IAAU4zB,QAE/D,SAAC74B,GACFiC,IAASgD,IAAU2zB,KACrB54B,EAASkD,aAA2B,IAEpClD,EAASmD,aAA6B,IAGxCoH,MAAM,GAAD,OAAI3L,EAAJ,YAAsB,cAAX2J,EAAyB,YAAc,UAAlD,mBAAsEowB,GAAtE,OAAkFpO,GAAeroB,YAAe3B,IAAO6W,MAC3HpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GACL,OAAI4B,IAASgD,IAAU2zB,KACd54B,GArDUiuB,EAqDe5tB,EAAKmqB,KArDPC,EAqDapqB,EAAKiF,eApD/C,CACLrD,KAAMmsB,EACNH,SACAxD,oBAoDSzqB,EAhDa,SAACiuB,EAAaxD,GACtC,MAAO,CACLxoB,KAAMosB,EACNJ,SACAxD,kBA4CkBqO,CAAkBz4B,EAAKmqB,KAAMnqB,EAAKiF,iBAxDhC,IAAC2oB,EAAaxD,KA0DjCvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,WACHpV,IAASgD,IAAU2zB,KACrB54B,EAASkD,aAA2B,IAEpClD,EAASmD,aAA6B,U,qCC9E9C,kCAsBe41B,IAff,SAAsBn6B,EAAa6gB,EAAkBhf,GACnD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,oBAAmB6gB,GAAYvd,YAAe3B,IAAOiK,KAAM/J,IAC/DzB,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJgB,EAAcwf,YAAwB5gB,EAAK8d,OAAO+C,KAClD3hB,IAAMW,QAAQ,+BAAgC,CAC5CZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,S,gCClB/C,kCAsBe66B,IAff,SAAwBp6B,EAAauY,EAAoB1W,GACvD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,sBAAqBuY,GAAcjV,YAAe3B,IAAOiK,KAAM/J,IACnEzB,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJgB,EAAcyX,YAA0B7Y,EAAK8d,OAAOvF,KACpDrZ,IAAMW,QAAQ,iCAAkC,CAC9CZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,S,6BChB/C,kCAAO,IAAM0oB,EAA2B,SAAC9P,GACvC,OAAI,OAACA,QAAD,IAACA,OAAD,EAACA,EAAUqO,aAGe1I,UAAiB,OAAR3F,QAAQ,IAARA,OAAA,EAAAA,EAAU0B,iBAAV,OAA2B1B,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAUqO,cAAe1E,KAAKC,IAAL,OAAS5J,QAAT,IAASA,OAAT,EAASA,EAAUqO,aAAe,KAAKe,QAAQ,IAE9G,EACpB,IAAN,OAAWzJ,UAAiB,OAAR3F,QAAQ,IAARA,OAAA,EAAAA,EAAU0B,iBAAV,OAA2B1B,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAUqO,cAAe1E,KAAKC,IAAL,OAAS5J,QAAT,IAASA,OAAT,EAASA,EAAUqO,aAAe,KAAKe,QAAQ,KAGlHzJ,UAAiB,OAAR3F,QAAQ,IAARA,OAAA,EAAAA,EAAU0B,iBAAV,OAA2B1B,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAUqO,cAAe1E,KAAKC,IAAL,OAAS5J,QAAT,IAASA,OAAT,EAASA,EAAUqO,aAAe,KAAKe,QAAQ,IAR1G,I,gCCHX,2DAKawI,EAA2B,2BAuDzBsK,IA3BqB,SAChCr6B,EACAs6B,EACA96B,EACA+6B,EACAx5B,EACAyqB,EACAC,EACAC,GAEF,IAAIC,EAAW,gBAAY5qB,GAM3B,OAJIyqB,IAAOG,GAAW,iBAAcH,IAChCC,IAAWE,GAAW,qBAAkBF,IACxCC,IAAWC,GAAW,qBAAkBD,IAErC,SAACtqB,GACNA,EAASoD,aAAkC,IAE3CmH,MAAM,GAAD,OAAI3L,EAAJ,YAAwB,aAAbs6B,EAA0B,YAAc,UAAnD,+BAAmF96B,GAAnF,OAAwFmsB,EAAxF,2BA/Bc,SAAC6O,GACtB,IAAIC,EAAU,GAQd,OANAhX,OAAOiX,QAAQF,GAAoBG,SAAQ,SAACC,GACtCA,EAAM,KACRH,GAAO,sBAAmBG,EAAM,QAI7BH,EAsBsHI,CAAeN,IAAgBj3B,YAAe3B,IAAO6W,MAC/KpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,GAzCOsuB,EAyCyBjuB,EAAKmqB,KAzCcC,EAyCRpqB,EAAKiF,eAxChE,CACLrD,KAAM0sB,EACNL,oBACA7D,oBAJ2B,IAAC6D,EAA4C7D,KA0CvEvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAASoD,aAAkC,U,6BCxD9D,2DAKaysB,EAAgB,gBA0Bd6J,IAZW,SAAC96B,GACzB,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,uBAA8BsD,YAAe3B,IAAO6W,MACxDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC0wB,GAAD,OAAkB1vB,EAbP,SAAC0vB,GACpB,MAAO,CACLztB,KAAM4tB,EACNH,WAUiCiK,CAAajK,OAC7CxvB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC3B7C,2DAIa+sB,EAAmB,mBA0BjB8J,IAZc,SAACh7B,GAC5B,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,kBAAyBsD,YAAe3B,IAAO6W,MACnDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC2wB,GAAD,OAAqB3vB,EAbP,SAAC2vB,GACvB,MAAO,CACL1tB,KAAM6tB,EACNH,cAUoCkK,CAAgBlK,OACnDzvB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC1B7C,+IAOaguB,EAAwB,wBAO/B+I,EAAsB,SAAChJ,GAC3B,MAAO,CACL7uB,KAAM8uB,EACND,aAgBSiJ,EAA0B,SAACn7B,EAAa6B,GACnD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,4BAAmCsD,YAAe3B,IAAOiK,KAAM/J,IACnEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAAS85B,EAAoBhJ,IAC7BhzB,IAAMW,QAAQ,wCAAyC,CACrDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIzC67B,EAA4B,SAACp7B,EAAaR,EAAYqC,GACjE,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,oBAAmBR,GAAM8D,YAAe3B,IAAOiK,KAAM/J,IACzDzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACmgB,GACLnf,EAASkf,YAAmBC,IAC5BrhB,IAAMW,QAAN,oBAA2BL,EAA3B,kCAA+D,CAC7DP,SAAUC,IAAMC,SAASC,eAE3BuM,MAAM,GAAD,OAAI3L,EAAJ,oBAAmBR,EAAnB,oCAAyD8D,YAAe3B,IAAO6W,MACnFpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC4uB,GACH5tB,EAASqf,YAA0BuO,OAEtC1tB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,UAE1C7C,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIvC87B,IA/CkB,SAACr7B,GAChC,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,4BAAmCsD,YAAe3B,IAAO6W,MAC7DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GAAD,OAAmB9wB,EAAS85B,EAAoBhJ,OACrD5wB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,uICcjCm3B,E,gBA1CCC,EAAb,sCACExlB,mBAAkCjQ,IAAY+V,IADhD,KAEE5F,kBAAsCrQ,IAAiB41B,MAG5CzO,EAAb,sCACEtT,GAAK,EADP,KAEE9B,KAAO,GAFT,KAGE9L,SAAW,GAHb,KAIEwO,MAAQ,GAJV,KAKEohB,SAAW,QALb,KAMEjgB,eAAiB,IAAI+f,EANvB,KAOE5zB,KAAO,GAPT,KAQE+zB,SAAW,GAGAC,EAAb,sCACEF,UAAW,EADb,KAEE9jB,KAAO,GAFT,KAGE9L,SAAW,GAHb,KAIEC,SAAW,GAJb,KAKEuO,MAAQ,K,SAqBEihB,O,mBAAAA,I,wBAAAA,M,mCC3CZ,6EAyCaM,EAAgC,SAAC57B,EAAauY,EAAoBsI,EAAkB/hB,EAAkB+8B,GACjH,OAAO,SAACz6B,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,mCAAyC,CAC5CuD,OAAQ,OACRG,QAAS,CACP,cAAgB,UAAhB,OAA2BC,eAC3B,eAAgB,oBAElBH,KAAMlD,KAAKQ,UAAU,CAAEg7B,KAAMC,SAASlb,EAAU,IAAKmb,UAAWD,SAASxjB,EAAY,QAEtFnY,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJO,IAAkBE,uBAAuB,4BAA6BggB,GACtE3hB,IAAMW,QAAQ,gCAAiC,CAC7CZ,SAAUC,IAAMC,SAASC,eAE3BgC,EAAS6jB,YAAwBjlB,IACjClB,EAAQ0N,KAAK,iBAEdlL,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,QAKhC08B,IAvDQ,SAACj8B,EAAauY,EAAoBsI,EAAkB/hB,EAAkB+8B,GAC3F,OAAO,WACLlwB,MAAM,GAAD,OAAI3L,EAAJ,6BAA4BuY,GAAa,CAC5ChV,OAAQ,OACRG,QAAS,CACP,cAAgB,UAAhB,OAA2BC,eAC3B,eAAgB,oBAElBH,KAAMlD,KAAKQ,UAAU,CAAEwoB,SAAUyS,SAASlb,EAAU,QAErDzgB,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJO,IAAkB8E,4BAA4B,oBAC9CvG,IAAMW,QAAQ,kCAAmC,CAC/CZ,SAAUC,IAAMC,SAASC,eAE3BN,EAAQ0N,KAAR,qBAA2B+L,EAA3B,mCASDjX,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,S,6BCrC/C,qGAMa0yB,EAAuB,uBAO9BiK,EAAqB,SAAChK,GAC1B,MAAO,CACL7uB,KAAM4uB,EACNC,aAgBSiK,EAAyB,SAACn8B,EAAa6B,GAClD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,2BAAkCsD,YAAe3B,IAAOiK,KAAM/J,IAClEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAAS86B,EAAmBhK,IAC5BhzB,IAAMW,QAAQ,uCAAwC,CACpDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIvC68B,IA1BiB,SAACp8B,GAC/B,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,2BAAkCsD,YAAe3B,IAAO6W,MAC5DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GAAD,OAAmB9wB,EAAS86B,EAAmBhK,OACpD5wB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC5B7C,+IAOaiuB,EAA0B,0BAOjCiK,EAAwB,SAACnK,GAC7B,MAAO,CACL7uB,KAAM+uB,EACNF,aAgBSoK,EAA4B,SAACt8B,EAAa6B,GACrD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,8BAAqCsD,YAAe3B,IAAOiK,KAAM/J,IACrEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAASi7B,EAAsBnK,IAC/BhzB,IAAMW,QAAQ,0CAA2C,CACvDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIzCg9B,EAA8B,SAACv8B,EAAaR,EAAYqC,GACnE,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,sBAAqBR,GAAM8D,YAAe3B,IAAOiK,KAAM/J,IAC3DzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+X,GACL/W,EAASiX,YAAqBF,IAC9B/W,EAAS8W,YAA0BC,IACnCjZ,IAAMW,QAAN,sBAA6BL,EAA7B,kCAAiE,CAC/DP,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIvCi9B,IAzCoB,SAACx8B,GAClC,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,8BAAqCsD,YAAe3B,IAAO6W,MAC/DpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GAAD,OAAmB9wB,EAASi7B,EAAsBnK,OACvD5wB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC5B7C,4DAKaivB,EAAa,aA+BXqJ,IAjBQ,SAACz8B,EAAaR,EAAYqC,EAAc/C,GAC7D,OAAO,SAACsC,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,mBAAkBR,GAAM8D,YAAe3B,IAAOiK,KAAM/J,IACxDzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACizB,GACLjyB,EAZY,SAACiyB,GACjB,MAAO,CACLhwB,KAAM+vB,EACNC,eASWqJ,CAAUrJ,IACnBn0B,IAAMW,QAAN,mBAA0BL,EAA1B,yBAAqD,CACnDP,SAAUC,IAAMC,SAASC,eAEvBN,GACFA,EAAQ0N,KAAK,cAGhBlL,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,S,6BCjCtD,qFA6Bao9B,EAAgC,SAAC38B,EAAauY,EAAoBsI,EAAkB/hB,EAAkB+8B,GACjH,OAAO,SAACz6B,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,mCAAyC,CAC5CuD,OAAQ,OACRG,QAAS,CACP,cAAgB,UAAhB,OAA2BC,eAC3B,eAAgB,oBAElBH,KAAMlD,KAAKQ,UAAU,CAAEk7B,UAAWD,SAASxjB,EAAY,QAExDnY,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJO,IAAkBE,uBAAuB,4BAA6BggB,GACtE3hB,IAAMW,QAAQ,gCAAiC,CAC7CZ,SAAUC,IAAMC,SAASC,eAE3BgC,EAAS6jB,YAAwBjlB,IACjClB,EAAQ0N,KAAK,iBAEdlL,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,QAIhCq9B,IA7CQ,SAAC58B,EAAauY,GACnC,OAAO,SAACnX,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,6BAA4BuY,GAAa,CAC5ChV,OAAQ,OACRG,QAAS,CACP,cAAgB,UAAhB,OAA2BC,eAC3B,eAAgB,sBAGnBvD,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAE3DI,MAAK,WACJlB,IAAMW,QAAQ,kCAAmC,CAC/CZ,SAAUC,IAAMC,SAASC,eAE3BgC,EAASyX,YAA0B7Y,EAAK8d,OAAOvF,QAEhDjX,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,S,6BCzB/C,4DAQa8xB,EAAc,cAiCZwL,IAhBS,SAAC78B,EAAa6B,EAAqBy4B,GACzD,IAAMwC,EAAWxC,EAAS93B,cAE1B,OAAO,SAACpB,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,YAAW88B,EAAX,YAA+Bx5B,YAAe3B,IAAOiK,KAAM/J,IAC/DzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+wB,GACL/vB,EAda,SAAC+vB,GAClB,MAAO,CACL9tB,KAAMguB,EACNF,eAWW4L,CAAW5L,IACpBjyB,IAAMW,QAAN,UAAiBy6B,EAAS/3B,OAAO,GAAGy6B,cAAgB1C,EAAS73B,MAAM,GAAnE,0BAA+F,CAC7FxD,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,S,6BCrCtD,2DAMa01B,EAAgC,iCA4B9BgI,IAZf,SAAyCj9B,EAAak9B,EAAiBn8B,GACrE,OAAO,SAACK,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,qCAAoCk9B,EAApC,iBAAoDn8B,EAApD,aAAqEuC,YAAe3B,IAAO6W,MAC/FpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,GAdkBiuB,EAckB5tB,EAAKmqB,KAdOC,EAcDpqB,EAAKiF,eAbpE,CACLrD,KAAM4xB,EACN5F,SACAxD,oBAJsC,IAACwD,EAA8BxD,KAepEvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,wFC/BhCg5B,EAAqB,SAACC,GACjC,OAAO3Z,OAAOuD,KAAKoW,GAAQC,OAAM,SAACC,GAAD,OAAmC,IAArBF,EAAOE,OAG3CC,EAAwB,SAACH,GACpC,IAAMI,EAAal9B,KAAKC,MAAMD,KAAKQ,UAAUs8B,IAM7C,OAJA3Z,OAAOuD,KAAKwW,GAAY7C,SAAQ,SAAC2C,GAC/BE,EAAWF,IAAY,KAGlBE,GCJIlJ,EAAiB,iBA8EfmJ,IA9Df,SACEz9B,EACA09B,EACAC,EACA58B,EACAyqB,EACA+O,EACAqD,EACAC,EACAC,GAEA,IACIC,EACAC,EAFA9X,EAAQ,GAwCZ,OApCAA,GAAK,eAAYnlB,EAAZ,KACLmlB,GAAK,gBAAasF,EAAb,KAGHuS,EADEZ,EAAmB5C,GACCgD,EAAsBhD,GAEtBA,EAGxB9W,OAAOuD,KAAK+W,GAAqBpD,SAAQ,SAACrP,GACpCyS,EAAoBzS,KACtBpF,GAAK,qBAAkBoF,EAAO9oB,cAAzB,SAKPw7B,EADEb,EAAmBS,GACGL,EAAsBK,GAEtBA,EAG1Bna,OAAOuD,KAAKgX,GAAuBrD,SAAQ,SAACrP,GACtC0S,EAAsB1S,KACxBpF,GAAK,uBAAoBoF,EAAO9oB,cAA3B,SAIT0jB,GAAK,sBAAmBpE,KAAKmc,MAAMP,EAAYQ,UAAY,KAAtD,KACLhY,GAAK,oBAAiBpE,KAAKmc,MAAMN,EAAUO,UAAY,MAEnDL,IAAU3X,GAAK,iBAAc2X,IAE7BC,IACF5X,EAAQA,EAAM8B,QAAQ,oCAAqC,KAGtD,SAAC5mB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,qBAAoBkmB,EAApB,gCAAyD5iB,YAAe3B,IAAO6W,MACnFpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,GAhEKgzB,EAgEkB3yB,EAAKmqB,KAhEDC,EAgEOpqB,EAAKiF,eA/DvD,CACLrD,KAAMixB,EACNF,WACAvI,oBAJyB,IAACuI,EAAsBvI,KAiE/CvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BChF7C,2DAKagrB,EAA+B,gCA0B7BgP,IAZf,SAAwCn+B,EAAa6gB,GACnD,OAAO,SAACzf,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,mCAAkC6gB,GAAYvd,YAAe3B,IAAO6W,MACxEpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC6uB,GAAD,OAAyB7tB,EAbM,SAAC6tB,GACxC,MAAO,CACL5rB,KAAM8rB,EACNF,kBAUwCmP,CAA0BnP,OACjE3tB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC3B7C,4DAMaysB,EAAe,eAiCbyN,IAnBU,SAACr+B,EAAaR,EAAYomB,EAA6BE,EAAgBC,GAC9F,IAAIG,EAAK,UAAM1mB,EAAN,mBAAmBomB,GAEtBO,EAAmBpC,YAAsB+B,GACzCM,EAAiBjC,YAAoB4B,GAK3C,OAHID,IAAUI,GAAK,gBAAaC,IAC5BJ,IAAQG,GAAK,cAAWE,IAErB,SAAChlB,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,4BAA2BkmB,EAA3B,wCAAwE5iB,YAAe3B,IAAO6W,MAClGpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GACLL,EAnBG,CACLiC,KAAMutB,EACNC,gBAiBuBpvB,OAEtBH,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,S,6BCnCtD,qGAMaizB,GANb,MAMwC,4BAOlC8L,EAAyB,SAAC7L,GAC9B,MAAO,CACLpvB,KAAMmvB,EACNC,cAIE8L,EAA8B,SAACv+B,GACnC,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,uBAA8BsD,YAAe3B,IAAO6W,MACxDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqyB,GAAD,OAAoBrxB,EAASk9B,EAAuB7L,OACzDnxB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,SAIhCq6B,EAAkC,SAACx+B,EAAa6B,GAC3D,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,uBAA8BsD,YAAe3B,IAAOiK,KAAM/J,IAC9DzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAASk9B,EAAuBpM,IAChChzB,IAAMW,QAAQ,0CAA2C,CACvDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAmCvCg/B,O,6BC7Ef,qGAMa1L,EAAwB,wBAO/B4L,EAAsB,SAACvM,GAC3B,MAAO,CACL7uB,KAAMwvB,EACNX,aAgBSiH,EAA0B,SAACn5B,EAAa6B,GACnD,OAAO,SAACT,GACNuK,MAAM,GAAD,OAAI3L,EAAJ,oBAA2BsD,YAAe3B,IAAOiK,KAAM/J,IAC3DzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC8xB,GACL9wB,EAASq9B,EAAoBvM,IAC7BhzB,IAAMW,QAAQ,uCAAwC,CACpDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,QAIvCm/B,IA1BkB,SAAC1+B,GAChC,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,oBAA2BsD,YAAe3B,IAAO6W,MACrDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqyB,GAAD,OAAoBrxB,EAASq9B,EAAoBhM,OACtDnxB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC7B7C,qGAOayyB,EAAoB,oBAO3B+H,EAAkB,SAAC7I,GACvB,MAAO,CACLzyB,KAAMuzB,EACNd,eAoBS8I,EAAsB,SAAC5+B,EAAa6B,GAC/C,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,qBAA4BsD,YAAe3B,IAAOiK,KAAM/J,IAC5DzB,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAC3DI,MAAK,SAAC01B,GACL10B,EAASu9B,EAAgB7I,IACvB52B,IAAMW,QAAQ,kFAAmF,CAC/FZ,SAAUC,IAAMC,SAASC,kBAG9BkC,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,MAC1CkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,SAO9B06B,IAnCa,SAAC7+B,EAAa6B,GACxC,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,qBAA4BsD,YAAe3B,IAAOiK,KAAM/J,IAC5DzB,MAAK,SAACL,GAAD,OAAcL,IAAOI,uBAAuBC,EAAUC,MAC3DI,MAAK,SAAC01B,GACL10B,EAASu9B,EAAgB7I,IACvB52B,IAAMW,QAAQ,kFAAmF,CAC/FZ,SAAUC,IAAMC,SAASC,kBAG9BkC,OAAM,SAAC/B,GAAD,OAAWG,IAAOL,kBAAkBE,MAC1CkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,sCChC7C,2DAKawqB,EAAyB,yBA2DvBmQ,IA1CmB,SAChC9+B,EACAe,EACAyqB,EACAC,EACAsT,EACAC,GAEE,IAAIrT,EAAW,gBAAY5qB,GAuB7B,OArBMyqB,IAAOG,GAAW,iBAAcH,IAChCC,IAAWE,GAAW,qBAAkBF,IACxCsT,IAAepT,GAAW,yBAAsBoT,IAE5C,OAARC,QAAQ,IAARA,KAAUrE,SAAQ,SAACrP,GACC,aAAdA,EAAO9rB,KAAmBmsB,GAAW,kCAA+BL,EAAO9lB,QAC7D,YAAd8lB,EAAO9rB,KAAkBmsB,GAAW,iCAA8BL,EAAO9lB,QAC3D,WAAd8lB,EAAO9rB,KAAiBmsB,GAAW,4BAAyBL,EAAO9lB,QACrD,aAAd8lB,EAAO9rB,KAAmBmsB,GAAW,sBAAmBL,EAAO9lB,QACjD,gBAAd8lB,EAAO9rB,KAAsBmsB,GAAW,uBAAoBL,EAAO9lB,QACrD,cAAd8lB,EAAO9rB,KAAoBmsB,GAAW,qBAAkBL,EAAO9lB,QACjD,eAAd8lB,EAAO9rB,KAAqBmsB,GAAW,sBAAmBL,EAAO9lB,QACnD,aAAd8lB,EAAO9rB,KAAmBmsB,GAAW,oBAAiBL,EAAO9lB,QAC/C,oBAAd8lB,EAAO9rB,KAA0BmsB,GAAW,2BAAwBL,EAAO9lB,QAC7D,kBAAd8lB,EAAO9rB,KAAwBmsB,GAAW,yBAAsBL,EAAO9lB,QACzD,oBAAd8lB,EAAO9rB,KAA0BmsB,GAAW,2BAAwBL,EAAO9lB,QAC7D,kBAAd8lB,EAAO9rB,KAAwBmsB,GAAW,yBAAsBL,EAAO9lB,QACzD,gBAAd8lB,EAAO9rB,KAAsBmsB,GAAW,uBAAoBL,EAAO9lB,MAAM,MAC3D,cAAd8lB,EAAO9rB,KAAoBmsB,GAAW,qBAAkBL,EAAO9lB,MAAM,SAGtE,SAACpE,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,6BAA4B2rB,GAAeroB,YAAe3B,IAAO6W,MACrEpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACqB,GAAD,OAAeL,GA5CKqtB,EA4CyBhtB,EAAKmqB,KA5CDC,EA4COpqB,EAAKiF,eA3C9D,CACLrD,KAAMsrB,EACNF,kBACA5C,oBAJyB,IAAC4C,EAA6B5C,KA6CtDvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC3D7C,oEAAO,IAAM4qB,EAAwB,wBAExBkQ,EAAwB,iBAAoB,CAAE57B,KAAM0rB,K,6BCHjE,2DAKaiE,EAAe,eA0BbkM,IAZU,SAACl/B,GACxB,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,sBAA6BsD,YAAe3B,IAAO6W,MACvDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC0yB,GAAD,OAAiB1xB,EAbP,SAAC0xB,GACnB,MAAO,CACLzvB,KAAM2vB,EACNF,UAUgCqM,CAAYrM,OAC3CxxB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC3B7C,2DAKa+uB,EAAsB,uBA0BpBkM,IAZf,SAAgCp/B,EAAaq/B,GAC3C,OAAO,SAACj+B,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,mBAAkBq/B,GAAW/7B,YAAe3B,IAAO6W,MACvDpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACuY,GAAD,OAAgBvX,EAbO,SAACuX,GAChC,MAAO,CACLtV,KAAM6vB,EACNC,aAAcxa,GAUiB2mB,CAAkB3mB,OAChDrX,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC3B7C,2DAMa4vB,EAAa,aA4CXwL,IA5BQ,SAACv/B,EAAay6B,EAAczW,EAAiBI,EAAerjB,EAAeyqB,EAAgBgU,GAChH,IAAItZ,EAAQ,GAENuZ,EAAqBzb,EAAUka,UAAY,IAC3CwB,EAAmBtb,EAAQ8Z,UAAY,IAa7C,OAXAza,OAAOuD,KAAKyT,GAASE,SAAQ,SAACrP,GACxBmP,EAAQnP,KACVpF,GAAK,iBAAcoF,EAAd,SAITpF,GAAK,eAAYuZ,EAAZ,KACLvZ,GAAK,aAAUwZ,EAAV,KAEDF,IAAQtZ,GAAK,gBAAYsZ,EAAZ,MAEV,SAACp+B,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,8BAA6BkmB,EAA7B,gBAA0CnlB,EAA1C,kBAAwDyqB,GAASloB,YAAe3B,IAAO6W,MAC3FpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACmB,GAAD,OAAeH,GA9BNyyB,EA8ByBtyB,EAAKqqB,KA9BZC,EA8BkBtqB,EAAKmF,eA7BnD,CACLrD,KAAM0wB,EACNF,OACAhI,oBAJc,IAACgI,EAAkBhI,KA+BhCvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC9C7C,2DAMaswB,EAAqB,qBAgCnBkL,IAhBe,SAAC3/B,EAAae,EAAeyqB,EAAgBE,EAAoBxF,GAC7F,IAAIyF,EAAW,gBAAY5qB,EAAZ,kBAA0ByqB,EAA1B,sBAA6CE,GAI5D,OAFIxF,IAAOyF,GAAW,iBAAczF,IAE7B,SAAC9kB,GACNA,EAAS+C,aAAiB,IAE1BwH,MAAM,GAAD,OAAI3L,EAAJ,8BAA6B2rB,GAAeroB,YAAe3B,IAAO6W,MACtEpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACmB,GAAD,OAAeH,GAlBCmzB,EAkByBhzB,EAAKqqB,KAlBEC,EAkBItqB,EAAKmF,eAjB1D,CACLrD,KAAMoxB,EACNF,cACA1I,oBAJqB,IAAC0I,EAAgC1I,KAmBrDvqB,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BClC7C,2DAKawyB,EAA0B,0BA2BxBiJ,IAbc,SAAC5/B,GAC1B,OAAO,SAACoB,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,gCAAuCsD,YAAe3B,IAAO6W,MACjEpY,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACy1B,GACLz0B,EAbsB,SAACy0B,GAC7B,MAAO,CACLxyB,KAAMszB,EACNd,cAUagK,CAAsBhK,OAEhCv0B,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BC5B/C,mEAOaoyB,EAA2B,2BA8BzBuJ,IAhBsB,SAAC9/B,EAAa6B,EAAgDk+B,EAAmBC,GACpH,OAAO,SAAC5+B,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,wBAAuB+/B,EAAvB,YAAoCC,GAAW18B,YAAe3B,IAAOiK,KAAM/J,IAC/EzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACq1B,GACLr0B,EAb0B,SAACq0B,GAC/B,MAAO,CACLpyB,KAAMkzB,EACNd,sBAUWwK,CAAwBxK,IACjCv2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOakyB,EAA+B,+BA8B7B6J,IAhBwB,SAAClgC,EAAa6B,EAA4Bs+B,GAC/E,OAAO,SAAC/+B,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,8CAA6CmgC,GAAe78B,YAAe3B,IAAOiK,KAAM/J,IAC5FzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACm1B,GACLn0B,EAb4B,SAACm0B,GACjC,MAAO,CACLlyB,KAAMgzB,EACNd,oBAUW6K,CAA0B7K,IACnCr2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOaqyB,EAAmC,mCA8BjC6J,IAhBuB,SAACrgC,EAAa6B,GAClD,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,mCAA0CsD,YAAe3B,IAAOiK,KAAM/J,IAC1EzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACs1B,GACLt0B,EAb2B,SAACs0B,GAChC,MAAO,CACLryB,KAAMmzB,EACNd,uBAUW4K,CAAyB5K,IAClCx2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOa8xB,EAAoB,oBA8BlBsK,IAhBuB,SAACvgC,EAAa6B,GAClD,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,yCAAgDsD,YAAe3B,IAAOiK,KAAM/J,IAChFzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC+0B,GACL/zB,EAbkB,SAAC+zB,GACvB,MAAO,CACL9xB,KAAM4yB,EACNd,cAUWqL,CAAgBrL,IACzBj2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOaiyB,EAAuB,uBA8BrBqK,IAhBiB,SAACzgC,EAAa6B,GAC5C,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,+BAAsCsD,YAAe3B,IAAOiK,KAAM/J,IACtEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACk1B,GACLl0B,EAbqB,SAACk0B,GAC1B,MAAO,CACLjyB,KAAM+yB,EACNd,iBAUWoL,CAAmBpL,IAC5Bp2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOamyB,EAA4B,4BA8B1BqK,IAhBsB,SAAC3gC,EAAa6B,GACjD,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,oCAA2CsD,YAAe3B,IAAOiK,KAAM/J,IAC3EzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACo1B,GACLp0B,EAbqB,SAACo0B,GAC1B,MAAO,CACLnyB,KAAMizB,EACNd,sBAUWkL,CAAmBlL,IAC5Bt2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOa+xB,EAAsB,sBA8BpB0K,IAhBgB,SAAC5gC,EAAa6B,GAC3C,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,8BAAqCsD,YAAe3B,IAAOiK,KAAM/J,IACrEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACg1B,GACLh0B,EAboB,SAACg0B,GACzB,MAAO,CACL/xB,KAAM6yB,EACNd,gBAUWyL,CAAkBzL,IAC3Bl2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOagyB,EAAsB,sBA8BpB2K,IAhBe,SAAC9gC,EAAa6B,GAC1C,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,8BAAqCsD,YAAe3B,IAAOiK,KAAM/J,IACrEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACi1B,GACLj0B,EAbmB,SAACi0B,GACxB,MAAO,CACLhyB,KAAM8yB,EACNd,eAUW0L,CAAiB1L,IAC1Bn2B,IAAMW,QAAQ,2BAA4B,CACxCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOauyB,EAA+B,+BA8B7BsK,IAhBwB,SAAChhC,EAAaggC,EAAiBn+B,GACpE,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,YAAWggC,EAAX,kBAAoC18B,YAAe3B,IAAOiK,KAAM/J,IACpEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACw1B,GACLx0B,EAb4B,SAACw0B,GACjC,MAAO,CACLvyB,KAAMqzB,EACNd,wBAUWqL,CAA0BrL,IACnC12B,IAAMW,QAAQ,uCAAwC,CACpDZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAOasyB,EAA2B,2BA8BzByK,IAhBoB,SAAClhC,EAAa6B,EAA4Bk+B,GAC3E,OAAO,SAAC3+B,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,wBAAuB+/B,EAAvB,cAA8Cz8B,YAAe3B,IAAOiK,KAAM/J,IAC9EzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAACu1B,GACLv0B,EAbyB,SAACu0B,GAC9B,MAAO,CACLtyB,KAAMozB,EACNd,oBAUWwL,CAAuBxL,IAChCz2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,6BCjC7C,mEAMa6xB,EAAoB,oBA8BlBoL,IAhBc,SAACphC,EAAa6B,GACzC,OAAO,SAACT,GACNA,EAAS+C,aAAiB,IAC1BwH,MAAM,GAAD,OAAI3L,EAAJ,2BAAkCsD,YAAe3B,IAAOiK,KAAM/J,IAClEzB,MAAK,SAACL,GAAD,OAAwBL,IAAOI,uBAAuBC,EAAUC,MACrEI,MAAK,SAAC80B,GACL9zB,EAbkB,SAAC8zB,GACvB,MAAO,CACL7xB,KAAM2yB,EACNd,cAUWmM,CAAgBnM,IACzBh2B,IAAMW,QAAQ,4BAA6B,CACzCZ,SAAUC,IAAMC,SAASC,kBAG5BkC,OAAM,SAAC/B,GAAD,OAAkBG,IAAOL,kBAAkBE,MACjDkZ,SAAQ,kBAAMrX,EAAS+C,aAAiB,U,iBCjC7CgQ,EAAOC,QAAU,IAA0B,+B,mKCyU5BktB,IAtT6C,SAAC,GAAuD,IAArDnpB,EAAoD,EAApDA,SAAUopB,EAA0C,EAA1CA,KAAMC,EAAoC,EAApCA,iBACvExkB,EAAa,CACjB+a,MAAO,SAGH32B,EAAWqgC,cACXpkB,EAAOC,cACPtd,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpE6tB,EAAc6T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAEpE8T,EAAWhhC,IAAkBC,yBAAyB,QAVqD,EAWzF4c,IAAMkb,WAXmF,mBAW1GptB,EAX0G,KAWpGs2B,EAXoG,KAajHpkB,IAAMqkB,WAAU,WACU,kBAAbF,GACTC,EAAQthC,KAAKC,MAAMohC,MAEpB,CAACA,IAEJ,IACMG,EAAqB,CACzBj2B,SAAUk2B,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GAF1B,+BAEuDyiC,IAAI,IAAK5kB,EAAKoB,cAAc,CAAEjf,GAAI,2BAA4B0iC,QAAQ,sBAAuB7kB,EAAKoB,cAAc,CAAEjf,GAAI,+BACxMsM,SAAUi2B,MAAaha,KAAK,MAAO1K,EAAKoB,cAAc,CAAEjf,GAAI,+BAAgC,SAAA2iC,GAAG,OAAKA,GAAsB,IAAfA,EAAIta,QAAgBsa,EAAIta,QAAU,KAC7IlQ,KAAMoqB,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GAJtB,+BAImD0iC,QAAQ,iizBAAmF7kB,EAAKoB,cAAc,CAAEjf,GAAI,kCAClM6a,MAAO0nB,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GALvB,+BAKoD0iC,QAAQ,0IAA+E7kB,EAAKoB,cAAc,CAAEjf,GAAI,4BAC/LopB,MAAOmZ,MACJE,IAAI,IAAK5kB,EAAKoB,cAAc,CAAEjf,GAAI,gCAClC0iC,QACC,iDACA7kB,EAAKoB,cAAc,CAAEjf,GAAI,iDAE1B4iC,WACAC,WAAU,SAACC,EAAGC,GAAJ,MAAiB,KAANA,EAAW,KAAOD,KAC1C3Z,QAASoZ,MACNE,IAAI,IAAK5kB,EAAKoB,cAAc,CAAEjf,GAAI,gCAClC0iC,QACC,gBACA7kB,EAAKoB,cAAc,CAAEjf,GAAI,4CAE1B4iC,WACAC,WAAU,SAACC,EAAGC,GAAJ,MAAiB,KAANA,EAAW,KAAOD,KAC1C5Z,UAAWqZ,MACRG,QACC,6CACA7kB,EAAKoB,cAAc,CAAEjf,GAAI,uDAE1B4iC,WACAC,WAAU,SAACC,EAAGC,GAAJ,MAAiB,KAANA,EAAW,KAAOD,KAC1C1Y,cAAemY,MACdG,QAAQ,0BAA2B7kB,EAAKoB,cAAc,CAAEjf,GAAI,uDAC5D4iC,WACAC,WAAU,SAACC,EAAGC,GAAJ,MAAiB,KAANA,EAAW,KAAOD,MAGpCE,EAA0B,eAC3BrqB,EAD2B,CAE9BrM,SAAU,KAxDqG,EA2DjE0R,IAAMkb,SAAmBvgB,GA3DwC,mBA2D1GsqB,EA3D0G,KA2DxFC,EA3DwF,OA4DjEllB,IAAMkb,UAAkB,GA5DyC,mBA4D1GiK,EA5D0G,KA4DxFC,EA5DwF,KA+DjHplB,IAAMqkB,WAAU,WACda,EAAoBvqB,KACnB,CAACA,IAEJqF,IAAMqkB,WAAU,WACde,EAAoBzqB,EAAS4R,kBAC5B,CAAC0Y,EAAkBtqB,EAAS4R,iBAE/B,IAAM8Y,EAAe,WACnBH,EAAoBF,GACpBhB,EAAiB,aAwDbsB,EAAmB9kB,IAAWC,eAAe8jB,MAAagB,MAAMjB,GAAqBW,GAErFO,EAAW,CACftL,gBAAiB7J,EACjBoV,YAAapV,GAGf,OACE,kBAAC,IAAD,CAAO0T,KAAMA,EAAM2B,OAAQL,EAAcM,UAAQ,EAACC,YAAU,GAC1D,kBAAC,IAAMC,OAAP,CAAcC,aAAW,GACvB,kBAAC,IAAMC,MAAP,KACE,kBAAC,IAAD,CAAkB/jC,GAAG,sDAGzB,kBAAC,IAAMgkC,KAAP,CAAYn0B,UAAU,YACpB,kBAAC,IAAD,KACE,kBAAC,IAAD,CACEmN,MAAOimB,EACPhmB,SAAS,WACTI,kBAAkB,oDAClBH,OAAQolB,EAAmBj2B,SAC3BxI,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,0DACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,OAGP,6BACE,kBAAC,IAAD,CACEyP,MAAOimB,EACPhmB,SAAS,OACTI,kBAAkB,gDAClBH,OAAQolB,EAAmBnqB,KAC3BtU,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,sDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,QAIT,6BACE,kBAAC,IAAD,CACEyP,MAAOimB,EACPhmB,SAAS,WACTI,kBAAkB,oDAClBH,OAAQolB,EAAmBh2B,SAC3BzI,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,0DACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,QAIT,6BACE,kBAAC,IAAD,CACEyP,MAAOimB,EACPhmB,SAAS,QACTI,kBAAkB,iDAClBH,OAAQolB,EAAmBznB,MAC3BhX,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,uDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,QAIT,6BACE,kBAAC,IAAD,CACEyP,MAAOimB,EACPhmB,SAAS,QACTI,kBAAkB,iDAClBH,OAAQolB,EAAmBlZ,MAC3BvlB,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,uDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,QAIT,6BACE,kBAAC,IAAD,CACEyP,MAAOimB,EACPhmB,SAAS,UACTI,kBAAkB,mDAClBH,OAAQolB,EAAmBnZ,QAC3BtlB,KAAK,OACLuZ,SAAU8lB,EACV/lB,YAAY,yDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,SAwCJ,OAAJzB,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAY4mB,MAE/B,6BACE,kBAAC,IAAK0W,MAAN,CACExmB,QAAM,EACNymB,MAAOrmB,EAAKoB,cAAc,CAAEjf,GAAI,wDAChC6D,KAAK,WACL7D,GAAG,mBACHmkC,QAAShB,EACThkB,SAAU,kBAAMikB,GAAqBD,OAGvC,OAOV,kBAAC,IAAMiB,OAAP,KACE,kBAAC,IAAD,CACE72B,KAAK,KACL82B,QAAQ,YACRC,QAAS,kBAAMjB,MAEf,kBAAC,IAAD,CAAkBrjC,GAAG,mBAEvB,kBAAC,IAAD,CACEuN,KAAK,KACL82B,QAAQ,UACRC,QAAS,kBA/NI,WACnB,IAAMjiC,EAA0B,CAC9BgK,SAAU42B,EAAiB52B,SAC3B8L,KAAM8qB,EAAiB9qB,KACvB7L,SAAU22B,EAAiB32B,SAC3BuO,MAAOooB,EAAiBpoB,MACxBsO,QAAS8Z,EAAiB9Z,QAC1BC,MAAO6Z,EAAiB7Z,MACxBF,UAAW+Z,EAAiB/Z,UAE5BkB,cAAe6Y,EAAiB7Y,cAChCG,eAAgB4Y,IAGV,OAAJr3B,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAYsiB,UAAYtQ,EAASxQ,OAASmW,OAAOjc,EAAQ8F,cAC1E9F,EAAQ8F,KAEbwQ,EAAStM,WAAahK,EAAQgK,iBACzBhK,EAAQgK,SAEbsM,EAASR,OAAS9V,EAAQ8V,aACrB9V,EAAQ8V,KAEbQ,EAASrM,WAAajK,EAAQiK,iBACzBjK,EAAQiK,SAEbqM,EAASkC,QAAUxY,EAAQwY,cACtBxY,EAAQwY,MAEblC,EAASwQ,UAAY9mB,EAAQ8mB,gBACxB9mB,EAAQ8mB,QAEbxQ,EAASyQ,QAAU/mB,EAAQ+mB,cACtB/mB,EAAQ+mB,MAEbzQ,EAASuQ,YAAc7mB,EAAQ6mB,kBAC1B7mB,EAAQ6mB,UAEbvQ,EAASyR,gBAAkB/nB,EAAQ+nB,sBAC9B/nB,EAAQ+nB,cAEZzR,EAAS4R,iBAAmBloB,EAAQkoB,uBAChCloB,EAAQkoB,oBAGkBtmB,IAA/BnD,KAAKQ,UAAUe,GAAS,KAI5BT,EAASg5B,YAAep6B,EAAKyiC,EAAiBhpB,GAAGpN,WAAYxK,IAC7D2/B,EAAiB,aA6KIuC,IACfjnB,SAAUgmB,EACV/lB,OAAW,OAAJzR,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAY4mB,MAAQ,GAAKiW,GAEtD,kBAAC,IAAD,CAAkBxjC,GAAG,uB,oLC1ChBwkC,IArQyC,SAAC,GAAqD,IAAnDzjB,EAAkD,EAAlDA,OAAQghB,EAA0C,EAA1CA,KAAMC,EAAoC,EAApCA,iBACjExkB,EAAa,CACjB+a,MAAO,SAGH32B,EAAWqgC,cACXpkB,EAAOC,cACPtd,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpE6tB,EAAc6T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAGpEoW,EAAmB,CACvBp4B,SAAUk2B,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GAF1B,+BAEuDyiC,IAAI,IAAK5kB,EAAKoB,cAAc,CAAEjf,GAAI,2BAA4B0iC,QAAQ,sBAAuB7kB,EAAKoB,cAAc,CAAEjf,GAAI,+BACxMmY,KAAMoqB,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GAHtB,+BAGmD0iC,QAAQ,iizBAAmF7kB,EAAKoB,cAAc,CAAEjf,GAAI,kCAClM6a,MAAO0nB,MAAaC,SAAS3kB,EAAKoB,cAAc,CAAEjf,GAJvB,+BAIoD0iC,QAAQ,0IAA+E7kB,EAAKoB,cAAc,CAAEjf,GAAI,4BAC/Lmb,cAAeonB,MAEdE,IAAI,GAAI5kB,EAAKoB,cAAc,CAAEjf,GAAI,oCACjC0iC,QAAQ,WAAY7kB,EAAKoB,cAAc,CAAEjf,GAAI,mCAC7C4iC,WACAC,WAAU,SAACC,EAAGC,GAAJ,MAAiB,KAANA,EAAW,KAAOD,MAGpC4B,EAAyB3jB,EAvB4E,EAyB/D/C,IAAMkb,SAAiBnY,GAzBwC,mBAyBpG4jB,EAzBoG,KAyBpFC,EAzBoF,OA0B/D5mB,IAAMkb,UAAkB,GA1BuC,mBA0BpG2L,EA1BoG,KA0BpFC,EA1BoF,OA2BjE9mB,IAAMkb,UAAkB,GA3ByC,mBA2BpG6L,EA3BoG,KA2BrFC,EA3BqF,OA4B7DhnB,IAAMkb,UAAkB,GA5BqC,mBA4BpG+L,EA5BoG,KA4BnFC,EA5BmF,KA6BrG/C,EAAWhhC,IAAkBC,yBAAyB,QA7B+C,EA8BnF4c,IAAMkb,SAAe,IA9B8D,mBA8BpGptB,EA9BoG,KA8B9Fs2B,EA9B8F,KAgC3GpkB,IAAMqkB,WAAU,WACU,kBAAbF,GACTC,EAAQthC,KAAKC,MAAMohC,MAEpB,CAACA,IAEJnkB,IAAMqkB,WAAU,WACduC,EAAkB7jB,KACjB,CAACA,IAEJ/C,IAAMqkB,WAAU,WACdyC,EAAkC,IAAhB/jB,EAAO5Y,MACzB68B,EAAiBjkB,EAAO/F,SACxBkqB,EAAmBnkB,EAAO9F,aACzB,CAAC0pB,EAAgB5jB,EAAO5Y,KAAM4Y,EAAO/F,QAAS+F,EAAO9F,YAExD,IAOMooB,EAAe,WACnBuB,EAAkBF,GAClB1C,EAAiB,aAqDbsB,EAAmB9kB,IAAWC,eAAe8jB,MAAagB,MAAMkB,GAAmBE,GAEnFnB,EAAW,CACftL,gBAAiB7J,EACjBoV,YAAapV,GAGf,OACE,kBAAC,IAAD,CAAO0T,KAAMA,EAAM2B,OAAQL,EAAcM,UAAQ,EAACC,YAAU,GAC1D,kBAAC,IAAMC,OAAP,CAAcC,aAAW,GACvB,kBAAC,IAAMC,MAAP,KACE,kBAAC,IAAD,CAAkB/jC,GAAG,eAGzB,kBAAC,IAAMgkC,KAAP,CAAYn0B,UAAU,YACpB,kBAAC,IAAD,KAEE,kBAAC,IAAD,CACEmN,MAAO2nB,EACP1nB,SAAS,WACTI,kBAAkB,gDAClBH,OAAQunB,EAAiBp4B,SACzBxI,KAAK,OACLuZ,SAAUwnB,EACVznB,YAAY,sDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,OAGP,kBAAC,IAAD,CACEyP,MAAO2nB,EACP1nB,SAAS,OACTI,kBAAkB,4CAClBH,OAAQunB,EAAiBtsB,KACzBtU,KAAK,OACLuZ,SAAUwnB,EACVznB,YAAY,kDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,OAGP,kBAAC,IAAD,CACEyP,MAAO2nB,EACP1nB,SAAS,QACTI,kBAAkB,6CAClBH,OAAQunB,EAAiB5pB,MACzBhX,KAAK,OACLuZ,SAAUwnB,EACVznB,YAAY,mDACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,OAEe,UAArBzB,EAAKnF,YACJ,kBAAC,IAAKiZ,MAAN,CAAYza,IAAI,iBAAiBggC,UAAU,iBAAiB5nB,MAAOC,EAAY3N,UAAU,aACvF,kBAAC,IAAKmP,MAAN,CAAYnP,UAAU,aACpB,kBAAC,IAAD,CAAkB7P,GAAG,oCAEvB,kBAAC,IAAK6e,QAAN,CACEumB,GAAG,SACH73B,KAAK,KACL1J,KAAK,OACLmC,MAAO2+B,EAAezvB,eACtBqI,MAAO,CAAEgb,MAAO,QAChBpZ,SAAU,SAACpZ,GAAD,OAhIE,SAACA,EAAgE+3B,GACzF8G,EAAkB,eACbD,EADY,eAEd7G,EAAW/3B,EAAMsY,OAAOrY,SA6H4Cq/B,CAAkBt/B,EAAOA,EAAMsY,OAAOre,MAGjG,4BAAQgG,MAAM,KACX6X,EAAKoB,cAAc,CAAEjf,GAAI,+BAE5B,4BAAQgG,MAAM,KACX6X,EAAKoB,cAAc,CAAEjf,GAAI,gCAI9B,KAEJ,kBAAC,IAAD,CACEgd,MAAO2nB,EACP1nB,SAAS,gBACTI,kBAAkB,qDAClBH,OAAQunB,EAAiBtpB,cACzBtX,KAAK,OACLuZ,SAAUwnB,EACVznB,YAAY,2DACZI,MAAOC,EACP3N,UAAU,UACVtC,KAAK,QAGF,OAAJzB,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAY4mB,MAE/B,oCACE,kBAAC,IAAK0W,MAAN,CACExmB,QAAM,EACNymB,MAAOrmB,EAAKoB,cAAc,CAAEjf,GAAI,iDAChC6D,KAAK,WACL7D,GAAG,gBACHmkC,QAASY,EACT5lB,SAAU,kBAAM6lB,GAAkBD,MAGpC,kBAAC,IAAKd,MAAN,CACExmB,QAAM,EACNymB,MAAOrmB,EAAKoB,cAAc,CAAEjf,GAAI,mDAChC6D,KAAK,WACL7D,GAAG,kBACHmkC,QAASc,EACT9lB,SAAU,kBAAM+lB,GAAoBD,MAGtC,kBAAC,IAAKhB,MAAN,CACExmB,QAAM,EACNymB,MAAOrmB,EAAKoB,cAAc,CAAEjf,GAAI,kDAChC6D,KAAK,WACL7D,GAAG,iBACHmkC,QAASU,EACT1lB,SAAU,kBAAM2lB,GAAmBD,OAGrC,OAOV,kBAAC,IAAMT,OAAP,KACE,kBAAC,IAAD,CACE72B,KAAK,KACL82B,QAAQ,YACRC,QAASjB,GAET,kBAAC,IAAD,CAAkBrjC,GAAG,mBAEvB,kBAAC,IAAD,CACEuN,KAAK,KACL82B,QAAQ,UACRC,QAAS,kBA9LI,WACnB,IAAMjiC,EAAwB,CAC5BgK,SAAUs4B,EAAet4B,SACzB8L,KAAMwsB,EAAexsB,KACrB0C,MAAO8pB,EAAe9pB,MACtB3F,eAAgBoJ,OAAOqmB,EAAezvB,gBACtC/M,KAAM08B,EAAiBvrB,IAAWgsB,KAAOhsB,IAAWiC,OACpDJ,cAAewpB,EAAexpB,cAC9BH,QAAS+pB,EACT9pB,UAAWgqB,GAGRJ,GAAkBF,EAAex8B,OAASmR,IAAWisB,iBACjDljC,EAAQ8F,KAGb4Y,EAAO1U,WAAahK,EAAQgK,iBACvBhK,EAAQgK,SAEb0U,EAAO5I,OAAS9V,EAAQ8V,aACnB9V,EAAQ8V,KAEb4I,EAAOlG,QAAUxY,EAAQwY,cACpBxY,EAAQwY,MAEbkG,EAAO7L,iBAAmB7S,EAAQ6S,uBAC7B7S,EAAQ6S,eAEb6L,EAAO5Y,OAAS9F,EAAQ8F,aACnB9F,EAAQ8F,KAEb4Y,EAAO5F,gBAAkB9Y,EAAQ8Y,sBAC5B9Y,EAAQ8Y,cAEb4F,EAAO/F,UAAY3Y,EAAQ2Y,gBACtB3Y,EAAQ2Y,QAEb+F,EAAO9F,YAAc5Y,EAAQ4Y,kBACxB5Y,EAAQ4Y,eAGkBhX,IAA/BnD,KAAKQ,UAAUe,GAAS,KAK5BT,EAAS+4B,YAAan6B,EAAKmkC,EAAe1qB,GAAGpN,WAAYxK,IACzD2/B,EAAiB,aA+IIuC,IACfjnB,SAAUgmB,EACV/lB,OAAW,OAAJzR,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAY4mB,MAAQ,GAAKiW,GAEtD,kBAAC,IAAD,CAAkBxjC,GAAG,uB,uBCjR/B2U,EAAOC,QAAU,IAA0B,gC,kqBCgU5B4wB,gBA5RsB,SAAC,GAMlB,IAAD,gBALjB/jC,EAKiB,EALjBA,SACAgkC,EAIiB,EAJjBA,YACAC,EAGiB,EAHjBA,YACApX,EAEiB,EAFjBA,UACAqX,EACiB,EADjBA,aAEM/jC,EAAWqgC,cAGXrT,EAAesT,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc0B,gBAErEpuB,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpEigB,EAAuCyhB,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcxM,2BAC7F2N,EAAc6T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAEpEuX,EAAwB1D,aAAY,SAACllB,GAAD,OAAsBA,EAAM6X,gBAAgBnP,SAChF/M,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAC7EktB,EAAkC3D,aAAY,SAACllB,GAAD,OAAsBA,EAAMkS,iBAAiBvD,aAC3F5K,EAAiBmhB,aAAY,SAACllB,GAAD,OAAsBA,EAAM0S,cAAc3O,UACvEohB,EAAWhhC,IAAkBC,yBAAyB,QAd3C,GAeO4c,IAAMkb,SAAe,IAf5B,qBAeVptB,GAfU,MAeJs2B,GAfI,SAgByCpkB,IAAMkb,UAAS,GAhBxD,qBAgBV4M,GAhBU,MAgBaC,GAhBb,SAiBqC/nB,IAAMkb,UAAS,GAjBpD,qBAiBV8M,GAjBU,MAiBWC,GAjBX,MAmBXC,GAAW/kC,IAAkBC,yBAAyB,mBAAqB0K,GAAKmO,GAElF+D,IAAMqkB,WAAU,WACM,kBAAbF,GACTC,GAAQthC,KAAKC,MAAMohC,MAEpB,CAACA,IAGJnkB,IAAMqkB,WAAU,WACdzgC,EAASoe,YAAyBxf,MACjC,CAACoB,EAAUpB,IAEdwd,IAAMqkB,WAAU,YACN,OAAJv2B,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,eAAgBA,IAAYgU,QACpC/Y,EACEwf,YACE5gB,EADqB,OAErBsL,SAFqB,IAErBA,QAFqB,EAErBA,GAAMmO,OAIX,CAACrY,EAAUpB,EAAKsL,KAEnBkS,IAAMqkB,WAAU,WACdzgC,EAAS6jB,YAAwBjlB,MAChC,CAACoB,EAAUpB,IAEdwd,IAAMqkB,WAAU,WAEd,IAAQ,OAAJv2B,SAAI,IAAJA,QAAA,EAAAA,GAAMmO,MAAU,OAAJnO,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,eAAgBA,IAAYsiB,SAAU,CAC1D,IAEgD,EAF5ClQ,EAAa,EAEjB,IAAQ,OAAJjN,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,eAAgBA,IAAYsiB,SAElClQ,GADF,OAAIjN,SAAJ,IAAIA,IAAJ,UAAIA,GAAM4hB,mBAAV,aAAI,EAAmBxE,WACR5K,OAAO4nB,IAGV,OAAGp6B,SAAH,IAAGA,QAAH,EAAGA,GAAMmO,GAIvBrY,EAASyX,YAA0B7Y,EAAKuY,OAEzC,CAACnX,EAAUpB,EAAKsL,GAAKmO,GAAIisB,KAE5B,IAAM1C,GAAW,CACf2C,WAAY1lB,EAAa2lB,MACzB5N,OAAQ,OACRlrB,MAAOmT,EAAa4lB,eACpBjO,QAAS,EACTK,WAAY,OACZ6N,YAAa,OACb3mB,aAAc,EACdP,SAAU,IAGNmnB,GAAiB,CACrBJ,WAAY1lB,EAAa2lB,MACzB5N,OAAQ,OACRJ,QAAS,EACTK,WAAY,OACZ6N,YAAa,OACbh5B,MAAOmT,EAAa+lB,KACpB7mB,aAAc,EACdP,SAAU,IAGNqnB,GAAkB,CACtBC,aAAa,aAAD,OAAejmB,EAAa+lB,OAqBpCG,GAAwB,WACF,cAAlB,OAAJ76B,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,cACRo/B,IAA0BD,IAEF,YAAlB,OAAJh6B,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,cACRs/B,IAAwBD,KAItBY,GAAoB,SAAC5gC,GAEzB,OAAQA,GACN,IAAK,UACH,OAAO6gC,IACT,IAAK,UACH,OAAOC,IACT,IAAK,cACH,OAAOC,IACT,IAAK,eACH,OAAOC,IACT,IAAK,aACH,OAAOC,IACT,IAAK,6CACH,OAAOC,KACT,IAAK,6CACH,OAAOC,IACT,IAAK,qBACH,OAAOC,KACT,IAAK,6CACH,OAAOC,IACT,IAAK,qBACH,OAAOC,IACT,IAAK,eACH,OAAOC,KACT,QACE,MAAO,KAIPC,GAAiBvjB,OAAOuD,KAAK8G,GAChCxC,QAAO,SAAC3L,GAAD,OAAkBA,IAASulB,KAClC/mB,KAAI,SAACwB,EAAcvB,GAClB,OACE,kBAAC6oB,EAAA,EAASC,KAAV,CAAeviC,IAAG,UAAKgb,EAAL,YAAavB,GAAS0lB,QAAS,kBAAMqB,EAAaxlB,IAAOtQ,UAAU,YAAY0N,MAAO,CAACqb,YAAa,KACpH,yBACE+O,IAAKf,GAAkBtY,EAAUnO,IACjCtQ,UAAU,OACVyoB,OAAO,OACPC,MAAM,OACNqP,IAAI,YAELtZ,EAAUnO,OAKnB,OACE,oCACE,kBAAC0nB,EAAA,EAAD,CACEtqB,MAAK,eAAOya,IAAP,CAAkBM,OAAQ,GAAIwP,OAAQ,KAC3Cj4B,UAAU,8BAEV,yBAAK0N,MAAO,CAAEwqB,SAAU,IAAKtP,WAAY,OAAQ6N,YAAa,QAASz2B,UAAU,6BAC/E,kBAAC,IAAD,CAAMm4B,GAAG,cACP,yBACEL,IAAKM,IACLL,IAAI,yBACJrqB,MAxEQ,CAClBwqB,SAAU,QACVG,UAAW,YA4EP,kBAAC,IAAD,CACEF,GAAG,aACHn4B,UAAU,4BACV0N,MAA6B,eAAtB9b,EAASC,SAA4B+kC,GAAkB,IAE9D,kBAAC0B,EAAA,EAAD,CAAQ5qB,MAA6B,eAAtB9b,EAASC,SAA4B6kC,GAAiB/C,IACnE,kBAAC,IAAD,CAAkBxjC,GAAG,wBAIpB,OAAJ8L,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,eAAgBA,IAAYgU,QACQ,UAArC,OAAJ7O,SAAI,IAAJA,IAAA,UAAAA,GAAMkQ,sBAAN,eAAsBnC,gBACpB,kBAAC,IAAD,CACEmuB,GAAG,YACHn4B,UAAU,4BACV0N,MAA6B,cAAtB9b,EAASC,SAA2B+kC,GAAkB,IAE7D,kBAAC0B,EAAA,EAAD,CAAQ5qB,MAA6B,cAAtB9b,EAASC,SAA2B6kC,GAAiB/C,IAClE,kBAAC,IAAD,CAAkBxjC,GAAG,sBAGzB,MAEC,OAAJ8L,SAAI,IAAJA,QAAA,EAAAA,GAAMnF,eAAgBA,IAAYsiB,UACQ,UAAjC,OAARtQ,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B/E,YACxB,kBAAC,IAAD,CACE+wB,GAAG,kBACHn4B,UAAU,4BACV0N,MAAO9b,EAASC,SAAS+lB,SAAS,kBAAoBgf,GAAkB,IAExE,kBAAC0B,EAAA,EAAD,CAAQ5qB,MAAO9b,EAASC,SAAS+lB,SAAS,kBAAoB8e,GAAiB/C,IAC7E,kBAAC,IAAD,CAAkBxjC,GAAG,qBAGzB,KACuC,WAA7B,OAAZ4uB,QAAY,IAAZA,GAAA,UAAAA,EAAcwZ,kBAAd,eAA0Bv7B,aAC1B,kBAAC,IAAD,CACEm7B,GAAG,YACHn4B,UAAU,4BACV0N,MAA6B,cAAtB9b,EAASC,SAA2B+kC,GAAkB,IAE7D,kBAAC0B,EAAA,EAAD,CAAQ5qB,MAA6B,cAAtB9b,EAASC,SAA2B6kC,GAAiB/C,IAClE,kBAAC,IAAD,CAAkBxjC,GAAG,kBAAkBI,OAAQ,CAACwlC,qBAKtD,yBAAK/1B,UAAU,yCAAyC0N,MAAO,CAAC8qB,SAAU,IACxE,kBAACZ,EAAA,EAAD,KACE,kBAACA,EAAA,EAASa,OAAV,CACEtoC,GAAG,qBACH6P,UAAU,4BACV0N,MAzIc,CACxB2a,gBAAiB,QACjBM,OAAQ,OACRlrB,MAAO,OACP8R,SAAU,KAuIA,0BAAMvP,UAAU,QAAQye,EAAUoX,IAAgBpX,EAAUia,IAC5D,0BAAM14B,UAAU,QAAQzC,IAAMoF,aAAa,OAAQ,QAGrD,kBAACi1B,EAAA,EAASe,KAAV,KAAgBhB,KAElB,kBAACW,EAAA,EAAD,CAAQ56B,KAAK,KAAK82B,QAAQ,OAAOC,QAASqC,GAAuB92B,UAAU,kBACnD,aAArB/D,GAAKnF,YAEJ,0BAAMkJ,UAAU,OAAO0N,MAAO,CAAEjQ,MAAO+gB,EAAajP,SAAU,KAC3DymB,EAAe,IAEf,UAAAA,EAAe,UAAf,eAAmB1tB,KAAKkQ,QAAS,GAAjC,oBAAyCwd,EAAe,UAAxD,aAAyC,EAAmB1tB,KAAKlV,MAAM,EAAG,IAA1E,iBAAqF4iC,EAAe,UAApG,aAAqF,EAAmB1tB,MAE/F,OAARQ,QAAQ,IAARA,GAAA,UAAAA,EAAUR,YAAV,eAAgBkQ,QAAS,GAAzB,iBAAiC1P,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAUR,KAAKlV,MAAM,EAAG,IAAzD,cAAoE0V,QAApE,IAAoEA,OAApE,EAAoEA,EAAUR,MAIlF,0BAAMtI,UAAU,OAAO0N,MAAO,CAAEjQ,MAAO+gB,EAAajP,SAAU,MACtD,OAAJtT,SAAI,IAAJA,IAAA,UAAAA,GAAMqM,YAAN,eAAYkQ,QAAS,GAArB,iBAA6Bvc,SAA7B,IAA6BA,QAA7B,EAA6BA,GAAMqM,KAAKlV,MAAM,EAAG,IAAjD,cAA4D6I,SAA5D,IAA4DA,QAA5D,EAA4DA,GAAMqM,OAI1E,kBAACgwB,EAAA,EAAD,CAAQ5qB,MAxKE,CAChBib,OAAQ,OACRN,gBAAiB,QACjBE,QAAS,GAqKuBkM,QAASmB,GACjC,kBAAC,IAAD,CAAiBl4B,KAAK,KAAKD,MAAOmT,EAAa4lB,eAAgB74B,KAAM2G,UAI3E,kBAAC2tB,EAAA,EAAD,CACEnpB,SAAUktB,EAAe,GAAKA,EAAe,GAAKltB,EAClDopB,KAAM+D,GACN9D,iBAAkB2E,KAEpB,kBAACnC,EAAA,EAAD,CACEzjB,OAAQA,EACRghB,KAAMiE,GACNhE,iBAAkB2E,S,UCxTb8B,GAAW,CACtBd,I,QAAKe,EAGL74B,UAAW,OACX+3B,IAAK,OACLe,KAAM,K,6BCDKC,GAAe,SAAC,GAAiC,IAA/BC,EAA8B,EAA9BA,UAAcC,EAAgB,8BACrDlnC,EAAWqgC,cAEjBI,qBAAU,WACRzgC,EAASorB,kBACR,IAiBH,OAAO,gBAAC,IAAD,iBAAW8b,EAAX,CAAiBC,OAfD,WAErB,GAAID,EAAKha,gBACP,OAAO+Z,EAGT,GAAiC,WAA7BrnC,OAAOC,SAASC,SAAuB,CAC3C,IAAMR,EAAcC,IAAkBC,yBAAyB,eAC/DD,IAAkBE,uBAAuB,eAAgBP,KAAKQ,UAAU,CAACC,KAAMC,OAAOC,SAASC,SAAUR,YAAaA,GAAe,MAGrI,OAAO,gBAAC,IAAD,CAAU8mC,GAAI,CAAEtmC,SAAU,iB,4DCsGtBsnC,GApHY,WAAoB,IAAD,IACtCnrB,EAAOC,eAEPwJ,EAA2C4a,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc7F,YACjGuH,EAAesT,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc0B,gBAErEjW,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YANvC,EAOcqF,IAAMkb,SAAiB,GAPrC,mBAOrC+P,EAPqC,KAOdC,EAPc,KAStC7hB,EAAWD,aAAiB,OAACzO,QAAD,IAACA,OAAD,EAACA,EAAUmC,SAAUwM,GAEvDtJ,IAAMqkB,WAAU,WACV1pB,EAASqO,aACXkiB,EAAyB5qB,SAAS3F,EAAS0B,eAAiB1B,EAASqO,aAAerO,EAASqO,YAAc,KAAKe,QAAQ,OAEzH,CAACpP,IAEJ,IAqBMwwB,EAAcva,EAAawa,yBAA2B,kBAAC,IAAD,CAAkBppC,GAAG,+DAAmE,kBAAC,IAAD,CAAkBA,GAAG,kEAEzK,OACE,oCAEE,kBAAC6nC,EAAA,EAAD,CACExD,QAAQ,QACRgF,GAAG,QACHC,MAAM,MACN/rB,MAAO,CAAC+a,OAAQ,QAChBzoB,UAAU,aAEV,yBAAKA,UAAU,yBACb,kBAAC,IAAD,CAAMm4B,GAAG,cACP,8BACG56B,IAAMiH,cAAc,QAAS,QAGlC,0BAAMxE,UAAU,QACd,kBAAC,IAAD,CAAkB7P,GAAG,+CAK3B,yBAAKud,MAAO,CAACgb,MAAO,OAAQV,WAAY,QAAShoB,UAAU,0BAEJ,UAA5C,OAAR8I,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B5E,wBAC3B,kBAACmyB,EAAA,EAAD,CAAK15B,UAAU,OAAO0N,MAAO,CAAE6B,SAAU,KACvC,kBAACoqB,GAAA,EAAD,KACE,0BAAM35B,UAAU,oBACd,kBAAC,IAAD,CAAkB7P,GAAG,8CAIzB,kBAACwpC,GAAA,EAAD,KAvDe,SAACC,GACtB,OAAQA,GACN,IAAK,KACH,GAAyB,SAAb,OAAR9wB,QAAQ,IAARA,OAAA,EAAAA,EAAUyD,QACZ,OAAOyB,EAAKoB,cAAc,CAAEjf,GAAI,+CAChC,GAAyB,WAAb,OAAR2Y,QAAQ,IAARA,OAAA,EAAAA,EAAUyD,QACd,MAAM,GAAN,OAAUiL,EAAV,YAAsBO,aAAuB,OAACjP,QAAD,IAACA,OAAD,EAACA,EAAUwD,IAAxD,oBAAgExD,QAAhE,IAAgEA,OAAhE,EAAgEA,EAAU8Q,UAA1E,MACA,GAAyB,aAAb,OAAR9Q,QAAQ,IAARA,OAAA,EAAAA,EAAUyD,QACd,MAAM,GAAN,cAAUzD,QAAV,IAAUA,OAAV,EAAUA,EAAU8Q,UAApB,cAAmCpC,GAAnC,OAA8CO,aAAuB,OAACjP,QAAD,IAACA,OAAD,EAACA,EAAUwD,IAAhF,KACA,GAAyB,YAAb,OAARxD,QAAQ,IAARA,OAAA,EAAAA,EAAUyD,QACd,OAAOyB,EAAKoB,cAAc,CAAEjf,GAAI,6CAOtC,OAAO6d,EAAKoB,cAAc,CAAEjf,GAAI,+CAuCvB0pC,CAAe,QAKpB,kBAACH,EAAA,EAAD,CAAK15B,UAAU,OAAO0N,MAAO,CAAE6B,SAAU,KACvC,kBAACoqB,GAAA,EAAD,KACE,0BAAM35B,UAAU,oBACd,kBAAC,IAAD,CAAkB7P,GAAG,6BAIzB,kBAACwpC,GAAA,EAAD,eACM7wB,EAASqO,YADf,YAC8BI,aAAkBzO,EAASmC,SAAUwM,MAKhB,UAA5C,OAAR3O,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B5E,wBAC3B,kBAACmyB,EAAA,EAAD,CAAK15B,UAAU,OAAO0N,MAAO,CAAE6B,SAAU,KACvC,kBAACoqB,GAAA,EAAD,KACE,0BAAM35B,UAAU,oBACd,kBAAC,IAAD,CAAkB7P,GAAG,uBACf,IACPmpC,EAJH,KAOA,kBAACK,GAAA,EAAD,KACE,0BAAM35B,UAAU,QAAhB,UACM8I,EAAS0B,eADf,YACiC+M,aAAkBzO,EAASmC,SAAUwM,KAGtE,yCACO2hB,EAAwB,EAAI,IAAM,IADzC,OAC8CA,EAD9C,YCtGNrhC,GAAQoW,IAAM2rB,MAAK,kBAAM,kCACzBC,GAAgB5rB,IAAM2rB,MAAK,kBAAM,kCACjCE,GAAkB7rB,IAAM2rB,MAAK,kBAAM,6EACnCG,GAAc9rB,IAAM2rB,MAAK,kBAAM,kCAC/BI,GAAgB/rB,IAAM2rB,MAAK,kBAAM,sEACjCK,GAAehsB,IAAM2rB,MAAK,kBAAM,kCAChCM,GAASjsB,IAAM2rB,MAAK,kBAAM,kCAC1BO,GAAWlsB,IAAM2rB,MAAK,kBAAM,kCAC5BQ,GAAansB,IAAM2rB,MAAK,kBAAM,wDAC9BS,GAAUpsB,IAAM2rB,MAAK,kBAAM,wDAC3BU,GAAiBrsB,IAAM2rB,MAAK,kBAAM,+DAClCW,GAAetsB,IAAM2rB,MAAK,kBAAM,6EAChCY,GAAkBvsB,IAAM2rB,MAAK,kBAAM,kCACnCa,GAAaxsB,IAAM2rB,MAAK,kBAAM,kCAC9Bc,GAAgBzsB,IAAM2rB,MAAK,kBAAM,kCAEjCe,IADe1sB,IAAM2rB,MAAK,kBAAM,wDACrB3rB,IAAM2rB,MAAK,kBAAM,mCAC5BgB,GAAkB3sB,IAAM2rB,MAAK,kBAAM,kCACnCiB,GAAa5sB,IAAM2rB,MAAK,kBAAM,kCAC9BkB,GAAmB7sB,IAAM2rB,MAAK,kBAAM,kCACpCmB,GAAkB9sB,IAAM2rB,MAAK,kBAAM,wDAGnCoB,GAAc/sB,IAAM2rB,MAAK,kBAAM,kCAC/BqB,GAAsBhtB,IAAM2rB,MAAK,kBAAM,wDACvCsB,GAAoBjtB,IAAM2rB,MAAK,kBAAM,kCACrCuB,GAAqBltB,IAAM2rB,MAC/B,kBAAM,wDAEFwB,GAAwBntB,IAAM2rB,MAClC,kBAAM,kCAEFyB,GAAwBptB,IAAM2rB,MAAK,kBAAM,wDACzC0B,GAAgBrtB,IAAM2rB,MAAK,kBAAM,kCACjC2B,GAA4BttB,IAAM2rB,MAAK,kBAAM,wDAC7C4B,GAAoBvtB,IAAM2rB,MAAK,kBAAM,kCACrC6B,GAA0BxtB,IAAM2rB,MAAK,kBAAM,wDAC3C8B,GAAgBztB,IAAM2rB,MAAK,kBAAM,kCACjC+B,GAAc1tB,IAAM2rB,MAAK,kBAAM,kCAC/BgC,GAAyB3tB,IAAM2rB,MAAK,kBAAM,kCAC1CiC,GAAY5tB,IAAM2rB,MAAK,kBAAM,kCAC7BkC,GAAa7tB,IAAM2rB,MAAK,kBAAM,kCAC9BmC,GAAqB9tB,IAAM2rB,MAAK,kBAAM,wDACtCoC,GAA2B/tB,IAAM2rB,MAAK,kBAAM,kCAC5CqC,GAA2BhuB,IAAM2rB,MAAK,kBAAM,kCAC5CsC,GAAgCjuB,IAAM2rB,MAAK,kBAAM,kCAGjDuC,GAAqBluB,IAAM2rB,MAAK,kBAAM,wDACtCwC,GAAsBnuB,IAAM2rB,MAAK,kBAAM,6EACvCyC,GAAoBpuB,IAAM2rB,MAAK,kBAAM,+DACrC0C,GAAkBruB,IAAM2rB,MAAK,kBAAM,sEA4gB1B2C,GAzC8B,SAAC,GAKT,IAO/BxgC,EAXJgjB,EAIkC,EAJlCA,gBAEAxvB,GAEkC,EAHlCitC,WAGkC,EAFlCjtC,SACAomC,EACkC,EADlCA,YACkC,EACVzM,eADU,mBAC3BV,EAD2B,KACpBD,EADoB,OAGgBta,IAAMkb,SAASX,EAAQ7Q,MAHvC,mBAG3B8kB,EAH2B,KAGRC,EAHQ,KAI5BtK,EAAWhhC,IAAkBC,yBAAyB,QACtDuX,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAI3D,kBAAbwpB,IACTr2B,EAAOhL,KAAKC,MAAMohC,IAGpBnkB,IAAMqkB,WAAU,WACdoK,EAAqBlU,EAAQ7Q,QAC5B,CAAC6Q,EAAOD,IAEXta,IAAMqkB,WAAU,WACd,OAAO/iC,EAAQotC,QAAO,SAACjrC,GAChBA,EAASC,SAAS+lB,SAAS,mBAC9BtmB,IAAkB8E,4BAA4B,yBAGjD,CAAC3G,IAEJ,IAAMqtC,EAA6B,GAInC,OA5fiB,SACjBA,EACA7d,EACAyd,EACAjtC,EACAktC,EACA1gC,EACA6M,EACA+sB,GAEA,IAAIkH,EAEJ,GAAI9gC,EACF,OAAQA,EAAKnF,aACX,KAAKA,IAAY4mB,MAGjB,KAAK5mB,IAAYsiB,SAGjB,KAAKtiB,IAAYgU,OACfiyB,EAAqB,kBAAC,IAAD,CAAU5E,GAAG,eAOxC,IAAM6E,EAAY,kBAChB/d,EACE8d,EAEA,yBAAK/8B,UAAU,eAEZ28B,EAAoB,kBAACzB,GAAD,MAAkB,kBAACnjC,GAAD,QAIzCkE,IAEEA,EAAKnF,cAAgBA,IAAY4mB,QACnCof,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,oBACJyF,KAAK,iCACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACgB,GAAD,SAGf8C,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,wBACJyF,KAAK,sCACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACkB,GAAD,CAAezqC,QAASA,OAGvCqtC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,wBACJyF,KAAK,6BACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACiB,GAAD,CAAaxqC,QAASA,OAGrCqtC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,mBACJyF,KAAK,mBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACiC,GAAD,SAGf6B,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,gBACJyF,KAAK,4BACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACqB,GAAD,CAAUxE,YAAaA,OAGtCiH,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,cACJyF,KAAK,gBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACsB,GAAD,CAAY7qC,QAASA,OAGpCqtC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,aACJyF,KAAK,cACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACmB,GAAD,SAGf2C,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,YACJyF,KAAK,aACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACe,GAAD,SAGf+C,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,cACJyF,KAAK,qBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC8B,GAAD,CAAiBrrC,QAASA,OAGzCqtC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,aACJyF,KAAK,cACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC+B,GAAD,SAGf+B,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,mBACJyF,KAAK,qBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACgC,GAAD,CAAkBvrC,QAASA,OAG1CqtC,EAAO3/B,KASL,kBAAC,GAAD,CACE7H,IAAI,iBACJyF,KAAK,kBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACiB,GAAD,SAIf6C,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,SACJyF,KAAK,UACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACoB,GAAD,SAGf0C,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,UACJyF,KAAK,WACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACuB,GAAD,SAGfuC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,YACJyF,KAAK,aACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACwB,GAAD,SAGfsC,EAAO3/B,KASL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,YACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACyB,GAAD,SAIfqC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,eACJyF,KAAK,gBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC0B,GAAD,SAGfoC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,SACJyF,KAAK,UACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC2B,GAAD,UAMb1+B,EAAKnF,cAAgBA,IAAYsiB,UAAaujB,IAChDG,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,sBACJyF,KAAK,aACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACuD,GAAD,SAGfO,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,wBACJyF,KAAK,sBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACwD,GAAD,SAGfM,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,iBACJyF,KAAK,kBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACqD,GAAD,SAGfS,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,YACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACsD,GAAD,UAKbrgC,EAAKnF,cAAgBA,IAAYgU,QAAW6xB,IAC9CG,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,oBACJyF,KAAK,aACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACwD,GAAD,SAGfM,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,mBACJyF,KAAK,iBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACuD,GAAD,SAGfO,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,iBACJyF,KAAK,kBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACqD,GAAD,SAGfS,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,YACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACsD,GAAD,SAGfQ,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,YACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACuD,GAAD,UAMbI,IACE1gC,EAAKnF,cAAgBA,IAAYsiB,UAAYnd,EAAKnF,cAAgBA,IAAYgU,SAChFgyB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,QACJyF,KAAK,mCACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC6C,GAAD,CAAa5/B,KAAMA,OAGlC6gC,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,OACJyF,KAAK,kBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACgD,GAAD,SAGfc,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,WACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC,GAAD,SAGf8D,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,iBACJyF,KAAK,sBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACyC,GAAD,SAGfqB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,gBACJyF,KAAK,qBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACyC,GAAD,SAGfqB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,qBACJyF,KAAK,0BACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC2C,GAAD,SAGfmB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,cACJyF,KAAK,mBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC0C,GAAD,SAGfoB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,sBACJyF,KAAK,2BACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACmD,GAAD,SAGfW,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,sBACJyF,KAAK,yBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACoD,GAAD,SAKbngC,EAAKnF,cAAgBA,IAAYsiB,UACa,SAA9CtQ,EAASqD,eAAevE,mBAExBk1B,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,wBACJyF,KAAK,sBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACmC,GAAD,SAKjB2B,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,UACJyF,KAAK,eACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC4C,GAAD,SAIfkB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,MACJyF,KAAK,WACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC+C,GAAD,SAGfe,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,oBACJyF,KAAK,6CACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAAC8C,GAAD,SAGfgB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,mBACJyF,KAAK,oBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACsC,GAAD,SAGfwB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,iBACJyF,KAAK,kBACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACoC,GAAD,SAGf0B,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,WACJyF,KAAK,YACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACqC,GAAD,SAGfyB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,YACJyF,KAAK,aACLkkB,gBAAiBA,EACjB+Z,UACE/8B,EAAKnF,cAAgBA,IAAYsiB,SAC/B,kBAACmiB,GAAD,CAAuBryB,WAAYjN,EAAKmO,KAExC,kBAAC+wB,GAAD,CAAqB3pB,SAAUvV,EAAKmO,QAK5C0yB,EAAO3/B,KACL,kBAAC,GAAD,CACE7H,IAAI,UACJyF,KAAK,WACLkkB,gBAAiBA,EACjB+Z,UAAW,kBAACwC,GAAD,CAAev/B,KAAMA,UAOtC0gC,GACFG,EAAO3/B,KACL,kBAAC,IAAD,CACE7H,IAAI,gBACJyF,KAAK,4BACLm+B,OAAQ,kBAAM,kBAAC+C,GAAD,CAAoBzP,UAAQ,QAG9CsQ,EAAO3/B,KACL,kBAAC,IAAD,CACE7H,IAAI,gBACJyF,KAAK,kBACLm+B,OAAQ,kBAAM,kBAACgD,GAAD,WAIlBY,EAAO3/B,KAAK,kBAAC,IAAD,CAAO7H,IAAI,gBAAgByF,KAAK,iBAAiBm+B,OAAQ,kBAAM,kBAAC2B,GAAD,UAE7EiC,EAAO3/B,KACL,kBAAC,IAAD,CAAO7H,IAAI,iBAAiByF,KAAK,kBAAkBm+B,OAAQ,kBAAM,kBAAC0B,GAAD,UAEnEkC,EAAO3/B,KAAK,kBAAC,IAAD,CAAO7H,IAAI,QAAQyF,KAAK,SAASm+B,OAAQ8D,KACrDF,EAAO3/B,KAAK,kBAAC,IAAD,CAAO7H,IAAI,QAAQyF,KAAK,IAAIm+B,OAAQ8D,KAmChDC,CAAWH,EAAQ7d,EAAiByd,EAAYjtC,EAASktC,EAAmB1gC,EAAM6M,EAAU+sB,GAG1F,kBAAC,WAAD,CAAUqH,SAAS,cACjB,kBAAC,IAAD,KAASJ,KClaAnH,gBAzJwB,SAAC,GAAqC,IAAD,IAAlC15B,EAAkC,EAAlCA,KAAMrK,EAA4B,EAA5BA,SACxCG,EAAWqgC,cAEXzhC,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpE6tB,EAAc6T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAGpE2e,EAAiBvrC,EAASC,SAC1BiX,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAE7EiW,EAAesT,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc0B,gBAErEqe,EAA+B,WACnC,OAAOD,EAAevlB,SAAS,cAC7BulB,EAAevlB,SAAS,gBACxBulB,EAAevlB,SAAS,iBACxBulB,EAAevlB,SAAS,YACxBulB,EAAevlB,SAAS,mBACxBulB,EAAevlB,SAAS,kBACxBulB,EAAevlB,SAAS,sBAGtBylB,EAA0D,SAAnCphC,EAAKkQ,eAAe/E,YAAkE,WAA7B,OAAZ2X,QAAY,IAAZA,GAAA,UAAAA,EAAcwZ,kBAAd,eAA0Bv7B,YAE9Fq5B,EAAW/kC,IAAkBC,yBAAyB,mBAAqB0K,EAAKmO,GAEtF+D,IAAMqkB,WAAU,WAEd,IAAQ,OAAJv2B,QAAI,IAAJA,OAAA,EAAAA,EAAMmO,MAAU,OAAJnO,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAYsiB,SAAU,CAC1D,IAEgD,EAF5ClQ,EAAa,EAEjB,IAAQ,OAAJjN,QAAI,IAAJA,OAAA,EAAAA,EAAMnF,eAAgBA,IAAYsiB,SAElClQ,GADF,OAAIjN,QAAJ,IAAIA,GAAJ,UAAIA,EAAM4hB,mBAAV,aAAI,EAAmBxE,WACR5K,OAAO4nB,GAGV,OAAGp6B,QAAH,IAAGA,OAAH,EAAGA,EAAMmO,GAIvBrY,EAASyX,YAA0B7Y,EAAKuY,OAEzC,CAACnX,EAAUpB,EAAKsL,EAAKmO,GAAIisB,IAG5BloB,IAAMqkB,WAAU,WACdzgC,EAASoe,YAAyBxf,MACjC,CAACoB,EAAUpB,EAAX,OAAgBouB,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAcwZ,aAEjC,IAAM+E,EAAc,CAClBC,QAAS,OACT7U,MAAO,SACP8U,eAAgB,SAChBC,WAAY,SACZxV,aAAc,QACda,UAAW,SAGP4U,EAAiB,eAClBJ,EADkB,CAErB7/B,MAAO+gB,IAGHmf,EAAY,CAChBlgC,MAAO,QACP8R,SAAU,IAGNquB,EAAe,eAChBD,EADgB,CAEnBlgC,MAAO+gB,EACPqf,eAAgB,OAChBC,QAAS,SAGX,OACE,kBAAC9F,EAAA,EAAD,CACEyB,MAAM,SACNz5B,UAAS,eAAUq9B,EAAuB,yBAA2B,2BACrE3vB,MAAO,CAAEqwB,cAAe,GAAI1V,gBAAiB,YAE7C,kBAAC,IAAD,CAAM8P,GAAG,cACP,kBAACwB,GAAA,EAAD,KACE,yBACEjsB,MAAO0vB,IAAiCM,EAAoBJ,EAC5Dt9B,UAAU,WAETzC,IAAMgG,cAAc65B,IAAiC5e,EAAc,UAAW,OAEjF,yBAAK9Q,MAAO0vB,IAAiCQ,EAAkBD,EAAW39B,UAAU,eAClF,kBAAC,IAAD,CAAkB7P,GAAG,2BAca,SAAvC2Y,EAASqD,eAAe/E,YAA8C,aAArBnL,EAAKnF,YAErD,kBAAC,IAAD,CAAMqhC,GAAG,mBACP,kBAACwB,GAAA,EAAD,KACE,yBACEjsB,MAAOyvB,EAAevlB,SAAS,oBAAsBulB,EAAevlB,SAAS,QAAU8lB,EAAoBJ,EAC3Gt9B,UAAU,WAETzC,IAAM4F,UAAUg6B,EAAevlB,SAAS,oBAAsBulB,EAAevlB,SAAS,QAAU4G,EAAc,UAAW,OAE5H,yBAAK9Q,MAA0B,oBAAnByvB,EAAuCS,EAAkBD,EAAW39B,UAAU,eACxF,kBAAC,IAAD,CAAkB7P,GAAG,yBAIzB,KACsC,WAA7B,OAAZ4uB,QAAY,IAAZA,GAAA,UAAAA,EAAcwZ,kBAAd,eAA0Bv7B,YAEzB,kBAAC,IAAD,CAAMm7B,GAAI,CAAEtmC,SAAU,YAAayD,IAAKmd,KAAKurB,SAAShhC,aACpD,kBAAC28B,GAAA,EAAD,KACE,yBACEjsB,MAAOyvB,EAAevlB,SAAS,aAAe8lB,EAAoBJ,EAClEt9B,UAAU,WAETzC,IAAMkG,aAAa05B,EAAevlB,SAAS,aAAe4G,EAAc,UAAW,OAEtF,yBAAK9Q,MAA0B,cAAnByvB,EAAiCS,EAAkBD,EAAW39B,UAAU,eAClF,kBAAC,IAAD,CAAkB7P,GAAG,0BAIzB,KACJ,kBAAC,IAAD,CAAMgoC,GAAG,YACP,kBAACwB,GAAA,EAAD,KACE,yBACEjsB,MAA0B,aAAnByvB,EAAgCO,EAAoBJ,EAC3Dt9B,UAAU,WAETzC,IAAMsB,QAA2B,aAAnBs+B,EAAgC3e,EAAc,UAAW,OAE1E,yBAAK9Q,MAA0B,aAAnByvB,EAAgCS,EAAkBD,EAAW39B,UAAU,eACjF,kBAAC,IAAD,CAAkB7P,GAAG,6B,6BCqHlBwlC,gBApQ6B,SAAC,GAMzB,IAAD,0DAWb15B,EAXa,IALjBgiC,kBAKiB,MALJ,EAKI,EAJjBC,EAIiB,EAJjBA,QACAC,EAGiB,EAHjBA,SACAvsC,EAEiB,EAFjBA,SACAikC,EACiB,EADjBA,YAEM9jC,EAAWqgC,cAEX3T,EAAoC4T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcoB,aAC1F2f,EAAsB/L,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcxM,2BAC5EyhB,EAA0BhhC,IAAkBC,yBAAyB,QACrEuX,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAC7E8H,EAAuCyhB,aAC3C,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcxM,2BAKpB,kBAAbyhB,IACTr2B,EAAOhL,KAAKC,MAAMohC,IAGpB,IAAM+D,EAAW/kC,IAAkBC,yBAAyB,oBAA3C,UAAgE0K,SAAhE,aAAgE,EAAMmO,IAEjFi0B,EACkB,IAAtBv1B,EAASmR,UAA6D,SAAnC,OAARnR,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0BrE,cAEvDqG,IAAMqkB,WAAU,WACdzgC,EAASqH,cAAiB,MACzB,CAACrH,EAAUH,IAEd,IAUM8b,GAAQ,CACZgb,MAAO,OACPD,OAAQwV,EACRruC,SAAU,QACVqoC,OAAQ,KACRqG,OAAQ,QACRjW,gBAAiB,QACjBkW,WAAY,OACZhW,QAAS,SACThZ,SAAU,SACVyY,WAAY,QAGRwW,GAAY,CAChB1uB,aAAc,MACduY,gBAAiB,UACjBK,MAAO,SACPD,OAAQ,SACR8U,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAGd,OACE,yBACEttC,GAAG,kBACHud,MAAOA,GACP+wB,cAAe,SAACvoC,GAAD,OAAWgoC,EAAQhoC,IAClCwoC,gBAAiB,kBAAMP,EAAS,qBAG3B,QAAJ,EAAAliC,SAAA,eAAMnF,eAAgBA,IAAYsiB,UAAiE,UAA7C,OAARtQ,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0BxE,wBAErE,kBAAC,IAAD,CAAMwwB,GAAE,0BAAqBl8B,EAAKod,UAAYgd,EAAjB,UAA4Bp6B,SAA5B,iBAA4B,EAAM4hB,mBAAlC,aAA4B,EAAmBzT,KAC1E,yBAAKpK,UAAU,kDACb,0BAAMA,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAMsD,WAAWu9B,EAAoBzH,KAAM,OAE9C,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,oCAIzB,MAmBD,QAAJ,EAAA8L,SAAA,eAAMnF,eAAgBA,IAAYsiB,UAA+D,UAA3C,OAARtQ,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B4M,sBAErE,kBAAC,IAAD,CAAMof,GAAE,yBAAoBl8B,EAAKod,UAAYgd,EAAjB,UAA4Bp6B,SAA5B,aAA4B,EAAMmO,KAC5D,yBAAKpK,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAMsD,WAAWu9B,EAAoBzH,KAAM,OAE9C,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,8BAIzB,MAGD,QAAJ,EAAA8L,SAAA,eAAMnF,eAAgBA,IAAYsiB,UAAYilB,EAE3C,kBAAC,IAAD,CAAMlG,GAAG,KAAK1D,QApFO,WAC3B1iC,EAASyH,cAA0C,IACnDzH,EAASqH,cAAiB,MAmFlB,yBAAK4G,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC5B,kBAAC,IAAD,CAAiB9gC,KAAK,KAAKD,MAAOmT,EAAa+lB,KAAMh5B,KAAM2G,QAE7D,0BAAMtE,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,yBAIzB,MAGD,QAAJ,EAAA8L,SAAA,eAAMnF,eAAgBA,IAAYsiB,UAA2D,UAAvC,OAARtQ,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B7E,kBAErE,kBAAC,IAAD,CAAM6wB,GAAE,qBAAgBrvB,EAASsB,KAC/B,yBAAKpK,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC5B,kBAAC,IAAD,CAAiB9gC,KAAK,KAAKD,MAAOmT,EAAa+lB,KAAMh5B,KAAM2G,QAE7D,0BAAMtE,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,6BAIzB,KAmCN,kBAAC,IAAD,CAAMgoC,GAAE,wBAAsB,QAAJ,EAAAl8B,SAAA,eAAMod,WAAYgd,EAAlB,UAA6Bp6B,SAA7B,iBAA6B,EAAM4hB,mBAAnC,aAA6B,EAAmBzT,KACxE,yBAAKpK,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAMU,eAAemgC,EAAoBzH,KAAM,OAElD,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,+BAOtB,QAAJ,EAAA8L,SAAA,eAAMnF,eAAgBA,IAAYgU,QAAsE,UAAxD,QAAJ,EAAA7O,SAAA,mBAAM4hB,mBAAN,mBAAmB1R,sBAAnB,eAAmCpF,sBAE5E,kBAAC,IAAD,CAAMoxB,GAAE,yCAA0Bl8B,SAA1B,iBAA0B,EAAM4hB,mBAAhC,aAA0B,EAAmBzT,KACnD,yBAAKpK,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAM4F,UAAUi7B,EAAoBzH,KAAM,OAE7C,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,qCAK3B,yBAAK6P,UAAW2+B,KAAwBG,KAO5C,kBAAC,IAAD,CAAM3G,GAAE,oBAAkB,QAAJ,EAAAl8B,SAAA,eAAMod,WAAYgd,EAAlB,UAA6Bp6B,SAA7B,iBAA6B,EAAM4hB,mBAAnC,aAA6B,EAAmBzT,KACpE,yBAAKpK,UAAU,kDACb,0BAAMA,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAM0B,YAAYm/B,EAAoBzH,KAAM,OAE/C,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,0BAM4B,UAA9C,OAAR2Y,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0BjF,2BAA0C,QAAJ,EAAAjL,SAAA,eAAMnF,eAAgBA,IAAYgU,OAE/F,kBAAC,IAAD,CAAMqtB,GAAE,+BAA6B,QAAJ,EAAAl8B,SAAA,eAAMod,WAAYgd,EAAlB,UAA6Bp6B,SAA7B,iBAA6B,EAAM4hB,mBAAnC,aAA6B,EAAmBzT,KAC/E,yBAAKpK,UAAW2+B,KAAwBE,UACtC,0BAAM7+B,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAMc,YAAY+/B,EAAoBzH,KAAM,OAE/C,0BAAM32B,UAAW2+B,KAAwBC,MACvC,kBAAC,IAAD,CAAkBzuC,GAAG,6BAK3B,yBAAK6P,UAAW2+B,KAAwBG,KAM5C,yBACE9+B,UAAU,8BACVy0B,QAvN0B,WAC9B1iC,EAASqH,cAAiB,IAC1BrH,EAASuH,cAAuB,MAuN5B,0BAAM0G,UAAU,OAAO0N,MAAO8wB,IAC3BjhC,IAAMM,aAAaugC,EAAoBzH,KAAM,OAEhD,0BAAM32B,UAAU,QACbye,EAAUoX,IAAgBpX,EAAUia,SCxJhCqG,GA1GiC,SAAC,GAI7B,IAAD,IAHjBd,kBAGiB,MAHJ,EAGI,EAFjBC,EAEiB,EAFjBA,QACAC,EACiB,EADjBA,SAEMpsC,EAAWqgC,cAEX1kB,EAAQ,CACZgb,MAAO,OACPD,OAAQwV,EACRruC,SAAU,QACVqoC,OAAQ,KACRqG,OAAQ,QACRjW,gBAAiB,QACjBkW,WAAY,OACZhW,QAAS,SACThZ,SAAU,UAGNzG,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAC7EktB,EAAkC3D,aAAY,SAACllB,GAAD,OAAsBA,EAAMkS,iBAAiBvD,aAhBhF,EAiBmD3N,IAAMkb,SAAiBvgB,EAASsB,IAjBnF,mBAiBkB40B,GAjBlB,WAyBjB7wB,IAAMqkB,WAAU,WACdwM,EAA8BhJ,EAAeiJ,WAAU,SAACtO,GAAD,OAA8B,OAAPA,QAAO,IAAPA,OAAA,EAAAA,EAASvmB,OAAT,OAAgBtB,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAUsB,UACvG,CAACtB,EAAUktB,IAEd,IAoBMrC,EAAW,CACftL,gBAAiB,QACjB5qB,MAAO,UACPkrB,OAAQ,OACRpZ,SAAU,SACVgZ,QAAS,EACTD,OAAQ,EACRI,MAAO,QAGHwW,EAAsBlJ,EAAelnB,KAAI,SAACqwB,EAAoBpwB,GAClE,OAAiB,OAAbowB,QAAa,IAAbA,OAAA,EAAAA,EAAe/0B,MAAOtB,EAASsB,IAG/B,oCACE,kBAACsvB,EAAA,EAAD,KACE,kBAACpB,EAAA,EAAD,CAGE7D,QAAS,kBAvCctkC,EAuCiB,OAACgvC,QAAD,IAACA,OAAD,EAACA,EAAe/0B,GArClErY,EAASsH,cAA4B,SAerC/H,IAAkBE,uBAAuB,iBAAkBrB,EAAG6M,YAjB9B,IAAC7M,GAwCvBud,MAAOimB,GAEP,yBAAK3zB,UAAU,sCACb,0BAAMA,UAAU,QACbzC,IAAMgH,WAAW,YAAa,OAEjC,0BAAMvE,UAAU,4BAAhB,OACGm/B,QADH,IACGA,OADH,EACGA,EAAe72B,SAMvByG,KAAwB,OAAdinB,QAAc,IAAdA,OAAA,EAAAA,EAAgBxd,QAAS,EAAI,6BAAS,SAQzD,OACE,yBACEroB,GAAG,uBACHud,MAAOA,EACP+wB,cAAe,SAACvoC,GAAD,OAAWgoC,EAAQhoC,IAClCwoC,gBAAiB,kBAAMP,EAAS,wBAE/Be,ICTQE,GArF4B,SAAC,GAKxB,IAAD,IAJjBnB,kBAIiB,MAJJ,EAII,EAHjBC,EAGiB,EAHjBA,QACAC,EAEiB,EAFjBA,SACArI,EACiB,EADjBA,aAEMrX,EAAoC4T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcoB,aAE1FsY,EAAoB,SAAC5gC,GAEzB,OAAQA,GACN,IAAK,UACH,OAAO6gC,IACT,IAAK,UACH,OAAOC,IACT,IAAK,cACH,OAAOC,IACT,IAAK,eACH,OAAOC,IACT,IAAK,aACH,OAAOC,IACT,IAAK,6CACH,OAAOC,KACT,IAAK,6CACH,OAAOC,IACT,IAAK,qBACH,OAAOC,KACT,IAAK,6CACH,OAAOC,IACT,IAAK,qBACH,OAAOC,IACT,IAAK,eACH,OAAOC,KACT,QACE,MAAO,KAIP2H,EAAYjrB,OAAOuD,KAAK8G,GAAW3P,KAAI,SAACwB,EAAcvB,GAAf,OAC3C,yBAAKzZ,IAAKyZ,EAAO0lB,QAAS,kBAAMqB,EAAaxlB,KAC3C,yBAAKtQ,UAAU,+BACb,0BAAMA,UAAU,iCAAiC0N,MAAO,CAACua,aAAc,IACrE,yBACE6P,IAAKf,EAAkBtY,EAAUnO,IACjCtQ,UAAU,OACVyoB,OAAO,OACPC,MAAM,OACNqP,IAAI,YAEN,0BAAMrqB,MAAO,CAACob,UAAW,IACtBrK,EAAUnO,MAKhBvB,IAAUqF,OAAOuD,KAAK8G,GAAWjG,OAChC,6BACA,SAIA9K,EAAQ,CACZgb,MAAO,OACPD,OAAQwV,EACRruC,SAAU,QACVqoC,OAAQ,KACRqG,OAAQ,QACRjW,gBAAiB,QACjBkW,WAAY,OACZhW,QAAS,SACThZ,SAAU,UAGZ,OACE,yBACEpf,GAAG,iBACHud,MAAOA,EACP+wB,cAAe,SAACvoC,GAAD,OAAWgoC,EAAQhoC,IAClCwoC,gBAAiB,kBAAMP,EAAS,mBAE/BkB,I,UCvBQC,GA7DmC,SAAC,GAI/B,IAAD,IAHjBrB,kBAGiB,MAHJ,EAGI,EAFjBC,EAEiB,EAFjBA,QACAC,EACiB,EADjBA,SAEMpsC,EAAWqgC,cACX3iC,EAAmB8vC,cAGnB7xB,EAAQ,CACZgb,MAAO,OACPD,OAAQwV,EACRruC,SAAU,QACVqoC,OAAQ,KACRqG,OAAQ,QACRjW,gBAAiB,QACjBkW,WAAY,OACZhW,QAAS,SACThZ,SAAU,UAGN+tB,EAAc,CAClBjV,gBAfkBgK,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAgBxE/gB,MAAO,QACPkrB,OAAQ,EACR7Y,aAAc,GACdP,SAAU,GACVwuB,cAAe,EACfyB,gBAAiB,kCACjBpX,UAAW,kCACXM,MAAO,OAGH/3B,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpEmY,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAC7EoI,EAAiBmhB,aAAY,SAACllB,GAAD,OAAsBA,EAAM0S,cAAc3O,UAO7E,OACE,yBACE/gB,GAAG,iCACHud,MAAOA,EACP+wB,cAAe,SAACvoC,GAAD,OAAWgoC,EAAQhoC,IAClCwoC,gBAAiB,kBAAMP,EAAS,gCAEhC,wBAAIn+B,UAAU,iCACZ,kBAAC,IAAD,CAAkB7P,GAAG,6CADvB,KAGA,yBAAK6P,UAAU,sCACb,kBAACs4B,EAAA,EAAD,CAAQ5qB,MAAO4vB,EAAa7I,QAhBb,WACnB1iC,EAASw6B,aAA8B57B,EAAKmY,EAASsB,GAAGpN,WAAYkU,EAAO9G,GAAGpN,WAAYvN,IAC1FsC,EAASwH,cAAqC,MAexC,kBAAC,IAAD,CAAkBpJ,GAAG,iDCnElBsvC,GAA0B,SAACxU,EAAkByU,GACxD,IAGIjX,EAAS,EA6Eb,MA3EiB,aAAbwC,IAE4C,SAA1CyU,EAAe/3B,wBAA6E,SAAxC+3B,EAAe3mB,uBACrE0P,GARkB,MAU0B,SAA1CiX,EAAe/3B,wBAA6E,SAAxC+3B,EAAe3mB,uBACrE0P,GAVqB,MAaqB,SAAxCiX,EAAe3mB,sBAA6E,SAA1C2mB,EAAe/3B,yBACnE8gB,GAfkB,MAiBwB,SAAxCiX,EAAe3mB,sBAA6E,SAA1C2mB,EAAe/3B,yBACnE8gB,GAjBqB,MAqBW,QAA9BiX,EAAeC,aACjBlX,GAvBkB,MA2BqB,SAArCiX,EAAe94B,oBACjB6hB,GA3BqB,MA+BvBA,GAhCoB,KAmC2B,SAA3CiX,EAAex4B,0BAIjBuhB,GAvCkB,MAoClBA,GAnCqB,KA2CvBA,GA5CoB,KA+CpBA,GAAU,KAGK,WAAbwC,IAEFxC,GApDoB,KAuDpBA,GAtDuB,KAyDkB,SAArCiX,EAAe94B,oBACjB6hB,GA1DqB,MA8DqB,SAAxCiX,EAAe34B,uBACjB0hB,GAhEkB,MAoEpBA,GApEoB,KAuEpBA,GAtEuB,KAyEvBA,GA1EoB,MA8EtBA,GAAU,K,oBCcGmX,GA7EwC,SAAC,GAIpC,IAAD,MAHjB3B,kBAGiB,MAHJ,EAGI,EAFjBC,EAEiB,EAFjBA,QACAC,EACiB,EADjBA,SAEMnwB,EAAOC,eACPlc,EAAWqgC,cACX3iC,EAAmB8vC,cAGnB7xB,EAAQ,CACZgb,MAAO,OACPD,OAAQwV,EACRruC,SAAU,QACVqoC,OAAQ,KACRqG,OAAQ,QACRjW,gBAAiB,QACjBkW,WAAY,OACZhW,QAAS,SACThZ,SAAU,UAGN+tB,EAAc,CAClBjV,gBAfkBgK,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcmB,eAgBxE/gB,MAAO,QACPkrB,OAAQ,EACR7Y,aAAc,GACdP,SAAU,GACVwuB,cAAe,EACfyB,gBAAiB,kCACjBpX,UAAW,kCACXM,MAAO,OAGH/3B,EAAc0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OACpEmY,EAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAC7EoI,EAAiBmhB,aAAY,SAACllB,GAAD,OAAsBA,EAAM0S,cAAc3O,UAEvEuG,EAA2C4a,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc7F,YACjGA,EAAWD,aAAiB,OAACzO,QAAD,IAACA,OAAD,EAACA,EAAUmC,SAAUwM,GAQvD,OACE,yBACEtnB,GAAG,sCACHud,MAAOA,EACP+wB,cAAe,SAACvoC,GAAD,OAAWgoC,EAAQhoC,IAClCwoC,gBAAiB,kBAAMP,EAAS,qCAEhC,wBAAIn+B,UAAU,6CACZ,kBAAC,IAAD,CAAkB7P,GAAG,kDADvB,KAGE2Y,GAAgE,UAA5C,OAARA,QAAQ,IAARA,GAAA,UAAAA,EAAUqD,sBAAV,eAA0B5E,wBACtC,yBAAKvH,UAAU,oDAAoD0N,MAAO,CAAE6B,SAAU,KACpF,0BAAMvP,UAAU,QAAhB,UACMgO,EAAKoB,cAAc,CAACjf,GAAI,6CAD9B,aAC+EqnB,GAD/E,OAC0FO,aAAuB,OAACjP,QAAD,IAACA,OAAD,EAACA,EAAUyB,QAD5H,aACwIqO,aAAyB9P,GADjK,SAQJ,yBAAK9I,UAAU,sCACb,kBAACs4B,EAAA,EAAD,CAAQ5qB,MAAO4vB,EAAa7I,QA1Bb,WACnB1iC,EAASu7B,aAA8B38B,EAAKmY,EAASsB,GAAGpN,WAAYkU,EAAO9G,GAAGpN,WAAYvN,IAC1FsC,EAASyH,cAA0C,MAyB7C,kBAAC,IAAD,CAAkBrJ,GAAG,sDCjFhB0vC,GAJ2B,SAACpX,GACzC,OAAO,IAAgB,GAATA,GCqfDqX,GArdO,WAAO,IAAD,gBA8BtB7jC,EA7BElK,EAAgBqgC,cAChB3iC,EAAmB8vC,cACnB3tC,EAAqBmuC,cAHD,EAIF3W,eAJE,mBAInBV,EAJmB,KAIZD,EAJY,KAMpBuX,EAAW3N,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc9M,YAGjE5f,EAAM0hC,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAc1sB,OATxC,EAUKwd,IAAMkb,SAAiB/3B,IAAkBC,yBAAyB,SAVvE,mBAUnBskC,EAVmB,KAUNoK,EAVM,KAWpBC,EAAgB7N,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcoB,aACtEF,EAAoB8T,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAckB,aAC1EM,EAA0BwT,aAAY,SAACllB,GAAD,OAAsBA,EAAMkQ,cAAcwB,mBAb5D,EAegB1Q,IAAMkb,UAAkB,GAfxC,mBAenB8W,EAfmB,KAeJC,EAfI,KAkBpBnhB,EAAoF,SAAlE3tB,IAAkBC,yBAAyB,mBAlBzC,EAoBU4c,IAAMkb,UAAS,GApBzB,mBAoBnBgX,EApBmB,KAoBPC,EApBO,OAuBwBnyB,IAAMkb,SAASX,EAAQ7Q,MAvB/C,oBAuBnB8kB,GAvBmB,MAuBAC,GAvBA,MAwBpBtK,GAA0BhhC,IAAkBC,yBAAyB,QAGrEuqB,GAA6BuW,aAAY,SAACllB,GAAD,OAAsBA,EAAMkS,iBAAiBvD,aACtFhT,GAAqBupB,aAAY,SAACllB,GAAD,OAAsBA,EAAMsS,gBAAgB3W,YAI3D,kBAAbwpB,KACTr2B,EAAOhL,KAAKC,MAAMohC,KAGpBnkB,IAAMqkB,WAAU,WACX3T,GACD9sB,EAASse,YAAuBwlB,GAAehX,MAEhD,CAACgX,EAAahX,IAEjB1Q,IAAMqkB,WAAU,WACdoK,GAAqBlU,EAAQ7Q,QAC5B,CAAC6Q,EAAOD,IAEX,IAgBM8X,GAhBiB,SAAjBC,IACJ,OAAI/xB,OAAOnd,IAAkBC,yBAAyB,QAAUuL,KAAKC,OACnE0jC,YAAW,WACTH,GAAc,GACdE,MACC,OACI,IAGPC,YAAW,WACVH,GAAc,GACdE,MACE,OACI,GAGmBA,GAC9BryB,IAAMqkB,WAAU,WACVvT,GAAmBshB,IACrBxuC,EAASC,aAAgBrB,EAAKlB,GAAS,MAExC,CAAC4wC,IAEJlyB,IAAMqkB,WAAU,WACdzgC,EAASye,iBACR,CAACze,IAEJ,IAAM+jC,GAAe,SAAC4K,GACpBT,EAAQS,GACRpvC,IAAkBE,uBAAuB,OAAQkvC,GACjD3uC,EAASse,YAAuBqwB,IAE5B/D,IACF5qC,EAASuH,cAAuB,KAI9Bs8B,GAAc,WAClB7jC,EAASC,aAAgBrB,EAAKlB,IAC9BgM,gBAGIklC,GACJ,kBAACC,EAAA,EAAIC,KAAL,CAAUvrC,IAAI,UAAU0K,UAAU,wBAAwBy0B,QAASmB,GAAakL,cAAY,eAC1F,kBAAC,IAAD,CAAiBpjC,KAAK,KAAKD,MAAM,QAAQE,KAAM2G,QAM7Co4B,GAAa,SAACvgC,EAAkBC,EAAkBC,GACtDtK,EAASmK,aAAevL,EAAKwL,EAAUC,EAAUC,EAAY5M,KAjGrC,GAsGQ0e,IAAMkb,UAAkB,GAtGhC,qBAsGnB0X,GAtGmB,MAsGRC,GAtGQ,MAwGpBC,GAAe,CACnB,CACEC,aAAc,YACdC,YAAY,EACZvC,KAAM,aACNjhC,KAAM,IAAIyjC,IAAS,OAAQ59B,IAAa,KAAM,OAAQ,WACtD69B,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,eAEnC,CACE+wC,aAAc,kBACdC,YAAY,EACZvC,KAAM,aACNjhC,KAAM,IAAIyjC,IAAS,OAAQh+B,KAAS,KAAM,OAAQ,WAClDi+B,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,qBAEnC,CACE+wC,aAAc,gBACdC,YAAY,EACZvC,KAAM,kBACNjhC,KAAM,IAAIyjC,IAAS,OAAQE,IAAqB,KAAM,OAAQ,WAC9DD,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,mBAEnC,CACE+wC,aAAc,SACdC,YAAY,EACZvC,KAAM,UACNjhC,KAAM,IAAIyjC,IAAS,OAAQG,KAAW,KAAM,OAAQ,WACpDF,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,YAEnC,CACE+wC,aAAc,oBACdC,YAAY,EACZvC,KAAM,gBACNjhC,KAAM,IAAIyjC,IAAS,OAAQI,IAAW,KAAM,OAAQ,WACpDH,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,uBAEnC,CACE+wC,aAAc,SACdC,YAAY,EACZvC,KAAM,mBACNjhC,KAAM,IAAIyjC,IAAS,OAAQK,KAAY,KAAM,OAAQ,WACrDJ,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,YAEnC,CACE+wC,aAAc,wBACdC,YAAY,EACZvC,KAAM,yBACNjhC,KAAM,IAAIyjC,IAAS,OAAQM,IAAgB,KAAM,OAAQ,WACzDL,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,2BAEnC,CACE+wC,aAAc,mBACdC,YAAY,EACZvC,KAAM,mBACNjhC,KAAM,IAAIyjC,IAAS,OAAQO,IAAa,KAAM,OAAQ,WACtDN,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,sBAEnC,CACE+wC,aAAc,eACdC,YAAY,EACZvC,KAAM,UACNjhC,KAAM,IAAIyjC,IAAS,OAAQQ,IAAQ,KAAM,OAAQ,WACjDP,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,kBAEnC,CACE+wC,aAAc,UACdC,YAAY,EACZvC,KAAM,WACNjhC,KAAM,IAAIyjC,IAAS,OAAQS,IAAQ,KAAM,OAAQ,WACjDR,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,aAEnC,CACE+wC,aAAc,kBACdC,YAAY,EACZvC,KAAM,YACNjhC,KAAM,IAAIyjC,IAAS,OAAQ19B,IAAe,KAAM,OAAQ,WACxD29B,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,qBAEnC,CACE+wC,aAAc,2BACdC,YAAY,EACZvC,KAAM,cACNjhC,KAAM,IAAIyjC,IAAS,OAAQU,IAAW,KAAM,OAAQ,WACpDT,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,8BAEnC,CACE+wC,aAAc,WACdC,YAAY,EACZvC,KAAM,mBACNjhC,KAAM,IAAIyjC,IAAS,OAAQpiC,IAAQ,KAAM,OAAQ,WACjDqiC,WAAY,kBAAC,IAAD,CAAkBlxC,GAAG,eAQ/B4xC,GACJ,kBAACC,EAAA,EAAD,CAAO9P,KAAM6O,GAAWlN,OAHD,kBAAMmN,IAAa,KAIxC,kBAACgB,EAAA,EAAMhO,OAAP,CAAcC,aAAW,GACvB,kBAAC+N,EAAA,EAAM9N,MAAP,KACE,kBAAC,IAAD,CAAkB/jC,GAAG,yBAGzB,kBAAC6xC,EAAA,EAAM7N,KAAP,KACE,kDACA,2BACG5V,KAMH0jB,GACJ,kBAACvI,EAAA,EAAD,CAAKhsB,MAAK,eAAOya,IAAP,CAAkBM,OAAQ,KAAMzoB,UAAU,+BAClD,8BACGue,IAKD2jB,GAAmBjjB,IAAoBshB,GAC3C,kBAAC,IAAD,CACEU,aAAcA,GACdpI,KAAM30B,IACNi+B,cAAe,GACfhC,cAAeA,EACfiC,gBAAiBxwC,EAASC,SAC1BwwC,eAnCoB,kBAAMrB,IAAa,IAoCvCsB,cAAY,IAEZ,KAGEjd,GAAcgN,aAAY,SAACllB,GAAD,OAAsBA,EAAMuY,yBAAyBL,eAC/EC,GAAyB+M,aAAY,SAACllB,GAAD,OAAsBA,EAAMuY,yBAAyBJ,0BAC1FC,GAAoB8M,aAAY,SAACllB,GAAD,OAAsBA,EAAMuY,yBAAyBH,qBACrFgd,GAAiClQ,aAAY,SAACllB,GAAD,OAAsBA,EAAMuY,yBAAyBF,mCAClGgd,GAAsCnQ,aAAY,SAACllB,GAAD,OAAsBA,EAAMuY,yBAAyBD,wCAEzGgd,GAAe,GAEbC,GAAc,SAACxsC,GACnBusC,GAAQtlC,KAAKjH,EAAMysC,QAGfnP,GAAe,SAACoP,GAChBH,GAAQ,GAAKA,GAAQA,GAAQjqB,OAAS,KAC3B,mBAAToqB,EACF7wC,EAASqH,cAAiB,IACR,uBAATwpC,EACT7wC,EAASsH,cAA4B,IACnB,kBAATupC,EACT7wC,EAASuH,cAAuB,IACd,+BAATspC,EACT7wC,EAASwH,cAAqC,IAC5B,oCAATqpC,GACT7wC,EAASyH,cAA0C,KAIvDipC,GAAU,IAiBNI,GAEJ,yBAAK7iC,UAAU,uBAAuB0N,MAAO,CAAEuqB,OAAQ,OAyDnD6K,GAA2B,CAC/BC,iBAAkB,CAChB1qB,EAAG,UAEL2qB,WAAY,CACVC,SAAU,SACVC,cAAe,MAInB,OAAOvyC,GAAyC,IAAjCyjB,OAAOuD,KAAKqoB,GAAUxnB,QAAiBqG,EACpD,kBAAC,IAAD,CAAcskB,OAAQtN,GAAehX,EAAiBukB,SAAUpD,GApD1C,WACtB,GAAI/jC,GAAQgjB,IAAoBshB,GAAc,CAC5C,IAAK5D,IAAqB1gC,EAAKnF,cAAgBA,IAAY4mB,MACzD,OAAO,EAET,GAAIif,IAAqB1gC,EAAKnF,cAAgBA,IAAY4mB,MACxD,OAAO,EAIX,OAAO,EA2CJ2lB,GAEC,kBAAC,IAAD,CACExK,KAAMD,GACN0K,UAAWpD,EACXqD,eAAgB1N,GAAehX,EAC/BI,gBAAiBA,IAAoBshB,GACrCzK,aAAcA,GACd0N,sBApVmB,kBAAMpD,GAAkBD,IAqV3CQ,WAAYA,KAEZ,KAxCF1kC,GAAQgjB,IAAoBshB,IAC1B5D,IAAqB1gC,EAAKnF,cAAgBA,IAAY4mB,MAwCvC,kBAAC,GAAD,CAAiBzhB,KAAMA,IAAW,KACrD,yBACE+D,UAAS,uCAAoCmgC,EAAgB,GAAK,iBAElEsD,cArG0B,WAC1Bpe,GACFtzB,EAASqH,cAAiB,IACjBksB,GACTvzB,EAASsH,cAA4B,IAC5BksB,GACTxzB,EAASuH,cAAuB,IACvBipC,GACTxwC,EAASwH,cAAqC,IACrCipC,IACTzwC,EAASyH,cAA0C,MA6FhDuoC,GAlFD9lC,GAAQgjB,IAAoBshB,IAC1BtkC,EAAKnF,cAAgBA,IAAY4mB,MAkFlBwkB,GAAmB,KAElCvF,KAAsB1gC,GAAU0gC,IAA2C,cAAlB,QAAJ,EAAA1gC,SAAA,eAAMnF,cAAgC6lC,IAA2C,YAAlB,QAAJ,EAAA1gC,SAAA,eAAMnF,aAEtH,oCACE,kBAAC,IAAD,CACE4sC,QAASZ,GACTp1B,MAAO,CAAC+a,OAAQ,qBAAsBC,MAAO,SAE7C,yBAAK1oB,UAAU,gBACb,kBAAC,GAAD,CACEif,gBAAiBA,IAAoBshB,GACrC7D,WAAYA,GACZjtC,QAASA,MAIb41B,IACFC,IACAC,IACAgd,IACAC,GAAuCK,GAAS,MAE1B,WAAlB,QAAJ,EAAA5mC,SAAA,eAAMnF,aACR,kBAAC,IAAD,CAA4B4W,MAAO,CAAC+a,OAAQ,qBAAsBC,MAAO,SACvE,yBAAK1oB,UA/DR/D,GAAQA,EAAKnF,cAAgBA,IAAY4mB,QAAWzhB,EAChD,eAGF,GA2DgCyR,MAAO,CAAE8qB,SAAU,WAChD,kBAAC,GAAD,CACEvZ,gBAAiBA,IAAoBshB,GACrC7D,WAAYA,GACZjtC,QAASA,EACTomC,YAAaA,MAKnB,yBAAKnoB,MAAO,CAAEgb,MAAO,OAAQwP,SAAU,OA7FzCj8B,GAAQgjB,IAAoBshB,KACzB5D,IAAqB1gC,EAAKnF,cAAgBA,IAAY4mB,MA+FnD,kBAAC,GAAD,CACEkY,YAAaA,GACbC,YAAaA,GAAehX,EAC5BJ,UAAWyhB,EACXpK,aAAcA,KAEd,KACJ,kBAAC,IAAD,CACE4N,QAASZ,GACTp1B,MAAO,CAAC+a,OAAQ,qBAAsBC,MAAO,SAE7C,kBAAC,GAAD,CACEzJ,gBAAiBA,IAAoBshB,GACrC7D,WAAYA,GACZjtC,QAASA,IAGTwvB,IAAoBshB,GAAe0B,GAAsB,QAKnE,kBAAC,IAAD,MACA,kBAAC,GAAD,CAEEhE,WAAY5Y,GAAqC,cAAlB,QAAJ,EAAAppB,SAAA,eAAMnF,aAA6B2oC,GAAuB,UAACxjC,SAAD,aAAC,EAAMnF,YAAP,OAAoBgS,SAApB,IAAoBA,QAApB,EAAoBA,GAAUqD,gBAAkBszB,GAAuB,UAACxjC,SAAD,aAAC,EAAMnF,YAAP,UAAoBmF,SAApB,iBAAoB,EAAM4hB,mBAA1B,aAAoB,EAAmB1R,gBAAmB,EACtN+xB,QAASwE,GACTvE,SAAU3K,GACVqC,YAAaA,GAAehX,KAEpB,OAAT/C,SAAS,IAATA,QAAA,EAAAA,GAAWtD,QAAS,EAEnB,kBAAC,GAAD,CACEylB,WAAY3Y,GAAyBua,IAA2C,OAAT/jB,SAAS,IAATA,QAAA,EAAAA,GAAWtD,QAAS,GAAK,EAChG0lB,QAASwE,GACTvE,SAAU3K,KAEV,KACJ,kBAAC,GAAD,CACEyK,WAAY1Y,GAAqB,IAAO,EACxC2Y,QAASwE,GACTvE,SAAU3K,GACVsC,aAAcA,KAEhB,kBAAC,GAAD,CACEmI,WAAYsE,GAAiC,IAAM,EACnDrE,QAASwE,GACTvE,SAAU3K,KAEZ,kBAAC,GAAD,CACEyK,WAAYuE,GAAsC,IAAM,EACxDtE,QAASwE,GACTvE,SAAU3K,MAGZ,M,OCveNmQ,IAASzK,OACP,kBAAC,IAAD,CAAUpnC,MAAOA,KACf,kBAAC,IAAD,KACE,kBAAC,GAAD,QAGJ8xC,SAASC,eAAe,W","file":"static/js/main.43bcbf4b.chunk.js","sourcesContent":["import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { createBrowserHistory } from 'history';\nimport { toast } from 'react-toastify';\nimport { AxiosResponse } from 'axios';\nimport store from '../../redux/store';\nimport { logoutUserAsync } from '../../redux/actions/auth';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nconst history = createBrowserHistory();\n\nconst bottomRightToastPosition = { position: toast.POSITION.BOTTOM_RIGHT };\n\ninterface IError {\n Message: string;\n Code: string;\n Type: string;\n}\n// TODO переделать все на новое\nconst throwErrorMessageNew = (error: IError): void => {\n toast.error(, bottomRightToastPosition);\n};\n\nfunction throwErrorMessage(e: Error): void {\n toast.error(, bottomRightToastPosition);\n}\n\nfunction throwSuccessMessage(message: string, values?: any): void {\n if (values) {\n toast.success(, bottomRightToastPosition);\n } else {\n toast.success(, bottomRightToastPosition);\n }\n}\n\nfunction checkResponseForErrors(response: Response, api: string, isText = false): Promise {\n switch (response?.status) {\n // Bad Request\n case 400: {\n // throw Error(`${response.status}: ${response.text()}`);\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Unauthorized\n case 401: {\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n LocalStorageUtils.putValueToLocalStorage('rememberPage', JSON.stringify({page: window.location.pathname, accountType: accountType || ''}));\n store.dispatch(logoutUserAsync(api, history, true));\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Forbidden\n case 403: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Not Found\n case 404: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Internal Server Error\n case 500: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n default: {\n if (isText) {\n return response.text().catch(() => throwErrorMessage(Error('errors.text')));\n }\n return response.json().catch(() => throwErrorMessage(Error('errors.json')));\n }\n }\n}\n\n// TODO новая валидация для axios\nfunction newCheckResponseForErrors(response: AxiosResponse | undefined, api: string): void {\n switch (response?.status) {\n // Unauthorized\n case 401:\n store.dispatch(logoutUserAsync(api, history));\n break;\n\n default: {\n throw new Error(`${JSON.parse(response?.data?.Code)}: ${response?.data?.Message}`);\n }\n }\n}\n\nconst Errors = {\n throwErrorMessage,\n throwSuccessMessage,\n checkResponseForErrors,\n newCheckResponseForErrors,\n throwErrorMessageNew\n};\n\nexport default Errors;\n","import { getJwt } from '../redux/actions/auth';\nimport { RequestStatus, RequestType } from '../types/requestTypes';\n\nexport enum Method {\n GET = 'GET',\n POST = 'POST'\n}\n\nconst headersBuilder = (method: Method, body?: unknown): RequestInit => {\n return {\n method,\n body: body ? JSON.stringify(body) : undefined,\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${getJwt()}`\n }\n };\n};\n\nexport const getRequestType = (request: any, translationKey?: boolean): string => {\n switch (request.Type) {\n case RequestType.ChangeBalance:\n if (request.Amount < 0) {\n return translationKey ? 'requests.type.Withdrawal' : 'Withdrawal';\n }\n \n return translationKey ? 'requests.type.Deposit' : 'Deposit';\n case RequestType.ChangeCredit:\n if (request.Amount < 0) {\n return translationKey ? 'requests.type.CreditOut' : 'CreditOut';\n }\n\n return translationKey ? 'requests.type.CreditIn' : 'CreditIn';\n case RequestType.ChangeFeeAccountsInfo:\n return translationKey ? 'requests.type.EditFeeAccountsInfo' : 'Edit Fee Accounts Info';\n case RequestType.Attach:\n return translationKey ? 'requests.type.Connect' : 'Connect';\n case RequestType.Detach:\n return translationKey ? 'requests.type.Disconnect' : 'Disconnect';\n default:\n return translationKey ? `requests.filters.byType.${request.Type.charAt(0).toLowerCase() + request.Type.slice(1)}` : request.Type;\n }\n};\n\nexport const getRequestStatus = (request: any, translationKey?: boolean): string => {\n switch (request.Status) {\n case RequestStatus.Approved:\n return translationKey ? 'requests.status.approved' : 'Approved';\n case RequestStatus.Canceled:\n return translationKey ? 'requests.status.canceled' : 'Canceled';\n case RequestStatus.Completed:\n return translationKey ? 'requests.status.completed' : 'Completed';\n case RequestStatus.Error:\n return translationKey ? 'requests.status.error' : 'Error';\n case RequestStatus.Executing:\n return translationKey ? 'requests.status.executing' : 'Executing';\n case RequestStatus.New:\n return translationKey ? 'requests.status.new' : 'New';\n case RequestStatus.Planned:\n return translationKey ? 'requests.status.planned' : 'Planned';\n case RequestStatus.Rejected:\n return translationKey ? 'requests.status.rejected' : 'Rejected';\n default:\n return translationKey ? '' : '';\n }\n};\n\nexport const getBootstrapTextColor = (type: string): string => {\n switch (type) {\n case RequestStatus.Executing:\n case RequestStatus.Planned: {\n return 'text-warning'\n }\n case RequestStatus.Approved:\n case RequestStatus.Completed: {\n return 'text-success'\n }\n case RequestStatus.Rejected:\n case RequestStatus.Error:\n case RequestStatus.Canceled: {\n return 'text-danger'\n }\n default: {\n return 'text-dark';\n }\n }\n}\n\nexport default headersBuilder;\n","export const SET_LOADING_STATUS = 'SET_LOADING_STATUS ';\nexport const CHECK_MT_SERVERS_UPDATE = 'CHECK_MT_SERVERS_UPDATE';\nexport const SET_LOADING_STATUS_DOWNLOAD = 'SET_LOADING_STATUS_DOWNLOAD';\nexport const SET_LOADING_STATUS_OPEN_ORDERS = 'SET_LOADING_STATUS_OPEN_ORDERS';\nexport const SET_LOADING_STATUS_CLOSED_ORDERS = 'SET_LOADING_STATUS_CLOSED_ORDERS';\nexport const SET_LOADING_STATUS_BALANCE_OPERATIONS = 'SET_LOADING_STATUS_BALANCE_OPERATIONS';\nexport const SET_LOADING_STATUS_CONNECTED_INVESTORS = 'SET_LOADING_STATUS_CONNECTED_INVESTORS';\n\nexport type SetLoadingStatusAction = {\n type: string;\n status: boolean;\n}\n\nexport const setLoadingStatus = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS,\n status\n }\n};\n\nexport const setLoadingStatusDownload = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_DOWNLOAD,\n status\n }\n};\n\nexport const checkMtServersUpdate = (status: boolean): SetLoadingStatusAction => {\n return {\n type: CHECK_MT_SERVERS_UPDATE,\n status\n }\n};\n\nexport const setLoadingStatusOpenOrders = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_OPEN_ORDERS,\n status\n }\n};\n\nexport const setLoadingStatusClosedOrders = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_CLOSED_ORDERS,\n status\n }\n};\n\nexport const setLoadingStatusBalanceOperations = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_BALANCE_OPERATIONS,\n status\n }\n};\n\nexport const setLoadingStatusConnectedInvestors = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_CONNECTED_INVESTORS,\n status\n }\n};\nexport default setLoadingStatus;\n","function putValuesToLocalStorage(key: string, values: string[]): void {\n localStorage.setItem(key, values.join(' '));\n}\n\nfunction putValueToLocalStorage(key: string, value: string): void {\n localStorage.setItem(key, value);\n}\n\nfunction getValueFromLocalStorage(key: string): string | null {\n return localStorage.getItem(key);\n}\n\nfunction getValuesFromLocalStorage(key: string): string[] | null {\n const searchResult = localStorage.getItem(key);\n return searchResult ? searchResult.split(' ') : null;\n}\n\nfunction removeValueFromLocalStorage(key: string): void {\n localStorage.removeItem(key);\n}\n\nfunction localStorageKeyExists(key: string): boolean {\n return localStorage.getItem(key) !== null;\n}\n\nfunction setValuesOnEvent(eventKey: string, onEvent: () => void): void {\n window.onstorage = (event: StorageEvent) => {\n if (event.key === eventKey) {\n onEvent();\n }\n };\n\n}\n\nconst LocalStorageUtils = {\n putValuesToLocalStorage,\n getValuesFromLocalStorage,\n setValuesOnEvent,\n putValueToLocalStorage,\n removeValueFromLocalStorage,\n localStorageKeyExists,\n getValueFromLocalStorage,\n};\n\nexport default LocalStorageUtils;\n","export enum VisibilityToggle {\n Show = 'Show',\n Hide = 'Hide',\n Default = 'Default'\n};\n\nexport enum VisibilityToggleAdmin {\n Show = 'Show',\n Hide = 'Hide'\n};\n\nexport enum StateToggle {\n On = 'On',\n Off = 'Off',\n Default = 'Default'\n}\n\nexport enum StateToggleAdmin {\n On = 'On',\n Off = 'Off'\n}\n\nexport enum StateRequestToggle {\n On = 'On',\n Off = 'Off',\n Request = 'Request',\n Default = 'Default'\n}\n\nexport enum StateRequestToggleAdmin {\n On = 'On',\n Off = 'Off',\n Request = 'Request'\n}\n\nexport enum BooleanToggle {\n True = 'true',\n False = 'false'\n}","export interface User {\n ViewOnly: boolean;\n TokenType: string;\n Token: string;\n ExpiresIn: number;\n Id: number;\n AccountType: AccountType;\n LinkToken: string;\n Name: string;\n Username: string;\n AccountOptions: any;\n AccountInfo: any;\n}\n\nexport enum AccountType {\n Admin = 'admin',\n Guest = 'guest',\n Investor = 'investor',\n Master = 'master'\n}","export enum UserType {\n Investor = 'Investor',\n Master = 'Master',\n Admin = 'Admin'\n}\n\nexport enum OrderType {\n Open = 'Open',\n Closed = 'Closed'\n}\n\nexport enum ServerType {\n MT4 = 0,\n MT5 = 1\n}\n\nexport class Server {\n Guid = '';\n Name = '';\n Type = ServerType.MT4;\n TypeStr = 'MT4';\n FreeMarginCoef = 0;\n Enabled = true;\n StatusStr = '';\n}\n\nexport enum BalanceOperationType {\n Connect = 'Connect',\n Disconnect = 'Disconnect',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n Commission = 'Commission',\n BalanceCorrection = 'BalanceCorrection',\n Swap = 'Swap',\n AnnualManagementFee = 'AnnualManagementFee'\n}\n\nexport class PaginationInfo {\n TotalRecords = 0;\n TotalPages = 0;\n CurrentPage = 0;\n RecordsOnPage = 0;\n}\n\nexport class BalanceOperation {\n MtOrderId = 0;\n Id = 0;\n Date = '';\n MasterId = 0;\n InvestorId = 0;\n Type = '';\n Amount = 0;\n Currency = 'USD';\n Comment = '';\n}\n\nexport enum Language {\n EN = 'en',\n RU = 'ru'\n}\n\nexport enum SummaryType {\n Deposits = 'deposits',\n Investments = 'investments',\n Profit = 'profit',\n Volumes = 'volumes',\n Investors = 'investors'\n}\n\nexport class Summary {\n PeriodStartDate = '';\n PeriodEndDate = '';\n Value = 0;\n}\n\nexport enum GraphicsPeriodTypes {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum GraphicsPeriodTypesExt {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year',\n All = 'All'\n}\n\nexport enum AnnualManagementFeeMode {\n ByCurrentBalance = 'ByCurrentBalance',\n ByLastChargeBalance = 'ByLastChargeBalance'\n}\n\nexport class IncentiveAccount {\n Login = 0;\n ServerName? = '';\n IncentiveFee: any = 0;\n ManagementFee: any = 0;\n AnnualManagementFee: any = 0;\n PerLotFee: any = 0;\n PerDealFee: any = 0;\n Mode: any = AnnualManagementFeeMode.ByCurrentBalance;\n}\n\nexport enum PerLotDealFeeMode {\n PerLot = 'PerLot',\n PerDeal = 'PerDeal'\n}\n\nexport class FeeAccountSet {\n [index: string]: any;\n\n Login = '';\n IncentiveFee = 0.0;\n ManagementFee = 0.0;\n AnnualManagementFee = 0.0;\n AnnualManagementFeeMode = AnnualManagementFeeMode.ByCurrentBalance;\n PerLotDealFee = 0.0;\n PerLotDealFeeMode = PerLotDealFeeMode.PerDeal;\n Valid = true;\n}\n\nexport class ChangeAccountModeRequest {\n Mode = 0;\n}\n\nexport enum OrderMode {\n Off = 'Off',\n Percent = 'Percent',\n Money = 'Money',\n FromMM = 'FromMM',\n Default = 'Default'\n}\n\nexport interface ConfigFlags {\n hideRegisterButton: boolean;\n showMmRegistrator: boolean;\n // TODO PAMM-2341 \n // showRequestTab: boolean;\n RequestTab: boolean;\n showOptionLockedWithdrawalsAndDisconnections: boolean;\n showMMsGraphsFromInvestors: boolean;\n showMmEmailToInvestor: boolean;\n showMmInvestorCount: boolean;\n}\n\nexport interface SharedConfig {\n CountCreditInAllocation: boolean;\n CountCreditInWithdrawal: boolean;\n CountCreditInRiskControl: boolean;\n RequestTab: boolean;\n}\n\nexport enum BalanceOperationTypesMasters {\n Connect = 'Connect',\n Disconnect = 'Disconnect',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\n DealTax = 'DealTax',\n Swap = 'Swap',\n BalanceCorrection = 'BalanceCorrection',\n Credit = 'Credit',\n ProfitCorrection = 'Profit Correction',\n CreditCorrection = 'Credit Correction',\n CreditConnect = 'Credit Connect',\n CreditDisconnect = 'Credit Disconnect'\n\n}\n\nexport enum BalanceOperationTypesInvestors {\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\n DealTax= 'DealTax',\n Swap = 'Swap',\n BalanceCorrection = 'BalanceCorrection',\n Credit = 'Credit',\n ProfitCorrection = 'Profit Correction',\n CreditCorrection = 'Credit Correction'\n}\n","export const SET_OPS_MENU_STATUS = 'SET_OPS_MENU_STATUS ';\nexport const SET_LINKED_ACCOUNTS_MENU_STATUS = 'SET_LINKED_ACCOUNTS_MENU_STATUS';\nexport const SET_LANGUAGES_MENU_STATUS = 'SET_LANGUAGES_MENU_STATUS';\nexport const SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS = 'SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS';\nexport const SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS = 'SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS';\n\nexport type SetMobileMenusStatus = {\n type: string;\n status: boolean;\n}\n\nexport const setOpsMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_OPS_MENU_STATUS,\n status\n }\n};\n\nexport const setLinkedAccountsMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_LINKED_ACCOUNTS_MENU_STATUS,\n status\n }\n};\n\nexport const setLanguagesMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_LANGUAGES_MENU_STATUS,\n status\n }\n};\n\nexport const setConnectToMasterConfirmationStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS,\n status\n }\n};\n\nexport const setDisconnectFromMasterConfirmationStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS,\n status\n }\n};\n","export enum RequestType {\n CreateInvestor = 'CreateInvestor',\n CreateMm = 'CreateMm',\n Attach = 'Attach',\n Detach = 'Detach',\n ChangeFeeAccountsInfo = 'ChangeFeeAccountsInfo',\n ChangeBalance = 'ChangeBalance',\n ChangeCredit = 'ChangeCredit',\n Deposit = 'Deposit',\n Withdrawal = 'Withdrawal'\n}\n\nexport enum RequestStatus {\n Approved = 'Approved',\n New = 'New',\n Planned = 'Planned',\n Executing = 'Executing',\n Completed = 'Completed',\n Rejected = 'Rejected',\n Canceled = 'Canceled',\n Error = 'Error'\n}\n\nexport class Request {\n MmId = 0;\n MmName = '';\n MmEmail = '';\n MmLogin = 0;\n MmServer = '';\n Id = 0;\n Type = RequestType.Attach;\n Status = RequestStatus.New;\n TypeCode = 0;\n StatusCode = 0;\n Comment = 0;\n AdminComment = 0;\n SystemComment = 0;\n Info = 0;\n CreatedById = 0;\n CreatedByName = '';\n CreatedByEmail = '';\n AccountId = 0;\n AccountName = '';\n AccountEmail = '';\n CreatedAt = 0;\n ExecutedAt = 0;\n CreatedAtStr = '';\n ExecutedAtStr = '';\n}\n\nexport enum RequestPeriod {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum ChangeBalanceMethod {\n FreeMargin = 'FreeMargin',\n PartialClose = 'PartialClose'\n}\n\nexport enum RequestSchedule {\n Instant = 'Instant',\n Planned = 'Planned'\n}\n","/* eslint-disable @typescript-eslint/ban-types */\nimport axios, { AxiosError, AxiosResponse, AxiosInstance } from 'axios';\nimport LocalStorageUtils from '../utils/local-storage';\n\nclass RestAPI {\n url: string;\n\n tokenName: string;\n\n constructor(tokenName = 'jwt') {\n this.url = LocalStorageUtils.getValueFromLocalStorage('apiUrl') || '';\n this.tokenName = tokenName;\n }\n\n handleSuccess = (response: AxiosResponse): AxiosResponse => response;\n\n handleError = (error: AxiosError): Promise | void => {\n // Errors.newCheckResponseForErrors(error?.response, this.url);\n return Promise.reject(error);\n };\n\n create = (headers?: any): AxiosInstance => {\n const cancel = axios.CancelToken.source();\n const token = localStorage.getItem(this.tokenName);\n const headerAuth = token && { Authorization: `Bearer ${token}` };\n const service = axios.create({\n headers: {\n ...headers,\n ...headerAuth\n },\n cancelToken: cancel.token\n });\n service.interceptors.response.use(this.handleSuccess, this.handleError);\n return service;\n };\n\n get = (path = '', params?: object, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'GET',\n url: `${this.url}${path}`,\n params\n });\n };\n\n post = (path = '', data: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'POST',\n url: `${this.url}${path}`,\n data\n });\n };\n\n put = (path = '', data: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'PUT',\n url: `${this.url}${path}`,\n data\n });\n };\n\n delete = (path = '', params: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'DELETE',\n url: `${this.url}${path}`,\n params\n });\n };\n}\n\nexport default new RestAPI();\n","import { History } from 'history';\nimport { Dispatch } from 'redux';\nimport Cookies from 'universal-cookie';\nimport headersBuilder, { Method } from '../../utils/request';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport Errors from '../../shared/validation/errors';\nimport SERVICE_API from '../../api';\n \nconst cookies = new Cookies();\n\nexport function getJwt(): string | null {\n return cookies.get('jwt')\n}\n\nexport function removeJwt() {\n cookies.remove('jwt')\n}\n\nexport const LOGIN = 'LOGIN';\nexport const LOGOUT = 'LOGOUT';\nexport const LOGIN_START = 'LOGIN_START';\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_RESET_STATE = 'LOGIN_RESET_STATE';\nexport const LOGIN_ERROR = 'LOGIN_ERROR';\n\nexport type AuthAction = {\n type: string;\n user?: any;\n};\nconst loginUserAC = (user: any): AuthAction => ({ type: LOGIN, user });\n\nconst logoutUserAC = (): AuthAction => ({ type: LOGOUT });\n\nconst loginStartAC = (): AuthAction => ({ type: LOGIN_START });\n\nconst loginSuccessAC = (): AuthAction => ({ type: LOGIN_SUCCESS });\n\nconst loginResetStateAC = (): AuthAction => ({ type: LOGIN_RESET_STATE });\n\nconst loginUserAsync = (\n api: string,\n username: string,\n password: string,\n rememberMe: boolean,\n history: History\n) => {\n return (dispatch: Dispatch): void => {\n fetch(\n `${api}/auth/login`,\n headersBuilder(Method.POST, {\n Username: username,\n Password: password,\n rememberMe\n })\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((user: any) => {\n cookies.set('jwt', user.Token, { path: '/', maxAge: user.ExpiresIn * 1000 })\n LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + user.ExpiresIn * 1000).toString()\n );\n delete user.Token;\n LocalStorageUtils.putValueToLocalStorage('accountType', user.AccountType);\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(user));\n const rememberURL = LocalStorageUtils.getValueFromLocalStorage('rememberPage')\n dispatch(loginUserAC(user));\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'true');\n return rememberURL\n })\n .then((rememberURL) => {\n const currentURL = window.location.pathname\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n if(rememberURL && accountType === JSON.parse(rememberURL).accountType && currentURL === '/login') {\n history.push(`${JSON.parse(rememberURL).page}`)\n } \n else if(currentURL !== '/login') {\n history.push(currentURL);\n }\n else {\n history.push('/dashboard');\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nconst loginUserSSOAsync = (\n api: string,\n token: string,\n history: History\n) => {\n return (dispatch: Dispatch): void => {\n fetch(\n `${api}/auth/sso/loginByToken`,\n headersBuilder(Method.POST, {\n Token: token\n })\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((user: any) => {\n cookies.set('jwt', user.Token, { path: '/', maxAge: user.ExpiresIn * 1000 })\n LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + user.ExpiresIn * 1000).toString()\n );\n delete user.Token;\n LocalStorageUtils.putValueToLocalStorage('accountType', user.AccountType);\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(user));\n const rememberURL = LocalStorageUtils.getValueFromLocalStorage('rememberPage')\n dispatch(loginUserAC(user));\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'true');\n return rememberURL\n })\n .then((rememberURL) => {\n const currentURL = window.location.pathname\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n if(rememberURL && accountType === JSON.parse(rememberURL).accountType && currentURL === '/login') {\n history.push(`${JSON.parse(rememberURL).page}`)\n\n } \n else if(currentURL !== '/login') {\n history.push(currentURL);\n }\n else {\n history.push('/dashboard');\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nconst loginUserThunkAC =\n (payload: { Username: string; Password: string }) =>\n async (dispatch: Dispatch): Promise => {\n try {\n await dispatch(loginStartAC());\n const res = await SERVICE_API.AuthAPI.postLogin(payload);\n await LocalStorageUtils.putValueToLocalStorage('jwt', res?.data.Token);\n await LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + res?.data.ExpiresIn * 1000).toString()\n );\n await LocalStorageUtils.putValueToLocalStorage('accountType', res?.data.AccountType);\n await LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(res?.data));\n await dispatch(loginUserAC(res?.data));\n await window.location.replace('/dashboard');\n await dispatch(loginSuccessAC());\n } catch ({ response }) {\n dispatch(loginResetStateAC());\n Errors.throwErrorMessageNew(response?.data);\n }\n };\n\nconst logoutUserAsync = (api: string, history: History, errorAuth?: boolean) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/auth/logout`, headersBuilder(Method.POST))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .then(() => {\n dispatch(logoutUserAC());\n LocalStorageUtils.removeValueFromLocalStorage('accountType');\n LocalStorageUtils.removeValueFromLocalStorage('user');\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n LocalStorageUtils.removeValueFromLocalStorage('linkedIdMobile');\n LocalStorageUtils.removeValueFromLocalStorage('masters');\n LocalStorageUtils.removeValueFromLocalStorage('investors');\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'false');\n if (!errorAuth) {\n LocalStorageUtils.removeValueFromLocalStorage('rememberPage');\n }\n history.push('/login')\n window.location.reload()\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n };\n};\n\nexport { loginUserThunkAC, logoutUserAsync, loginUserAsync, loginResetStateAC, loginUserSSOAsync };\n\nexport default loginUserAsync;\n","import RestAPI from '../restApiService';\n\nclass AuthAPI {\n postLogin = (data: { Username: string; Password: string }): Promise =>\n RestAPI.post('/auth/login', data);\n}\n\nexport default new AuthAPI();\n","import {SizeProp} from '@fortawesome/fontawesome-svg-core';\nimport {\n faAngleDoubleDown,\n faAngleDoubleUp,\n faAngleDown,\n faAngleRight,\n faAngleUp,\n faArrowAltCircleLeft,\n faArrowLeft,\n faArrowsAltH,\n faArrowRight,\n faBars,\n faBell,\n faCalendarAlt,\n faCat,\n faChartArea,\n faCheckSquare,\n faCircle,\n faCircleNotch,\n faClock,\n faCog,\n faCogs,\n faDollarSign,\n faDownload,\n faEllipsisV,\n faExchangeAlt,\n faExclamationTriangle,\n faEye,\n faFileAlt,\n faFilter,\n faHistory,\n faLanguage,\n faLink,\n faLongArrowAltDown,\n faLongArrowAltUp,\n faPencilAlt,\n faPlus,\n faPowerOff,\n faRedo,\n faSave, \n faSearch,\n faSignInAlt,\n faSignOutAlt,\n faSlidersH,\n faSortDown,\n faSquare,\n faSuitcase,\n faTable,\n faTimesCircle,\n faToggleOff,\n faToggleOn,\n faTrash,\n faUnlink,\n faUser,\n faUsers,\n faLongArrowAltRight,\n faAngleLeft\n} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\n\nconst defaultColor = '#8dabc4';\n\nconst DownloadIcon = (color?: string, size?: SizeProp) => ;\nconst LanguageIcon = (color?: string, size?: SizeProp) => ;\nconst FilterIcon = (color?: string, size?: SizeProp) => ;\nconst DollarSignIcon = (color?: string, size?: SizeProp) => ;\nconst DropdownIcon = (color?: string, size?: SizeProp) => ;\nconst FileAltIcon = (color?: string, size?: SizeProp) => ;\nconst PlusIcon = (color?: string) => ;\nconst PencilIcon = (color?: string) => ;\nconst UnlinkIcon = (color?: string) => ;\nconst LinkIcon = (color?: string) => ;\nconst TrashIcon = (color?: string) => ;\nconst PowerOnIcon = (color?: string) => ;\nconst TimesCircleIcon = (color?: string) => ;\nconst OnIcon = (color?: string) => ;\nconst OffIcon = (color?: string) => ;\nconst CogIcon = (color?: string, size?: SizeProp) => ;\nconst CogsIcon = (color?: string, size?: SizeProp) => ;\nconst HistoryIcon = (color?: string, size?: SizeProp) => ;\nconst RoundIcon = (color?: string) => ;\nconst SwitchIcon = (enabled: boolean) => ;\nconst RedoIcon = (color?: string, className?: string) => ;\nconst SaveIcon = (color?: string, className?: string) => ;\nconst AlertIcon = (color?: string, size?: SizeProp) => ;\nconst LoadingCat = (size?: SizeProp) => ;\nconst LoadingSpinner = (size?: SizeProp) => ;\nconst AngleDoubleDownIcon = (color?: string, size?: SizeProp) => ;\nconst AngleDownIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowsAltH = (color?: string, size?: SizeProp) => ;\nconst AngleLeftIcon = (color?: string, size?: SizeProp) => ;\nconst AngleRightIcon = (color?: string, size?: SizeProp) => ;\nconst AngleDoubleUpIcon = (color?: string, size?: SizeProp) => ;\nconst AngleUpIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowUp = (color?: string, size?: SizeProp) => ;\nconst ArrowDown = (color?: string, size?: SizeProp) => ;\nconst ArrowRight = (color?: string, size?: SizeProp) => ;\nconst ArrowAltCircleLeft = (color?: string, size?: SizeProp) => ;\nconst CheckSquareIcon = (color?: string, size?: SizeProp) => ;\nconst SquareIcon = (color?: string, size?: SizeProp) => ;\nconst EyeIcon = (color?: string, size?: SizeProp) => ;\nconst SearchIcon = (color?: string, size?: SizeProp) => ;\nconst SignInIcon = (color?: string, size?: SizeProp) => ;\nconst SignOutIcon = (color?: string, size?: SizeProp) => ;\nconst UserIcon = (color?: string, size?: SizeProp) => ;\nconst UsersIcon = (color?: string, size?: SizeProp) => ;\nconst EllipsisIcon = (color?: string, size?: SizeProp) => ;\nconst ChartAreaIcon = (color?: string, size?: SizeProp) => ;\nconst ExchangeIcon = (color?: string, size?: SizeProp) => ;\nconst SlidersIcon = (color?: string, size?: SizeProp) => ;\nconst SuitcaseIcon = (color?: string, size?: SizeProp) => ;\nconst ClockIcon = (color?: string, size?: SizeProp) => ;\nconst BarsIcon = (color?: string, size?: SizeProp) => ;\nconst BellIcon = (color?: string, size?: SizeProp) => ;\nconst CircleIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowLeftIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowRightIcon = (color?: string, size?: SizeProp) => ;\nconst CalendarIcon = (color?: string, size?: SizeProp) => ;\nconst TableIcon = ;\n\nconst Icons = {\n DownloadIcon,\n LanguageIcon,\n FilterIcon,\n DollarSignIcon,\n PlusIcon,\n FileAltIcon,\n PencilIcon,\n UnlinkIcon,\n TrashIcon,\n CogIcon,\n CogsIcon,\n HistoryIcon,\n RoundIcon,\n SwitchIcon,\n OnIcon,\n OffIcon,\n PowerOnIcon,\n TimesCircleIcon,\n RedoIcon,\n SaveIcon,\n AlertIcon,\n LoadingCat,\n LoadingSpinner,\n AngleDoubleDownIcon,\n ArrowsAltH,\n AngleDownIcon,\n AngleDoubleUpIcon,\n AngleUpIcon,\n AngleLeftIcon,\n AngleRightIcon,\n ArrowDown,\n ArrowAltCircleLeft,\n ArrowUp,\n LinkIcon,\n TableIcon,\n CheckSquareIcon,\n SquareIcon,\n EyeIcon,\n SearchIcon,\n DropdownIcon,\n ArrowRight,\n SignInIcon,\n UserIcon,\n UsersIcon,\n EllipsisIcon,\n ChartAreaIcon,\n ExchangeIcon,\n SlidersIcon,\n SuitcaseIcon,\n ClockIcon,\n BarsIcon,\n BellIcon,\n SignOutIcon,\n CircleIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n CalendarIcon\n};\n\nexport default Icons;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"styleRow\":\"OperationsMenuMobile_styleRow__1x2tj\",\"mb\":\"OperationsMenuMobile_mb__2LCzE\",\"link\":\"OperationsMenuMobile_link__70EnH\"};","import { faAngleRight } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { Card } from 'react-bootstrap';\nexport var AppAccordion = forwardRef(function (_a, ref) {\n var className = _a.className, style = _a.style, isHidden = _a.isHidden, item = _a.item;\n var _b = useState(isHidden === undefined ? true : isHidden), hidden = _b[0], setHidden = _b[1];\n var _c = useState(''), transitioningClass = _c[0], setTransitioningClass = _c[1];\n useImperativeHandle(ref, function () { return ({\n toggle: function () {\n handleClick();\n },\n open: function () {\n handleOpen();\n },\n close: function () {\n handleClose();\n }\n }); });\n var content = useRef(null);\n var handleClick = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(!hidden);\n };\n var handleOpen = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(false);\n };\n var handleClose = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(true);\n };\n var handleTransitionEnd = function () {\n setTransitioningClass('');\n };\n var _d = useState('auto'), height = _d[0], setHeight = _d[1];\n var onWindowResize = function () {\n setHeight(content.current.scrollHeight);\n };\n useEffect(function () {\n setHeight(content.current.scrollHeight);\n window.addEventListener('resize', onWindowResize);\n return function () { return window.removeEventListener('resize', onWindowResize); };\n }, []);\n useEffect(function () {\n setHeight(content.current.scrollHeight);\n });\n var headerStyle = hidden ? { color: '#8dabc4', border: 'none', fontWeight: 500 } : { color: '#8dabc4', fontWeight: 500 };\n var iconClass = hidden ? 'icon' : 'icon icon-rotate';\n var hiddenClass = hidden ? 'accordion-hidden' : '';\n return (React.createElement(Card, { className: \"app-accordion \" + className + \" \" + hiddenClass, style: style },\n React.createElement(Card.Header, { className: 'accordion-header d-flex justify-content-between', onClick: handleClick, style: headerStyle },\n React.createElement(\"span\", null, item.title),\n React.createElement(FontAwesomeIcon, { icon: faAngleRight, className: iconClass })),\n React.createElement(\"div\", { onTransitionEnd: handleTransitionEnd, className: \"accordion \" + transitioningClass + \" \" + (hidden ? 'overflow-hidden' : ''), style: { height: hidden ? 0 : height } },\n React.createElement(Card.Body, { ref: content }, item.item))));\n});\n//# sourceMappingURL=app-accordion.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useState } from 'react';\nimport { Button, Card, Form } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport * as Yup from 'yup';\nvar validationSchema = Yup.object({\n username: Yup.string().required(),\n password: Yup.string().required(),\n rememberMe: Yup.boolean()\n});\nexport var AppLoginPage = function (_a) {\n var canBeRestored = _a.canBeRestored, signInFunc = _a.signInFunc;\n var intl = useIntl();\n var _b = useState(''), username = _b[0], setUsername = _b[1];\n var _c = useState(''), password = _c[0], setPassword = _c[1];\n var _d = useState(false), rememberMe = _d[0], setRememberMe = _d[1];\n var initialFormErrorsState = { username: null, password: null };\n var _e = useState(initialFormErrorsState), formErrors = _e[0], setFormErrors = _e[1];\n var usernamePlaceholder = intl.formatMessage({\n id: 'login.form.username'\n });\n var passwordPlaceholder = intl.formatMessage({\n id: 'login.form.password'\n });\n var restoreLink = React.createElement(\"p\", { className: 'my-0' },\n React.createElement(Link, { to: \"/restore\" },\n React.createElement(FormattedMessage, { id: \"login.forgot.password\" })));\n var handleSetUsername = function (event) {\n var value = event.target.value;\n setUsername(value);\n try {\n Yup.reach(validationSchema, 'username').validateSync(value);\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.username = null;\n setFormErrors(formErrorsNew);\n }\n catch (err) {\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.username = err;\n setFormErrors(formErrorsNew);\n }\n };\n var handleSetPassword = function (event) {\n var value = event.target.value;\n setPassword(value);\n try {\n Yup.reach(validationSchema, 'password').validateSync(value);\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.password = null;\n setFormErrors(formErrorsNew);\n }\n catch (err) {\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.password = err;\n setFormErrors(formErrorsNew);\n }\n };\n var handleSetRememberMe = function (event) {\n setRememberMe(!!event.target.checked);\n };\n var handleSubmit = function (event) {\n event.preventDefault(); // does not allow to refresh page on submit\n try {\n validationSchema.validateSync({ username: username, password: password, rememberMe: rememberMe }, { abortEarly: false });\n signInFunc(username, password, rememberMe);\n }\n catch (err) {\n var formErrorsNew_1 = __assign({}, formErrors);\n err.inner.forEach(function (error) {\n if (error.path === 'username') {\n formErrorsNew_1.username = error;\n }\n if (error.path === 'password') {\n formErrorsNew_1.password = error;\n }\n });\n setFormErrors(formErrorsNew_1);\n }\n };\n return (React.createElement(\"div\", { className: 'app-login-page' },\n React.createElement(\"div\", { className: 'row h-75 justify-content-center align-items-center' },\n React.createElement(Form, { onSubmit: handleSubmit, \"data-testid\": 'submitFormLogin' },\n React.createElement(Card, null,\n React.createElement(Card.Header, null,\n React.createElement(FormattedMessage, { id: 'login.header' })),\n React.createElement(Card.Body, null,\n React.createElement(Card.Text, { as: 'div' },\n React.createElement(Form.Group, { controlId: 'userInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: 'login.form.username' })),\n React.createElement(Form.Control, { autoFocus: true, name: 'username', type: 'text', value: username, placeholder: usernamePlaceholder, onChange: handleSetUsername, isInvalid: !!formErrors.username }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'login.form.username.invalid' }))),\n React.createElement(Form.Group, { controlId: 'pwdInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: \"login.form.password\" })),\n React.createElement(Form.Control, { type: 'password', name: 'password', value: password, placeholder: passwordPlaceholder, onChange: handleSetPassword, isInvalid: !!formErrors.password }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'login.form.password.invalid' }))),\n React.createElement(Form.Group, null,\n React.createElement(Form.Check, { type: 'checkbox', checked: rememberMe, onChange: handleSetRememberMe, name: 'rememberMe', label: React.createElement(FormattedMessage, { id: 'login.remember.me' }), \"data-testid\": 'checkboxLogin' })),\n canBeRestored && restoreLink)),\n React.createElement(Card.Footer, null,\n React.createElement(Button, { variant: 'primary', type: 'submit' },\n React.createElement(FormattedMessage, { id: 'login.button' }))))))));\n};\n//# sourceMappingURL=app-login-page.js.map","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nexport var NavbarUser = function (_a) {\n var user = _a.user;\n var name = user.name, login = user.login, onSignOut = user.onSignOut, items = user.items, userLogo = user.userLogo;\n var dropdownItems = items.map(function (item, key) { return (React.createElement(Link, { key: key, className: 'dropdown-item', to: item.link, onClick: item.handleClick }, item.text)); });\n return (React.createElement(\"div\", { className: 'navbar-user d-flex mr-2 ml-4 text-light align-items-center' },\n React.createElement(Dropdown, { className: 'mr-3 cursor_pointer' },\n React.createElement(Dropdown.Toggle, { as: 'div', id: 'dropdown-basic', className: 'd-flex' },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: 'text-light' }, name),\n React.createElement(\"div\", { className: 'text-muted' }, login))),\n React.createElement(Dropdown.Menu, null,\n dropdownItems,\n React.createElement(Dropdown.Divider, null),\n React.createElement(Link, { className: 'btn-sign-out dropdown-item', to: '/login', onClick: onSignOut }, \"Sign out\"))),\n React.createElement(\"img\", { height: 36, width: 36, src: userLogo, alt: 'user logo' })));\n};\n//# sourceMappingURL=app-navbar-user.js.map","import { faLanguage } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Navbar, NavDropdown } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nexport var nbsp = React.createElement(\"span\", null, \"\\u00A0\");\nexport function buildLogo(_a) {\n var href = _a.href, src = _a.src, width = _a.width, height = _a.height, className = _a.className, alt = _a.alt;\n return (React.createElement(Navbar.Brand, null,\n React.createElement(Link, { to: href },\n React.createElement(\"img\", { src: src, width: width, height: height, className: className, alt: alt }))));\n}\nfunction dropdownItemForLangs(i18nLangs, language, key, onLangChange) {\n function onButtonClick(lang) {\n return function () { return onLangChange(lang); };\n }\n return (React.createElement(NavDropdown.Item, { onClick: onButtonClick(language), key: key }, i18nLangs[language]));\n}\nexport function dropdownForLangs(i18nLangs, currentLangKey, onLangChange) {\n var title = React.createElement(\"span\", null,\n React.createElement(FontAwesomeIcon, { size: 'lg', icon: faLanguage }),\n nbsp,\n i18nLangs[currentLangKey]);\n return (React.createElement(NavDropdown, { alignRight: true, title: title, className: 'lang-dropdown d-flex align-items-center', id: 'lang-dropdown' }, Object.keys(i18nLangs).map(function (lang, key) { return dropdownItemForLangs(i18nLangs, lang, key, onLangChange); })));\n}\n//# sourceMappingURL=app-navbar-utils.js.map","import { faBars } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Nav, Navbar } from 'react-bootstrap';\nimport { NavbarUser } from './app-navbar-user';\nimport { buildLogo, dropdownForLangs } from './app-navbar-utils';\nexport var AppNavbar = function (_a) {\n var i18nLangs = _a.i18nLangs, exitButton = _a.exitButton, currentLangKey = _a.currentLangKey, onLangChange = _a.onLangChange, navbarItemsRight = _a.navbarItemsRight, isAuthenticated = _a.isAuthenticated, onSidebarHandlerClick = _a.onSidebarHandlerClick, user = _a.user, logo = _a.logo;\n var buildToggleButton = function (callback) {\n var handleClick = function () { return callback(); };\n return (React.createElement(\"div\", { className: 'd-flex navbar-border navbar-content-align', onClick: handleClick },\n React.createElement(FontAwesomeIcon, { icon: faBars, size: '2x', className: 'text-white' })));\n };\n return (React.createElement(Navbar, { bg: 'dark', variant: 'dark', expand: 'md', className: 'app-navbar' },\n isAuthenticated ? buildToggleButton(onSidebarHandlerClick) : null,\n React.createElement(\"div\", { style: { maxWidth: 260, marginLeft: '1rem', marginRight: '2rem', overflow: 'hidden' }, className: 'd-flex align-items-center navbar-border' }, buildLogo(logo)),\n React.createElement(Nav, { className: 'ml-auto' },\n isAuthenticated && navbarItemsRight ? navbarItemsRight.map(function (item) { return item; }) : null,\n isAuthenticated && user ? React.createElement(NavbarUser, { user: user }) : null,\n dropdownForLangs(i18nLangs, currentLangKey, onLangChange),\n isAuthenticated && exitButton ? exitButton : null)));\n};\n//# sourceMappingURL=app-navbar.js.map","import * as React from 'react';\nimport { Dropdown, DropdownButton, Pagination } from 'react-bootstrap';\nimport { useEffect } from 'react';\nexport var AppPagination = function (_a) {\n var page = _a.page, size = _a.size, pages = _a.pages, sizes = _a.sizes, onClick = _a.onClick;\n var _b = React.useState(size), sizeState = _b[0], setSize = _b[1];\n useEffect(function () {\n setSize(size);\n }, [size]);\n var handlePaginationClick = function (paginationPage, paginationSize) { return function () { return onClick(paginationPage, paginationSize); }; };\n var paginationBuilder = function (currentPage, amountOfPages) {\n var delta = 2;\n var range = [];\n var startFrom = Math.max(2, currentPage - delta);\n var ends = Math.min(amountOfPages - 1, currentPage + delta);\n for (var i = startFrom; i <= ends; i++) {\n range.push(React.createElement(Pagination.Item, { key: i, onClick: handlePaginationClick(i, sizeState), active: i === currentPage }, i));\n }\n if (currentPage - delta > 2) {\n range.unshift(React.createElement(Pagination.Ellipsis, { key: 'first' }));\n }\n if (currentPage + delta < amountOfPages - 1) {\n range.push(React.createElement(Pagination.Ellipsis, { key: 'last' }));\n }\n // first item\n range.unshift(React.createElement(Pagination.Item, { key: 1, onClick: handlePaginationClick(1, sizeState), active: currentPage === 1 }, 1));\n // last item\n if (amountOfPages > 1) {\n range.push(React.createElement(Pagination.Item, { key: amountOfPages, onClick: handlePaginationClick(amountOfPages, sizeState), active: currentPage === amountOfPages }, amountOfPages));\n }\n return range;\n };\n var setSizeWrapper = function (eventOrKey) {\n setSize(Number(eventOrKey));\n onClick(page, Number(eventOrKey));\n };\n var sizesDropdown = (React.createElement(DropdownButton, { id: 'dropdown-basic-button', onSelect: setSizeWrapper, className: 'pagination-pill', size: 'sm', title: sizeState }, sizes.map(function (item, key) { return React.createElement(Dropdown.Item, { key: key, eventKey: item.toString() }, item); })));\n return (React.createElement(\"div\", { className: 'd-flex pt-2 pl-2 flex-row-reverse' },\n sizesDropdown,\n React.createElement(Pagination, { size: 'sm', className: 'pr-1' },\n React.createElement(Pagination.First, { disabled: page === 1, onClick: handlePaginationClick(1, sizeState) }),\n React.createElement(Pagination.Prev, { disabled: page === 1, onClick: handlePaginationClick(page - 1, sizeState) }),\n paginationBuilder(page, pages),\n React.createElement(Pagination.Next, { disabled: page === pages, onClick: handlePaginationClick(page + 1, sizeState) }),\n React.createElement(Pagination.Last, { disabled: page === pages, onClick: handlePaginationClick(pages, sizeState) }))));\n};\n//# sourceMappingURL=app-pagination.js.map","import React from 'react';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nexport function withTooltip(item, toolTipText, key, where) {\n if (where === void 0) { where = 'top'; }\n var overlay = React.createElement(Tooltip, { id: \"tooltip-\" + key }, toolTipText);\n return (React.createElement(OverlayTrigger, { key: key, placement: where, overlay: overlay }, item));\n}\nexport function limitedString(text, limit) {\n if (limit === void 0) { limit = 5; }\n if (text.length > limit) {\n var croppedText = text.slice(0, limit) + '...';\n return withTooltip(React.createElement(\"span\", null, croppedText), text, text);\n }\n return text;\n}\n//# sourceMappingURL=app-utils.js.map","import React from 'react';\nimport { Nav, ProgressBar } from 'react-bootstrap';\nimport { withTooltip } from './app-utils';\nexport var Progress = function (_a) {\n var now = _a.now, description = _a.description, hidden = _a.hidden, className = _a.className;\n var tooltipStyles = hidden ? { width: '48px', height: '10px' } : { height: '10px' };\n return (React.createElement(Nav.Item, { className: 'd-flex mb-2' },\n React.createElement(\"div\", { className: 'd-flex flex-column m-auto w-90' },\n hidden ? null : React.createElement(\"p\", { className: 'text-white' }, description),\n React.createElement(\"div\", { className: 'd-flex' },\n withTooltip(React.createElement(ProgressBar, { now: now, className: className + \" \" + (hidden ? 'm-auto' : 'w-100'), style: tooltipStyles }), 'tooltip', '123'),\n hidden ? null : React.createElement(\"span\", { className: 'ml-2 text-muted' }, now)))));\n};\n//# sourceMappingURL=app-progress.js.map","import React, { useState } from 'react';\nimport { Button, Card, Form } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport * as Yup from 'yup';\nvar validationSchema = {\n username: Yup.string().required(),\n};\nexport var AppRestoreAccountPage = function (_a) {\n var onRestoreClick = _a.onRestoreClick, onBackClick = _a.onBackClick;\n var intl = useIntl();\n var _b = useState(''), username = _b[0], setUsername = _b[1];\n var _c = useState(false), isUsernameNotValid = _c[0], setUsernameValid = _c[1];\n var _d = useState(true), isSubmitButtonDisabled = _d[0], setSubmitButtonState = _d[1];\n var usernamePlaceholder = intl.formatMessage({\n id: 'restore.form.username'\n });\n var handleSubmit = function (event) {\n event.preventDefault();\n onRestoreClick(username);\n };\n var handleUsernameChange = function (event) {\n setUsername(event.currentTarget.value);\n try {\n var isValid = !validationSchema.username.validateSync(event.currentTarget.value);\n setUsernameValid(isValid);\n setSubmitButtonState(isValid);\n }\n catch (e) {\n setUsernameValid(true);\n setSubmitButtonState(true);\n }\n };\n return (React.createElement(\"div\", { className: 'app-login-page' },\n React.createElement(\"div\", { className: 'container' },\n React.createElement(\"div\", { className: 'row justify-content-center align-items-center' },\n React.createElement(Form, { onSubmit: handleSubmit, \"data-testid\": 'submitFormResetPwd' },\n React.createElement(Card, null,\n React.createElement(Card.Header, null,\n React.createElement(FormattedMessage, { id: 'restore.header' })),\n React.createElement(Card.Body, null,\n React.createElement(Card.Text, { as: 'div' },\n React.createElement(\"p\", null,\n React.createElement(FormattedMessage, { id: 'restore.form.text' })),\n React.createElement(Form.Group, { controlId: 'userInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: 'restore.form.username' })),\n React.createElement(Form.Control, { autoFocus: true, type: 'text', value: username, placeholder: usernamePlaceholder, onChange: handleUsernameChange, isInvalid: isUsernameNotValid }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'restore.form.error' }))))),\n React.createElement(Card.Footer, null,\n React.createElement(\"div\", { className: 'd-flex' },\n React.createElement(Button, { disabled: isSubmitButtonDisabled, variant: 'primary', type: 'submit' },\n React.createElement(FormattedMessage, { id: 'restore.confirm' })),\n React.createElement(Button, { className: 'ml-auto', variant: 'secondary', onClick: onBackClick },\n React.createElement(FormattedMessage, { id: 'restore.backToLogin' }))))))))));\n};\n//# sourceMappingURL=app-restore-account-page.js.map","import React from 'react';\nexport var AppHorizontalLine = function (_a) {\n var className = _a.className;\n return (React.createElement(\"hr\", { className: \"horizontal-line \" + className }));\n};\n//# sourceMappingURL=app-horizontal-line.js.map","import { faInfo } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport React from 'react';\nimport { Nav } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { AppHorizontalLine } from './app-horizontal-line';\nimport { Progress } from './app-progress';\nimport { withTooltip } from './app-utils';\nexport var AppSideBar = function (_a) {\n var sidebarItems = _a.sidebarItems, sidebarHidden = _a.sidebarHidden, progressItems = _a.progressItems, currentLocation = _a.currentLocation, onLicenceClick = _a.onLicenceClick, onTransitionEndCallback = _a.onTransitionEndCallback, isScrollable = _a.isScrollable;\n var buildSideBarLink = function (item, key, location) {\n var translateKey = item.translateKey, translateKeyOptional = item.translateKeyOptional, icon = item.icon, link = item.link, tooltipKey = item.tooltipKey;\n var translateMessage = translateKey ? React.createElement(FormattedMessage, { id: translateKey }) : null;\n var translateMessageOptional = translateKeyOptional ? React.createElement(FormattedMessage, { id: translateKeyOptional }) : null;\n var classNameLink = sidebarHidden ? 'd-flex m-auto ml-navbar' : 'd-flex m-auto w-90 ml-navbar';\n var isLinkActive = link.split('/').filter(function (v) { return v !== ''; })[0] === (location.split('/')).filter(function (v) { return v !== ''; })[0];\n var navItemStyles = \"d-flex h-60px \" + (isLinkActive ? 'nav-item-styles' : '');\n var classNameHiddenBody = sidebarHidden ? 'app-sidebar-opacity-zero' : 'app-sidebar-opacity';\n var iconComponent = (React.createElement(\"div\", { style: { display: 'flex', width: icon.size, height: icon.size, borderRadius: icon.radius, backgroundColor: icon.color, flexShrink: 0, position: 'relative' } },\n React.createElement(FontAwesomeIcon, { icon: icon.icon, size: icon.iconSize, className: 'm-auto text-white' }),\n item.notification && withTooltip(React.createElement(\"div\", { style: {\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n backgroundColor: 'red',\n position: 'absolute',\n bottom: '-3px',\n right: '-3px'\n } }), item.notification.text, Math.random(), 'bottom-start')));\n var messageBody = (React.createElement(\"div\", { className: \"d-flex flex-column justify-content-center \" + classNameHiddenBody, style: { width: sidebarHidden ? '0' : '200px', height: '48px', flexShrink: 0 } },\n React.createElement(\"span\", { className: 'text-light ml-3 message' }, translateMessage),\n React.createElement(\"span\", { className: 'text-muted ml-3 message-optional' }, translateMessageOptional)));\n var handleClick = function () {\n if (item.action) {\n item.action(currentLocation);\n }\n };\n var navLink = React.createElement(Link, { to: link, className: classNameLink },\n iconComponent,\n messageBody);\n var result = tooltipKey && sidebarHidden ? withTooltip(navLink, tooltipKey, tooltipKey, 'right') : navLink;\n return (React.createElement(Nav.Item, { key: key, className: navItemStyles, onClick: handleClick }, result));\n };\n var buildProgressBarItem = function (item, key) {\n return React.createElement(Progress, { key: key, hidden: sidebarHidden, now: item.now, description: item.description, className: item.colorClass + \" mt-auto mb-auto\" });\n };\n var navItem = (React.createElement(Nav.Item, { className: 'd-flex' },\n React.createElement(\"div\", { className: 'w-90 progress-title' }, progressItems.length ? React.createElement(\"span\", null,\n React.createElement(FormattedMessage, { id: 'progress' })) : null)));\n var sidebarItemComponents = sidebarItems.map(function (item, key) { return buildSideBarLink(item, key, currentLocation); });\n var progressBarItemComponents = progressItems.map(function (item, key) { return buildProgressBarItem(item, key); });\n var progressComponents = progressItems.length !== 0 &&\n (React.createElement(Nav, { className: 'flex-column pb-3' },\n !sidebarHidden && navItem,\n progressBarItemComponents));\n var licence = (React.createElement(\"div\", { className: 'd-flex h-60px' },\n React.createElement(\"div\", { className: \"licence \" + (sidebarHidden ? 'd-flex m-auto' : 'd-flex m-auto w-90'), onClick: onLicenceClick },\n React.createElement(FontAwesomeIcon, { icon: faInfo, size: \"1x\", className: 'text-white' }),\n sidebarHidden ? null : React.createElement(\"span\", { className: 'text-light ml-3' },\n React.createElement(FormattedMessage, { id: 'licence' })))));\n var handleOnTransitionEnd = function (event) {\n if (onTransitionEndCallback) {\n onTransitionEndCallback(event);\n }\n };\n if (isScrollable) {\n return (React.createElement(\"div\", { className: sidebarHidden ? 'app-sidebar app-sidebar-hidden' : 'app-sidebar', onTransitionEnd: handleOnTransitionEnd },\n React.createElement(OverlayScrollbarsComponent, { style: { height: 'calc(100vh - 58px)', width: '100%' }, options: { overflowBehavior: { x: 'visible-hidden', y: 'scroll' } } },\n React.createElement(\"div\", { className: 'd-flex flex-column justify-content-between h-100' },\n React.createElement(\"div\", null,\n React.createElement(AppHorizontalLine, { className: 'mb-3' }),\n React.createElement(Nav, { className: 'flex-column' }, sidebarItemComponents)),\n React.createElement(\"div\", null,\n progressComponents,\n React.createElement(AppHorizontalLine, null),\n licence)))));\n }\n return (React.createElement(\"div\", { className: sidebarHidden ? 'app-sidebar app-sidebar-hidden' : 'app-sidebar', onTransitionEnd: handleOnTransitionEnd },\n React.createElement(\"div\", null,\n React.createElement(AppHorizontalLine, { className: 'mb-3' }),\n React.createElement(Nav, { className: 'flex-column' }, sidebarItemComponents)),\n React.createElement(\"div\", null,\n progressComponents,\n React.createElement(AppHorizontalLine, null),\n licence)));\n};\n//# sourceMappingURL=app-sidebar.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport React from 'react';\nimport { Table } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nexport var AppTable = function (_a) {\n var scrollHeight = _a.scrollHeight, tableHeader = _a.tableHeader, tableData = _a.tableData, className = _a.className, settings = _a.settings, scrollOptions = _a.scrollOptions;\n var ths = tableHeader.map(function (item) { return item; });\n var data = tableData && tableData.length > 0 ? tableData :\n (React.createElement(\"tr\", null,\n React.createElement(\"td\", { className: 'text-center', colSpan: ths.length },\n React.createElement(FormattedMessage, { id: 'table.nodata' }))));\n var styles = scrollHeight ? { height: scrollHeight } : undefined;\n var scrollCustomOptions = scrollOptions ? { overflowBehavior: scrollOptions, paddingAbsolute: true } : undefined;\n return (React.createElement(OverlayScrollbarsComponent, { style: __assign(__assign({}, styles), { paddingBottom: '8px' }), options: scrollCustomOptions },\n React.createElement(Table, { className: \"app-table \" + (className || ''), hover: true },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: 'table-tr_color' }, ths)),\n React.createElement(\"thead\", { className: 'thead-settings' }, settings),\n React.createElement(\"tbody\", null, data))));\n};\n//# sourceMappingURL=app-table.js.map","import React from 'react';\nimport { Table } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nexport var AppSimpleTable = function (_a) {\n var tableHeader = _a.tableHeader, tableData = _a.tableData, className = _a.className, settings = _a.settings;\n var ths = tableHeader.map(function (item) { return item; });\n var emptyDataMessage = (React.createElement(\"tr\", null,\n React.createElement(\"td\", { className: 'text-center', colSpan: ths.length },\n React.createElement(FormattedMessage, { id: 'table.nodata' }))));\n var data = tableData && tableData.length > 0 ? tableData : emptyDataMessage;\n var tableClassName = className ? className : '';\n return (React.createElement(Table, { className: \"app-table \" + tableClassName, hover: true },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: 'table-tr_color' }, ths)),\n React.createElement(\"thead\", { className: 'thead-settings' }, settings),\n React.createElement(\"tbody\", null, data)));\n};\n//# sourceMappingURL=app-simple-table.js.map","export var DatePattern;\n(function (DatePattern) {\n DatePattern[DatePattern[\"YYYY_MM_DD\"] = 0] = \"YYYY_MM_DD\";\n DatePattern[DatePattern[\"YYYY_MM_DD_HH_mm_ss\"] = 1] = \"YYYY_MM_DD_HH_mm_ss\";\n DatePattern[DatePattern[\"DD_MM_YYYY\"] = 2] = \"DD_MM_YYYY\";\n DatePattern[DatePattern[\"DD_MM_YYYY_HH_mm_ss\"] = 3] = \"DD_MM_YYYY_HH_mm_ss\";\n DatePattern[DatePattern[\"yyyy-MM-dd_HH-mm-ss\"] = 4] = \"yyyy-MM-dd_HH-mm-ss\";\n DatePattern[DatePattern[\"HH_mm_ss\"] = 5] = \"HH_mm_ss\";\n})(DatePattern || (DatePattern = {}));\nexport var MonthNames = [\n 'Jan', 'Feb', 'Mar',\n 'Apr', 'May', 'June',\n 'July', 'Aug', 'Sept',\n 'Oct', 'Nov', 'Dec'\n];\nfunction convertDateForNumericPatterns(year, month, day, hour, minutes, seconds) {\n var y = year.toString();\n var m = (month + 1).toString();\n var d = day.toString();\n var h = hour.toString();\n var min = minutes.toString();\n var sec = seconds.toString();\n if (m.length < 2) {\n m = \"0\" + m;\n }\n if (d.length < 2) {\n d = \"0\" + d;\n }\n if (h.length < 2) {\n h = \"0\" + h;\n }\n if (min.length < 2) {\n min = \"0\" + min;\n }\n if (sec.length < 2) {\n sec = \"0\" + sec;\n }\n return { y: y, m: m, d: d, h: h, min: min, sec: sec };\n}\nfunction makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) {\n var _a = convertDateForNumericPatterns(year, month, day, hour, minutes, seconds), y = _a.y, m = _a.m, d = _a.d, h = _a.h, min = _a.min, sec = _a.sec;\n switch (pattern) {\n case DatePattern.YYYY_MM_DD: {\n return [y, m, d].join('/');\n }\n case DatePattern.DD_MM_YYYY: {\n return [d, m, y].join('/');\n }\n case DatePattern.HH_mm_ss: {\n return [h, min, sec].join(':');\n }\n case DatePattern.YYYY_MM_DD_HH_mm_ss: {\n return [y, m, d].join('/') + \" \" + [h, min, sec].join(':');\n }\n case DatePattern.DD_MM_YYYY_HH_mm_ss: {\n return [d, m, y].join('/') + \" \" + [h, min, sec].join(':');\n }\n case DatePattern['yyyy-MM-dd_HH-mm-ss']: {\n return [year, MonthNames[month], day].join(' ') + \" \" + [h, min, sec].join('-');\n }\n default: {\n return [year, month, day].join('/');\n }\n }\n}\nexport function formatUTCDate(date, pattern) {\n if (date === undefined) {\n return '';\n }\n var tempDate = typeof date === 'string' ? new Date(date) : date;\n var month = tempDate.getUTCMonth();\n var day = tempDate.getUTCDate();\n var year = tempDate.getUTCFullYear();\n var hour = tempDate.getUTCHours();\n var minutes = tempDate.getUTCMinutes();\n var seconds = tempDate.getUTCSeconds();\n return pattern ? makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) : tempDate.toUTCString();\n}\nexport function formatDate(date, pattern) {\n if (date === null) {\n return '';\n }\n var tempDate = typeof date === 'string' ? new Date(date) : date;\n var month = tempDate.getMonth();\n var day = tempDate.getDate();\n var year = tempDate.getFullYear();\n var hour = tempDate.getHours();\n var minutes = tempDate.getMinutes();\n var seconds = tempDate.getSeconds();\n return pattern ? makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) : tempDate.toString();\n}\nexport function getMonday(d, weeksAgo, hours, minutes, seconds) {\n if (weeksAgo === void 0) { weeksAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n var tempDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes, seconds, 0);\n var day = tempDate.getDay() + (weeksAgo > 0 ? 7 * weeksAgo : 0);\n var diff = tempDate.getDate() - day + (day === 0 ? -6 : 1);\n return new Date(tempDate.setDate(diff));\n}\nexport function getSunday(d, weeksAgo, hours, minutes, seconds) {\n if (weeksAgo === void 0) { weeksAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n var tempDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes, seconds, 0);\n var day = tempDate.getDay() + (weeksAgo > 0 ? 7 * weeksAgo : 0);\n var diff = (tempDate.getDate() - day + (day === 0 ? -6 : 1) + 6);\n return new Date(tempDate.setDate(diff));\n}\nexport function getMonthStartDate(d, monthAgo, hours, minutes, seconds) {\n if (monthAgo === void 0) { monthAgo = 1; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear(), d.getMonth() - monthAgo, 1, hours, minutes, seconds);\n}\nexport function getMonthEndDate(d, monthAgo, hours, minutes, seconds) {\n if (monthAgo === void 0) { monthAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear(), d.getMonth() - monthAgo, 0, hours, minutes, seconds);\n}\nexport function getYearStartDate(d, yearsAgo, hours, minutes, seconds) {\n if (yearsAgo === void 0) { yearsAgo = 1; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear() - yearsAgo, 0, 1, hours, minutes, seconds);\n}\nexport function getYearEndDate(d, yearsAgo, hours, minutes, seconds) {\n if (yearsAgo === void 0) { yearsAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear() - yearsAgo, 0, 0, hours, minutes, seconds);\n}\nexport function coordinateTimeZone(serverOffset) {\n var clientOffset = new Date().getTimezoneOffset();\n return serverOffset === 0 ? clientOffset * 60000 : (clientOffset - serverOffset) * 60000;\n}\nexport function convertOffsetToMs(serverOffset) {\n return serverOffset * 60000;\n}\n//# sourceMappingURL=times.js.map","import { faSearch, faSort, faSortDown, faSortUp, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { AppTable } from '../components/app-table';\nimport { isExists } from './entity-utils';\nimport { AppSimpleTable } from '../components/app-simple-table';\nvar AppTh = function (_a) {\n var fieldToSort = _a.fieldToSort, sortBy = _a.sortBy, direction = _a.direction, onClick = _a.onClick, message = _a.message;\n var onClickWrapper = onClick && sortBy ? function () { return onClick(sortBy); } : undefined;\n return (React.createElement(\"th\", { className: 'position-relative', onClick: onClickWrapper },\n message,\n getSortIcon(fieldToSort, sortBy, direction)));\n};\nvar AppThWithSearch = function (_a) {\n var fieldToSort = _a.fieldToSort, sortBy = _a.sortBy, direction = _a.direction, searchCallback = _a.searchCallback, onClick = _a.onClick, message = _a.message;\n var _b = React.useState(''), inputState = _b[0], setInputState = _b[1];\n var _c = React.useState(faSearch), searchIcon = _c[0], setSearchIcon = _c[1];\n React.useEffect(function () {\n if (inputState) {\n setSearchIcon(faTimes);\n }\n else {\n setSearchIcon(faSearch);\n }\n searchCallback(inputState);\n }, [inputState, searchCallback]);\n var onInputChange = function (event) {\n setInputState(event.currentTarget.value);\n };\n var onClickWrapper = onClick && sortBy ? function () {\n onClick(sortBy);\n } : undefined;\n var cleanInput = function () { return setInputState(''); };\n return (React.createElement(\"th\", { className: 'position-relative' },\n React.createElement(\"input\", { type: \"text\", value: inputState, onChange: onInputChange, placeholder: message, className: 'search-input_style' }),\n React.createElement(FontAwesomeIcon, { style: { height: '10px', width: '11px' }, icon: searchIcon, onClick: inputState ? cleanInput : undefined }),\n getSortIcon(fieldToSort, sortBy, direction, onClickWrapper)));\n};\nvar AppThWrapper = function (_a) {\n var tableHeader = _a.tableHeader, onClick = _a.onClick, searchCallback = _a.searchCallback, fieldToSort = _a.fieldToSort, direction = _a.direction;\n var intl = useIntl();\n var rawString = tableHeader.rawString, translateId = tableHeader.translateId, translateValue = tableHeader.translateValue, sortBy = tableHeader.sortBy, searchable = tableHeader.searchable;\n var message = rawString;\n if (translateId) {\n message = translateValue ? React.createElement(FormattedMessage, { id: translateId, values: translateValue }) : React.createElement(FormattedMessage, { id: translateId });\n message = intl.formatMessage({ id: translateId }, translateValue);\n }\n if (searchable && searchCallback) {\n return (React.createElement(AppThWithSearch, { searchCallback: searchCallback, onClick: onClick, fieldToSort: fieldToSort, direction: direction, sortBy: sortBy, message: message }));\n }\n return (React.createElement(AppTh, { onClick: onClick, fieldToSort: fieldToSort, direction: direction, sortBy: sortBy, message: message }));\n};\nfunction buildTableHeaders(arr, onClick, fieldToSort, direction, searchCallback) {\n return arr.map(function (item, index) {\n if (item === null) {\n return (React.createElement(\"th\", { key: index, \"aria-label\": ' ', className: 'position-relative' }));\n }\n return React.createElement(AppThWrapper, { key: index, tableHeader: item, direction: direction, searchCallback: searchCallback, onClick: onClick, fieldToSort: fieldToSort });\n });\n}\nfunction getSortIcon(fieldToSort, currentField, direction, onClick) {\n if (currentField === fieldToSort && currentField) {\n switch (direction) {\n case 'asc':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSortUp, className: 'ml-1' });\n case 'desc':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSortDown, className: 'ml-1' });\n case 'none':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSort, className: 'ml-1' });\n default:\n return null;\n }\n }\n else if (currentField) {\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSort, className: 'ml-1' });\n }\n return null;\n}\nexport function buildTable(headersArr, tableData, height, onClick, fieldToSort, direction, searchCallback) {\n var headers = buildTableHeaders(headersArr, onClick, fieldToSort, direction, searchCallback);\n return React.createElement(AppTable, { tableHeader: headers, tableData: tableData, scrollHeight: height, scrollOptions: { x: 'scroll', y: 'visible-hidden' } });\n}\nexport function buildSimpleTable(headersArr, tableData, onClick, fieldToSort, direction) {\n var headers = buildTableHeaders(headersArr, onClick, fieldToSort, direction);\n return React.createElement(AppSimpleTable, { tableHeader: headers, tableData: tableData });\n}\nexport function drawDashOrNot(data) {\n try {\n if (Array.isArray(data) && data.length < 1) {\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n if (isExists(data, true)) {\n return data;\n }\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n catch (e) {\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n}\n//# sourceMappingURL=tables.js.map","var ReduxAction = /** @class */ (function () {\n function ReduxAction(type, payload) {\n this.type = type;\n this.payload = payload;\n }\n return ReduxAction;\n}());\nexport { ReduxAction };\n//# sourceMappingURL=redux-action.js.map","export var Direction;\n(function (Direction) {\n Direction[\"asc\"] = \"asc\";\n Direction[\"desc\"] = \"desc\";\n Direction[\"none\"] = \"none\";\n})(Direction || (Direction = {}));\n//# sourceMappingURL=direction.js.map","var IconItem = /** @class */ (function () {\n function IconItem(size, icon, iconSize, radius, color) {\n this.size = size;\n this.icon = icon;\n this.iconSize = iconSize;\n this.radius = radius;\n this.color = color;\n }\n return IconItem;\n}());\nexport { IconItem };\nvar AppSideBarItem = /** @class */ (function () {\n function AppSideBarItem(translateKey, translateKeyOptional, isExternal, link, specialElement, tooltipKey, icon, cssClass, action, notification) {\n if (isExternal === void 0) { isExternal = false; }\n if (link === void 0) { link = ''; }\n if (specialElement === void 0) { specialElement = null; }\n if (tooltipKey === void 0) { tooltipKey = null; }\n this.tooltipKey = tooltipKey;\n this.link = link;\n this.isExternal = isExternal;\n this.translateKey = translateKey;\n this.translateKeyOptional = translateKeyOptional;\n this.cssClass = cssClass;\n this.specialElement = specialElement;\n this.action = action;\n this.icon = icon;\n this.notification = notification;\n }\n return AppSideBarItem;\n}());\nexport { AppSideBarItem };\n//# sourceMappingURL=app-sidebar-item.js.map","import { OrderMode } from './sharedTypes';\nimport { VisibilityToggle, StateToggle, StateRequestToggle } from './toggles';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum CommissionType {\n Performance = 'Performance',\n AnnualManagement = 'AnnualManagement'\n}\n\nexport class ICallbackAddresses {\n Address = '';\n CallbackTypes = ['Requests', 'Disconnect'];\n}\n\nexport class RegularPeriodSettings {\n PeriodType = PeriodTypes.Daily;\n PeriodDay = '';\n PeriodTime = '';\n ReversedDays = 'false';\n}\n\nexport class PaymentPeriodSettings extends RegularPeriodSettings {\n CommissionType = CommissionType.Performance\n}\n\nexport class ReportPeriodSettings extends RegularPeriodSettings {\n IncludeAllOpenOrders = true;\n}\n\nexport enum AllocationMode {\n ByBalance = 0,\n ByEquity = 1\n}\n\nexport enum WithdrawalMethod {\n PartialClose = 'PartialClose',\n FreeMargin = 'FreeMargin'\n}\nexport enum OperationType {\n Balance = 'Balance',\n BalanceCorrection = 'BalanceCorrection',\n ProfitCorrection = 'ProfitCorrection',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw'\n}\n\nexport enum RequestAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport enum CreditAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport enum AttachAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport class AdminSettings {\n EmailNotifications = StateToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n}\n\nexport class MasterSettings {\n CalcMasterFeeButton = VisibilityToggle.Default;\n MmConnectedInvestors = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n EmailNotifications = StateToggle.Default;\n LockedWithdrawalsAndDisconnections = StateToggle.Default;\n}\n\nexport class InvestorSettings {\n InvestorStatementButton = VisibilityToggle.Default;\n MasterListButton = VisibilityToggle.Default;\n MasterList = VisibilityToggle.Default;\n CalcInvestorFeeButton = VisibilityToggle.Default;\n ChangeSlTpButton = VisibilityToggle.Default;\n InvestorOpenOrdersTab = VisibilityToggle.Default;\n InvestorHistoryTab = VisibilityToggle.Default;\n MasterOpenOrdersTab = VisibilityToggle.Default;\n MasterHistoryTab = VisibilityToggle.Default;\n InvestorWithdrawButton = VisibilityToggle.Default;\n InvestorMmDetails = VisibilityToggle.Default;\n InvestorMmBalanceDetails = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n DetachAction = StateRequestToggle.Default;\n EmailNotifications = StateToggle.Default;\n DepositNotification = StateToggle.Default;\n WithdrawalNotification = StateToggle.Default;\n ConnectNotification = StateToggle.Default;\n DisconnectNotification = StateToggle.Default;\n PerformanceFeeNotification = StateToggle.Default;\n}\n\nexport interface ServerSettingsResponse {\n TicksFilterPercent: string;\n TicksFilterCount: string;\n DefaultAllocationMode: number;\n DefaultAllocationModeStr: string;\n DefaultIncentiveFee: number;\n DefaultManagementFee: number;\n DefaultAnnualManagementFee: number;\n DefaultPerLotFee: number;\n DefaultPerDealFee: number;\n MaxAnnualManagementFee: number;\n MaxIncentiveFee: number;\n MaxManagementFee: number;\n DefaultMinInvestment: number;\n EquityCalcIntervalSeconds: number;\n SwapStorageIntervalSeconds: number;\n DetachIntervalSeconds: number;\n PlanAlertTime: string;\n PlanExecutionTime: string;\n DefaultWithdrawalMethodCode: number;\n RequestAutoExecutionModeCode: number;\n CreditAutoExecutionModeCode: number;\n AttachAutoExecutionModeCode: number;\n DefaultWithdrawalMethod: WithdrawalMethod;\n RequestAutoExecutionMode: RequestAutoExecutionMode;\n CreditAutoExecutionMode: CreditAutoExecutionMode;\n AttachAutoExecutionMode: AttachAutoExecutionMode;\n UseMtCommands: boolean;\n PammServerName: string;\n PammWebInterfaceAddress: string;\n InvestorsAutoCreation: boolean;\n InvestorsAutoCreationMtServer: string;\n EmptyStatementsSending: boolean;\n RequestTab: boolean;\n ChangeMtComment: boolean;\n ChargeCommissionsBeforeWithdrawal: boolean;\n StatementDisclaimer: string;\n}\n\nexport interface ServerSettingsRequest {\n TicksFilterPercent?: string;\n TicksFilterCount?: string;\n TickFilterPercent: string;\n TickFilterCount: string;\n IncludePnlToPerformanceFee: boolean;\n DefaultAllocationMode: number;\n DefaultWithdrawalMethod: number;\n RequestAutoExecutionMode: number;\n CreditAutoExecutionMode: number;\n AttachAutoExecutionMode: number;\n DefaultIncentiveFee: number;\n MaxIncentiveFee: number;\n DefaultManagementFee: number;\n MaxManagementFee: number;\n DefaultAnnualManagementFee: number;\n MaxAnnualManagementFee: number;\n DefaultPerLotFee: number;\n DefaultPerDealFee: number;\n DefaultMinInvestment: number;\n DefaultSl: number;\n DefaultTp: number;\n DefaultSo: number;\n MmSo: number;\n SlMode: OrderMode;\n TpMode: OrderMode;\n SoMode: OrderMode;\n EcMode?: OrderMode;\n MmSoMode: OrderMode;\n DefaultEquityCallLevel: number;\n EquityCallLevelMode: OrderMode;\n EquityCallNotificationPeriod?: number;\n PlanAlertTime: string;\n PlanExecutionTime: string;\n PammWebInterfaceAddress: string;\n PammServerName: string;\n InvestorsAutoCreation: boolean;\n InvestorsAutoCreationMtServer: string;\n EmptyStatementsSending: boolean;\n RequestTab: boolean;\n ChangeMtComment: boolean;\n ChargeCommissionsBeforeWithdrawal: boolean;\n BalanceOperationDistributionMode: string;\n StatementDisclaimer: string;\n InvestorsAutoDetach: boolean;\n MmOwnFundsAutoDetach: boolean;\n InvestorVolumeStepMode: string;\n InvestorVolumeStepModeCode: number;\n // IncludeCreditInEquityAndMargin: boolean;\n PerformanceFeeCalcMode: string;\n CountCreditInAllocation: boolean;\n CountCreditInWithdrawal: boolean;\n CountCreditInRiskControl: boolean;\n}\n\nexport class MetaTraderServerSettings {\n Guid = '';\n Name = '';\n Type = 0;\n TypeStr = '';\n FreeMarginCoef = 0.0;\n StatusStr = '';\n}\n\nexport interface EditMetaTraderServerRequest {\n ServerGuid: string;\n FreeMarginCoef: number;\n ServerName: string;\n Enabled: any;\n EnableInvestorsMtLoginsSequence: boolean;\n FirstInvestorMtLoginInSequence: number;\n}\n\nexport class EditCallbackAddressesRequest {\n Callbacks = [''];\n}\n\nexport enum EditCallbackAddressesType {\n Add = 'Add',\n Delete = 'Delete',\n Edit = 'Edit'\n}\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { Investor } from '../../../types/investorTypes';\n\nexport const FETCH_INVESTOR_DETAILS = 'FETCH_INVESTORS_DETAILS ';\nexport const FETCH_INVESTOR_DETAILS_FALSE = 'FETCH_INVESTOR_DETAILS_FALSE ';\nexport const FETCH_INVESTOR_DETAILS_ATTACH_DETACH = 'FETCH_INVESTOR_DETAILS_ATTACH_DETACH';\n\nexport type FetchInvestorDetailsAction = {\n type: string;\n investorDetails: Investor;\n};\n\nexport const fetchInvestorDetailsFalse = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS_FALSE,\n investorDetails: investor\n };\n};\n\nexport const fetchInvestorDetails = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS,\n investorDetails: investor\n };\n};\n\nexport const fetchInvestorDetailsAttachDetach = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS_ATTACH_DETACH,\n investorDetails: investor\n };\n};\n\nexport function fetchInvestorDetailsFalseAsync(api: string, investorId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=false`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetailsFalse(investor)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nfunction fetchInvestorDetailsAsync(api: string, investorId: number, admin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=${!admin}`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetails(investor)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport function fetchInvestorDetailsAttachDetachAsync(api: string, investorId: number, admin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=${!admin}`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetailsAttachDetach(investor)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport default fetchInvestorDetailsAsync;\n","import { VisibilityToggle, StateToggle } from './toggles';\nimport { IncentiveAccount, OrderMode, Summary } from './sharedTypes';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum CommissionType {\n Performance = 'Performance',\n AnnualManagement = 'AnnualManagement'\n}\n\nexport enum MasterMode {\n Normal = 0,\n Disabled = 1,\n Test = 2\n}\n\nexport enum GraphicsPeriodTypes {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum AllocationModes {\n ByBalance = 0,\n ByEquity = 1\n}\n\nexport class RegularPeriod {\n [index: string]: any;\n \n PeriodType = PeriodTypes.Monthly;\n PeriodDay: number | string = 1;\n PeriodTime = '';\n ReversedDays = false;\n Valid? = true;\n}\n\nexport class PaymentPeriod extends RegularPeriod {\n CommissionType = CommissionType.Performance\n}\n\nexport interface IPaymentPeriod {\n CommissionType: CommissionType;\n PeriodType: PeriodTypes;\n PeriodDay: number | string;\n PeriodTime: string;\n ReversedDays: boolean;\n Valid: boolean;\n}\n\nexport class AccountOptionsMaster {\n CalcMasterFeeButton = VisibilityToggle.Default;\n MmConnectedInvestors = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n ShowMmOwnFunds = VisibilityToggle.Default;\n EmailNotifications = StateToggle.Default;\n LockedWithdrawalsAndDisconnections = StateToggle.Default;\n MmChangeFeeAccountsRequest = StateToggle.Default;\n ConnectDisconnectRequestsManaging = StateToggle.Default;\n}\n\nexport class OwnFunds {\n Id = 0;\n Balance = 0;\n Credit = 0;\n Equity = 0;\n EquityNoCredit = 0;\n Profit = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n AvailableFreeMargin = 0;\n AvailableFreeMarginNoCredit = 0;\n}\n\nexport class Master {\n Login = 0;\n ServerName = '';\n MtServerType = '';\n Id = 0;\n Name = '';\n Username = '';\n Email = '';\n Currency = 'USD';\n RegistrationDate = '';\n Private = false;\n Invisible = false;\n InvestorsCount = 0;\n AllocationMode = 0;\n MinInvestment = 0;\n IncentiveAccounts: Array = [new IncentiveAccount()];\n Balance = 0;\n Credit = 0;\n Equity = 0;\n EquityNoCredit = 0;\n Profit = 0;\n Margin = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n MarginLevel = 0;\n Mode = MasterMode.Normal;\n DisablingTime = null;\n TotalProfit = 0;\n Info: string | null = '';\n Bio = '';\n TermsAndConditions = '';\n PaymentPeriods: Array = [];\n StatementPeriods: Array = [new RegularPeriod()];\n UseDefaultStatementSettings = false;\n AccountOptions = new AccountOptionsMaster();\n OwnFunds = new OwnFunds();\n MtServerStatus = 0;\n MtServerStatusStr = '';\n So = '';\n SoMode = OrderMode.Off;\n MtMmAccountStatus = '';\n}\n\nexport class CreateMaster {\n LoadHistoryMonthCount = 0;\n Server = '';\n Login = 0;\n IncentiveAccounts?: Array = [new IncentiveAccount()];\n PaymentPeriods?: Array = [new PaymentPeriod()];\n StatementPeriods?: Array = [new RegularPeriod()];\n // AccountOptions = new AccountOptionsMaster();\n UseDefaultPaymentSettings = true;\n UseDefaultStatementSettings = true;\n AllocationMode = AllocationModes.ByBalance;\n MinInvestment = '';\n Name = '';\n Username = '';\n Email = '';\n}\n\nexport class UpdateMaster {\n Username? = '';\n Name? = '';\n Email? = '';\n AllocationMode? = 0;\n Mode? = MasterMode.Normal;\n MinInvestment? = 0;\n Private? = false;\n Invisible? = false;\n Bio? = '';\n TermsAndConditions? = '';\n So? = 0;\n SoMode? = '';\n}\n\nexport class Order {\n MtOrderId = 0;\n Id = 0;\n MtServer = '';\n MmId = 0;\n MmLogin = 0;\n Volume = 0;\n Type = '';\n Symbol = '';\n OpenTime = '';\n OpenPrice = '';\n CloseTime = '';\n ClosePrice = '';\n Commission = 0;\n Tax = 0;\n Swap = 0;\n Profit = 0;\n Comment = 0;\n}\n\nexport enum FundsType {\n TotalFunds = 'TotalFunds',\n // eslint-disable-next-line no-shadow\n OwnFunds = 'OwnFunds'\n}\n\nexport class RegisterMaster {\n AllocationMode = 0;\n MinInvestment = 0;\n Name = '';\n Username = '';\n Email = '';\n IncentiveAccounts = [new IncentiveAccount()];\n Server = '';\n Login = 0;\n Currency = 'USD';\n Comment = '';\n}\n\nexport interface InvestorOrder {\n MasterId: number;\n CloseTime: string;\n Comment: string;\n MasterOrderId: string;\n InvestorId: number;\n Id: string;\n MtOrderId: number;\n Volume: number;\n Symbol: string;\n Direction: number;\n OpenTime: string;\n OpenPrice: number;\n ClosePrice: number;\n Profit: number;\n Commission: number;\n Tax: number;\n Swap: number;\n RemainProfit?: number | any;\n}\n\nexport interface MasterProfit {\n masterId: number;\n profitFortnight: Array;\n}\n\nexport enum IDefaultSorting {\n login = 'login',\n id = 'id',\n popularity = 'popularity',\n profit = 'profit',\n incentive = 'incentive',\n mininvestment = 'mininvestment',\n name = 'name',\n}\n","/* eslint-disable no-nested-ternary */\nimport * as React from 'react';\nimport { Col, Form, Row } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Schema } from 'yup';\nimport InputUtils from '../../utils/validate-schema';\n\ninterface IInputProps {\n state: any;\n valueKey: string | number;\n labelTranslateKey?: string;\n schema: Schema;\n type: 'text' | 'password' | 'number';\n placeholder: string;\n disabled?: boolean;\n className?: string;\n style?: any;\n size?: any;\n inputStyle?: any;\n inline?: boolean;\n acceptZero?: boolean;\n setState(newState: any): void;\n validField?: boolean;\n setValidField?(state: boolean): void;\n}\n\nconst SimpleInput: React.FC = ({\n state,\n valueKey,\n schema,\n type,\n placeholder,\n setState,\n labelTranslateKey,\n disabled,\n className,\n style,\n size,\n inputStyle,\n inline,\n acceptZero,\n validField,\n setValidField\n}: IInputProps) => {\n\n const intl = useIntl();\n\n let errorMessageBody: JSX.Element = <>;\n\n const [modified, setModified] = React.useState(false);\n let isInvalid: any = false;\n\n const wrapper = (event: React.ChangeEvent) => {\n if (!modified) setModified(true);\n\n const value = (type === 'number' && event.target.value !== '') ? Number(event.target.value) : event.target.value;\n const newState = { ...state, [valueKey]: value };\n setState(newState);\n if (setValidField) setValidField(false);\n };\n if (modified) {\n isInvalid = InputUtils.validateSchema(schema, state, valueKey);\n }\n\n if (disabled) {\n errorMessageBody =
;\n } else if (isInvalid || validField) {\n isInvalid = InputUtils.validateSchema(schema, state, valueKey);\n errorMessageBody = isInvalid.errors?.map((error: string, index: number) => (\n \n {error}\n \n ));\n }\n\n // const resultClassName = `flex-fill ${className || 'simple-input_min-width'}`;\n\n let value;\n\n if (state[valueKey] === 0) {\n value = 0;\n } else if (state[valueKey]) {\n value = state[valueKey];\n } else {\n value = '';\n }\n\n const inlineInputStyle = {\n borderRight: 'none',\n borderLeft: 'none',\n borderTop: 'none',\n borderRadius: 0,\n fontSize: 11\n } as React.CSSProperties;\n\n const desktopBody = (\n <>\n \n \n {( valueKey === 'Phone' \n || valueKey === 'LinkToken' \n || valueKey === 'Country'\n || valueKey === 'MinInvestment'\n || valueKey === 'Comment'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.highwatermark.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.email.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.name.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.username.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.username.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.name.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.email.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.minInvestment.label'\n || labelTranslateKey === 'createAccount.investor.synchronizationInformation.mtlogin.label' \n || labelTranslateKey === 'investorDetails.modal.editInvestor.password.label'\n || labelTranslateKey === 'editUser.admin.name.label'\n || labelTranslateKey === 'editUser.admin.login.label'\n || labelTranslateKey === 'editUser.admin.email.label'\n || labelTranslateKey === 'editUser.admin.password.label')\n ? null\n : *}\n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size={size || null}\n className={className}\n />\n {isInvalid\n ? errorMessageBody\n : (\n (valueKey === 'Password')\n ? (\n
\n {intl.formatMessage({ id: 'createAccount.combination.password' })}\n
\n )\n :
)}\n \n );\n\n const mobileBody = (\n \n \n \n \n {(valueKey === 'Phone' \n || valueKey === 'LinkToken' \n || valueKey === 'Country'\n || valueKey === 'Investments'\n || valueKey === 'MinInvestment'\n || valueKey === 'Comment'\n || valueKey === 'Server'\n || valueKey === 'MinInvestment'\n || labelTranslateKey === 'registerUser.master.mtAccountInformation.login.label'\n )\n ? null\n : *}\n \n \n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size=\"sm\"\n style={inline ? inlineInputStyle : {}}\n className={className}\n />\n {isInvalid ? errorMessageBody :
}\n \n \n );\n\n return (\n labelTranslateKey\n ? (inline ? mobileBody : desktopBody) : (\n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size={size || null}\n style={inputStyle || null}\n className={className}\n />\n {(isInvalid || validField) ? errorMessageBody :
}\n \n )\n );\n};\n\nexport default SimpleInput;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport headersBuilder, { Method } from '../../../utils/request';\n\nexport const FETCH_CONFIG = 'FETCH_CONFIG';\nexport const FETCH_LANG_JSON = 'FETCH_LANG_JSON';\nexport const FETCH_CONFIG_SHARED = 'FETCH_CONFIG_SHARED';\n\nexport type FetchConfigAction = {\n type: string;\n config: any;\n};\n\nexport type FetchLanguageJSONAction = {\n type: string;\n langFile: any;\n};\n\nconst fetchConfig = (config: any): FetchConfigAction => {\n return {\n type: FETCH_CONFIG,\n config\n };\n};\n\nconst fetchConfigShared = (config: any): FetchConfigAction => {\n return {\n type: FETCH_CONFIG_SHARED,\n config\n };\n};\n\nconst fetchConfigAsync = () => {\n return (dispatch: Dispatch): void => {\n fetch('/conf.json').then((response) =>\n response\n .json()\n .then((json: any) => {\n LocalStorageUtils.putValueToLocalStorage('apiUrl', json?.api);\n LocalStorageUtils.putValueToLocalStorage(\n 'hideRegisterButton',\n json.flags.hideRegisterButton.toString()\n );\n // PAMM-2341 TODO\n // LocalStorageUtils.putValueToLocalStorage(\n // 'showRequestTab',\n // json.flags.showRequestTab.toString()\n // );\n LocalStorageUtils.putValueToLocalStorage(\n 'showMmRegistrator',\n json.flags.showMmRegistrator.toString()\n );\n LocalStorageUtils.putValueToLocalStorage(\n 'customColors',\n JSON.stringify(json.customColors)\n );\n LocalStorageUtils.putValueToLocalStorage(\n 'customColorsGeneralUser',\n JSON.stringify(json.customColorsGeneralUser)\n );\n\n dispatch(fetchConfig(json));\n })\n .catch((error) => Errors.throwErrorMessage(error))\n );\n };\n};\n\nconst fetchLanguageJSON = (langFile: any): FetchLanguageJSONAction => {\n return {\n type: FETCH_LANG_JSON,\n langFile\n };\n};\n\nexport const fetchSharedSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/common/shared`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => {\n // PAMM-2341 TODO\n // LocalStorageUtils.putValueToLocalStorage(\n // 'showRequestTab',\n // json.RequestTab.toString()\n // );\n dispatch(fetchConfigShared(json));\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport const fetchLanguageJSONAsync = (lang: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`/i18n/${lang}.json`)\n .then((response) => response.json())\n .then((json: any) => {\n dispatch(fetchLanguageJSON(json));\n })\n .catch((error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default fetchConfigAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { Master } from '../../../types/masterTypes';\n\nexport const FETCH_MASTER_DETAILS = 'FETCH_MASTER_DETAILS ';\nexport const FETCH_MASTER_DETAILS_DEFAULT = 'FETCH_MASTER_DETAILS_DEFAULT ';\nexport const RESET_MASTER_DETAILS = 'RESET_MASTER_DETAILS';\n\n\nexport type FetchDetailsAction = {\n type: string;\n masterDetails: Master;\n}\nexport type FetchDetailsDefaultAction = {\n type: string;\n masterDetailsDefault: Master;\n}\n\nexport const fetchMasterDetails = (master: Master): FetchDetailsAction => {\n return {\n type: FETCH_MASTER_DETAILS,\n masterDetails: master\n }\n};\n\n\nexport const fetchMasterDetailsDefault = (master: Master): FetchDetailsDefaultAction => {\n return {\n type: FETCH_MASTER_DETAILS_DEFAULT,\n masterDetailsDefault: master\n }\n};\n\nexport const resetMasterDetailsAC = () => ({ type: RESET_MASTER_DETAILS });\n\n\nfunction fetchMasterDetailsAsync(api: string, masterId: number, notAdmin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/${masterId}?returnAccountOptionsValues=${!!notAdmin}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((master: any) => {\n if (notAdmin === true) {\n dispatch(fetchMasterDetailsDefault(master))\n } else {\n dispatch(fetchMasterDetails(master))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterDetailsAsync;\n","// const getValuesFromDateTimeString = (dateTimeString: string): Array => {\n// // String with the format 2020-04-08T08:59:20+02:00\n// const date: Array = dateTimeString.substring(0, 10).split('-');\n// const time: Array = dateTimeString.substring(11, 16).split(':');\n\n// const year: string = date[0];\n// const month: string = date[1];\n// const day: string = date[2];\n\n// const hour: string = time[0];\n// const minute: string = time[1];\n\n// return [day, month, year, hour, minute];\n// };\n\nclass PAMMDateTime {\n private date: Array;\n private time: Array;\n\n public year: string;\n public month: string;\n public day: string;\n\n public hours: string;\n public minutes: string;\n\n constructor(dateTimeString: string) {\n this.date = dateTimeString?.substring(0, 10).split('-');\n this.time = dateTimeString?.substring(11, 16).split(':');\n\n [this.year, this.month, this.day] = this.date ?? [];\n [this.hours, this.minutes] = this.time ?? [];\n }\n\n public getDateTimeEN(): string {\n return `${this.getDateEN()} - ${this.getTimeEN()}`;\n }\n\n public getDateTimeRU(): string {\n return `${this.getDateRU()} - ${this.getTimeRU()}`;\n }\n\n public getDateTimeRuUTC(timeZone: number): string {\n return `${this.getDateRU()} - ${this.getTimeRU()} \n UTC${timeZone >= 0 ? '+' : '-'}${Math.abs(timeZone) < 10 ? `0${Math.abs(timeZone)}` : Math.abs(timeZone)}:00`;\n }\n\n public getDateEN(): string {\n return `${this.month}/${this.day}/${this.year}`;\n }\n\n public getDateRU(): string {\n return `${this.day}/${this.month}/${this.year}`;\n }\n\n public getTimeEN(): string {\n // return `${(+this.hours > 12) ? `0${+this.hours - 12}` : this.hours}:${this.minutes} ${+this.hours >= 12 ? 'PM' : 'AM'}`;\n if (+this.hours > 12) {\n\n if (+this.hours === 22 || +this.hours === 23) {\n return `${+this.hours - 12}:${this.minutes} ${'PM'}`\n }\n\n return `0${+this.hours - 12}:${this.minutes} ${'PM'}`\n }\n\n if (+this.hours === 12) {\n return `${+this.hours}:${this.minutes} ${'PM'}`\n }\n\n return `${this.hours}:${this.minutes} ${'AM'}`\n }\n\n public getTimeRU(): string {\n return `${this.hours}:${this.minutes}`;\n }\n\n public getYearMonthDayTime(): string {\n return `${this.year}/${this.month}/${this.day} - ${this.hours}:${this.minutes}`;\n }\n\n public getYearMonthDay(): string {\n return `${this.year}/${this.month}/${this.day}`;\n }\n\n public getDateObject(): Date {\n const dateObj = new Date();\n\n dateObj.setUTCFullYear(Number(this.year));\n dateObj.setUTCMonth(Number(this.month) - 1);\n dateObj.setUTCDate(Number(this.day));\n\n return dateObj;\n }\n}\n\nexport const timeConverter = (timestamp: number, fromJournal?: boolean): string => {\n const a = fromJournal ? new Date(timestamp * 1000) : new Date(timestamp / 1000);\n const year = a.getFullYear();\n const month = (a.getMonth() + 1) < 10 ? `0${a.getMonth() + 1}` : a.getMonth() + 1;\n const day = a.getDate() < 10 ? `0${a.getDate()}` : a.getDate();\n const hour = a.getHours() < 10 ? `0${a.getHours()}` : a.getHours();\n const min = a.getMinutes() < 10 ? `0${a.getMinutes()}` : a.getMinutes();\n const sec = a.getSeconds() < 10 ? `0${a.getSeconds()}` : a.getSeconds();\n\n const dateTime = `${year}-${month}-${day}T${hour}:${min}:${sec}%2b03:00`;\n\n return dateTime;\n}\n\nexport const getDateFortnightAgo = (): Date => {\n const date = new Date();\n\n date.setUTCHours(0, 0, 0);\n\n date.setUTCDate(date.getDate() - 14);\n\n return date;\n}\n\nexport const getSpecificDate = (daysAgo: number, hoursAgo?: number): Date => {\n const date = new Date();\n\n date.setUTCHours(hoursAgo ? date.getUTCHours() - hoursAgo : 0, 0, 0, 0);\n\n if (daysAgo) {\n date.setUTCDate(date.getUTCDate() - daysAgo);\n }\n\n return date;\n}\n\nexport const isDateValid = (date: any): boolean => {\n return Object.prototype.toString.call(date) === '[object Date]';\n}\n\nexport const isWeekDay = (date: Date): boolean => {\n const day = date.getDay();\n\n return day !== 0 && day !== 6;\n}\n\nexport function isLeapYear(year: number) {\n if (year % 4 === 0) {\n if (year % 100 !== 0) {\n if (year % 400 === 0) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport const getMonthLength = (date: Date): number => {\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n case 12:\n return 31;\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n case 2:\n return isLeapYear(year) ? 29 : 28;\n default:\n return 0;\n }\n}\n\nexport const getFromDateForRequest = (startDate: Date): string => {\n let fromMonth: string;\n let fromDay: string;\n\n if (startDate.getMonth() + 1 < 10) {\n fromMonth = `0${startDate.getMonth() + 1}`;\n } else {\n fromMonth = (startDate.getMonth() + 1).toString();\n }\n\n if (startDate.getDate() < 10) {\n fromDay = `0${startDate.getDate()}`;\n } else {\n fromDay = (startDate.getDate()).toString();\n }\n\n return `${startDate.getFullYear()}-${fromMonth}-${fromDay}`;\n};\n\nexport const getToDateForRequest = (endDate: Date): string => {\n let toMonth: string;\n let toDay: string;\n\n if (endDate.getMonth() + 1 < 10) {\n toMonth = `0${endDate.getMonth() + 1}`;\n } else {\n toMonth = (endDate.getMonth() + 1).toString();\n }\n\n if (endDate.getDate() < 10) {\n toDay = `0${endDate.getDate()}`;\n } else {\n toDay = (endDate.getDate()).toString();\n }\n\n return `${endDate.getFullYear()}-${toMonth}-${toDay}`;\n};\n\nexport function getOneDayAhead(date: Date, returnDateArray?: boolean): any {\n let leapYear = false;\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const dayOfWeek = date.getDay();\n let amountToIncrement: number;\n\n leapYear = isLeapYear(year);\n\n switch (dayOfWeek) {\n case 5:\n amountToIncrement = 3;\n break;\n case 6:\n amountToIncrement = 2;\n break;\n default:\n amountToIncrement = 1;\n break;\n }\n\n const dateObject = {\n year,\n month,\n day\n };\n\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n if ((day + amountToIncrement) > 31) {\n dateObject.day = day + amountToIncrement - 31;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 4:\n case 6:\n case 9:\n case 11:\n if ((day + amountToIncrement) > 30) {\n dateObject.day = day + amountToIncrement - 30;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 2:\n if (leapYear) {\n if ((day + amountToIncrement) > 29) {\n dateObject.day = day + amountToIncrement - 29;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n if ((day + amountToIncrement) > 28) {\n dateObject.day = day + amountToIncrement - 28;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 12:\n if ((day + amountToIncrement) > 31) {\n dateObject.day = day + amountToIncrement - 31;\n dateObject.month = 1;\n dateObject.year = year + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n default:\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n}\n\nexport const getMonthByNumber = (number: number): string => {\n const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n return months[number - 1];\n}\n\nexport const getUnixDawnOfTime = (): Date => {\n return new Date(1970, 0, 1);\n}\n\nexport const getHourAgo = (): Date => {\n const hourAgo = new Date();\n hourAgo.setUTCHours(hourAgo.getUTCHours() - 1);\n\n return hourAgo;\n}\n\nexport default PAMMDateTime;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\n\nexport const FETCH_REQUESTS_COUNT = 'FETCH_REQUESTS_COUNT';\n\nexport type FetchRequestsCountAction = {\n type: string;\n count: number;\n}\n\nexport const fetchRequestsCount = (count: number): FetchRequestsCountAction => {\n return {\n type: FETCH_REQUESTS_COUNT,\n count\n };\n};\n\nfunction fetchRequestsCountAsync(api: string) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/requests/count?statusFilter=new`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((count: any) => dispatch(fetchRequestsCount(count as number)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchRequestsCountAsync;\n","import { Schema } from 'yup';\n\nfunction validateSchema(schema: Schema, state: S, valueKey?: keyof S): any {\n if (valueKey) {\n try {\n schema.validateSync(state[valueKey]);\n } catch (e) {\n return e;\n }\n } else {\n try {\n schema.validateSync(state);\n } catch (e) {\n return e;\n }\n }\n\n return false;\n}\n\nconst InputUtils = {\n validateSchema\n};\n\nexport default InputUtils;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary, SummaryType } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\nimport { setLoadingStatus } from '../../actions/setLoadingStatus';\n\nexport const FETCH_DEPOSITS = 'FETCH_DEPOSIT';\nexport const FETCH_INVESTMENTS = 'FETCH_INVESTMENTS';\nexport const FETCH_PROFIT = 'FETCH_PROFIT';\nexport const FETCH_PROFIT_PER_PERIOD = 'FETCH_PROFIT_PER_PERIOD';\nexport const FETCH_VOLUMES = 'FETCH_VOLUMES';\nexport const FETCH_INVESTORS_SUMMARY = 'FETCH_INVESTORS_SUMMARY';\n\nconst getSummaryActionType = (summaryType: SummaryType): string => {\n switch (summaryType) {\n case SummaryType.Deposits:\n return FETCH_DEPOSITS;\n case SummaryType.Investments:\n return FETCH_INVESTMENTS;\n case SummaryType.Profit:\n return FETCH_PROFIT;\n case SummaryType.Volumes:\n return FETCH_VOLUMES;\n case SummaryType.Investors:\n return FETCH_INVESTORS_SUMMARY;\n default:\n return '';\n }\n}\n\nexport type FetchSummaryAction = {\n type: string;\n summary: Array;\n};\n\nconst fetchSummary = (summary: Array, summaryType: string): FetchSummaryAction => {\n return {\n type: summaryType,\n summary\n };\n};\n\nconst fetchSummaryAsync = (api: string, period: GraphicsPeriodTypes, summaryType: SummaryType, dateFrom: Date, dateTo: Date, id?: number, calcMethod?: string) => {\n let base = '';\n let query = '';\n\n // const dateTimeDateFrom = timeConverter(Math.round(dateFrom.getTime() * 1000));\n // const dateTimeDateTo = timeConverter(Math.round(dateTo.getTime() * 1000));\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (id) {\n base = `/${id}?period=${period}`;\n } else {\n base = `?period=${period}`;\n }\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n if (calcMethod) query += `&calcMethod=${calcMethod}`;\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/summary/${summaryType}${base}${query}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchSummary(data, getSummaryActionType(summaryType))))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchSummaryAsync;\n","const getCurrencySymbol = (currency: string, currenciesConfig?: Record): string => {\n // switch (currency) {\n // case 'USD':\n // return '$';\n // case 'EUR':\n // return '€';\n // case 'GBP':\n // return '£';\n // case 'CHF':\n // return '₣';\n // case 'JPY':\n // return '¥';\n // default:\n // return '';\n // }\n let result = '';\n if (currenciesConfig) {\n const currenciesConfigArray = Object.keys(currenciesConfig)\n \n if (currenciesConfigArray.includes(currency)) {\n result = currenciesConfig[currency];\n }\n\n else result = currency\n \n }\n return result;\n};\n\nexport default getCurrencySymbol;\n","export const mobileWidth = 959;\nexport const phoneToTabletBreakPoint = 750;","import { Investor } from '../types/investorTypes';\n\nexport function abbreviatedNumber(value: number): string {\n if (value > 1_000_000) {\n return `${(value / 1_000_000).toFixed(2)} mln`;\n } if (value > 1_000_000_000) {\n return `${(value / 1_000_000_000).toFixed(2)} bln`;\n }\n\n return value.toString();\n}\n\nexport function spaceSeparatedThousands(value: number, noDecimals?: boolean, masterDetailsBox?: boolean): string {\n if (Math.abs(value) > 1_000_000 && masterDetailsBox) {\n return abbreviatedNumber(Math.abs(value));\n }\n\n if (!value) return '0';\n\n if (Number.isNaN(value % 10)) {\n return '-';\n }\n\n const nStr = value.toString();\n const x = nStr.split('.');\n let x1 = x[0];\n\n // Change for showing either a dot or a comma\n const x2 = x.length > 1 ? `.${ x[1]}` : '.00';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n // eslint-disable-next-line no-useless-concat\n x1 = x1.replace(rgx, '$1' + ' ' + '$2');\n }\n return noDecimals ? x1 : (x1 + x2);\n}\n\nexport function getEquityOverInvestments(investor: Investor): number {\n if (!investor?.Investments) {\n return 0;\n }\n\n return Number(((investor.EquityNoCredit - investor.Investments) / Math.abs(investor.Investments) * 100).toFixed(2));\n}\n\nexport const getSign = (value: number): string => {\n if (value > 0) {\n return '+';\n } if (value < 0) {\n return '-';\n }\n\n return '';\n};\n","import { RegularPeriod } from './masterTypes';\nimport { RequestSchedule } from './requestTypes';\nimport { OperationType } from './settingsTypes';\n\nimport { IncentiveAccount, OrderMode } from './sharedTypes';\nimport { VisibilityToggle, StateToggle, StateRequestToggle } from './toggles';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum GraphicsPeriodTypes {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport class AccountOptionsInvestor {\n InvestorStatementButton = VisibilityToggle.Default;\n MasterListButton = VisibilityToggle.Default;\n MasterList = VisibilityToggle.Default;\n CalcInvestorFeeButton = VisibilityToggle.Default;\n ChangeSlTpButton = VisibilityToggle.Default;\n InvestorOpenOrdersTab = VisibilityToggle.Default;\n InvestorHistoryTab = VisibilityToggle.Default;\n MasterOpenOrdersTab = VisibilityToggle.Default;\n MasterHistoryTab = VisibilityToggle.Default;\n InvestorWithdrawButton = VisibilityToggle.Default;\n InvestorCreditButton = VisibilityToggle.Default;\n InvestorMmDetails = VisibilityToggle.Default;\n InvestorMmBalanceDetails = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n DetachAction = StateRequestToggle.Default;\n EmailNotifications = StateToggle.Default;\n DepositNotification = StateToggle.Default;\n WithdrawalNotification = StateToggle.Default;\n ConnectNotification = StateToggle.Default;\n DisconnectNotification = StateToggle.Default;\n PerformanceFeeNotification = StateToggle.Default;\n AnnualManagementFeeNotification = StateToggle.Default;\n}\n\nexport enum InvestorMode {\n Normal = 0,\n Suspended = 1,\n AttemptingDetach = 2,\n Disabled = 3\n}\n\nexport class IncentiveSummary {\n IncentiveFee = 0;\n ManagementFee = 0;\n AnnualManagementFee = 0;\n PerLotFee = 0;\n PerDealFee = 0;\n}\n\nexport class Investor {\n Id = 0;\n Name = '';\n Username = '';\n LinkToken = '';\n Country = '';\n Phone = '';\n Email = '';\n Currency = 'USD';\n Sl = 0;\n Tp = 0;\n So = 0;\n SlPercent = 0;\n TpPercent = 0;\n SoPercent = 0;\n EquityCallLevel = 0;\n SlMode = OrderMode.Off;\n TpMode = OrderMode.Off;\n SoMode = OrderMode.Off;\n EquityCallLevelMode = OrderMode.Off;\n MasterId = 0;\n IsOwnFunds = false;\n Balance = 0;\n Investments = 0;\n Credit = 0;\n LastChargeBalance = 0;\n LastChargeTime = '';\n Equity = 0;\n EquityNoCredit = 0;\n Margin = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n MarginLevel = 0;\n AvailableFreeMargin = 0;\n AvailableFreeMarginNoCredit = 0;\n Mode = InvestorMode.Normal;\n DisablingTime = null;\n AttachTime = '';\n CreationTime = '';\n TotalProfit = 0;\n HighWaterMark = 0;\n CurrentProfit = 0;\n Profit = 0;\n IncentiveAccountsServer = '';\n IncentiveAccounts = [new IncentiveAccount()];\n IncentiveSummary = new IncentiveSummary();\n AccountOptions = new AccountOptionsInvestor();\n Server = '';\n MtServerType = '';\n StatementPeriods: Array = [new RegularPeriod()];\n IsTestInvestor = false;\n Login = 0;\n MmName = '';\n Password = '';\n UseDefaultStatementSettings = false;\n DisconnectEquity = 0;\n\n}\n\nexport interface IInvestorsReport {\n Name: string;\n MtServerGuid: string;\n MtLogin: number;\n Id: number;\n Mm: number;\n Balance: number;\n Equity: number;\n Credit: number;\n DisconnectEquity: number;\n Investments: number;\n Profit: number;\n TotalProfit: number;\n CreatedAt: number; \n}\n\nexport class CreateInvestor {\n Username = '';\n Password = '';\n Name = '';\n Email = '';\n Phone = '';\n Country = '';\n LinkToken = '';\n Currency = 'USD';\n Server = '';\n IncentiveAccountsServer = '';\n IncentiveAccounts?: Array = [new IncentiveAccount()];\n StatementPeriods?: Array = [new RegularPeriod()];\n UseDefaultStatementSettings = true;\n Login? = 0;\n}\n\nexport class UpdateInvestor {\n Username? = '';\n Name? = '';\n Password? = '';\n Email? = '';\n Country? = '';\n Phone? = '';\n LinkToken? = '';\n Mode? = InvestorMode.Normal;\n SlMode? = '';\n Sl? = 0;\n TpMode? = '';\n Tp? = 0;\n SoMode? = '';\n So? = 0;\n EquityCallLevelMode? = '';\n EquityCallLevel? = 0;\n HighWaterMark? = 0;\n MinInvestment? = 10000;\n IsTestInvestor? = false;\n}\n\nexport class UpdateInvestorBalance {\n AccountId = 0;\n Amount = 0;\n Currency = '';\n Schedule? = RequestSchedule.Instant;\n Method? = '';\n Comment = '';\n CheckMargin? = true;\n OperationType? = OperationType.Balance;\n}\n\nexport class UpdateInvestorBalanceTransfer {\n FromInvestorId = 0;\n ToInvestorId = 0;\n Amount = 0;\n Currency = '';\n Method? = '';\n Comment? = '';\n\n}\n\nexport enum UpdateBalanceType {\n Deposit = 'Deposit',\n Withdrawal = 'Withdrawal'\n}\n\nexport enum UpdateCreditType {\n CreditIn = 'CreditIn',\n CreditOut = 'CreditOut'\n}\n\nexport class CreateInvestorFeeSetFlags {\n performanceFeeEnabled = false;\n managementFeeEnabled = false;\n annualManagementFeeEnabled = false;\n perLotDealFeeEnabled = false;\n}\n\nexport class RegisterInvestor {\n Name = '';\n Username = '';\n Country = '';\n Phone = '';\n Email = '';\n Currency = 'USD';\n Investments = 0;\n Comment = '';\n}\n\nexport class UpdateInvestorCredit {\n AccountId = 0;\n Amount = 0;\n Currency = '';\n Schedule? = RequestSchedule.Instant;\n Comment = '';\n Expiration? = 0;\n}\n\nexport class CalcIncentiveFee {\n Ids = [0];\n}\n\nexport enum LimitOrderTypes {\n Sl = 'Sl',\n Tp = 'Tp',\n So = 'So',\n Ec = 'Ec'\n}\n\nexport interface IInvestorsMassAttach { \n MasterId: number;\n InvestorIds: Array;\n}\n\nexport interface IInvestorsMassDetach { \n InvestorIds: Array;\n}\n\n","import { Dispatch } from 'redux';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus, { setLoadingStatusConnectedInvestors } from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Investor } from '../../../types/investorTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport const FETCH_INVESTORS = 'FETCH_INVESTORS';\nexport const RESET_DATA_INVESTORS = 'RESET_DATA_INVESTORS';\nexport const UPDATE_INVESTORS = 'UPDATE_INVESTORS';\nexport const SELECTED_LINKED_ACCOUNT = 'SELECTED_LINKED_ACCOUNT';\n\nexport type FetchInvestorsAction = {\n type: string;\n investors: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport type selectedLinkedAccountAction = {\n type: string;\n isSelected: boolean;\n}\n\nexport const selectedLinkedAccountAC = (isSelected: boolean): selectedLinkedAccountAction => {\n return {\n type: SELECTED_LINKED_ACCOUNT,\n isSelected\n };\n};\n\nexport const fetchInvestors = (\n investors: Array,\n paginationInfo: PaginationInfo,\n): FetchInvestorsAction => {\n return {\n type: FETCH_INVESTORS,\n investors,\n paginationInfo,\n };\n};\n\n\nexport const resetDataInvestorsAC = () => ({ type: RESET_DATA_INVESTORS });\n\nexport const updateInvestorsAC = (investors: any) => ({ type: UPDATE_INVESTORS, investors });\n\nfunction fetchInvestorsAsync(\n api: string,\n linkToken?: string,\n filter?: boolean,\n mmId?: number,\n page?: number,\n limit?: number,\n query?: string,\n sortField?: string,\n direction?: string\n): any {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (filter) queryString += '&filter=disabled';\n if (query) queryString += `&query=${query}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (mmId) queryString += `&masterId=${mmId}`;\n if (linkToken) queryString += `&linkToken=${linkToken}`;\n\n if (!LocalStorageUtils.localStorageKeyExists('investors')) {\n LocalStorageUtils.putValuesToLocalStorage('investors', [\n 'id=true',\n 'mtLogin=true',\n 'name=true',\n 'currency=true',\n 'balance=true',\n 'credit=true',\n 'equity=true',\n // 'disconnectEquity=true',\n 'profit=true',\n 'margin=true',\n 'masterId=true',\n 'masterName=true'\n ]);\n }\n\n return (dispatch: Dispatch) => {\n dispatch(setLoadingStatus(true));\n dispatch(setLoadingStatusConnectedInvestors(true));\n\n fetch(`${api}/investors${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchInvestors(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => {\n dispatch(setLoadingStatusConnectedInvestors(false));\n dispatch(setLoadingStatus(false));\n });\n };\n}\n\nexport default fetchInvestorsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\n\nexport const FETCH_PROFIT = 'FETCH_PROFIT';\nexport const FETCH_PROFIT_PER_PERIOD = 'FETCH_PROFIT_PER_PERIOD';\nexport const FETCH_ARRAY_OF_PROFITS = 'FETCH_ARRAY_OF_PROFITS';\nexport const FETCH_PROFIT_OVERALL = 'FETCH_PROFIT_OVERALL';\n\nexport type FetchProfitAction = {\n type: string;\n profitFortnight: Array;\n};\n\nexport type FetchArrayOfProfitsAction = {\n type: string;\n masterId: number;\n profitFortnight: Array;\n};\n\nconst fetchProfit = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT,\n profitFortnight\n };\n};\n\nconst fetchProfitPerPeriod = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT_PER_PERIOD,\n profitFortnight\n };\n};\n\nconst fetchProfitOverall = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT_OVERALL,\n profitFortnight\n };\n};\n\nconst fetchArrayOfProfits = (masterId: number, profitFortnight: Array): FetchArrayOfProfitsAction => {\n return {\n type: FETCH_ARRAY_OF_PROFITS,\n masterId,\n profitFortnight\n };\n};\n\nconst fetchProfitAsync = (api: string, id: number, period: GraphicsPeriodTypes, dateFrom: Date, dateTo: Date, calcMethod?: string, isArray?: boolean) => {\n let query = `${id}?period=${period}`;\n\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n if (calcMethod) query += `&calcMethod=${calcMethod}`;\n\n return (dispatch: Dispatch): void => {\n fetch(`${api}/summary/profit/${query}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (calcMethod === 'running') {\n dispatch(fetchProfitPerPeriod(data));\n } \n else if (calcMethod === 'RunningWithPreviousValue') {\n dispatch(fetchProfitOverall(data));\n } \n else {\n dispatch(fetchProfit(data));\n }\n\n if (isArray) {\n dispatch(fetchArrayOfProfits(id, data));\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchProfitAsync;\n","import { Dispatch } from 'redux';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Master } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { PAMMState } from '../../reducers/rootReducer';\nimport { AccountType } from '../../../types/authTypes';\nimport { fetchMasterDetails } from './fetchMasterDetails';\n\nexport const FETCH_MASTERS = 'FETCH_MASTERS';\nexport const FETCH_MASTERS_DEFAULT = 'FETCH_MASTERS_DEFAULT';\n\nexport type FetchMastersAction = {\n type: string;\n masters: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport const fetchMasters = (\n masters: Array,\n paginationInfo: PaginationInfo\n): FetchMastersAction => {\n return {\n type: FETCH_MASTERS,\n masters,\n paginationInfo\n };\n};\n\n// masters default details on investors pages\nexport type FetchMastersDefaultAction = {\n type: string;\n mastersDefault: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport const fetchMastersDefault = (\n mastersDefault: Array,\n paginationInfo: PaginationInfo\n): FetchMastersDefaultAction => {\n return {\n type: FETCH_MASTERS_DEFAULT,\n mastersDefault,\n paginationInfo\n };\n};\n\n// TODO переделать получение инфы о пользователе\nexport const getInfoMastersThunkAC =\n () =>\n async (dispatch: Dispatch, getState: () => PAMMState): Promise => {\n const { api } = getState().configReducer;\n const userLS = LocalStorageUtils.getValueFromLocalStorage('user');\n const userInfoAtLSJson = userLS ? JSON.parse(userLS) : {};\n\n // TODO исправить бек на инвесторе Value на MM Values\n const generateAccountOptions = () => {\n switch (userInfoAtLSJson.AccountType) {\n case AccountType.Master:\n return 'returnAccountOptionsValues=true';\n\n case AccountType.Investor:\n return 'returnAccountOptionsValue=true';\n\n default:\n return '';\n }\n };\n\n const generateFetchRoute = () => {\n switch (userInfoAtLSJson.AccountType) {\n case AccountType.Master:\n return 'masters';\n\n case AccountType.Admin:\n return 'admins';\n\n case AccountType.Investor:\n return 'investors';\n\n default:\n return '';\n }\n };\n if (userInfoAtLSJson.AccountType !== AccountType.Admin) {\n try {\n await dispatch(setLoadingStatus(true));\n const response = await fetch(\n `${api}/${generateFetchRoute()}/${userInfoAtLSJson?.Id}?${generateAccountOptions()}`,\n headersBuilder(Method.GET)\n );\n const userData = await response.json();\n const updateUser = {\n ...userInfoAtLSJson,\n AccountInfo: userData\n };\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(updateUser));\n dispatch(setLoadingStatus(false));\n } catch (e) {\n Errors.throwErrorMessage(e);\n }\n }\n };\n\nfunction fetchMastersAsync(\n api: string,\n showInactive: boolean,\n showTest: boolean,\n hideNegativeProfitMasters: boolean | null,\n page?: number,\n limit?: number,\n query?: string,\n sortField?: string,\n direction?: string,\n returnAccountOptionsValues?: boolean | null\n): any {\n let queryString = `?page=${page}`;\n\n if (hideNegativeProfitMasters) {\n queryString += '&hideNegativeProfitMasters=true';\n } else {\n queryString += '&hideNegativeProfitMasters=false';\n }\n if (limit) queryString += `&limit=${limit}`;\n if (query) queryString += `&query=${query}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (returnAccountOptionsValues) queryString += `&returnAccountOptionsValues=${returnAccountOptionsValues}`;\n if (showInactive && showTest) {\n queryString += '&filter=disabled,test';\n } else if (showInactive) {\n queryString += '&filter=disabled';\n } else if (showTest) {\n queryString += '&filter=test';\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('masters')) {\n LocalStorageUtils.putValuesToLocalStorage('masters', [\n 'id=true',\n 'login=true',\n 'name=true',\n 'currency=true',\n 'balance=true',\n 'credit=true',\n 'equity=true',\n 'profit=true',\n 'margin=true',\n 'ownFunds=true',\n 'connect=true'\n ]);\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('showInactiveMasters')) {\n LocalStorageUtils.putValueToLocalStorage('showInactiveMasters', 'false');\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('showTestMasters')) {\n LocalStorageUtils.putValueToLocalStorage('showTestMasters', 'false');\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('hideNegativeProfitMasters')) {\n LocalStorageUtils.putValueToLocalStorage('hideNegativeProfitMasters', 'false');\n }\n\n return (dispatch: Dispatch) => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (returnAccountOptionsValues) {\n dispatch(fetchMastersDefault(data.Data, data.PaginationInfo))\n } else {\n dispatch(fetchMasters(data.Data, data.PaginationInfo))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport default fetchMastersAsync;\n","import { ConfigFlags, SharedConfig } from '../../types/sharedTypes';\nimport { FETCH_CONFIG, FetchConfigAction, FETCH_LANG_JSON, FetchLanguageJSONAction, FETCH_CONFIG_SHARED } from '../actions/shared/fetchConfig';\n\nexport interface ConfigState {\n api: string;\n copyright: string;\n customColor: string;\n customColorsGeneralUser: Record;\n languages: Record;\n loginPageDisclaimer: string;\n redirectRegistrationURL: string;\n welcomeMessage: string;\n langFile: Record;\n flags: ConfigFlags;\n defaultLanguage: string;\n defaultSorting: Record;\n currency: Record;\n sharedConfig: SharedConfig;\n}\n\nconst initialState: ConfigState = {\n api: '',\n copyright: '',\n customColor: '',\n customColorsGeneralUser: {},\n languages: {},\n loginPageDisclaimer: '',\n redirectRegistrationURL: '',\n welcomeMessage: '',\n langFile: {},\n flags: {} as ConfigFlags,\n defaultLanguage: '',\n defaultSorting: {},\n currency: {},\n sharedConfig: {} as SharedConfig\n};\n\nconst configReducer = (state: ConfigState = initialState, action: FetchConfigAction & FetchLanguageJSONAction): ConfigState => {\n switch (action.type) {\n case FETCH_CONFIG:\n return {\n ...state,\n api: action.config.api,\n copyright: action.config.copyright,\n customColor: action.config.customColor,\n customColorsGeneralUser: action.config.customColorsGeneralUser,\n languages: action.config.languages,\n loginPageDisclaimer: action.config.loginPageDisclaimer,\n redirectRegistrationURL: action.config.redirectRegistrationURL,\n welcomeMessage: action.config.welcomeMessage,\n flags: action.config.flags,\n defaultLanguage: action.config.defaultLanguage,\n defaultSorting: action.config.defaultSorting,\n currency: action.config.currency\n };\n case FETCH_LANG_JSON:\n return {\n ...state,\n langFile: action.langFile\n }\n case FETCH_CONFIG_SHARED:\n return {\n ...state, \n sharedConfig: action.config\n }\n default:\n return state;\n }\n}\n\nexport default configReducer;\n","import {\n LOGIN,\n LOGOUT,\n AuthAction,\n LOGIN_START,\n LOGIN_SUCCESS,\n LOGIN_RESET_STATE\n} from '../actions/auth';\n// import LocalStorageUtils from '../../utils/local-storage';\nimport { User } from '../../types/authTypes';\n\nexport interface AuthState {\n isAuthenticated: boolean;\n user: User;\n isLoading: boolean;\n success: boolean;\n}\n\nconst initialState: AuthState = {\n isAuthenticated: false,\n user: {} as User,\n isLoading: false,\n success: false\n};\n\nconst authReducer = (state: AuthState = initialState, action: AuthAction): AuthState => {\n switch (action.type) {\n case LOGIN:\n return {\n ...state,\n isAuthenticated: true,\n user: action.user\n };\n case LOGOUT:\n return {\n ...state,\n isAuthenticated: false,\n user: {} as User\n };\n\n case LOGIN_START:\n return {\n ...state,\n isLoading: true\n };\n\n case LOGIN_SUCCESS:\n return {\n ...state,\n isLoading: false,\n success: true\n };\n\n case LOGIN_RESET_STATE:\n return {\n ...state,\n isLoading: false,\n success: false\n };\n\n default:\n return state;\n }\n};\n\nexport default authReducer;\n","import {\n FETCH_INVESTORS,\n FetchInvestorsAction,\n RESET_DATA_INVESTORS,\n UPDATE_INVESTORS,\n SELECTED_LINKED_ACCOUNT,\n selectedLinkedAccountAction\n} from '../../actions/investor/fetchInvestors';\nimport { IInvestorsReport, Investor } from '../../../types/investorTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { FetchInvestorsReportAction, FETCH_INVESTORS_REPORT } from '../../../components/administrator/investorsReport/fetchInvestorsReport';\n// TODO delete a field isSelected\nexport interface InvestorsState {\n investors: Array;\n investorsReport: Array;\n paginationInfo: PaginationInfo;\n isSelected: boolean;\n}\n\nconst initialState: InvestorsState = {\n investors: [],\n investorsReport: [],\n paginationInfo: new PaginationInfo(),\n isSelected: false,\n};\n\nconst investorsReducer = (\n state: InvestorsState = initialState,\n action: FetchInvestorsAction & selectedLinkedAccountAction & FetchInvestorsReportAction\n): InvestorsState => {\n switch (action.type) {\n case FETCH_INVESTORS:\n return {\n ...state,\n investors: action.investors,\n paginationInfo: action.paginationInfo\n };\n case RESET_DATA_INVESTORS:\n return {\n ...state,\n investors: [],\n paginationInfo: new PaginationInfo(),\n isSelected: false\n };\n case UPDATE_INVESTORS:\n return {\n ...state,\n investors: [...action.investors],\n };\n case SELECTED_LINKED_ACCOUNT:\n return {\n ...state,\n isSelected: action.isSelected,\n };\n case FETCH_INVESTORS_REPORT:\n return {\n ...state,\n investorsReport: action.investorsReport,\n paginationInfo: action.paginationInfo\n };\n\n // case INVESTORS_SORT_BY_EQUITY_UP:\n // return {\n // ...state,\n // investors: state.investors.sort((a, b) => )\n // }\n\n default:\n return state;\n }\n};\n\nexport default investorsReducer;\n","import {\n FETCH_INVESTOR_DETAILS,\n FetchInvestorDetailsAction,\n FETCH_INVESTOR_DETAILS_FALSE,\n FETCH_INVESTOR_DETAILS_ATTACH_DETACH\n} from '../../actions/investor/fetchInvestorDetails';\nimport { Investor } from '../../../types/investorTypes';\nimport { RESET_DETAIL_INVESTOR } from '../../actions/investor/investorDetail';\n\nexport interface InvestorDetailsState {\n investor: Investor;\n investorFalse: Investor;\n investorAttachDetachRequests: Investor;\n}\n\nconst initialState: InvestorDetailsState = {\n investor: new Investor(),\n investorFalse: new Investor(),\n investorAttachDetachRequests: new Investor()\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst investorReducer = (\n state: InvestorDetailsState = initialState,\n action: FetchInvestorDetailsAction\n): InvestorDetailsState => {\n switch (action.type) {\n case FETCH_INVESTOR_DETAILS:\n return {\n ...state,\n investor: action.investorDetails\n };\n\n case FETCH_INVESTOR_DETAILS_FALSE:\n return {\n ...state,\n investorFalse: action.investorDetails\n };\n \n case FETCH_INVESTOR_DETAILS_ATTACH_DETACH:\n return {\n ...state,\n investorAttachDetachRequests: action.investorDetails\n }\n\n case RESET_DETAIL_INVESTOR:\n return {\n ...state,\n investor: new Investor()\n };\n default:\n return state;\n }\n};\n\nexport default investorReducer;\n","\nimport { FETCH_MASTER_DETAILS, FetchDetailsAction, FetchDetailsDefaultAction, FETCH_MASTER_DETAILS_DEFAULT, RESET_MASTER_DETAILS } from '../../actions/master/fetchMasterDetails';\nimport { FETCH_MASTER_PAYMENT_PERIODS, FetchMasterPaymentPeriodsAction } from '../../actions/master/fetchMasterPaymentPeriods';\nimport { IPaymentPeriod, Master } from '../../../types/masterTypes';\n\nexport interface MasterDetailsState {\n master: Master;\n masterDefault: Master;\n paymentPeriods: Array;\n}\n\nconst initialState: MasterDetailsState = {\n master: new Master(),\n masterDefault: new Master(),\n paymentPeriods: []\n};\n\ntype FetchMasterDetailsAction = FetchDetailsAction & FetchMasterPaymentPeriodsAction & FetchDetailsDefaultAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst masterReducer = (state: MasterDetailsState = initialState, action: FetchMasterDetailsAction): MasterDetailsState => {\n switch (action.type) {\n case FETCH_MASTER_DETAILS:\n return {\n ...state,\n master: action.masterDetails\n };\n\n case FETCH_MASTER_PAYMENT_PERIODS:\n return {\n ...state,\n paymentPeriods: action.paymentPeriods\n }\n case FETCH_MASTER_DETAILS_DEFAULT:\n return {\n ...state,\n masterDefault: action.masterDetailsDefault\n };\n case RESET_MASTER_DETAILS:\n return {\n master: new Master(),\n masterDefault: new Master(),\n paymentPeriods: []\n }\n default:\n return state;\n }\n}\n\nexport default masterReducer;\n","import { FETCH_OPEN_ORDERS, FETCH_CLOSED_ORDERS, FetchOrdersAction } from '../../actions/shared/fetchOrders';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\n// TODO: properly type 'orders'\nexport interface OrdersState {\n openOrders: {\n orders: Array;\n paginationInfo: PaginationInfo;\n };\n closedOrders: {\n orders: Array;\n paginationInfo: PaginationInfo;\n };\n}\n\nconst initialState: OrdersState = {\n openOrders: {\n orders: [],\n paginationInfo: new PaginationInfo()\n },\n closedOrders: {\n orders: [],\n paginationInfo: new PaginationInfo()\n }\n};\n\nconst ordersReducer = (state: OrdersState = initialState, action: FetchOrdersAction): OrdersState => {\n switch (action.type) {\n case FETCH_OPEN_ORDERS:\n return {\n ...state,\n openOrders: {\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n };\n case FETCH_CLOSED_ORDERS:\n return {\n ...state,\n closedOrders: {\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n };\n default:\n return state;\n }\n}\n\nexport default ordersReducer;","import { FETCH_BALANCE_OPERATIONS, FetchBalanceOperationsAction } from '../../actions/shared/fetchBalanceOperations';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface BalanceOperationsState {\n balanceOperations: {\n operations: Array;\n paginationInfo: PaginationInfo;\n totalAccruedToBalance: number;\n totalAccruedToCredit: number;\n };\n}\n\nconst initialState: BalanceOperationsState = {\n balanceOperations: {\n operations: [],\n paginationInfo: new PaginationInfo(),\n totalAccruedToBalance: 0,\n totalAccruedToCredit: 0\n }\n};\n\nconst balanceOperationsReducer = (state: BalanceOperationsState = initialState, action: FetchBalanceOperationsAction): BalanceOperationsState => {\n switch (action.type) {\n case FETCH_BALANCE_OPERATIONS:\n return {\n ...state,\n balanceOperations: {\n operations: action.balanceOperations.BalanceOperations,\n paginationInfo: action.paginationInfo,\n totalAccruedToBalance: action.balanceOperations.TotalAccruedToBalance,\n totalAccruedToCredit: action.balanceOperations.TotalAccruedToCredit\n }\n };\n default:\n return state;\n }\n}\n\nexport default balanceOperationsReducer;\n","import { FETCH_MASTERS, FetchMastersAction, FETCH_MASTERS_DEFAULT, FetchMastersDefaultAction } from '../../actions/master/fetchMasters';\nimport { Master } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface MastersState {\n masters: Array;\n mastersDefault: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: MastersState = {\n masters: [],\n mastersDefault: [],\n paginationInfo: new PaginationInfo(),\n};\n\ntype FetchMasters = FetchMastersAction & FetchMastersDefaultAction;\n\nconst mastersReducer = (state: MastersState = initialState, action: FetchMasters): MastersState => {\n switch (action.type) {\n case FETCH_MASTERS:\n return {\n ...state,\n masters: action.masters,\n paginationInfo: action.paginationInfo\n };\n case FETCH_MASTERS_DEFAULT:\n return {\n ...state,\n mastersDefault: action.mastersDefault\n }\n default:\n return state;\n }\n}\n\nexport default mastersReducer;\n","import { FETCH_PROFIT, FETCH_PROFIT_PER_PERIOD, FETCH_ARRAY_OF_PROFITS, FetchProfitAction, FetchArrayOfProfitsAction, FETCH_PROFIT_OVERALL } from '../../actions/shared/fetchProfit';\nimport { Summary } from '../../../types/sharedTypes';\nimport { MasterProfit } from '../../../types/masterTypes';\n\nexport interface ProfitState {\n profit: Array;\n profitPerPeriod: Array;\n profitOverall: Array;\n arrayOfProfits: Array;\n}\n\nconst initialState: ProfitState = {\n profit: [],\n profitPerPeriod: [],\n profitOverall: [],\n arrayOfProfits: []\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst profitReducer = (state: ProfitState = initialState, action: FetchProfitAction & FetchArrayOfProfitsAction): ProfitState => {\n switch (action.type) {\n case FETCH_PROFIT:\n return {\n ...state,\n profit: action.profitFortnight\n };\n case FETCH_PROFIT_PER_PERIOD:\n return {\n ...state,\n profitPerPeriod: action.profitFortnight\n };\n case FETCH_PROFIT_OVERALL:\n return {\n ...state,\n profitOverall: action.profitFortnight\n };\n case FETCH_ARRAY_OF_PROFITS:\n // eslint-disable-next-line no-case-declarations\n const arrayOfProfitsCopy = state.arrayOfProfits.map((x) => x);\n arrayOfProfitsCopy.push({\n masterId: action.masterId,\n profitFortnight: action.profitFortnight\n });\n\n return {\n ...state,\n arrayOfProfits: arrayOfProfitsCopy\n }\n default:\n return state;\n }\n}\n\nexport default profitReducer;\n","import { FETCH_VOLUME, FetchVolumeAction } from '../../actions/master/fetchVolume';\nimport { Summary } from '../../../types/sharedTypes';\n\nexport interface VolumeState {\n volumePerPeriod: Array;\n}\n\nconst initialState: VolumeState = {\n volumePerPeriod: [],\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst volumeReducer = (state: VolumeState = initialState, action: FetchVolumeAction): VolumeState => {\n switch (action.type) {\n case FETCH_VOLUME:\n return {\n ...state,\n volumePerPeriod: action.volumeFortnight\n };\n default:\n return state;\n }\n}\n\nexport default volumeReducer;","import { FETCH_SERVERS, FetchServersAction } from '../../actions/shared/fetchServers';\nimport { FETCH_CURRENCIES, FetchCurrenciesAction } from '../../actions/shared/fetchCurrencies';\nimport { Server } from '../../../types/sharedTypes';\n\nexport interface GeneralInfoState {\n servers: Array;\n currencies: Array;\n}\n\nconst initialState: GeneralInfoState = {\n servers: [],\n currencies: []\n};\n\ntype GeneralInfoAction = FetchServersAction & FetchCurrenciesAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst generalInfoReducer = (state: GeneralInfoState = initialState, action: GeneralInfoAction): GeneralInfoState => {\n switch (action.type) {\n case FETCH_SERVERS:\n return {\n ...state,\n servers: action.servers\n };\n case FETCH_CURRENCIES:\n return {\n ...state,\n currencies: action.currencies\n }\n default:\n return state;\n }\n}\n\nexport default generalInfoReducer;","import { CREATE_USER, CreateUserAction } from '../../actions/shared/createUser';\n\n// TODO: Find out how to type 'createdUser'\nexport interface CreateUserState {\n createdUser: any;\n}\n\nconst initialState: CreateUserState = {\n createdUser: {}\n};\n\nconst createUserReducer = (state: CreateUserState = initialState, action: CreateUserAction): CreateUserState => {\n switch (action.type) {\n case CREATE_USER:\n return {\n ...state,\n createdUser: action.createdUser\n };\n default:\n return state;\n }\n}\n\nexport default createUserReducer;","import { FETCH_ADMIN_SETTINGS } from '../../actions/settings/admin';\nimport { FETCH_MASTER_SETTINGS } from '../../actions/settings/master';\nimport { FETCH_INVESTOR_SETTINGS } from '../../actions/settings/investor';\nimport { FETCH_CALLBACK_ADDRESSES } from '../../actions/settings/callbackAddresses';\nimport {\n FETCH_STATEMENT_PERIODS_SETTINGS,\n FETCH_REPORT_PERIODS_SETTINGS,\n FETCH_PAYMENT_PERIODS_SETTINGS\n} from '../../actions/settings/periods';\nimport { FETCH_SERVER_SETTINGS } from '../../actions/settings/server';\nimport {\n AdminSettings,\n MasterSettings,\n InvestorSettings,\n MetaTraderServerSettings,\n RegularPeriodSettings,\n ServerSettingsResponse,\n PaymentPeriodSettings\n} from '../../../types/settingsTypes';\nimport { FETCH_CONNECTED_MT_SERVERS, FETCH_MT_SERVERS_DISABLED, FETCH_MT_SERVERS_ENABLED } from '../../actions/settings/mtServers';\n\nexport interface SettingsState {\n adminSettings: AdminSettings;\n masterSettings: MasterSettings;\n investorSettings: InvestorSettings;\n mtServersSettings: Array;\n mtServersSettingsDisabled: Array;\n mtServersSettingsEnabled: Array;\n callbackAddresses: Array;\n statementPeriodsSettings: Array;\n reportPeriodsSettings: Array;\n paymentPeriodsSettings: Array;\n serverSettings: ServerSettingsResponse;\n}\n\nconst initialState: SettingsState = {\n adminSettings: new AdminSettings(),\n masterSettings: new MasterSettings(),\n investorSettings: new InvestorSettings(),\n mtServersSettings: [new MetaTraderServerSettings()],\n mtServersSettingsDisabled: [new MetaTraderServerSettings()],\n mtServersSettingsEnabled: [new MetaTraderServerSettings()],\n callbackAddresses: [],\n statementPeriodsSettings: [new RegularPeriodSettings()],\n reportPeriodsSettings: [new RegularPeriodSettings()],\n paymentPeriodsSettings: [new PaymentPeriodSettings()],\n serverSettings: {} as ServerSettingsResponse\n};\n\n// type FetchSettingsAction = FetchAdminSettingsAction | FetchMasterSettingsAction | FetchMasterSettingsAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst investorsReducer = (state: SettingsState = initialState, action: any): SettingsState => {\n switch (action.type) {\n case FETCH_ADMIN_SETTINGS:\n return {\n ...state,\n adminSettings: action.settings\n };\n case FETCH_MASTER_SETTINGS:\n return {\n ...state,\n masterSettings: action.settings\n };\n case FETCH_INVESTOR_SETTINGS:\n return {\n ...state,\n investorSettings: action.settings\n };\n case FETCH_CONNECTED_MT_SERVERS:\n return {\n ...state,\n mtServersSettings: action.settings\n }\n case FETCH_MT_SERVERS_DISABLED:\n return {\n ...state,\n mtServersSettingsDisabled: action.settings\n }\n case FETCH_MT_SERVERS_ENABLED:\n return {\n ...state,\n mtServersSettingsEnabled: action.settings\n }\n case FETCH_CALLBACK_ADDRESSES:\n return {\n ...state,\n callbackAddresses: action.addresses\n }\n case FETCH_STATEMENT_PERIODS_SETTINGS:\n return {\n ...state,\n statementPeriodsSettings: action.settings\n }\n case FETCH_REPORT_PERIODS_SETTINGS:\n return {\n ...state,\n reportPeriodsSettings: action.settings\n }\n case FETCH_PAYMENT_PERIODS_SETTINGS:\n return {\n ...state,\n paymentPeriodsSettings: action.settings\n }\n case FETCH_SERVER_SETTINGS:\n return {\n ...state,\n serverSettings: action.settings\n }\n default:\n return state;\n }\n}\n\nexport default investorsReducer;\n","import { FETCH_ADMINS, FetchAdminsAction } from '../../actions/admin/fetchAdmins';\nimport { Admin } from '../../../types/adminTypes';\n\nexport interface AdminsState {\n admins: Array;\n}\n\nconst initialState: AdminsState = {\n admins: [],\n};\n\nconst adminsReducer = (state: AdminsState = initialState, action: FetchAdminsAction): AdminsState => {\n switch (action.type) {\n case FETCH_ADMINS:\n return {\n admins: action.admins,\n };\n default:\n return state;\n }\n}\n\nexport default adminsReducer;\n","import { FETCH_ADMIN_DETAILS, FetchAdminDetailsAction } from '../../actions/admin/fetchAdminDetails';\nimport { EDIT_ADMIN, EditAdminAction } from '../../actions/admin/editAdmin';\nimport { Admin } from '../../../types/adminTypes';\n\nexport interface AdminDetailsState {\n admin: Admin;\n}\n\nconst initialState: AdminDetailsState = {\n admin: new Admin()\n};\n\ntype AdminAction = FetchAdminDetailsAction & EditAdminAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst adminReducer = (state: AdminDetailsState = initialState, action: AdminAction): AdminDetailsState => {\n switch (action.type) {\n case FETCH_ADMIN_DETAILS:\n return {\n ...state,\n admin: action.adminDetails\n };\n case EDIT_ADMIN:\n return {\n ...state,\n admin: action.editedAdmin\n }\n default:\n return state;\n }\n}\n\nexport default adminReducer;","import { SET_LOADING_STATUS, SetLoadingStatusAction, CHECK_MT_SERVERS_UPDATE, SET_LOADING_STATUS_DOWNLOAD, SET_LOADING_STATUS_CONNECTED_INVESTORS, SET_LOADING_STATUS_BALANCE_OPERATIONS, SET_LOADING_STATUS_CLOSED_ORDERS, SET_LOADING_STATUS_OPEN_ORDERS } from '../actions/setLoadingStatus';\n\nexport interface LoadingStatusState {\n isLoading: boolean;\n isLoadingDownload: boolean;\n checkMtServers: boolean;\n isLoadingOpenOrders: boolean;\n isLoadingClosedOrders: boolean;\n isLoadingBalanceOperations: boolean;\n isLoadingConnectedInvestors: boolean;\n}\n\nconst initialState: LoadingStatusState = {\n isLoading: false,\n isLoadingDownload: false,\n checkMtServers: false,\n isLoadingOpenOrders: false,\n isLoadingClosedOrders: false,\n isLoadingBalanceOperations: false,\n isLoadingConnectedInvestors: false\n};\n\nfunction loadingStatusReducer(state: LoadingStatusState = initialState, action: SetLoadingStatusAction): LoadingStatusState {\n switch (action.type) {\n case SET_LOADING_STATUS: {\n return {\n ...state,\n isLoading: action.status\n };\n }\n\n case SET_LOADING_STATUS_DOWNLOAD: {\n return {\n ...state,\n isLoadingDownload: action.status\n };\n }\n case CHECK_MT_SERVERS_UPDATE: {\n return {\n ...state,\n checkMtServers: action.status\n };\n }\n case SET_LOADING_STATUS_OPEN_ORDERS: {\n return {\n ...state,\n isLoadingOpenOrders: action.status\n };\n }\n case SET_LOADING_STATUS_CLOSED_ORDERS: {\n return {\n ...state,\n isLoadingClosedOrders: action.status\n };\n }\n case SET_LOADING_STATUS_BALANCE_OPERATIONS: {\n return {\n ...state,\n isLoadingBalanceOperations: action.status\n };\n }\n case SET_LOADING_STATUS_CONNECTED_INVESTORS: {\n return {\n ...state,\n isLoadingConnectedInvestors: action.status\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default loadingStatusReducer;\n","import { FETCH_LOGS, FetchLogsAction } from '../actions/fetchLogs';\nimport { Log } from '../../types/journalTypes';\nimport { PaginationInfo } from '../../types/sharedTypes';\n\nexport interface JournalState {\n logs: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: JournalState = {\n logs: [],\n paginationInfo: new PaginationInfo()\n};\n\nconst JournalReducer = (state: JournalState = initialState, action: FetchLogsAction): JournalState => {\n switch (action.type) {\n case FETCH_LOGS:\n return {\n ...state,\n logs: action.logs,\n paginationInfo: action.paginationInfo\n };\n default:\n return state;\n }\n}\n\nexport default JournalReducer;\n","import { \n FETCH_DEPOSITS,\n FETCH_INVESTMENTS,\n FETCH_PROFIT,\n FETCH_PROFIT_PER_PERIOD,\n FETCH_VOLUMES,\n FETCH_INVESTORS_SUMMARY,\n FetchSummaryAction\n} from '../../actions/shared/fetchSummary';\nimport { Summary } from '../../../types/sharedTypes';\n\nexport interface SummaryState {\n deposits: Array;\n investments: Array;\n profit: Array;\n profitPerPeriod: Array;\n volumes: Array;\n investors: Array;\n}\n\nconst initialState: SummaryState = {\n deposits: [],\n investments: [],\n profit: [],\n profitPerPeriod: [],\n volumes: [],\n investors: []\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst summaryReducer = (state: SummaryState = initialState, action: FetchSummaryAction): SummaryState => {\n switch (action.type) {\n case FETCH_DEPOSITS:\n return {\n ...state,\n deposits: action.summary\n };\n case FETCH_INVESTMENTS:\n return {\n ...state,\n investments: action.summary\n };\n case FETCH_PROFIT:\n return {\n ...state,\n profit: action.summary\n };\n case FETCH_PROFIT_PER_PERIOD:\n return {\n ...state,\n profitPerPeriod: action.summary\n };\n case FETCH_VOLUMES:\n return {\n ...state,\n volumes: action.summary\n };\n case FETCH_INVESTORS_SUMMARY:\n return {\n ...state,\n investors: action.summary\n };\n default:\n return state;\n }\n}\n\nexport default summaryReducer;","import { FETCH_REQUESTS, FetchRequestsAction } from '../../actions/requests/fetchRequests';\nimport { FETCH_REQUESTS_COUNT, FetchRequestsCountAction } from '../../actions/requests/fetchRequestsCount';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface RequestsState {\n requests: Array;\n paginationInfo: PaginationInfo;\n count: number;\n}\n\nconst initialState: RequestsState = {\n requests: [],\n paginationInfo: new PaginationInfo(),\n count: 0\n};\n\ntype RequestsAction = FetchRequestsAction & FetchRequestsCountAction;\n\nconst requestsReducer = (state: RequestsState = initialState, action: RequestsAction): RequestsState => {\n switch (action.type) {\n case FETCH_REQUESTS:\n return {\n ...state,\n requests: action.requests,\n paginationInfo: action.paginationInfo\n };\n case FETCH_REQUESTS_COUNT:\n return {\n ...state,\n count: action.count\n }\n default:\n return state;\n }\n}\n\nexport default requestsReducer;\n","import { FETCH_FEE_ACCOUNTS, FetchFeeAccountsAction } from '../actions/feeAccounts/fetchFeeAccounts';\nimport { PaginationInfo } from '../../types/sharedTypes';\nimport { FeeAccount } from '../../types/feeAccountTypes';\n\nexport interface FeeAccountsState {\n feeAccounts: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: FeeAccountsState = {\n feeAccounts: [],\n paginationInfo: new PaginationInfo()\n};\n\nconst feeAccountsReducer = (state: FeeAccountsState = initialState, action: FetchFeeAccountsAction): FeeAccountsState => {\n switch (action.type) {\n case FETCH_FEE_ACCOUNTS:\n return {\n ...state,\n feeAccounts: action.feeAccounts,\n paginationInfo: action.paginationInfo\n };\n default:\n return state;\n }\n}\n\nexport default feeAccountsReducer;\n","import {\n SET_OPS_MENU_STATUS,\n SET_LINKED_ACCOUNTS_MENU_STATUS,\n SET_LANGUAGES_MENU_STATUS,\n SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS,\n SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS,\n SetMobileMenusStatus\n} from '../actions/setMobileMenusStatus';\n\nexport interface MobileMenusStatusState {\n showOpsMenu: boolean;\n showlinkedAccountsMenu: boolean;\n showLanguagesMenu: boolean;\n showConnectToMasterConfirmation: boolean;\n showDisconnectFromMasterConfirmation: boolean;\n}\n\nconst initialState: MobileMenusStatusState = {\n showOpsMenu: false,\n showlinkedAccountsMenu: false,\n showLanguagesMenu: false,\n showConnectToMasterConfirmation: false,\n showDisconnectFromMasterConfirmation: false\n};\n\nfunction mobileMenusStatusReducer(state: MobileMenusStatusState = initialState, action: SetMobileMenusStatus): MobileMenusStatusState {\n switch (action.type) {\n case SET_OPS_MENU_STATUS: {\n return {\n ...state,\n showOpsMenu: action.status\n };\n }\n case SET_LINKED_ACCOUNTS_MENU_STATUS: {\n return {\n ...state,\n showlinkedAccountsMenu: action.status\n }\n }\n case SET_LANGUAGES_MENU_STATUS: {\n return {\n ...state,\n showLanguagesMenu: action.status\n }\n }\n case SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS: {\n return {\n ...state,\n showConnectToMasterConfirmation: action.status\n }\n }\n case SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS: {\n return {\n ...state,\n showDisconnectFromMasterConfirmation: action.status\n }\n }\n default: {\n return state;\n }\n }\n}\n\nexport default mobileMenusStatusReducer;\n","import { InvestorOrder } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { FETCH_MASTER_INVESTORS_ORDERS, FetchMasterInvestorsOrdersAction } from '../../actions/master/fetchMasterInvestorsOrders';\n\nexport interface MasterInvestorsOrdersState {\n orders: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: MasterInvestorsOrdersState = {\n orders: [] as Array,\n paginationInfo: {} as PaginationInfo\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst masterInvestorsOrdersReducer = (state: MasterInvestorsOrdersState = initialState, action: FetchMasterInvestorsOrdersAction): MasterInvestorsOrdersState => {\n switch (action.type) {\n case FETCH_MASTER_INVESTORS_ORDERS:\n return {\n ...state,\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n default:\n return state;\n }\n}\n\nexport default masterInvestorsOrdersReducer;","import { FETCH_MONITORING_ACTION, MonitoringAction } from '../../../components/administrator/monitoring/fetchMonitoring';\nimport { IInvestorsMassAttach } from '../../../types/investorTypes';\nimport { IBalanceOperation, ILoadOrders, IMonitoringResponse, IOrdersCompare, IOrdersRedistribute, IOrdersReload, IOrderReopen, IParametersToCheck, IParametersToFix, IPerformanceFeeCharge, ISendReport, IPositionCheckFix, IInvestorsCheck } from '../../../types/maintenanceTypes';\nimport { FETCH_MASS_ATTACH, MassAtachAction } from '../../actions/investor/massAttachDetachInvestors';\nimport { AccountParametersAction, FETCH_ACCOUNT_PARAMETERS } from '../../actions/maintenance/fetchAccountsParameters';\nimport { EditBalanceOperationAction, FETCH_EDIT_BALANCE_OPERATION } from '../../actions/maintenance/fetchEditBalanceOperation';\nimport { InvestorsParametersAction, FETCH_INVESTORS_CHECK_PARAMETERS } from '../../actions/maintenance/fetchInvestorsCheck';\nimport { FETCH_LOAD_ORDERS, LoadOrdersAction } from '../../actions/maintenance/fetchLoadOrdersByTickets';\nimport { FETCH_ORDERS_COMPARE, OrdersCompareAction } from '../../actions/maintenance/fetchOrdersCompare';\nimport { FETCH_ORDERS_REDISTRIBUTE, OrdersRedistributeAction } from '../../actions/maintenance/fetchOrdersRedistribute';\nimport { FETCH_ORDERS_RELOAD, OrdersReloadAction } from '../../actions/maintenance/fetchOrdersReload';\nimport { FETCH_ORDERS_REOPEN, OrderReopenAction } from '../../actions/maintenance/fetchOrdersReopen';\nimport { FETCH_PERFORMANCE_FEE_CHARGE, PerformanceFeeChargeAction } from '../../actions/maintenance/fetchPerformanceFeeCharge';\nimport { FETCH_POSITION_CHECK_FIX, PositionCheckFixAction } from '../../actions/maintenance/fetchPositionCheckFix';\nimport { FETCH_SEND_REPORT, SendReportAction } from '../../actions/maintenance/fetchSendReport';\n\nexport interface SendReportState {\n sendReport: ISendReport;\n loadOrders: ILoadOrders;\n ordersReload: IOrdersReload;\n orderReopen: IOrderReopen;\n ordersCompare: IOrdersCompare;\n balanceOperation: IBalanceOperation;\n ordersRedistribute: IOrdersRedistribute;\n parametersAccounts: IParametersToCheck | IParametersToFix;\n parametersInvestors: IInvestorsCheck;\n positionCheckFix: IPositionCheckFix;\n performanceFeeCharge: IPerformanceFeeCharge;\n parameters: IMonitoringResponse;\n massAttach: IInvestorsMassAttach;\n}\n\nconst initialState: SendReportState = {\n sendReport: {} as ISendReport,\n loadOrders: {} as ILoadOrders,\n ordersReload: {} as IOrdersReload,\n orderReopen: {} as IOrderReopen,\n ordersCompare: {} as IOrdersCompare,\n balanceOperation: {} as IBalanceOperation,\n ordersRedistribute: {} as IOrdersRedistribute,\n parametersAccounts: {} as IParametersToCheck | IParametersToFix,\n parametersInvestors: {} as IInvestorsCheck,\n positionCheckFix: {} as IPositionCheckFix,\n performanceFeeCharge: {} as IPerformanceFeeCharge,\n parameters: {} as IMonitoringResponse,\n massAttach: {} as IInvestorsMassAttach\n}\n\n\ntype RequestAction = SendReportAction\n & LoadOrdersAction\n & OrdersReloadAction\n & OrderReopenAction\n & OrdersCompareAction\n & EditBalanceOperationAction\n & OrdersRedistributeAction\n & AccountParametersAction\n & InvestorsParametersAction\n & PositionCheckFixAction\n & PerformanceFeeChargeAction\n & MonitoringAction\n & MassAtachAction\n\nconst reportReducer = (\n state: SendReportState = initialState,\n action: RequestAction\n): SendReportState => {\n switch (action.type) {\n case FETCH_SEND_REPORT:\n return {\n ...state,\n sendReport: action.sendReport\n }\n case FETCH_LOAD_ORDERS:\n return {\n ...state,\n loadOrders: action.loadOrders\n };\n case FETCH_ORDERS_RELOAD:\n return {\n ...state,\n ordersReload: action.ordersReload\n };\n case FETCH_ORDERS_REOPEN:\n return {\n ...state,\n orderReopen: action.orderReopen\n };\n case FETCH_ORDERS_COMPARE:\n return {\n ...state,\n ordersCompare: action.ordersCompare\n };\n case FETCH_EDIT_BALANCE_OPERATION:\n return {\n ...state,\n balanceOperation: action.balanceOperation\n };\n case FETCH_ORDERS_REDISTRIBUTE:\n return {\n ...state,\n ordersRedistribute: action.ordersRedistribute\n };\n case FETCH_ACCOUNT_PARAMETERS:\n return {\n ...state,\n parametersAccounts: action.parametersAccounts\n };\n case FETCH_INVESTORS_CHECK_PARAMETERS:\n return {\n ...state,\n parametersInvestors: action.parametersInvestors\n };\n case FETCH_POSITION_CHECK_FIX:\n return {\n ...state,\n positionCheckFix: action.positionCheckFix\n };\n case FETCH_PERFORMANCE_FEE_CHARGE:\n return {\n ...state,\n performanceFeeCharge: action.performanceFeeCharge\n };\n case FETCH_MONITORING_ACTION:\n return {\n ...state,\n parameters: action.parameters\n };\n case FETCH_MASS_ATTACH:\n return {\n ...state,\n massAttach: action.massAttach\n };\n default:\n return state;\n }\n};\n\nexport default reportReducer;\n","import { combineReducers } from 'redux';\nimport configReducer from './configReducer';\nimport authReducer from './authReducer';\nimport investorsReducer from './investor/investorsReducer';\nimport investorReducer from './investor/investorReducer';\nimport masterReducer from './master/masterReducer';\nimport ordersReducer from './shared/ordersReducer';\nimport balanceOperationsReducer from './shared/balanceOperationsReducer';\nimport mastersReducer from './master/mastersReducer';\nimport profitReducer from './shared/profitReducer';\nimport volumeReducer from './master/volumeReducer';\nimport generalInfoReducer from './shared/generalInfoReducer';\nimport createUserReducer from './shared/createUserReducer';\nimport settingsReducer from './settings/settingsReducer';\nimport adminsReducer from './admin/adminsReducer';\nimport adminReducer from './admin/adminReducer';\nimport loadingStatusReducer from './loadingStatusReducer';\nimport journalReducer from './journalReducer';\nimport summaryReducer from './shared/summaryReducer';\nimport requestsReducer from './requests/requestsReducer';\nimport feeAccountsReducer from './feeAccountsReducer';\nimport mobileMenusStatusReducer from './mobileMenusStatusReducer';\nimport masterInvestorsOrdersReducer from './master/masterInvestorsOrders';\nimport reportReducer from './maintenance/reportReducer'\n\nconst rootReducer = combineReducers({\n configReducer,\n authReducer,\n investorReducer,\n masterReducer,\n investorsReducer,\n ordersReducer,\n balanceOperationsReducer,\n mastersReducer,\n profitReducer,\n volumeReducer,\n generalInfoReducer,\n createUserReducer,\n settingsReducer,\n adminsReducer,\n adminReducer,\n loadingStatusReducer,\n journalReducer,\n summaryReducer,\n requestsReducer,\n feeAccountsReducer,\n mobileMenusStatusReducer,\n masterInvestorsOrdersReducer,\n reportReducer,\n});\n\nexport default rootReducer;\n\nexport type PAMMState = ReturnType;\n","import { createStore, applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport rootReducer from './reducers/rootReducer';\n\n// TODO убрать дев тулс перед продакшеном\n// @ts-ignore\n// eslint-disable-next-line no-underscore-dangle\n// const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst store = createStore(rootReducer, applyMiddleware(thunkMiddleware));\n\nexport default store;\n","import { CSSProperties } from 'react';\n\nexport const mobileBodyWithNavbar = {\n // width: '83vw',\n paddingTop: '3.5rem',\n marginBottom: '10rem'\n} as CSSProperties;\n\nexport const mobileBodyWithEllipsis = {\n ...mobileBodyWithNavbar,\n paddingTop: '1.2rem'\n} as CSSProperties;\n\nexport const shadowBox = {\n boxShadow: '0px 0px 10px 2px lightgrey',\n backgroundColor: 'white',\n margin: '1rem 1rem 0 1rem',\n padding: 0\n} as CSSProperties;\n\nexport const pageButton = {\n borderRadius: '50%',\n height: '1.5rem',\n width: '1.5rem',\n backgroundColor: 'white',\n border: 'none',\n padding: 0,\n fontSize: '1rem',\n marginLeft: '1rem'\n} as CSSProperties;\n\nexport const directionSwitchStyle = {\n backgroundColor: '#eee',\n height: 25,\n border: 0,\n borderRadius: 15,\n marginLeft: 5,\n marginTop: 7,\n padding: 0,\n paddingLeft: 10,\n paddingRight: 10\n} as CSSProperties;\n\nexport const sortBySelectStyle = {\n width: 'auto',\n backgroundColor: '#eee',\n border: 0,\n borderRadius: 15,\n MozAppearance: 'none',\n WebkitAppearance: 'none',\n height: 25,\n fontSize: 12,\n marginLeft: '1rem',\n marginTop: 2\n} as CSSProperties;\n","import { useLayoutEffect, useState } from 'react';\n\nconst useWindowResize = () => {\n const [size, setSize] = useState([0, 0]);\n\n useLayoutEffect(() => {\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n\n window.addEventListener('resize', updateSize);\n updateSize();\n\n return () => {\n window.removeEventListener('resize', updateSize);\n };\n }, []);\n\n return size;\n};\n\nexport default useWindowResize;","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { MetaTraderServerSettings, EditMetaTraderServerRequest } from '../../../types/settingsTypes';\nimport setLoadingStatus, { checkMtServersUpdate } from '../setLoadingStatus';\n\nexport const FETCH_CONNECTED_MT_SERVERS = 'FETCH_CONNECTED_MT_SERVERS';\nexport const FETCH_MT_SERVERS_DISABLED = 'FETCH_MT_SERVERS_DISABLED';\nexport const FETCH_MT_SERVERS_ENABLED = 'FETCH_MT_SERVERS_ENABLED';\n\nexport type FetchMtServersSettingsAction = {\n type: string;\n settings: Array;\n};\n\nconst fetchMtServersSettings = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_CONNECTED_MT_SERVERS,\n settings\n };\n};\n\nconst fetchMtServersSettingsDisabled = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_MT_SERVERS_DISABLED,\n settings\n };\n};\n\nconst fetchMtServersSettingsEnabled = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_MT_SERVERS_ENABLED,\n settings\n };\n};\n\nconst fetchMtServersSettingsAsync = (api: string, filter?: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n if (!filter) {\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchMtServersSettings(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n } else {\n fetch(`${api}/settings/mtServers?filter=${filter || ''}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => {\n if (filter === 'disabled') {\n dispatch(fetchMtServersSettingsDisabled(addresses))\n } \n if (filter === 'enabled') {\n dispatch(fetchMtServersSettingsEnabled(addresses))\n }\n if (filter === undefined) {\n dispatch(fetchMtServersSettings(addresses))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n }\n};\n\nexport const editServerSettingsAsync = (api: string, request: EditMetaTraderServerRequest) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then(() => {\n toast.success('Connected Meta Trader servers settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .then(() => dispatch(checkMtServersUpdate(true)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n }\n};\n\nexport default fetchMtServersSettingsAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_STATEMENT_PERIODS_SETTINGS = 'FETCH_STATEMENT_PERIODS_SETTINGS';\nexport const FETCH_REPORT_PERIODS_SETTINGS = 'FETCH_REPORT_PERIODS_SETTINGS';\nexport const FETCH_PAYMENT_PERIODS_SETTINGS = 'FETCH_PAYMENT_PERIODS_SETTINGS';\n\nexport type FetchPeriodsSettings = {\n type: string;\n settings: string[];\n};\n\nconst getActionConst = (actionName: string): string => {\n switch (actionName) {\n case 'statementPeriods':\n return FETCH_STATEMENT_PERIODS_SETTINGS;\n case 'reportPeriods':\n return FETCH_REPORT_PERIODS_SETTINGS;\n case 'paymentPeriods':\n return FETCH_PAYMENT_PERIODS_SETTINGS;\n default:\n return 'unknown';\n }\n};\n\nconst fetchPeriodsSettings = (settings: string[], periodsType: string): FetchPeriodsSettings => {\n return {\n type: getActionConst(periodsType),\n settings\n };\n};\n\nconst fetchPeriodsSettingsAsync = (api: string, periodsType: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n \n fetch(`${api}/settings/${periodsType}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchPeriodsSettings(settings[Object.keys(settings)[0]], periodsType)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editPeriodsSettingsAsync = (api: string, request: any, periodsType: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/${periodsType}s`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchPeriodsSettings(settings.Periods, periodsType));\n toast.success('Periods settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchPeriodsSettingsAsync;\n","module.exports = __webpack_public_path__ + \"assets/images/English.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Deutsch.svg\";","module.exports = __webpack_public_path__ + \"assets/images/French.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Portugal.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Spanish.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Russian.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Arabian.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Japan.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Korean.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Georgia.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Chinese.svg\";","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { OrderType } from '../../../types/sharedTypes';\nimport { setLoadingStatusClosedOrders, setLoadingStatusOpenOrders } from '../setLoadingStatus';\n\nexport const FETCH_OPEN_ORDERS = 'FETCH_OPEN_ORDERS';\nexport const FETCH_CLOSED_ORDERS = 'FETCH_CLOSED_ORDERS';\n\nexport type FetchOrdersAction = {\n type: string;\n orders: any;\n paginationInfo: any;\n}\n\nconst fetchOpenOrders = (orders: any, paginationInfo: any): FetchOrdersAction => {\n return {\n type: FETCH_OPEN_ORDERS,\n orders,\n paginationInfo\n };\n};\n\nconst fetchClosedOrders = (orders: any, paginationInfo: any): FetchOrdersAction => {\n return {\n type: FETCH_CLOSED_ORDERS,\n orders,\n paginationInfo\n };\n};\n\nconst fetchOrdersAsync = (\n api: string,\n source: string,\n type: OrderType,\n id?: number,\n page?: number,\n query?: string,\n limit?: number,\n sortField?: string,\n direction?: string,\n mtServerGuid?: string | undefined,\n): any => {\n let queryString = `?page=${page}`;\n let delimiter: string;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (query) queryString += `&query=${query}`;\n if (mtServerGuid) queryString +=`&mtServerGuid=${mtServerGuid}`;\n\n if (id)\n delimiter = `${type === OrderType.Open ? OrderType.Open : OrderType.Closed}/${id}`;\n else\n delimiter = `${type === OrderType.Open ? OrderType.Open : OrderType.Closed}`\n\n return (dispatch: Dispatch): void => {\n if (type === OrderType.Open) {\n dispatch(setLoadingStatusOpenOrders(true));\n } else {\n dispatch(setLoadingStatusClosedOrders(true));\n }\n\n fetch(`${api}/${source === 'investors' ? 'investors' : 'masters'}/orders/${delimiter}${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (type === OrderType.Open) {\n return dispatch(fetchOpenOrders(data.Data, data.PaginationInfo));\n }\n\n return dispatch(fetchClosedOrders(data.Data, data.PaginationInfo))\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => {\n if (type === OrderType.Open) {\n dispatch(setLoadingStatusOpenOrders(false));\n } else {\n dispatch(setLoadingStatusClosedOrders(false));\n }\n })\n }\n};\n\n\nexport default fetchOrdersAsync;\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\n// import { UpdateMaster } from '../../../types/masterTypes';\nimport fetchMasterDetailsAsync from './fetchMasterDetails';\n\nfunction updateMaster(api: string, masterId: string, request: any) {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/masters/${masterId}`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n dispatch(fetchMasterDetailsAsync(api, Number(masterId)));\n toast.success('Master updated successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default updateMaster;\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\n// import { UpdateInvestor } from '../../../types/investorTypes';\nimport fetchInvestorDetailsAsync from './fetchInvestorDetails';\n\nfunction updateInvestor(api: string, investorId: string, request: any) {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/${investorId}`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n dispatch(fetchInvestorDetailsAsync(api, Number(investorId)));\n toast.success('Investor updated successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default updateInvestor;\n","import { Investor } from '../types/investorTypes';\n\nexport const getEquityOverInvestments = (investor: Investor): number | string => {\n if (!investor?.Investments) {\n return 0;\n }\n const equityOverInvestments = Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n \n if (equityOverInvestments > 0) {\n return `+${Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2))}`\n }\n\n return Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n}\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { BalanceOperation, PaginationInfo } from '../../../types/sharedTypes';\nimport { setLoadingStatusBalanceOperations } from '../setLoadingStatus';\n\nexport const FETCH_BALANCE_OPERATIONS = 'FETCH_BALANCE_OPERATIONS';\n\nexport type FetchBalanceOperationsAction = {\n type: string;\n balanceOperations: any;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchBalanceOperations = (balanceOperations: Array, paginationInfo: PaginationInfo): FetchBalanceOperationsAction => {\n return {\n type: FETCH_BALANCE_OPERATIONS,\n balanceOperations,\n paginationInfo\n };\n};\n\nconst getTypeFilters = (filtersStateObject: Record): string => {\n let filters = '';\n\n Object.entries(filtersStateObject).forEach((entry) => {\n if (entry[1]) {\n filters += `&typeFilter=${entry[0]}`;\n }\n });\n\n return filters;\n};\n\nconst fetchBalanceOperationsAsync = (\n api: string, \n userType: string, \n id: string,\n typeFilters: Record,\n page?: number, \n limit?: number, \n sortField?: string, \n direction?: string,\n ) => {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n \n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatusBalanceOperations(true));\n\n fetch(`${api}/${userType === 'investor' ? 'investors' : 'masters'}/balance/operations/${id}${queryString}&from=1970-01-01${getTypeFilters(typeFilters)}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchBalanceOperations(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatusBalanceOperations(false)));\n }\n};\n\nexport default fetchBalanceOperationsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { Server } from '../../../types/sharedTypes';\n\nexport const FETCH_SERVERS = 'FETCH_SERVERS';\n\nexport type FetchServersAction = {\n type: string;\n servers: Array;\n};\n\nconst fetchServers = (servers: Array): FetchServersAction => {\n return {\n type: FETCH_SERVERS,\n servers\n };\n};\n\nconst fetchServersAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((servers: any) => dispatch(fetchServers(servers)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchServersAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_CURRENCIES = 'FETCH_CURRENCIES';\n\nexport type FetchCurrenciesAction = {\n type: string;\n currencies: Array;\n};\n\nconst fetchCurrencies = (currencies: Array): FetchCurrenciesAction => {\n return {\n type: FETCH_CURRENCIES,\n currencies\n };\n};\n\nconst fetchCurrenciesAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/auth/currency`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((currencies: any) => dispatch(fetchCurrencies(currencies)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchCurrenciesAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { MasterSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { fetchMasterDetails, fetchMasterDetailsDefault } from '../../actions/master/fetchMasterDetails';\n\nexport const FETCH_MASTER_SETTINGS = 'FETCH_MASTER_SETTINGS';\n\nexport type FetchMasterSettingsAction = {\n type: string;\n settings: MasterSettings;\n};\n\nconst fetchMasterSettings = (settings: MasterSettings): FetchMasterSettingsAction => {\n return {\n type: FETCH_MASTER_SETTINGS,\n settings\n };\n};\n\nconst fetchMasterSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/master`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchMasterSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editMasterSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/master`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchMasterSettings(settings));\n toast.success('Masters settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editMasterSettingsIdAsync = (api: string, id: number, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/masters/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((master: any) => {\n dispatch(fetchMasterDetails(master));\n toast.success(`Master ID ${id} settings edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n fetch(`${api}/masters/${id}?returnAccountOptionsValues=true`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((masterDefault: any) => {\n dispatch(fetchMasterDetailsDefault(masterDefault))\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport default fetchMasterSettingsAsync;\n","import { StateToggle, VisibilityToggle } from './toggles';\n\nexport class AccountOptionsAdmin {\n EmailNotifications: StateToggle = StateToggle.Off;\n OrdersCommissions: VisibilityToggle = VisibilityToggle.Hide;\n}\n\nexport class Admin {\n Id = 0;\n Name = '';\n Username = '';\n Email = '';\n ViewOnly = 'false';\n AccountOptions = new AccountOptionsAdmin();\n Mode = '';\n ModeCode = 0;\n}\n\nexport class CreateAdmin {\n ViewOnly = false;\n Name = '';\n Username = '';\n Password = '';\n Email = '';\n // AccountOptions = new AccountOptionsAdmin();\n}\n\nexport class EditAdminRequest {\n Name = '';\n Username = '';\n Email = '';\n AccountOptions = new AccountOptionsAdmin();\n Password = '';\n}\n\nexport class EditAdminForm {\n Name = '';\n Username = '';\n Email = '';\n AccountOptions = new AccountOptionsAdmin();\n Password = '';\n ViewOnly = 'false';\n}\n\nexport enum IAdminMode {\n Normal = 0,\n Disabled = 1\n}\n","import { History } from 'history';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport { getJwt } from '../auth';\nimport fetchRequestsCountAsync from '../requests/fetchRequestsCount';\n\nexport type InvestorAttachedAction = {\n type: string;\n masterId: number;\n};\n\nconst attachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (): void => {\n fetch(`${api}/investors/attach/${investorId}`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ MasterId: parseInt(masterId, 10) })\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n toast.success('Investor attached successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n history.push(`/investors/${investorId}/overall-profit/open-orders`);\n \n // TODO PAMM-2705\n // if (Array.isArray(history)) {\n // history.push(`/investors/${investorId}/overall-profit/open-orders`);\n // } else {\n // window.location.reload()\n // }\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const createRequestToAttachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (dispatch: any): void => {\n fetch(`${api}/requests/create/attachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ MmId: parseInt(masterId, 10), AccountId: parseInt(investorId, 10) })\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.putValueToLocalStorage('masterIdAttachRequestSent', masterId);\n toast.success('Request created successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchRequestsCountAsync(api));\n history.push('/dashboard');\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\n\nexport default attachInvestor;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { AdminSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_ADMIN_SETTINGS = 'FETCH_ADMIN_SETTINGS';\n\nexport type FetchAdminSettingsAction = {\n type: string;\n settings: AdminSettings;\n};\n\nconst fetchAdminSettings = (settings: AdminSettings): FetchAdminSettingsAction => {\n return {\n type: FETCH_ADMIN_SETTINGS,\n settings\n };\n};\n\nconst fetchAdminSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/admin`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchAdminSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editAdminSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/admin`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchAdminSettings(settings));\n toast.success('Admins settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchAdminSettingsAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { InvestorSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { fetchInvestorDetails, fetchInvestorDetailsFalse } from '../investor/fetchInvestorDetails';\n\nexport const FETCH_INVESTOR_SETTINGS = 'FETCH_INVESTOR_SETTINGS';\n\nexport type FetchInvestorSettingsAction = {\n type: string;\n settings: InvestorSettings;\n};\n\nconst fetchInvestorSettings = (settings: InvestorSettings): FetchInvestorSettingsAction => {\n return {\n type: FETCH_INVESTOR_SETTINGS,\n settings\n };\n};\n\nconst fetchInvestorSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/investor`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchInvestorSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editInvestorSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/investor`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchInvestorSettings(settings));\n toast.success('Investors settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editInvestorSettingsIdAsync = (api: string, id: number, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => {\n dispatch(fetchInvestorDetails(investor));\n dispatch(fetchInvestorDetailsFalse(investor));\n toast.success(`Investor ID ${id} settings edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport default fetchInvestorSettingsAsync;\n","import { Dispatch } from 'redux';\nimport { History } from 'history';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin, EditAdminRequest } from '../../../types/adminTypes';\n\nexport const EDIT_ADMIN = 'EDIT_ADMIN';\n\nexport type EditAdminAction = {\n type: string;\n editedAdmin: Admin;\n};\n\nconst editAdmin = (editedAdmin: Admin): EditAdminAction => {\n return {\n type: EDIT_ADMIN,\n editedAdmin\n };\n};\n\nconst editAdminAsync = (api: string, id: number, request: any, history?: History) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/admins/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((editedAdmin: any) => {\n dispatch(editAdmin(editedAdmin));\n toast.success(`Admin ID ${id} edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n if (history) {\n history.push('/admins');\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default editAdminAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport { History } from 'history';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport fetchInvestorDetailsAsync from './fetchInvestorDetails';\nimport { getJwt } from '../auth';\nimport fetchRequestsCountAsync from '../requests/fetchRequestsCount';\n\nconst detachInvestor = (api: string, investorId: number) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/detach/${investorId}`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n }\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n toast.success('Investor detached successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchInvestorDetailsAsync(api, Number(investorId)) as any);\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const createRequestToDetachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (dispatch: any): void => {\n fetch(`${api}/requests/create/detachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ AccountId: parseInt(investorId, 10) }) // TODO MmId: parseInt(masterId, 10),\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.putValueToLocalStorage('masterIdDetachRequestSent', masterId);\n toast.success('Request created successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchRequestsCountAsync(api));\n history.push('/dashboard');\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default detachInvestor;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { CreateInvestor, Investor } from '../../../types/investorTypes';\nimport { CreateMaster, Master } from '../../../types/masterTypes';\nimport { CreateAdmin, Admin } from '../../../types/adminTypes';\nimport { UserType } from '../../../types/sharedTypes';\n\nexport const CREATE_USER = 'CREATE_USER';\n\ntype CreateUser = CreateInvestor | CreateMaster | CreateAdmin;\nexport type CreatedUser = Investor | Master | Admin;\n\nexport type CreateUserAction = {\n type: string;\n createdUser: CreatedUser;\n};\n\nconst createUser = (createdUser: CreatedUser): CreateUserAction => {\n return {\n type: CREATE_USER,\n createdUser\n };\n};\n\nconst createUserAsync = (api: string, request: CreateUser, userType: UserType) => {\n const endpoint = userType.toLowerCase();\n\n return (dispatch: Dispatch): void => {\n fetch(`${api}/${endpoint}s/create`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((createdUser: any) => {\n dispatch(createUser(createdUser));\n toast.success(`${userType.charAt(0).toUpperCase() + userType.slice(1)} created successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default createUserAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { InvestorOrder } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport const FETCH_MASTER_INVESTORS_ORDERS = 'FETCH_MASTER_INVESTORS_ORDERS ';\n\nexport type FetchMasterInvestorsOrdersAction = {\n type: string;\n orders: Array;\n paginationInfo: PaginationInfo;\n}\n\nexport const fetchMasterInvestorsOrders = (orders: Array, paginationInfo: PaginationInfo): FetchMasterInvestorsOrdersAction => {\n return {\n type: FETCH_MASTER_INVESTORS_ORDERS,\n orders,\n paginationInfo\n }\n};\n\nfunction fetchMasterInvestorsOrdersAsync(api: string, orderId: string, page: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/orders/investors/${orderId}?page=${page}&limit=10`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchMasterInvestorsOrders(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterInvestorsOrdersAsync;","export const areAllPropsEQFalse = (object: Record): boolean => {\n return Object.keys(object).every((property) => object[property] === false);\n};\n\nexport const convertAllPropsToTrue = (object: Record): Record => {\n const objectCopy = JSON.parse(JSON.stringify(object));\n \n Object.keys(objectCopy).forEach((property) => {\n objectCopy[property] = true;\n });\n\n return objectCopy;\n};","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { areAllPropsEQFalse, convertAllPropsToTrue } from '../../../utils/object';\n\nexport const FETCH_REQUESTS = 'FETCH_REQUESTS';\n\nexport type FetchRequestsAction = {\n type: string;\n requests: Array;\n paginationInfo: PaginationInfo;\n}\n\nexport const fetchRequests = (requests: Array, paginationInfo: PaginationInfo): FetchRequestsAction => {\n return {\n type: FETCH_REQUESTS,\n requests,\n paginationInfo\n };\n};\n\nfunction fetchRequestsAsync(\n api: string,\n createdFrom: Date,\n createdTo: Date,\n page?: number,\n limit?: number,\n typeFilters?: any,\n statusFilters?: any,\n idSearch?: string,\n mmChangeFeeAccountsRequestOff?: boolean\n) {\n let query = '';\n let verifiedTypeFilters: Record;\n let verifiedStatusFilters: Record;\n\n query += `page=${page}&`;\n query += `limit=${limit}&`;\n\n if (areAllPropsEQFalse(typeFilters)) {\n verifiedTypeFilters = convertAllPropsToTrue(typeFilters);\n } else {\n verifiedTypeFilters = typeFilters;\n }\n\n Object.keys(verifiedTypeFilters).forEach((filter) => {\n if (verifiedTypeFilters[filter]) {\n query += `typeFilter=${filter.toLowerCase()}&`\n }\n });\n\n if (areAllPropsEQFalse(statusFilters)) {\n verifiedStatusFilters = convertAllPropsToTrue(statusFilters);\n } else {\n verifiedStatusFilters = statusFilters;\n }\n\n Object.keys(verifiedStatusFilters).forEach((filter) => {\n if (verifiedStatusFilters[filter]) {\n query += `statusFilter=${filter.toLowerCase()}&`\n }\n });\n\n query += `createdFrom=${Math.round(createdFrom.getTime() / 1000)}&`;\n query += `createdTo=${Math.round(createdTo.getTime() / 1000)}`;\n\n if (idSearch) query += `&query=${idSearch}`;\n\n if (mmChangeFeeAccountsRequestOff) {\n query = query.replace('typeFilter=changefeeaccountsinfo&', '');\n }\n\n return (dispatch: Dispatch) => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/requests?${query}&sortField=id&direction=desc`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchRequests(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchRequestsAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { IPaymentPeriod } from '../../../types/masterTypes';\n\nexport const FETCH_MASTER_PAYMENT_PERIODS = 'FETCH_MASTER_PAYMENT_PERIODS ';\n\nexport type FetchMasterPaymentPeriodsAction = {\n type: string;\n paymentPeriods: Array;\n}\n\nexport const fetchMasterPaymentPeriods = (paymentPeriods: Array): FetchMasterPaymentPeriodsAction => {\n return {\n type: FETCH_MASTER_PAYMENT_PERIODS,\n paymentPeriods\n }\n};\n\nfunction fetchMasterPaymentPeriodsAsync(api: string, masterId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/paymentPeriods/${masterId}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((paymentPeriods: any) => dispatch(fetchMasterPaymentPeriods(paymentPeriods)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterPaymentPeriodsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\n\nexport const FETCH_VOLUME = 'FETCH_VOLUME';\n\nexport type FetchVolumeAction = {\n type: string;\n volumeFortnight: Array;\n};\n\nconst fetchVolume = (volumeFortnight: Array): FetchVolumeAction => {\n return {\n type: FETCH_VOLUME,\n volumeFortnight\n };\n};\n\nconst fetchVolumeAsync = (api: string, id: number, period: GraphicsPeriodTypes, dateFrom: Date, dateTo: Date) => {\n let query = `${id}?period=${period}`;\n\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n\n return (dispatch: Dispatch): void => {\n fetch(`${api}/summary/volumes/${query}&calcMethod=RunningWithPreviousValue`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n dispatch(fetchVolume(data));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchVolumeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { EditCallbackAddressesRequest, EditCallbackAddressesType } from '../../../types/settingsTypes';\n\nexport const FETCH_CALLBACK_ADDRESSES = 'FETCH_CALLBACK_ADDRESSES';\n\nexport type FetchCallbackAddressesAction = {\n type: string;\n addresses: string[];\n};\n\nconst fetchCallbackAddresses = (addresses: string[]): FetchCallbackAddressesAction => {\n return {\n type: FETCH_CALLBACK_ADDRESSES,\n addresses\n };\n};\n\nconst fetchCallbackAddressesAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchCallbackAddresses(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editFetchCallbackAddressesAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchCallbackAddresses(settings));\n toast.success('Callback addresses edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editCallbackAddresses = (api: string, request: EditCallbackAddressesRequest, requestType: EditCallbackAddressesType) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n let successMessage = '';\n\n switch (requestType) {\n case EditCallbackAddressesType.Add:\n successMessage = 'Callback address added successfully!';\n break;\n case EditCallbackAddressesType.Delete:\n successMessage = 'Callback address deleted successfully!';\n break;\n case EditCallbackAddressesType.Edit:\n successMessage = 'Callback addresses edited successfully!';\n break;\n default:\n break;\n }\n\n toast.success(successMessage, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchCallbackAddressesAsync(api) as any);\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchCallbackAddressesAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ServerSettingsResponse, ServerSettingsRequest } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_SERVER_SETTINGS = 'FETCH_SERVER_SETTINGS';\n\nexport type FetchServerSettingsAction = {\n type: string;\n settings: ServerSettingsResponse;\n};\n\nconst fetchServerSettings = (settings: ServerSettingsResponse): FetchServerSettingsAction => {\n return {\n type: FETCH_SERVER_SETTINGS,\n settings\n };\n};\n\nconst fetchServerSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/common`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchServerSettings(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editServerSettingsAsync = (api: string, request: ServerSettingsRequest) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/common`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchServerSettings(settings));\n toast.success('Server settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchServerSettingsAsync;\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { IInvestorsMassAttach, IInvestorsMassDetach } from '../../../types/investorTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_MASS_ATTACH = 'FETCH_MASS_ATTACH';\n\nexport type MassAtachAction = {\n type: string;\n massAttach: IInvestorsMassAttach;\n};\n\nconst fetchMassAttach = (massAttach: IInvestorsMassAttach): MassAtachAction => {\n return {\n type: FETCH_MASS_ATTACH,\n massAttach\n };\n};\n\nconst massAttachInvestors = (api: string, request: IInvestorsMassAttach) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/investors/attach`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n .then((massAttach: any) => {\n dispatch(fetchMassAttach(massAttach));\n toast.success('Request to server is sent successfully, check details of connection in response', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const massDetachInvestors = (api: string, request: IInvestorsMassDetach) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/investors/detach`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n .then((massAttach: any) => {\n dispatch(fetchMassAttach(massAttach));\n toast.success('Request to server is sent successfully, check details of connection in response', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\n\n\n\nexport default massAttachInvestors;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport setLoadingStatus from '../../../redux/actions/setLoadingStatus';\n\nexport const FETCH_INVESTORS_REPORT = 'FETCH_INVESTORS_REPORT';\n\nexport type FetchInvestorsReportAction = {\n type: string;\n investorsReport: Array;\n paginationInfo: PaginationInfo;\n \n};\n\nconst fetchInvestorsReport = (investorsReport: Array, paginationInfo: PaginationInfo): FetchInvestorsReportAction => {\n return {\n type: FETCH_INVESTORS_REPORT,\n investorsReport,\n paginationInfo,\n };\n};\n\nconst fetchInvestorsReportAsync = (\n api: string,\n page?: number,\n limit?: number,\n sortField?: string,\n sortDirection?: string,\n filtered?: Array\n ) => {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (sortDirection) queryString += `&sortDirection=${sortDirection}`;\n // eslint-disable-next-line no-unused-expressions\n filtered?.forEach((filter: any): void => {\n if (filter.id === 'mtserver') queryString += `&investorMtServerFilter=${filter.value}`\n if (filter.id === 'mtlogin') queryString += `&investorMtLoginFilter=${filter.value}`\n if (filter.id === 'pammid') queryString += `&investorIdFilter=${filter.value}`\n if (filter.id === 'mmpammid') queryString += `&mmIdFilter=${filter.value}`\n if (filter.id === 'balancefrom') queryString += `&balanceFrom=${filter.value}`\n if (filter.id === 'balanceto') queryString += `&balanceTo=${filter.value}`\n if (filter.id === 'equityfrom') queryString += `&equityFrom=${filter.value}`\n if (filter.id === 'equityto') queryString += `&equityTo=${filter.value}`\n if (filter.id === 'investmentsfrom') queryString += `&investmentsFrom=${filter.value}`\n if (filter.id === 'investmentsto') queryString += `&investmentsTo=${filter.value}`\n if (filter.id === 'totalprofitfrom') queryString += `&totalProfitFrom=${filter.value}`\n if (filter.id === 'totalprofitto') queryString += `&totalProfitTo=${filter.value}`\n if (filter.id === 'createdfrom') queryString += `&createdFrom=${filter.value/1000}`\n if (filter.id === 'createdto') queryString += `&createdTo=${filter.value/1000}`\n })\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/investors/summary${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchInvestorsReport(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchInvestorsReportAsync;\n","import { IActionType } from '../../../types/action';\n\nexport const RESET_DETAIL_INVESTOR = 'RESET_DETAIL_INVESTOR';\n\nexport const resetDetailInvestorAC = (): IActionType => ({ type: RESET_DETAIL_INVESTOR });\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin } from '../../../types/adminTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_ADMINS = 'FETCH_ADMINS';\n\nexport type FetchAdminsAction = {\n type: string;\n admins: Array;\n};\n\nconst fetchAdmins = (admins: Array): FetchAdminsAction => {\n return {\n type: FETCH_ADMINS,\n admins\n };\n};\n\nconst fetchAdminsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins?filter=All`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((admins: any) => dispatch(fetchAdmins(admins)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchAdminsAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin } from '../../../types/adminTypes';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\n\nexport const FETCH_ADMIN_DETAILS = 'FETCH_ADMIN_DETAILS ';\n\nexport type FetchAdminDetailsAction = {\n type: string;\n adminDetails: Admin;\n}\n\nexport const fetchAdminDetails = (admin: Admin): FetchAdminDetailsAction => {\n return {\n type: FETCH_ADMIN_DETAILS,\n adminDetails: admin\n }\n};\n\nfunction fetchAdminDetailsAsync(api: string, adminId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/${adminId}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((admin: any) => dispatch(fetchAdminDetails(admin)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchAdminDetailsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../utils/request';\nimport { Log } from '../../types/journalTypes';\nimport setLoadingStatus from './setLoadingStatus';\nimport { PaginationInfo } from '../../types/sharedTypes';\n\nexport const FETCH_LOGS = 'FETCH_LOGS';\n\nexport type FetchLogsAction = {\n type: string;\n logs: Array;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchLogs = (logs: Array, paginationInfo: PaginationInfo): FetchLogsAction => {\n return {\n type: FETCH_LOGS,\n logs,\n paginationInfo\n };\n};\n\nconst fetchLogsAsync = (api: string, filters: any, startDate: Date, endDate: Date, page?: number, limit?: number, search?: string) => {\n let query = '';\n\n const startDateTimestamp = startDate.getTime() / 1000;\n const endDateTimestamp = endDate.getTime() / 1000;\n\n Object.keys(filters).forEach((filter) => {\n if (filters[filter]) {\n query += `filter=${filter}&`\n }\n });\n\n query += `from=${startDateTimestamp}&`;\n query += `to=${endDateTimestamp}&`;\n \n if (search) query +=`query=${search}&`;\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/operations?${query}page=${page}&limit=${limit}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => dispatch(fetchLogs(json.Data, json.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchLogsAsync;","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { FeeAccount } from '../../../types/feeAccountTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_FEE_ACCOUNTS = 'FETCH_FEE_ACCOUNTS';\n\nexport type FetchFeeAccountsAction = {\n type: string;\n feeAccounts: Array;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchFeeAccounts = (feeAccounts: Array, paginationInfo: PaginationInfo): FetchFeeAccountsAction => {\n return {\n type: FETCH_FEE_ACCOUNTS,\n feeAccounts,\n paginationInfo\n };\n};\n\nconst fetchFeeAccountsAsync = (api: string, page?: number, limit?: number, direction?: string, query?: string) => {\n let queryString = `?page=${page}&limit=${limit}&direction=${direction}`;\n\n if (query) queryString += `&query=${query}`;\n \n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/feeAccounts${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => dispatch(fetchFeeAccounts(json.Data, json.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchFeeAccountsAsync;","import { Dispatch } from 'redux';\nimport setLoadingStatus from '../../../redux/actions/setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { IMonitoringResponse } from '../../../types/maintenanceTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\n\nexport const FETCH_MONITORING_ACTION = 'FETCH_MONITORING_ACTION';\n\nexport type MonitoringAction = {\n type: string;\n parameters: IMonitoringResponse;\n};\n\nconst fetchMonitoringAction = (parameters: IMonitoringResponse): MonitoringAction => {\n return {\n type: FETCH_MONITORING_ACTION,\n parameters\n };\n};\n\nconst fetchMonitoringAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/checkComponents`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parameters: any) => {\n dispatch(fetchMonitoringAction(parameters));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n }\n\nexport default fetchMonitoringAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IParametersToCheck, IParametersToFix } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ACCOUNT_PARAMETERS = 'FETCH_ACCOUNT_PARAMETERS';\n\nexport type AccountParametersAction = {\n type: string;\n parametersAccounts: IParametersToCheck | IParametersToFix;\n};\n\nconst fetchAccountsParameters = (parametersAccounts: IParametersToCheck | IParametersToFix): AccountParametersAction => {\n return {\n type: FETCH_ACCOUNT_PARAMETERS,\n parametersAccounts\n };\n};\n\nconst fetchAccountsParametersAsync = (api: string, request: IParametersToCheck | IParametersToFix, parameter: string, account: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/${parameter}/${account}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parametersAccounts: any) => {\n dispatch(fetchAccountsParameters(parametersAccounts));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchAccountsParametersAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IBalanceOperation } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_EDIT_BALANCE_OPERATION = 'FETCH_EDIT_BALANCE_OPERATION';\n\nexport type EditBalanceOperationAction = {\n type: string;\n balanceOperation: IBalanceOperation;\n};\n\nconst fetchEditBalanceOperation = (balanceOperation: IBalanceOperation): EditBalanceOperationAction => {\n return {\n type: FETCH_EDIT_BALANCE_OPERATION,\n balanceOperation\n };\n};\n\nconst fetchEditBalanceOperationAsync = (api: string, request: IBalanceOperation, operationId: any) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/edit/balanceOperation/${operationId}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((balanceOperation: any) => {\n dispatch(fetchEditBalanceOperation(balanceOperation));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchEditBalanceOperationAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IInvestorsCheck } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_INVESTORS_CHECK_PARAMETERS = 'FETCH_INVESTORS_CHECK_PARAMETERS';\n\nexport type InvestorsParametersAction = {\n type: string;\n parametersInvestors: IInvestorsCheck;\n};\n\nconst fetchInvestorsParameters = (parametersInvestors: IInvestorsCheck): InvestorsParametersAction => {\n return {\n type: FETCH_INVESTORS_CHECK_PARAMETERS,\n parametersInvestors\n };\n};\n\nconst fetchInvestorsParametersAsync = (api: string, request: IInvestorsCheck) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/its/checkInvestors`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parametersInvestors: any) => {\n dispatch(fetchInvestorsParameters(parametersInvestors));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchInvestorsParametersAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ILoadOrders } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_LOAD_ORDERS = 'FETCH_LOAD_ORDERS';\n\nexport type LoadOrdersAction = {\n type: string;\n loadOrders: ILoadOrders;\n};\n\nconst fetchLoadOrders = (loadOrders: ILoadOrders): LoadOrdersAction => {\n return {\n type: FETCH_LOAD_ORDERS,\n loadOrders\n };\n};\n\nconst fetchLoadOrdersByTicketsAsync = (api: string, request: ILoadOrders) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/its/loadOrders/byTickets`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((loadOrders: any) => {\n dispatch(fetchLoadOrders(loadOrders));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchLoadOrdersByTicketsAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersCompare } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_COMPARE = 'FETCH_ORDERS_COMPARE';\n\nexport type OrdersCompareAction = {\n type: string;\n ordersCompare: IOrdersCompare;\n};\n\nconst fetchOrdersCompare = (ordersCompare: IOrdersCompare): OrdersCompareAction => {\n return {\n type: FETCH_ORDERS_COMPARE,\n ordersCompare\n };\n};\n\nconst fetchOrdersCompareAsync = (api: string, request: IOrdersCompare) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/compare`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersCompare: any) => {\n dispatch(fetchOrdersCompare(ordersCompare));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersCompareAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersRedistribute } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_REDISTRIBUTE = 'FETCH_ORDERS_REDISTRIBUTE';\n\nexport type OrdersRedistributeAction = {\n type: string;\n ordersRedistribute: IOrdersRedistribute;\n};\n\nconst fetchOrdersCompare = (ordersRedistribute: IOrdersRedistribute): OrdersRedistributeAction => {\n return {\n type: FETCH_ORDERS_REDISTRIBUTE,\n ordersRedistribute\n };\n};\n\nconst fetchOrdersRedistributeAsync = (api: string, request: IOrdersRedistribute) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/redistribute`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersRedistribute: any) => {\n dispatch(fetchOrdersCompare(ordersRedistribute));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersRedistributeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersReload } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_RELOAD = 'FETCH_ORDERS_RELOAD';\n\nexport type OrdersReloadAction = {\n type: string;\n ordersReload: IOrdersReload;\n};\n\nconst fetchOrdersReload = (ordersReload: IOrdersReload): OrdersReloadAction => {\n return {\n type: FETCH_ORDERS_RELOAD,\n ordersReload\n };\n};\n\nconst fetchOrdersReloadAsync = (api: string, request: IOrdersReload) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/reload`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersReload: any) => {\n dispatch(fetchOrdersReload(ordersReload));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersReloadAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrderReopen } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_REOPEN = 'FETCH_ORDERS_REOPEN';\n\nexport type OrderReopenAction = {\n type: string;\n orderReopen: IOrderReopen;\n};\n\nconst fetchOrderReopen = (orderReopen: IOrderReopen): OrderReopenAction => {\n return {\n type: FETCH_ORDERS_REOPEN,\n orderReopen\n };\n};\n\nconst fetchOrderReopenAsync = (api: string, request: IOrderReopen) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/reopen`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((orderReopen: any) => {\n dispatch(fetchOrderReopen(orderReopen));\n toast.success('Load Order successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrderReopenAsync;\n","\nimport { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { IPerformanceFeeCharge } from '../../../types/maintenanceTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_PERFORMANCE_FEE_CHARGE = 'FETCH_PERFORMANCE_FEE_CHARGE';\n\nexport type PerformanceFeeChargeAction = {\n type: string;\n performanceFeeCharge: IPerformanceFeeCharge;\n};\n\nconst fetchPerformanceFeeCharge = (performanceFeeCharge: IPerformanceFeeCharge): PerformanceFeeChargeAction => {\n return {\n type: FETCH_PERFORMANCE_FEE_CHARGE,\n performanceFeeCharge\n };\n};\n\nconst fetchPerformanceFeeChargeAsync = (api: string, account: string, request: IPerformanceFeeCharge) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/${account}/calcIncentive`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((performanceFeeCharge: any) => {\n dispatch(fetchPerformanceFeeCharge(performanceFeeCharge));\n toast.success('Performance fee charge successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchPerformanceFeeChargeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IPositionCheckFix } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_POSITION_CHECK_FIX = 'FETCH_POSITION_CHECK_FIX';\n\nexport type PositionCheckFixAction = {\n type: string;\n positionCheckFix: IPositionCheckFix;\n};\n\nconst fetchIPositionCheckFix = (positionCheckFix: IPositionCheckFix): PositionCheckFixAction => {\n return {\n type: FETCH_POSITION_CHECK_FIX,\n positionCheckFix\n };\n};\n\nconst fetchPositionCheckFixAsync = (api: string, request: IPositionCheckFix, parameter: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/${parameter}/positions`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((positionCheckFix: any) => {\n dispatch(fetchIPositionCheckFix(positionCheckFix));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchPositionCheckFixAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ISendReport } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_SEND_REPORT = 'FETCH_SEND_REPORT';\n\nexport type SendReportAction = {\n type: string;\n sendReport: ISendReport;\n};\n\nconst fetchSendReport = (sendReport: ISendReport): SendReportAction => {\n return {\n type: FETCH_SEND_REPORT,\n sendReport\n };\n};\n\nconst fetchSendReportAsync = (api: string, request: ISendReport) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/sendReport`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((sendReport: any) => {\n dispatch(fetchSendReport(sendReport));\n toast.success('Send report successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchSendReportAsync;\n","module.exports = __webpack_public_path__ + \"assets/images/logo-dark.png\";","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport * as Yup from 'yup';\nimport { Modal, Form, Button } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { UpdateInvestor, Investor, InvestorMode } from '../../../../types/investorTypes';\nimport updateInvestor from '../../../../redux/actions/investor/updateInvestor';\nimport { PAMMState } from '../../../../redux/reducers/rootReducer';\nimport SimpleInput from '../../../shared/SimpleInput';\nimport InputUtils from '../../../../utils/validate-schema';\nimport { AccountType } from '../../../../types/authTypes';\nimport LocalStorageUtils from '../../../../utils/local-storage';\n\ninterface InvestorEditModalProps {\n investor: Investor;\n show: boolean;\n toggleVisibility(modal: string): void;\n}\n\nconst InvestorEditModal: React.FC = ({ investor, show, toggleVisibility }): JSX.Element => {\n const inputStyle = {\n width: '15rem'\n };\n\n const dispatch = useDispatch();\n const intl = useIntl();\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState();\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n const validatorRequiredKey = 'validators.error.required';\n const editInvestorSchema = {\n Username: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).max(100, intl.formatMessage({ id: 'validators.error.name' })).matches(/^[A-Za-z0-9_.@-]+?$/, intl.formatMessage({ id: 'validators.error.username' })),\n Password: Yup.string().test('len', intl.formatMessage({ id: 'validators.error.password' }), val => !val || val.length === 0 || val.length >= 6),\n Name: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^([\\p{L}\\p{N}\\p{P}\\p{S}]+ )+[\\p{L}\\p{N}\\p{P}\\p{S}]+$|^[\\p{L}\\p{N}\\p{P}\\p{S}]+$/u, intl.formatMessage({ id: 'validators.error.invalidName' })),\n Email: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^[A-Za-zА-Яа-я0-9._%+-]+@[A-Za-zА-Яа-я0-9._%+-]+\\.[A-Za-zА-Яа-я0-9]{1,100}$/, intl.formatMessage({ id: 'validators.error.email' })),\n Phone: Yup.string()\n .max(100, intl.formatMessage({ id: 'validators.error.maxLength' }))\n .matches(\n /^[A-Za-zА-Яа-я0-9\\s()+-]*$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashPlus' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n Country: Yup.string()\n .max(100, intl.formatMessage({ id: 'validators.error.maxLength' }))\n .matches(\n /^[A-Za-z- ]+$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterDashSpace' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n LinkToken: Yup.string()\n .matches(\n /^[A-Za-zА-Яа-я0-9_-]+$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashUnderscore' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n HighWaterMark: Yup.string()\n .matches(/^([0-9-]+(\\.\\d{1,2})?)$/, intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashUnderscore' }))\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n }\n\n const originalInvestor: Investor = {\n ...investor,\n Password: ''\n };\n\n const [editInvestorForm, setEditInvestorForm] = React.useState(investor);\n const [investorForTests, setInvestorForTests] = React.useState(false);\n\n\n React.useEffect(() => {\n setEditInvestorForm(investor);\n }, [investor]);\n\n React.useEffect(() => {\n setInvestorForTests(investor.IsTestInvestor);\n }, [editInvestorForm, investor.IsTestInvestor]);\n\n const handleCancel = (): void => {\n setEditInvestorForm(originalInvestor);\n toggleVisibility('EditUser');\n };\n\n const handleSubmit = (): void => {\n const request: UpdateInvestor = {\n Username: editInvestorForm.Username,\n Name: editInvestorForm.Name,\n Password: editInvestorForm.Password,\n Email: editInvestorForm.Email,\n Country: editInvestorForm.Country,\n Phone: editInvestorForm.Phone,\n LinkToken: editInvestorForm.LinkToken,\n // Mode: InvestorMode.Normal,\n HighWaterMark: editInvestorForm.HighWaterMark,\n IsTestInvestor: investorForTests\n };\n\n if (user?.AccountType === AccountType.Investor || investor.Mode === Number(request.Mode)) {\n delete request.Mode;\n }\n if (investor.Username === request.Username) {\n delete request.Username;\n }\n if (investor.Name === request.Name) {\n delete request.Name;\n }\n if (investor.Password === request.Password) {\n delete request.Password;\n }\n if (investor.Email === request.Email) {\n delete request.Email;\n }\n if (investor.Country === request.Country) {\n delete request.Country;\n }\n if (investor.Phone === request.Phone) {\n delete request.Phone;\n }\n if (investor.LinkToken === request.LinkToken) {\n delete request.LinkToken;\n }\n if (investor.HighWaterMark === request.HighWaterMark) {\n delete request.HighWaterMark;\n }\n if (investor.IsTestInvestor === request.IsTestInvestor) {\n delete request.IsTestInvestor;\n }\n\n if (JSON.stringify(request)[2] === undefined) {\n return\n }\n\n dispatch(updateInvestor(api, editInvestorForm.Id.toString(), request));\n toggleVisibility('EditUser');\n };\n\n const isUpdateDisabled = InputUtils.validateSchema(Yup.object().shape(editInvestorSchema), editInvestorForm);\n\n const btnStyle = {\n backgroundColor: customColor,\n borderColor: customColor\n } as React.CSSProperties;\n\n return (\n \n \n \n \n \n \n \n
\n \n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n {/* {user?.AccountType === AccountType.Admin\n ? (\n
\n \n
\n ) : null} */}\n\n {/* {user?.AccountType === AccountType.Admin\n ? (\n
\n \n
\n ) : null} */}\n\n {user?.AccountType === AccountType.Admin\n ? (\n
\n setInvestorForTests(!investorForTests)}\n />\n
\n ) : null}\n {/* \n *\n \n */}\n \n
\n \n handleCancel()}\n >\n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\n style={user?.AccountType === AccountType.Admin ? {} : btnStyle}\n >\n \n \n \n
\n );\n};\n\nexport default InvestorEditModal;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport * as Yup from 'yup';\nimport { Modal, Form, Button } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { UpdateMaster, Master, MasterMode } from '../../../../types/masterTypes';\nimport updateMaster from '../../../../redux/actions/master/updateMaster';\nimport { PAMMState } from '../../../../redux/reducers/rootReducer';\nimport SimpleInput from '../../../shared/SimpleInput';\nimport InputUtils from '../../../../utils/validate-schema';\nimport LocalStorageUtils from '../../../../utils/local-storage';\nimport { AccountType, User } from '../../../../types/authTypes';\n\ninterface MasterEditModalProps {\n master: Master;\n show: boolean;\n toggleVisibility(modal: string): void;\n}\n\nconst MasterEditModal: React.FC = ({ master, show, toggleVisibility }): JSX.Element => {\n const inputStyle = {\n width: '15rem'\n };\n\n const dispatch = useDispatch();\n const intl = useIntl();\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const validatorRequiredKey = 'validators.error.required';\n const editMasterSchema = {\n Username: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).max(100, intl.formatMessage({ id: 'validators.error.name' })).matches(/^[A-Za-z0-9_.@-]+?$/, intl.formatMessage({ id: 'validators.error.username' })),\n Name: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^([\\p{L}\\p{N}\\p{P}\\p{S}]+ )+[\\p{L}\\p{N}\\p{P}\\p{S}]+$|^[\\p{L}\\p{N}\\p{P}\\p{S}]+$/u, intl.formatMessage({ id: 'validators.error.invalidName' })),\n Email: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^[A-Za-zА-Яа-я0-9._%+-]+@[A-Za-zА-Яа-я0-9._%+-]+\\.[A-Za-zА-Яа-я0-9]{1,100}$/, intl.formatMessage({ id: 'validators.error.email' })),\n MinInvestment: Yup.string()\n // .required(intl.formatMessage({ id: validatorRequiredKey }))\n .max(10, intl.formatMessage({ id: 'validators.error.minInvestment' }))\n .matches(/^[0-9]*$/, intl.formatMessage({ id: 'validators.error.mustBeNumber' }))\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n };\n\n const originalMaster: Master = master;\n\n const [editMasterForm, setEditMasterForm] = React.useState(master);\n const [masterForTests, setMasterForTests] = React.useState(false);\n const [privateMaster, setPrivateMaster] = React.useState(false);\n const [invisibleMaster, setInvisibleMaster] = React.useState(false);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState({} as User);\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n React.useEffect(() => {\n setEditMasterForm(master);\n }, [master]);\n\n React.useEffect(() => {\n setMasterForTests(master.Mode === 2);\n setPrivateMaster(master.Private);\n setInvisibleMaster(master.Invisible);\n }, [editMasterForm, master.Mode, master.Private, master.Invisible]);\n\n const handleInputChange = (event: React.ChangeEvent, property: string): void => {\n setEditMasterForm({\n ...editMasterForm,\n [property]: event.target.value\n });\n };\n\n const handleCancel = (): void => {\n setEditMasterForm(originalMaster);\n toggleVisibility('EditUser');\n };\n\n const handleSubmit = (): void => {\n const request: UpdateMaster = {\n Username: editMasterForm.Username,\n Name: editMasterForm.Name,\n Email: editMasterForm.Email,\n AllocationMode: Number(editMasterForm.AllocationMode),\n Mode: masterForTests ? MasterMode.Test : MasterMode.Normal,\n MinInvestment: editMasterForm.MinInvestment,\n Private: privateMaster,\n Invisible: invisibleMaster\n };\n\n if (!masterForTests && editMasterForm.Mode === MasterMode.Disabled) {\n delete request.Mode\n }\n\n if (master.Username === request.Username) {\n delete request.Username;\n }\n if (master.Name === request.Name) {\n delete request.Name;\n }\n if (master.Email === request.Email) {\n delete request.Email;\n }\n if (master.AllocationMode === request.AllocationMode) {\n delete request.AllocationMode;\n }\n if (master.Mode === request.Mode) {\n delete request.Mode;\n }\n if (master.MinInvestment === request.MinInvestment) {\n delete request.MinInvestment;\n }\n if (master.Private === request.Private) {\n delete request.Private;\n }\n if (master.Invisible === request.Invisible) {\n delete request.Invisible;\n }\n\n if (JSON.stringify(request)[2] === undefined) {\n return\n }\n\n\n dispatch(updateMaster(api, editMasterForm.Id.toString(), request));\n toggleVisibility('EditUser');\n };\n\n const isUpdateDisabled = InputUtils.validateSchema(Yup.object().shape(editMasterSchema), editMasterForm);\n\n const btnStyle = {\n backgroundColor: customColor,\n borderColor: customColor\n } as React.CSSProperties;\n\n return (\n \n \n \n \n \n \n \n
\n\n \n\n \n\n \n {user.AccountType === 'admin' ? (\n \n \n \n \n ) => handleInputChange(event, event.target.id)}\n >\n {/* TODO: i18n here */}\n \n \n \n \n ) : null}\n\n \n\n {user?.AccountType === AccountType.Admin\n ? (\n <>\n setPrivateMaster(!privateMaster)}\n />\n\n setInvisibleMaster(!invisibleMaster)}\n />\n\n setMasterForTests(!masterForTests)}\n />\n \n ) : null}\n {/* \n *\n \n */}\n \n
\n \n \n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\n style={user?.AccountType === AccountType.Admin ? {} : btnStyle}\n >\n \n \n \n
\n );\n};\n\nexport default MasterEditModal;\n","module.exports = __webpack_public_path__ + \"assets/images/logo-light.png\";","/* eslint-disable no-nested-ternary */\nimport React from 'react';\nimport { Button, Dropdown, Navbar } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { withRouter, Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport { shadowBox } from '../../styles/styles';\nimport T4BLogo from '../../logos/logo-dark.png';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport fetchRequestsCountAsync from '../../redux/actions/requests/fetchRequestsCount';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { AccountType, User } from '../../types/authTypes';\nimport InvestorEditModal from '../administrator/investor/modals/InvestorEditModal';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport MasterEditModal from '../administrator/master/modals/MasterEditModal';\nimport Icons from '../../icons/icons';\nimport fetchInvestorDetailsAsync from '../../redux/actions/investor/fetchInvestorDetails';\nimport fetchMasterDetailsAsync from '../../redux/actions/master/fetchMasterDetails';\nimport { fetchSharedSettingsAsync } from '../../redux/actions/shared/fetchConfig';\nimport englishIcon from '../../icons/English.svg';\nimport deutschIcon from '../../icons/Deutsch.svg';\nimport frenchIcon from '../../icons/French.svg';\nimport portugalIcon from '../../icons/Portugal.svg';\nimport spanishIcon from '../../icons/Spanish.svg';\nimport russianIcon from '../../icons/Russian.svg';\nimport arabianIcon from '../../icons/Arabian.svg';\nimport japanIcon from '../../icons/Japan.svg';\nimport koreanIcon from '../../icons/Korean.svg';\nimport georgiaIcon from '../../icons/Georgia.svg';\nimport chineseIcon from '../../icons/Chinese.svg';\n\n\n\nconst GenUserNavbar: React.FC = ({\n location,\n signOutFunc,\n currentLang,\n languages,\n onLangChange\n}): JSX.Element => {\n const dispatch = useDispatch();\n // PAMM-2341 TODO\n // const showRequestTab = LocalStorageUtils.getValueFromLocalStorage('showRequestTab');\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n \n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColors: Record = useSelector((state: PAMMState) => state.configReducer.customColorsGeneralUser);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const requestsCount: number = useSelector((state: PAMMState) => state.requestsReducer.count);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const linkedAccounts: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState({} as User);\n const [showEditInvestorModal, setShowEditInvestorModal] = React.useState(false);\n const [showEditMasterModal, setShowEditMasterModal] = React.useState(false);\n \n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user.Id;\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n // PAMM-2341 TODO\n React.useEffect(() => {\n dispatch(fetchSharedSettingsAsync(api));\n }, [dispatch, api]);\n\n React.useEffect(() => {\n if (user?.AccountType === AccountType.Master) {\n dispatch(\n fetchMasterDetailsAsync(\n api,\n user?.Id\n )\n );\n }\n }, [dispatch, api, user]);\n\n React.useEffect(() => {\n dispatch(fetchRequestsCountAsync(api));\n }, [dispatch, api]);\n\n React.useEffect(() => {\n\n if (user?.Id && user?.AccountType === AccountType.Investor) {\n let investorId = 0;\n \n if (user?.AccountType === AccountType.Investor) {\n if (user?.AccountInfo?.LinkToken) {\n investorId = Number(linkedId);\n }\n else {\n investorId = user?.Id;\n }\n }\n\n dispatch(fetchInvestorDetailsAsync(api, investorId));\n }\n }, [dispatch, api, user.Id, linkedId]);\n\n const btnStyle = {\n background: customColors.light,\n border: 'none',\n color: customColors.additionalText,\n padding: 0,\n marginLeft: '1rem',\n marginRight: '1rem',\n borderRadius: 0,\n fontSize: 16\n } as React.CSSProperties;\n\n const btnStyleActive = {\n background: customColors.light,\n border: 'none',\n padding: 0,\n marginLeft: '1rem',\n marginRight: '1rem',\n color: customColors.dark,\n borderRadius: 0,\n fontSize: 16\n } as React.CSSProperties;\n\n const linkStyleActive = {\n borderBottom: `2px solid ${customColors.dark}`\n } as React.CSSProperties;\n\n const logOutBtn = {\n border: 'none',\n backgroundColor: 'white',\n padding: 0\n } as React.CSSProperties;\n\n const langDropdownStyle = {\n backgroundColor: 'white',\n border: 'none',\n color: 'gray',\n fontSize: 14\n } as React.CSSProperties;\n\n const imageStyles = {\n maxWidth: '260px',\n maxHeight: '66px',\n } as React.CSSProperties;\n\n const toggleModalVisibility = (): void => {\n if (user?.AccountType === 'investor') {\n setShowEditInvestorModal(!showEditInvestorModal);\n }\n if (user?.AccountType === 'master') {\n setShowEditMasterModal(!showEditMasterModal);\n }\n };\n\n const getLanguagesFlags = (value: any): string => {\n \n switch (value) {\n case 'English':\n return englishIcon;\n case 'Deutsch':\n return deutschIcon;\n case 'Français':\n return frenchIcon;\n case 'Português':\n return portugalIcon;\n case 'Español':\n return spanishIcon;\n case 'ქართული':\n return georgiaIcon;\n case 'العربية':\n return arabianIcon;\n case '한국어':\n return koreanIcon;\n case 'Русский':\n return russianIcon;\n case '日本語':\n return japanIcon;\n case '中文':\n return chineseIcon;\n default:\n return '';\n }\n };\n \n const languagesItems = Object.keys(languages)\n .filter((lang: string) => lang !== currentLang)\n .map((lang: string, index: number) => {\n return (\n onLangChange(lang)} className='pt-2 pb-2' style={{paddingLeft: 14}}>\n \n {languages[lang]}\n \n );\n });\n\n return (\n <>\n \n
\n \n \n \n
\n\n\n \n \n \n\n {user?.AccountType === AccountType.Master &&\n user?.AccountOptions?.ShowMmOwnFunds === 'Show' ? (\n \n \n \n ) : null}\n\n {user?.AccountType === AccountType.Investor &&\n investor?.AccountOptions?.MasterList === 'Show' ? (\n \n \n \n ) : null}\n {(sharedConfig?.RequestTab?.toString() !== 'false') && (\n \n \n \n )}\n\n
\n \n \n {languages[currentLang] || languages.en}\n {Icons.DropdownIcon('gray', '1x')}\n \n\n {languagesItems}\n \n \n \n
\n \n \n \n \n );\n};\n\nexport default withRouter(GenUserNavbar);\n","import logo from '../logo-light.png';\n\nexport const APP_LOGO = {\n src: logo,\n // height: 48,\n // width: 215,\n className: 'mr-3',\n alt: 'PAMM',\n href: '/'\n};\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { Redirect, Route } from 'react-router';\nimport { useDispatch } from 'react-redux';\nimport { getInfoMastersThunkAC } from '../../redux/actions/master/fetchMasters';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nexport const PrivateRoute = ({ component, ...rest }: any) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getInfoMastersThunkAC());\n }, []);\n\n const routeComponent = () => {\n\n if (rest.isAuthenticated) {\n return component\n }\n\n if (window.location.pathname !== '/login') {\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n LocalStorageUtils.putValueToLocalStorage('rememberPage', JSON.stringify({page: window.location.pathname, accountType: accountType || ''}));\n }\n \n return ;\n\n }\n\n return ;\n};\n","import React from 'react';\nimport { Navbar, Row, Col } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport { Investor } from '../../types/investorTypes';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport getCurrencySymbol from '../../utils/currency';\nimport { spaceSeparatedThousands } from '../../utils/number';\n\nconst SoMobile: React.FC = (): JSX.Element => {\n const intl = useIntl();\n\n const currenciesConfig: Record = useSelector((state: PAMMState) => state.configReducer.currency);\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const [equityOverInvestments, setEquityOverInvestments] = React.useState(0);\n \n const currency = getCurrencySymbol(investor?.Currency, currenciesConfig);\n\n React.useEffect(() => {\n if (investor.Investments) {\n setEquityOverInvestments(Number(((investor.EquityNoCredit - investor.Investments) / investor.Investments * 100).toFixed(2)));\n }\n }, [investor]);\n\n const getSoSlTpValue = (orderType: string): string | number => {\n switch (orderType) {\n case 'so':\n if (investor?.SoMode === 'Off') {\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.disabled' });\n } if (investor?.SoMode === 'Money') {\n return `${currency} ${spaceSeparatedThousands(investor?.So)} (${investor?.SoPercent}%)`\n } if (investor?.SoMode === 'Percent') {\n return `${investor?.SoPercent}% (${currency}${spaceSeparatedThousands(investor?.So)})`;\n } if (investor?.SoMode === 'FromMM') {\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.fromMM' });\n }\n break;\n default:\n break;\n }\n\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.disabled' });\n };\n\n\n const creditShow = sharedConfig.CountCreditInRiskControl ? : \n\n return (\n <>\n {/* Top bar */}\n \n
\n \n \n {Icons.ArrowLeftIcon('black', 'sm')}\n \n \n \n \n \n
\n \n\n
\n {/* Stop Out */}\n {investor?.AccountOptions?.InvestorOpenOrdersTab === 'Show' && (\n \n \n \n \n \n \n\n \n {getSoSlTpValue('so')}\n \n \n )}\n {/* Investments */}\n \n \n \n \n \n \n\n \n {`${investor.Investments} ${getCurrencySymbol(investor.Currency, currenciesConfig)}`}\n \n \n\n {/* Equity */}\n {investor?.AccountOptions?.InvestorOpenOrdersTab === 'Show' && (\n \n \n \n \n {' '}\n {creditShow}:\n \n\n \n \n {`${investor.EquityNoCredit} ${getCurrencySymbol(investor.Currency, currenciesConfig)}`}\n \n\n \n {`(${equityOverInvestments > 0 ? '+' : ''}${equityOverInvestments}%)`}\n \n \n \n )}\n
\n \n );\n};\n\nexport default SoMobile;\n","import React, { Suspense } from 'react';\nimport { Route, Switch, Redirect } from 'react-router-dom';\nimport { History } from 'history';\nimport { useSelector } from 'react-redux';\nimport { PrivateRoute } from '../privateRoute';\nimport useWindowResize from '../../hooks/useWindowSize';\nimport { mobileWidth } from '../../const/size.const';\nimport { AccountType } from '../../types/authTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport SoMobile from '../mobile/SoMobile';\n\n// Desktop components\nconst Login = React.lazy(() => import('../auth/login/Login'));\nconst InvestorsList = React.lazy(() => import('../administrator/investor/InvestorsList'));\nconst InvestorDetails = React.lazy(() => import('../administrator/investor/InvestorDetails'));\nconst MastersList = React.lazy(() => import('../administrator/master/MastersList'));\nconst MasterDetails = React.lazy(() => import('../administrator/master/MasterDetails'));\nconst AdminDetails = React.lazy(() => import('../administrator/admin/AdminDetails'));\nconst Admins = React.lazy(() => import('../administrator/admin/AdminsList'));\nconst Settings = React.lazy(() => import('../administrator/settings/Settings'));\nconst CreateUser = React.lazy(() => import('../CreateUser'));\nconst Journal = React.lazy(() => import('../administrator/journal/Journal'));\nconst AdminDashboard = React.lazy(() => import('../administrator/admin/AdminDashboard'));\nconst RequestsList = React.lazy(() => import('../administrator/requests/RequestsList'));\nconst FeeAccountsList = React.lazy(() => import('../administrator/feeAccounts/FeeAccountsList'));\nconst OrdersList = React.lazy(() => import('../administrator/orders/OrdersList'));\nconst ResetPassword = React.lazy(() => import('../resetPassword/ResetPassword'));\nconst RegisterUser = React.lazy(() => import('../register/RegisterUser'));\nconst Register = React.lazy(() => import('../auth/register/Register'));\nconst MaintenancePage = React.lazy(() => import('../administrator/maintenance/MaintenancePage'));\nconst Monitoring = React.lazy(() => import('../administrator/monitoring/MonitoringDetails'));\nconst MassAttachDetach = React.lazy(() => import('../administrator/massAttachDettach/MassAttachDetach'));\nconst InvestorsReport = React.lazy(() => import('../administrator/investorsReport/InvestorsReport'))\n\n// Mobile components\nconst LoginMobile = React.lazy(() => import('../mobile/LoginMobile'));\nconst MasterDetailsMobile = React.lazy(() => import('../mobile/MasterDetailsMobile'));\nconst MastersListMobile = React.lazy(() => import('../mobile/MastersListMobile'));\nconst RequestsListMobile = React.lazy(\n () => import('../administrator/requests/mobile/RequestsListMobile')\n);\nconst RequestsFiltersMobile = React.lazy(\n () => import('../administrator/requests/mobile/RequestsFiltersMobile')\n);\nconst InvestorDetailsMobile = React.lazy(() => import('../mobile/InvestorDetailsMobile'));\nconst ProfileMobile = React.lazy(() => import('../mobile/ProfileMobile'));\nconst ChangeBalanceCreditMobile = React.lazy(() => import('../mobile/ChangeBalanceCreditMobile'));\nconst CommissionsMobile = React.lazy(() => import('../mobile/CommissionsMobile'));\nconst DownloadStatementMobile = React.lazy(() => import('../mobile/DownloadStatementMobile'));\nconst HistoryMobile = React.lazy(() => import('../mobile/HistoryMobile'));\nconst OrderMobile = React.lazy(() => import('../mobile/OrderMobile'));\nconst BalanceOperationMobile = React.lazy(() => import('../mobile/BalanceOperationMobile'));\nconst BioMobile = React.lazy(() => import('../mobile/BioMobile'));\nconst SlTpMobile = React.lazy(() => import('../mobile/SlTpMobile'));\nconst RegisterUserMobile = React.lazy(() => import('../mobile/RegisterUserMobile'));\nconst RegisterUserSelectMobile = React.lazy(() => import('../mobile/RegisterUserSelectMobile'));\nconst ConnectedInvestorsMobile = React.lazy(() => import('../mobile/ConnectedInvestors'));\nconst ConnectedInvestorDetailMobile = React.lazy(() => import('../mobile/ConnectedInvestorDetail'));\n\n// New interface components\nconst GenUserMastersList = React.lazy(() => import('../generalUser/master/MastersList'));\nconst GenUserRequestsList = React.lazy(() => import('../generalUser/requests/RequestsList'));\nconst InvestorDashboard = React.lazy(() => import('../generalUser/investor/InvestorDashboard'));\nconst MasterDashboard = React.lazy(() => import('../generalUser/master/MasterDashboard'));\n\ninterface IAppRoutesProps {\n isAuthenticated: boolean;\n signInFunc: any;\n history: History;\n currentLang?: string;\n}\n\nconst fillRoutes = (\n routes: Array,\n isAuthenticated: boolean,\n signInFunc: any,\n history: History,\n showMobileVersion: boolean,\n user: any,\n investor: Investor,\n currentLang?: string\n) => {\n let redirectAfterLogin: JSX.Element;\n\n if (user) {\n switch (user.AccountType) {\n case AccountType.Admin:\n redirectAfterLogin = ;\n break;\n case AccountType.Investor:\n redirectAfterLogin = ;\n break;\n case AccountType.Master:\n redirectAfterLogin = ;\n break;\n default:\n break;\n }\n }\n\n const loginPage = () =>\n isAuthenticated ? (\n redirectAfterLogin\n ) : (\n
\n {/* {showMobileVersion ? : } */}\n {showMobileVersion ? : }\n
\n );\n\n if (user) {\n // ADMINISTRATOR (OLD INTERFACE (desktop only))\n if (user.AccountType === AccountType.Admin) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n // showMobileVersion ? (\n // }\n // />\n // ) : (\n }\n />\n // )\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n // showMobileVersion ? (\n // }\n // />\n // ) : (\n }\n />\n // )\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n\n // INVESTOR (NEW DESKTOP INTERFACE)\n if (user.AccountType === AccountType.Investor && !showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n // MASTER (NEW DESKTOP INTERFACE)\n if (user.AccountType === AccountType.Master && !showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n\n // INVESTOR or MASTER (MOBILE/TABLET INTERFACE))\n if (showMobileVersion) {\n if (user.AccountType === AccountType.Investor || user.AccountType === AccountType.Master) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n\n if (\n user.AccountType === AccountType.Investor &&\n investor.AccountOptions.InvestorMmDetails === 'Show'\n ) {\n routes.push(\n }\n />\n );\n }\n\n routes.push(\n }\n />\n );\n // routes.push(} />);\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n \n ) : (\n \n )\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n }\n }\n\n if (showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n } else {\n routes.push( } />);\n }\n routes.push(\n } />\n );\n routes.push();\n routes.push();\n};\n\nconst AppRoutes: React.FC = ({\n isAuthenticated,\n signInFunc,\n history,\n currentLang\n}: IAppRoutesProps): JSX.Element => {\n const [width, height] = useWindowResize();\n\n const [showMobileVersion, setShowMobileVersion] = React.useState(width < mobileWidth);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n\n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n React.useEffect(() => {\n setShowMobileVersion(width < mobileWidth);\n }, [width, height]);\n\n React.useEffect(() => {\n return history.listen((location) => {\n if (!location.pathname.includes('money_managers')) {\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n }\n });\n }, [history]);\n\n const routes: Array = [];\n\n fillRoutes(routes, isAuthenticated, signInFunc, history, showMobileVersion, user, investor, currentLang);\n\n return (\n \n {routes}\n \n );\n};\n\nexport default AppRoutes;\n","import React from 'react';\nimport { Link, withRouter } from 'react-router-dom';\nimport { Navbar, Col } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport fetchInvestorDetailsAsync from '../../redux/actions/investor/fetchInvestorDetails';\nimport { AccountType } from '../../types/authTypes';\nimport { fetchSharedSettingsAsync } from '../../redux/actions/shared/fetchConfig';\n\nconst BottomBarMobile: React.FC = ({ user, location }): JSX.Element => {\n const dispatch = useDispatch();\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n // PAMM-2341 TODO\n // const showRequestTab = LocalStorageUtils.getValueFromLocalStorage('showRequestTab');\n const currentAddress = location.pathname;\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n // PAMM-2341 TODO\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n\n const shouldDashboardButtonLightUp = (): boolean => {\n return currentAddress.includes('dashboard') ||\n currentAddress.includes('commissions') ||\n currentAddress.includes('closed-order') ||\n currentAddress.includes('history') ||\n currentAddress.includes('change-balance') ||\n currentAddress.includes('change-credit') ||\n currentAddress.includes('balance-operation');\n };\n\n const onlyTwoButtonsActive = user.AccountOptions.MasterList === 'Hide' && sharedConfig?.RequestTab?.toString() === 'false';\n\n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user.Id;\n\n React.useEffect(() => {\n\n if (user?.Id && user?.AccountType === AccountType.Investor) {\n let investorId = 0;\n\n if (user?.AccountType === AccountType.Investor) {\n if (user?.AccountInfo?.LinkToken) {\n investorId = Number(linkedId);\n }\n else {\n investorId = user?.Id;\n }\n }\n\n dispatch(fetchInvestorDetailsAsync(api, investorId));\n }\n }, [dispatch, api, user.Id, linkedId]);\n\n // PAMM-2341 TODO\n React.useEffect(() => {\n dispatch(fetchSharedSettingsAsync(api));\n }, [dispatch, api, sharedConfig?.RequestTab]);\n\n const buttonStyle = {\n display: 'flex',\n width: '2.5rem',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '.3rem',\n marginTop: '.3rem',\n } as React.CSSProperties;\n\n const activeButtonStyle = {\n ...buttonStyle,\n color: customColor,\n } as React.CSSProperties;\n \n const textStyle = {\n color: 'black',\n fontSize: 12,\n } as React.CSSProperties;\n\n const activeTextStyle = {\n ...textStyle,\n color: customColor,\n textDecoration: 'none',\n outline: 'none',\n } as React.CSSProperties;\n\n return (\n \n \n \n \n {Icons.ChartAreaIcon(shouldDashboardButtonLightUp() ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n {/* \n \n
\n {Icons.UserIcon('#343a40', '1x')}\n
\n
\n \n
\n \n */}\n {investor.AccountOptions.MasterList === 'Show' && user.AccountType === 'investor'\n ? (\n \n \n \n {Icons.UsersIcon(currentAddress.includes('/money_managers') || currentAddress.includes('/bio') ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n {sharedConfig?.RequestTab?.toString() !== 'false'\n ? (\n \n \n \n {Icons.ExchangeIcon(currentAddress.includes('/requests') ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n \n \n \n {Icons.CogIcon(currentAddress === '/profile' ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n \n );\n};\n\nexport default withRouter(BottomBarMobile);\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Link, withRouter } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport OperationsMenuMobileCss from './OperationsMenuMobile.module.css'\nimport Icons from '../../icons/icons';\nimport { setDisconnectFromMasterConfirmationStatus, setLanguagesMenuStatus, setOpsMenuStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { AccountType } from '../../types/authTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { Investor } from '../../types/investorTypes';\n\nconst OperationsMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel,\n location,\n currentLang\n}): JSX.Element => {\n const dispatch = useDispatch();\n\n const languages: Record = useSelector((state: PAMMState) => state.configReducer.languages);\n const customColorsGenUser = useSelector((state: PAMMState) => state.configReducer.customColorsGeneralUser);\n const userJSON: string | null = LocalStorageUtils.getValueFromLocalStorage('user');\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const customColors: Record = useSelector(\n (state: PAMMState) => state.configReducer.customColorsGeneralUser\n );\n \n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user?.Id;\n\n const showDisconnectFromThisMasterWarning =\n investor.MasterId !== 0 && investor?.AccountOptions?.DetachAction !== 'Off';\n\n React.useEffect(() => {\n dispatch(setOpsMenuStatus(false));\n }, [dispatch, location]);\n\n const handleShowLanguagesMenu = (): void => {\n dispatch(setOpsMenuStatus(false));\n dispatch(setLanguagesMenuStatus(true));\n };\n\n const handleDetachInvestor = (): void => {\n dispatch(setDisconnectFromMasterConfirmationStatus(true));\n dispatch(setOpsMenuStatus(false));\n };\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem',\n paddingTop: '32px'\n } as React.CSSProperties;\n\n const iconStyle = {\n borderRadius: '50%',\n backgroundColor: '#E9E9E9',\n width: '2.5rem',\n height: '2.5rem',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n } as React.CSSProperties;\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('operationsMenu')}\n >\n {/* INVESTOR: Deposit or Deposit/Withdrawal */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorWithdrawButton === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null}\n\n {/* MASTER: Deposit/Withdrawal */}\n {/* It should use the Master's OwnFunds ID, instead of the Master's own ID */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null} */}\n\n {/* INVESTOR: Credit In/Out */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorCreditButton === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null}\n\n {/* INVESTOR: DISCONNECT */}\n {user?.AccountType === AccountType.Investor && showDisconnectFromThisMasterWarning\n ? (\n \n
\n \n \n \n \n \n \n
\n \n ) : null}\n\n {/* INVESTOR: AUTO DISCONNECT */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.ChangeSlTpButton === 'Show'\n ? (\n \n
\n \n \n \n \n \n \n
\n \n ) : null}\n\n\n {/* An empty space, if user IS Investor, but can't see their Credit button */}\n {/* {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorCreditButton === 'Hide'\n ? (\n
\n {/* space */}\n {/*
*/}\n {/* ) : null} */}\n\n {/* MASTER: Credit In/Out */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null} */}\n {/* An empty space, if user IS Master, but can't see their OwnFunds account */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Hide'\n ? (\n
\n {/* space */}\n {/*
*/}\n {/* ) : null} */}\n\n {/* MASTER and INVESTOR: Orders Commissions */}\n\n \n
\n \n {Icons.DollarSignIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n\n\n {/* MASTER: Connected Investors */}\n {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.MmConnectedInvestors === 'Show'\n ? (\n \n
\n \n {Icons.UsersIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : (\n
\n {/* space */}\n
\n )}\n\n\n {/* History: Always show for INVESTOR and MASTER */}\n \n
\n \n {Icons.HistoryIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n\n {/* Statements: Condition for INVESTOR, but always show for MASTER */}\n {investor?.AccountOptions?.InvestorStatementButton === 'Show' || user?.AccountType === AccountType.Master\n ? (\n \n
\n \n {Icons.FileAltIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : (\n
\n {/* space */}\n
\n )}\n\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n \n \n {Icons.LanguageIcon(customColorsGenUser.dark, 'sm')}\n \n \n {languages[currentLang] || languages.en}\n \n \n \n );\n};\n\nexport default withRouter(OperationsMenuMobile);\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button, Row } from 'react-bootstrap';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport { setLinkedAccountsMenuStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nconst LinkedAccountsMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const dispatch = useDispatch();\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const linkedAccounts: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const [selectedLinkedAccountIndex, setSelectedLinkedAccountIndex] = React.useState(investor.Id);\n\n // TODO\n // React.useEffect(() => {\n // if (investor.LinkToken)\n // dispatch(fetchInvestorsAsync(api, investor.LinkToken, undefined, undefined, 1));\n // }, [dispatch, api, investor.Id]);\n\n React.useEffect(() => {\n setSelectedLinkedAccountIndex(linkedAccounts.findIndex((account: Investor) => account?.Id === investor?.Id));\n }, [investor, linkedAccounts]);\n\n const handleSelectLinkedAccount = (id: number): void => {\n // dispatch(fetchInvestorDetailsAsync(api, id));\n dispatch(setLinkedAccountsMenuStatus(false));\n // TODO\n // dispatch(\n // fetchOrdersAsync(\n // api,\n // 'investors',\n // OrderType.Open,\n // id,\n // undefined,\n // undefined,\n // 20,\n // 'mtorderid',\n // 'asc'\n // )\n // );\n LocalStorageUtils.putValueToLocalStorage('linkedIdMobile', id.toString());\n };\n\n const btnStyle = {\n backgroundColor: 'white',\n color: 'inherit',\n border: 'none',\n fontSize: '1.3rem',\n padding: 0,\n margin: 0,\n width: '100%'\n } as React.CSSProperties;\n\n const linkedAccountsLinks = linkedAccounts.map((linkedAccount: any, index: number) => {\n if (linkedAccount?.Id !== investor.Id) {\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <>\n \n handleSelectLinkedAccount(linkedAccount?.Id)}\n style={btnStyle}\n >\n
\n \n {Icons.CircleIcon('lightgrey', '2x')}\n \n \n {linkedAccount?.Name}\n \n
\n \n
\n\n {index !== linkedAccounts?.length - 1 ?
: null}\n \n );\n }\n\n return true;\n })\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('LinkedAccountsMenu')}\n >\n {linkedAccountsLinks}\n \n );\n};\n\nexport default LinkedAccountsMenuMobile;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport englishIcon from '../../icons/English.svg';\nimport deutschIcon from '../../icons/Deutsch.svg';\nimport frenchIcon from '../../icons/French.svg';\nimport portugalIcon from '../../icons/Portugal.svg';\nimport spanishIcon from '../../icons/Spanish.svg';\nimport russianIcon from '../../icons/Russian.svg';\nimport arabianIcon from '../../icons/Arabian.svg';\nimport japanIcon from '../../icons/Japan.svg';\nimport koreanIcon from '../../icons/Korean.svg';\nimport georgiaIcon from '../../icons/Georgia.svg';\nimport chineseIcon from '../../icons/Chinese.svg';\n\nconst LanguagesMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel,\n onLangChange\n}): JSX.Element => {\n const languages: Record = useSelector((state: PAMMState) => state.configReducer.languages);\n\n const getLanguagesFlags = (value: any): string => {\n \n switch (value) {\n case 'English':\n return englishIcon;\n case 'Deutsch':\n return deutschIcon;\n case 'Français':\n return frenchIcon;\n case 'Português':\n return portugalIcon;\n case 'Español':\n return spanishIcon;\n case 'ქართული':\n return georgiaIcon;\n case 'العربية':\n return arabianIcon;\n case '한국어':\n return koreanIcon;\n case 'Русский':\n return russianIcon;\n case '日本語':\n return japanIcon;\n case '中文':\n return chineseIcon;\n default:\n return '';\n }\n };\n\n const langLinks = Object.keys(languages).map((lang: string, index: number) => (\n
onLangChange(lang)}>\n
\n \n \n \n {languages[lang]}\n \n \n
\n\n {index === Object.keys(languages).length\n ?
\n : null}\n
\n ));\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties; \n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('languagesMenu')}\n >\n {langLinks}\n \n );\n};\n\nexport default LanguagesMenuMobile;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useHistory } from 'react-router-dom';\nimport { History } from 'history';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { createRequestToAttachInvestor } from '../../redux/actions/investor/attachInvestor';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport { setConnectToMasterConfirmationStatus } from '../../redux/actions/setMobileMenusStatus';\n\nconst ConfirmConnectToMasterMenu: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const dispatch = useDispatch();\n const history: History = useHistory();\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const buttonStyle = {\n backgroundColor: customColor,\n color: 'white',\n border: 0,\n borderRadius: 10,\n fontSize: 13,\n paddingBottom: 7,\n WebkitBoxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n boxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n width: '70%'\n } as React.CSSProperties;\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n\n const handleAttach = (): void => {\n dispatch(createRequestToAttachInvestor(api, investor.Id.toString(), master.Id.toString(), history));\n dispatch(setConnectToMasterConfirmationStatus(false));\n };\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('confirmConnectToMasterMenu')}\n >\n
\n ?\n
\n
\n \n
\n \n );\n};\n\nexport default ConfirmConnectToMasterMenu;\n","export const getOperationsMenuHeight = (userType: string, accountOptions: any): any => {\n const regularButton = 59.5; // Height in pixels WITH bottom margin\n const separationButton = 91.5; // Height in pixels WITHOUT bottom margin\n\n let height = 0;\n\n if (userType === 'investor') {\n // Deposit/Withdrawal\n if (accountOptions.InvestorWithdrawButton === 'Show' && accountOptions.InvestorCreditButton === 'Show') {\n height += regularButton;\n }\n if (accountOptions.InvestorWithdrawButton === 'Show' && accountOptions.InvestorCreditButton === 'Hide') {\n height += separationButton;\n }\n\n if (accountOptions.InvestorCreditButton === 'Show' && accountOptions.InvestorWithdrawButton === 'Show') {\n height += regularButton;\n }\n if (accountOptions.InvestorCreditButton === 'Show' && accountOptions.InvestorWithdrawButton === 'Hide') {\n height += separationButton;\n }\n\n // Disconnect button\n if (accountOptions.Disconnect !== 'Off') {\n height += regularButton;\n }\n\n // Commissions button\n if (accountOptions.OrdersCommissions === 'Show') {\n height += separationButton;\n }\n\n // History button\n height += regularButton;\n\n // Statements button\n if (accountOptions.InvestorStatementButton === 'Show') {\n height += separationButton;\n } else {\n // History becomes a separationButton\n height -= regularButton;\n height += separationButton;\n }\n\n // Language button\n height += regularButton;\n\n // Padding top and bottom\n height += 100;\n }\n\n if (userType === 'master') {\n // Deposit button\n height += regularButton;\n\n // Withdrawal button\n height += separationButton;\n\n // Commissions button\n if (accountOptions.OrdersCommissions === 'Show') {\n height += separationButton;\n }\n\n // Connected Investors button\n if (accountOptions.MmConnectedInvestors === 'Show') {\n height += regularButton;\n }\n\n // History button\n height += regularButton;\n\n // Statements button\n height += separationButton;\n\n // Language button\n height += regularButton;\n }\n\n // Padding top and bottom\n height += 110;\n\n return height;\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useHistory } from 'react-router-dom';\nimport { History } from 'history';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { createRequestToDetachInvestor } from '../../redux/actions/investor/detachInvestor';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport { setDisconnectFromMasterConfirmationStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { spaceSeparatedThousands } from '../../utils/number';\nimport { getEquityOverInvestments } from '../../utils/value';\nimport getCurrencySymbol from '../../utils/currency';\n\nconst ConfirmDisconnectFromMasterMenu: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const history: History = useHistory();\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const buttonStyle = {\n backgroundColor: customColor,\n color: 'white',\n border: 0,\n borderRadius: 10,\n fontSize: 13,\n paddingBottom: 7,\n WebkitBoxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n boxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n width: '70%'\n } as React.CSSProperties;\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n\n const currenciesConfig: Record = useSelector((state: PAMMState) => state.configReducer.currency);\n const currency = getCurrencySymbol(investor?.Currency, currenciesConfig);\n\n\n const handleAttach = (): void => {\n dispatch(createRequestToDetachInvestor(api, investor.Id.toString(), master.Id.toString(), history));\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n };\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('confirmDisconnectFromMasterMenu')}\n >\n
\n ?\n
\n {(investor && investor?.AccountOptions?.InvestorOpenOrdersTab === 'Show') && (\n
\n \n {`${intl.formatMessage({id: 'investorDetails.balanceIndicators.equity'})}: ${currency}${spaceSeparatedThousands(investor?.Equity)} (${getEquityOverInvestments(investor)} %)`}\n \n {/* \n {`${intl.formatMessage({id: 'investorDetails.balanceIndicators.disconnectEquity'})}: ${currency}${spaceSeparatedThousands(investor?.DisconnectEquity)}`}\n */}\n
\n )}\n
\n \n
\n\n \n );\n};\n\nexport default ConfirmDisconnectFromMasterMenu;\n","const getLinkedAccountsMenuMobileHeight = (height: number): number | string => {\n return 100 + (height * 78);\n};\n\nexport default getLinkedAccountsMenuMobileHeight;","import React from 'react';\nimport { IntlProvider, FormattedMessage } from 'react-intl';\nimport { AppNavbar, AppSideBar, IconItem } from '@t4b/core';\nimport { ToastContainer } from 'react-toastify';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { History, Location } from 'history';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport { Nav, Modal, Row } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt, faBars, faUsers, faCogs, faUserPlus, faBook, faChartArea, faExchangeAlt, faList, faUserTie, faPercent, faHandHoldingDollar, faDesktop, faNetworkWired, faFileLines} from '@fortawesome/free-solid-svg-icons';\nimport GenUserNavbar from './components/generalUser/GenUserNavbar';\nimport { APP_LOGO } from './const/logo.const';\nimport LocalStorageUtils from './utils/local-storage';\nimport { loginUserAsync, logoutUserAsync, removeJwt } from './redux/actions/auth';\nimport fetchConfigAsync, { fetchLanguageJSONAsync } from './redux/actions/shared/fetchConfig';\nimport AppRoutes from './components/routes/Routes';\nimport useWindowResize from './hooks/useWindowSize';\nimport { mobileWidth } from './const/size.const';\nimport BottomBarMobile from './components/mobile/BottomBarMobile';\nimport { PAMMState } from './redux/reducers/rootReducer';\nimport OperationsMenuMobile from './components/mobile/OperationsMenuMobile';\nimport LinkedAccountsMenu from './components/mobile/LinkedAccountsMenuMobile';\nimport LanguagesMenu from './components/mobile/LanguagesMenuMobile';\nimport ConfirmConnectToMasterMenu from './components/mobile/ConfirmConnectToMasterMenuMobile';\nimport { setOpsMenuStatus, setLinkedAccountsMenuStatus, setLanguagesMenuStatus, setConnectToMasterConfirmationStatus, setDisconnectFromMasterConfirmationStatus } from './redux/actions/setMobileMenusStatus';\nimport { Investor } from './types/investorTypes';\nimport { AccountType } from './types/authTypes';\nimport { getOperationsMenuHeight } from './utils/operationsMenuMobile';\nimport ConfirmDisconnectFromMasterMenu from './components/mobile/ConfirmDisconnectFromMasterMenuMobile';\nimport getLinkedAccountsMenuMobileHeight from './utils/linkedAccountsMenuMobile';\nimport { shadowBox } from './styles/styles';\n\nconst App: React.FC = () => {\n const dispatch: any = useDispatch();\n const history: History = useHistory();\n const location: Location = useLocation();\n const [width, height] = useWindowResize();\n\n const langJSON = useSelector((state: PAMMState) => state.configReducer.langFile);\n\n // START \"AppNavbar\" related\n const api = useSelector((state: PAMMState) => state.configReducer.api);\n const [currentLang, setLang] = React.useState(LocalStorageUtils.getValueFromLocalStorage('lang') as string);\n const languagesList = useSelector((state: PAMMState) => state.configReducer.languages);\n const copyright: string = useSelector((state: PAMMState) => state.configReducer.copyright);\n const defaultLanguage: string = useSelector((state: PAMMState) => state.configReducer.defaultLanguage);\n \n const [sidebarHidden, setSidebarHidden] = React.useState(true);\n // const { isLoading } = useSelector((state: any) => state.loadingStatusReducer);\n // const isAuthenticated = useSelector((store: any) => store.authReducer.isAuthenticated);\n const isAuthenticated = LocalStorageUtils.getValueFromLocalStorage('isAuthenticated') === 'true';\n\n const [tokenState, setTokenState] = React.useState(false);\n // const tokenExpired: boolean = isTokenExpired();\n const handleSidebarClick = () => setSidebarHidden(!sidebarHidden);\n const [showMobileVersion, setShowMobileVersion] = React.useState(width < mobileWidth);\n const userJSON: string | null = LocalStorageUtils.getValueFromLocalStorage('user');\n\n // this shouldn't be like this\n const investors: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n\n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n React.useEffect(() => {\n if(defaultLanguage) {\n dispatch(fetchLanguageJSONAsync(currentLang || defaultLanguage));\n }\n }, [currentLang, defaultLanguage]);\n\n React.useEffect(() => {\n setShowMobileVersion(width < mobileWidth);\n }, [width, height]);\n\n const isTokenExpired = (): any => {\n if (Number(LocalStorageUtils.getValueFromLocalStorage('exp')) < Date.now()) {\n setTimeout(() =>{\n setTokenState(true);\n isTokenExpired();\n }, 360000)\n return true;\n }\n\n setTimeout(() =>{\n setTokenState(false);\n isTokenExpired();\n }, 360000)\n return false;\n }\n\n const tokenExpired: boolean = isTokenExpired();\n React.useEffect(() => {\n if (isAuthenticated && tokenExpired) {\n dispatch(logoutUserAsync(api, history, true));\n }\n }, [tokenState]);\n\n React.useEffect(() => {\n dispatch(fetchConfigAsync());\n }, [dispatch]);\n\n const onLangChange = (langKey: string): void => {\n setLang(langKey);\n LocalStorageUtils.putValueToLocalStorage('lang', langKey);\n dispatch(fetchLanguageJSONAsync(langKey));\n\n if (showMobileVersion) {\n dispatch(setLanguagesMenuStatus(false));\n }\n };\n\n const signOutFunc = () => {\n dispatch(logoutUserAsync(api, history));\n removeJwt();\n };\n\n const exitButton: JSX.Element = (\n \n \n \n );\n // END\n\n // START \"AppLoginPage\" related\n const signInFunc = (username: string, password: string, rememberMe: boolean) => {\n dispatch(loginUserAsync(api, username, password, rememberMe, history));\n };\n // END\n\n // START \"AppSideBar\" related\n const [showModal, setShowModal] = React.useState(false);\n\n const sidebarItems = [\n {\n translateKey: 'dashboard',\n isExternal: false,\n link: '/dashboard',\n icon: new IconItem('48px', faChartArea, 'lg', '10px', '#43A09A'),\n tooltipKey: \n },\n {\n translateKey: 'investors.title',\n isExternal: false,\n link: '/investors',\n icon: new IconItem('48px', faUsers, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'masters.title',\n isExternal: false,\n link: '/money_managers',\n icon: new IconItem('48px', faHandHoldingDollar, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'admins',\n isExternal: false,\n link: '/admins',\n icon: new IconItem('48px', faUserTie, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'feeAccounts.title',\n isExternal: false,\n link: '/fee-accounts',\n icon: new IconItem('48px', faPercent, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'create',\n isExternal: false,\n link: '/create/investor',\n icon: new IconItem('48px', faUserPlus, 'lg', '10px', '#70BBD0'),\n tooltipKey: \n },\n {\n translateKey: 'investorsAttachDetach',\n isExternal: false,\n link: '/mass-attach/investors',\n icon: new IconItem('48px', faNetworkWired, 'lg', '10px', '#70BBD0'),\n tooltipKey: \n },\n {\n translateKey: 'investors.report',\n isExternal: false,\n link: '/investorsReport',\n icon: new IconItem('48px', faFileLines, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'orders.title',\n isExternal: false,\n link: '/orders',\n icon: new IconItem('48px', faList, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'journal',\n isExternal: false,\n link: '/journal',\n icon: new IconItem('48px', faBook, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'requestsNomPlur',\n isExternal: false,\n link: '/requests',\n icon: new IconItem('48px', faExchangeAlt, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'administrator.monitoring',\n isExternal: false,\n link: '/monitoring',\n icon: new IconItem('48px', faDesktop, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'settings',\n isExternal: false,\n link: '/settings/common',\n icon: new IconItem('48px', faCogs, 'lg', '10px', '#43A09A'),\n tooltipKey: \n }\n ];\n\n const handleShowModal = () => setShowModal(true);\n\n const handleCloseModal = () => setShowModal(false);\n\n const licenceModal = (\n \n \n \n \n \n \n \n

PAMM.Frontend.2.164

\n

\n {copyright}\n

\n
\n
\n );\n\n const genUserCopyrightBar = (\n \n \n {copyright}\n \n \n );\n\n const sidebarComponent = isAuthenticated && !tokenExpired ? (\n \n ) : null;\n // END\n\n const showOpsMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showOpsMenu);\n const showlinkedAccountsMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showlinkedAccountsMenu);\n const showLanguagesMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showLanguagesMenu);\n const showConfirmConnectToMasterMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showConnectToMasterConfirmation);\n const showConfirmDisconnectFromMasterMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showDisconnectFromMasterConfirmation);\n\n let touches: any = [];\n\n const handleSwipe = (event: any) => {\n touches.push(event.pageY);\n }\n\n const handleCancel = (menu: string): void => {\n if (touches[0] < touches[touches.length - 1]) {\n if (menu === 'operationsMenu') {\n dispatch(setOpsMenuStatus(false));\n } else if (menu === 'linkedAccountsMenu') {\n dispatch(setLinkedAccountsMenuStatus(false));\n } else if (menu === 'languagesMenu') {\n dispatch(setLanguagesMenuStatus(false));\n } else if (menu === 'confirmConnectToMasterMenu') {\n dispatch(setConnectToMasterConfirmationStatus(false));\n } else if (menu === 'confirmDisconnectFromMasterMenu') {\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n }\n }\n\n touches = [];\n }\n\n const handleCancelSingleTouch = (): void => {\n if (showOpsMenu) {\n dispatch(setOpsMenuStatus(false));\n } else if (showlinkedAccountsMenu) {\n dispatch(setLinkedAccountsMenuStatus(false));\n } else if (showLanguagesMenu) {\n dispatch(setLanguagesMenuStatus(false));\n } else if (showConfirmConnectToMasterMenu) {\n dispatch(setConnectToMasterConfirmationStatus(false));\n } else if (showConfirmDisconnectFromMasterMenu) {\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n }\n }\n\n const shadow = (\n // eslint-disable-next-line react/self-closing-comp\n
\n
\n );\n\n const showSidebar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (user.AccountType !== AccountType.Admin) {\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const showAdminNavbar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (!showMobileVersion && user.AccountType === AccountType.Admin) {\n return true;\n }\n if (showMobileVersion && user.AccountType === AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const showGeneralUserNavbar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (!showMobileVersion && user.AccountType !== AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const showBottomBar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (showMobileVersion && user.AccountType !== AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const getAppStyle = (): string => {\n if ((user && user.AccountType === AccountType.Admin) || !user) {\n return 'm-4 p-2 mt-1';\n }\n\n return '';\n };\n\n const overlayscrollbarsOptions = {\n overflowBehavior: {\n x: 'hidden'\n },\n scrollbars: {\n autoHide: 'scroll',\n autoHideDelay: 1000\n }\n } as OverlayScrollbars.Options;\n\n return api && (Object.keys(langJSON).length !== 0) && defaultLanguage ? (\n \n {showAdminNavbar()\n ? (\n \n ) : null}\n {showBottomBar() ? : null}\n \n {licenceModal}\n {showSidebar() ? sidebarComponent : null}\n {/* eslint-disable-next-line no-nested-ternary */}\n {(showMobileVersion && !user) || (showMobileVersion && user?.AccountType === 'investor') || (showMobileVersion && user?.AccountType === 'master')\n ? (\n <>\n \n
\n \n
\n \n {(showOpsMenu ||\n showlinkedAccountsMenu ||\n showLanguagesMenu ||\n showConfirmConnectToMasterMenu ||\n showConfirmDisconnectFromMasterMenu) ? shadow : null}\n \n ) : user?.AccountType === 'admin' ? (\n \n
\n \n
\n
\n ) : (\n
\n {showGeneralUserNavbar()\n ? (\n \n ) : null}\n \n \n\n {(isAuthenticated && !tokenExpired ? genUserCopyrightBar : null)}\n \n
\n )}\n \n \n \n {investors?.length > 0\n ? (\n \n ) : null}\n \n \n \n
\n ) : null;\n};\n\nexport default App;\n","import '@t4b/core/lib/index.css';\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'overlayscrollbars/css/OverlayScrollbars.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport store from './redux/store';\nimport 'react-toastify/dist/ReactToastify.css';\nimport App from './app';\nimport './app.scss';\n\nReactDOM.render(\n \n \n \n \n , \n document.getElementById('root'));\n"],"sourceRoot":""}