{"version":3,"sources":["store/exchangeSports/exchangeSportsActionTypes.ts","constants/Branding.ts","store/exchBetslip/exchBetslipActionTypes.ts","store/common/commonActionTypes.ts","store/auth/authActionTypes.ts","store/auth/authActions.ts","svls-api/index.ts","store/exchangeSports/exchangeSportsActions.ts","store/multimarket/multimarketActionTypes.ts","store/common/commonActions.ts","store/exchBetslip/exchBetslipActions.ts","util/stringUtil.ts","store/auth/authReducer.ts","store/common/commonReducer.ts","store/exchangeSports/exchangeSportsReducer.ts","constants/ButtonVariables.ts","store/exchBetslip/exchBetslipReducer.ts","store/casino/CasinoGameReducer.ts","store/multimarket/multimarketReducer.ts","store/rootReducer.ts","store/store.ts","constants/LineMarkets.ts","store/exchangeSports/exchangeSportsSelectors.ts","store/casino/CasinoGameActions.ts","api/index.ts","store/multimarket/multimarketAction.ts","store/casino/CasinoActionTypes.ts","assets/images/sportsbook/icons/liveIcon.svg","constants/ExchangeEventTypes.ts","api-services/environment-url/environment-url.ts","models/Currency.ts","constants/ConfigPermission.ts","pages/LoadingPage/LoadingPage.tsx","assets/images/home/tiles/Football.svg","reporting-api/index.ts","assets/images/brand/title.png","components/ChangePassword/ChangePassword.tsx","constants/CommonConstants.ts","assets/images/home/tiles/Tennis.svg","assets/images/home/tiles/horseracing-icon.svg","assets/images/faricimage/bank.png","assets/images/faricimage/googlepay.png","assets/images/faricimage/paytm.png","assets/images/faricimage/Phonepe.png","assets/images/faricimage/UPI.png","assets/images/sportsbook/icons/badminton.png","assets/images/sportsbook/cricket-inplay.png","assets/images/sportsbook/football-inplay.png","assets/images/sportsbook/tennis-inplay.png","assets/images/sportsbook/horse-inplay.png","assets/images/sportsbook/greyhound-live.png","assets/images/sportsbook/basketball-inplay.png","assets/images/sportsbook/baseball-live.png","assets/images/home/tiles/Cricket-2.svg","assets/images/sportsbook/BasketBall.svg","assets/images/sportsbook/BaseBall.svg","assets/images/sportsbook/GreyHound.svg","assets/images/sportsbook/new-inplay-icons/cricket.svg","assets/images/sportsbook/new-inplay-icons/football.svg","assets/images/sportsbook/new-inplay-icons/tennis.svg","assets/images/sportsbook/new-inplay-icons/horse.svg","assets/images/sportsbook/new-inplay-icons/greyhound.svg","assets/images/sportsbook/new-inplay-icons/baseketball.svg","assets/images/sportsbook/new-inplay-icons/baseball.svg","assets/images/icons/change-pwd-icon.svg","assets/images/b2cbanner/welcometitle.png","assets/images/faricimage/SportsBetting.png","assets/images/faricimage/24x7Support.png","assets/images/faricimage/LiveCasino.png","assets/images/faricimage/VirtualSports.png","../node_modules/@ionic/core/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ include: //.entry/.js$/ exclude: //.system/.entry/.js$/ groupOptions: {} namespace object","../node_modules/ionicons/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ include: //.entry/.js$/ exclude: //.system/.entry/.js$/ groupOptions: {} namespace object","components/AcceptTermsModal/AcceptTermsModal.tsx","pages/AcceptTerms/AcceptTerms.tsx","pages/AccessRedirect/Accessredirect.tsx","constants/WhitelabelConfig.ts","pages/WelcomeBonus/WelcomeBonus.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["RESET_STATE","SET_EVENT_TYPE","FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS","SET_COMPETITION","FETCH_EVENT_BY_COMPETITION_SUCCESS","SET_EXCH_EVENT","UPDATE_PREMIUM_MARKETS_WS","SET_PAGE_NUMBER","SET_LOADING","RESET_EVENTS","UPDATE_SECONDARY_MARKETS","UPDATE_SECONDARY_MATCH_ODDS","DISABLE_EVENT_DATA","UPDATE_SCORECARD","UPDATE_BINARY_MARKETS","UPDATE_PREMIUM_MARKETS","UPDATE_FANCY_MARKETS","UPDATE_BOOKMAKER_MARKETS","FETCH_TOTAL_EVENT_LIST","UPDATE_TOPIC_URLS","SUSPENDED_MARKETS","COMMISSION_MARKETS","TRIGGER_FETCH_MARKETS","TRIGGER_FETCH_ORDERS","TRIGGER_BET_STATUS","SET_DREAM_WS_CONNECTION","SET_SPORTS_RADAR_WS_CONNECTION","SET_BETFAIR_WS_CONNECTION","BRAND_NAME","BRAND_DOMAIN","PROVIDER_ID","BACKEND_DOMAIN","ADD_EXCH_BET","REMOVE_EXCH_BET","SET_EXCH_BET_STAKE","CLEAR_EXCHANGE_BETS","EXCH_BET_ODDS_CHANGE","FETCH_OPEN_BETS_SUCCESS","ADD_OPEN_BETS","CLEAR_SUCCESS_BETS","SET_BUTTON_VARIABLES","SET_BETTING_INPROGRESS","BET_CANCEL_SUCCESS","ENABLE_ONE_CLICK_BETS","ADD_ONE_CLICK_AMOUNT","UPDATE_BET_SLIP","RESET_BETSLIP_ODDS_CHANGE_MSG","VALIDATE_BETSLIP_ODDS","FETCH_BET_STATUS_IN_PROGRESS","FETCH_BET_STATUS_SUCCESS","FETCH_BET_STATUS_FAIL","CLEAR_BET_STATUS_RESPONSE","IS_ADMIN_REPORTS_URL","IS_ADMIN_RISKMGMT_URL","IS_HOUSE_URL","TOGGLE_DARK_MODE","FETCH_BETTING_CURRENCY_SUCCESS","FETCH_BETTING_CURRENCY_FAILED","CASINO_GAME_SELECTED","SET_DC_GAME_URL","SET_LIVESTREAM_URL","SET_PLAY_STREAM","SET_ALLOWED_CONFIG","ENABLE_COMMISSION","TRIGGER_FETCH_BALANCE","TRIGGER_FETCH_NOTIFICATIONS","FETCH_CONTENT_CONFIG_SUCCESS","SET_DOMAIN_CONFIG","LOGIN_SUCCESS","LOGIN_FAILED","AUTH_REQUEST_START","AUTH_REQUEST_END","LOG_OUT","LOG_OUT_SUCCESS","FETCH_BALANCE_SUCCESS","FETCH_BALANCE_FAILED","MAIL_VERIFIED_REQUEST_SUCCESS","MAIL_VERIFIED_REQUEST_FAILED","HANDLE_SIDE_BAR","OPEN_DEPOSIT_MODAL","OPEN_WITHDRAW_MODAL","MLOBBY_SHOW","OTP_LOGIN_SUCCESS","OTP_LOGIN_FAILED","requestStart","type","requestEnd","loginSuccess","response","payload","setOpenDepositModal","val","setOpenWithdrawModal","otpLoginSuccess","otpLoginFailed","loginFailed","err","logoutSuccess","getUsernameFromToken","sessionStorage","getItem","claim","split","JSON","parse","window","atob","sub","getRoleFromToken","role","getCurrencyTypeFromToken","cur","getSapTokenFromToken","sapToken","getHouseIdFromToken","hid","getSportsBookFromToken","org","getParentIdFromToken","pid","getAccountPathFromToken","path","fetchMailVerifiedSuccess","mailVerified","logout","token","async","SVLS_API","post","headers","Authorization","username","localStorage","removeItem","clear","open","dispatch","logoutFailed","message","createBrowserHistory","forceRefresh","replace","fetchBalance","walletId","get","balance","data","status","enableMlobby","isMolobby","axios","create","baseURL","getBaseUrl","process","withCredentials","timeout","interceptors","use","error","console","log","store","Promise","reject","setEventType","eventType","setLoading","laoding","updateTopicUrlsInStore","eventData","topicUrlPayload","matchOddsBaseUrl","markets","matchOddsTopic","bookMakerBaseUrl","bookMakerTopic","fancyBaseUrl","fancyTopic","premiumBaseUrl","premiumTopic","updateTopicUrls","fetchCompetitions","sportId","result","params","providerId","competitions","fetchCompetitionsSuccess","setCompetition","competition","fetchEventsByCompetition","competitionId","events","track","newList","length","eventId","push","eData","enabled","openDate","includes","SPToBFIdMap","competitionName","eventName","marketId","providerName","enableFancy","enableMatchOdds","enableBookmaker","enablePremium","matchOddsData","matchOdds","find","mo","marketName","toLowerCase","fetchEventByCompetitionSuccess","secMOPayload","updateSecondaryMatchOdds","secMarketsPayload","bookmakerOddsData","bookmakers","sessionOddsData","fancyMarkets","EXCH_COMPETITIONS_MENU","updateSecondaryMarkets","ie","disableEvent","disableEventData","fetchEventsBySport","premiumMarkets","raceMarkets","fetchInplayEvents","temp","updateOddsfromWS","updatePremiumMarkes","clearAllEvents","setExchEvent","event","fetchEvent","marketTime","cId","join","eId","eventDetails","marketsCriteria","fancySuspended","secondaryMatchOddsMarketIds","onRefresh","ex","updateFancyMarkets","updateBookMakerMarkets","updateSuspendedMarkets","updateCommissionMarkets","updateBinaryMarkets","updateEventScorecard","fetchPremiummarketsByEventId","BFToSRIdMap","triggerFetchMarkets","notificationData","limitKey","trigger","isAccountPath","checkKey","concat","triggerFetchOrders","setBetFairWSConnection","betFairWSConnected","setSportsRadarWSConnection","sportsRadarWSConnected","setDreamWSConnection","dreamWSConnected","SET_MULTIMARKET_EVENT_DATA","UPDATE_MULTIMARKET_SECONDARY_MARKETS","UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS","UPDATE_MULTIMARKET_BOOKMAKER_MARKETS","MULTI_SUSPENDED_MARKETS","MULTI_COMMISSION_MARKETS","TRIGGER_MULTI_FETCH_MARKETS","TRIGGER_MULTI_FETCH_ORDERS","TRIGGER_MULTI_BET_STATUS","fetchBettingCurrency","casinoGameSelected","casinoGame","setDcGameUrl","url","setAllowedConfig","allowedConfig","setDomainConfig","config","enableCommission","commission","triggerFetchBalance","eventTime","triggerFetchNotifications","adminAccountPath","sportsBooks","moment","now","fetchContentConfig","default_template","fetchContentConfigSuccess","addExchangeBet","clearExchcngeBets","addBetHandler","removeExchangeBet","index","setExchangeBetStake","amount","exchangeBetOddsChange","odds","fetchOpenBetsSuccess","totalOrders","addOpenBets","openBets","clearBetStatusResponse","fetchOpenBets","REPORTING_API","Accept","reportType","Array","isArray","then","orders","catch","fetchCasinoOpenBets","gameType","mId","API","rec","betPlacedTime","stakeAmount","oddValue","outcomeDesc","nation","betType","outcomeId","sId","fetchButtonVariables","btnVars","btnVar","label","stake","setButtonVariables","buttonVariables","setBettingInprogress","OutcomeDescByEnumMap","MarketTypeByEnumMap","getOutcomeDescByEnumName","ThousandFormatter","num","toFixed","_findIndexByArray","array","value","i","formatTime","date","format","liveImagesMap","LiveImg","SportIconMapInplay","FootBallImg","TennisImg","CricketImg","HorseInplay","GreyHoundImg","BasketballImg","BaseballImg","NewFootBallImg","NewTennisImg","NewCricketImg","NewHorseInplay","NewGreyHoundImg","NewBasketballImg","NewBaseballImg","SportIdByNameMap","soccer","football","tennis","cricket","horse_racing","horseracing","grey_hound","greyhoundracing","basketball","baseball","SportIdByName","OutcomeDescMap","MarketTypeMap","TransactionTypeMap","getBetTimeoutByMarket","FANCY","MO","BM","BINARY","CASINO","OT","getTransactionNameByID","trans","getOutcomeDescName","getSportIdByName","MarketTypeByID","id","DisabledBinaryEvents","getSportNameByIdMap","SportNameByIdMap","sidebarImgMap","TennisIcon","FootballIcon","CricketIcon","HorseRacingIcon","greyhound","GreyHound","Basketball","Baseball","demoUserPrefix","capitalize","str","words","toUpperCase","substring","transactionTypesMap","BET_PLACEMENT","BET_SETTLEMENT","BINARY_BET_PLACEMENT","BINARY_BET_ROLLBACK","BINARY_BET_SETTLEMENT","BINARY_BET_VOID","BONUS_REDEEMED","BONUS_ROLLED_BACK","CASINO_BET_PLACEMENT","CASINO_BET_ROLLBACK","CASINO_BET_SETTLEMENT","CLAIM_INCENTIVE","COMMISSION_CLAIM","COMMISSION_DEPOSIT","COMMISSION_ROLLBACK","COMMISSION_VOID","DEPOSIT","GAP_BET_PLACEMENT","GAP_BET_ROLLBACK","GAP_BET_SETTLEMENT","INCENTIVE_TRANSFER","INDIAN_CASINO_BET_PLACEMENT","INDIAN_CASINO_BET_SETTLEMENT","ROLLBACK_BET_SETTLEMENT","ROLLBACK_VOID_BET_SETTLEMENT","ROLLBACK_WIN_COMMISSION","ROLLING_COMMISSION","ROLLING_COMMISSION_ROLLBACK","SAP_BET_CANCELLED","SAP_BET_DELETED","SAP_BET_EXPIRED","SAP_BET_LAPSED","SAP_BET_PLACEMENT","SAP_BET_ROLLBACK","SAP_BET_SETTLEMENT","SAP_BET_VOID","SAP_UPDATE_RISK","SETTLEMENT_DEPOSIT","SETTLEMENT_WITHDRAW","SPORT_BOOK_BET_PLACEMENT","SPORT_BOOK_BET_ROLLBACK","SPORT_BOOK_BET_SETTLEMENT","UN_KNOWN_TYPE","VOID_BET_SETTLEMENT","WIN_COMMISSION","WIN_COMMISSION_UPDATE","WITHDRAW","transactionTypes","name","allowedRedirectionUrls","isValidLink","history","redirectionUrl","initialState","balanceSummary","balanceId","currenciesAllowed","currency","exposure","exposureLimit","maxStakeSB","minStakeSB","preferredCurrency","bonus","bcToken","bgToken","jwtToken","loading","loginError","otpLoginError","loggedIn","openDepositModal","openWithdrawModal","authReducer","state","action","isAdminReportsUrl","isAdminRiskMgmtUrl","isHouseUrl","prefersDark","bettingCurrency","Currency","Pts","selectedCasinoGame","tvGamesEnabled","dcGameUrl","streamUrl","playStream","CONFIG_PERMISSIONS","sports","casino","commissionEnabled","balanceChanged","notificationUpdated","contentConfig","domainConfig","demoUser","signup","whatsapp","payments","casinoEnabled","sportsEnabled","isDomainConfigLoading","commonReducer","eventTypes","EXCHANGE_EVENT_TYPES","selectedEventType","slug","fetchingEvents","pageNumebr","pageSize","selectedCompetition","selectedEvent","secondaryMatchOddsMap","secondaryMarketsMap","premiumMarketsMap","scorecard","binaryMarkets","topicUrls","suspendedMarketsMap","triggerBetStatus","getMatchOddsSet","prices","pricesSet","price","size","getFancyCategory","runnerName","getSuspendValue","suspendMarketsMap","dtoEventId","dtoMarketType","dtoMarketId","dtoSuspsend","suspend","key","undefined","marketType","suspendedMarket","exchangeSportsReducer","allSuspendedMarketsMap","allEvents","matchOddsMarket","allSecMatchOddsMap","bookmakerMarkets","bm","secondaryMarkets","f","commissionMarket","allCompetitions","c","nameSlug","toLocaleLowerCase","trim","limitMap","Map","set","marketLimits","homeTeam","awayTeam","runners","e","RunnerName","provderId","runnerId","backPrices","layPrices","clothNumber","jockeyName","runnerAge","runnerIcon","stallDraw","trainerName","suspended","bLimits","limits","rm","sort","a","b","aDesc","bDesc","eventSlug","firstEvent","currentSelectedCompetition","currentSelectedEvent","currentSelectedEventType","filter","_","runnersData","item","secMatchOddsMap","fancyOddsData","fancyUpdateData","marketsMap","prevFancyMap","fancyOdds","Number","layPrice","noValue","category","backPrice","yesValue","laySize","noRate","backSize","yesRate","fMarket","dtoFancySuspend","fancySuspend","getFancySuspendedValue","bookMakerOddsData","prevBMMap","bookMakerOdds","br","bmRunners","findIndex","itm","allSecMarkets","runner","secMarkets","bookmaker","fanctMarket","premiumSporsMap","body","market","x","BUTTON_VARIABLES","bets","bettingInprogress","isOneClickEnable","oneClickAmount","betStatusResponse","ExchBetslipReducer","splice","Math","floor","isNaN","bet","betId","unmatched","allOpenBets","isOddsChanged","lenght","initailState","casinoGames","selectedGmae","gameData","gType","roundDetails","roundCardDetails","gameResults","indianCasinoReducer","UPDATE_CASINO_GAMES","SET_CASINO_GAME","UPDATE_GAME_DATA","ogData","gData","UPDATE_GAME_RESULTS","multiMarketData","secondaryMultiMatchOddsMap","secondaryMultiMarketsMap","multiMarketReducer","accountPath","keys","Object","ids","rootReducer","combineReducers","auth","common","exchangeSports","indianCasino","exchBetslip","exchBetslipReducer","multiMarket","createStore","composeWithDevTools","applyMiddleware","thunk","LINE_MARKETS","eventTypesNameMap","getCompetitionsByEventType","eventTypeId","getExchangeEvents","pageNo","dateDiff","diff","dateDiffinSecs","aOpenDate","bOpenDate","slice","getInplayEvents","inplayEvents","etId","sport","disable","disabled","sportName","sportSlug","priority","SPORTS_MAP","getAllMarketsByEvent","getBookmakerMarketsByEvent","getFancyMarketsByEvent","isFancyMarketSuspended","getSecondaryMarketsByEvent","getSecondaryMatchOddsByEvent","secondaryMatchOdds","startsWith","getLineMarketsByEvent","indexOf","getPremiumMarkets","updateCasinoGames","setCasinoGame","game","responseType","addToMultiMarket","localData","marketInclue","setItem","btoa","stringify","removeToMultiMarket","checkIncludeMultiMarket","marketData","setMultiMarketEventData","updateMultiSecondaryMatchOdds","updateMultiSecondaryMarkets","updateMultiOddsfromWS","updateMultiSuspendedMarkets","updateMultiCommissionMarkets","updateMultiBookMakerMarkets","triggerMultiFetchMarkets","triggerMultiFetchOrders","fetchMultiMarketEventData","module","exports","EXCH_SPORTS_MAP","badmintonIcon","StageUrlsMap","REACT_APP_REST_API_URL","REACT_APP_REST_API_V2_URL","REACT_APP_REST_REPORTING_API_URL","REACT_APP_WEBSOCKET_URL_PUSH_NOTIFICATIONS","BINARY_WEBSOCKET_URL","REACT_APP_REST_AGPAY_URL","REACT_APP_SPORT_FEED_URL","EnvUrlsMap","development","stage","production","env","live_casino","indian_casino","crypto_currency","binary","LoadingPage","className","src","TitleImg","alt","connect","props","closeHandler","showTermsCondi","progress","setProgress","useState","errorMsg","setErrorMsg","successMsg","setSuccessMsg","formik","useFormik","initialValues","oldPwd","newPwd","confNewPwd","acceptTerms","validationSchema","Yup","required","matches","test","values","optional","onSubmit","oldPassword","newPassword","updateNewPassword","userName","put","handleSubmit","autoComplete","ChangePwdIcon","variant","touched","errors","helperText","getFieldProps","title","control","checked","onChange","handleChange","color","labelPlacement","endIcon","TOSS_ODD_VALUE","map","webpackAsyncContext","req","__webpack_require__","o","resolve","Error","code","AcceptTermsModal","successHandler","dob","setDOB","subtract","firstName","lastName","setUserDetailsRequest","TextField","utils","MomentUtils","disableToolbar","margin","maxDate","InputProps","disableUnderline","KeyboardButtonProps","FormControlLabel","Checkbox","FormHelperText","Button","AcceptTerms","openAcceptTerms","setOpenAcceptterms","changePwdModal","setChangePwdModal","useHistory","theme","useTheme","fullScreen","useMediaQuery","breakpoints","down","Backdrop","Dialog","aria-labelledby","maxWidth","DialogTitle","DialogContent","fullWidth","backHandler","AccessRedirect","ShowWelcomePage","WelcomeBonus","useEffect","onRedirect","location","href","sizeLg","sizeSm","sizeXs","welcometitle_logo","SportsBetting","LiveCasino","VirtualSports","x7Support","toString","onClick","bankicon","paytmicon","UPIicon","Phonepeicon","googlepayicon","MainPage","lazy","LoginPage","SignUp","ThankYou","useConsoleOpen","consoleOpen","setConsoleOpen","checkStatus","element","Image","defineProperty","requestAnimationFrame","check","setTimeout","document","head","insertAdjacentHTML","matchMedia","addListener","systemInitiatedDark","setAttribute","classList","toggle","useIdleTimer","onIdle","debounce","getDomainConfig","dConfig","demo_user_enabled","signup_enabled","whatsapp_support","payments_enabled","bonus_enabled","casino_enabled","sports_enabled","toast","success","position","autoClose","hideProgressBar","closeOnClick","pauseOnHover","draggable","context","fallback","component","exact","from","to","newestOnTop","rtl","pauseOnFocusLoss","onClose","Boolean","hostname","match","ReactDOM","render","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"sGAAA,w7BAAO,MAAMA,EAAc,cACdC,EAAiB,iBACjBC,EACX,2CACWC,EAAkB,kBAClBC,EACX,qCACWC,EAAiB,iBACjBC,EAA4B,4BAC5BC,EAAkB,kBAClBC,EAAc,cACdC,EAAe,eACfC,EAA2B,2BAC3BC,EAA8B,8BAC9BC,EAAqB,qBACrBC,EAAmB,mBACnBC,EAAwB,wBAGxBC,EAAyB,yBACzBC,EAAuB,uBACvBC,EAA2B,2BAC3BC,EAAyB,yBAIzBC,EAAoB,oBACpBC,EAAoB,oBACpBC,EAAqB,qBACrBC,EAAwB,wBACxBC,EAAuB,uBACvBC,EAAqB,qBACrBC,EAA0B,0BAC1BC,EAAiC,iCACjCC,EAA4B,6B,8BClCzC,wIAAO,MAAMC,EAAa,WAEbC,EAAe,eAIfC,EAAc,UACdC,EAAiB,a,6BCP9B,wqBAAO,MAAMC,EAAe,eACfC,EAAkB,kBAClBC,EAAqB,qBACrBC,EAAsB,sBACtBC,EAAuB,uBACvBC,EAA0B,0BAC1BC,EAAgB,gBAChBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAqB,qBACrBC,EAAwB,wBACxBC,EAAuB,uBACvBC,EAAkB,kBAClBC,EAAgC,gCAChCC,EAAwB,wBACxBC,EAA+B,+BAC/BC,EAA2B,2BAC3BC,EAAwB,wBACxBC,EAA4B,6B,iCCnBzC,giBAAO,MAAMC,EAAuB,uBACvBC,EAAwB,wBACxBC,EAAe,eACfC,EAAmB,mBACnBC,EAAiC,iCACjCC,EAAgC,gCAChCC,EAAuB,uBACvBC,EAAkB,kBAClBC,EAAqB,qBACrBC,EAAkB,kBAClBC,EAAqB,qBACrBC,EAAoB,oBACpBC,EAAwB,wBACxBC,EAA8B,8BAC9BC,EAA+B,+BAC/BC,EAAoB,qB,+BCfjC,giBAAO,MAAMC,EAAgB,eAChBC,EAAe,eACfC,EAAqB,qBACrBC,EAAmB,mBACnBC,EAAU,UACVC,EAAkB,kBAClBC,EAAwB,wBACxBC,EAAuB,uBACvBC,EAAgC,gCAChCC,EAA+B,+BAE/BC,EAAkB,kBAClBC,EAAqB,qBACrBC,EAAsB,sBACtBC,EAAc,cACdC,EAAoB,oBACpBC,EAAmB,oB,+BChBhC,qvBA0BO,MAAMC,EAAe,KACnB,CACLC,KAAMf,MAIGgB,EAAa,KACjB,CACLD,KAAMd,MAIGgB,EAAgBC,IACpB,CACLH,KAAMjB,IACNqB,QAASD,IAIAE,EAAuBC,IAC3B,CACLN,KAAMN,IACNU,QAASE,IAIAC,EAAwBD,IAC5B,CACLN,KAAML,IACNS,QAASE,IAIAE,EAAmBL,IACvB,CACLH,KAAMH,IACNO,QAASD,IAIAM,EAAkBN,IACtB,CACLH,KAAMF,IACNM,QAASD,IAIAO,EAAeC,IACnB,CACLX,KAAMhB,IACNoB,QAASO,IAIAC,EAAgB,KACpB,CACLZ,KAAMZ,MAiBGyB,EAAuB,KAClC,GAAIC,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQM,IAExC,OAAO,MAGIC,EAAmB,KAC9B,GAAIT,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQQ,KAExC,OAAO,MAWIC,EAA2B,KACtC,GAAIX,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQU,IAExC,OAAO,GAGIC,EAAuB,KAClC,IAAIC,EAAWd,eAAeC,QAAQ,aACtC,OAAIa,GAGG,MAGIC,EAAsB,KACjC,GAAIf,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQc,IAExC,OAAO,MAGIC,EAAyB,KACpC,GAAIjB,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQgB,IAExC,OAAO,MAGIC,EAAuB,KAClC,GAAInB,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQkB,IAExC,OAAO,MAGIC,EAA0B,KACrC,GAAIrB,eAAeC,QAAQ,aAAc,CACvC,MAAMC,EAAQF,eAAeC,QAAQ,aAAaE,MAAM,KAAK,GAC7D,OAAOC,KAAKC,MAAMC,OAAOC,KAAKL,IAAQoB,KAExC,OAAO,MAGIC,EAA4BC,IAChC,CACLtC,KAAMT,IACNa,QAASkC,IAiGAC,EAAS,KACpB,MAAMC,EAAQ1B,eAAeC,QAAQ,aACrC,OAAO0B,UACL,IAAK,IAAD,QACIC,IAASC,KAAK,qBAAsB,KAAM,CAC9CC,QAAS,CACPC,cAAeL,KAGnB,MAAMM,EAAQ,UAAGhC,eAAeC,QAAQ,mBAA1B,QAAyC,GACvDgC,aAAaC,WAAb,sBAAuCF,IACvChC,eAAemC,QACf7B,OAAO8B,KAAP,kBAAuB1G,IAAvB,UAA6C,SAC7C2G,EAASvC,KACT,MAAOD,GACPG,eAAemC,QACfE,EAzMgBxC,KACb,CACLX,KAAMb,IACNiB,QAASO,IAsMEyC,CAAazC,EAAI0C,UAEZC,YAAqB,CAAEC,cAAc,IAC7CC,QAAQ,OAqCPC,EAAe,IACnBhB,UACL,IACE,MAAMiB,EAAW5C,eAAeC,QAAQ,OACxC,IAAK2C,EACH,OAGF,MAAMvD,QAAiBuC,IAASiB,IAAT,6BACCD,EADD,YAErB,CACEd,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,gBAI5CoC,GAjDuBS,EAiDMzD,EAAS0D,KAhDnC,CACL7D,KAAMX,IACNe,QAASwD,KA+CP,MAAOjD,GAEP,GAAIA,EAAIR,UAAoC,MAAxBQ,EAAIR,SAAS2D,OAAgB,CACjChD,eAAeC,QAAQ,cAEnCoC,EAASZ,MAvDUqB,OA8DhBG,EAAgBC,IACpB,CACLhE,KAAMJ,IACNQ,QAAS4D,K,8BCvWb,8CAQA,MAAMtB,EAAWuB,IAAMC,OAAO,CAC5BC,QAASC,YACPC,aACA,6BAEFC,iBAAiB,EACjBC,QAAS,MAIX7B,EAAS8B,aAAarE,SAASsE,IAC5BtE,GACQA,EAERuE,IACC,GAAIA,EAAMvE,UAAsC,MAA1BuE,EAAMvE,SAAS2D,OAAgB,CACnDa,QAAQC,IAAI,2CACE9D,eAAeC,QAAQ,cAElC8D,IAAM1B,SAAuDZ,eAGlE,OAAOuC,QAAQC,OAAOL,KAIXhC,O,6BClCf,22BA2CO,MAQMsC,EAAgBC,IACpB,CACLjF,KAAMpF,IACNwF,QAAS6E,IAWPC,EAAcC,IACX,CACLnF,KAAM7E,IACNiF,QAAS+E,IAIPC,EAAyB,CAACjC,EAAoBkC,KAAoB,IAAD,gBAErE,MAAMC,EAAkB,CACtBC,iBAAgB,OAAEF,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBD,iBACtCE,eAAc,OAAEJ,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBC,eACpCC,iBAAgB,OAAEL,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBE,iBACtCC,eAAc,OAAEN,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBG,eACpCC,aAAY,OAAEP,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBI,aAClCC,WAAU,OAAER,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBK,WAChCC,eAAc,OAAET,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBM,eACpCC,aAAY,OAAEV,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBO,cAEpC5C,EAAS6C,EAAgBV,KAIdW,EAAqBC,GACzBzD,UACL,IACE,GAAgB,KAAZyD,EAAgB,CAClB,MAAMC,QAAezD,IAASiB,IAAT,yCACeuC,EADf,iBAEnB,CACEE,OAAQ,CACNC,WAAY5J,OAIlB,GAAI0J,EAAOtC,KAAM,CACf,MAAMzD,EAAU,CACd8F,QAASA,EACTI,aAAcH,EAAOtC,MAEvBV,EAASoD,EAAyBnG,QAC7B,CAKL+C,EAASoD,EAJO,CACdL,QAASA,EACTI,aAAc,QAKpB,MAAO3F,GACPgE,QAAQC,IAAIjE,KAKZ4F,EAA4BJ,IACzB,CACLnG,KAAMnF,IACNuF,QAAS+F,IAUAK,EAAkBC,IACtB,CACLzG,KAAMlF,IACNsF,QAASqG,IAKAC,EAA2B,CACtCR,EACAS,EACAC,EACAC,EAAgB,KAETpE,UACL,IACE,GAAgB,KAAZyD,GAAoC,KAAlBS,EAAsB,CAC1CxD,EAAS+B,GAAW,IACpB,IAAIiB,EAAS,KAEXA,EADErF,eAAeC,QAAQ,mBACV2B,IAASiB,IAAT,yCACqBuC,EADrB,yBAC6CS,EAD7C,WAEb,CACE/D,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,cAGxCqF,OAAQ,CACNC,WAAY5J,aAKHiG,IAASiB,IAAT,yCACqBuC,EADrB,yBAC6CS,EAD7C,WAEb,CACEP,OAAQ,CACNC,WAAY5J,OAMpB,IAAIqK,EAAU,GACd,GAAIX,GAAUA,EAAOtC,KAAKkD,OAAS,EAAG,CACpC3B,EAAuBjC,EAAUgD,EAAOtC,KAAK,IAC7C,IAAK,IAAIwB,KAAac,EAAOtC,KAC3B,IACE,GAAIwB,EAAU2B,QAAS,CAAC,IAAD,QACrBF,EAAQG,KAAK5B,EAAU2B,SACvB,MAAME,EAAkB,CACtBC,QAAS9B,EAAU8B,QACnBrD,OAAQuB,EAAUvB,OAClBsD,SAAU/B,EAAU+B,SACpBlB,QAASb,EAAUa,QAAQmB,SAAS,KAChCC,IAAYjC,EAAUa,SACtBb,EAAUa,QACdS,cAAetB,EAAUsB,cACzBY,gBAAiBlC,EAAUkC,gBACvBlC,EAAUkC,gBACV,QACJP,QAAS3B,EAAU2B,QACnBQ,UAAWnC,EAAUmC,UACrBC,SAAUpC,EAAUoC,SACpBC,aAAcrC,EAAUqC,aACxBC,cAAatC,EAAUG,UAAV,OACTH,QADS,IACTA,GADS,UACTA,EAAWG,eADF,aACT,EAAoBmC,aAExBC,kBAAiBvC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBoC,iBAExBC,kBAAiBxC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBqC,iBAExBC,gBAAezC,EAAUG,UAAV,OACXH,QADW,IACXA,GADW,UACXA,EAAWG,eADA,aACX,EAAoBsC,gBAGpB1H,EAAU,CACdiF,UAAW6B,EACXhB,QAASgB,EAAMhB,QACfS,cAAeO,EAAMP,cACrBoB,cACE1C,EAAUG,SAAWH,EAAUG,QAAQwC,UACnC3C,EAAUG,QAAQwC,UAAUC,KACzBC,GACmB,eAAlBA,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eAElB,MAIR,GADAjF,EAASkF,EAA+BjI,IAClB,MAAlB8G,EAAMhB,SAAqC,MAAlBgB,EAAMhB,QACjC,IAAK,IAAIgC,KAAM7C,EAAUG,QAAQwC,UAC/B,GACoB,eAAlBE,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,cACd,CACA,MAAME,EAAe,CACnBtB,QAASE,EAAMF,QACfS,SAAUS,EAAGT,SACbM,cAAeG,GAEjB/E,EAASoF,EAAyBD,IAIxC,GAAsB,MAAlBpB,EAAMhB,QAAiB,CACzB,MAAMsC,EAAoB,CACxBxB,QAASE,EAAMF,QACfyB,kBAAmBpD,EAAUG,QACzBH,EAAUG,QAAQkD,WAClB,KACJb,kBAAiBxC,EAAUG,SACvBH,EAAUG,QAAQqC,gBAEtBc,gBAAiBtD,EAAUG,QACvBH,EAAUG,QAAQoD,aAClB,KACJjB,cAAatC,EAAUG,SACnBH,EAAUG,QAAQmC,aAGlBd,IAAUgC,KACd1F,EAAS2F,EAAuBN,MAItC,MAAO7H,GACPgE,QAAQC,IAAIjE,GAGhB,GAAIiG,GAAUA,EAAOG,OAAS,EAC5B,IAAK,IAAIgC,KAAMnC,EACb,IAAKE,EAAQO,SAAS0B,EAAG/B,SAAU,CACjC,MAAM5G,EAAU,CACd8F,QAAS6C,EAAG7C,QACZS,cAAeoC,EAAGpC,cAClBK,QAAS+B,EAAG/B,QACZgC,cAAc,GAEhB7F,EAAS8F,EAAiB7I,UAKhC,IAAK,IAAI2I,KAAMnC,EAAQ,CACrB,MAAMxG,EAAU,CACd8F,QAAS6C,EAAG7C,QACZS,cAAeoC,EAAGpC,cAClBK,QAAS+B,EAAG/B,QACZgC,cAAc,GAEhB7F,EAAS8F,EAAiB7I,IAG9B+C,EAAS+B,GAAW,KAEtB,MAAOvE,GACPgE,QAAQC,IAAIjE,GACZwC,EAAS+B,GAAW,MAKbgE,EAAqB,CAAChD,EAAiBU,IAC3CnE,UACL,IACE,GAAgB,KAAZyD,EAAgB,CAClB/C,EAAS+B,GAAW,IACpB,IAAIiB,EAAS,KAEXA,EADErF,eAAeC,QAAQ,mBACV2B,IAASiB,IAAT,yCACqBuC,EADrB,0BAEb,CACEtD,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,cAExCqF,OAAQ,CACNC,WAAY5J,aAKHiG,IAASiB,IAAT,yCACqBuC,EADrB,0BAEb,CACEE,OAAQ,CACNC,WAAY5J,OAMpB,IAAIqK,EAAU,GAEd,GAAIX,GAAUA,EAAOtC,KAAKkD,OAAS,EAAG,CACpC3B,EAAuBjC,EAAUgD,EAAOtC,KAAK,IAC7C,IAAK,IAAIwB,KAAac,EAAOtC,KAC3B,IACE,GAAIwB,EAAU2B,QAAS,CAAC,IAAD,oBACrBF,EAAQG,KAAK5B,EAAU2B,SACvB,MAAME,EAAkB,CACtBC,QAAS9B,EAAU8B,QACnBrD,OAAQuB,EAAUvB,OAClBsD,SAAU/B,EAAU+B,SACpBlB,QAASb,EAAUa,QAAQmB,SAAS,KAChCC,IAAYjC,EAAUa,SACtBb,EAAUa,QACdS,cAAetB,EAAUsB,cACzBY,gBAAiBlC,EAAUkC,gBACvBlC,EAAUkC,gBACV,QACJP,QAAS3B,EAAU2B,QACnBQ,UAAWnC,EAAUmC,UACrBC,SAAUpC,EAAUoC,SACpBC,aAAcrC,EAAUqC,aACxBC,cAAatC,EAAUG,UAAV,OACTH,QADS,IACTA,GADS,UACTA,EAAWG,eADF,aACT,EAAoBmC,aAExBC,kBAAiBvC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBoC,iBAExBC,kBAAiBxC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBqC,iBAExBC,gBAAezC,EAAUG,UAAV,OACXH,QADW,IACXA,GADW,UACXA,EAAWG,eADA,aACX,EAAoBsC,gBAGpB1H,EAAU,CACdiF,UAAW6B,EACXhB,QAASgB,EAAMhB,QACfS,cAAeO,EAAMP,cACrBoB,cAC2C,eAAzC1C,EAAUqC,aAAaU,eACV,OAAT/C,QAAS,IAATA,OAAA,EAAAA,EAAWG,WACF,OAATH,QAAS,IAATA,GAAA,UAAAA,EAAWG,eAAX,mBAAoBwC,iBAApB,eAA+BjB,QAAS,EADxC,OAEE1B,QAFF,IAEEA,GAFF,UAEEA,EAAWG,eAFb,iBAEE,EAAoBwC,iBAFtB,aAEE,EAAgC,GAChC3C,EAAUG,UAAV,OACAH,QADA,IACAA,GADA,UACAA,EAAWG,eADX,iBACA,EAAoB2D,sBADpB,aACA,EAAqC,IACvC9D,EAAUG,SAAWH,EAAUG,QAAQwC,WACvC3C,EAAUG,SAAWH,EAAUG,QAAQwC,UACrC3C,EAAUG,QAAQwC,UAAUC,KACzBC,GACmB,eAAlBA,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eAGpB,KACNgB,YACE/D,EAAUG,SAAWH,EAAUG,QAAQwC,UACnC3C,EAAUG,QAAQwC,UAClB,IAGoB,IAAD,IAA3B,GADA7E,EAASkF,EAA+BjI,IAClB,MAAlB8G,EAAMhB,QACR,IAAa,OAATb,QAAS,IAATA,GAAA,UAAAA,EAAWG,eAAX,mBAAoBwC,iBAApB,eAA+BjB,QAAS,EAC5C,IAAK,IAAImB,KAAM7C,EAAUG,QAAQwC,UAC/B,GACoB,eAAlBE,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,cACd,CACA,MAAME,EAAe,CACnBtB,QAASE,EAAMF,QACfS,SAAUS,EAAGT,SACbM,cAAeG,GAEjB/E,EAASoF,EAAyBD,MAyB1C,MAAO3H,GACPgE,QAAQC,IAAIjE,GAGhB,GAAIiG,GAAUA,EAAOG,OAAS,EAC5B,IAAK,IAAIgC,KAAMnC,EACb,IAAKE,EAAQO,SAAS0B,EAAG/B,SAAU,CACjC,MAAM5G,EAAU,CACd8F,QAAS6C,EAAG7C,QACZS,cAAeoC,EAAGpC,cAClBK,QAAS+B,EAAG/B,QACZgC,cAAc,GAEhB7F,EAAS8F,EAAiB7I,UAKhC,GAAIwG,EACF,IAAK,IAAImC,KAAMnC,EAAQ,CACrB,MAAMxG,EAAU,CACd8F,QAAS6C,EAAG7C,QACZS,cAAeoC,EAAGpC,cAClBK,QAAS+B,EAAG/B,QACZgC,cAAc,GAEhB7F,EAAS8F,EAAiB7I,IAIhC+C,EAAS+B,GAAW,KAEtB,MAAOvE,GACPgE,QAAQC,IAAIjE,GACZwC,EAAS+B,GAAW,MAKbmE,EAAoB,IACxB5G,UACL,IACEU,EAAS+B,GAAW,IACpB,IAAIiB,EAAS,KAEXA,EADErF,eAAeC,QAAQ,mBACV2B,IAASiB,IAAT,4CAEb,CACEf,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,cAExCqF,OAAQ,CACNC,WAAY5J,aAKHiG,IAASiB,IAAT,4CAEb,CACEyC,OAAQ,CACNC,WAAY5J,OAMpB,IAAIqK,EAAU,GACVwC,EAAO,GACX,GAAInD,GAAUA,EAAOtC,KAAKkD,OAAS,EAAG,CACpC3B,EAAuBjC,EAAUgD,EAAOtC,KAAK,IAC7C,IAAK,IAAIwB,KAAac,EAAOtC,KAC3B,IACE,GAAIwB,EAAU2B,QAAS,CAAC,IAAD,oBACrBF,EAAQG,KAAK5B,EAAU2B,SACvB,MAAME,EAAkB,CACtBC,QAAS9B,EAAU8B,QACnBrD,OAAQuB,EAAUvB,OAClBsD,SAAU/B,EAAU+B,SACpBlB,QAASb,EAAUa,QAAQmB,SAAS,KAAOC,IAAYjC,EAAUa,SAAWb,EAAUa,QACtFS,cAAetB,EAAUsB,cACzBY,gBAAiBlC,EAAUkC,gBACvBlC,EAAUkC,gBACV,QACJP,QAAS3B,EAAU2B,QACnBQ,UAAWnC,EAAUmC,UACrBC,SAAUpC,EAAUoC,SACpBC,aAAcrC,EAAUqC,aACxBC,cAAatC,EAAUG,UAAV,OACTH,QADS,IACTA,GADS,UACTA,EAAWG,eADF,aACT,EAAoBmC,aAExBC,kBAAiBvC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBoC,iBAExBC,kBAAiBxC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBqC,iBAExBC,gBAAezC,EAAUG,UAAV,OACXH,QADW,IACXA,GADW,UACXA,EAAWG,eADA,aACX,EAAoBsC,gBAGpB1H,EAAU,CACdiF,UAAW6B,EACXhB,QAASgB,EAAMhB,QACfS,cAAeO,EAAMP,cACrBoB,cACyC,eAAzC1C,EAAUqC,aAAaU,eACd,OAAT/C,QAAS,IAATA,OAAA,EAAAA,EAAWG,WAAoB,OAATH,QAAS,IAATA,GAAA,UAAAA,EAAWG,eAAX,mBAAoBwC,iBAApB,eAA+BjB,QAAS,EAA9D,OACA1B,QADA,IACAA,GADA,UACAA,EAAWG,eADX,iBACA,EAAoBwC,iBADpB,aACA,EAAgC,GAC9B3C,EAAUG,UAAV,OAAqBH,QAArB,IAAqBA,GAArB,UAAqBA,EAAWG,eAAhC,iBAAqB,EAAoB2D,sBAAzC,aAAqB,EAAqC,IACxD9D,EAAUG,SAAWH,EAAUG,QAAQwC,WACrC3C,EAAUG,SAAWH,EAAUG,QAAQwC,UACrC3C,EAAUG,QAAQwC,UAAUC,KACzBC,GACmB,eAAlBA,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eAGlB,MAGVkB,EAAKrC,KAAK7G,GAEV+C,EAASkF,EAA+BjI,KA2C1C,MAAOO,GACPgE,QAAQC,IAAIjE,IAIlBwC,EAAS+B,GAAW,IACpB,MAAOvE,GACPgE,QAAQC,IAAIjE,GACZwC,EAAS+B,GAAW,MAKbqE,EAAoBnJ,IACxB,CACLJ,KAAMjF,IACNqF,QAASA,IAIA6I,EAAoB7I,IACxB,CACLJ,KAAMzE,IACN6E,QAASA,IAIAoJ,EAAuBpJ,IAC3B,CACLJ,KAAM/E,IACNmF,QAASA,IAIPiI,EAAkClC,IAC/B,CACLnG,KAAMjF,IACNqF,QAAS+F,IAIAsD,EAAiB,KACrB,CACLzJ,KAAM5E,IACNgF,QAAS,KAIAsJ,EAAgBC,IACpB,CACL3J,KAAMhF,IACNoF,QAASuJ,IAIAC,EAAa,CACxB1D,EACAS,EACAK,EACA6C,IAEOpH,UACL,IAEE,GAAgB,KAAZyD,GAAoC,KAAlBS,GAAoC,KAAZK,EAAgB,CAC5D,MAAM8C,EAAMnD,EAAcU,SAAS,KAC/BV,EAAc1F,MAAM,KAAK8I,KAAK,KAC9BpD,EACEqD,EAAMhD,EAAQK,SAAS,KACzBL,EAAQ/F,MAAM,KAAK8I,KAAK,KACxB/C,EACJ,IAAI7G,EAAW,KACf,IAAI8J,EAAe,CACjB,CACE5D,WAAY5J,IACZyJ,QAASA,EACTS,cAAemD,EACf9C,QAASgD,EACTH,WAAYA,IAId1J,EADEW,eAAeC,QAAQ,mBACR2B,IAASC,KAAT,yCAEf,CACE0D,WAAY5J,IACZyN,gBAAiB,MACjBD,aAAcA,GAEhB,CACErH,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,aAClCD,eAAeC,QAAQ,aACvB,YAKO2B,IAASC,KAAT,yCAEf,CACE0D,WAAY5J,IACZyN,gBAAiB,MACjBD,aAAcA,IAKpB,MAAM5E,EAAYlF,EAAS0D,KAAK,GAEhC,GADAuB,EAAuBjC,EAAUkC,GAC7BA,EAAU2B,QAAS,CAAC,IAAD,QACrB,MAAME,EAAkB,CACtBC,QAAS9B,EAAU8B,QACnBrD,OAAQuB,EAAUvB,OAClBsD,SAAU/B,EAAU+B,SACpBlB,QAASb,EAAUa,QAAQmB,SAAS,KAAOC,IAAYjC,EAAUa,SAAWb,EAAUa,QACtFS,cAAetB,EAAUsB,cACzBY,gBAAiBlC,EAAUkC,gBACvBlC,EAAUkC,gBACV,QACJP,QAAS3B,EAAU2B,QACnBQ,UAAWnC,EAAUmC,UACrBC,SAAUpC,EAAUoC,SACpBC,aAAcrC,EAAUqC,aACxBC,cAAatC,EAAUG,UAAV,OACTH,QADS,IACTA,GADS,UACTA,EAAWG,eADF,aACT,EAAoBmC,aAExBC,kBAAiBvC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBoC,iBAExBC,kBAAiBxC,EAAUG,UAAV,OACbH,QADa,IACbA,GADa,UACbA,EAAWG,eADE,aACb,EAAoBqC,iBAExBC,gBAAezC,EAAUG,UAAV,OACXH,QADW,IACXA,GADW,UACXA,EAAWG,eADA,aACX,EAAoBsC,gBAI1B,IAAK,IAAII,KAAM7C,EAAUG,QAAQwC,UAC/B,GAAsB,MAAlBd,EAAMhB,SACR,GACoB,eAAlBgC,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eACE,gBAAhBF,EAAGT,UACa,gBAAhBS,EAAGT,SACH,CACA,MAAMa,EAAe,CACnBtB,QAAS3B,EAAU2B,QACnBS,SAAUS,EAAGT,SACbM,cAAeG,GAEjB/E,EAASoF,EAAyBD,UAGpC,GACoB,eAAlBJ,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,cACd,CACA,MAAME,EAAe,CACnBtB,QAAS3B,EAAU2B,QACnBS,SAAUS,EAAGT,SACbM,cAAeG,GAEjB/E,EAASoF,EAAyBD,IAMxC,GAAsB,MAAlBpB,EAAMhB,QAAiB,CACzB,MAAMsC,EAAoB,CACxBxB,QAAS3B,EAAU2B,QACnByB,kBACEpD,EAAUG,SAAWH,EAAUG,QAAQkD,WACnCrD,EAAUG,QAAQkD,WAClB,KACNb,kBAAiBxC,EAAUG,SACvBH,EAAUG,QAAQqC,gBAEtBc,gBACEtD,EAAUG,SAAWH,EAAUG,QAAQoD,aACnCvD,EAAUG,QAAQoD,aAClB,KACNjB,cAAatC,EAAUG,SACnBH,EAAUG,QAAQmC,YAEtBwC,iBAAgB9E,EAAUG,SACtBH,EAAUG,QAAQ2E,gBAGxBhH,EAAS2F,EAAuBN,IAGlC,MAAM4B,EAAwC,GAC9C,IAAIrC,EAAgB,KACpB,GAAI1C,EAAUG,SAAWH,EAAUG,QAAQwC,UACzC,IAAK,IAAIE,KAAM7C,EAAUG,QAAQwC,UACT,eAAlBE,EAAGC,WACLJ,EAAgBG,EAEhBkC,EAA4BnD,KAAKiB,EAAGT,UAI1C,MAAMrH,EAAU,CACdiF,UAAW6B,EACXhB,QAASoB,IAAYJ,EAAMhB,SAAWoB,IAAYJ,EAAMhB,SAAWgB,EAAMhB,QACzES,cAAeO,EAAMP,cASrBoB,cAAeA,EACfqC,4BAA6BA,EAC7BC,WAAW,GAGblH,EAASkF,EAA+BjI,MAG5C,MAAOkK,GACP3F,QAAQC,IAAI0F,KAKLxB,EAA0B1I,IAE9B,CACLJ,KAAM3E,IACN+E,QAASA,IAGAmK,EAAsBnK,IAC1B,CACLJ,KAAMrE,IACNyE,QAASA,IAGAoK,EAA0BpK,IAE9B,CACLJ,KAAMpE,IACNwE,QAASA,IAIAqK,EAA0BrK,IAC9B,CACLJ,KAAMjE,IACNqE,QAASA,IAIAsK,EAA2BtK,IAC/B,CACLJ,KAAMhE,IACNoE,QAASA,IAIAmI,EAA4BnI,IAChC,CACLJ,KAAM1E,IACN8E,QAASA,IAIAuK,EAAuBvK,IAC3B,CACLJ,KAAMvE,IACN2E,QAASA,IAIAwK,EAAwBxK,IAE5B,CACLJ,KAAMxE,IACN4E,QAASA,IAIA4F,EAAmB5F,IACvB,CACLJ,KAAMlE,IACNsE,QAASA,IAIAyK,EAA+B,CAC1CxE,EACAH,EACAS,EACAK,EACA6C,IAEOpH,UACL,IACE,GAAgB,KAAZuE,EAAgB,CAClB,MAAM8C,EAAMnD,EAAcU,SAAS,KAC/BV,EAAc1F,MAAM,KAAK8I,KAAK,KAC9BpD,EACEqD,EAAMhD,EAAQK,SAAS,KACzBL,EAAQ/F,MAAM,KAAK8I,KAAK,KACxB/C,EACJ,IAAIiD,EAAe,CACjB,CACE5D,WAAYA,EACZH,QAAwB,eAAfG,EAA6ByE,IAAY5E,GAAWA,EAC7DS,cAAemD,EACf9C,QAASgD,EACTH,WAAYA,IAGhB,MAQMxE,SARqC3C,IAASC,KAAT,yCAEzC,CACE0D,WAAYA,EACZ6D,gBAAgC,eAAf7D,EAA6B,MAAQ,UACtD4D,aAAcA,KAGSpG,KAAK,GAGhC,GAAIwB,EAAU2B,QAAS,CACrB,MAAM5G,EAAU,CACdiK,WAAW,EACXrD,QAASA,EACT3B,UAAWA,GAETgB,IAAe5J,KACjB0G,EAASkF,EAA+BjI,IAE1C+C,GAtyB0BgD,EAsyBU/F,EAryBrC,CACLJ,KAAMtE,IACN0E,QAAS+F,OAsyBP,MAAOmE,GACP3F,QAAQC,IAAI0F,GA1yBkBnE,OAszBvB4E,EAAsB,CACjC7E,EACAS,EACAK,EACAgE,KAEA,IAAIC,EAAWD,EAAiBC,SAC5BC,GAAU,EAEd,GAAIC,YAAcF,GACZ9I,cAA0BkF,SAAS4D,KACrCC,GAAU,OAEP,CAEL,MAAME,GADNH,EAAWA,EAASI,OAAO,MACDhE,SAAS,QAAlB,cACNL,EADM,KAEbiE,EAAS5D,SAAS,QAAlB,cACOV,EADP,KAEAsE,EAAS5D,SAAS,QAAlB,cACOnB,EADP,KAEA+E,EAAS5D,SAAS,YAAlB,WAEA,KAEJ6D,IAAYE,GAAYH,EAAS5D,SAAS+D,GAE5C,GAAIF,EACF,MAAO,CACLlL,KAAM/D,MAKCqP,EAAqB,KACzB,CACLtL,KAAM9D,MA2CGqP,EAA0BC,IAC9B,CACLxL,KAAM1D,IACN8D,QAASoL,IAIAC,EAA8BC,IAClC,CACL1L,KAAM3D,IACN+D,QAASsL,IAIAC,EAAwBC,IAC5B,CACL5L,KAAM5D,IACNgE,QAASwL,K,gCCphCb,kTAAO,MAAMC,EAA6B,6BAC7BC,EACX,uCAGWC,EACX,0CACWC,EACX,uCACWC,EAA0B,0BAC1BC,EAA2B,2BAC3BC,EAA8B,8BAC9BC,EAA6B,6BAC7BC,EAA2B,4B,+BCbxC,iZA+BO,MAgDMC,EAAuB,IAC3B7J,YAuBI8J,EAAsBC,IAI1B,CACLxM,KAAM3B,IACN+B,QAASoM,IAIAC,EAAgBC,IACpB,CACL1M,KAAM1B,IACN8B,QAASsM,IAWAC,EAAoBC,IACxB,CACL5M,KAAMvB,IACN2B,QAASwM,IAIAC,EAAmBC,IACvB,CACL9M,KAAMlB,IACNsB,QAAS0M,IAIAC,EAAoBC,IACxB,CACLhN,KAAMtB,IACN0B,QAAS4M,IAIAC,EAAuBC,IAC3B,CACLlN,KAAMrB,IACNyB,QAAS8M,IAIAC,EAA6BtJ,IACxC,IAAIuJ,EAAmBvJ,EAAKuJ,iBAAiB/B,OAAO,KACpD,GACElJ,cAA0BkF,SAAS+F,KAClCvJ,EAAKwJ,YAAYhG,SAAS,QACzBxD,EAAKwJ,YAAYhG,SAAStF,gBAE5B,MAAO,CACL/B,KAAMpB,IACNwB,QAASkN,IAAOC,QAKTpC,EAAiBF,IACpBA,EAAS5D,SAAS,cAGfmG,EAAqB,IACzB/K,UACL,IAAK,IAAD,EACF,MAAMtC,QAAiBuC,IAASiB,IAAT,kCACMnH,IADN,qBAGnB,OAAC2D,QAAD,IAACA,GAAD,UAACA,EAAU0D,YAAX,aAAC,EAAgB4J,mBACnBtK,EAASuK,EAAyB,OAACvN,QAAD,IAACA,OAAD,EAACA,EAAU0D,OAE/C,MAAOlD,GACPgE,QAAQC,IAAIjE,KAKZ+M,EAA6BvH,IAC1B,CACLnG,KAAMnB,IACNuB,QAAS+F,K,iCC9Lb,4aAiCO,MAAMwH,EAAkB9J,GACtBpB,UACLU,EAASyK,KACTzK,EAAS0K,EAAchK,KAiBrBgK,EAAiBhK,IACd,CACL7D,KAAMrD,IACNyD,QAASyD,IAIAiK,EAAqBC,IACzB,CACL/N,KAAMpD,IACNwD,QAAS2N,IAIAC,EAAsB,CACjCD,EACAE,EACAjO,KAEO,CACLA,KAAMnD,IACNuD,QAAS,CACP2N,QACAE,SACAjO,UAKOkO,EAAwB,CAACH,EAAeI,KAC5C,CACLnO,KAAMjD,IACNqD,QAAS,CAAE2N,QAAOI,UAITP,EAAoB,KACxB,CACL5N,KAAMlD,IACNsD,QAAS,KAIAgO,EAAuB,CAACjI,EAAQkI,KACpC,CACLrO,KAAMhD,IACNoD,QAAS,CACP+F,OAAQA,EACRkI,YAAW,OAAEA,QAAF,IAAEA,IAAe,KAKrBC,EAAeC,IACnB,CACLvO,KAAM/C,IACNmD,QAASmO,IAyBAC,EAAyB,KAC7B,CACLxO,KAAMlC,MAsEG2Q,EAAgB,CAACzH,EAA4Bd,IACjDzD,UACL,GAAIuE,EACF,IACE0H,IAAc/K,IAAI,6BAA8B,CAC9Cf,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,aACtC4N,OAAQ,oBAEVvI,OAAQ,CACNwI,WAAY,cACZ9K,OAAQ,OACRkD,QAAS6H,MAAMC,QAAQ9H,GAAWA,EAAQ+C,KAAK,KAAO/C,EACtDd,QAASA,KAGV6I,KAAM5O,IAELgD,EACEiL,EACEjO,EAAS0D,KAAKmL,OACd7O,EAAS0D,KAAKwK,gBAInBY,MAAOvK,IACNC,QAAQC,IAAIF,KAEhB,MAAO/D,GACPwC,EAASiL,EAAqB,OAMzBc,EAAsB,CAACC,EAAkBC,IAC7C3M,UACL,IACE4M,IAAI1M,KACF,2BACA,GACA,CACEC,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,cAExCqF,OAAQ,CACN+I,SAAUA,EACVC,IAAKA,KAIRL,KAAM5O,IACL,IAAIC,EAAU,GACd,IAAK,MAAMkP,KAAOnP,EAAS0D,KACzBzD,EAAQ6G,KAAK,CACXsI,cAAeD,EAAIC,cACnBC,YAAaF,EAAIE,YACjBC,SAAUH,EAAInB,KACduB,YAAaJ,EAAIK,OACjBC,QAAS,EACTC,UAAWP,EAAIQ,MAGnB3M,EAASiL,EAAqBhO,MAE/B6O,MAAOvK,IACNC,QAAQC,IAAIF,KAEhB,MAAO/D,GACPwC,EAASiL,EAAqB,OAmBvB2B,EAAuB,IAC3BtN,UACL,IACE,MAAMtC,QAAkDuC,IAASiB,IAC/D,8CACA,CACEf,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,gBAI5C,GAAIZ,EAAU,CACZ,IAAI6P,EAAU,GACd,IAAK,IAAIC,KAAU9P,EAAS0D,KAC1BmM,EAAQ/I,KAAK,CACXiJ,MAAOD,EAAOC,MACdC,MAAOF,EAAOE,QAGlBhN,EAASiN,EAAmBJ,KAE9B,MAAOrP,GACPgE,QAAQC,IAAIjE,KAKLyP,EAAsBC,IAC1B,CACLrQ,KAAM7C,IACNiD,QAASiQ,IAIAC,EAAwBhQ,IAC5B,CACLN,KAAM5C,IACNgD,QAASE,K,u0CCtPN,MAAMiQ,EAAuB,CAClC,KAAQ,OACR,IAAO,MACP,KAAQ,YACR,GAAM,YACN,WAAc,cACd,OAAU,OACV,MAAS,SACT,UAAa,aAGFC,EAAiD,CAC5D,WAAc,aACd,UAAa,YACb,MAAS,QACT,QAAW,UACX,OAAU,SACV,OAAU,SACV,cAAiB,iBAGZ,SAASC,EAAyBxL,GACvC,OAAOsL,EAAqBtL,GAGvB,MAAMyL,EAAqBC,GAC5BA,EAAM,KACAA,EAAM,KAAMC,UAAY,IAEzBD,EAIEE,EAAoB,CAACC,EAAYC,KAC5C,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAM/J,OAAQiK,IAChC,GAAIF,EAAME,KAAOD,EACf,OAAOC,GAcN,SAASC,EAAWC,GACzB,IACE,OAAOC,YAAOD,EAAM,SACpB,MAAOvQ,GAEP,OADAgE,QAAQC,IAAIsM,EAAMvQ,GACXuQ,GAIJ,MAAME,GAAgB,CAC3B,EAAKC,IACL,EAAKA,IACL,EAAKA,IACL,EAAKA,IACL,KAAQA,IACR,KAAQA,IACR,KAAQA,KAaGC,IATNC,IACAC,IACAC,IACAC,IACGC,IACAC,IACAC,IAGwB,CAChC,EAAKC,IACL,EAAKC,IACL,EAAKC,IACL,EAAKC,IACL,KAAQC,IACR,KAAQC,IACR,KAAQC,MAGJC,GAA8C,CAClDC,OAAQ,IACRC,SAAU,IACVC,OAAQ,IACRC,QAAS,IACTC,aAAc,IACdC,YAAa,IACbC,WAAY,OACZC,gBAAiB,OACjBC,WAAY,OACZC,SAAU,QAGCC,GAA2C,CACtD,EAAK,WACL,EAAK,SACL,EAAK,UACL,EAAK,cACL,KAAQ,YACR,KAAQ,aACR,KAAQ,YAGGC,GAAiB,CAC5B,EAAK,OACL,EAAK,MACL,EAAK,YACL,GAAM,YACN,EAAK,cACL,EAAK,OACL,EAAK,SACL,EAAK,aAgBMC,GAA2C,CACtD,EAAK,aACL,EAAK,aACL,EAAK,QACL,EAAK,iBACL,EAAK,SACL,EAAK,SACL,EAAK,iBAGMC,GAAqB,CAChC,EAAK,UACL,EAAK,WACL,EAAK,qBACL,EAAK,sBACL,EAAK,gBACL,EAAK,iBACL,EAAK,0BACL,EAAK,sBACL,EAAK,uBACL,EAAK,wBACL,GAAM,sBACN,GAAM,iBACN,GAAM,0BACN,GAAM,8BACN,GAAM,+BACN,GAAM,mBACN,GAAM,qBACN,GAAM,sBACN,GAAM,kBACN,GAAM,uBACN,GAAM,wBACN,GAAM,kBACN,GAAM,IACN,GAAM,uBACN,GAAM,wBACN,GAAM,sBACN,GAAM,gBACN,GAAM,iBACN,GAAM,eACN,GAAM,WACN,GAAM,gBACN,GAAM,cACN,GAAM,aACN,GAAM,cACN,GAAM,cACN,GAAM,kBACN,GAAM,2BACN,GAAM,4BACN,GAAM,0BACN,GAAM,qBACN,GAAM,wBACN,GAAM,wBACN,GAAM,+BACN,GAAM,mBACN,GAAM,iBACN,GAAM,kBAGKC,GAAmD,CAC9DC,MAAO,EACPC,GAAI,EACJC,GAAI,EACJC,OAAQ,EACRC,OAAQ,EACRC,GAAI,GAGC,SAASC,GAAuBC,GACrC,OAAOT,GAAmBS,GAGrB,SAASC,GAAmB5O,GACjC,OAAOgO,GAAehO,GAGjB,SAAS6O,GAAiB7O,GAC/B,OAAOoN,GAAiBpN,GAGnB,SAAS8O,GAAeC,GAC7B,OAAOd,GAAcc,GAAMd,GAAcc,GAAM,SAG1C,SAASC,KACd,MAAO,CAAC,aAAc,YA8BjB,SAASC,GAAoBjP,GAClC,OAAOkP,GAAiBlP,GAGnB,MAAMkP,GAA8C,CACzD,EAAK,SACL,EAAK,SACL,EAAK,UACL,KAAQ,aACR,KAAQ,WACR,KAAQ,kBACR,EAAK,eAGMC,GAAgB,CAC3B5B,OAAQ6B,IACR9B,SAAU+B,IACVhC,OAAQgC,IACR7B,QAAS8B,IACT5B,YAAa6B,IACbC,UAAWC,IACX5B,WAAY6B,IACZ5B,SAAU6B,KAGCC,GAAiB,cAEjBC,GAAcC,IACzB,MAAMC,EAAQD,EAAI9T,MAAM,KACxB,IAAK,IAAI+P,EAAI,EAAGA,EAAIgE,EAAMjO,OAAQiK,IAAK,CAAC,IAAD,EACL,EAAhC,aAAIgE,EAAMhE,GAAG,UAAb,aAAI,EAAaiE,cACfD,EAAMhE,IAAK,UAAAgE,EAAMhE,GAAG,UAAT,eAAaiE,eAAgBD,EAAMhE,GAAGkE,UAAU,GAG/D,OAAOF,EAAMjL,KAAK,MAGPoL,GAAsB,CACjCC,cAAe,gBACfC,eAAgB,iBAChBC,qBAAsB,uBACtBC,oBAAqB,sBACrBC,sBAAuB,wBACvBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,kBAAmB,oBACnBC,qBAAsB,uBACtBC,oBAAqB,sBACrBC,sBAAuB,wBACvBC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,gBAAiB,kBACjBC,QAAS,UACTC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,mBAAoB,qBACpBC,4BAA6B,8BAC7BC,6BAA8B,+BAC9BC,wBAAyB,0BACzBC,6BAA8B,+BAC9BC,wBAAyB,0BACzBC,mBAAoB,qBACpBC,4BAA6B,8BAC7BC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,aAAc,eACdC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,yBAA0B,2BAC1BC,wBAAyB,0BACzBC,0BAA2B,4BAC3BC,cAAe,eACfC,oBAAqB,sBACrBC,eAAgB,iBAChBC,sBAAuB,wBACvBC,SAAU,YAGCC,GAAmB,CAC9B,CAAEpH,MAAO,gBAAiBqH,KAAM,iBAChC,CAAErH,MAAO,iBAAkBqH,KAAM,kBACjC,CAAErH,MAAO,uBAAwBqH,KAAM,wBACvC,CAAErH,MAAO,sBAAuBqH,KAAM,uBACtC,CAAErH,MAAO,wBAAyBqH,KAAM,yBACxC,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,iBAAkBqH,KAAM,kBACjC,CAAErH,MAAO,oBAAqBqH,KAAM,qBACpC,CAAErH,MAAO,uBAAwBqH,KAAM,wBACvC,CAAErH,MAAO,sBAAuBqH,KAAM,uBACtC,CAAErH,MAAO,wBAAyBqH,KAAM,yBACxC,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,mBAAoBqH,KAAM,oBACnC,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,sBAAuBqH,KAAM,uBACtC,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,UAAWqH,KAAM,WAC1B,CAAErH,MAAO,oBAAqBqH,KAAM,qBACpC,CAAErH,MAAO,mBAAoBqH,KAAM,oBACnC,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,8BAA+BqH,KAAM,+BAC9C,CAAErH,MAAO,+BAAgCqH,KAAM,gCAC/C,CAAErH,MAAO,0BAA2BqH,KAAM,2BAC1C,CAAErH,MAAO,+BAAgCqH,KAAM,gCAC/C,CAAErH,MAAO,0BAA2BqH,KAAM,2BAC1C,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,8BAA+BqH,KAAM,+BAC9C,CAAErH,MAAO,oBAAqBqH,KAAM,qBACpC,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,iBAAkBqH,KAAM,kBACjC,CAAErH,MAAO,oBAAqBqH,KAAM,qBACpC,CAAErH,MAAO,mBAAoBqH,KAAM,oBACnC,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,eAAgBqH,KAAM,gBAC/B,CAAErH,MAAO,kBAAmBqH,KAAM,mBAClC,CAAErH,MAAO,qBAAsBqH,KAAM,sBACrC,CAAErH,MAAO,sBAAuBqH,KAAM,uBACtC,CACErH,MAAO,2BACPqH,KAAM,4BAER,CACErH,MAAO,0BACPqH,KAAM,2BAER,CACErH,MAAO,4BACPqH,KAAM,6BAER,CACErH,MAAO,gBACPqH,KAAM,gBAER,CACErH,MAAO,sBACPqH,KAAM,uBAER,CACErH,MAAO,iBACPqH,KAAM,kBAER,CACErH,MAAO,wBACPqH,KAAM,yBAER,CACErH,MAAO,WACPqH,KAAM,aAIG9Q,GAAc,CACzB,aAAc,IACd,aAAc,IACd,cAAe,IACf,aAAc,OACd,aAAc,QAGHwD,GAAc,CACzB,EAAK,aACL,EAAK,aACL,EAAK,cACL,KAAQ,aACR,KAAQ,cAGJuN,GAAyB,CAC7B,0BACA,0BACA,0BACA,6BAGWC,GAAc,CAACzU,EAAW0U,KAChC1U,EAAK2U,gBAA0C,UAAxB3U,EAAK2U,iBAE7BH,GAAuBhR,SAASxD,EAAK2U,iBACvCD,EAAQtR,KAAKpD,EAAK2U,gBAEpBpX,OAAO8B,KAAKW,EAAK2U,eAAgB,a,qECtfnC,MAAMC,EAA0B,CAC9BC,eAAgB,CACd9U,QAAS,KACT+U,UAAW,EACXC,kBAAmB,EACnBC,SAAU,GACVC,SAAU,KACVC,cAAe,EACfC,WAAY,EACZC,WAAY,EACZC,kBAAmB,GACnBpW,SAAU,GACVqW,MAAM,MAERC,QAAStY,eAAeC,QAAQ,aAAe,KAC/CsY,QAASvY,eAAeC,QAAQ,aAAe,IAC/CuY,SAAUxY,eAAeC,QAAQ,cAAgB,GACjDwY,SAAS,EACTC,WAAY,GACZhZ,gBAAiB,GACjBiZ,cAAe,GACfC,WAAU5Y,eAAeC,QAAQ,aACjCuB,aAAc,KACdqX,kBAAkB,EAClBC,mBAAmB,EACnB5V,YAAYlD,eAAeC,QAAQ,WAoItB8Y,MAhIK,CAACC,EAAQrB,EAAcsB,KACzC,OAAQA,EAAO/Z,MACb,KAAKf,IACH,MAAO,IACF6a,EACHP,SAAS,EACTC,WAAY,IAEhB,KAAKta,IACH,MAAO,IACF4a,EACHP,SAAS,GAEb,KAAKxa,IACH,MAAO,IACF+a,EACHV,QAASW,EAAO3Z,QAAQgZ,QAAUW,EAAO3Z,QAAQgZ,QAAU,IAC3DC,QAASU,EAAO3Z,QAAQiZ,QAAUU,EAAO3Z,QAAQiZ,QAAU,IAC3DC,SAAUS,EAAO3Z,QACjBmZ,SAAS,EACTC,WAAY,GACZE,UAAU,EACVpX,eAAcyX,EAAO3Z,QAAQkC,cACzByX,EAAO3Z,QAAQkC,cAGvB,KAAKtD,IACH,MAAO,IACF8a,EACHT,QAAS,IACTC,SAAU,GACVC,SAAS,EACTC,WAAYO,EAAO3Z,QACnBsZ,UAAU,GAEZ,KAAK7Z,IACH,MAAO,IACFia,EACHtZ,gBAAiBuZ,EAAO3Z,QACxBqZ,cAAe,IAEnB,KAAK3Z,IACH,MAAO,IACFga,EACHtZ,gBAAiB,GACjBiZ,cAAeM,EAAO3Z,SAE5B,KAAKjB,IACH,MAAO,IACF2a,EACHJ,UAAU,EACVN,QAAS,KACTC,QAAS,IACTC,SAAU,GACVC,SAAS,EACTjX,aAAc,MAElB,KAAKlD,IACH,MAAO,IACF0a,EACHJ,UAAU,EACVN,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,SAAS,EACTjX,aAAc,MAGlB,KAAKjD,IACH,MAAO,IACFya,EACHpB,eAAgBqB,EAAO3Z,SAG3B,KAAKd,IACH,MAAO,IACFwa,EACHpB,eAAgB,CACd9U,QAAS,KACT+U,UAAW,EACXC,kBAAmB,EACnBC,SAAU,GACVC,SAAU,KACVC,cAAe,EACfC,WAAY,EACZC,WAAY,EACZC,kBAAmB,GACnBpW,SAAU,GACVqW,MAAM,IAIZ,KAAK5Z,IACH,MAAO,IACFua,EACHxX,aAAcyX,EAAO3Z,SAGzB,KAAKZ,IACH,MAAO,IACFsa,EACHxX,aAAc,MAElB,KAAK7C,IACH,MAAO,IACFqa,GAGP,KAAKpa,IACH,MAAO,IACFoa,EACHH,iBAAkBI,EAAO3Z,SAE7B,KAAKT,IACH,MAAO,IACFma,EACHF,kBAAmBG,EAAO3Z,SAE9B,KAAKR,IACH,MAAO,IACAka,EACH9V,UAAU+V,EAAO3Z,SAEvB,QACE,OAAO0Z,I,iBCtJb,MAAMrB,EAA4B,CAChCuB,mBAAmB,EACnBC,oBAAoB,EACpBC,YAAY,EACZC,YAAa,KACbC,gB,OAAiBC,EAASC,IAC1B1B,kBAAmB,KACnB2B,mBAAoB,KACpBC,gBAAgB,EAChBC,UAAW,GACXC,UAAW,GACXC,YAAY,EACZ/N,cAAegO,IAAmBC,OAASD,IAAmBE,OAC9DC,mBAAmB,EACnBC,eAAgB,KAChBC,oBAAqB,KACrBC,cAAe,KACfC,aAAc,CACZC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVpC,OAAO,EACPqC,eAAe,EACfC,eAAe,EACfC,uBAAuB,IAiGZC,MA7FO,CAAC7B,EAAQrB,EAAcsB,KAC3C,OAAQA,EAAO/Z,MACb,KAAKjC,IACH,MAAO,IACF+b,EACHE,kBAAmBD,EAAO3Z,SAE9B,KAAKpC,IACH,MAAO,IACF8b,EACHG,mBAAoBF,EAAO3Z,SAE/B,KAAKnC,IACH,MAAO,IACF6b,EACHI,WAAYH,EAAO3Z,SAEvB,KAAKlC,IACH,MAAO,IACF4b,EACHK,YAAaJ,EAAO3Z,SAGxB,KAAK5B,IACH,MAAO,IACFsb,EACHa,WAAYZ,EAAO3Z,SAGvB,KAAKjC,IACH,MAAO,IACF2b,EACHM,gBAAiBL,EAAO3Z,QAAQga,gBAChCxB,kBAAmBmB,EAAO3Z,QAAQwY,mBAGtC,KAAKxa,IACH,MAAO,IACF0b,EACHM,gBAAiB,MAErB,KAAK/b,IACH,MAAO,IACFyb,EACHS,mBAAoBR,EAAO3Z,SAE/B,KAAK9B,IACH,MAAO,IACFwb,EACHW,UAAWV,EAAO3Z,SAEtB,KAAK7B,IACH,MAAO,IACFub,EACHY,UAAWX,EAAO3Z,SAEtB,KAAK3B,IACH,MAAO,IACFqb,EACHlN,cAAemN,EAAO3Z,SAE1B,KAAK1B,IACH,MAAO,IACFob,EACHiB,kBAAmBhB,EAAO3Z,SAE9B,KAAKzB,IACH,MAAO,IACFmb,EACHkB,eAAgBjB,EAAO3Z,SAE3B,KAAKxB,IACH,MAAO,IACFkb,EACHmB,oBAAqBlB,EAAO3Z,SAEhC,KAAKvB,IACH,GAAIkb,EAAO3Z,QACT,MAAO,IACF0Z,EACHoB,cAAenB,EAAO3Z,SAG5B,KAAKtB,IACH,MAAO,IACFgb,EACHqB,aAAcpB,EAAO3Z,SAEzB,QACE,OAAO0Z,I,wCCvFb,MAAMrB,EAAoC,CACxCmD,WAAYC,IACZC,kBAAmB,CAAE9H,GAAI,GAAIoE,KAAM,GAAI2D,KAAM,IAC7CC,gBAAgB,EAChBC,WAAY,EACZC,SAAU,GACV5V,aAAc,GACd6V,oBAAqB,CAAEnI,GAAI,GAAIoE,KAAM,GAAI2D,KAAM,IAC/CnV,OAAQ,GACRwV,cAAe,CAAEpI,GAAI,GAAIoE,KAAM,GAAI2D,KAAM,IACzCM,sBAAuB,GACvBC,oBAAqB,GACrBC,kBAAmB,GACnBC,UAAW,KACXC,cAAe,GAEfC,UAAW,CACTnX,iBAAkB,GAClBE,eAAgB,GAChBC,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,GACdC,WAAY,GACZC,eAAgB,GAChBC,aAAc,IAEhB4W,oBAAqB,GACrB5R,oBAAqB,KACrBO,mBAAoB,KACpBsR,iBAAkB,KAClBpR,oBAAoB,EACpBE,wBAAwB,EACxBE,kBAAkB,GAGdiR,EAAmBC,IACvB,IAAIC,EAAgC,GACpC,IAAU,OAAND,QAAM,IAANA,OAAA,EAAAA,EAAQ/V,QAAS,EACnB,IAAK,IAAIiK,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB8L,EAAO9L,GAAI+L,EAAU9V,KAAK6V,EAAO9L,IAChC+L,EAAU9V,KAAK,CAAE+V,MAAO,KAAMC,KAAM,OAG7C,OAAOF,GAEHG,EAAoBC,GACjBA,GAAwB,iBAsC3BC,EAAkB,CACtBC,EACAhX,EACAH,EACAS,EACA2W,EACAC,EACAC,EACAC,KAEA,IAAIC,EACAC,EAAML,EAAa,IAAME,EAG7B,QAAoBI,IAAhBH,EACFC,EAAUD,EACVJ,EAAkBM,GAAO,CACvBtX,WAAYA,EACZH,QAASA,EACTS,cAAeA,EACfK,QAASsW,EACTO,WAAYN,EACZ9V,SAAU+V,EACVE,QAASD,OAEN,CAGL,IAAIK,EAAkBT,EAAkBM,GACnCG,EAEMA,IACTJ,EAAUI,EAAgBJ,SAF1BA,GAAU,EAMd,OAAOA,GA+tCMK,MA5tCe,CAC5BjE,EAAQrB,EACRsB,KAEA,OAAQA,EAAO/Z,MACb,KAAKrF,IACH,MAAO,IACFmf,EACH8B,WAAY,GACZE,kBAAmB,CAAE9H,GAAI,IAAKoE,KAAM,WAAY2D,KAAM,YACtDzV,aAAc,GACd6V,oBAAqB,CAAEnI,GAAI,GAAIoE,KAAM,GAAI2D,KAAM,IAC/CnV,OAAQ,IAIZ,KAAKzL,IACH,MAAO,IACF2e,EACHkC,eAAgBjC,EAAO3Z,SAI3B,KAAKtE,IACH,MAAO,IACFge,EACH4C,UAAW3C,EAAO3Z,SAItB,KAAKxF,IACH,MAAO,IACFkf,EACHgC,kBAAmB/B,EAAO3Z,QAC1B6b,WAAY,GAIhB,KAAK/gB,IACH,MAAO,IACF4e,EACHmC,WAAYlC,EAAO3Z,SAIvB,KAAKrE,IAAmB,CACtB,IAAI+hB,EAAsC/D,EAAO3Z,QAC7C4d,EAAgD,IAAKlE,EAAM6C,qBAC/D,MAAMzW,EAAU4X,EAAgB5X,QAC1BS,EAAgBmX,EAAgBnX,cAChCK,EAAU8W,EAAgB9W,QAC1B6W,EAAaC,EAAgBD,WAC7BpW,EAAWqW,EAAgBrW,SAKjC,OAHAuW,EADYhX,EAAU,IAAMS,GACEqW,EAGtBD,GACN,IAAK,aAAc,CAEjB,MAAMI,EAAY,IAAKnE,EAAMlT,QAC7B,GAAII,GAAWiX,EAAU/X,GAASS,GAAeK,GAAS,CAAC,IAAD,EACxD,IAAIkX,EAAe,UAAGD,EAAU/X,GAASS,GAAeK,UAArC,aAAG,EAA4CgB,UAC9DkW,EAAgBzW,WAAaA,IAC/ByW,EAAgBR,QAAUI,EAAgBJ,SAK9C,MAAMS,EAAqB,IAAKrE,EAAMuC,uBACtC,GAAI8B,EAAmBnX,EAAU,IAAMS,GAAW,CAC1B0W,EAAmBnX,EAAU,IAAMS,GACzCiW,QAAUI,EAAgBJ,QAE5C,MAEF,IAAK,YAAa,CAEhB,IAEIU,EAF2C,IAAKtE,EAAMwC,qBACGtV,GACL0B,WACxD,GAAI0V,GAAoBA,EAAiBrX,OACvC,IAAK,IAAIsX,KAAMD,EACTC,EAAG5W,WAAaA,IAAU4W,EAAGX,QAAUI,EAAgBJ,SAG/D,MAEF,IAAK,QAAS,CAEZ,IACIY,EAD2C,IAAKxE,EAAMwC,qBACGtV,GACzD4B,EAAiC0V,EAAiB1V,aACtD,GAAIA,GAAgBA,EAAa7B,OAC/B,GAAiB,MAAbU,EACF6W,EAAiBnU,eAAiB2T,EAAgBJ,aAElD,IAAK,IAAIa,KAAK3V,EACR2V,EAAE9W,WAAaA,IAAU8W,EAAEb,QAAUI,EAAgBJ,SAI/D,MAEF,QACE/Y,QAAQC,IAAI,uCAAwCiZ,GAGxD,MAAO,IACF/D,EACH6C,oBAAqBqB,GAIzB,KAAKhiB,IAAoB,CACvB,IAAIwiB,EAAwCzE,EAAO3Z,QACnD,MAAM4G,EAAUwX,EAAiBxX,QAC3B6W,EAAaW,EAAiBX,WAC9BpW,EAAW+W,EAAiB/W,SAClC,IAAI6U,EAA2C,IAAKxC,EAAMwC,qBACtDgC,EAAqChC,EAAoBtV,GAG7D,OAAQ6W,GACN,IAAK,YAAa,CAEhB,IAAIO,EAAmCE,EAAiB5V,WACxD,GAAI0V,GAAoBA,EAAiBrX,OACvC,IAAK,IAAIsX,KAAMD,EACTC,EAAG5W,WAAaA,IAAU4W,EAAGtD,kBAAoByD,EAAiBxR,YAG1E,MAEF,IAAK,QAAS,CAEZ,IAAIpE,EAAiC0V,EAAiB1V,aACtD,GAAIA,GAAgBA,EAAa7B,OAC/B,IAAK,IAAIwX,KAAK3V,EACR2V,EAAE9W,WAAaA,IAAU8W,EAAExD,kBAAoByD,EAAiBxR,YAGxE,MAEF,QACErI,QAAQC,IAAI,0CAA2CiZ,GAG3D,MAAO,IACF/D,EACHwC,oBAAqBA,GAIzB,KAAKzhB,IAA0C,CAC7C,IAAIyL,EAAiC,GACjCmY,EAA2C,IAAK3E,EAAMxT,cAC1D,MAAM0D,EAAM+P,EAAO3Z,QAAQ8F,QAC3B,IAAK,IAAIwY,KAAK3E,EAAO3Z,QAAQkG,aAAc,CACzC,MAAMqY,EAAWD,EAAEnX,gBAChBqX,oBACApb,QAAQ,aAAc,KACtBA,QAAQ,MAAO,KACfqb,OACA5d,MAAM,KACN8I,KAAK,KACRzD,EAAaW,KAAK,CAChB+M,GAAI0K,EAAE/X,cACNyR,KAAMsG,EAAEnX,gBACRwU,KAAM4C,EACNzY,QAAS8D,IAIb,OADAyU,EAAgBzU,GAAO1D,EAChB,IACFwT,EACHxT,aAAcmY,GAIlB,KAAK3jB,IACH,MAAO,IACFgf,EACHqC,oBAAqBpC,EAAO3Z,QAC5B6b,WAAY,GAIhB,KAAKhgB,IACH,MAAO,IACF6d,EACH/O,oBAAqBuC,IAAOC,OAIhC,KAAKrR,IACH,MAAO,IACF4d,EACHxO,mBAAoBgC,IAAOC,OAI/B,KAAKpR,IACH,MAAO,IACF2d,EACH8C,iBAAkBtP,IAAOC,OAU7B,KAAKxS,IAAoC,CAAC,IAAD,gBACvC,MAAMiP,GAAoB,OAAN+P,QAAM,IAANA,GAAA,UAAAA,EAAQ3Z,eAAR,eAAiB8F,SAAjB,OAChB6T,QADgB,IAChBA,GADgB,UAChBA,EAAQ3Z,eADQ,aAChB,EAAiB8F,QADD,OAEhB6T,QAFgB,IAEhBA,GAFgB,UAEhBA,EAAQ3Z,eAFQ,iBAEhB,EAAiBiF,iBAFD,aAEhB,EAA4Ba,QAChC,IAAI4D,GAAoB,OAANiQ,QAAM,IAANA,GAAA,UAAAA,EAAQ3Z,eAAR,eAAiBuG,eAAjB,OACdoT,QADc,IACdA,GADc,UACdA,EAAQ3Z,eADM,aACd,EAAiBuG,cADH,OAEdoT,QAFc,IAEdA,GAFc,UAEdA,EAAQ3Z,eAFM,iBAEd,EAAiBiF,iBAFH,aAEd,EAA4BsB,cAC5BK,EAAkB+S,EAAO3Z,QAAQ4G,QACjC+S,EAAO3Z,QAAQ4G,QACf+S,EAAO3Z,QAAQiF,UAAU2B,QAE7B8C,EAAMA,EAAI7I,MAAM,KAAK8I,KAAK,KAC1B/C,EAAUA,EAAQ/F,MAAM,KAAK8I,KAAK,KAElC,MAAMkU,EAAY,IAAKnE,EAAMlT,QACxBqX,EAAUjU,KACbiU,EAAUjU,GAAO,IAEdiU,EAAUjU,GAAKF,KAClBmU,EAAUjU,GAAKF,GAAO,IAGxB,IAAIuT,EAA2C,IAAKvD,EAAM6C,qBAE1D,GAAI5C,EAAO3Z,QAAQiF,UAAW,CAAC,IAAD,QAC5B,IAAI6B,EACA4X,EAAW,IAAIC,IAC0B,IAAD,MAA5C,GAAI/X,GAAWiX,EAAUjU,GAAKF,GAAK9C,GACjCE,EAAQ,IAAK+W,EAAUjU,GAAKF,GAAK9C,IACjC8X,EAASE,IAAT,UAAaf,EAAUjU,GAAKF,GAAK9C,UAAjC,aAAa,EAA8BgB,UAAUP,SAArD,UAA+DwW,EAAUjU,GAAKF,GAAK9C,UAAnF,iBAA+D,EAA8BgB,iBAA7F,aAA+D,EAAyCiX,mBAIxG/X,EAAQ,IACH6S,EAAO3Z,QAAQiF,UAClBvB,OACqC,QAAnCiW,EAAO3Z,QAAQiF,UAAUvB,OACrB,UACAiW,EAAO3Z,QAAQiF,UAAUvB,QAOnC,GAHAoD,EAAMP,cAAN,UAAsBO,SAAtB,iBAAsB,EAAOP,qBAA7B,aAAsB,EAAsB1F,MAAM,KAAK8I,KAAK,KAC5D7C,EAAMF,QAAN,UAAgBE,SAAhB,iBAAgB,EAAOF,eAAvB,aAAgB,EAAgB/F,MAAM,KAAK8I,KAAK,KAE5C7C,GAASA,EAAMF,QAAS,CAAC,IAAD,EAC1B,MAAMQ,EAAYN,EAAMM,UAAUY,cAClC,IAAI8W,EAAWhY,EAAMgY,SAAWhY,EAAMgY,SAAW,GAC7CC,EAAWjY,EAAMiY,SAAWjY,EAAMiY,SAAW,IAEjC,KAAbD,GACc,KAAbC,KACU,OAAT3X,QAAS,IAATA,OAAA,EAAAA,EAAWY,cAAcf,SAAS,UAAlC,OACCG,QADD,IACCA,OADD,EACCA,EAAWY,cAAcf,SAAS,YAHtC,OAIAG,QAJA,IAIAA,OAJA,EAIAA,EAAWY,cAAcf,SAAS,aAE9BG,EAAUH,SAAS,UACrB6X,EAAW1X,EAAUvG,MAAM,SAAS,GACpCke,EAAW3X,EAAUvG,MAAM,SAAS,KAEpCie,GAAoB,OAAT1X,QAAS,IAATA,OAAA,EAAAA,EAAWY,cAAcf,SAAS,QACzCG,EAAUvG,MAAM,OAAO,GAAG4d,OAC1BrX,EAAUvG,MAAM,QAAQ,GAAG4d,OAC/BM,GAAoB,OAAT3X,QAAS,IAATA,OAAA,EAAAA,EAAWY,cAAcf,SAAS,QACzCG,EAAUvG,MAAM,OAAO,GAAG4d,OAAO5d,MAAM,OAAO,GAC9CuG,EAAUvG,MAAM,QAAQ,GAAG4d,OAAO5d,MAAM,OAAO,GACnDie,EAAWpK,YAAWoK,GACtBC,EAAWrK,YAAWqK,KAK1B,MAAMpX,EAAgBgS,EAAO3Z,QAAQ2H,cAC/BqX,EAAgC,GACtC,GAAIrX,EAAe,CAAC,IAAD,gBACjB,GAAIA,EAAcqX,SAAWrX,EAAcqX,QAAQrY,OAAS,EAAG,CAC7D,IAAIiK,EAAI,EACR,IAAK,IAAIqO,KAAKtX,EAAcqX,QAC1B,GAAIC,EAAG,CAAC,IAAD,IACL,IAAIlC,EAAakC,EAAElC,WAAakC,EAAElC,WAAakC,EAAEC,gBAC9B1B,IAAfT,IACFA,EAAa,IAIuB,gBAA/B,QAAL,EAAAjW,SAAA,mBAAOqY,iBAAP,eAAkBnX,gBAClBL,EAAcI,WAAWC,cAAcf,SAAS,YAE3C8V,EAAW/U,cAAcf,SAAS,SAAiB,IAAN2J,IAC7B,KAAfmM,EACFA,EAAa+B,EACJ/B,IAAegC,IACxBD,EAAW/B,IAIVA,EAAW/U,cAAcf,SAAS,SAAiB,IAAN2J,IAC7B,KAAfmM,EACFA,EAAagC,EACJhC,IAAe+B,IACxBC,EAAWhC,KAKjBnM,GAAK,EACLoO,EAAQnY,KAAK,CACXuY,UAAUH,EAAEG,SAAWH,EAAEG,UACzBrC,WAAYA,EACZsC,WAAY5C,EAAgBwC,EAAEI,YAC9BC,UAAW7C,EAAgBwC,EAAEK,WAC7B5b,OAAQub,EAAEvb,OACV6b,YAAW,OAAEN,QAAF,IAAEA,OAAF,EAAEA,EAAGM,YAChBC,WAAU,OAAEP,QAAF,IAAEA,OAAF,EAAEA,EAAGO,WACfC,UAAS,OAAER,QAAF,IAAEA,OAAF,EAAEA,EAAGQ,UACdC,WAAU,OAAET,QAAF,IAAEA,OAAF,EAAEA,EAAGS,WACfC,UAAS,OAAEV,QAAF,IAAEA,OAAF,EAAEA,EAAGU,UACdC,YAAW,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAAGW,eAKxB,IAAItC,EAAmBN,EACrBC,EADoC,UAEpCnW,SAFoC,aAEpC,EAAOb,WAF6B,UAGpCa,SAHoC,aAGpC,EAAOhB,QAH6B,UAIpCgB,SAJoC,aAIpC,EAAOP,cAJ6B,UAKpCO,SALoC,aAKpC,EAAOF,QAL6B,UAMpCE,SANoC,aAMpC,EAAO2W,WAN6B,UAOpC3W,SAPoC,aAOpC,EAAOO,SAP6B,OAQpCM,QARoC,IAQpCA,OARoC,EAQpCA,EAAekY,WAEjB,MAAMC,EAAO,UAAGhZ,SAAH,iBAAG,EAAOc,iBAAV,aAAG,EAAkBmY,OAElCjZ,EAAMc,UAAY,CAChBP,SAAUM,EAAcN,SAAWM,EAAcN,SAAW,GAC5DU,WAAYJ,EAAcI,WACtBJ,EAAcI,WACd,GAIJrE,OAAQiE,EAAcjE,OAASiE,EAAcjE,OAAS,GACtDsb,QAASA,EACTe,OAAQpY,EAAcoY,OAAd,OAAuBpY,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAeoY,OAASD,EACvDjB,cAA2B,OAAblX,QAAa,IAAbA,OAAA,EAAAA,EAAekX,cAAf,OAA4BlX,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAekX,aAAeH,EAASnb,IAAIoE,EAAcN,UACnGiW,QAASA,OAEN,CACL,IAAI1V,EAAYd,EAAMc,UAEpBd,EAAMc,UADJA,EACgB,CAChBP,SAAQ,OAAEO,QAAF,IAAEA,OAAF,EAAEA,EAAWP,SACrBU,WAAU,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAWG,WAEvBrE,OAAQ,YACRsb,QAAO,OAAEpX,QAAF,IAAEA,OAAF,EAAEA,EAAWoX,QACpBe,OAAM,OAAEpY,QAAF,IAAEA,OAAF,EAAEA,EAAeoY,OACvBlB,aAAY,OAAElX,QAAF,IAAEA,OAAF,EAAEA,EAAekX,aAC7BvB,SAAS,GAGO,CAChBjW,SAAU,GACVU,WAAY,GAEZrE,OAAQ,YACRsb,QAAS,GACTe,OAAQ,KACRzC,SAAS,GAKf,IAAI,UAAA3D,EAAO3Z,QAAQgJ,mBAAf,eAA4BrC,QAAS,EAAG,CAC1C,IAAIvB,EAAU,GACd,IAAK,MAAM4a,KAAMrG,EAAO3Z,QAAQgJ,YAAa,CAAC,IAAD,UAC3C,MAAMgW,EAAgC,GACtC,IAAI1B,EAAmBN,EACrBC,EADoC,UAEpCnW,SAFoC,aAEpC,EAAOb,WAF6B,UAGpCa,SAHoC,aAGpC,EAAOhB,QAH6B,UAIpCgB,SAJoC,aAIpC,EAAOP,cAJ6B,UAKpCO,SALoC,aAKpC,EAAOF,QAL6B,UAMpCE,SANoC,aAMpC,EAAO2W,WACPuC,EAAG3Y,SAPiC,OAQpC2Y,QARoC,IAQpCA,OARoC,EAQpCA,EAAIH,WAEN,GAAIG,EAAGhB,SAAWgB,EAAGhB,QAAQrY,OAAS,EAAG,CACvC,IAAIiK,EAAI,EACR,IAAK,IAAIqO,KAAKe,EAAGhB,QACXC,IACFrO,GAAK,EACLoO,EAAQnY,KAAK,CACXuY,SAAUH,EAAEG,SACZrC,WAAYkC,EAAElC,WACdsC,WAAY5C,EAAgBwC,EAAEI,YAC9BC,UAAW7C,EAAgBwC,EAAEK,WAC7BC,YAAW,OAAES,QAAF,IAAEA,OAAF,EAAEA,EAAIT,YACjBC,WAAU,OAAEQ,QAAF,IAAEA,OAAF,EAAEA,EAAIR,WAChBC,UAAS,OAAEO,QAAF,IAAEA,OAAF,EAAEA,EAAIP,UACfC,WAAU,OAAEM,QAAF,IAAEA,OAAF,EAAEA,EAAIN,WAChBC,UAAS,OAAEK,QAAF,IAAEA,OAAF,EAAEA,EAAIL,UACfC,YAAW,OAAEI,QAAF,IAAEA,OAAF,EAAEA,EAAIJ,YACjBlc,OAAQub,EAAEvb,UAKlB0B,EAAQyB,KAAK,CACXQ,SAAU2Y,EAAG3Y,SACbU,WAAYiY,EAAGjY,WACf0B,WAAYuW,EAAGvW,WAEf/F,OAAQsc,EAAGtc,OACXsb,QAASA,EACT1B,QAASA,IAGblY,EAAQ6a,KAAK,CAACC,EAAGC,KACf,MAAMC,EAAQF,EAAEzW,WACV4W,EAAQF,EAAE1W,WAChB,OAAI2W,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEdvZ,EAAMkC,YAAc5D,EAItB0B,EAAMgY,SAAWA,EACjBhY,EAAMiY,SAAWA,EACjBjY,EAAMkD,4BAA8B2P,EAAO3Z,QACxCgK,4BACC2P,EAAO3Z,QAAQgK,4BACflD,EAAMkD,4BACNlD,EAAMkD,4BACN,GACJlD,EAAMwZ,UAAYxZ,EAAMwZ,UACpBxZ,EAAMwZ,UACNxZ,EAAMM,UACNN,EAAMM,UACHY,cACA5E,QAAQ,aAAc,KACtBA,QAAQ,MAAO,KACfqb,OACA5d,MAAM,KACN8I,KAAK,KACR,GAEJkU,EAAUjU,GAAKF,GAAK5C,EAAMF,SAAWE,GAIzC,GAAI6S,EAAO3Z,QAAQiK,UAAW,CAAC,IAAD,EAC5B,MAAMsW,EAAU,UAAG5G,EAAO3Z,eAAV,aAAG,EAAgBiF,UACnC,IAAIub,EACAC,EACAC,EAEJ,IAAK,IAAD,cACFA,EACEhH,EAAMgC,kBAAkB9H,KAAOhK,EAC3B,IAAK8P,EAAMgC,mBACX,CACE9H,GAAIhK,EACJoO,KAAMyD,IAAqBkF,OACxB1B,GACCA,EAAErL,KAAO2M,EAAWza,SACpBmZ,EAAErL,KAAO1M,IAAYqZ,EAAWza,UAClC,GAAGkS,KACL2D,KAAMF,IAAqBkF,OACxB1B,GACCA,EAAErL,KAAO2M,EAAWza,SACpBmZ,EAAErL,KAAO1M,IAAYqZ,EAAWza,UAClC,GAAG6V,MAEb6E,EACE9G,EAAMqC,oBAAoBnI,KAAOlK,EAC7B,IAAKgQ,EAAMqC,qBACX,CACEnI,IAAI,UAAA+F,EAAO3Z,QAAQiF,iBAAf,eAA0BsB,eAC1BoT,EAAO3Z,QAAQiF,UAAUsB,cACzB,GACJyR,MAAM,UAAA2B,EAAO3Z,QAAQiF,iBAAf,eAA0BkC,iBAC5BwS,EAAO3Z,QAAQiF,UAAUkC,gBACzB,GACJwU,MAAM,UAAAhC,EAAO3Z,QAAQiF,iBAAf,eAA0BkC,iBAC5BwS,EAAO3Z,QAAQiF,UAAUkC,gBACtBqX,oBACApb,QAAQ,aAAc,KACtBA,QAAQ,MAAO,KACfqb,OACA5d,MAAM,KACN8I,KAAK,KACR,IAGZ8W,EACE/G,EAAMsC,cAAcpI,MAApB,UAA2B+F,EAAO3Z,QAAQiF,iBAA1C,aAA2B,EAA0B2B,SACjD,IAAK8S,EAAMsC,eACX,CACEpI,GAAE,UAAE+F,EAAO3Z,QAAQiF,iBAAjB,aAAE,EAA0B2B,QAC9B+U,KAAI,UAAEhC,EAAO3Z,QAAQiF,iBAAjB,aAAE,EAA0BmC,UAC7BoX,oBACApb,QAAQ,aAAc,KACtBA,QAAQ,MAAO,KACfqb,OACA5d,MAAM,KACN8I,KAAK,KACRqO,KAAI,UAAE2B,EAAO3Z,QAAQiF,iBAAjB,aAAE,EAA0BmC,WAExC,MAAOwZ,IACPJ,EAA6B,IAAK9G,EAAMqC,qBACxC0E,EAAuB,IAAK/G,EAAMsC,eAClC0E,EAA2B,IAAKhH,EAAMgC,mBAExC,MAAO,IACFhC,EACHlT,OAAQqX,EACRnC,kBAAmBgF,EACnB3E,oBAAqByE,EACrBxE,cAAeyE,EACflE,oBAAqBU,GAGzB,MAAO,IACFvD,EACHlT,OAAQqX,GAIZ,KAAK3iB,IAA6B,CAAC,IAAD,MAChC,MAAM+J,EAAY0U,EAAO3Z,QACnB4G,EAAkB3B,EAAU2B,QAC5BS,EAAmBsS,EAAO3Z,QAAQqH,SACxC,IAAI4V,EAA2C,IAAKvD,EAAM6C,qBAE1D,MAAMwB,EAAqB,IAAKrE,EAAMuC,uBAEhCtU,EAAgBgS,EAAO3Z,QAAQ2H,cAC/BqX,EAAgC,GACtC,IAAI6B,GAAoC,UAAA9C,EACtCnX,EAAU,IAAMS,UADsB,mBAErC2X,eAFqC,eAE5BrY,QACR,IAAC,UAAGoX,EAAmBnX,EAAU,IAAMS,UAAtC,aAAG,EAA8C2X,SAClD,GAEJ,GAAIrX,EAAe,CAAC,IAAD,KACjB,IAAI2V,EAAmBN,EACrBC,EADoC,OAEpChY,QAFoC,IAEpCA,OAFoC,EAEpCA,EAAWgB,WAFyB,OAGpChB,QAHoC,IAGpCA,OAHoC,EAGpCA,EAAWa,QAHyB,OAIpCb,QAJoC,IAIpCA,OAJoC,EAIpCA,EAAWsB,cACXK,EALoC,OAMpCe,QANoC,IAMpCA,OANoC,EAMpCA,EAAe8V,WANqB,OAOpC9V,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAeN,SAPqB,OAQpCM,QARoC,IAQpCA,OARoC,EAQpCA,EAAekY,WAEjB,GAAIlY,EAAcqX,SAAWrX,EAAcqX,QAAQrY,OAAS,EAAG,CAC7D,IAAIlD,EAAY,GAChB,IAAK,IAAIwb,KAAKtX,EAAcqX,QAAS,CAC3B,IAAD,oCAAP,GAAIC,EACFxb,EAAI,OAAGod,QAAH,IAAGA,OAAH,EAAGA,EAAahZ,KACjBiZ,IAAa,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM1B,aAAN,OAAmBH,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAGG,WAGlCJ,EAAQnY,KAAK,CACXuY,SAAQ,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAGG,SACbrC,WAAU,OAAEkC,QAAF,IAAEA,OAAF,EAAEA,EAAGlC,WACfsC,WAAY5C,EAAgBwC,EAAEI,YAC9BC,UAAW7C,EAAgBwC,EAAEK,WAC7B5b,OAAM,OAAEub,QAAF,IAAEA,OAAF,EAAEA,EAAGvb,OACX6b,aAAc,OAADN,QAAC,IAADA,OAAA,EAAAA,EAAGM,aAAH,OACTN,QADS,IACTA,OADS,EACTA,EAAGM,YADM,sBAET9b,SAFS,cAET,GAAM8b,mBAFG,UAEY,GACzBC,YAAa,OAADP,QAAC,IAADA,OAAA,EAAAA,EAAGO,YAAH,OACRP,QADQ,IACRA,OADQ,EACRA,EAAGO,WADK,sBAER/b,SAFQ,cAER,GAAM+b,kBAFE,UAEY,GACxBC,WAAY,OAADR,QAAC,IAADA,OAAA,EAAAA,EAAGQ,WAAH,OAAeR,QAAf,IAAeA,OAAf,EAAeA,EAAGQ,UAAlB,sBAA8Bhc,SAA9B,cAA8B,GAAMgc,iBAApC,UAAiD,GAC5DC,YAAa,OAADT,QAAC,IAADA,OAAA,EAAAA,EAAGS,YAAH,OACRT,QADQ,IACRA,OADQ,EACRA,EAAGS,WADK,sBAERjc,SAFQ,cAER,GAAMic,kBAFE,UAEY,GACxBC,WAAY,OAADV,QAAC,IAADA,OAAA,EAAAA,EAAGU,WAAH,OAAeV,QAAf,IAAeA,OAAf,EAAeA,EAAGU,UAAlB,sBAA8Blc,SAA9B,cAA8B,GAAMkc,iBAApC,UAAiD,GAC5DC,aAAc,OAADX,QAAC,IAADA,OAAA,EAAAA,EAAGW,aAAH,OACTX,QADS,IACTA,OADS,EACTA,EAAGW,YADM,sBAETnc,SAFS,cAET,GAAMmc,mBAFG,UAEY,MAKjC7B,EAAmBnX,EAAU,IAAMS,GAAY,CAC7CA,SAAUM,EAAcN,SACxBU,WAAYJ,EAAcI,WAC1B0B,WAAY9B,EAAc8B,WAE1B/F,OAAQiE,EAAcjE,OACtBsb,QAASA,EACTe,OAAQpY,EAAcoY,OAClBpY,EAAcoY,OADV,UAEJhC,EAAmBnX,EAAU,IAAMS,UAF/B,aAEJ,EAA8C0Y,OAClDlB,cAA2B,OAAblX,QAAa,IAAbA,OAAA,EAAAA,EAAekX,cACzBlX,EAAckX,aADJ,WAEVd,EAAmBnX,EAAU,IAAMS,UAFzB,cAEV,GAA8CwX,aAClDvB,QAASA,OAEN,CACL,IAAI1V,EAAYmW,EAAmBnX,EAAU,IAAMS,GACnC,IAAD,GAAf,GAAIO,EACFmW,EAAmBnX,EAAU,IAAMS,GAAY,CAC7CA,SAAUO,EAAUP,SACpBU,WAAYH,EAAUG,WACtB0B,WAAY9B,EAAc8B,WAE1B/F,OAAQ,YACRsb,QAASpX,EAAUoX,QACnBe,OAAQnY,EAAUmY,OAClBlB,cAA2B,OAAblX,QAAa,IAAbA,OAAA,EAAAA,EAAekX,cAC3BlX,EAAckX,aADF,WAEZd,EAAmBnX,EAAU,IAAMS,UAFvB,cAEZ,GAA8CwX,aAChDvB,SAAS,QAGXS,EAAmBnX,EAAU,IAAMS,GAAY,CAC7CA,SAAU,GACVU,WAAY,GAEZrE,OAAQ,YACRsb,QAAS,GACTe,OAAQ,KACRzC,SAAS,GAKf,MAAMyD,EAAkB,IAAKrH,EAAMuC,uBAInC,OAHA8E,EAAgBna,EAAU,IAAMS,GAC9B0W,EAAmBnX,EAAU,IAAMS,GAE9B,IACFqS,EACHuC,sBAAuB8E,EACvBxE,oBAAqBU,GAIzB,KAAK1hB,IACH,IACE,MAAM0J,EAAY0U,EAAO3Z,QACnB4G,EAAkB3B,EAAU2B,QAC5Boa,EAAgBrH,EAAO3Z,QAAQihB,gBAC/BC,EAAa,IAAKxH,EAAMwC,qBAC9B,IAAIe,EAA2C,IAAKvD,EAAM6C,qBAG1D,MAAM/T,EAAe0Y,EAAWta,GAAS4B,aACnC2Y,EAAe,IAAIxC,IACzB,IAAID,EAAW,IAAIC,IACnB,IAAK,MAAM,SAAEtX,EAAF,kBAAYsT,EAAZ,aAA+BkE,KAAkBrW,OAChCgV,IAAtB7C,GACFwG,EAAavC,IAAIvX,EAAUsT,GAE7B+D,EAASE,IAAIvX,EAAUwX,GAIzB,GAAIlF,EAAO3Z,QAAQ4G,QAAS,CAAC,IAAD,GACrBsa,EAAWta,KACdsa,EAAWta,GAAW,IACjBsa,EAAWta,GACd4B,aAAc,GACdjB,aAAa,EACbwC,gBAAgB,IAKpB,IAAIqX,EAA8B,GAClC,GAAIJ,GAAiBA,EAAcra,OAAS,GAC1C,IAAK,IAAIwX,KAAK6C,EACZ,IAAK7C,EAAEpW,WAAWC,cAAcnH,MAAM,KAAKoG,SAAS,QAAS,CAC3D,IAAIqW,EAAmBN,EACrBC,EADoC,OAEpChY,QAFoC,IAEpCA,OAFoC,EAEpCA,EAAWgB,WAFyB,OAGpChB,QAHoC,IAGpCA,OAHoC,EAGpCA,EAAWa,QAHyB,OAIpCb,QAJoC,IAIpCA,OAJoC,EAIpCA,EAAWsB,cACXK,EALoC,OAMpCuX,QANoC,IAMpCA,OANoC,EAMpCA,EAAGV,WANiC,OAOpCU,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAG9W,SAPiC,OAQpC8W,QARoC,IAQpCA,OARoC,EAQpCA,EAAG0B,WAELuB,EAAUva,KAAK,CACbQ,SAAU8W,EAAE9W,SAAW8W,EAAE9W,SAAW,GACpCU,WAAYoW,EAAEpW,WAAaoW,EAAEpW,WAAa,GAC1CrE,OAAQya,EAAEza,OAASya,EAAEza,OAAS,GAC9Buc,KAAM9B,EAAE8B,KAAOoB,OAAOlD,EAAE8B,MAAQ,EAChCqB,SAAUnD,EAAEoD,QACO,WAAfpD,EAAEqD,UAAwC,aAAfrD,EAAEqD,SAC3BrD,EAAEoD,QAAQ/Q,QAAQ,GAClB2N,EAAEoD,QACJ,KACJE,UAAWtD,EAAEuD,SACM,WAAfvD,EAAEqD,UAAwC,aAAfrD,EAAEqD,SAC3BrD,EAAEuD,SAASlR,QAAQ,GACnB2N,EAAEuD,SACJ,KACJC,QAASxD,EAAEyD,OAASzD,EAAEyD,OAAS,KAC/BC,SAAU1D,EAAE2D,QAAU3D,EAAE2D,QAAU,KAClCN,SAAU1E,EAAiBqB,EAAEqD,UAC7B7G,uBAC0B6C,IAAxBW,EAAExD,kBACEwD,EAAExD,kBACFwG,EAAa5d,IAAI4a,EAAE9W,UACzBwX,cACG,OAADV,QAAC,IAADA,OAAA,EAAAA,EAAGU,cAAH,OACIV,QADJ,IACIA,OADJ,EACIA,EAAGU,aACHH,EAASnb,IAAI4a,EAAE9W,UACrBiW,QAASA,UAIV,GAAI4D,EAAWta,GAAS4B,aAAc,CAC3C4Y,EAAYF,EAAWta,GAAS4B,aAChC,IAAK,IAAIuZ,KAAWX,EAClBW,EAAQre,OAAS,YACjBqe,EAAQzE,SAAU,EAyBtB,OArBA8D,EAAUnB,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACzB,IAETa,EAAWta,GAAS4B,aAAe4Y,EACnCF,EAAWta,GAASmD,eA7zBC,EAC7BkT,EACAhX,EACAH,EACAS,EACA2W,EACAC,EACA6E,KAEA,IAAIC,EACA1E,EAAML,OACV,GAAID,EAAkBM,GAAM,CAG1B,IAAIG,EAAkBT,EAAkBM,GACnCG,EAEMA,IACTuE,EAAevE,EAAgBJ,SAF/B2E,GAAe,OAKjBA,EAAeD,EACf/E,EAAkBM,GAAO,CACvBtX,WAAYA,EACZH,QAASA,EACTS,cAAeA,EACfK,QAASsW,EACTO,WAAYN,EACZ9V,SAAU,IACViW,QAAS0E,GAGb,OAAOC,GA6xBsCC,CACnCjF,EADyD,OAEzDhY,QAFyD,IAEzDA,OAFyD,EAEzDA,EAAWka,UAF8C,OAGzDla,QAHyD,IAGzDA,OAHyD,EAGzDA,EAAWa,QAH8C,OAIzDb,QAJyD,IAIzDA,OAJyD,EAIzDA,EAAWsB,cACXK,EACA,QANyD,WAOzDsa,EAAWta,UAP8C,cAOzD,GAAqBmD,gBAGhB,IACF2P,EACHwC,oBAAqBgF,EACrB3E,oBAAqBU,IAGzB,MAAOgC,IACP1a,QAAQD,MAAM,yBAA0B2a,IAI5C,KAAKzjB,IACH,IACE,MAAMyJ,EAAY0U,EAAO3Z,QACnB4G,EAAkB3B,EAAU2B,QAC5Bsa,EAAa,IAAKxH,EAAMwC,qBAC9B,IAAIe,EAA2C,IAAKvD,EAAM6C,qBAC1D,GAAI5C,EAAO3Z,QAAQ4G,QAAS,CAAC,IAAD,qBACrBsa,EAAWta,KACdsa,EAAWta,GAAW,IACjBsa,EAAWta,GACd0B,WAAY,GACZb,iBAAiB,IAKrB,MAAM0a,GACE,OAANxI,QAAM,IAANA,GAAA,WAAAA,EAAQ3Z,eAAR,iBAAiBqI,oBACjBoG,MAAMC,QAAN,OAAciL,QAAd,IAAcA,GAAd,WAAcA,EAAQ3Z,eAAtB,cAAc,GAAiBqI,mBAD/B,OAEIsR,QAFJ,IAEIA,GAFJ,WAEIA,EAAQ3Z,eAFZ,cAEI,GAAiBqI,kBACjB,QAACsR,QAAD,IAACA,GAAD,WAACA,EAAQ3Z,eAAT,cAAC,GAAiBqI,mBAGlBC,EAAa4Y,EAAWta,GAAS0B,WACjC8Z,EAAY,IAAIzD,IACtB,IAAID,EAAW,IAAIC,IACnB,IAAK,MAAM,SAAEtX,EAAF,kBAAYsT,EAAZ,aAA+BkE,KAAkBvW,OAChCkV,IAAtB7C,GACFyH,EAAUxD,IAAIvX,EAAUsT,GAE1B+D,EAASE,IAAIvX,EAAUwX,GAGzB,IAAIwD,EAAgC,GAGpC,IAFA,WAAInB,EAAWta,UAAf,mBAAI,GAAqB0B,kBAAzB,cAAI,GAAiC3B,UACnC0b,EAAa,WAAGnB,EAAWta,UAAd,cAAG,GAAqB0B,YACnC6Z,GAAqBA,EAAkBxb,OACzC,IAAK,IAAI2b,KAAMH,EAAmB,CAAC,IAAD,GAChC,IAAI7E,EAAmBN,EACrBC,EADoC,OAEpChY,QAFoC,IAEpCA,OAFoC,EAEpCA,EAAWgB,WAFyB,OAGpChB,QAHoC,IAGpCA,OAHoC,EAGpCA,EAAWa,QAHyB,OAIpCb,QAJoC,IAIpCA,OAJoC,EAIpCA,EAAWsB,cACXK,EALoC,OAMpC0b,QANoC,IAMpCA,OANoC,EAMpCA,EAAI7E,WANgC,OAOpC6E,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAIjb,SAPgC,OAQpCib,QARoC,IAQpCA,OARoC,EAQpCA,EAAIzC,WAEF0C,EAAkC,GACtC,IAAK,IAAIpC,KAAKmC,EAAGtD,QAAS,CAAC,IAAD,YACxBuD,EAAU1b,KAAK,CACbuY,SAAUe,EAAEf,SAAWe,EAAEf,SAAW,GACpCrC,WAAYoD,EAAEpD,WAAaoD,EAAEpD,WAAa,GAC1C0E,UAAS,WAAEtB,EAAEd,WAAW,UAAf,cAAE,GAAiBzC,MAC5BiF,SAAQ,WAAE1B,EAAEd,WAAW,UAAf,cAAE,GAAiBxC,KAC3ByE,SAAQ,WAAEnB,EAAEb,UAAU,UAAd,cAAE,GAAgB1C,MAC1B+E,QAAO,WAAExB,EAAEb,UAAU,UAAd,cAAE,GAAgBzC,KACzBnZ,OAAQyc,EAAEzc,OAASyc,EAAEzc,OAAS,GAC9Buc,KAAME,EAAEF,KAAOoB,OAAOlB,EAAEF,MAAQ,IAGpCsC,EAAUtC,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEd,SACViB,EAAQF,EAAEf,SAChB,OAAIgB,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEd,IAAI1S,GAAqB,QAAb,GAAA0U,SAAA,iBAAe1b,QACvB0b,EAAcG,UAAWC,GAAQA,EAAIpb,WAAaib,EAAGjb,WACpD,EACDsG,GAAS,EACX0U,EAAc1U,GAAS,CACrB2P,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAC2B6C,IAAzB8E,EAAG3H,kBACC2H,EAAG3H,kBACH0H,EAAc1U,GAAOgN,kBAC3BkE,aAAcyD,EAAGzD,aACfyD,EAAGzD,aACHwD,EAAc1U,GAAOkR,cAGzBwD,EAAcxb,KAAK,CACjByW,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAC2B6C,IAAzB8E,EAAG3H,kBACC2H,EAAG3H,kBACHyH,EAAU7e,IAAI+e,EAAGjb,UACvBwX,aAAcyD,EAAGzD,aACfyD,EAAGzD,aACHH,EAASnb,IAAI+e,EAAGjb,YAa1B,OATAgb,EAAcpC,KAAK,CAACC,EAAGC,KACrB,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEda,EAAWta,GAAS0B,WAAa+Z,EACjCnB,EAAWta,GAASa,gBAAkBkS,EAAO3Z,QAAQyH,gBAC9C,IACFiS,EACHwC,oBAAqBgF,EACrB3E,oBAAqBU,IAGzB,MAAOgC,IACP1a,QAAQD,MAAM,yBAA0B2a,IAK5C,KAAKhkB,IAA0B,CAC7B,MAAMgK,EAAY0U,EAAO3Z,QACnB4G,EAAkB3B,EAAU2B,QAC5Bsa,EAAa,IAAKxH,EAAMwC,qBAC9B,IAAIe,EAA2C,IAAKvD,EAAM6C,qBAG1D,GAAI5C,EAAO3Z,QAAQ4G,QAAS,CACrBsa,EAAWta,KACdsa,EAAWta,GAAW,CACpB0B,WAAY,GACZb,iBAAiB,EACjBe,aAAc,GACdjB,aAAa,EACbwC,gBAAgB,IAKpB,MAAMoY,EAAoBxI,EAAO3Z,QAAQqI,kBAGnCC,EAAa4Y,EAAWta,GAAS0B,WACjC8Z,EAAY,IAAIzD,IACtB,IAAID,EAAW,IAAIC,IACnB,IAAK,MAAM,SAAEtX,EAAF,kBAAYsT,EAAZ,aAA+BkE,KAAkBvW,OAChCkV,IAAtB7C,GACFyH,EAAUxD,IAAIvX,EAAUsT,GAEtBkE,GACFH,EAASE,IAAIvX,EAAUwX,GAI3B,IAAIwD,EAAgC,GACpC,GAAIF,GAAqBA,EAAkBxb,OACzC,IAAK,IAAI2b,KAAMH,EAAmB,CAChC,IAAII,EAAkC,GAClCjF,EAAmBN,EACrBC,EADoC,OAEpChY,QAFoC,IAEpCA,OAFoC,EAEpCA,EAAWgB,WAFyB,OAGpChB,QAHoC,IAGpCA,OAHoC,EAGpCA,EAAWa,QAHyB,OAIpCb,QAJoC,IAIpCA,OAJoC,EAIpCA,EAAWsB,cACXK,EALoC,OAMpC0b,QANoC,IAMpCA,OANoC,EAMpCA,EAAI7E,WANgC,OAOpC6E,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAIjb,SAPgC,OAQpCib,QARoC,IAQpCA,OARoC,EAQpCA,EAAIzC,WAEN,IAAK,IAAIM,KAAKmC,EAAGtD,QAAS,CAAC,IAAD,YACxBuD,EAAU1b,KAAK,CACbuY,SAAUe,EAAEf,SAAWe,EAAEf,SAAW,GACpCrC,WAAYoD,EAAEpD,WAAaoD,EAAEpD,WAAa,GAC1C0E,UAAS,WAAEtB,EAAEd,WAAW,UAAf,cAAE,GAAiBzC,MAC5BiF,SAAQ,WAAE1B,EAAEd,WAAW,UAAf,cAAE,GAAiBxC,KAC3ByE,SAAQ,WAAEnB,EAAEb,UAAU,UAAd,cAAE,GAAgB1C,MAC1B+E,QAAO,WAAExB,EAAEb,UAAU,UAAd,cAAE,GAAgBzC,KACzBnZ,OAAQyc,EAAEzc,OAASyc,EAAEzc,OAAS,GAC9Buc,KAAME,EAAEF,KAAOoB,OAAOlB,EAAEF,MAAQ,IAGpCsC,EAAUtC,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEd,SACViB,EAAQF,EAAEf,SAChB,OAAIgB,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEd,IAAI1S,GAAqB,OAAb0U,QAAa,IAAbA,OAAA,EAAAA,EAAe1b,QACvB0b,EAAcG,UAAWC,GAAQA,EAAIpb,WAAaib,EAAGjb,WACpD,EACDsG,GAAS,EACX0U,EAAc1U,GAAS,CACrB2P,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAC2B6C,IAAzB8E,EAAG3H,kBACC2H,EAAG3H,kBACH0H,EAAc1U,GAAOgN,kBAC3BkE,aACGyD,EAAGzD,aACAyD,EAAGzD,aACHwD,EAAc1U,GAAOkR,cAG7BwD,EAAcxb,KAAK,CACjByW,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAC2B6C,IAAzB8E,EAAG3H,kBACC2H,EAAG3H,kBACHyH,EAAU7e,IAAI+e,EAAGjb,UACvBwX,aACEyD,EAAGzD,aACCyD,EAAGzD,aACHH,EAASnb,IAAI+e,EAAGjb,YAI9Bgb,EAAcpC,KAAK,CAACC,EAAGC,KACrB,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEda,EAAWta,GAAS0B,WAAa+Z,EACjCnB,EAAWta,GAASa,gBAAkBkS,EAAO3Z,QAAQyH,gBAGrD,MAAMuZ,EAAgBrH,EAAO3Z,QAAQuI,gBAG/BC,EAAe0Y,EAAWta,GAAS4B,aACnC2Y,EAAe,IAAIxC,IAEzB,IAAK,MAAM,SAAEtX,EAAF,kBAAYsT,EAAZ,aAA+BkE,KAAkBrW,OAChCgV,IAAtB7C,GACFwG,EAAavC,IAAIvX,EAAUsT,GAE1BkE,GACDH,EAASE,IAAIvX,EAAUwX,GAI3B,IAAIuC,EAA8B,GAClC,GAAIJ,GAAiBA,EAAcra,OAAS,GAC1C,IAAK,IAAIwX,KAAK6C,EACZ,IAAK7C,EAAEpW,WAAWC,cAAcnH,MAAM,KAAKoG,SAAS,QAAS,CAC3D,IAAIqW,EAAmBN,EACrBC,EADoC,OAEpChY,QAFoC,IAEpCA,OAFoC,EAEpCA,EAAWgB,WAFyB,OAGpChB,QAHoC,IAGpCA,OAHoC,EAGpCA,EAAWa,QAHyB,OAIpCb,QAJoC,IAIpCA,OAJoC,EAIpCA,EAAWsB,cACXK,EALoC,OAMpCuX,QANoC,IAMpCA,OANoC,EAMpCA,EAAGV,WANiC,OAOpCU,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAG9W,SAPiC,OAQpC8W,QARoC,IAQpCA,OARoC,EAQpCA,EAAG0B,WAELuB,EAAUva,KAAK,IACVsX,EACH9W,SAAU8W,EAAE9W,SAAW8W,EAAE9W,SAAW,GACpCU,WAAYoW,EAAEpW,WAAaoW,EAAEpW,WAAa,GAC1CrE,OAAQya,EAAEza,OAASya,EAAEza,OAAS,GAC9Buc,KAAM9B,EAAE8B,KAAOoB,OAAOlD,EAAE8B,MAAQ,EAChCqB,SAAUnD,EAAEoD,QACO,WAAfpD,EAAEqD,UAAwC,aAAfrD,EAAEqD,SAC3BrD,EAAEoD,QAAQ/Q,QAAQ,GAClB2N,EAAEoD,QACJ,KACJE,UAAWtD,EAAEuD,SACM,WAAfvD,EAAEqD,UAAwC,aAAfrD,EAAEqD,SAC3BrD,EAAEuD,SAASlR,QAAQ,GACnB2N,EAAEuD,SACJ,KACJC,QAASxD,EAAEyD,OAASzD,EAAEyD,OAAS,KAC/BC,SAAU1D,EAAE2D,QAAU3D,EAAE2D,QAAU,KAClCN,SAAU1E,EAAiBqB,EAAEqD,UAC7B7G,uBAC0B6C,IAAxBW,EAAExD,kBACEwD,EAAExD,kBACFwG,EAAa5d,IAAI4a,EAAE9W,UACzBwX,aACEV,EAAEU,aACEV,EAAEU,aACFH,EAASnb,IAAI4a,EAAE9W,UACrBiW,QAASA,UAIV,GAAI4D,EAAWta,GAAS4B,aAAc,CAC3C4Y,EAAYF,EAAWta,GAAS4B,aAChC,IAAK,IAAIuZ,KAAWX,EAClBW,EAAQre,OAAS,YACjBqe,EAAQzE,SAAU,EAGtB8D,EAAUnB,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,GAAe,EAClBD,EAAQC,EAAc,EACnB,IAEda,EAAWta,GAAS4B,aAAe4Y,EACnCF,EAAWta,GAASW,YAAcoS,EAAO3Z,QAAQuH,YACjD2Z,EAAWta,GAASmD,eAAiB4P,EAAO3Z,QAAQ+J,eAGtD,MAAO,IACF2P,EACHwC,oBAAqBgF,EACrB3E,oBAAqBU,GAIzB,KAAK9hB,IAAoB,CACvB,MAAM2K,EAAU6T,EAAO3Z,QAAQ8F,QACzBS,EAAgBoT,EAAO3Z,QAAQuG,cAC/BK,EAAU+S,EAAO3Z,QAAQ4G,QAC/B,IAAIgC,EAAe+Q,EAAO3Z,QAAQ4I,aAC7BA,GAAgB8Q,EAAMsC,cAAcpI,KAAOhN,IAC9CgC,GAAe,GAGjB,MAAMiV,EAAY,IAAKnE,EAAMlT,QACvBkc,EAAgB,IAAKhJ,EAAMwC,qBAEjC,GAAI2B,EAAU/X,GAASS,GAAeK,GACpC,GAAIgC,EAAc,CAChB,MAAM9B,EAAQ+W,EAAU/X,GAASS,GAAeK,GAChD,IAAK,IAAI+b,KAAT,WAAmB7b,EAAMc,iBAAzB,cAAmB,GAAiBoX,QAAS,CAAC,IAAD,GAC3C2D,EAAOjf,OAAS,YAElBma,EAAU/X,GAASS,GAAeK,GAAWE,cAEtC+W,EAAU/X,GAASS,GAAeK,GAE7C,GAAI8b,EAAc9b,GAChB,GAAIgC,EAAc,CAChB,MAAMga,EAAaF,EAAc9b,GACjC,IAAK,IAAIic,KAAT,OAAsBD,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAYta,WAChC,IAAK,IAAIqa,KAAUE,EAAU7D,QAC3B2D,EAAOlB,UAAY,IACnBkB,EAAOd,SAAW,IAClBc,EAAOrB,SAAW,IAClBqB,EAAOhB,QAAU,IAGrB,IAAK,IAAImB,KAAT,OAAwBF,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAYpa,aAClCsa,EAAYpf,OAAS,YAEvBgf,EAAc9b,GAAWgc,cAElBF,EAAc9b,GAGzB,MAAO,IACF8S,EACHlT,OAAQqX,EACR3B,oBAAqBwG,GAIzB,KAAK7nB,IAA2B,CAE9B,MAAMkoB,EAAkB,IAAKrJ,EAAMyC,mBAE7BoB,EAAM5D,EAAO3Z,QAAQ4G,QACrB3B,EAAY0U,EAAO3Z,QAAQgjB,KAEjC,GAAID,EAAgBxF,IAEhBwF,EAAgBxF,GAAKnY,SACrB2d,EAAgBxF,GAAKnY,QAAQwC,UAAUjB,OAAS,EAEhD,IAAK,IAAIsc,KAAT,OAAmBhe,QAAnB,IAAmBA,GAAnB,WAAmBA,EAAWG,eAA9B,cAAmB,GAAoBwC,UAAW,CAAC,IAAD,GAChD,MAAM+F,EAAQoV,EAAgBxF,GAAKnY,QAAQwC,UAAU4a,UAClDU,GAAMA,EAAE7b,WAAa4b,EAAO5b,WAGhB,IAAXsG,IACFoV,EAAgBxF,GAAKnY,QAAQwC,UAAU+F,GAASsV,GAMxD,MAAO,IACFvJ,EACHyC,kBAAmB4G,GAIvB,KAAKnoB,IACH,MAAO,IACF8e,EACHsC,cAAerC,EAAO3Z,SAI1B,KAAKhF,IACH,MAAO,IACF0e,EACHlT,OAAQ,IAIZ,KAAKpL,IACH,MAAO,IACFse,EACH0C,UAAWzC,EAAO3Z,SAItB,KAAK3E,IACH,MAAO,IACFqe,EACH2C,cAAe1C,EAAO3Z,SAG1B,KAAK1E,IAAwB,CAC3B,MAAM2J,EAAY0U,EAAO3Z,QAAQiF,UAC3BkX,EAAoB,IAAKzC,EAAMyC,mBAErC,OADAA,EAAkBxC,EAAO3Z,QAAQ4G,SAAW3B,EACrC,IACFyU,EACHyC,kBAAmBA,GAGvB,KAAKjgB,IACH,MAAO,IACFwd,EACHtO,mBAAoBuO,EAAO3Z,SAE7B,KAAK/D,IACL,MAAO,IACFyd,EACHpO,uBAAwBqO,EAAO3Z,SAEjC,KAAKhE,IACL,MAAO,IACF0d,EACHlO,iBAAkBmO,EAAO3Z,SAE7B,QACE,OAAO0Z,I,OC94CN,MAAMyJ,EAAmB,CAC9B,CAAErT,MAAO,MAAOC,MAAO,KACvB,CAAED,MAAO,MAAOC,MAAO,KACvB,CAAED,MAAO,QAASC,MAAO,KACzB,CAAED,MAAO,QAASC,MAAO,KACzB,CAAED,MAAO,SAAUC,MAAO,KAC1B,CAAED,MAAO,SAAUC,MAAO,KAC1B,CAAED,MAAO,WAAYC,MAAO,KAC5B,CAAED,MAAO,WAAYC,MAAO,KAC5B,CAAED,MAAO,YAAaC,MAAO,MCsBzBsI,EAA0B,CAC9B+K,KAAM,GACNjV,SAAU,GACVF,YAAa,EACbgC,gBAAiBkT,EACjBE,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAgB,EAChBC,kBAAmB,MAqQNC,MAlQY,CACzB/J,EAAQrB,EACRsB,KAEA,OAAQA,EAAO/Z,MACb,KAAKrD,IAEH,IAD0Bmd,EAAM2J,kBACR,CACtB,MAAMD,EAAO,IAAI1J,EAAM0J,MAEvB,OADAA,EAAKvc,KAAK8S,EAAO3Z,SACV,IACF0Z,EACH0J,QAGJ,MAAO,IACF1J,GAGP,KAAK/c,IAAsB,CAAC,IAAD,EACzB,MAAMymB,EAAO,IAAI1J,EAAM0J,MACY,IAAD,EAAlC,GAAIA,EAAI,OAACzJ,QAAD,IAACA,GAAD,UAACA,EAAQ3Z,eAAT,aAAC,EAAiB2N,OACxByV,EAAI,OAACzJ,QAAD,IAACA,GAAD,UAACA,EAAQ3Z,eAAT,aAAC,EAAiB2N,OAAO0B,SAAWsK,EAAO3Z,QAAQ+N,KACnD4L,EAAO3Z,QAAQ+N,KACf,KAMN,MAAO,IACF2L,EACH0J,QAGJ,KAAK5mB,IAAiB,CACpB,MAAM4mB,EAAO,IAAI1J,EAAM0J,MAGvB,OAFAA,EAAKM,OAAO/J,EAAO3Z,QAAQ2N,MAAO,GAE3B,IACF+L,EACH0J,QAGJ,KAAK3mB,IAAoB,CACvB,MAAM2mB,EAAO,IAAI1J,EAAM0J,MAWvB,MAV4B,QAAxBzJ,EAAO3Z,QAAQJ,KACjBwjB,EAAKzJ,EAAO3Z,QAAQ2N,OAAOE,QAAU8V,KAAKC,MAAMjK,EAAO3Z,QAAQ6N,QAC9B,QAAxB8L,EAAO3Z,QAAQJ,OACxBwjB,EAAKzJ,EAAO3Z,QAAQ2N,OAAOE,OAAS8V,KAAKC,MAAMjK,EAAO3Z,QAAQ6N,SAG5DgW,MAAMT,EAAKzJ,EAAO3Z,QAAQ2N,OAAOE,UACnCuV,EAAKzJ,EAAO3Z,QAAQ2N,OAAOE,OAAS,GAG/B,IACF6L,EACH0J,QAGJ,KAAK1mB,IAEH,OAD0Bgd,EAAM2J,kBAOzB,IACF3J,GANI,IACFA,EACH0J,KAAM,IAOZ,KAAKrmB,IAAsB,CACzB,MAAM6S,EAAU+J,EAAO3Z,QACvB,MAAO,IACF0Z,EACHzJ,gBAAiBL,EAAQjJ,OAAS,EAAIiJ,EAAUuT,GAIpD,KAAKvmB,IAAyB,CAC5B,MAAMuR,EAAWwL,EAAO3Z,QAAU2Z,EAAO3Z,QAAQ+F,OAAS,GACpDkI,EAAc0L,EAAO3Z,QAAU2Z,EAAO3Z,QAAQiO,YAAc,EAElE,MAAO,IACFyL,EACHvL,SAAUA,EACVF,YAAaA,GAIjB,KAAKhR,IAAoB,CACvB,IAAIkR,EAAW,IAAIuL,EAAMvL,UACzB,GAAIA,IAAoB,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAUxH,QAAS,EACjC,IAAK,IAAImd,KAAO3V,EACd,GAAI2V,EAAIC,QAAUpK,EAAO3Z,QAAQ+jB,OAASD,EAAIE,UAAW,CACvD,MAAMrW,EAAQ8C,YAAkBtC,EAAUwL,EAAO3Z,QAAQ+jB,OACrDpW,GAAS,GACXQ,EAASuV,OAAO/V,EAAO,GAM/B,MAAO,IACF+L,EACHvL,SAAUA,GAId,KAAKtR,IAAe,CAClB,MAAMsR,EAAWwL,EAAO3Z,QAAU2Z,EAAO3Z,QAAU,GAE7CikB,EADS,IAAIvK,EAAMvL,UACElD,OAAOkD,GAClC,MAAO,IACFuL,EACHvL,SAAU8V,GAId,KAAKjnB,IACH,MAAO,IACF0c,EACH2J,kBAAmB1J,EAAO3Z,SAG9B,KAAK9C,IACH,MAAO,IACFwc,EACH4J,iBAAkB3J,EAAO3Z,SAG7B,KAAK7C,IACH,MAAO,IACFuc,EACH6J,eAAgB5J,EAAO3Z,SAI3B,KAAK5C,IAAiB,CAAC,IAAD,EACpB,MAAMwJ,EAAkB+S,EAAO3Z,QAAQ4G,QACjCwc,EAAI,OAAG1J,QAAH,IAAGA,OAAH,EAAGA,EAAO0J,KACdxb,EAAY+R,EAAO3Z,QAAQ4H,UACjC,IAAIsc,GAAgB,EAEpB,UAAIvK,QAAJ,IAAIA,GAAJ,UAAIA,EAAQ3Z,eAAZ,aAAI,EAAiB4H,UACnB,IAAK,IAAIkc,KAAOV,EACd,GACsB,QAAjB,OAAHU,QAAG,IAAHA,OAAA,EAAAA,EAAKrG,cACF,OAAHqG,QAAG,IAAHA,OAAA,EAAAA,EAAKld,WAAYA,IACd,OAAHkd,QAAG,IAAHA,OAAA,EAAAA,EAAKzc,YAAaO,EAAUP,SAE5B,IAAK,IAAIS,KAAMF,EAAUoX,QAAS,CAGP,IAAD,QA2BD,IA7BvB,GAAIlX,EAAGsX,WAAa0E,EAAIrU,UACtB,GAAoB,SAAhBqU,EAAItU,SACN,UAAI1H,QAAJ,IAAIA,OAAJ,EAAIA,EAAIuX,WACN9a,QAAQC,IAAIsD,EAAGuX,YACf9a,QAAQC,IACNsD,EAAGuX,WAAWvX,EAAGuX,WAAW1Y,OAAS,GAAGiW,MACxC,KACA9U,EAAGuX,WAAW,GAAGzC,MACjB,KACA9U,EAAGuX,WAAW,GAAGzC,MACjB,IACAkH,EAAIzU,UAEN9K,QAAQC,KACN,UAAAsD,EAAGuX,WAAWvX,EAAGuX,WAAW8E,OAAS,UAArC,eAAyCvH,QACvCkH,EAAIzU,UAAYyU,EAAIzU,WAAJ,UAAgBvH,EAAGuX,WAAW,UAA9B,aAAgB,EAAkBzC,QAQpDsH,KAJA,UAAApc,EAAGuX,WAAWvX,EAAGuX,WAAW8E,OAAS,UAArC,eAAyCvH,QACvCkH,EAAIzU,UACNyU,EAAIzU,WAAJ,UAAgBvH,EAAGuX,WAAW,UAA9B,aAAgB,EAAkBzC,aAQtC,UAAI9U,QAAJ,IAAIA,OAAJ,EAAIA,EAAIwX,WAEJ,UAAAxX,EAAGwX,UAAU,UAAb,eAAiB1C,QAASkH,EAAIzU,UAC9ByU,EAAIzU,WAAJ,UACEvH,EAAGwX,UAAUxX,EAAGwX,UAAU6E,OAAS,UADrC,aACE,EAAuCvH,QAEzCrY,QAAQC,IACNsD,EAAGwX,UAAUxX,EAAGwX,UAAU6E,OAAS,GAAGvH,MACtC9U,EAAGwX,UAAU,GAAG1C,MAChB9U,EAAGwX,UAAU,GAAG1C,MAChB,IACAkH,EAAIzU,UAGN6U,GAAgB,GAEhBA,GAAgB,EAUhC,MAAO,IACFxK,GAKP,KAAK5c,IAQH,MAAO,IACF4c,EACH0J,KAAM,IAIV,KAAK/lB,IACH,MAAO,IACFqc,GAKP,KAAKnc,IACL,KAAKC,IACL,KAAKC,IACH,MAAO,IACFic,EACH8J,kBAAmB7J,EAAO3Z,SAI9B,KAAKtC,IACH,MAAO,IACFgc,EACH8J,kBAAmB,MAIvB,QACE,OAAO9J,I,QC1Rb,MAAM0K,EAAkC,CACtCC,YAAa,GACbC,aAAc,CAAE1Q,GAAI,GAAIoE,KAAM,IAC9BuM,SAAU,CACRC,MAAO,GACPxV,IAAK,GACLyV,aAAc,GACdC,iBAAkB,IAEpBC,YAAa,IAoDAC,MAjDa,CAC1BlL,EAAQ0K,EACRzK,KAEA,OAAQA,EAAO/Z,MACb,KAAKilB,IACH,MAAO,IACFnL,EACH2K,YAAa1K,EAAO3Z,SAGxB,KAAK8kB,IACH,MAAO,IACFpL,EACH4K,aAAc3K,EAAO3Z,QACrBukB,SAAU,CACRC,MAAO,GACPxV,IAAK,GACLyV,aAAc,GACdC,iBAAkB,KAIxB,KAAKK,IAAkB,CACrB,MAAMC,EAAS,IAAKtL,EAAM6K,UACpBU,EAAQ,CACZT,MAAO7K,EAAO3Z,QAAQwkB,MACtBxV,IAA4B,MAAvB2K,EAAO3Z,QAAQgP,IAAc2K,EAAO3Z,QAAQgP,IAAMgW,EAAOhW,IAC9DyV,aAAc9K,EAAO3Z,QAAQykB,aAC7BC,iBAAkB/K,EAAO3Z,QAAQ0kB,kBAEnC,MAAO,IACFhL,EACH6K,SAAUU,GAId,KAAKC,IACH,MAAO,IACFxL,EACHiL,YAAahL,EAAO3Z,SAIxB,QACE,OAAO0Z,I,QCzCb,MAAMrB,EAAe,CACnB8M,gBAAiB,GACjBC,2BAA4B,GAC5BC,yBAA0B,GAC1B9I,oBAAqB,GACrB5R,oBAAqB,KACrBO,mBAAoB,KACpBsR,iBAAkB,MAGdC,EAAmBC,IACvB,IAAIC,EAAgC,GACpC,IAAU,OAAND,QAAM,IAANA,OAAA,EAAAA,EAAQ/V,QAAS,EACnB,IAAK,IAAIiK,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB8L,EAAO9L,GAAI+L,EAAU9V,KAAK6V,EAAO9L,IAChC+L,EAAU9V,KAAK,CAAE+V,MAAO,KAAMC,KAAM,OAG7C,OAAOF,GAMHK,EAAkB,CACtBC,EACAhX,EACAH,EACAS,EACA2W,EACAC,EACAC,EACAC,KAEA,IAAIC,EACAC,EAAML,EAAa,IAAME,EAG7B,QAAoBI,IAAhBH,EACFC,EAAUD,EACVJ,EAAkBM,GAAO,CACvBtX,WAAYA,EACZH,QAASA,EACTS,cAAeA,EACfK,QAASsW,EACTO,WAAYN,EACZ9V,SAAU+V,EACVE,QAASD,OAEN,CAGL,IAAIK,EAAkBT,EAAkBM,GACnCG,EAEMA,IACTJ,EAAUI,EAAgBJ,SAF1BA,GAAU,EAMd,OAAOA,GA4xBMgI,MAzxBY,CAAC5L,EAAQrB,EAAcsB,KAChD,OAAQA,EAAO/Z,MAEb,KAAKiM,IAAyB,CAC5B,IAAI6R,EAAsC/D,EAAO3Z,QAC7C4d,EAAgD,IAAKlE,EAAM6C,qBAC/D,MAAMzW,EAAU4X,EAAgB5X,QAC1BS,EAAgBmX,EAAgBnX,cAChCK,EAAU8W,EAAgB9W,QAC1B6W,EAAaC,EAAgBD,WAC7BpW,EAAWqW,EAAgBrW,SAKjC,OAHAuW,EADYhX,EAAU,IAAMS,GACEqW,EAGtBD,GACN,IAAK,aAAc,CAEjB,MAAMI,EAAY,IAAKnE,EAAMyL,iBAC7B,GAAIve,GAAWiX,EAAU,GAAD,OAAI/X,EAAJ,YAAeS,EAAf,YAAgCK,IAAW,CAAC,IAAD,EACjE,IAAIkX,EAAe,UAAGD,EAAU,GAAD,OAAI/X,EAAJ,YAAeS,EAAf,YAAgCK,WAA5C,aAAG,EAAqDgB,UACvEkW,EAAgBzW,WAAaA,IAC/ByW,EAAgBR,QAAUI,EAAgBJ,SAK9C,MAAMS,EAAqB,IAAKrE,EAAM0L,4BACtC,GAAIrH,EAAmB,GAAD,OAAIjY,EAAJ,YAAeS,EAAf,YAAgCK,EAAhC,YAA2CS,IAAa,CACtD0W,EAAmB,GAAD,OAAIjY,EAAJ,YAAeS,EAAf,YAAgCK,EAAhC,YAA2CS,IACnEiW,QAAUI,EAAgBJ,QAG5C,MAAO,IACF5D,EACHyL,gBAAiBtH,EACjBuH,2BAA4BrH,EAC5BxB,oBAAqBqB,GAGzB,IAAK,YAAa,CAEhB,MAAMsD,EAAa,IAAKxH,EAAM2L,0BAC9B,GAAInE,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAY,CAAC,IAAD,EACxD,IAAIoX,EAAgB,UAAGkD,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,WAA7C,aAAG,EAAsD0B,WAC7E,GAAI0V,GAAoBA,EAAiBrX,OACvC,IAAK,IAAIsX,KAAMD,EACTC,EAAG5W,WAAaA,IAAU4W,EAAGX,QAAUI,EAAgBJ,SAIjE,MAAO,IACF5D,EACH2L,yBAA0BnE,EAC1B3E,oBAAqBqB,GAGzB,QACErZ,QAAQC,IAAI,oDAAqDiZ,GAGrE,MAAO,IACF/D,EACH6C,oBAAqBqB,GAIzB,KAAK9R,IAA0B,CAC7B,IAAIsS,EAAwCzE,EAAO3Z,QACnD,MAAMyd,EAAaW,EAAiBX,WAC9BpW,EAAW+W,EAAiB/W,SAClC,IAAI6U,EAAsB,IAAKxC,EAAM2L,0BACjCnH,EAAmBhC,EAAoB,GAAD,OAAIkC,EAAiBtY,QAArB,YAAgCsY,EAAiB7X,cAAjD,YAAkE6X,EAAiBxX,UAG7H,OAAQ6W,GACN,IAAK,YAAa,CAEhB,IAAInV,EAAU,OAAG4V,QAAH,IAAGA,OAAH,EAAGA,EAAkB5V,WACnC,GAAIA,GAAcA,EAAW3B,OAC3B,IAAK,IAAIsX,KAAM3V,EACT2V,EAAG5W,WAAaA,IAAU4W,EAAGtD,kBAAoByD,EAAiBxR,YAG1E,MAEF,QACErI,QAAQC,IAAI,uDAAwDiZ,GAGxE,MAAO,IACF/D,EACHwC,oBAAqBA,GAIzB,KAAKzQ,IAA4B,CAC/B,MAAM,QAAE3F,EAAF,cAAWS,EAAX,QAA0BK,EAA1B,UAAmC3B,GAAc0U,EAAO3Z,QAC9D,IAAIyD,EAAO,IAAKiW,EAAMyL,iBAElBlI,EAA2C,IAAKvD,EAAM6C,qBAE1D,GAAI5C,EAAO3Z,QAAQiF,UAAW,CAC5B,IAAI6B,EACA4X,EAAW,IAAIC,IACkC,IAAD,MAApD,GAAIlb,EAAK,GAAD,OAAIqC,EAAJ,YAAeS,EAAf,YAAgCK,IACtCE,EAAQ,IAAKrD,EAAK,GAAD,OAAIqC,EAAJ,YAAeS,EAAf,YAAgCK,KACjD8X,EAASE,IAAT,UACEnb,EAAK,GAAD,OAAIqC,EAAJ,YAAeS,EAAf,YAAgCK,WADtC,aACE,EAAgDgB,UAAUP,SAD5D,UAEE5D,EAAK,GAAD,OAAIqC,EAAJ,YAAeS,EAAf,YAAgCK,WAFtC,iBAEE,EAAgDgB,iBAFlD,aAEE,EACIiX,mBAED/X,EAAQ,IAAK6S,EAAO3Z,QAAQiF,WAEnC,GAAI6B,GAASA,EAAMF,SAA6B,cAAlBE,EAAMF,QAAyB,CAAC,IAAD,gBAC3D,IAAIkY,EAAWhY,EAAMgY,SAAWhY,EAAMgY,SAAW,GAC7CC,EAAWjY,EAAMiY,SAAWjY,EAAMiY,SAAW,GAM9C,IAAD,IALF,GACe,KAAbD,GACa,KAAbC,KACC,UAAAjY,EAAMM,iBAAN,eAAiBY,cAAcf,SAAS,UAAxC,UACCH,EAAMM,iBADP,aACC,EAAiBY,cAAcf,SAAS,UAE1C6X,GAAW,UAAAhY,EAAMM,iBAAN,eAAiBY,cAAcf,SAAS,QAC/CH,EAAMM,UAAUvG,MAAM,OAAO,GAAG4d,OAChC3X,EAAMM,UAAUH,SAAS,QACvBH,EAAMM,UAAUvG,MAAM,QAAQ,GAAG4d,OACjC3X,EAAMM,UAAUvG,MAAM,QAAQ,GAAG4d,OACvCM,GAAW,UAAAjY,EAAMM,iBAAN,eAAiBY,cAAcf,SAAS,QAC/CH,EAAMM,UAAUvG,MAAM,OAAO,GAAG4d,OAAO5d,MAAM,OAAO,GACpDiG,EAAMM,UAAUH,SAAS,QACvBH,EAAMM,UAAUvG,MAAM,QAAQ,GAAG4d,OAAO5d,MAAM,OAAO,GACrDiG,EAAMM,UAAUH,SAAS,MACvBH,EAAMM,UAAUvG,MAAM,QAAQ,GAAG4d,OAAO5d,MAAM,OAAO,GACrDiG,EAAMM,UAAUvG,MAAM,QAAQ,GAAG4d,OAAO5d,MAAM,OAAO,GAI/D,MAAM8G,EAAgBgS,EAAO3Z,QAAQ2H,cAC/BqX,EAAgC,GACtC,IAAI1B,EAAmBN,EACrBC,EADoC,UAEpCnW,SAFoC,aAEpC,EAAOb,WAF6B,UAGpCa,SAHoC,aAGpC,EAAOhB,QAH6B,UAIpCgB,SAJoC,aAIpC,EAAOP,cAJ6B,UAKpCO,SALoC,aAKpC,EAAOF,QAL6B,UAMpCE,SANoC,aAMpC,EAAO2W,WAN6B,UAOpC3W,SAPoC,aAOpC,EAAOO,SAP6B,OAQpCM,QARoC,IAQpCA,OARoC,EAQpCA,EAAekY,WAEjB,GAAIlY,EAAe,CAAC,IAAD,IACjB,GAAIA,EAAcqX,SAAWrX,EAAcqX,QAAQrY,OAAS,EAAG,CAC7D,IAAIiK,EAAI,EACR,IAAK,IAAIqO,KAAKtX,EAAcqX,QAC1B,GAAIC,EAAG,CACL,IAAIlC,EAAakC,EAAElC,WAAakC,EAAElC,WAAakC,EAAEC,gBAC9B1B,IAAfT,IACFA,EAAa,IAGVA,EAAW/U,cAAcf,SAAS,SAAiB,IAAN2J,IAC7B,KAAfmM,EACFA,EAAa+B,EACJ/B,IAAegC,IACxBD,EAAW/B,IAIVA,EAAW/U,cAAcf,SAAS,SAAiB,IAAN2J,IAC7B,KAAfmM,EACFA,EAAagC,EACJhC,IAAe+B,IACxBC,EAAWhC,IAIfnM,GAAK,EACLoO,EAAQnY,KAAK,CACXuY,UAAUH,EAAEG,SAAWH,EAAEG,UACzBrC,WAAYA,EACZsC,WAAY5C,EAAgBwC,EAAEI,YAC9BC,UAAW7C,EAAgBwC,EAAEK,WAC7B5b,OAAQub,EAAEvb,OAEV6b,YAAW,OAAEN,QAAF,IAAEA,OAAF,EAAEA,EAAGM,YAChBC,WAAU,OAAEP,QAAF,IAAEA,OAAF,EAAEA,EAAGO,WACfC,UAAS,OAAER,QAAF,IAAEA,OAAF,EAAEA,EAAGQ,UACdC,WAAU,OAAET,QAAF,IAAEA,OAAF,EAAEA,EAAGS,WACfC,UAAS,OAAEV,QAAF,IAAEA,OAAF,EAAEA,EAAGU,UACdC,YAAW,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAAGW,eAKxB,MAAME,EAAO,UAAGhZ,SAAH,iBAAG,EAAOc,iBAAV,aAAG,EAAkBmY,OAClCjZ,EAAMc,UAAY,CAChBP,SAAUM,EAAcN,SAAWM,EAAcN,SAAW,GAC5DU,WAAYJ,EAAcI,WACtBJ,EAAcI,WACd,GAEJrE,OAAQiE,EAAcjE,OAASiE,EAAcjE,OAAS,GACtDsb,QAASA,EACTe,OAAQpY,EAAcoY,OAAd,OAAuBpY,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAeoY,OAASD,EACvDjB,cAA2B,OAAblX,QAAa,IAAbA,OAAA,EAAAA,EAAekX,cAAf,OACVlX,QADU,IACVA,OADU,EACVA,EAAekX,aACfH,EAASnb,IAAT,OAAaoE,QAAb,IAAaA,OAAb,EAAaA,EAAeN,UAChCiW,QAASA,OAEN,CACL,IAAI1V,EAAYd,EAAMc,UAEpBd,EAAMc,UADJA,EACgB,CAChBP,SAAQ,OAAEO,QAAF,IAAEA,OAAF,EAAEA,EAAWP,SACrBU,WAAU,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAWG,WAEvBrE,OAAQ,YACRsb,QAAO,OAAEpX,QAAF,IAAEA,OAAF,EAAEA,EAAWoX,QACpBe,OAAM,OAAEpY,QAAF,IAAEA,OAAF,EAAEA,EAAeoY,OACvBlB,cAAuB,OAATjX,QAAS,IAATA,OAAA,EAAAA,EAAWiX,cAAX,OACVjX,QADU,IACVA,OADU,EACVA,EAAWiX,aACXH,EAASnb,IAAT,OAAaqE,QAAb,IAAaA,OAAb,EAAaA,EAAWP,UAC5BiW,SAAS,GAGO,CAChBjW,SAAU,GACVU,WAAY,GAEZrE,OAAQ,YACRsb,QAAS,GACTe,OAAQ,KACRzC,SAAS,GAKfxW,EAAMgY,SAAWA,EACjBhY,EAAMiY,SAAWA,EACjBjY,EAAMwZ,UAAYxZ,EAAMwZ,UACpBxZ,EAAMwZ,UACNxZ,EAAMM,UACJN,EAAMM,UACLY,cACA5E,QAAQ,aAAc,KACtBA,QAAQ,MAAO,KACfqb,OACA5d,MAAM,KACN8I,KAAK,KACN,GAENlG,EAAK,GAAD,OAAIqC,EAAJ,YAAeS,EAAf,YAAgCK,IAAaE,GAGrD,MAAO,IACF4S,EACHyL,gBAAiB1hB,EACjB8Y,oBAAqBU,GAIzB,KAAKvR,IAAsC,CACzC,MAAM,QAAE5F,EAAF,cAAWS,EAAX,QAA0BK,GAAY+S,EAAO3Z,QAC7CkhB,EAAa,IAAKxH,EAAM2L,0BAC9B,IAAIpI,EAA2C,IAAKvD,EAAM6C,qBAG1D,GAAI5C,EAAO3Z,QAAQ4G,QAAS,CAAC,IAAD,EACrBsa,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,MAC7Csa,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAa,CACrD0B,WAAY,GACZb,iBAAiB,EACjBe,aAAc,GACdjB,aAAa,IAKjB,MAAM4a,EAAoBxI,EAAO3Z,QAAQqI,kBACzC,IAAIga,EAAgC,GACpC,GAAIF,GAAqBA,EAAkBxb,OAAS,EAClD,IAAK,IAAI2b,KAAMH,EAAmB,CAChC,IAAII,EAAkC,GAClCjF,EAAmBN,EACrBC,EACA,IACAnX,EACAS,EACAK,EALoC,OAMpC0b,QANoC,IAMpCA,OANoC,EAMpCA,EAAI7E,WANgC,OAOpC6E,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAIjb,SAPgC,OAQpCib,QARoC,IAQpCA,OARoC,EAQpCA,EAAIzC,WAEN,IAAK,IAAIM,KAAKmC,EAAGtD,QAAS,CAAC,IAAD,QACxBuD,EAAU1b,KAAK,CACbuY,SAAUe,EAAEf,SAAWe,EAAEf,SAAW,GACpCrC,WAAYoD,EAAEpD,WAAaoD,EAAEpD,WAAa,GAC1C0E,UAAS,UAAEtB,EAAEd,WAAW,UAAf,aAAE,EAAiBzC,MAC5BiF,SAAQ,UAAE1B,EAAEd,WAAW,UAAf,aAAE,EAAiBxC,KAC3ByE,SAAQ,UAAEnB,EAAEb,UAAU,UAAd,aAAE,EAAgB1C,MAC1B+E,QAAO,UAAExB,EAAEb,UAAU,UAAd,aAAE,EAAgBzC,KACzBnZ,OAAQyc,EAAEzc,OAASyc,EAAEzc,OAAS,GAC9Buc,KAAME,EAAEF,KAAOoB,OAAOlB,EAAEF,MAAQ,IAGpCsC,EAAUtC,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEd,SACViB,EAAQF,EAAEf,SAChB,OAAIgB,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEdgC,EAAcxb,KAAK,CACjByW,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAA4C6C,IAAzB8E,EAAG3H,mBAAkC2H,EAAG3H,kBAC3DkE,aAAY,OAAEyD,QAAF,IAAEA,OAAF,EAAEA,EAAIzD,oBAGjB,aAAIqC,EAAWta,UAAf,aAAI,EAAqB0B,WAAW,GAAI,CAAC,IAAD,EAC7C+Z,EAAa,UAAGnB,EAAWta,UAAd,aAAG,EAAqB0B,WACrC,IAAK,IAAI2V,KAAMoE,EAAe,CAC5BpE,EAAGX,SAAU,EACb,IAAK,IAAIgF,KAAMrE,EAAGe,QAChBsD,EAAGb,UAAY,IACfa,EAAGhB,SAAW,KAIpBe,EAAcpC,KAAK,CAACC,EAAGC,KACrB,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEda,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAW0B,WACnD+Z,EACFnB,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAWa,gBACnDkS,EAAO3Z,QAAQyH,gBA0CnB,MAAO,IACFiS,EACH2L,yBAA0BnE,EAC1B3E,oBAAqBU,GAKzB,KAAKtR,IAAyC,CAAC,IAAD,QAC5C,MAAM,QAAE7F,EAAF,cAAWS,EAAX,QAA0BK,GAAY+S,EAAO3Z,QAC7CqH,EAAmBsS,EAAO3Z,QAAQqH,SAClC0W,EAAqB,IAAKrE,EAAM0L,4BAChCzd,EAAa,OAAGgS,QAAH,IAAGA,GAAH,UAAGA,EAAQ3Z,eAAX,aAAG,EAAiB2H,cACvC,IAAIsV,EAA2C,IAAKvD,EAAM6C,qBAEtDyC,EAAgC,GAChC6B,GAAoC,UAAA9C,EAAmB,GAAD,OACrDjY,EADqD,YAC1CS,EAD0C,YACzBK,EADyB,YACdS,WADJ,mBAErC2X,eAFqC,eAE5BrY,QACR,IACA,UAAGoX,EAAmB,GAAD,OAChBjY,EADgB,YACLS,EADK,YACYK,EADZ,YACuBS,WAD5C,aAAG,EAEA2X,SAEH,GACJ,GAAIrX,EAAe,CAAC,IAAD,MACjB,IAAI2V,EAAmBN,EACrBC,EACA,IACAnX,EACAS,EACAK,EALoC,OAMpCe,QANoC,IAMpCA,OANoC,EAMpCA,EAAe8V,WANqB,OAOpC9V,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAeN,SAPqB,OAQpCM,QARoC,IAQpCA,OARoC,EAQpCA,EAAekY,WAEjB,IAAiB,OAAblY,QAAa,IAAbA,OAAA,EAAAA,EAAeqX,WAAwB,OAAbrX,QAAa,IAAbA,GAAA,UAAAA,EAAeqX,eAAf,eAAwBrY,QAAS,EAAG,CAChE,IAAIlD,EAAY,GAChB,IAAK,IAAIwb,KAAKtX,EAAcqX,QAAS,CAC3B,IAAD,wBAAP,GAAIC,EACFxb,EAAI,OAAGod,QAAH,IAAGA,OAAH,EAAGA,EAAahZ,KACjBiZ,IAAa,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM1B,aAAN,OAAmBH,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAGG,WAElCJ,EAAQnY,KAAK,CACXuY,SAAQ,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAGG,SACbrC,WAAU,OAAEkC,QAAF,IAAEA,OAAF,EAAEA,EAAGlC,WACfsC,WAAY5C,EAAgBwC,EAAEI,YAC9BC,UAAW7C,EAAgBwC,EAAEK,WAC7B5b,OAAM,OAAEub,QAAF,IAAEA,OAAF,EAAEA,EAAGvb,OACX6b,aAAc,OAADN,QAAC,IAADA,OAAA,EAAAA,EAAGM,aAAH,OACTN,QADS,IACTA,OADS,EACTA,EAAGM,YADM,oBAET9b,SAFS,aAET,EAAM8b,mBAFG,QAEY,GACzBC,YAAa,OAADP,QAAC,IAADA,OAAA,EAAAA,EAAGO,YAAH,OACRP,QADQ,IACRA,OADQ,EACRA,EAAGO,WADK,oBAER/b,SAFQ,aAER,EAAM+b,kBAFE,QAEY,GACxBC,WAAY,OAADR,QAAC,IAADA,OAAA,EAAAA,EAAGQ,WAAH,OAAeR,QAAf,IAAeA,OAAf,EAAeA,EAAGQ,UAAlB,oBAA8Bhc,SAA9B,aAA8B,EAAMgc,iBAApC,QAAiD,GAC5DC,YAAa,OAADT,QAAC,IAADA,OAAA,EAAAA,EAAGS,YAAH,OACRT,QADQ,IACRA,OADQ,EACRA,EAAGS,WADK,oBAERjc,SAFQ,aAER,EAAMic,kBAFE,QAEY,GACxBC,WAAY,OAADV,QAAC,IAADA,OAAA,EAAAA,EAAGU,WAAH,OAAeV,QAAf,IAAeA,OAAf,EAAeA,EAAGU,UAAlB,oBAA8Blc,SAA9B,aAA8B,EAAMkc,iBAApC,QAAiD,GAC5DC,aAAc,OAADX,QAAC,IAADA,OAAA,EAAAA,EAAGW,aAAH,OACTX,QADS,IACTA,OADS,EACTA,EAAGW,YADM,oBAETnc,SAFS,aAET,EAAMmc,mBAFG,QAEY,MAMjC7B,EAAmB,GAAD,OACbjY,EADa,YACFS,EADE,YACeK,EADf,YAC0BS,IACxC,CACFA,SAAUM,EAAcN,SACxBU,WAAYJ,EAAcI,WAC1B0B,WAAY9B,EAAc8B,WAE1B/F,OAAQiE,EAAcjE,OACtBsb,QAASA,EACTe,OAAQpY,EAAcoY,OAClBpY,EAAcoY,OADV,UAEJhC,EAAmB,GAAD,OACfjY,EADe,YACJS,EADI,YACaK,EADb,YACwBS,WAHtC,aAEJ,EAEC0Y,OACLlB,cAA2B,OAAblX,QAAa,IAAbA,OAAA,EAAAA,EAAekX,cACzBlX,EAAckX,aADJ,UAEVd,EAAmB,GAAD,OACbjY,EADa,YACFS,EADE,YACeK,EADf,YAC0BS,WAHlC,aAEV,EAEGwX,aACPvB,QAASA,OAEN,CACL,IAAI1V,EACFmW,EAAmB,GAAD,OACfjY,EADe,YACJS,EADI,YACaK,EADb,YACwBS,IAE5B,IAAD,EAAf,GAAIO,EACFmW,EAAmB,GAAD,OACbjY,EADa,YACFS,EADE,YACeK,EADf,YAC0BS,IACxC,CACFA,SAAUO,EAAUP,SACpBU,WAAYH,EAAUG,WACtB0B,WAAY9B,EAAc8B,WAE1B/F,OAAQ,YACRsb,QAASpX,EAAUoX,QACnBe,OAAQnY,EAAUmY,OAClBlB,cAAuB,OAATjX,QAAS,IAATA,OAAA,EAAAA,EAAWiX,cACrBjX,EAAUiX,aADA,UAEVd,EAAmB,GAAD,OACbjY,EADa,YACFS,EADE,YACeK,EADf,YAC0BS,WAHlC,aAEV,EAEGwX,aACPvB,SAAS,QAGXS,EAAmB,GAAD,OACbjY,EADa,YACFS,EADE,YACeK,EADf,YAC0BS,IACxC,CACFA,SAAU,GACVU,WAAY,GAEZrE,OAAQ,YACRsb,QAAS,GACTe,OAAQ,KACRzC,SAAS,GAKf,MAAMyD,EAAkB,IAAKrH,EAAM0L,4BAMnC,OALArE,EAAgB,GAAD,OAAIjb,EAAJ,YAAeS,EAAf,YAAgCK,EAAhC,YAA2CS,IACxD0W,EAAmB,GAAD,OACfjY,EADe,YACJS,EADI,YACaK,EADb,YACwBS,IAGrC,IACFqS,EACH0L,2BAA4BrE,EAC5BxE,oBAAqBU,GAKzB,KAAKrR,IAAsC,CACzC,MAAM,QAAE9F,EAAF,cAAWS,EAAX,QAA0BK,GAAY+S,EAAO3Z,QAE7CkhB,EAAa,IAAKxH,EAAM2L,0BAC9B,IAAIpI,EAA2C,IAAKvD,EAAM6C,qBAC1D,GAAI5C,EAAO3Z,QAAQ4G,QAAS,CAAC,IAAD,iBACrBsa,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,MAC7Csa,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAa,IAClDsa,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAC7C0B,WAAY,GACZb,iBAAiB,IAKrB,MAAM0a,GACE,OAANxI,QAAM,IAANA,GAAA,UAAAA,EAAQ3Z,eAAR,eAAiBqI,oBACfoG,MAAMC,QAAN,OAAciL,QAAd,IAAcA,GAAd,UAAcA,EAAQ3Z,eAAtB,aAAc,EAAiBqI,mBADjC,OAEIsR,QAFJ,IAEIA,GAFJ,UAEIA,EAAQ3Z,eAFZ,aAEI,EAAiBqI,kBACjB,QAACsR,QAAD,IAACA,GAAD,UAACA,EAAQ3Z,eAAT,aAAC,EAAiBqI,mBACxB,IAAIga,EAAgC,GAOpC,IANA,WACEnB,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,WAD5C,mBACE,GAAsD0B,kBADxD,cACE,GACI3B,UAEJ0b,EAAa,WACXnB,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,WAD/B,cACX,GAAsD0B,YACtD6Z,GAAqBA,EAAkBxb,OACzC,IAAK,IAAI2b,KAAMH,EAAmB,CAAC,IAAD,GAChC,IAAII,EAAkC,GAClCjF,EAAmBN,EACrBC,EACA,IACAnX,EACAS,EACAK,EALoC,OAMpC0b,QANoC,IAMpCA,OANoC,EAMpCA,EAAI7E,WANgC,OAOpC6E,QAPoC,IAOpCA,OAPoC,EAOpCA,EAAIjb,SAPgC,OAQpCib,QARoC,IAQpCA,OARoC,EAQpCA,EAAIzC,WAEN,IAAK,IAAIM,KAAKmC,EAAGtD,QAAS,CAAC,IAAD,YACxBuD,EAAU1b,KAAK,CACbuY,SAAUe,EAAEf,SAAWe,EAAEf,SAAW,GACpCrC,WAAYoD,EAAEpD,WAAaoD,EAAEpD,WAAa,GAC1C0E,UAAS,WAAEtB,EAAEd,WAAW,UAAf,cAAE,GAAiBzC,MAC5BiF,SAAQ,WAAE1B,EAAEd,WAAW,UAAf,cAAE,GAAiBxC,KAC3ByE,SAAQ,WAAEnB,EAAEb,UAAU,UAAd,cAAE,GAAgB1C,MAC1B+E,QAAO,WAAExB,EAAEb,UAAU,UAAd,cAAE,GAAgBzC,KACzBnZ,OAAQyc,EAAEzc,OAASyc,EAAEzc,OAAS,GAC9Buc,KAAME,EAAEF,KAAOoB,OAAOlB,EAAEF,MAAQ,IAGpCsC,EAAUtC,KAAK,CAACC,EAAGC,KACjB,IAAK,OAADD,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,OAAQ,EACvB,OAAQ,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGD,OAAH,OAAUE,QAAV,IAAUA,OAAV,EAAUA,EAAGF,MAEtB,MAAMG,EAAQF,EAAEd,SACViB,EAAQF,EAAEf,SAChB,OAAIgB,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEd,IAAI1S,GAAqB,QAAb,GAAA0U,SAAA,iBAAe1b,QACvB0b,EAAcG,UAAWC,GAAQA,EAAIpb,WAAaib,EAAGjb,WACpD,EACDsG,GAAS,EACX0U,EAAc1U,GAAS,CACrB2P,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAA4C6C,IAAzB8E,EAAG3H,kBAAkC2H,EAAG3H,kBAAmB0H,EAAc1U,GAAOgN,kBACnGkE,cAAgB,OAAFyD,QAAE,IAAFA,OAAA,EAAAA,EAAIzD,cACdyD,EAAGzD,aACHwD,EAAc1U,GAAOkR,cAG3BwD,EAAcxb,KAAK,CACjByW,QAASA,EACTjW,SAAUib,EAAGjb,SAAWib,EAAGjb,SAAW,KACtCU,WAAYua,EAAGva,WAAaua,EAAGva,WAAa,YAC5CiX,QAASuD,EACT7e,OAAQ4e,EAAG5e,OAAS4e,EAAG5e,OAAS,OAChCiX,uBAA4C6C,IAAzB8E,EAAG3H,mBAAkC2H,EAAG3H,kBAC3DkE,aAAY,OAAEyD,QAAF,IAAEA,OAAF,EAAEA,EAAIzD,eAe1B,OAXAwD,EAAcpC,KAAK,CAACC,EAAGC,KACrB,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACpB,IAEda,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAW0B,WACnD+Z,EACFnB,EAAW,GAAD,OAAIpb,EAAJ,YAAeS,EAAf,YAAgCK,IAAWa,gBACnDkS,EAAO3Z,QAAQyH,gBACV,IACFiS,EACH2L,yBAA0BnE,EAC1B3E,oBAAqBU,IA0E3B,KAAKlR,IAA8B,IAAD,GAC5BlB,GAAW8O,EAAO3Z,QAAQyD,KAAKoH,SAC/BC,IAAU,EAEd,cAAI6O,EAAO3Z,eAAX,cAAI,GAAgBulB,YACd5L,EAAO3Z,QAAQulB,YAAYte,SAAS4D,MACtCC,IAAU,OAEP,CACL,MAAMqa,EAAkBzL,EAAMyL,gBAC9Bta,GAAWA,GAASI,OAAO,KAC3B,IAAIua,GAAOC,OAAOD,KAAKL,GAEvB,IAAK,IAAI5H,KAAOiI,GAAM,CACpB,MAAME,EAAMnI,EAAI1c,MAAM,KAChBmK,EAAWH,GAAS5D,SAAT,sBACNye,EAAI,GADE,KAEb7a,GAAS5D,SAAT,sBACOye,EAAI,GADX,KAEA7a,GAAS5D,SAAT,sBACOye,EAAI,GADX,KAEA7a,GAAS5D,SAAS,YAAlB,WAEA,KAEJ,GAAI+D,GAAYH,GAAS5D,SAAS+D,GAAW,CAC3CF,IAAU,EACV,QAIN,GAAIA,GACF,MAAO,IACF4O,EACH/O,oBAAqBuC,IAAOC,OAKlC,KAAKnB,IAA4B,CAC/B,MAAMmZ,EAAkBzL,EAAMyL,gBAC9B,GAAIA,EAAiB,CACnB,IAAIve,GAAU+S,EAAO3Z,QACjB8K,IAAU,EAEV0a,GAAOC,OAAOD,KAAKL,GACvB,IAAK,IAAI5H,KAAOiI,GACVjI,EAAI1c,MAAM,KAAK,IAAM+F,KACvBkE,IAAU,GAId,GAAIA,GACF,MAAO,IACF4O,EACHxO,mBAAoBgC,IAAOC,QAMnC,KAAKlB,IAA0B,CAC7B,MAAMkZ,EAAkBzL,EAAMyL,gBAC9B,GAAIA,EAAiB,CACfve,GAAU+S,EAAO3Z,QACjB8K,IAAU,EAEV0a,GAAOC,OAAOD,KAAKL,GACvB,IAAK,IAAI5H,KAAOiI,GACVjI,EAAI1c,MAAM,KAAK,IAAM+F,KACvBkE,IAAU,GAId,GAAIA,GACF,MAAO,IACF4O,EACH8C,iBAAkBtP,IAAOC,QAMjC,QACE,OAAOuM,IC/1BEiM,MATKC,0BAAgB,CAClCC,KAAMpM,EACNqM,OAAQvK,EACRwK,eAAgBpI,EAChBqI,aAAcpB,EACdqB,YAAaC,EACbC,YAAab,ICTf,MAAM7gB,EAAQ2hB,sBACZT,EACAU,8BAAoBC,0BAAgBC,OAGvB9hB,O,2/ECXR,MAAM+hB,EAAe,CAC1B,2BACA,4BACA,4BACA,4BACA,2BACA,4BACA,4BACA,6B,YCMF,MAAMC,EAAoB,CACxB,EAAK,UACL,EAAK,SACL,EAAK,WACL,EAAK,eACL,KAAQ,YACR,KAAQ,aACR,KAAQ,YAWGC,EAA6B,CACxCxgB,EACAygB,IAEOzgB,EAAaygB,GAAezgB,EAAaygB,GAAe,KAGpDC,EAAoB,CAC/B/I,EACA8I,EACApgB,EACAsgB,EACA/K,KAEA,GAAI+B,EAAU8I,GAAc,CAC1B,IAAIngB,EAAqB,GACzB,GAAID,GACF,GAAIsX,EAAU8I,GAAapgB,GACzB,IAAK,IAAIK,KAAW6e,OAAOD,KACzB3H,EAAU8I,GAAapgB,IACtB,CACD,MAAMO,EAAQ+W,EAAU8I,GAAapgB,GAAeK,GAC9CkgB,EAAW5Z,IAAOpG,EAAME,UAAU+f,KAAK7Z,MAAU,QACjD8Z,EAAiB9Z,IAAOpG,EAAME,UAAU+f,KAC5C7Z,MACA,YAGApG,EAAMc,WACmC,WAAzCd,EAAMc,UAAUlE,OAAOsE,iBACtB8e,GAAY,GAAsB,YAAjBhgB,EAAMpD,SACtBsjB,EAAiB,GAAsB,YAAjBlgB,EAAMpD,QAE9B8C,EAAOK,KAAKC,SAKlB,IAAK,IAAIP,KAAiBkf,OAAOD,KAAK3H,EAAU8I,IAC9C,IAAK,IAAI/f,KAAW6e,OAAOD,KACzB3H,EAAU8I,GAAapgB,IACtB,CACD,MAAMO,EAAQ+W,EAAU8I,GAAapgB,GAAeK,GACnCsG,IAAOpG,EAAME,UAAU+f,KAAK7Z,MAAU,QAChCA,IAAOpG,EAAME,UAAU+f,KAC5C7Z,MACA,WAUF1G,EAAOK,KAAKC,GAIlB,GAAIN,EAAOG,OAAS,EAMlB,OALAH,EAAOyZ,KAAK,CAACC,EAAGC,KACd,MAAM8G,EAAY/Z,IAAOgT,EAAElZ,UACrBkgB,EAAYha,IAAOiT,EAAEnZ,UAC3B,OAAOigB,EAAUF,KAAKG,EAAW,WAAa,EAAI,GAAK,IAErDL,GAAU/K,EACLtV,EAAO2gB,OAAON,EAAS,GAAK/K,EAAU+K,EAAS/K,GAE/CtV,EAIb,OAAO,MA0CI4gB,EAAkB,CAACvJ,EAAsB/C,KACpD,IAAK,IAAIyC,KAAOM,EACH,KAAPN,GAAqB,QAAPA,UACTM,EAAUN,GAGrB,IAAI8J,EAAkC,GACtC,IAAK,IAAIC,KAAQ7B,OAAOD,KAAK3H,GAAY,CAAC,IAAD,EACvC,IAAIrX,EAAqB,GACzB,IAAI+gB,EAAK,OAAGzM,QAAH,IAAGA,GAAH,UAAGA,EAAeL,cAAlB,aAAG,EAAuBkG,OAChCG,IAAD,aACEA,EAAK9I,KAAKhQ,iBAAV,UAA4Bye,EAAkBa,UAA9C,aAA4B,EAAyBtf,iBACvD,GACF,IAAK,IAAI0B,KAAO+b,OAAOD,KAAK3H,EAAUyJ,IACpC,IAAK,IAAI1d,KAAO6b,OAAOD,KAAK3H,EAAUyJ,GAAM5d,IAAO,CACjD,MAAM5C,EAAQ+W,EAAUyJ,GAAM5d,GAAKE,GAEhCsD,IAAOpG,EAAME,UAAU+f,KAAM7Z,MAAS,YAAc,GACrD1G,EAAOK,KAAKC,GAKlB,IACmC,IAD/B0gB,IAAUD,GAAQA,EAAME,SAC5B,GAAIjhB,EAAOG,OAAS,IAAM6gB,EACxBhhB,EAAOyZ,KAAK,CAACC,EAAGC,KACd,MAAM8G,EAAY/Z,IAAOgT,EAAElZ,UACrBkgB,EAAYha,IAAOiT,EAAEnZ,UAC3B,OAAOigB,EAAUF,KAAKG,EAAW,WAAa,EAAI,GAAK,IAEzDG,EAAaxgB,KAAK,CAChBf,QAASwhB,EACTI,UAAWjB,EAAkBa,GAC7BK,UAAS,UAAElB,EAAkBa,UAApB,aAAE,EAAyBtf,cACpCxB,OAAQA,EACRohB,SAAUL,EACNA,EAAMK,SADK,UAEXC,IAAWtkB,IAAIkjB,EAAkBa,WAFtB,aAEX,EAAyCM,WAOnD,OAFAP,EAAapH,KAAK,CAACC,EAAGC,IAAMD,EAAE0H,SAAWzH,EAAEyH,UAEpCP,GAGIS,EAAuB,CAClCjK,EACA8I,EACApgB,EACAK,KAEAL,EAAgBA,EAAcU,SAAS,KAAMV,EAAc1F,MAAM,KAAK8I,KAAK,KAAMpD,EACjFK,EAAUA,EAAQK,SAAS,KAAML,EAAQ/F,MAAM,KAAK8I,KAAK,KAAM/C,EAE7DiX,EAAU8I,IACV9I,EAAU8I,GAAapgB,IACvBsX,EAAU8I,GAAapgB,GAAeK,GAE/B,IAAKiX,EAAU8I,GAAapgB,GAAeK,IAE7C,MAGImhB,EAA6B,CACxC7L,EACAtV,IAEIsV,EAAoBtV,GACfsV,EAAoBtV,GAAS0B,WAE/B,KAGI0f,EAAyB,CACpC9L,EACAtV,IAEIsV,EAAoBtV,GACf,IAAIsV,EAAoBtV,GAAS4B,cAEnC,KAGIyf,EAAyB,CACpC/L,EACAtV,MAEIsV,EAAoBtV,IACfsV,EAAoBtV,GAASmD,eAK3Bme,EAA6B,CACxChM,EACAtV,IAEIsV,EAAoBtV,GACfsV,EAAoBtV,GAEtB,KAGIuhB,EAA+B,CAC1ClM,EACArV,KAEA,IAAIwhB,EAAqC,GACzC,IAAK,IAAItgB,KAAM2d,OAAOD,KAAKvJ,GAEvBnU,EAAGugB,WAAWzhB,KACb4f,EAAavf,SAASgV,EAAsBnU,GAAIC,aAEjDqgB,EAAmBvhB,KAAKoV,EAAsBnU,IAUlD,OAPAsgB,EAAmBnI,KAAK,CAACC,EAAGC,KAC1B,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIqY,EAAQC,EAAc,EACjBD,EAAQC,GAAe,EACzB,IAEF+H,GAGIE,EAAwB,CACnCrM,EACArV,KAEA,IAAIwhB,EAAqC,GACzC,IAAK,IAAItgB,KAAM2d,OAAOD,KAAKvJ,GAEvBnU,EAAGugB,WAAWzhB,IACd4f,EAAavf,SAASgV,EAAsBnU,GAAIC,aAEhDqgB,EAAmBvhB,KAAKoV,EAAsBnU,IAWlD,OARAsgB,EAAmBnI,KAAK,CAACC,EAAGC,KAC1B,MAAMC,EAAQF,EAAEnY,WACVsY,EAAQF,EAAEpY,WAChB,OAAIye,EAAa+B,QAAQnI,GAASoG,EAAa+B,QAAQlI,GAAe,EAC7DmG,EAAa+B,QAAQnI,GAASoG,EAAa+B,QAAQlI,IAClD,EACH,IAEF+H,GAGII,EAAoB,CAC/BrM,EACAvV,KAOO,IADoBuV,GAHH,OAAPvV,QAAO,IAAPA,OAAA,EAAAA,EAASK,SAAS,MAAlB,OACbL,QADa,IACbA,OADa,EACbA,EAAS/F,MAAM,KAAK8I,KAAK,KACzB/C,K,4BCzSC,MAAM6hB,EAAqBpE,IACzB,CACLzkB,KAAMilB,IACN7kB,QAASqkB,IAIAqE,EAAiBC,IACrB,CACL/oB,KAAMklB,IACN9kB,QAAS2oB,I,2CCnBb,8CAQA,MAAM1Z,EAAMpL,IAAMC,OAAO,CACvBC,QAASC,YAAWC,aAAgC,0BACpD2kB,aAAc,OACd1kB,iBAAiB,EACjBC,QAAS,MAIX8K,EAAI7K,aAAarE,SAASsE,IACvBtE,GACQA,EAERuE,IACC,GAAIA,EAAMvE,UAAsC,MAA1BuE,EAAMvE,SAAS2D,OAAgB,CACnDa,QAAQC,IAAI,2CACE9D,eAAeC,QAAQ,cAElC8D,IAAM1B,SAAuDZ,eAGlE,OAAOuC,QAAQC,OAAOL,KAIX2K,O,kCChCf,waAoBO,MAAM4Z,EAAmB,CAC9BtiB,EACAK,EACAS,EACApB,EACAH,KACI,IAAD,EACH,MAAMpD,EAAQ,UAAGhC,eAAeC,QAAQ,mBAA1B,QAAyC,GACvD,GAAI0G,GAAY3E,EAAU,CAAC,IAAD,IACxB,IAAIe,EAAO,GACX,MAAMqlB,EAAS,UAAGnmB,aAAahC,QAAb,sBAAoC+B,WAAvC,QAAsD,GACjEomB,IAAWrlB,EAAO3C,KAAKC,MAAME,KAAK6nB,KACtC,MAAMC,EAAY,UAAGtlB,SAAH,aAAG,EAAMkd,OAAQ8B,GAAQA,EAAIpb,WAAaA,GAC/B,KAAb,OAAZ0hB,QAAY,IAAZA,OAAA,EAAAA,EAAcpiB,UAChBlD,EAAKoD,KAAK,CACRN,gBACAK,UACAS,WACApB,aACAH,YAEFnD,aAAaqmB,QAAb,sBACiBtmB,GACfumB,KAAKnoB,KAAKooB,UAAUzlB,QAKf0lB,EAAsB,CAACviB,EAASS,KAAc,IAAD,EACxD,MAAM3E,EAAQ,UAAGhC,eAAeC,QAAQ,mBAA1B,QAAyC,GACvD,GAAI+B,GAAY2E,EAAU,CAAC,IAAD,IACxB,IAAI5D,EAAO,GACX,MAAMqlB,EAAS,UAAGnmB,aAAahC,QAAb,sBAAoC+B,WAAvC,QAAsD,GACjEomB,IAAWrlB,EAAO3C,KAAKC,MAAME,KAAK6nB,KACtC,MAAMnb,EAAK,UAAGlK,SAAH,aAAG,EAAM+e,UACjBC,GAAQA,EAAI7b,UAAYA,GAAW6b,EAAIpb,WAAaA,GAEvDsG,GAAS,GAAKlK,EAAKigB,OAAO/V,EAAO,GACjCA,GAAS,GACPhL,aAAaqmB,QAAb,sBACiBtmB,GACfumB,KAAKnoB,KAAKooB,UAAUzlB,OAKf2lB,EAA0B,CAACC,EAAYhiB,EAAUT,MACzCyiB,EAAW1I,OAAQ8B,GAAQA,EAAIpb,WAAaA,GAC3CV,OAGhB2iB,EAA2BtpB,IACxB,CACLJ,KAAM6L,IACNzL,QAASA,IAIAupB,EAAiCvpB,IACrC,CACLJ,KAAM+L,IACN3L,QAASA,IAIPwpB,EAA+BxpB,IAC5B,CACLJ,KAAM8L,IACN1L,QAASA,IAWAypB,EAAyBzpB,IAC7B,CACLJ,KAAM6L,IACNzL,QAASA,IAIA0pB,EAA+B1pB,IACnC,CACLJ,KAAMiM,IACN7L,QAASA,IAIA2pB,EAAgC3pB,IACpC,CACLJ,KAAMkM,IACN9L,QAASA,IAIA4pB,EAA+B5pB,IACnC,CACLJ,KAAMgM,IACN5L,QAASA,IAIA6pB,EAA4B7pB,IAChC,CACLJ,KAAMmM,IACN/L,QAAS,CACPulB,YAAaxa,YAAc/K,EAAQ6K,UAC/B9I,cACA,KACJ0B,KAAMzD,KAKC8pB,EAA2BljB,IAC/B,CACLhH,KAAMoM,IACNhM,QAAS4G,IA0BAhB,EAAmB5F,IACvB,CACLJ,KAAMlE,IACNsE,QAASA,IAIA+pB,EAA4B,IAChC1nB,UACL,IAAK,IAAD,IACF,IAAIoB,EAAO,GACX,MAAMf,EAAQ,UAAGhC,eAAeC,QAAQ,mBAA1B,QAAyC,GACjDwlB,EAAcxjB,aAAahC,QAAb,sBAAoC+B,IAExD,GADIyjB,IAAa1iB,EAAO3C,KAAKC,MAAME,KAAKklB,KACxC,UAAI1iB,SAAJ,aAAI,EAAMkD,OAAQ,CAAC,IAAD,EAChB,MAAM5G,QAAiBuC,IAASC,KAAT,yCAErB,CACEsH,aAAcpG,EACdwC,WAAY5J,IACZyN,gBAAiB,OAEnB,CACEtH,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,gBAI5C,IAAY,OAARZ,QAAQ,IAARA,GAAA,UAAAA,EAAU0D,YAAV,eAAgBkD,QAAS,EAAG,CA3CT,EAAC5D,EAAoBkC,KAAoB,IAAD,gBAErE,MAAMC,EAAkB,CACtBC,iBAAgB,OAAEF,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBD,iBACtCE,eAAc,OAAEJ,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBC,eACpCC,iBAAgB,OAAEL,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBE,iBACtCC,eAAc,OAAEN,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBG,eACpCC,aAAY,OAAEP,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBI,aAClCC,WAAU,OAAER,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBK,WAChCC,eAAc,OAAET,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBM,eACpCC,aAAY,OAAEV,QAAF,IAAEA,GAAF,UAAEA,EAAWG,eAAb,aAAE,EAAoBO,cAEpC5C,EAAS6C,EAAgBV,KAgCjBF,CAAuBjC,EAAUhD,EAAS0D,KAAK,IAC/C,IAAK,IAAImN,EAAI,EAAGA,GAAC,OAAG7Q,QAAH,IAAGA,GAAH,UAAGA,EAAU0D,YAAb,aAAG,EAAgBkD,QAAQiK,IAAK,CAAC,IAAD,EAC/C,MAAM3L,EAAYlF,EAAS0D,KAAKmN,GAChC,GAAI3L,EAAU2B,QAAS,CACrB,MAAME,EAAkB,CAEtBpD,OAAQuB,EAAUvB,OAClBsD,SAAU/B,EAAU+B,SACpBlB,QAASb,EAAUa,QACnBS,cAAetB,EAAUsB,cACzBY,gBAAiBlC,EAAUkC,gBACvBlC,EAAUkC,gBACV,QACJP,QAAS3B,EAAU2B,QACnBQ,UAAWnC,EAAUmC,UACrBC,SAAUpC,EAAUoC,SACpBC,aAAcrC,EAAUqC,aACxBP,QAAS9B,EAAU8B,SAGf/G,EAAU,CACdiF,UAAW6B,EAEXhB,QAASgB,EAAMhB,QACfS,cAAeO,EAAMP,cACrBK,QAAS3B,EAAU2B,QACnBe,cACE1C,EAAUG,SAAWH,EAAUG,QAAQwC,UACnC3C,EAAUG,QAAQwC,UAAUC,KACzBC,GACmB,eAAlBA,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eAElB,KACNiC,WAAW,GAGblH,EAASumB,EAAwBtpB,IAGjC,IAAK,IAAI8H,KAAM7C,EAAUG,QAAQwC,UAC/B,GAAsB,MAAlBd,EAAMhB,SACR,GACoB,eAAlBgC,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,eACE,gBAAhBF,EAAGT,UACa,gBAAhBS,EAAGT,SACH,CACA,MAAMa,EAAe,CACnBpC,QAASb,EAAUa,QACnBS,cAAetB,EAAUsB,cACzBK,QAAS3B,EAAU2B,QACnBS,SAAUS,EAAGT,SACbM,cAAeG,GAGjB/E,EAASwmB,EAA8BrhB,UAGzC,GACoB,eAAlBJ,EAAGC,YAC6B,cAAhCD,EAAGC,WAAWC,cACd,CACA,MAAME,EAAe,CACnBpC,QAASb,EAAUa,QACnBS,cAAetB,EAAUsB,cACzBK,QAAS3B,EAAU2B,QACnBS,SAAUS,EAAGT,SACbM,cAAeG,GAGjB/E,EAASwmB,EAA8BrhB,IAM7C,GAAsB,MAAlBpB,EAAMhB,QAAiB,CACzB,MAAMsC,EAAoB,CACxBxB,QAASE,EAAMF,QACfd,QAAO,OAAEgB,QAAF,IAAEA,OAAF,EAAEA,EAAOhB,QAChBS,cAAa,OAAEO,QAAF,IAAEA,OAAF,EAAEA,EAAOP,cACtB8B,kBAAmBpD,EAAUG,QACzBH,EAAUG,QAAQkD,WAClB,KACJb,kBAAiBxC,EAAUG,SACvBH,EAAUG,QAAQqC,gBAEtBc,gBAAiBtD,EAAUG,QACvBH,EAAUG,QAAQoD,aAClB,KACJjB,cAAatC,EAAUG,SACnBH,EAAUG,QAAQmC,aAGxBxE,EAASymB,EAA4BphB,SAM/C,MAAO8B,GACP3F,QAAQC,IAAI0F,M,sCC3SlB,wIAAO,MAAM2a,EAAsB,sBACtBC,EAAkB,kBAClBC,EAAmB,mBACnBG,EAAsB,uB,oCCHnC8E,EAAOC,QAAU,IAA0B,sC,uCCE3C,4HAKO,MAAMxO,EAAuB,CAClC,CAAE7H,GAAI,IAAKoE,KAAM,UAAW2D,KAAM,WAClC,CAAE/H,GAAI,IAAKoE,KAAM,WAAY2D,KAAM,YACnC,CAAE/H,GAAI,IAAKoE,KAAM,SAAU2D,KAAM,UACjC,CAAE/H,GAAI,IAAKoE,KAAM,eAAgB2D,KAAM,eACvC,CACE/H,GAAI,OACJoE,KAAM,YACN2D,KAAM,aAER,CACE/H,GAAI,OACJoE,KAAM,aACN2D,KAAM,aACN5U,SAAS,GAEX,CACE6M,GAAI,OACJoE,KAAM,WACN2D,KAAM,WACN5U,SAAS,IAIA8gB,EAAa,IAAIlJ,IAAI,CAChC,CACE,UACA,CAAE/K,GAAI,IAAKoE,KAAM,UAAW2D,KAAM,UAAWiM,SAAU,EAAGJ,SAAS,IAErE,CACE,WACA,CACE5T,GAAI,IACJoE,KAAM,WACN2D,KAAM,WACNiM,SAAU,EACVJ,SAAS,IAGb,CACE,SACA,CAAE5T,GAAI,IAAKoE,KAAM,SAAU2D,KAAM,SAAUiM,SAAU,EAAGJ,SAAS,IAEnE,CACE,eACA,CACE5T,GAAI,IACJoE,KAAM,eACN2D,KAAM,cACNiM,SAAU,EACVJ,SAAS,IAGb,CACE,YACA,CACE5T,GAAI,OACJoE,KAAM,YACN2D,KAAM,YACNiM,SAAU,EACVJ,SAAS,IAGb,CACE,aACA,CACE5T,GAAI,OACJoE,KAAM,aACN2D,KAAM,aACN5U,SAAS,EACT6gB,SAAU,EACVJ,SAAS,IAGb,CACE,WACA,CACE5T,GAAI,OACJoE,KAAM,WACN2D,KAAM,WACN5U,SAAS,EACT6gB,SAAU,EACVJ,SAAS,MAKF0C,EAAkB,CAC7B9X,OAAQ,IACRD,SAAU,IACVD,OAAQ,IACRG,QAAS,IACTE,YAAa,IACb8B,UAAW,OACX3B,WAAY,OACZC,SAAU,QAciBwX,K,8BCpH7B,6CAEO,MAUMC,EAAe,CAC1BC,uBAAuB,+CACvBC,0BAA0B,wCAC1BC,iCAAiC,8CACjCC,2CAA2C,iEAC3CC,qBAAqB,gDACrBC,yBAAyB,iCACzBC,yBAAyB,4CAadC,EAAa,CACxBC,YAAaT,EACbU,MAAOV,EACPW,WAbsB,CACtBV,uBAAuB,eAAD,OAAiB/tB,IAAjB,WACtBguB,0BAA0B,eAAD,OAAiBhuB,KAC1CiuB,iCAAiC,qBAAD,OAAuBjuB,KACvDkuB,2CAA2C,qBAAD,OAAuBluB,IAAvB,uBAC1CmuB,qBAAqB,wCACrBC,yBAAyB,iBAAD,OAAmBpuB,KAC3CquB,yBAAyB,uCASpB,SAAS3mB,EAAWgnB,EAAa1e,GACtC,OAAOse,EAAWI,GAAK1e,K,wDCvClB,IAAK2N,EAAZ,kC,SAAYA,K,UAAAA,E,WAAAA,M,qDCAZ,kCAAO,MAAMO,EAAqB,CAChCrI,SAAU,EACVC,OAAQ,EACRC,QAAS,EACT4Y,YAAa,EACbC,cAAe,GACfzQ,OAAQ,EACRC,OAAQ,GACR9N,WAAY,GACZue,gBAAiB,GACjBC,OAAQ,M,+BCVV,4DAmBeC,IAbe,IAE1B,yBAAKC,UAAU,oBACb,yBAAKA,UAAU,YACb,yBAAKC,IAAKC,IAAUF,UAAU,YAAYG,IAAKtvB,OAEjD,yBAAKmvB,UAAU,YACb,kBAAC,IAAD,CAAYA,UAAU,uBAAuBtT,KAAK,e,gBCb1DgS,EAAOC,QAAU,IAA0B,sC,0CCA3C,8CAQA,MAAM3b,EAAgBzK,IAAMC,OAAO,CACjCC,QAASC,YAAWC,aAAgC,oCACpD2kB,aAAc,OACd1kB,iBAAiB,EACjBC,QAAS,MAIXmK,EAAclK,aAAarE,SAASsE,IACjCtE,GACQA,EAERuE,IACC,GAAIA,EAAMvE,UAAsC,MAA1BuE,EAAMvE,SAAS2D,OAAgB,CACnDa,QAAQC,IAAI,2CACE9D,eAAeC,QAAQ,cAElC8D,IAAM1B,SAAuDZ,eAGlE,OAAOuC,QAAQC,OAAOL,KAIXgK,O,cChCf0b,EAAOC,QAAU,sxM,mCCAjB,0LAgPeyB,gBAAQ,KANK3oB,IACnB,CACLZ,OAAQ,IAAMY,EAASZ,iBAIZupB,CA9MkCC,IAC/C,MAAM,OAAExpB,EAAF,aAAUypB,EAAV,eAAwBC,GAAmBF,GAC1CG,EAAUC,GAAeC,oBAAkB,IAC3CC,EAAUC,GAAeF,mBAAiB,OAC1CG,EAAYC,GAAiBJ,mBAAiB,MAE/CK,EAASC,YAAU,CACvBC,cAAe,CACbC,OAAQ,GACRC,OAAQ,GACRC,WAAY,GACZC,aAAa,GAEfC,iBAAkBC,IAAW,CAC3BL,OAAQK,MAAaC,SAAS,YAC9BL,OAAQI,MACLC,SAAS,YACTC,QACC,qEACA,4EAEJL,WAAYG,MAAaC,SAAS,YAClCH,YAAad,EACTgB,MAAWG,KACX,aACA,qCACA,IACSX,EAAOY,OAAON,aAGvBE,MAAaK,aAEnBC,SAAWF,IACTf,EAAY,MACZE,EAAc,MACd,MAAM3oB,EAA8B,CAClC2pB,YAAaH,EAAOT,OAAO/N,OAC3B4O,YAAaJ,EAAOR,OAAOhO,QAEzBwO,EAAOR,SAAWQ,EAAOP,WACvBO,EAAOR,SAAWQ,EAAOT,OAC3BN,EACE,4DAGFoB,EAAkB7pB,GAGpByoB,EAAY,yBAKZoB,EAAoBjrB,UACxB,IACE0pB,GAAY,GAEZ,MAAMwB,EAAW7sB,eAAeC,QAAQ,YAYhB,aAXa2B,IAASkrB,IAAT,4BACdD,EADc,oBAEnC9pB,EACA,CACEjB,QAAS,CACPC,cAAe/B,eAAeC,QAAQ,aACtC,eAAgB,uBAKT+C,SACX0oB,EAAc,iCACdjqB,KAEF,MAAO5B,GAAM,IAAD,IACZ2rB,EAAW,OAAC3rB,QAAD,IAACA,GAAD,UAACA,EAAKR,gBAAN,iBAAC,EAAe0D,YAAhB,aAAC,EAAqBR,SApBnC,QAsBE8oB,GAAY,KAIhB,OACE,0BACEoB,SAAUd,EAAOoB,aACjBnC,UAAU,sBACVoC,aAAa,OAEb,yBAAKpC,UAAU,yBAAwB,yBAAKC,IAAKoC,IAAerC,UAAU,oBAA1E,mBACA,0BAAMA,UAAU,aACd,kBAAC,IAAD,CAAUA,UAAU,eAApB,sBACA,kBAAC,IAAD,eACEA,UAAU,uCACV1rB,KAAK,WACLoY,KAAK,SACL4V,QAAQ,WACRtpB,SAAO+nB,EAAOwB,QAAQrB,SAAUH,EAAOyB,OAAOtB,QAC9CuB,WACE1B,EAAOwB,QAAQrB,QAAUH,EAAOyB,OAAOtB,OACnCH,EAAOyB,OAAOtB,OACd,MAEFH,EAAO2B,cAAc,aAI7B,yBAAK1C,UAAU,aACb,kBAAC,IAAD,CAAUA,UAAU,eAApB,qBAEE,kBAAC,IAAD,CACEA,UAAU,gBACV2C,MAAM,6IAEN,kBAAC,IAAD,QAGJ,kBAAC,IAAD,CACE3C,UAAU,uCACVsC,QAAQ,WACRtpB,SAAO+nB,EAAOwB,QAAQpB,SAAUJ,EAAOyB,OAAOrB,SAE9C,kBAAC,IAAD,eACE7Y,GAAG,8BACHhU,KAAK,WACLoY,KAAK,UACDqU,EAAO2B,cAAc,YAE1B3B,EAAOwB,QAAQpB,QAAUJ,EAAOyB,OAAOrB,OACtC,kBAAC,IAAD,CAAgBnoB,OAAK,EAACsP,GAAG,kBACtByY,EAAOyB,OAAOrB,QAEf,OAIR,yBAAKnB,UAAU,aACb,kBAAC,IAAD,CAAUA,UAAU,eAApB,wBACA,kBAAC,IAAD,CACEA,UAAU,uCACVsC,QAAQ,WACRtpB,SACE+nB,EAAOwB,QAAQnB,aAAcL,EAAOyB,OAAOpB,aAG7C,kBAAC,IAAD,eACE9Y,GAAG,8BACHhU,KAAK,WACLoY,KAAK,cACDqU,EAAO2B,cAAc,gBAE1B3B,EAAOwB,QAAQnB,YAAcL,EAAOyB,OAAOpB,WAC1C,kBAAC,IAAD,CAAgBpoB,OAAK,EAACsP,GAAG,kBACtByY,EAAOyB,OAAOpB,YAEf,OAIPb,EACC,yBAAKP,UAAU,sBACb,kBAAC,IAAD,CACEA,UAAU,qBACV4C,QACE,kBAAC,IAAD,CACEC,QAAS9B,EAAOY,OAAON,YACvByB,SAAWnP,IACToN,EAAOgC,aAAapP,IAEtBqM,UAAU,wBACVtT,KAAK,cACLsW,MAAM,YAGVxe,MAAM,iDACNye,eAAe,QAEhBlC,EAAOwB,QAAQlB,aAAeN,EAAOyB,OAAOnB,YAC3C,kBAAC,IAAD,CAAgB/Y,GAAG,iBAAiB0X,UAAU,kBAC3Ce,EAAOyB,OAAOnB,aAEf,MAEJ,KAEU,KAAbV,EAAkB,0BAAMX,UAAU,aAAaW,GAAmB,KACnD,KAAfE,EACC,0BAAMb,UAAU,eAAea,GAC7B,KAEJ,kBAAC,IAAD,CACEb,UAAU,kBACVgD,MAAM,UACNE,QAAS1C,EAAW,kBAAC,IAAD,CAAY9T,KAAK,gBAAmB,GACxDpY,KAAK,SACLguB,QAAQ,aALV,c,+BC7NN,oEAAO,MAAMa,EAAiB,IACjBhmB,EAAyB,wB,6BCDtCuhB,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,8lF,gBCAjBD,EAAOC,QAAU,IAA0B,uC,cCA3CD,EAAOC,QAAU,kzR,gBCAjBD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,uBCA3CD,EAAOC,QAAU,IAA0B,uC,cCA3CD,EAAOC,QAAU,s2B,cCAjBD,EAAOC,QAAU,s3C,cCAjBD,EAAOC,QAAU,k0C,cCAjBD,EAAOC,QAAU,0oC,cCAjBD,EAAOC,QAAU,kuB,cCAjBD,EAAOC,QAAU,8nD,cCAjBD,EAAOC,QAAU,k6B,gBCAjBD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,iBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,sxM,cCAjBD,EAAOC,QAAU,86B,cCAjBD,EAAOC,QAAU,ktC,cCAjBD,EAAOC,QAAU,0vC,cCAjBD,EAAOC,QAAU,8mC,uICAjB,IAAIyE,EAAM,CACT,kCAAmC,CAClC,IACA,IAED,iCAAkC,CACjC,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,iCAAkC,CACjC,IACA,IAED,gCAAiC,CAChC,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,gCAAiC,CAChC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,mCAAoC,CACnC,IACA,IAED,kCAAmC,CAClC,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,iCAAkC,CACjC,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,iCAAkC,CACjC,IACA,IAED,gCAAiC,CAChC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,gCAAiC,CAChC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,4BAA6B,CAC5B,IACA,I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","file":"static/js/main.3cc02082.chunk.js","sourcesContent":["export const RESET_STATE = 'RESET_STATE';\nexport const SET_EVENT_TYPE = 'SET_EVENT_TYPE';\nexport const FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS =\n 'FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS';\nexport const SET_COMPETITION = 'SET_COMPETITION';\nexport const FETCH_EVENT_BY_COMPETITION_SUCCESS =\n 'FETCH_EVENT_BY_COMPETITION_SUCCESS';\nexport const SET_EXCH_EVENT = 'SET_EXCH_EVENT';\nexport const UPDATE_PREMIUM_MARKETS_WS = 'UPDATE_PREMIUM_MARKETS_WS';\nexport const SET_PAGE_NUMBER = 'SET_PAGE_NUMBER';\nexport const SET_LOADING = 'SET_LOADING';\nexport const RESET_EVENTS = 'RESET_EVENTS';\nexport const UPDATE_SECONDARY_MARKETS = 'UPDATE_SECONDARY_MARKETS';\nexport const UPDATE_SECONDARY_MATCH_ODDS = 'UPDATE_SECONDARY_MATCH_ODDS';\nexport const DISABLE_EVENT_DATA = 'DISABLE_EVENT_DATA';\nexport const UPDATE_SCORECARD = 'UPDATE_SCORECARD';\nexport const UPDATE_BINARY_MARKETS = 'UPDATE_BINARY_MARKETS';\nexport const FETCH_SPORTS_BY_PROVIDER_SUCCESS =\n 'FETCH_SPORTS_BY_PROVIDER_SUCCESS';\nexport const UPDATE_PREMIUM_MARKETS = 'UPDATE_PREMIUM_MARKETS';\nexport const UPDATE_FANCY_MARKETS = 'UPDATE_FANCY_MARKETS';\nexport const UPDATE_BOOKMAKER_MARKETS = 'UPDATE_BOOKMAKER_MARKETS';\nexport const FETCH_TOTAL_EVENT_LIST = 'FETCH_TOTAL_EVENT_LIST';\nexport const FETCH_SPORTS_LIVE_EVENT_LIST = 'FETCH_SPORTS_LIVE_EVENT_LIST';\nexport const FETCH_SPORTS_UPCOMING_EVENT_LIST =\n 'FETCH_SPORTS_UPCOMING_EVENT_LIST';\nexport const UPDATE_TOPIC_URLS = 'UPDATE_TOPIC_URLS';\nexport const SUSPENDED_MARKETS = 'SUSPENDED_MARKETS';\nexport const COMMISSION_MARKETS = 'COMMISSION_MARKETS';\nexport const TRIGGER_FETCH_MARKETS = 'TRIGGER_FETCH_MARKETS';\nexport const TRIGGER_FETCH_ORDERS = 'TRIGGER_FETCH_ORDERS';\nexport const TRIGGER_BET_STATUS = 'TRIGGER_BET_STATUS';\nexport const SET_DREAM_WS_CONNECTION = 'SET_DREAM_WS_CONNECTION';\nexport const SET_SPORTS_RADAR_WS_CONNECTION = 'SET_SPORTS_RADAR_WS_CONNECTION';\nexport const SET_BETFAIR_WS_CONNECTION = 'SET_BETFAIR_WS_CONNECTION';\n","export const BRAND_NAME = 'Strike46';\n// Note: It is the main site url. Ex - mazaa.io, etc.\nexport const BRAND_DOMAIN = 'strike46.com';\n// Note: It is the main site url. Ex - mazaa.io, etc.\nexport const BRAND_DOMAIN_SKIN_URL = 'strike46.com';\nexport const PROVIDER = 'BetFair';\nexport const PROVIDER_ID = 'BetFair';\nexport const BACKEND_DOMAIN = 'mnto9.com';","export const ADD_EXCH_BET = 'ADD_EXCH_BET';\nexport const REMOVE_EXCH_BET = 'REMOVE_EXCH_BET';\nexport const SET_EXCH_BET_STAKE = 'SET_EXCH_BET_STAKE';\nexport const CLEAR_EXCHANGE_BETS = 'CLEAR_EXCHANGE_BETS';\nexport const EXCH_BET_ODDS_CHANGE = 'EXCH_BET_ODDS_CHANGE';\nexport const FETCH_OPEN_BETS_SUCCESS = 'FETCH_OPEN_BETS_SUCCESS';\nexport const ADD_OPEN_BETS = 'ADD_OPEN_BETS';\nexport const CLEAR_SUCCESS_BETS = 'CLEAR_SUCCESS_BETS';\nexport const SET_BUTTON_VARIABLES = 'SET_BUTTON_VARIABLES';\nexport const SET_BETTING_INPROGRESS = 'SET_BETTING_INPROGRESS';\nexport const BET_CANCEL_SUCCESS = 'BET_CANCEL_SUCCESS';\nexport const ENABLE_ONE_CLICK_BETS = 'ENABLE_ONE_CLICK_BETS';\nexport const ADD_ONE_CLICK_AMOUNT = 'ADD_ONE_CLICK_AMOUNT';\nexport const UPDATE_BET_SLIP = 'UPDATE_BET_SLIP';\nexport const RESET_BETSLIP_ODDS_CHANGE_MSG = 'RESET_BETSLIP_ODDS_CHANGE_MSG';\nexport const VALIDATE_BETSLIP_ODDS = 'VALIDATE_BETSLIP_ODDS';\nexport const FETCH_BET_STATUS_IN_PROGRESS = 'FETCH_BET_STATUS_IN_PROGRESS';\nexport const FETCH_BET_STATUS_SUCCESS = 'FETCH_BET_STATUS_SUCCESS';\nexport const FETCH_BET_STATUS_FAIL = 'FETCH_BET_STATUS_FAIL';\nexport const CLEAR_BET_STATUS_RESPONSE = 'CLEAR_BET_STATUS_RESPONSE';\n","export const IS_ADMIN_REPORTS_URL = 'IS_ADMIN_REPORTS_URL';\nexport const IS_ADMIN_RISKMGMT_URL = 'IS_ADMIN_RISKMGMT_URL';\nexport const IS_HOUSE_URL = 'IS_HOUSE_URL';\nexport const TOGGLE_DARK_MODE = 'TOGGLE_DARK_MODE';\nexport const FETCH_BETTING_CURRENCY_SUCCESS = 'FETCH_BETTING_CURRENCY_SUCCESS';\nexport const FETCH_BETTING_CURRENCY_FAILED = 'FETCH_BETTING_CURRENCY_FAILED';\nexport const CASINO_GAME_SELECTED = 'CASINO_GAME_SELECTED';\nexport const SET_DC_GAME_URL = 'SET_DC_GAME_URL';\nexport const SET_LIVESTREAM_URL = 'SET_LIVESTREAM_URL';\nexport const SET_PLAY_STREAM = 'SET_PLAY_STREAM';\nexport const SET_ALLOWED_CONFIG = 'SET_ALLOWED_CONFIG';\nexport const ENABLE_COMMISSION = 'ENABLE_COMMISSION';\nexport const TRIGGER_FETCH_BALANCE = 'TRIGGER_FETCH_BALANCE';\nexport const TRIGGER_FETCH_NOTIFICATIONS = 'TRIGGER_FETCH_NOTIFICATIONS';\nexport const FETCH_CONTENT_CONFIG_SUCCESS = 'FETCH_CONTENT_CONFIG_SUCCESS';\nexport const SET_DOMAIN_CONFIG = 'SET_DOMAIN_CONFIG';\n","export const LOGIN_SUCCESS = 'LOGIN_SUCESS';\nexport const LOGIN_FAILED = 'LOGIN_FAILED';\nexport const AUTH_REQUEST_START = 'AUTH_REQUEST_START';\nexport const AUTH_REQUEST_END = 'AUTH_REQUEST_END';\nexport const LOG_OUT = 'LOG_OUT';\nexport const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS';\nexport const FETCH_BALANCE_SUCCESS = 'FETCH_BALANCE_SUCCESS';\nexport const FETCH_BALANCE_FAILED = 'FETCH_BALANCE_FAILED';\nexport const MAIL_VERIFIED_REQUEST_SUCCESS = 'MAIL_VERIFIED_REQUEST_SUCCESS';\nexport const MAIL_VERIFIED_REQUEST_FAILED = 'MAIL_VERIFIED_REQUEST_FAILED';\nexport const UPDATE_SCORECARD = 'UPDATE_SCORECARD';\nexport const HANDLE_SIDE_BAR = 'HANDLE_SIDE_BAR';\nexport const OPEN_DEPOSIT_MODAL = 'OPEN_DEPOSIT_MODAL';\nexport const OPEN_WITHDRAW_MODAL = 'OPEN_WITHDRAW_MODAL';\nexport const MLOBBY_SHOW = 'MLOBBY_SHOW';\nexport const OTP_LOGIN_SUCCESS = 'OTP_LOGIN_SUCCESS';\nexport const OTP_LOGIN_FAILED = 'OTP_LOGIN_FAILED';\n","import { createBrowserHistory } from 'history';\n\nimport {\n FETCH_BALANCE_SUCCESS,\n // FETCH_BALANCE_FAILED,\n LOGIN_SUCCESS,\n LOGIN_FAILED,\n AUTH_REQUEST_START,\n AUTH_REQUEST_END,\n LOG_OUT,\n LOG_OUT_SUCCESS,\n MAIL_VERIFIED_REQUEST_SUCCESS,\n MAIL_VERIFIED_REQUEST_FAILED,\n HANDLE_SIDE_BAR,\n OPEN_DEPOSIT_MODAL,\n OPEN_WITHDRAW_MODAL,\n MLOBBY_SHOW,\n OTP_LOGIN_SUCCESS,\n OTP_LOGIN_FAILED\n} from './authActionTypes';\nimport API from '../../api';\nimport SVLS_API from '../../svls-api';\nimport { BRAND_DOMAIN } from '../../constants/Branding';\n\ndeclare const sessionStorage: any;\n\nexport const requestStart = () => {\n return {\n type: AUTH_REQUEST_START,\n };\n};\n\nexport const requestEnd = () => {\n return {\n type: AUTH_REQUEST_END,\n };\n};\n\nexport const loginSuccess = (response) => {\n return {\n type: LOGIN_SUCCESS,\n payload: response,\n };\n};\n\nexport const setOpenDepositModal = (val: boolean) => {\n return {\n type: OPEN_DEPOSIT_MODAL,\n payload: val,\n };\n};\n\nexport const setOpenWithdrawModal = (val: boolean) => {\n return {\n type: OPEN_WITHDRAW_MODAL,\n payload: val,\n };\n};\n\nexport const otpLoginSuccess = (response) => {\n return {\n type: OTP_LOGIN_SUCCESS,\n payload: response,\n };\n};\n\nexport const otpLoginFailed = (response) => {\n return {\n type: OTP_LOGIN_FAILED,\n payload: response,\n };\n};\n\nexport const loginFailed = (err: string) => {\n return {\n type: LOGIN_FAILED,\n payload: err,\n };\n};\n\nexport const logoutSuccess = () => {\n return {\n type: LOG_OUT_SUCCESS,\n };\n};\n\nconst logoutFailed = (err: string) => {\n return {\n type: LOG_OUT,\n payload: err,\n };\n};\n\nexport const handleSideBar = () => {\n return {\n type: HANDLE_SIDE_BAR,\n };\n};\n\nexport const getUsernameFromToken = (): string => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).sub;\n }\n return null;\n};\n\nexport const getRoleFromToken = (): string => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).role;\n }\n return null;\n};\n\nexport const getPermissionFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).perm;\n }\n return null;\n};\n\nexport const getCurrencyTypeFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).cur;\n }\n return 0;\n};\n\nexport const getSapTokenFromToken = () => {\n var sapToken = sessionStorage.getItem('sap_token');\n if (sapToken) {\n return sapToken;\n }\n return null;\n};\n\nexport const getHouseIdFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).hid;\n }\n return null;\n};\n\nexport const getSportsBookFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).org;\n }\n return null;\n};\n\nexport const getParentIdFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).pid;\n }\n return null;\n};\n\nexport const getAccountPathFromToken = () => {\n if (sessionStorage.getItem('jwt_token')) {\n const claim = sessionStorage.getItem('jwt_token').split('.')[1];\n return JSON.parse(window.atob(claim)).path;\n }\n return null;\n};\n\nexport const fetchMailVerifiedSuccess = (mailVerified: boolean) => {\n return {\n type: MAIL_VERIFIED_REQUEST_SUCCESS,\n payload: mailVerified,\n };\n};\n\nexport const fetchMailVerifiedFailed = () => {\n return {\n type: MAIL_VERIFIED_REQUEST_FAILED,\n payload: null,\n };\n};\n\nexport const fetchMailVerifiedStatus = () => {\n return async (dispatch) => {\n try {\n const response = await API.get('/mail-verified', {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n });\n if (response.status === 200) {\n dispatch(fetchMailVerifiedSuccess(response.data.mailVerified));\n } else {\n dispatch(fetchMailVerifiedFailed());\n }\n } catch (ex) {\n dispatch(fetchMailVerifiedFailed());\n }\n };\n};\n\nexport const login = (username: string, password: string, code: string) => {\n return async (dispatch: Function) => {\n const uuid = uniqueGuid();\n dispatch(requestStart());\n try {\n let response;\n if (code) {\n response = await API.post('/mfa/validate/key', {\n username,\n code,\n uuid,\n });\n } else {\n const loginRequest = {\n username,\n password,\n uuid,\n };\n response = await API.post('/login', loginRequest);\n }\n sessionStorage.setItem('username', username);\n sessionStorage.setItem('jwt_token', response.data.jwtToken);\n // sessionStorage.setItem('bg_token', response.data.bgToken);\n // sessionStorage.setItem('bc_token', response.data.bcToken);\n // sessionStorage.setItem('wacs_token', response.wacsToken);\n // sessionStorage.setItem('dc_token', response.dcToken);\n dispatch(loginSuccess(response.data));\n const history = createBrowserHistory({ forceRefresh: true });\n let claim = response.data.jwtToken.split('.')[1];\n let permission = JSON.parse(window.atob(claim)).perm;\n let role = JSON.parse(window.atob(claim)).role;\n let status = JSON.parse(window.atob(claim)).sts;\n if (status === 2) {\n history.replace('/terms-and-conditions');\n } else if (status === 4) {\n history.replace('/reset-password');\n } else if ((permission & 2) !== 0) {\n history.replace('/platform_admin/house');\n } else if (role !== 'User') {\n history.replace('/admin');\n }\n } catch (err) {\n dispatch(loginFailed(err.response.data.message));\n }\n };\n};\n\nexport const signup = (username: string, password: string) => {\n return async (dispatch: Function) => {\n dispatch(requestStart());\n try {\n const response = await API.post('/user', {\n username,\n password,\n });\n dispatch(loginSuccess(response.data));\n sessionStorage.setItem('username', username);\n // sessionStorage.setItem('bg_token', response.data.bgToken);\n sessionStorage.setItem('jwt_token', response.data.jwtToken);\n // sessionStorage.setItem('wacs_token', response.data.wacsToken);\n // sessionStorage.setItem('dc_token', response.data.dcToken);\n } catch (err) {\n dispatch(loginFailed(err.message));\n }\n };\n};\n\nexport const logout = () => {\n const token = sessionStorage.getItem('jwt_token');\n return async (dispatch: Function) => {\n try {\n await SVLS_API.post('/account/v2/logout', null, {\n headers: {\n Authorization: token,\n },\n });\n const username = sessionStorage.getItem('username') ?? '';\n localStorage.removeItem(`multiMarket_${username}`);\n sessionStorage.clear();\n window.open(`https://${BRAND_DOMAIN}/login`, '_self');\n dispatch(logoutSuccess());\n } catch (err) {\n sessionStorage.clear();\n dispatch(logoutFailed(err.message));\n }\n const history = createBrowserHistory({ forceRefresh: true });\n history.replace('/');\n };\n};\n\nconst fetchBalanceSuccess = (balance: number) => {\n return {\n type: FETCH_BALANCE_SUCCESS,\n payload: balance,\n };\n};\n\n// const fetchBalanceFailed = () => {\n// return {\n// type: FETCH_BALANCE_FAILED,\n// };\n// };\n\nconst uniqueGuid = (): string => {\n const id = () => {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return (\n id() +\n id() +\n '-' +\n id() +\n '-' +\n id() +\n '-' +\n id() +\n '-' +\n id() +\n id() +\n id()\n );\n};\n\nexport const fetchBalance = () => {\n return async (dispatch: Function) => {\n try {\n const walletId = sessionStorage.getItem('aid');\n if (!walletId) {\n return;\n }\n \n const response = await SVLS_API.get(\n `/wallet/v2/wallets/${walletId}/balance`,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n },\n );\n dispatch(fetchBalanceSuccess(response.data));\n } catch (err) {\n // dispatch(fetchBalanceFailed());\n if (err.response && err.response.status === 401) {\n const token = sessionStorage.getItem('jwt_token');\n if (token) {\n dispatch(logout());\n }\n }\n }\n };\n};\n\nexport const enableMlobby = (isMolobby: boolean) => {\n return {\n type: MLOBBY_SHOW,\n payload: isMolobby,\n };\n};\n","import axios from 'axios';\nimport store from '../store/store';\nimport { logout } from '../store';\nimport { ThunkDispatch } from 'redux-thunk';\nimport { AnyAction } from 'redux';\nimport { RootState } from '../models/RootState';\nimport { getBaseUrl } from '../api-services/environment-url/environment-url';\n\nconst SVLS_API = axios.create({\n baseURL: getBaseUrl(\n process.env.REACT_APP_NODE_ENV,\n 'REACT_APP_REST_API_V2_URL'\n ),\n withCredentials: false,\n timeout: 10000, // 10 seconds\n});\n\n//Add a response interceptor\nSVLS_API.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error.response && error.response.status === 401) {\n console.log('***********Unauthorized Error**********');\n const token = sessionStorage.getItem('jwt_token');\n if (token) {\n (store.dispatch as ThunkDispatch)(logout());\n }\n }\n return Promise.reject(error);\n }\n);\n\nexport default SVLS_API;\n","import {\n RESET_STATE,\n SET_EVENT_TYPE,\n FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS,\n SET_COMPETITION,\n FETCH_EVENT_BY_COMPETITION_SUCCESS,\n SET_EXCH_EVENT,\n SET_PAGE_NUMBER,\n SET_LOADING,\n RESET_EVENTS,\n UPDATE_SECONDARY_MARKETS,\n UPDATE_FANCY_MARKETS,\n UPDATE_BOOKMAKER_MARKETS,\n DISABLE_EVENT_DATA,\n UPDATE_SCORECARD,\n UPDATE_SECONDARY_MATCH_ODDS,\n UPDATE_BINARY_MARKETS,\n UPDATE_PREMIUM_MARKETS,\n UPDATE_PREMIUM_MARKETS_WS,\n FETCH_TOTAL_EVENT_LIST,\n UPDATE_TOPIC_URLS,\n SUSPENDED_MARKETS,\n COMMISSION_MARKETS,\n TRIGGER_FETCH_MARKETS,\n TRIGGER_FETCH_ORDERS,\n TRIGGER_BET_STATUS,\n SET_SPORTS_RADAR_WS_CONNECTION,\n SET_DREAM_WS_CONNECTION,\n SET_BETFAIR_WS_CONNECTION,\n} from './exchangeSportsActionTypes';\nimport { SelectedObj } from '../../models/ExchangeSportsState';\nimport { AxiosResponse } from 'axios';\nimport API from '../../api';\nimport { EventDTO } from '../../models/common/EventDTO';\nimport { EXCH_SPORTS_MAP } from '../../constants/ExchangeEventTypes';\nimport { PROVIDER_ID } from '../../constants/Branding';\nimport SVLS_API from '../../svls-api';\nimport { EXCH_COMPETITIONS_MENU } from '../../constants/CommonConstants';\nimport { getAccountPathFromToken } from '../auth/authActions';\nimport { isAccountPath } from '../common/commonActions';\nimport { BFToSRIdMap, SPToBFIdMap } from '../../util/stringUtil';\n\n// redux Actions\nexport const resetExchangeState = () => {\n return {\n type: RESET_STATE,\n payload: {},\n };\n};\n\n// EventTypes\nexport const setEventType = (eventType: SelectedObj) => {\n return {\n type: SET_EVENT_TYPE,\n payload: eventType,\n };\n};\n\nexport const setPageNumber = (pageNo: number) => {\n return {\n type: SET_PAGE_NUMBER,\n payload: pageNo,\n };\n};\n\nconst setLoading = (laoding: boolean) => {\n return {\n type: SET_LOADING,\n payload: laoding,\n };\n};\n\nconst updateTopicUrlsInStore = (dispatch: Function, eventData: any) => {\n // Dispatch topic urls\n const topicUrlPayload = {\n matchOddsBaseUrl: eventData?.markets?.matchOddsBaseUrl,\n matchOddsTopic: eventData?.markets?.matchOddsTopic,\n bookMakerBaseUrl: eventData?.markets?.bookMakerBaseUrl,\n bookMakerTopic: eventData?.markets?.bookMakerTopic,\n fancyBaseUrl: eventData?.markets?.fancyBaseUrl,\n fancyTopic: eventData?.markets?.fancyTopic,\n premiumBaseUrl: eventData?.markets?.premiumBaseUrl,\n premiumTopic: eventData?.markets?.premiumTopic,\n };\n dispatch(updateTopicUrls(topicUrlPayload));\n};\n\n// Competitions\nexport const fetchCompetitions = (sportId: string) => {\n return async (dispatch: Function) => {\n try {\n if (sportId !== '') {\n const result = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/${sportId}/competitions`,\n {\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n if (result.data) {\n const payload = {\n sportId: sportId,\n competitions: result.data,\n };\n dispatch(fetchCompetitionsSuccess(payload));\n } else {\n const payload = {\n sportId: sportId,\n competitions: [],\n };\n dispatch(fetchCompetitionsSuccess(payload));\n }\n }\n } catch (err) {\n console.log(err);\n }\n };\n};\n\nconst fetchCompetitionsSuccess = (result) => {\n return {\n type: FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS,\n payload: result,\n };\n};\nconst fetchPremiumMarketsSuccess = (result) => {\n return {\n type: UPDATE_PREMIUM_MARKETS,\n payload: result,\n };\n};\n\nexport const setCompetition = (competition: SelectedObj) => {\n return {\n type: SET_COMPETITION,\n payload: competition,\n };\n};\n\n// Events\nexport const fetchEventsByCompetition = (\n sportId: string,\n competitionId: string,\n events: EventDTO[],\n track: string = ''\n) => {\n return async (dispatch: Function) => {\n try {\n if (sportId !== '' && competitionId !== '') {\n dispatch(setLoading(true));\n let result = null;\n if (sessionStorage.getItem('jwt_token')) {\n result = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/${sportId}/competitions/${competitionId}/events`,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n } else {\n result = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/${sportId}/competitions/${competitionId}/events`,\n {\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n }\n\n let newList = [];\n if (result && result.data.length > 0) {\n updateTopicUrlsInStore(dispatch, result.data[0]);\n for (let eventData of result.data) {\n try {\n if (eventData.eventId) {\n newList.push(eventData.eventId);\n const eData: EventDTO = {\n enabled: eventData.enabled,\n status: eventData.status,\n openDate: eventData.openDate,\n sportId: eventData.sportId.includes(':')\n ? SPToBFIdMap[eventData.sportId]\n : eventData.sportId,\n competitionId: eventData.competitionId,\n competitionName: eventData.competitionName\n ? eventData.competitionName\n : 'Other',\n eventId: eventData.eventId,\n eventName: eventData.eventName,\n marketId: eventData.marketId,\n providerName: eventData.providerName,\n enableFancy: eventData.markets\n ? eventData?.markets?.enableFancy\n : false,\n enableMatchOdds: eventData.markets\n ? eventData?.markets?.enableMatchOdds\n : false,\n enableBookmaker: eventData.markets\n ? eventData?.markets?.enableBookmaker\n : false,\n enablePremium: eventData.markets\n ? eventData?.markets?.enablePremium\n : false,\n };\n const payload = {\n eventData: eData,\n sportId: eData.sportId,\n competitionId: eData.competitionId,\n matchOddsData:\n eventData.markets && eventData.markets.matchOdds\n ? eventData.markets.matchOdds.find(\n (mo) =>\n mo.marketName === 'Match Odds' ||\n mo.marketName.toLowerCase() === 'moneyline'\n )\n : null,\n };\n\n dispatch(fetchEventByCompetitionSuccess(payload));\n if (eData.sportId === '1' || eData.sportId === '4') {\n for (let mo of eventData.markets.matchOdds) {\n if (\n mo.marketName !== 'Match Odds' &&\n mo.marketName.toLowerCase() !== 'moneyline'\n ) {\n const secMOPayload = {\n eventId: eData.eventId,\n marketId: mo.marketId,\n matchOddsData: mo,\n };\n dispatch(updateSecondaryMatchOdds(secMOPayload));\n }\n }\n }\n if (eData.sportId === '4') {\n const secMarketsPayload = {\n eventId: eData.eventId,\n bookmakerOddsData: eventData.markets\n ? eventData.markets.bookmakers\n : null,\n enableBookmaker: eventData.markets\n ? eventData.markets.enableBookmaker\n : false,\n sessionOddsData: eventData.markets\n ? eventData.markets.fancyMarkets\n : null,\n enableFancy: eventData.markets\n ? eventData.markets.enableFancy\n : false,\n };\n if (!(track === EXCH_COMPETITIONS_MENU)) {\n dispatch(updateSecondaryMarkets(secMarketsPayload));\n }\n }\n }\n } catch (err) {\n console.log(err);\n }\n }\n if (events && events.length > 0) {\n for (let ie of events) {\n if (!newList.includes(ie.eventId)) {\n const payload = {\n sportId: ie.sportId,\n competitionId: ie.competitionId,\n eventId: ie.eventId,\n disableEvent: false,\n };\n dispatch(disableEventData(payload));\n }\n }\n }\n } else {\n for (let ie of events) {\n const payload = {\n sportId: ie.sportId,\n competitionId: ie.competitionId,\n eventId: ie.eventId,\n disableEvent: true,\n };\n dispatch(disableEventData(payload));\n }\n }\n dispatch(setLoading(false));\n }\n } catch (err) {\n console.log(err);\n dispatch(setLoading(false));\n }\n };\n};\n\nexport const fetchEventsBySport = (sportId: string, events: EventDTO[]) => {\n return async (dispatch: Function) => {\n try {\n if (sportId !== '') {\n dispatch(setLoading(true));\n let result = null;\n if (sessionStorage.getItem('jwt_token')) {\n result = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/${sportId}/competitions/*/events`,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n } else {\n result = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/${sportId}/competitions/*/events`,\n {\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n }\n\n let newList = [];\n\n if (result && result.data.length > 0) {\n updateTopicUrlsInStore(dispatch, result.data[0]);\n for (let eventData of result.data) {\n try {\n if (eventData.eventId) {\n newList.push(eventData.eventId);\n const eData: EventDTO = {\n enabled: eventData.enabled,\n status: eventData.status,\n openDate: eventData.openDate,\n sportId: eventData.sportId.includes(':')\n ? SPToBFIdMap[eventData.sportId]\n : eventData.sportId,\n competitionId: eventData.competitionId,\n competitionName: eventData.competitionName\n ? eventData.competitionName\n : 'Other',\n eventId: eventData.eventId,\n eventName: eventData.eventName,\n marketId: eventData.marketId,\n providerName: eventData.providerName,\n enableFancy: eventData.markets\n ? eventData?.markets?.enableFancy\n : false,\n enableMatchOdds: eventData.markets\n ? eventData?.markets?.enableMatchOdds\n : false,\n enableBookmaker: eventData.markets\n ? eventData?.markets?.enableBookmaker\n : false,\n enablePremium: eventData.markets\n ? eventData?.markets?.enablePremium\n : false,\n };\n const payload = {\n eventData: eData,\n sportId: eData.sportId,\n competitionId: eData.competitionId,\n matchOddsData:\n eventData.providerName.toLowerCase() === 'sportradar'\n ? eventData?.markets &&\n eventData?.markets?.matchOdds?.length > 0\n ? eventData?.markets?.matchOdds?.[0]\n : eventData.markets &&\n eventData?.markets?.premiumMarkets?.[0]\n : eventData.markets && eventData.markets.matchOdds\n ? eventData.markets && eventData.markets.matchOdds\n ? eventData.markets.matchOdds.find(\n (mo) =>\n mo.marketName === 'Match Odds' ||\n mo.marketName.toLowerCase() === 'moneyline'\n )\n : null\n : null,\n raceMarkets:\n eventData.markets && eventData.markets.matchOdds\n ? eventData.markets.matchOdds\n : [],\n };\n dispatch(fetchEventByCompetitionSuccess(payload));\n if (eData.sportId === '1') {\n if (eventData?.markets?.matchOdds?.length > 0) {\n for (let mo of eventData.markets.matchOdds) {\n if (\n mo.marketName !== 'Match Odds' &&\n mo.marketName.toLowerCase() !== 'moneyline'\n ) {\n const secMOPayload = {\n eventId: eData.eventId,\n marketId: mo.marketId,\n matchOddsData: mo,\n };\n dispatch(updateSecondaryMatchOdds(secMOPayload));\n }\n }\n }\n }\n\n // if (eData.sportId === '4') {\n // const secMarketsPayload = {\n // eventId: eData.eventId,\n // bookmakerOddsData: eventData.markets\n // ? eventData.markets.bookmakers\n // : null,\n // enableBookmaker: eventData.markets\n // ? eventData.markets.enableBookmaker\n // : false,\n // sessionOddsData: eventData.markets\n // ? eventData.markets.fancyMarkets\n // : null,\n // enableFancy: eventData.markets\n // ? eventData.markets.enableFancy\n // : false,\n // };\n // dispatch(updateSecondaryMarkets(secMarketsPayload));\n // }\n }\n } catch (err) {\n console.log(err);\n }\n }\n if (events && events.length > 0) {\n for (let ie of events) {\n if (!newList.includes(ie.eventId)) {\n const payload = {\n sportId: ie.sportId,\n competitionId: ie.competitionId,\n eventId: ie.eventId,\n disableEvent: false,\n };\n dispatch(disableEventData(payload));\n }\n }\n }\n } else {\n if (events) {\n for (let ie of events) {\n const payload = {\n sportId: ie.sportId,\n competitionId: ie.competitionId,\n eventId: ie.eventId,\n disableEvent: false,\n };\n dispatch(disableEventData(payload));\n }\n }\n }\n dispatch(setLoading(false));\n }\n } catch (err) {\n console.log(err);\n dispatch(setLoading(false));\n }\n };\n};\n\nexport const fetchInplayEvents = () => {\n return async (dispatch: Function) => {\n try {\n dispatch(setLoading(true));\n let result = null;\n if (sessionStorage.getItem('jwt_token')) {\n result = await SVLS_API.get(\n `catalog/v2/sports-feed/sports/live-events`,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n } else {\n result = await SVLS_API.get(\n `catalog/v2/sports-feed/sports/live-events`,\n {\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n }\n\n let newList = [];\n let temp = [];\n if (result && result.data.length > 0) {\n updateTopicUrlsInStore(dispatch, result.data[0]);\n for (let eventData of result.data) {\n try {\n if (eventData.eventId) {\n newList.push(eventData.eventId);\n const eData: EventDTO = {\n enabled: eventData.enabled,\n status: eventData.status,\n openDate: eventData.openDate,\n sportId: eventData.sportId.includes(\":\") ? SPToBFIdMap[eventData.sportId] : eventData.sportId,\n competitionId: eventData.competitionId,\n competitionName: eventData.competitionName\n ? eventData.competitionName\n : 'Other',\n eventId: eventData.eventId,\n eventName: eventData.eventName,\n marketId: eventData.marketId,\n providerName: eventData.providerName,\n enableFancy: eventData.markets\n ? eventData?.markets?.enableFancy\n : false,\n enableMatchOdds: eventData.markets\n ? eventData?.markets?.enableMatchOdds\n : false,\n enableBookmaker: eventData.markets\n ? eventData?.markets?.enableBookmaker\n : false,\n enablePremium: eventData.markets\n ? eventData?.markets?.enablePremium\n : false,\n };\n const payload = {\n eventData: eData,\n sportId: eData.sportId,\n competitionId: eData.competitionId,\n matchOddsData:\n eventData.providerName.toLowerCase() === 'sportradar'?\n eventData?.markets && eventData?.markets?.matchOdds?.length > 0 ?\n eventData?.markets?.matchOdds?.[0]\n : eventData.markets && eventData?.markets?.premiumMarkets?.[0]\n : eventData.markets && eventData.markets.matchOdds ?\n eventData.markets && eventData.markets.matchOdds\n ? eventData.markets.matchOdds.find(\n (mo) =>\n mo.marketName === 'Match Odds' ||\n mo.marketName.toLowerCase() === 'moneyline'\n )\n : null\n : null,\n };\n\n temp.push(payload);\n\n dispatch(fetchEventByCompetitionSuccess(payload));\n // if (eData.sportId === '1' || eData.sportId === '4') {\n // for (let mo of eventData.market.matchOdds) {\n // if (\n // mo.marketName !== 'Match Odds' &&\n // mo.marketName.toLowerCase() !== 'moneyline'\n // ) {\n // const secMOPayload = {\n // eventId: eventData.eventId,\n // marketId: mo.marketId,\n // matchOddsData: mo,\n // };\n // dispatch(updateSecondaryMatchOdds(secMOPayload));\n // }\n // }\n // }\n // if (eData.sportId === '4') {\n // const secMarketsPayload = {\n // eventId: eData.eventId,\n // bookmakerOddsData:\n // eventData.market && eventData.market.bookmakers\n // ? eventData.market.bookmakers\n // : null,\n // enableBookmaker: eventData.market\n // ? eventData.market.enableBookmaker\n // : false,\n // sessionOddsData:\n // eventData.market && eventData.market.fancyMarkets\n // ? eventData.market.fancyMarkets\n // : null,\n // enableFancy: eventData.market\n // ? eventData.market.enableFancy\n // : false,\n // enableMatchOdds: eventData?.market\n // ? eventData?.market?.enableMatchOdds\n // : false,\n // enablePremium: eventData?.market\n // ? eventData?.market?.enablePremium\n // : false,\n // };\n // dispatch(updateSecondaryMarkets(secMarketsPayload));\n // }\n }\n } catch (err) {\n console.log(err);\n }\n }\n }\n dispatch(setLoading(false));\n } catch (err) {\n console.log(err);\n dispatch(setLoading(false));\n }\n };\n};\n\nexport const updateOddsfromWS = (payload) => {\n return {\n type: FETCH_EVENT_BY_COMPETITION_SUCCESS,\n payload: payload,\n };\n};\n\nexport const disableEventData = (payload) => {\n return {\n type: DISABLE_EVENT_DATA,\n payload: payload,\n };\n};\n\nexport const updatePremiumMarkes = (payload) => {\n return {\n type: UPDATE_PREMIUM_MARKETS_WS,\n payload: payload,\n };\n};\n\nconst fetchEventByCompetitionSuccess = (result) => {\n return {\n type: FETCH_EVENT_BY_COMPETITION_SUCCESS,\n payload: result,\n };\n};\n\nexport const clearAllEvents = () => {\n return {\n type: RESET_EVENTS,\n payload: {},\n };\n};\n\nexport const setExchEvent = (event: SelectedObj) => {\n return {\n type: SET_EXCH_EVENT,\n payload: event,\n };\n};\n\nexport const fetchEvent = (\n sportId: string,\n competitionId: string,\n eventId: string,\n marketTime?: string\n) => {\n return async (dispatch: Function) => {\n try {\n \n if (sportId !== '' && competitionId !== '' && eventId !== '') {\n const cId = competitionId.includes('_')\n ? competitionId.split('_').join(':')\n : competitionId;\n const eId = eventId.includes('_')\n ? eventId.split('_').join(':')\n : eventId;\n let response = null;\n var eventDetails = [\n {\n providerId: PROVIDER_ID,\n sportId: sportId,\n competitionId: cId,\n eventId: eId,\n marketTime: marketTime,\n },\n ];\n if (sessionStorage.getItem('jwt_token')) {\n response = await SVLS_API.post(\n `/catalog/v2/sports-feed/sports/markets`,\n {\n providerId: PROVIDER_ID,\n marketsCriteria: 'ALL',\n eventDetails: eventDetails,\n },\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token')\n ? sessionStorage.getItem('jwt_token')\n : '',\n },\n }\n );\n } else {\n response = await SVLS_API.post(\n `/catalog/v2/sports-feed/sports/markets`,\n {\n providerId: PROVIDER_ID,\n marketsCriteria: 'ALL',\n eventDetails: eventDetails,\n }\n );\n }\n\n const eventData = response.data[0];\n updateTopicUrlsInStore(dispatch, eventData);\n if (eventData.eventId) {\n const eData: EventDTO = {\n enabled: eventData.enabled,\n status: eventData.status,\n openDate: eventData.openDate,\n sportId: eventData.sportId.includes(\":\") ? SPToBFIdMap[eventData.sportId] : eventData.sportId,\n competitionId: eventData.competitionId,\n competitionName: eventData.competitionName\n ? eventData.competitionName\n : 'Other',\n eventId: eventData.eventId,\n eventName: eventData.eventName,\n marketId: eventData.marketId,\n providerName: eventData.providerName,\n enableFancy: eventData.markets\n ? eventData?.markets?.enableFancy\n : false,\n enableMatchOdds: eventData.markets\n ? eventData?.markets?.enableMatchOdds\n : false,\n enableBookmaker: eventData.markets\n ? eventData?.markets?.enableBookmaker\n : false,\n enablePremium: eventData.markets\n ? eventData?.markets?.enablePremium\n : false,\n };\n\n for (let mo of eventData.markets.matchOdds) {\n if (eData.sportId === '4') {\n if (\n mo.marketName !== 'Match Odds' &&\n mo.marketName.toLowerCase() !== 'moneyline' &&\n mo.marketId !== '1.196548297' &&\n mo.marketId !== '1.196548301'\n ) {\n const secMOPayload = {\n eventId: eventData.eventId,\n marketId: mo.marketId,\n matchOddsData: mo,\n };\n dispatch(updateSecondaryMatchOdds(secMOPayload));\n }\n } else {\n if (\n mo.marketName !== 'Match Odds' &&\n mo.marketName.toLowerCase() !== 'moneyline'\n ) {\n const secMOPayload = {\n eventId: eventData.eventId,\n marketId: mo.marketId,\n matchOddsData: mo,\n };\n dispatch(updateSecondaryMatchOdds(secMOPayload));\n }\n }\n }\n // }\n\n if (eData.sportId === '4') {\n const secMarketsPayload = {\n eventId: eventData.eventId,\n bookmakerOddsData:\n eventData.markets && eventData.markets.bookmakers\n ? eventData.markets.bookmakers\n : null,\n enableBookmaker: eventData.markets\n ? eventData.markets.enableBookmaker\n : false,\n sessionOddsData:\n eventData.markets && eventData.markets.fancyMarkets\n ? eventData.markets.fancyMarkets\n : null,\n enableFancy: eventData.markets\n ? eventData.markets.enableFancy\n : false,\n fancySuspended: eventData.markets\n ? eventData.markets.fancySuspended\n : false,\n };\n dispatch(updateSecondaryMarkets(secMarketsPayload));\n }\n\n const secondaryMatchOddsMarketIds: string[] = [];\n let matchOddsData = null;\n if (eventData.markets && eventData.markets.matchOdds) {\n for (let mo of eventData.markets.matchOdds) {\n if (mo.marketName === 'Match Odds') {\n matchOddsData = mo;\n } else {\n secondaryMatchOddsMarketIds.push(mo.marketId);\n }\n }\n }\n const payload = {\n eventData: eData,\n sportId: SPToBFIdMap[eData.sportId] ? SPToBFIdMap[eData.sportId] : eData.sportId,\n competitionId: eData.competitionId,\n // matchOddsData:\n // eventData.market && eventData.market.matchOdds\n // ? eventData.market.matchOdds.find(\n // (mo) =>\n // mo.marketName === 'Match Odds' ||\n // mo.marketName.toLowerCase() === 'moneyline'\n // )\n // : null,\n matchOddsData: matchOddsData,\n secondaryMatchOddsMarketIds: secondaryMatchOddsMarketIds,\n onRefresh: true,\n };\n\n dispatch(fetchEventByCompetitionSuccess(payload));\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n };\n};\n\nexport const updateSecondaryMarkets = (payload) => {\n // console.log('secondaryMarkets update');\n return {\n type: UPDATE_SECONDARY_MARKETS,\n payload: payload,\n };\n};\nexport const updateFancyMarkets = (payload) => {\n return {\n type: UPDATE_FANCY_MARKETS,\n payload: payload,\n };\n};\nexport const updateBookMakerMarkets = (payload) => {\n // console.log(\"payload\",payload)\n return {\n type: UPDATE_BOOKMAKER_MARKETS,\n payload: payload,\n };\n};\n\nexport const updateSuspendedMarkets = (payload) => {\n return {\n type: SUSPENDED_MARKETS,\n payload: payload,\n };\n};\n\nexport const updateCommissionMarkets = (payload) => {\n return {\n type: COMMISSION_MARKETS,\n payload: payload,\n };\n};\n\nexport const updateSecondaryMatchOdds = (payload) => {\n return {\n type: UPDATE_SECONDARY_MATCH_ODDS,\n payload: payload,\n };\n};\n\nexport const updateBinaryMarkets = (payload) => {\n return {\n type: UPDATE_BINARY_MARKETS,\n payload: payload,\n };\n};\n\nexport const updateEventScorecard = (payload) => {\n // console.log(payload);\n return {\n type: UPDATE_SCORECARD,\n payload: payload,\n };\n};\n\nexport const updateTopicUrls = (payload) => {\n return {\n type: UPDATE_TOPIC_URLS,\n payload: payload,\n };\n};\n\nexport const fetchPremiummarketsByEventId = (\n providerId: string,\n sportId: string,\n competitionId: string,\n eventId: string,\n marketTime: string\n) => {\n return async (dispatch: Function) => {\n try {\n if (eventId !== '') {\n const cId = competitionId.includes('_')\n ? competitionId.split('_').join(':')\n : competitionId;\n const eId = eventId.includes('_')\n ? eventId.split('_').join(':')\n : eventId;\n var eventDetails = [\n {\n providerId: providerId,\n sportId: providerId === 'SportRadar'? BFToSRIdMap[sportId] : sportId,\n competitionId: cId,\n eventId: eId,\n marketTime: marketTime,\n },\n ];\n const response: AxiosResponse = await SVLS_API.post(\n `/catalog/v2/sports-feed/sports/markets`,\n {\n providerId: providerId,\n marketsCriteria: providerId === 'SportRadar'? 'ALL' : 'PREMIUM',\n eventDetails: eventDetails,\n }\n );\n const eventData = response.data[0];\n // TODO: uncomment when data coming from sap\n // updateTopicUrlsInStore(dispatch, eventData);\n if (eventData.eventId) {\n const payload = {\n onRefresh: true,\n eventId: eventId,\n eventData: eventData,\n };\n if (providerId !== PROVIDER_ID) {\n dispatch(fetchEventByCompetitionSuccess(payload));\n }\n dispatch(fetchPremiumMarketsSuccess(payload));\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n };\n};\n\nconst fetchCountCategoryEventsSuccess = (result) => {\n return {\n type: FETCH_TOTAL_EVENT_LIST,\n payload: result,\n };\n};\n\nexport const triggerFetchMarkets = (\n sportId,\n competitionId,\n eventId,\n notificationData\n) => {\n var limitKey = notificationData.limitKey;\n var trigger = false;\n\n if (isAccountPath(limitKey)) {\n if (getAccountPathFromToken().includes(limitKey)) {\n trigger = true;\n }\n } else {\n limitKey = limitKey.concat('/');\n const checkKey = limitKey.includes('/EI/')\n ? `/EI/${eventId}/`\n : limitKey.includes('/CI/')\n ? `/CI/${competitionId}/`\n : limitKey.includes('/SI/')\n ? `/SI/${sportId}/`\n : limitKey.includes('/SPORTS/')\n ? `/SPORTS/`\n : null;\n\n trigger = !!checkKey && limitKey.includes(checkKey);\n }\n if (trigger) {\n return {\n type: TRIGGER_FETCH_MARKETS,\n };\n }\n};\n\nexport const triggerFetchOrders = () => {\n return {\n type: TRIGGER_FETCH_ORDERS,\n };\n};\n\nexport const triggerBetStatus = () => {\n return {\n type: TRIGGER_BET_STATUS,\n };\n};\n\nexport const fetchCountCategoryEvents = () => {\n return async (dispatch: Function) => {\n try {\n let response = null;\n if (sessionStorage.getItem('jwt_token')) {\n response = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/events-count`,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n } else {\n response = await SVLS_API.get(\n `/catalog/v2/sports-feed/sports/events-count`,\n {\n params: {\n providerId: PROVIDER_ID,\n },\n }\n );\n }\n dispatch(fetchCountCategoryEventsSuccess(response.data));\n } catch (ex) {\n console.log(ex);\n }\n };\n};\n\nexport const setBetFairWSConnection = (betFairWSConnected: boolean) => {\n return {\n type: SET_BETFAIR_WS_CONNECTION,\n payload: betFairWSConnected,\n };\n};\n\nexport const setSportsRadarWSConnection = (sportsRadarWSConnected: boolean) => {\n return {\n type: SET_SPORTS_RADAR_WS_CONNECTION,\n payload: sportsRadarWSConnected,\n };\n};\n\nexport const setDreamWSConnection = (dreamWSConnected: boolean) => {\n return {\n type: SET_DREAM_WS_CONNECTION,\n payload: dreamWSConnected,\n };\n};\n","export const SET_MULTIMARKET_EVENT_DATA = 'SET_MULTIMARKET_EVENT_DATA';\r\nexport const UPDATE_MULTIMARKET_SECONDARY_MARKETS =\r\n 'UPDATE_MULTIMARKET_SECONDARY_MARKETS';\r\nexport const UPDATE_MULTIMARKET_FANCY_MARKETS =\r\n 'UPDATE_MULTIMARKET_FANCY_MARKETS';\r\nexport const UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS =\r\n 'UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS';\r\nexport const UPDATE_MULTIMARKET_BOOKMAKER_MARKETS =\r\n 'UPDATE_MULTIMARKET_BOOKMAKER_MARKETS';\r\nexport const MULTI_SUSPENDED_MARKETS = 'MULTI_SUSPENDED_MARKETS';\r\nexport const MULTI_COMMISSION_MARKETS = 'MULTI_COMMISSION_MARKETS';\r\nexport const TRIGGER_MULTI_FETCH_MARKETS = 'TRIGGER_MULTI_FETCH_MARKETS';\r\nexport const TRIGGER_MULTI_FETCH_ORDERS = 'TRIGGER_MULTI_FETCH_ORDERS';\r\nexport const TRIGGER_MULTI_BET_STATUS = 'TRIGGER_MULTI_BET_STATUS';\r\n","import {\n getAccountPathFromToken,\n getSportsBookFromToken,\n} from '../auth/authActions';\nimport { Currency } from '../../models/Currency';\n\nimport {\n IS_ADMIN_REPORTS_URL,\n IS_ADMIN_RISKMGMT_URL,\n IS_HOUSE_URL,\n TOGGLE_DARK_MODE,\n FETCH_BETTING_CURRENCY_SUCCESS,\n FETCH_BETTING_CURRENCY_FAILED,\n CASINO_GAME_SELECTED,\n SET_DC_GAME_URL,\n SET_LIVESTREAM_URL,\n SET_PLAY_STREAM,\n SET_ALLOWED_CONFIG,\n ENABLE_COMMISSION,\n TRIGGER_FETCH_BALANCE,\n TRIGGER_FETCH_NOTIFICATIONS,\n FETCH_CONTENT_CONFIG_SUCCESS,\n SET_DOMAIN_CONFIG,\n} from './commonActionTypes';\n\nimport { CurrencyDetails } from '../../models/CurrencyDetails';\nimport moment from 'moment';\nimport SVLS_API from '../../svls-api';\nimport { DomainConfig } from '../../models/DomainConfig';\nimport { BRAND_DOMAIN } from '../../constants/Branding';\n\nexport const activateReportsTab = (value: boolean) => {\n return {\n type: IS_ADMIN_REPORTS_URL,\n payload: value,\n };\n};\n\nexport const activateRiskMgmtTab = (value: boolean) => {\n return {\n type: IS_ADMIN_RISKMGMT_URL,\n payload: value,\n };\n};\n\nexport const activateHouseTab = (value: boolean) => {\n return {\n type: IS_HOUSE_URL,\n payload: value,\n };\n};\n\nexport const toggleDarkMode = (value: string) => {\n return {\n type: TOGGLE_DARK_MODE,\n payload: value,\n };\n};\n\nexport const setPlayStream = (value: boolean) => {\n return {\n type: SET_PLAY_STREAM,\n payload: value,\n };\n};\n\nconst fetchBettingCurrencySuccess = (currency: CurrencyDetails) => {\n return {\n type: FETCH_BETTING_CURRENCY_SUCCESS,\n payload: currency,\n };\n};\n\nconst fetchBettingCurrencyFailed = () => {\n return {\n type: FETCH_BETTING_CURRENCY_FAILED,\n };\n};\n\nexport const fetchBettingCurrency = () => {\n return async (dispatch: Function) => {\n /*\n try {\n const response = await API.get('/user/betting-currency', {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n });\n dispatch(fetchBettingCurrencySuccess(response.data));\n } catch (err) {\n dispatch(fetchBettingCurrencyFailed());\n if (err.response && err.response.status === 401) {\n const token = sessionStorage.getItem('jwt_token');\n if (token) {\n dispatch(logout());\n }\n }\n }\n */\n };\n return Currency.Pts;\n};\n\nexport const casinoGameSelected = (casinoGame: {\n id: string;\n name: string;\n}) => {\n return {\n type: CASINO_GAME_SELECTED,\n payload: casinoGame,\n };\n};\n\nexport const setDcGameUrl = (url: string) => {\n return {\n type: SET_DC_GAME_URL,\n payload: url,\n };\n};\n\nexport const setLivestreamUrl = (url: string) => {\n return {\n type: SET_LIVESTREAM_URL,\n payload: url,\n };\n};\n\nexport const setAllowedConfig = (allowedConfig: number) => {\n return {\n type: SET_ALLOWED_CONFIG,\n payload: allowedConfig,\n };\n};\n\nexport const setDomainConfig = (config: DomainConfig) => {\n return {\n type: SET_DOMAIN_CONFIG,\n payload: config,\n };\n};\n\nexport const enableCommission = (commission: boolean) => {\n return {\n type: ENABLE_COMMISSION,\n payload: commission,\n };\n};\n\nexport const triggerFetchBalance = (eventTime: number) => {\n return {\n type: TRIGGER_FETCH_BALANCE,\n payload: eventTime,\n };\n};\n\nexport const triggerFetchNotifications = (data) => {\n var adminAccountPath = data.adminAccountPath.concat('/');\n if (\n getAccountPathFromToken().includes(adminAccountPath) &&\n (data.sportsBooks.includes('all') ||\n data.sportsBooks.includes(getSportsBookFromToken()))\n ) {\n return {\n type: TRIGGER_FETCH_NOTIFICATIONS,\n payload: moment.now(),\n };\n }\n};\n\nexport const isAccountPath = (limitKey: string) => {\n return !limitKey.includes('/CT/SPORTS');\n};\n\nexport const fetchContentConfig = () => {\n return async (dispatch: Function) => {\n try {\n const response = await SVLS_API.get(\n `/account/v2/books/cache/${BRAND_DOMAIN}/content-config`,\n );\n if (!response?.data?.default_template) {\n dispatch(fetchContentConfigSuccess(response?.data));\n }\n } catch (err) {\n console.log(err);\n }\n };\n};\n\nconst fetchContentConfigSuccess = (result) => {\n return {\n type: FETCH_CONTENT_CONFIG_SUCCESS,\n payload: result,\n };\n};\n","import { AxiosResponse } from 'axios';\nimport API from '../../api';\nimport { BsData, PlaceBetRequest } from '../../models/BsData';\nimport { ButtonVariable } from '../../models/ButtonVariables';\nimport {\n ADD_EXCH_BET,\n EXCH_BET_ODDS_CHANGE,\n REMOVE_EXCH_BET,\n SET_EXCH_BET_STAKE,\n CLEAR_EXCHANGE_BETS,\n FETCH_OPEN_BETS_SUCCESS,\n CLEAR_SUCCESS_BETS,\n SET_BUTTON_VARIABLES,\n SET_BETTING_INPROGRESS,\n ADD_OPEN_BETS,\n BET_CANCEL_SUCCESS,\n ENABLE_ONE_CLICK_BETS,\n ADD_ONE_CLICK_AMOUNT,\n UPDATE_BET_SLIP,\n RESET_BETSLIP_ODDS_CHANGE_MSG,\n VALIDATE_BETSLIP_ODDS,\n FETCH_BET_STATUS_IN_PROGRESS,\n FETCH_BET_STATUS_SUCCESS,\n FETCH_BET_STATUS_FAIL,\n CLEAR_BET_STATUS_RESPONSE,\n} from './exchBetslipActionTypes';\nimport { PROVIDER_ID } from '../../constants/Branding';\nimport SVLS_API from '../../svls-api';\nimport REPORTING_API from '../../reporting-api';\nimport { SuspendedMarketDTO } from '../../models/common/SuspendedMarketDTO';\nimport store from '../store';\nimport { updateSuspendedMarkets } from '../exchangeSports/exchangeSportsActions';\nimport { updateMultiSuspendedMarkets } from '../multimarket/multimarketAction';\n\nexport const addExchangeBet = (data: PlaceBetRequest) => {\n return async (dispatch: Function) => {\n dispatch(clearExchcngeBets());\n dispatch(addBetHandler(data));\n };\n};\n\nexport const enableOnclickBet = (isOneClickEnable) => {\n return {\n type: ENABLE_ONE_CLICK_BETS,\n payload: isOneClickEnable,\n };\n};\nexport const addOnclickBetAmount = (amount: number) => {\n return {\n type: ADD_ONE_CLICK_AMOUNT,\n payload: amount,\n };\n};\n\nconst addBetHandler = (data: PlaceBetRequest) => {\n return {\n type: ADD_EXCH_BET,\n payload: data,\n };\n};\n\nexport const removeExchangeBet = (index: number) => {\n return {\n type: REMOVE_EXCH_BET,\n payload: index,\n };\n};\n\nexport const setExchangeBetStake = (\n index: number,\n amount: number,\n type: 'ADD' | 'SET'\n) => {\n return {\n type: SET_EXCH_BET_STAKE,\n payload: {\n index,\n amount,\n type,\n },\n };\n};\n\nexport const exchangeBetOddsChange = (index: number, odds: number) => {\n return {\n type: EXCH_BET_ODDS_CHANGE,\n payload: { index, odds },\n };\n};\n\nexport const clearExchcngeBets = () => {\n return {\n type: CLEAR_EXCHANGE_BETS,\n payload: [],\n };\n};\n\nexport const fetchOpenBetsSuccess = (result, totalOrders?: number) => {\n return {\n type: FETCH_OPEN_BETS_SUCCESS,\n payload: {\n result: result,\n totalOrders: totalOrders ?? 0,\n },\n };\n};\n\nexport const addOpenBets = (openBets) => {\n return {\n type: ADD_OPEN_BETS,\n payload: openBets,\n };\n};\n\nexport const fetchBetStatusInProgress = (response: any) => {\n return {\n type: FETCH_BET_STATUS_IN_PROGRESS,\n payload: response,\n };\n};\n\nexport const fetchBetStatusSuccess = (response: any) => {\n return {\n type: FETCH_BET_STATUS_SUCCESS,\n payload: response,\n };\n};\n\nexport const fetchBetStatusFail = (response: any) => {\n return {\n type: FETCH_BET_STATUS_FAIL,\n payload: response,\n };\n};\n\nexport const clearBetStatusResponse = () => {\n return {\n type: CLEAR_BET_STATUS_RESPONSE,\n };\n};\n\nconst updateSuspendedMarket = (data: any) => {\n let suspendedMarket: SuspendedMarketDTO = {\n // TODO: pass provider Id later\n providerId: '',\n sportId: data?.sportId,\n competitionId: data?.seriesId,\n eventId: data?.eventId,\n // TODO\n marketType:\n data?.marketType === 'MO'\n ? 'MATCH_ODDS'\n : data?.marketType === 'BM'\n ? 'BOOKMAKER'\n : data?.marketType,\n marketId: data?.marketId,\n suspend: true,\n };\n\n window.location.pathname === '/exchange_sports/multi-markets'\n ? store.dispatch(updateSuspendedMarkets(suspendedMarket))\n : store.dispatch(updateMultiSuspendedMarkets(suspendedMarket));\n};\n\nexport const betStatus = async () => {\n let response: AxiosResponse;\n response = await API.get('/bs/bet-status', {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n });\n\n if (response) {\n if (response.data.message === 'Market suspended') {\n updateSuspendedMarket(response);\n }\n\n if (response.data.success) {\n if (\n response.data?.message &&\n response.data.message === 'BETTING_IN_PROGRESS'\n ) {\n store.dispatch(\n fetchBetStatusInProgress({\n status: 'IN_PROGRESS',\n message: 'Bet is in progress.',\n })\n );\n } else {\n store.dispatch(\n fetchBetStatusSuccess({\n status: 'SUCCESS',\n message: response.data.message,\n })\n );\n }\n } else {\n store.dispatch(\n fetchBetStatusFail({\n status: 'FAIL',\n message: `Bet failed - ${response.data.message}`,\n })\n );\n }\n }\n};\n\nexport const fetchOpenBets = (eventId: string[] | string, sportId?: string) => {\n return async (dispatch: Function) => {\n if (eventId) {\n try {\n REPORTING_API.get('/reports/v2/orders/:search', {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n Accept: 'application/json',\n },\n params: {\n reportType: 'OPEN_ORDERS',\n status: 'Open',\n eventId: Array.isArray(eventId) ? eventId.join(',') : eventId,\n sportId: sportId,\n },\n })\n .then((response) => {\n // const opBets = openBetsList.concat(response.data);\n dispatch(\n fetchOpenBetsSuccess(\n response.data.orders,\n response.data.totalOrders\n )\n );\n })\n .catch((error) => {\n console.log(error);\n });\n } catch (err) {\n dispatch(fetchOpenBetsSuccess([]));\n }\n }\n };\n};\n\nexport const fetchCasinoOpenBets = (gameType: string, mId: string) => {\n return async (dispatch: Function) => {\n try {\n API.post(\n '/indian-casino/open-bets',\n {},\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n params: {\n gameType: gameType,\n mId: mId,\n },\n }\n )\n .then((response) => {\n let payload = [];\n for (const rec of response.data) {\n payload.push({\n betPlacedTime: rec.betPlacedTime,\n stakeAmount: rec.stakeAmount,\n oddValue: rec.odds,\n outcomeDesc: rec.nation,\n betType: 0,\n outcomeId: rec.sId,\n });\n }\n dispatch(fetchOpenBetsSuccess(payload));\n })\n .catch((error) => {\n console.log(error);\n });\n } catch (err) {\n dispatch(fetchOpenBetsSuccess([]));\n }\n };\n};\n\nexport const clearSuccessBets = (successIndices?: number[]) => {\n return {\n type: CLEAR_SUCCESS_BETS,\n payload: successIndices,\n };\n};\n\nexport const cancelBetSuccess = (betID: string) => {\n return {\n type: BET_CANCEL_SUCCESS,\n payload: betID,\n };\n};\n\nexport const fetchButtonVariables = () => {\n return async (dispatch: Function) => {\n try {\n const response: AxiosResponse = await SVLS_API.get(\n '/catalog/v2/settings/favourite-stakes/users',\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n }\n );\n if (response) {\n let btnVars = [];\n for (let btnVar of response.data) {\n btnVars.push({\n label: btnVar.label,\n stake: btnVar.stake,\n });\n }\n dispatch(setButtonVariables(btnVars));\n }\n } catch (err) {\n console.log(err);\n }\n };\n};\n\nexport const setButtonVariables = (buttonVariables: ButtonVariable[]) => {\n return {\n type: SET_BUTTON_VARIABLES,\n payload: buttonVariables,\n };\n};\n\nexport const setBettingInprogress = (val: boolean) => {\n return {\n type: SET_BETTING_INPROGRESS,\n payload: val,\n };\n};\n\nexport const updateBetslipfromWS = (payload) => {\n return {\n type: UPDATE_BET_SLIP,\n payload: payload,\n };\n};\n\nexport const resetOddsChangeMsg = (payload) => {\n return {\n type: RESET_BETSLIP_ODDS_CHANGE_MSG,\n payload: payload,\n };\n};\n\nexport const validateOdds = (payload) => {\n return {\n type: VALIDATE_BETSLIP_ODDS,\n payload: payload,\n };\n};\n","import LiveImg from '../assets/images/sportsbook/icons/liveIcon.svg';\nimport { format } from 'date-fns';\n\nimport CricketImg from '../assets/images/sportsbook/cricket-inplay.png';\nimport FootBallImg from '../assets/images/sportsbook/football-inplay.png';\nimport TennisImg from '../assets/images/sportsbook/tennis-inplay.png';\nimport HorseInplay from '../assets/images/sportsbook/horse-inplay.png';\nimport GreyHoundImg from '../assets/images/sportsbook/greyhound-live.png';\nimport BasketballImg from '../assets/images/sportsbook/basketball-inplay.png';\nimport BaseballImg from '../assets/images/sportsbook/baseball-live.png';\n\nimport CricketIcon from '../assets/images/home/tiles/Cricket-2.svg';\nimport TennisIcon from '../assets/images/home/tiles/Tennis.svg';\nimport FootballIcon from '../assets/images/home/tiles/Football.svg';\nimport TableTennisIcon from '../assets/images/home/tiles/tabletennis-icon.svg';\nimport EGamesIcon from '../assets/images/home/tiles/egames-icon.svg';\nimport RugbyIcon from '../assets/images/home/tiles/rugby-icon.svg';\nimport BoxingIcon from '../assets/images/home/tiles/boxing-icon.svg';\nimport BasketBallIcon from '../assets/images/home/tiles/basketball-icon.svg';\nimport BadmintonIcon from '../assets/images/home/tiles/badminton-icon.svg';\nimport CyclingIcon from '../assets/images/home/tiles/cycling-icon.svg';\nimport HorseRacingIcon from '../assets/images/home/tiles/horseracing-icon.svg';\nimport ChessIcon from '../assets/images/home/tiles/chess-icon.svg';\nimport SnookerIcon from '../assets/images/home/tiles/Snooker.svg';\nimport DartIcon from '../assets/images/home/tiles/Darts.svg';\n\nimport Basketball from '../assets/images/sportsbook/BasketBall.svg';\nimport Baseball from '../assets/images/sportsbook/BaseBall.svg';\nimport GreyHound from '../assets/images/sportsbook/GreyHound.svg';\n\n//new icon\nimport NewCricketImg from '../assets/images/sportsbook/new-inplay-icons/cricket.svg';\nimport NewFootBallImg from '../assets/images/sportsbook/new-inplay-icons/football.svg';\nimport NewTennisImg from '../assets/images/sportsbook/new-inplay-icons/tennis.svg';\nimport NewHorseInplay from '../assets/images/sportsbook/new-inplay-icons/horse.svg';\nimport NewGreyHoundImg from '../assets/images/sportsbook/new-inplay-icons/greyhound.svg';\nimport NewBasketballImg from '../assets/images/sportsbook/new-inplay-icons/baseketball.svg';\nimport NewBaseballImg from '../assets/images/sportsbook/new-inplay-icons/baseball.svg';\nimport JSEncrypt from 'jsencrypt';\nimport { RsaPublicKey } from '../constants/RSAPublicKey';\n\nexport const getEncreptedPwd = (password) => {\n let RSAEncrypt = new JSEncrypt({ default_key_size: '1024' });\n RSAEncrypt.setPublicKey(RsaPublicKey);\n return RSAEncrypt.encrypt(password);\n};\n\nexport function similarity(s1: string, s2: string) {\n let longer = s1;\n let shorter = s2;\n if (s1.length < s2.length) {\n longer = s2;\n shorter = s1;\n }\n const longerLength = longer.length;\n if (longerLength === 0) {\n return 1.0;\n }\n\n return (longerLength - editDistance(longer, shorter)) / longerLength;\n}\n\nfunction editDistance(s1: string, s2: string) {\n s1 = s1.toLowerCase();\n s2 = s2.toLowerCase();\n\n const costs: number[] = [];\n for (let i = 0; i <= s1.length; i++) {\n let lastValue = i;\n for (let j = 0; j <= s2.length; j++) {\n if (i === 0) costs[j] = j;\n else {\n if (j > 0) {\n let newValue = costs[j - 1];\n if (s1.charAt(i - 1) !== s2.charAt(j - 1))\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n costs[j - 1] = lastValue;\n lastValue = newValue;\n }\n }\n }\n if (i > 0) costs[s2.length] = lastValue;\n }\n return costs[s2.length];\n}\n\nexport const OutcomeDescByEnumMap = {\n 'Lost': 'Lost',\n 'Won': 'Win',\n 'Open': 'Unsettled',\n '11': 'Unsettled',\n 'RolledBack': 'Rolled Back',\n 'Voided': 'Void',\n 'Lapse': 'Lapsed',\n 'Cancelled': 'Cancelled',\n};\n\nexport const MarketTypeByEnumMap: { [key: string]: string } = {\n 'MATCH_ODDS': 'Match odds',\n 'BOOKMAKER': 'Bookmaker',\n 'FANCY': 'Fancy',\n 'PREMIUM': 'Premium',\n 'CASINO': 'Casino',\n 'BINARY': 'Binary',\n 'INDIAN_CASINO': 'Indian Casino',\n};\n\nexport function getOutcomeDescByEnumName(eventType: string) {\n return OutcomeDescByEnumMap[eventType];\n}\n\nexport const ThousandFormatter = (num: any) => {\n if (num > 999) {\n return (num / 1000).toFixed() + 'K';\n } else {\n return num;\n }\n};\n\nexport const _findIndexByArray = (array: any, value: any) => {\n for (var i = 0; i < array.length; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n};\n\nexport function formatDate(date: Date) {\n try {\n return format(date, 'dd-MM-yy hh:mm a');\n } catch (err) {\n console.log(date, err);\n return date;\n }\n}\n\nexport function formatTime(date: Date) {\n try {\n return format(date, 'HH:mm');\n } catch (err) {\n console.log(date, err);\n return date;\n }\n}\n\nexport const liveImagesMap = {\n '1': LiveImg,\n '2': LiveImg,\n '4': LiveImg,\n '7': LiveImg,\n '4339': LiveImg,\n '7522': LiveImg,\n '7511': LiveImg,\n};\n\nexport const SportIconMap = {\n '1': FootBallImg,\n '2': TennisImg,\n '4': CricketImg,\n '7': HorseInplay,\n '4339': GreyHoundImg,\n '7522': BasketballImg,\n '7511': BaseballImg,\n};\n\nexport const SportIconMapInplay = {\n '1': NewFootBallImg,\n '2': NewTennisImg,\n '4': NewCricketImg,\n '7': NewHorseInplay,\n '4339': NewGreyHoundImg,\n '7522': NewBasketballImg,\n '7511': NewBaseballImg,\n};\n\nconst SportIdByNameMap: { [key: string]: string } = {\n soccer: '1',\n football: '1',\n tennis: '2',\n cricket: '4',\n horse_racing: '7',\n horseracing: '7',\n grey_hound: '4339',\n greyhoundracing: '4339',\n basketball: '7522',\n baseball: '7511',\n};\n\nexport const SportIdByName: { [key: string]: string } = {\n '1': 'Football',\n '2': 'Tennis',\n '4': 'Cricket',\n '7': 'HorseRacing',\n '4339': 'GreyHound',\n '7522': 'BasketBall',\n '7511': 'BaseBall',\n};\n\nexport const OutcomeDescMap = {\n '0': 'Lost',\n '1': 'Win',\n '2': 'Unsettled',\n '11': 'Unsettled',\n '3': 'Rolled Back',\n '4': 'Void',\n '5': 'Lapsed',\n '6': 'Cancelled',\n};\n\nexport const IndianCasinoMarketNameMap: { [key: string]: string } = {\n '0': 'Lucky 7B',\n '1': 'Lucky 7A',\n '2': 'Teenpatti',\n '3': 'Dragon Tiger 2020',\n '4': 'Dragon Tiger Lion',\n '5': 'Bollywood Casino AAA',\n '6': 'Race 2020',\n '7': '32 Card',\n '8': '3Card Judgement',\n '9': 'Andar Bahar',\n};\n\nexport const MarketTypeMap: { [key: string]: string } = {\n '0': 'Match odds',\n '1': 'Book maker',\n '2': 'Fancy',\n '3': 'Premium Market',\n '4': 'Casino',\n '5': 'Binary',\n '6': 'Indian Casino',\n};\n\nexport const TransactionTypeMap = {\n '0': 'Deposit',\n '1': 'Withdraw',\n '2': 'Settlement Deposit',\n '3': 'Settlement Withdraw',\n '4': 'Bet Placement',\n '5': 'Bet Settlement',\n '6': 'Rollback Bet Settlement',\n '7': 'Void Bet Settlement',\n '8': 'Casino Bet Placement',\n '9': 'Casino Bet Settlement',\n '10': 'Casino Bet Rollback',\n '11': 'Win Commission',\n '12': 'Win Commission Reversal',\n '13': 'Indian Casino Bet Placement',\n '14': 'Indian Casino Bet Settlement',\n '15': 'Commission Claim',\n '16': 'Commission Deposit',\n '17': 'Commission Rollback',\n '18': 'Commission Void',\n '19': 'Casino Bet Placement',\n '20': 'Casino Bet Settlement',\n '21': 'Casino Rollback',\n '22': '-',\n '23': 'Binary Bet Placement',\n '24': 'Binary Bet Settlement',\n '25': 'Binary Bet Rollback',\n '26': 'Bet Placement',\n '27': 'Bet Settlement',\n '28': 'Bet Rollback',\n '29': 'Bet Void',\n '30': 'Bet Cancelled',\n '31': 'Bet Expired',\n '32': 'Bet Lapsed',\n '33': 'Bet Deleted',\n '34': 'Risk Update',\n '35': 'Binary Bet Void',\n '36': 'Sport Book Bet Placement',\n '37': 'Sport Book Bet Settlement',\n '38': 'sport Book Bet Rollback',\n '39': 'Rolling Commission',\n '40': 'Win Commission Update',\n '41': 'Win Commission Update',\n '42': 'Rollback Void Bet Settlement',\n '44': 'Commission Claim',\n '45': 'Bonus Redeemed',\n '46': 'Bonus Rollback'\n};\n\nexport const getBetTimeoutByMarket: { [key: string]: number } = {\n FANCY: 1,\n MO: 1,\n BM: 1,\n BINARY: 1,\n CASINO: 1,\n OT: 1,\n};\n\nexport function getTransactionNameByID(trans: string) {\n return TransactionTypeMap[trans];\n}\n\nexport function getOutcomeDescName(eventType: string) {\n return OutcomeDescMap[eventType];\n}\n\nexport function getSportIdByName(eventType: string) {\n return SportIdByNameMap[eventType];\n}\n\nexport function MarketTypeByID(id: string) {\n return MarketTypeMap[id] ? MarketTypeMap[id] : 'Casino';\n}\n\nexport function DisabledBinaryEvents() {\n return ['NIFTY BANK', 'NIFTY 50'];\n}\n\nexport const wrapData = (value: string, upto: number = 4) => {\n if (value.length <= upto) {\n return value;\n }\n return value.slice(0, upto) + '****';\n};\n\nexport const SportMarketMap: { [key: string]: string } = {\n 'MATCH ODDS': 'MT0.0',\n 'OVER/UNDER 0.5 GOALS': 'MT0.5',\n 'OVER/UNDER 1.5 GOALS': 'MT1.5',\n 'OVER/UNDER 2.5 GOALS': 'MT2.5',\n};\n\nexport const OfflineTransactionTypeMap: { [key: string]: number } = {\n BANK_TRANSACTION: 0,\n UPI_PHONE_PE: 1,\n UPI_GPAY: 2,\n PAYTM: 3,\n};\n\nexport const OfflineTransactionStatusTypeMap: { [key: string]: number } = {\n IN_PROGRESS: 0,\n ACCEPTED: 1,\n DECLINED: 2,\n};\n\nexport function getSportNameByIdMap(eventType: string) {\n return SportNameByIdMap[eventType];\n}\n\nexport const SportNameByIdMap: { [key: string]: string } = {\n '1': 'soccer',\n '2': 'tennis',\n '4': 'cricket',\n '7522': 'basketball',\n '7511': 'baseball',\n '4339': 'greyhoundracing',\n '7': 'horseracing',\n};\n\nexport const sidebarImgMap = {\n tennis: TennisIcon,\n football: FootballIcon,\n soccer: FootballIcon,\n cricket: CricketIcon,\n horseracing: HorseRacingIcon,\n greyhound: GreyHound,\n basketball: Basketball,\n baseball: Baseball,\n}\n\nexport const demoUserPrefix = \"zzzzsysdemo\";\n\nexport const capitalize = (str: string) => {\n const words = str.split(' ');\n for (let i = 0; i < words.length; i++) {\n if (words[i][0]?.toUpperCase()) {\n words[i] = words[i][0]?.toUpperCase() + words[i].substring(1);\n }\n }\n return words.join(' ');\n};\n\nexport const transactionTypesMap = {\n BET_PLACEMENT: 'Bet Placement',\n BET_SETTLEMENT: 'Bet Settlement',\n BINARY_BET_PLACEMENT: 'Binary Bet Placement',\n BINARY_BET_ROLLBACK: 'Binary Bet Rollback',\n BINARY_BET_SETTLEMENT: 'Binary Bet Settlement',\n BINARY_BET_VOID: 'Binary Bet Void',\n BONUS_REDEEMED: 'Bonus Redeemed',\n BONUS_ROLLED_BACK: 'Bonus Rolled Back',\n CASINO_BET_PLACEMENT: 'Casino Bet Placement',\n CASINO_BET_ROLLBACK: 'Casino Bet Rollback',\n CASINO_BET_SETTLEMENT: 'Casino Bet Settlement',\n CLAIM_INCENTIVE: 'Claim Incentive',\n COMMISSION_CLAIM: 'Commission Claim',\n COMMISSION_DEPOSIT: 'Commission Deposit',\n COMMISSION_ROLLBACK: 'Commission Rollback',\n COMMISSION_VOID: 'Commission Void',\n DEPOSIT: 'Deposit',\n GAP_BET_PLACEMENT: 'Gap Bet Placement',\n GAP_BET_ROLLBACK: 'Gap Bet Rollback',\n GAP_BET_SETTLEMENT: 'Gap Bet Settlement',\n INCENTIVE_TRANSFER: 'Incentive Transfer',\n INDIAN_CASINO_BET_PLACEMENT: 'Indian Casino Bet Placement',\n INDIAN_CASINO_BET_SETTLEMENT: 'Indian Casino Bet Settlement',\n ROLLBACK_BET_SETTLEMENT: 'Rollback Bet Settlement',\n ROLLBACK_VOID_BET_SETTLEMENT: 'Rollback Void Bet Settlement',\n ROLLBACK_WIN_COMMISSION: 'Rollback Win Commission',\n ROLLING_COMMISSION: 'Rolling Commission',\n ROLLING_COMMISSION_ROLLBACK: 'Rolling Commission Rollback',\n SAP_BET_CANCELLED: 'SAP Bet Cancelled',\n SAP_BET_DELETED: 'SAP Bet Deleted',\n SAP_BET_EXPIRED: 'SAP Bet Expired',\n SAP_BET_LAPSED: 'SAP Bet Lapsed',\n SAP_BET_PLACEMENT: 'SAP Bet Placement',\n SAP_BET_ROLLBACK: 'SAP Bet Rollback',\n SAP_BET_SETTLEMENT: 'SAP Bet Settlement',\n SAP_BET_VOID: 'SAP Bet Void',\n SAP_UPDATE_RISK: 'SAP Update Risk',\n SETTLEMENT_DEPOSIT: 'Settlement Deposit',\n SETTLEMENT_WITHDRAW: 'Settlement Withdraw',\n SPORT_BOOK_BET_PLACEMENT: 'Sport Book Bet Placement',\n SPORT_BOOK_BET_ROLLBACK: 'Sport Book Bet Rollback',\n SPORT_BOOK_BET_SETTLEMENT: 'Sport Book Bet Settlement',\n UN_KNOWN_TYPE: 'Unknown Type',\n VOID_BET_SETTLEMENT: 'Void Bet Settlement',\n WIN_COMMISSION: 'Win Commission',\n WIN_COMMISSION_UPDATE: 'Win Commission Update',\n WITHDRAW: 'Withdraw',\n};\n\nexport const transactionTypes = [\n { value: 'BET_PLACEMENT', name: 'Bet Placement' },\n { value: 'BET_SETTLEMENT', name: 'Bet Settlement' },\n { value: 'BINARY_BET_PLACEMENT', name: 'Binary Bet Placement' },\n { value: 'BINARY_BET_ROLLBACK', name: 'Binary Bet Rollback' },\n { value: 'BINARY_BET_SETTLEMENT', name: 'Binary Bet Settlement' },\n { value: 'BINARY_BET_VOID', name: 'Binary Bet Void' },\n { value: 'BONUS_REDEEMED', name: 'Bonus Redeemed' },\n { value: 'BONUS_ROLLED_BACK', name: 'Bonus Rolled Back' },\n { value: 'CASINO_BET_PLACEMENT', name: 'Casino Bet Placement' },\n { value: 'CASINO_BET_ROLLBACK', name: 'Casino Bet Rollback' },\n { value: 'CASINO_BET_SETTLEMENT', name: 'Casino Bet Settlement' },\n { value: 'CLAIM_INCENTIVE', name: 'Claim Incentive' },\n { value: 'COMMISSION_CLAIM', name: 'Commission Claim' },\n { value: 'COMMISSION_DEPOSIT', name: 'Commission Deposit' },\n { value: 'COMMISSION_ROLLBACK', name: 'Commission Rollback' },\n { value: 'COMMISSION_VOID', name: 'Commission Void' },\n { value: 'DEPOSIT', name: 'Deposit' },\n { value: 'GAP_BET_PLACEMENT', name: 'Gap Bet Placement' },\n { value: 'GAP_BET_ROLLBACK', name: 'Gap Bet Rollback' },\n { value: 'GAP_BET_SETTLEMENT', name: 'Gap Bet Settlement' },\n { value: 'INCENTIVE_TRANSFER', name: 'Incentive Transfer' },\n { value: 'INDIAN_CASINO_BET_PLACEMENT', name: 'Indian Casino Bet Placement' },\n { value: 'INDIAN_CASINO_BET_SETTLEMENT', name: 'Indian Casino Bet Settlement' },\n { value: 'ROLLBACK_BET_SETTLEMENT', name: 'Rollback Bet Settlement' },\n { value: 'ROLLBACK_VOID_BET_SETTLEMENT', name: 'Rollback Void Bet Settlement' },\n { value: 'ROLLBACK_WIN_COMMISSION', name: 'Rollback Win Commission' },\n { value: 'ROLLING_COMMISSION', name: 'Rolling Commission' },\n { value: 'ROLLING_COMMISSION_ROLLBACK', name: 'Rolling Commission Rollback' },\n { value: 'SAP_BET_CANCELLED', name: 'SAP Bet Cancelled' },\n { value: 'SAP_BET_DELETED', name: 'SAP Bet Deleted' },\n { value: 'SAP_BET_EXPIRED', name: 'SAP Bet Expired' },\n { value: 'SAP_BET_LAPSED', name: 'SAP Bet Lapsed' },\n { value: 'SAP_BET_PLACEMENT', name: 'SAP Bet Placement' },\n { value: 'SAP_BET_ROLLBACK', name: 'SAP Bet Rollback' },\n { value: 'SAP_BET_SETTLEMENT', name: 'SAP Bet Settlement' },\n { value: 'SAP_BET_VOID', name: 'SAP Bet Void' },\n { value: 'SAP_UPDATE_RISK', name: 'SAP Update Risk' },\n { value: 'SETTLEMENT_DEPOSIT', name: 'Settlement Deposit' },\n { value: 'SETTLEMENT_WITHDRAW', name: 'Settlement Withdraw' },\n {\n value: \"SPORT_BOOK_BET_PLACEMENT\",\n name: \"Sport Book Bet Placement\"\n },\n {\n value: \"SPORT_BOOK_BET_ROLLBACK\",\n name: \"Sport Book Bet Rollback\"\n },\n {\n value: \"SPORT_BOOK_BET_SETTLEMENT\",\n name: \"Sport Book Bet Settlement\"\n },\n {\n value: \"UN_KNOWN_TYPE\",\n name: \"Unknown Type\"\n },\n {\n value: \"VOID_BET_SETTLEMENT\",\n name: \"Void Bet Settlement\"\n },\n {\n value: \"WIN_COMMISSION\",\n name: \"Win Commission\"\n },\n {\n value: \"WIN_COMMISSION_UPDATE\",\n name: \"Win Commission Update\"\n },\n {\n value: \"WITHDRAW\",\n name: \"Withdraw\"\n }\n]\n\nexport const SPToBFIdMap = {\n 'sr:sport:1': '1',\n 'sr:sport:5': '2',\n 'sr:sport:21': '4',\n \"sr:sport:2\": \"7522\",\n \"sr:sport:3\": \"7511\",\n};\n\nexport const BFToSRIdMap = {\n '1': 'sr:sport:1',\n '2': 'sr:sport:5',\n '4': 'sr:sport:21',\n \"7522\": \"sr:sport:2\",\n \"7511\": \"sr:sport:3\",\n};\n\nconst allowedRedirectionUrls = [\n '/exchange_sports/inplay',\n '/exchange_sports/inplay',\n '/exchange_sports/tennis',\n '/exchange_sports/football',\n];\n\nexport const isValidLink = (data: any, history: any) => {\n if (!data.redirectionUrl || data.redirectionUrl === 'nourl') return;\n\n if (allowedRedirectionUrls.includes(data.redirectionUrl))\n history.push(data.redirectionUrl);\n\n window.open(data.redirectionUrl, '_blank');\n};","import { AuthState } from '../../models/AuthState';\nimport {\n FETCH_BALANCE_SUCCESS,\n FETCH_BALANCE_FAILED,\n LOGIN_SUCCESS,\n LOGIN_FAILED,\n AUTH_REQUEST_START,\n AUTH_REQUEST_END,\n LOG_OUT,\n LOG_OUT_SUCCESS,\n MAIL_VERIFIED_REQUEST_SUCCESS,\n MAIL_VERIFIED_REQUEST_FAILED,\n HANDLE_SIDE_BAR,\n OPEN_DEPOSIT_MODAL,\n OPEN_WITHDRAW_MODAL,\n MLOBBY_SHOW,\n OTP_LOGIN_FAILED,\n OTP_LOGIN_SUCCESS\n} from './authActionTypes';\n\ntype Action = {\n type: string;\n payload: any;\n};\n\nconst initialState: AuthState = {\n balanceSummary: {\n balance: null,\n balanceId: 0,\n currenciesAllowed: 0,\n currency: '',\n exposure: null,\n exposureLimit: 0,\n maxStakeSB: 0,\n minStakeSB: 0,\n preferredCurrency: '',\n username: '',\n bonus:null,\n },\n bcToken: sessionStorage.getItem('bc_token') || null,\n bgToken: sessionStorage.getItem('bg_token') || '-',\n jwtToken: sessionStorage.getItem('jwt_token') || '',\n loading: false,\n loginError: '',\n otpLoginSuccess: '',\n otpLoginError: '',\n loggedIn: sessionStorage.getItem('jwt_token') ? true : false,\n mailVerified: null,\n openDepositModal: false,\n openWithdrawModal: false,\n isMolobby : sessionStorage.getItem('mlobby') ? true : false,\n // sideBarOpen: false,\n};\n\nconst authReducer = (state = initialState, action: Action): AuthState => {\n switch (action.type) {\n case AUTH_REQUEST_START:\n return {\n ...state,\n loading: true,\n loginError: '',\n };\n case AUTH_REQUEST_END:\n return {\n ...state,\n loading: false,\n };\n case LOGIN_SUCCESS:\n return {\n ...state,\n bcToken: action.payload.bcToken ? action.payload.bcToken : '-',\n bgToken: action.payload.bgToken ? action.payload.bgToken : '-',\n jwtToken: action.payload,\n loading: false,\n loginError: '',\n loggedIn: true,\n mailVerified: action.payload.mailVerified\n ? action.payload.mailVerified\n : false,\n };\n case LOGIN_FAILED:\n return {\n ...state,\n bgToken: '-',\n jwtToken: '',\n loading: false,\n loginError: action.payload,\n loggedIn: false,\n };\n case OTP_LOGIN_SUCCESS:\n return {\n ...state,\n otpLoginSuccess: action.payload,\n otpLoginError: '',\n };\n case OTP_LOGIN_FAILED:\n return {\n ...state,\n otpLoginSuccess: '',\n otpLoginError: action.payload,\n };\n case LOG_OUT:\n return {\n ...state,\n loggedIn: false,\n bcToken: null,\n bgToken: '-',\n jwtToken: '',\n loading: false,\n mailVerified: null,\n };\n case LOG_OUT_SUCCESS:\n return {\n ...state,\n loggedIn: false,\n bcToken: null,\n bgToken: null,\n jwtToken: null,\n loading: false,\n mailVerified: null,\n };\n\n case FETCH_BALANCE_SUCCESS:\n return {\n ...state,\n balanceSummary: action.payload,\n };\n\n case FETCH_BALANCE_FAILED:\n return {\n ...state,\n balanceSummary: {\n balance: null,\n balanceId: 0,\n currenciesAllowed: 0,\n currency: '',\n exposure: null,\n exposureLimit: 0,\n maxStakeSB: 0,\n minStakeSB: 0,\n preferredCurrency: '',\n username: '',\n bonus:0,\n },\n };\n\n case MAIL_VERIFIED_REQUEST_SUCCESS:\n return {\n ...state,\n mailVerified: action.payload,\n };\n\n case MAIL_VERIFIED_REQUEST_FAILED:\n return {\n ...state,\n mailVerified: null,\n };\n case HANDLE_SIDE_BAR:\n return {\n ...state,\n // sideBarOpen: !state.sideBarOpen,\n };\n case OPEN_DEPOSIT_MODAL:\n return {\n ...state,\n openDepositModal: action.payload,\n };\n case OPEN_WITHDRAW_MODAL:\n return {\n ...state,\n openWithdrawModal: action.payload,\n };\n case MLOBBY_SHOW:\n return {\n ...state,\n isMolobby:action.payload\n };\n default:\n return state;\n }\n};\n\nexport default authReducer;\n","import {\n IS_ADMIN_REPORTS_URL,\n IS_ADMIN_RISKMGMT_URL,\n IS_HOUSE_URL,\n TOGGLE_DARK_MODE,\n FETCH_BETTING_CURRENCY_SUCCESS,\n FETCH_BETTING_CURRENCY_FAILED,\n CASINO_GAME_SELECTED,\n SET_DC_GAME_URL,\n SET_LIVESTREAM_URL,\n SET_PLAY_STREAM,\n SET_ALLOWED_CONFIG,\n ENABLE_COMMISSION,\n TRIGGER_FETCH_BALANCE,\n TRIGGER_FETCH_NOTIFICATIONS,\n FETCH_CONTENT_CONFIG_SUCCESS,\n SET_DOMAIN_CONFIG,\n} from './commonActionTypes';\nimport { CommonState } from '../../models/CommonState';\nimport { CONFIG_PERMISSIONS } from '../../constants/ConfigPermission';\nimport { BRAND_NAME } from '../../constants/Branding';\nimport { Currency } from '../../models/Currency';\n\ntype Action = {\n type: string;\n payload: any;\n};\n\nconst initialState: CommonState = {\n isAdminReportsUrl: false,\n isAdminRiskMgmtUrl: false,\n isHouseUrl: false,\n prefersDark: null,\n bettingCurrency: Currency.Pts,\n currenciesAllowed: null,\n selectedCasinoGame: null,\n tvGamesEnabled: false,\n dcGameUrl: '',\n streamUrl: '',\n playStream: false,\n allowedConfig: CONFIG_PERMISSIONS.sports + CONFIG_PERMISSIONS.casino,\n commissionEnabled: false,\n balanceChanged: null,\n notificationUpdated: null,\n contentConfig: null,\n domainConfig: {\n demoUser: false,\n signup: false,\n whatsapp: false,\n payments: false,\n bonus: false,\n casinoEnabled: true,\n sportsEnabled: true,\n isDomainConfigLoading: true,\n }\n};\n\nconst commonReducer = (state = initialState, action: Action): CommonState => {\n switch (action.type) {\n case IS_ADMIN_REPORTS_URL:\n return {\n ...state,\n isAdminReportsUrl: action.payload,\n };\n case IS_ADMIN_RISKMGMT_URL:\n return {\n ...state,\n isAdminRiskMgmtUrl: action.payload,\n };\n case IS_HOUSE_URL:\n return {\n ...state,\n isHouseUrl: action.payload,\n };\n case TOGGLE_DARK_MODE:\n return {\n ...state,\n prefersDark: action.payload,\n };\n\n case SET_PLAY_STREAM:\n return {\n ...state,\n playStream: action.payload,\n };\n\n case FETCH_BETTING_CURRENCY_SUCCESS:\n return {\n ...state,\n bettingCurrency: action.payload.bettingCurrency,\n currenciesAllowed: action.payload.currenciesAllowed,\n };\n\n case FETCH_BETTING_CURRENCY_FAILED:\n return {\n ...state,\n bettingCurrency: null,\n };\n case CASINO_GAME_SELECTED:\n return {\n ...state,\n selectedCasinoGame: action.payload,\n };\n case SET_DC_GAME_URL:\n return {\n ...state,\n dcGameUrl: action.payload,\n };\n case SET_LIVESTREAM_URL:\n return {\n ...state,\n streamUrl: action.payload,\n };\n case SET_ALLOWED_CONFIG:\n return {\n ...state,\n allowedConfig: action.payload,\n };\n case ENABLE_COMMISSION:\n return {\n ...state,\n commissionEnabled: action.payload,\n };\n case TRIGGER_FETCH_BALANCE:\n return {\n ...state,\n balanceChanged: action.payload,\n };\n case TRIGGER_FETCH_NOTIFICATIONS:\n return {\n ...state,\n notificationUpdated: action.payload,\n };\n case FETCH_CONTENT_CONFIG_SUCCESS:\n if (action.payload) {\n return {\n ...state,\n contentConfig: action.payload,\n };\n }\n case SET_DOMAIN_CONFIG:\n return {\n ...state,\n domainConfig: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default commonReducer;\n","import {\n RESET_STATE,\n SET_EVENT_TYPE,\n FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS,\n SET_COMPETITION,\n FETCH_EVENT_BY_COMPETITION_SUCCESS,\n SET_EXCH_EVENT,\n SET_PAGE_NUMBER,\n SET_LOADING,\n RESET_EVENTS,\n UPDATE_SECONDARY_MARKETS,\n DISABLE_EVENT_DATA,\n UPDATE_SCORECARD,\n UPDATE_SECONDARY_MATCH_ODDS,\n UPDATE_BINARY_MARKETS,\n UPDATE_PREMIUM_MARKETS,\n UPDATE_PREMIUM_MARKETS_WS,\n UPDATE_FANCY_MARKETS,\n UPDATE_BOOKMAKER_MARKETS,\n FETCH_TOTAL_EVENT_LIST,\n FETCH_SPORTS_LIVE_EVENT_LIST,\n FETCH_SPORTS_UPCOMING_EVENT_LIST,\n UPDATE_TOPIC_URLS,\n SUSPENDED_MARKETS,\n COMMISSION_MARKETS,\n TRIGGER_FETCH_MARKETS,\n TRIGGER_FETCH_ORDERS,\n TRIGGER_BET_STATUS,\n SET_BETFAIR_WS_CONNECTION,\n SET_SPORTS_RADAR_WS_CONNECTION,\n SET_DREAM_WS_CONNECTION,\n} from './exchangeSportsActionTypes';\n\nimport {\n CompetitionEventTypeMap,\n ExchangeSportsState,\n SecondaryMarketsMap,\n SecondaryMarkets\n} from '../../models/ExchangeSportsState';\nimport { EXCHANGE_EVENT_TYPES } from '../../constants/ExchangeEventTypes';\nimport { CompetitionDTO } from '../../models/common/CompetitionDTO';\nimport { MatchOddsDTO, MatchOddsRunnerDTO } from '../../models/common/MatchOddsDTO';\nimport {\n BookmakerDTO,\n BookmakerRunnerDTO,\n} from '../../models/common/BookmakerDTO';\nimport { FancyMarketDTO } from '../../models/common/FancyMarketDTO';\nimport { ExchangePriceDTO } from '../../models/common/ExchangePriceDTO';\nimport { SPToBFIdMap, capitalize } from '../../util/stringUtil';\nimport { SuspendedMarketDTOMap } from '../../models/common/SuspendedMarketDTO';\nimport { SuspendedMarketDTO } from '../../models/common/SuspendedMarketDTO';\nimport { CommissionMarketDTO } from '../../models/common/CommissionMarketDTO';\nimport moment from 'moment';\n\ntype Action = {\n type: string;\n payload: any;\n};\n\nconst initialState: ExchangeSportsState = {\n eventTypes: EXCHANGE_EVENT_TYPES,\n selectedEventType: { id: '', name: '', slug: '' },\n fetchingEvents: false,\n pageNumebr: 1,\n pageSize: 20,\n competitions: {},\n selectedCompetition: { id: '', name: '', slug: '' },\n events: {},\n selectedEvent: { id: '', name: '', slug: '' },\n secondaryMatchOddsMap: {},\n secondaryMarketsMap: {},\n premiumMarketsMap: {},\n scorecard: null,\n binaryMarkets: [],\n // totalCountEvents: {},\n topicUrls: {\n matchOddsBaseUrl: '',\n matchOddsTopic: '',\n bookMakerBaseUrl: '',\n bookMakerTopic: '',\n fancyBaseUrl: '',\n fancyTopic: '',\n premiumBaseUrl: '',\n premiumTopic: ''\n },\n suspendedMarketsMap: {},\n triggerFetchMarkets: null,\n triggerFetchOrders: null,\n triggerBetStatus: null,\n betFairWSConnected: false,\n sportsRadarWSConnected: false,\n dreamWSConnected: false,\n};\n\nconst getMatchOddsSet = (prices: ExchangePriceDTO[]) => {\n let pricesSet: ExchangePriceDTO[] = [];\n if (prices?.length > 0) {\n for (let i = 0; i < 3; i += 1) {\n if (prices[i]) pricesSet.push(prices[i]);\n else pricesSet.push({ price: null, size: null });\n }\n }\n return pricesSet;\n};\nconst getFancyCategory = (runnerName: string) => {\n return runnerName? runnerName: 'session-market';\n};\n\nconst getFancySuspendedValue = (\n suspendMarketsMap: SuspendedMarketDTOMap,\n providerId: string,\n sportId: string,\n competitionId: string,\n dtoEventId: string,\n dtoMarketType: string,\n dtoFancySuspend: boolean\n) => {\n let fancySuspend: boolean;\n let key = dtoEventId + ':' + '*';\n if (suspendMarketsMap[key]) {\n // case for odds updates from websockets\n // suspend field will not be present in odds update from websocket\n let suspendedMarket = suspendMarketsMap[key];\n if (!suspendedMarket) {\n fancySuspend = false;\n } else if (suspendedMarket) {\n fancySuspend = suspendedMarket.suspend;\n }\n } else {\n fancySuspend = dtoFancySuspend;\n suspendMarketsMap[key] = {\n providerId: providerId,\n sportId: sportId,\n competitionId: competitionId,\n eventId: dtoEventId,\n marketType: dtoMarketType,\n marketId: '*',\n suspend: dtoFancySuspend,\n };\n } \n return fancySuspend;\n};\n\nconst getSuspendValue = (\n suspendMarketsMap: SuspendedMarketDTOMap,\n providerId: string,\n sportId: string,\n competitionId: string,\n dtoEventId: string,\n dtoMarketType: string,\n dtoMarketId: string,\n dtoSuspsend: boolean\n) => {\n let suspend: boolean;\n let key = dtoEventId + \":\" + dtoMarketId;\n\n // case: for storing initial state from markets api call\n if (dtoSuspsend !== undefined) {\n suspend = dtoSuspsend;\n suspendMarketsMap[key] = {\n providerId: providerId,\n sportId: sportId,\n competitionId: competitionId,\n eventId: dtoEventId,\n marketType: dtoMarketType,\n marketId: dtoMarketId,\n suspend: dtoSuspsend,\n };\n } else { \n // case for odds updates from websockets\n // suspend field will not be present in odds update from websocket\n let suspendedMarket = suspendMarketsMap[key];\n if (!suspendedMarket) {\n suspend = false;\n } else if (suspendedMarket) {\n suspend = suspendedMarket.suspend;\n }\n }\n\n return suspend;\n};\n\nconst exchangeSportsReducer = (\n state = initialState,\n action: Action\n): ExchangeSportsState => {\n switch (action.type) {\n case RESET_STATE: {\n return {\n ...state,\n eventTypes: [],\n selectedEventType: { id: '1', name: 'Football', slug: 'football' },\n competitions: {},\n selectedCompetition: { id: '', name: '', slug: '' },\n events: {},\n };\n }\n\n case SET_LOADING: {\n return {\n ...state,\n fetchingEvents: action.payload,\n };\n }\n\n case UPDATE_TOPIC_URLS: {\n return {\n ...state,\n topicUrls: action.payload,\n };\n }\n\n case SET_EVENT_TYPE: {\n return {\n ...state,\n selectedEventType: action.payload,\n pageNumebr: 1,\n };\n }\n\n case SET_PAGE_NUMBER: {\n return {\n ...state,\n pageNumebr: action.payload,\n };\n }\n\n case SUSPENDED_MARKETS: {\n let suspendedMarket: SuspendedMarketDTO = action.payload;\n let allSuspendedMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n const sportId = suspendedMarket.sportId;\n const competitionId = suspendedMarket.competitionId; \n const eventId = suspendedMarket.eventId;\n const marketType = suspendedMarket.marketType;\n const marketId = suspendedMarket.marketId;\n const key = eventId + \":\" + marketId;\n allSuspendedMarketsMap[key] = suspendedMarket;\n\n // TODO: check if the return statement is required or not ??\n switch (marketType) {\n case \"MATCH_ODDS\": {\n // Set suspend in match odds markets data\n const allEvents = { ...state.events };\n if (eventId && allEvents[sportId][competitionId][eventId]){\n let matchOddsMarket = allEvents[sportId][competitionId][eventId]?.matchOdds;\n if (matchOddsMarket.marketId === marketId) {\n matchOddsMarket.suspend = suspendedMarket.suspend;\n }\n }\n\n // For secondary match odds data\n const allSecMatchOddsMap = { ...state.secondaryMatchOddsMap };\n if (allSecMatchOddsMap[eventId + '-' + marketId]) {\n let matchOddsMarket = allSecMatchOddsMap[eventId + '-' + marketId];\n matchOddsMarket.suspend = suspendedMarket.suspend;\n }\n break;\n }\n case \"BOOKMAKER\": {\n // Set suspend in bookmaker markets data\n let secondaryMarketsMap: SecondaryMarketsMap = { ...state.secondaryMarketsMap};\n let secondaryMarkets: SecondaryMarkets = secondaryMarketsMap[eventId];\n let bookmakerMarkets: BookmakerDTO[] = secondaryMarkets.bookmakers;\n if (bookmakerMarkets && bookmakerMarkets.length) {\n for (let bm of bookmakerMarkets) {\n if (bm.marketId === marketId) bm.suspend = suspendedMarket.suspend;\n }\n }\n break;\n }\n case \"FANCY\": {\n // Set suspend in fancy markets data\n let secondaryMarketsMap: SecondaryMarketsMap = { ...state.secondaryMarketsMap};\n let secondaryMarkets: SecondaryMarkets = secondaryMarketsMap[eventId];\n let fancyMarkets: FancyMarketDTO[] = secondaryMarkets.fancyMarkets;\n if (fancyMarkets && fancyMarkets.length) {\n if (marketId === '*') {\n secondaryMarkets.fancySuspended = suspendedMarket.suspend;\n } else {\n for (let f of fancyMarkets) {\n if (f.marketId === marketId) f.suspend = suspendedMarket.suspend;\n }\n }\n }\n break;\n }\n default:\n console.log(\"SuspendMarket: Invalid market type: \", marketType);\n } \n \n return {\n ...state,\n suspendedMarketsMap: allSuspendedMarketsMap\n };\n }\n\n case COMMISSION_MARKETS: {\n let commissionMarket: CommissionMarketDTO = action.payload;\n const eventId = commissionMarket.eventId;\n const marketType = commissionMarket.marketType;\n const marketId = commissionMarket.marketId;\n let secondaryMarketsMap: SecondaryMarketsMap = { ...state.secondaryMarketsMap};\n let secondaryMarkets: SecondaryMarkets = secondaryMarketsMap[eventId];\n\n // TODO: check if the return statement is required or not ??\n switch (marketType) {\n case \"BOOKMAKER\": {\n // Set commission in bookmaker markets data\n let bookmakerMarkets: BookmakerDTO[] = secondaryMarkets.bookmakers;\n if (bookmakerMarkets && bookmakerMarkets.length) {\n for (let bm of bookmakerMarkets) {\n if (bm.marketId === marketId) bm.commissionEnabled = commissionMarket.commission;\n }\n }\n break;\n }\n case \"FANCY\": {\n // Set commission in fancy markets data\n let fancyMarkets: FancyMarketDTO[] = secondaryMarkets.fancyMarkets;\n if (fancyMarkets && fancyMarkets.length) {\n for (let f of fancyMarkets) {\n if (f.marketId === marketId) f.commissionEnabled = commissionMarket.commission;\n }\n }\n break;\n }\n default:\n console.log(\"CommissionMarket: Invalid market type: \", marketType);\n } \n \n return {\n ...state,\n secondaryMarketsMap: secondaryMarketsMap\n };\n }\n\n case FETCH_COMPETITIONS_BY_EVENT_TYPE_SUCCESS: {\n let competitions: CompetitionDTO[] = [];\n let allCompetitions: CompetitionEventTypeMap = { ...state.competitions };\n const eId = action.payload.sportId;\n for (let c of action.payload.competitions) {\n const nameSlug = c.competitionName\n .toLocaleLowerCase()\n .replace(/[^a-z0-9]/g, ' ')\n .replace(/ +/g, ' ')\n .trim()\n .split(' ')\n .join('-');\n competitions.push({\n id: c.competitionId,\n name: c.competitionName,\n slug: nameSlug,\n sportId: eId,\n });\n }\n allCompetitions[eId] = competitions;\n return {\n ...state,\n competitions: allCompetitions,\n };\n }\n\n case SET_COMPETITION: {\n return {\n ...state,\n selectedCompetition: action.payload,\n pageNumebr: 1,\n };\n }\n\n case TRIGGER_FETCH_MARKETS: {\n return {\n ...state,\n triggerFetchMarkets: moment.now()\n }\n }\n\n case TRIGGER_FETCH_ORDERS: {\n return {\n ...state,\n triggerFetchOrders: moment.now()\n }\n }\n\n case TRIGGER_BET_STATUS: {\n return {\n ...state,\n triggerBetStatus: moment.now()\n }\n }\n\n // case FETCH_TOTAL_EVENT_LIST: {\n // return {\n // ...state,\n // totalCountEvents: { ...action.payload },\n // };\n // }\n case FETCH_EVENT_BY_COMPETITION_SUCCESS: {\n const eId: string = action?.payload?.sportId\n ? action?.payload?.sportId\n : action?.payload?.eventData?.sportId;\n let cId: string = action?.payload?.competitionId\n ? action?.payload?.competitionId\n : action?.payload?.eventData?.competitionId;\n let eventId: string = action.payload.eventId\n ? action.payload.eventId\n : action.payload.eventData.eventId;\n\n cId = cId.split(':').join('_');\n eventId = eventId.split(':').join('_');\n // Add events map hierarchy\n const allEvents = { ...state.events };\n if (!allEvents[eId]) {\n allEvents[eId] = {};\n }\n if (!allEvents[eId][cId]) {\n allEvents[eId][cId] = {};\n }\n\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n // Add events data\n if (action.payload.eventData) {\n let eData;\n let limitMap = new Map();\n if (eventId && allEvents[eId][cId][eventId]){\n eData = { ...allEvents[eId][cId][eventId] };\n limitMap.set(allEvents[eId][cId][eventId]?.matchOdds.marketId, allEvents[eId][cId][eventId]?.matchOdds?.marketLimits);\n }\n else {\n // eData = { ...action.payload.eventData }\n eData = {\n ...action.payload.eventData,\n status:\n action.payload.eventData.status == 'OPEN'\n ? 'IN_PLAY'\n : action.payload.eventData.status,\n };\n }\n\n eData.competitionId = eData?.competitionId?.split(':').join('_');\n eData.eventId = eData?.eventId?.split(':').join('_');\n \n if (eData && eData.eventId) {\n const eventName = eData.eventName.toLowerCase();\n let homeTeam = eData.homeTeam ? eData.homeTeam : '';\n let awayTeam = eData.awayTeam ? eData.awayTeam : '';\n if (\n (homeTeam === '' &&\n awayTeam === '' &&\n (eventName?.toLowerCase().includes(' v ') ||\n eventName?.toLowerCase().includes(' vs '))) ||\n eventName?.toLowerCase().includes(' vs. ')\n ) {\n if (eventName.includes(' vs. ')) {\n homeTeam = eventName.split(' vs. ')[0];\n awayTeam = eventName.split(' vs. ')[1];\n } else {\n homeTeam = eventName?.toLowerCase().includes(' v ')\n ? eventName.split(' v ')[0].trim()\n : eventName.split(' vs ')[0].trim();\n awayTeam = eventName?.toLowerCase().includes(' v ')\n ? eventName.split(' v ')[1].trim().split(' - ')[0]\n : eventName.split(' vs ')[1].trim().split(' - ')[0];\n homeTeam = capitalize(homeTeam);\n awayTeam = capitalize(awayTeam);\n }\n }\n\n // Set MatchOdds Data.\n const matchOddsData = action.payload.matchOddsData;\n const runners: MatchOddsRunnerDTO[] = [];\n if (matchOddsData) {\n if (matchOddsData.runners && matchOddsData.runners.length > 0) {\n let i = 0;\n for (let e of matchOddsData.runners) {\n if (e) {\n let runnerName = e.runnerName ? e.runnerName : e.RunnerName;\n if (runnerName === undefined) {\n runnerName = '';\n }\n\n if (\n eData?.provderId?.toLowerCase() !== 'sportradar' &&\n matchOddsData.marketName.toLowerCase().includes('winner')\n ) {\n if (!runnerName.toLowerCase().includes('draw') && i === 0) {\n if (runnerName === '') {\n runnerName = homeTeam;\n } else if (runnerName !== awayTeam) {\n homeTeam = runnerName;\n }\n }\n \n if (!runnerName.toLowerCase().includes('draw') && i !== 0) {\n if (runnerName === '') {\n runnerName = awayTeam;\n } else if (runnerName !== homeTeam) {\n awayTeam = runnerName;\n }\n }\n }\n\n i += 1;\n runners.push({\n runnerId: e.runnerId ? e.runnerId : e.runnerId,\n runnerName: runnerName,\n backPrices: getMatchOddsSet(e.backPrices),\n layPrices: getMatchOddsSet(e.layPrices),\n status: e.status,\n clothNumber: e?.clothNumber,\n jockeyName: e?.jockeyName,\n runnerAge: e?.runnerAge,\n runnerIcon: e?.runnerIcon,\n stallDraw: e?.stallDraw,\n trainerName: e?.trainerName,\n });\n }\n }\n }\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eData?.providerId,\n eData?.sportId,\n eData?.competitionId,\n eData?.eventId,\n eData?.marketType,\n eData?.marketId,\n matchOddsData?.suspended\n ); \n const bLimits = eData?.matchOdds?.limits;\n // eData.status = \"IN_PLAY\";\n eData.matchOdds = {\n marketId: matchOddsData.marketId ? matchOddsData.marketId : '',\n marketName: matchOddsData.marketName\n ? matchOddsData.marketName\n : '',\n // inplay: matchOddsData.inplay\n // ? matchOddsData.inplay\n // : eData.inPlay,\n status: matchOddsData.status ? matchOddsData.status : '',\n runners: runners,\n limits: matchOddsData.limits ? matchOddsData?.limits : bLimits,\n marketLimits: matchOddsData?.marketLimits?matchOddsData?.marketLimits : limitMap.get(matchOddsData.marketId),\n suspend: suspend,\n };\n } else {\n let matchOdds = eData.matchOdds;\n if (matchOdds) {\n eData.matchOdds = {\n marketId: matchOdds?.marketId,\n marketName: matchOdds?.marketName,\n // inplay: matchOdds?.inplay,\n status: 'SUSPENDED',\n runners: matchOdds?.runners,\n limits: matchOddsData?.limits,\n marketLimits: matchOddsData?.marketLimits,\n suspend: true,\n };\n } else {\n eData.matchOdds = {\n marketId: '',\n marketName: '',\n // inplay: 'false',\n status: 'SUSPENDED',\n runners: [],\n limits: null,\n suspend: true,\n };\n }\n }\n\n if (action.payload.raceMarkets?.length > 0) {\n let markets = [];\n for (const rm of action.payload.raceMarkets) {\n const runners: MatchOddsRunnerDTO[] = [];\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eData?.providerId,\n eData?.sportId,\n eData?.competitionId,\n eData?.eventId,\n eData?.marketType,\n rm.marketId,\n rm?.suspended\n ); \n if (rm.runners && rm.runners.length > 0) {\n let i = 0;\n for (let e of rm.runners) {\n if (e) {\n i += 1;\n runners.push({\n runnerId: e.runnerId,\n runnerName: e.runnerName,\n backPrices: getMatchOddsSet(e.backPrices),\n layPrices: getMatchOddsSet(e.layPrices),\n clothNumber: rm?.clothNumber,\n jockeyName: rm?.jockeyName,\n runnerAge: rm?.runnerAge,\n runnerIcon: rm?.runnerIcon,\n stallDraw: rm?.stallDraw,\n trainerName: rm?.trainerName,\n status: e.status,\n });\n }\n }\n }\n markets.push({\n marketId: rm.marketId,\n marketName: rm.marketName,\n marketTime: rm.marketTime,\n // inplay: rm.inplay,\n status: rm.status,\n runners: runners,\n suspend: suspend\n });\n }\n markets.sort((a, b) => {\n const aDesc = a.marketTime;\n const bDesc = b.marketTime;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n else return 0;\n });\n eData.raceMarkets = markets;\n }\n\n // Set EventData\n eData.homeTeam = homeTeam;\n eData.awayTeam = awayTeam;\n eData.secondaryMatchOddsMarketIds = action.payload\n .secondaryMatchOddsMarketIds\n ? action.payload.secondaryMatchOddsMarketIds\n : eData.secondaryMatchOddsMarketIds\n ? eData.secondaryMatchOddsMarketIds\n : [];\n eData.eventSlug = eData.eventSlug\n ? eData.eventSlug\n : eData.eventName\n ? eData.eventName\n .toLowerCase()\n .replace(/[^a-z0-9]/g, ' ')\n .replace(/ +/g, ' ')\n .trim()\n .split(' ')\n .join('-')\n : '';\n // eData.status = action.payload.eventData.status;\n allEvents[eId][cId][eData.eventId] = eData;\n }\n }\n\n if (action.payload.onRefresh) {\n const firstEvent = action.payload?.eventData;\n let currentSelectedCompetition;\n let currentSelectedEvent;\n let currentSelectedEventType;\n\n try {\n currentSelectedEventType =\n state.selectedEventType.id === eId\n ? { ...state.selectedEventType }\n : {\n id: eId,\n name: EXCHANGE_EVENT_TYPES.filter(\n (e) =>\n e.id === firstEvent.sportId ||\n e.id === SPToBFIdMap[firstEvent.sportId]\n )[0].name,\n slug: EXCHANGE_EVENT_TYPES.filter(\n (e) =>\n e.id === firstEvent.sportId ||\n e.id === SPToBFIdMap[firstEvent.sportId]\n )[0].slug,\n };\n currentSelectedCompetition =\n state.selectedCompetition.id === cId\n ? { ...state.selectedCompetition }\n : {\n id: action.payload.eventData?.competitionId\n ? action.payload.eventData.competitionId\n : '',\n name: action.payload.eventData?.competitionName\n ? action.payload.eventData.competitionName\n : '',\n slug: action.payload.eventData?.competitionName\n ? action.payload.eventData.competitionName\n .toLocaleLowerCase()\n .replace(/[^a-z0-9]/g, ' ')\n .replace(/ +/g, ' ')\n .trim()\n .split(' ')\n .join('-')\n : '',\n };\n\n currentSelectedEvent =\n state.selectedEvent.id === action.payload.eventData?.eventId\n ? { ...state.selectedEvent }\n : {\n id: action.payload.eventData?.eventId,\n slug: action.payload.eventData?.eventName\n .toLocaleLowerCase()\n .replace(/[^a-z0-9]/g, ' ')\n .replace(/ +/g, ' ')\n .trim()\n .split(' ')\n .join('-'),\n name: action.payload.eventData?.eventName,\n };\n } catch (_) {\n currentSelectedCompetition = { ...state.selectedCompetition };\n currentSelectedEvent = { ...state.selectedEvent };\n currentSelectedEventType = { ...state.selectedEventType };\n }\n return {\n ...state,\n events: allEvents,\n selectedEventType: currentSelectedEventType,\n selectedCompetition: currentSelectedCompetition,\n selectedEvent: currentSelectedEvent,\n suspendedMarketsMap: suspendMarketsMap,\n };\n }\n return {\n ...state,\n events: allEvents,\n };\n }\n\n case UPDATE_SECONDARY_MATCH_ODDS: {\n const eventData = action.payload;\n const eventId: string = eventData.eventId;\n const marketId: string = action.payload.marketId;\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n\n const allSecMatchOddsMap = { ...state.secondaryMatchOddsMap };\n\n const matchOddsData = action.payload.matchOddsData;\n const runners: MatchOddsRunnerDTO[] = [];\n let runnersData: MatchOddsRunnerDTO[] = allSecMatchOddsMap[\n eventId + '-' + marketId\n ]?.runners?.length\n ? [...allSecMatchOddsMap[eventId + '-' + marketId]?.runners]\n : [];\n\n if (matchOddsData) {\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eventData?.providerId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n matchOddsData?.marketType,\n matchOddsData?.marketId,\n matchOddsData?.suspended\n ); \n if (matchOddsData.runners && matchOddsData.runners.length > 0) {\n let data: any = {}; \n for (let e of matchOddsData.runners) {\n if (e) {\n data = runnersData?.find(\n (item) => item?.runnerId === e?.runnerId\n );\n\n runners.push({\n runnerId: e?.runnerId,\n runnerName: e?.runnerName,\n backPrices: getMatchOddsSet(e.backPrices),\n layPrices: getMatchOddsSet(e.layPrices),\n status: e?.status,\n clothNumber: e?.clothNumber\n ? e?.clothNumber\n : data?.clothNumber ?? '',\n jockeyName: e?.jockeyName\n ? e?.jockeyName\n : data?.jockeyName ?? '',\n runnerAge: e?.runnerAge ? e?.runnerAge : data?.runnerAge ?? '',\n runnerIcon: e?.runnerIcon\n ? e?.runnerIcon\n : data?.runnerIcon ?? '',\n stallDraw: e?.stallDraw ? e?.stallDraw : data?.stallDraw ?? '',\n trainerName: e?.trainerName\n ? e?.trainerName\n : data?.trainerName ?? '',\n });\n }\n }\n }\n allSecMatchOddsMap[eventId + '-' + marketId] = {\n marketId: matchOddsData.marketId,\n marketName: matchOddsData.marketName,\n marketTime: matchOddsData.marketTime,\n // inplay: matchOddsData.inplay,\n status: matchOddsData.status,\n runners: runners,\n limits: matchOddsData.limits\n ? matchOddsData.limits\n : allSecMatchOddsMap[eventId + '-' + marketId]?.limits,\n marketLimits: matchOddsData?.marketLimits\n ? matchOddsData.marketLimits\n : allSecMatchOddsMap[eventId + '-' + marketId]?.marketLimits,\n suspend: suspend,\n };\n } else {\n let matchOdds = allSecMatchOddsMap[eventId + '-' + marketId];\n if (matchOdds) {\n allSecMatchOddsMap[eventId + '-' + marketId] = {\n marketId: matchOdds.marketId,\n marketName: matchOdds.marketName,\n marketTime: matchOddsData.marketTime,\n // inplay: matchOdds.inplay,\n status: 'SUSPENDED',\n runners: matchOdds.runners,\n limits: matchOdds.limits,\n marketLimits: matchOddsData?.marketLimits\n ? matchOddsData.marketLimits\n : allSecMatchOddsMap[eventId + '-' + marketId]?.marketLimits,\n suspend: true,\n };\n } else {\n allSecMatchOddsMap[eventId + '-' + marketId] = {\n marketId: '',\n marketName: '',\n // inplay: false,\n status: 'SUSPENDED',\n runners: [],\n limits: null,\n suspend: true,\n };\n }\n }\n\n const secMatchOddsMap = { ...state.secondaryMatchOddsMap };\n secMatchOddsMap[eventId + '-' + marketId] =\n allSecMatchOddsMap[eventId + '-' + marketId];\n\n return {\n ...state,\n secondaryMatchOddsMap: secMatchOddsMap,\n suspendedMarketsMap: suspendMarketsMap,\n };\n }\n\n case UPDATE_FANCY_MARKETS: {\n try {\n const eventData = action.payload;\n const eventId: string = eventData.eventId;\n const fancyOddsData = action.payload.fancyUpdateData;\n const marketsMap = { ...state.secondaryMarketsMap };\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n\n // key as marketId value as fancy data\n const fancyMarkets = marketsMap[eventId].fancyMarkets;\n const prevFancyMap = new Map();\n let limitMap = new Map();\n for (const { marketId, commissionEnabled, marketLimits } of fancyMarkets) {\n if (commissionEnabled !== undefined) {\n prevFancyMap.set(marketId, commissionEnabled);\n }\n limitMap.set(marketId, marketLimits);\n }\n\n // Add event data\n if (action.payload.eventId) {\n if (!marketsMap[eventId]) {\n marketsMap[eventId] = {\n ...marketsMap[eventId],\n fancyMarkets: [],\n enableFancy: false,\n fancySuspended: false,\n };\n }\n\n // Set Fancy markets data\n let fancyOdds: FancyMarketDTO[] = [];\n if (fancyOddsData && fancyOddsData.length > 0) {\n for (let f of fancyOddsData) {\n if (!f.marketName.toLowerCase().split(' ').includes('bhav')) {\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eventData?.providerId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n f?.marketType,\n f?.marketId,\n f?.suspended\n ); \n fancyOdds.push({\n marketId: f.marketId ? f.marketId : '',\n marketName: f.marketName ? f.marketName : '',\n status: f.status ? f.status : '',\n sort: f.sort ? Number(f.sort) : 0,\n layPrice: f.noValue\n ? f.category === 'fancy3' || f.category === 'odd-even'\n ? f.noValue.toFixed(2)\n : f.noValue\n : null,\n backPrice: f.yesValue\n ? f.category === 'fancy3' || f.category === 'odd-even'\n ? f.yesValue.toFixed(2)\n : f.yesValue\n : null,\n laySize: f.noRate ? f.noRate : null,\n backSize: f.yesRate ? f.yesRate : null,\n category: getFancyCategory(f.category),\n commissionEnabled:\n f.commissionEnabled !== undefined\n ? f.commissionEnabled\n : prevFancyMap.get(f.marketId),\n marketLimits:\n f?.marketLimits\n ? f?.marketLimits\n : limitMap.get(f.marketId),\n suspend: suspend,\n });\n }\n }\n } else if (marketsMap[eventId].fancyMarkets) {\n fancyOdds = marketsMap[eventId].fancyMarkets;\n for (let fMarket of fancyOdds) {\n fMarket.status = 'SUSPENDED';\n fMarket.suspend = true;\n }\n }\n\n fancyOdds.sort((a, b) => {\n if (a?.sort - b?.sort != 0) {\n return a?.sort - b?.sort;\n }\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n return 0;\n });\n marketsMap[eventId].fancyMarkets = fancyOdds;\n marketsMap[eventId].fancySuspended = getFancySuspendedValue(\n suspendMarketsMap,\n eventData?.provderId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n \"FANCY\",\n marketsMap[eventId]?.fancySuspended\n )\n // marketsMap[eventId].enableFancy = action.payload.enableFancy;\n return {\n ...state,\n secondaryMarketsMap: marketsMap,\n suspendedMarketsMap: suspendMarketsMap,\n };\n }\n } catch (e) {\n console.error('Failed to update odds ', e);\n }\n }\n\n case UPDATE_BOOKMAKER_MARKETS: {\n try {\n const eventData = action.payload;\n const eventId: string = eventData.eventId;\n const marketsMap = { ...state.secondaryMarketsMap };\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n if (action.payload.eventId) {\n if (!marketsMap[eventId]) {\n marketsMap[eventId] = {\n ...marketsMap[eventId],\n bookmakers: [],\n enableBookmaker: false,\n };\n }\n\n // Set BookmakerOdds Data.\n const bookMakerOddsData =\n action?.payload?.bookmakerOddsData &&\n Array.isArray(action?.payload?.bookmakerOddsData)\n ? action?.payload?.bookmakerOddsData\n : [action?.payload?.bookmakerOddsData];\n\n // key as marketId value as bm data\n const bookmakers = marketsMap[eventId].bookmakers;\n const prevBMMap = new Map();\n let limitMap = new Map;\n for (const { marketId, commissionEnabled, marketLimits } of bookmakers) {\n if (commissionEnabled !== undefined) {\n prevBMMap.set(marketId, commissionEnabled);\n }\n limitMap.set(marketId, marketLimits)\n }\n\n let bookMakerOdds: BookmakerDTO[] = [];\n if (marketsMap[eventId]?.bookmakers?.length)\n bookMakerOdds = marketsMap[eventId]?.bookmakers;\n if (bookMakerOddsData && bookMakerOddsData.length) {\n for (let br of bookMakerOddsData) {\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eventData?.providerId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n br?.marketType,\n br?.marketId,\n br?.suspended\n ); \n let bmRunners: BookmakerRunnerDTO[] = [];\n for (let b of br.runners) {\n bmRunners.push({\n runnerId: b.runnerId ? b.runnerId : '',\n runnerName: b.runnerName ? b.runnerName : '',\n backPrice: b.backPrices[0]?.price,\n backSize: b.backPrices[0]?.size,\n layPrice: b.layPrices[0]?.price,\n laySize: b.layPrices[0]?.size,\n status: b.status ? b.status : '',\n sort: b.sort ? Number(b.sort) : 0,\n });\n }\n bmRunners.sort((a, b) => {\n if (a?.sort - b?.sort != 0) {\n return a?.sort - b?.sort;\n }\n const aDesc = a.runnerId;\n const bDesc = b.runnerId;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n else return 0;\n });\n let index = bookMakerOdds?.length\n ? bookMakerOdds.findIndex((itm) => itm.marketId === br.marketId)\n : -1;\n if (index > -1)\n bookMakerOdds[index] = {\n suspend: suspend,\n marketId: br.marketId ? br.marketId : '-1',\n marketName: br.marketName ? br.marketName : 'Bookmaker',\n runners: bmRunners,\n status: br.status ? br.status : 'OPEN',\n commissionEnabled:\n br.commissionEnabled !== undefined\n ? br.commissionEnabled\n : bookMakerOdds[index].commissionEnabled,\n marketLimits: br.marketLimits \n ? br.marketLimits\n : bookMakerOdds[index].marketLimits,\n };\n else\n bookMakerOdds.push({\n suspend: suspend,\n marketId: br.marketId ? br.marketId : '-1',\n marketName: br.marketName ? br.marketName : 'Bookmaker',\n runners: bmRunners,\n status: br.status ? br.status : 'OPEN',\n commissionEnabled:\n br.commissionEnabled !== undefined\n ? br.commissionEnabled\n : prevBMMap.get(br.marketId),\n marketLimits: br.marketLimits \n ? br.marketLimits\n : limitMap.get(br.marketId),\n });\n }\n }\n bookMakerOdds.sort((a, b) => {\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n else return 0;\n });\n marketsMap[eventId].bookmakers = bookMakerOdds;\n marketsMap[eventId].enableBookmaker = action.payload.enableBookmaker;\n return {\n ...state,\n secondaryMarketsMap: marketsMap,\n suspendedMarketsMap: suspendMarketsMap,\n };\n }\n } catch (e) {\n console.error('Failed to update odds ', e);\n }\n }\n\n // Updated when list markets or events is called\n case UPDATE_SECONDARY_MARKETS: {\n const eventData = action.payload;\n const eventId: string = eventData.eventId;\n const marketsMap = { ...state.secondaryMarketsMap };\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\n\n // Add event data\n if (action.payload.eventId) {\n if (!marketsMap[eventId]) {\n marketsMap[eventId] = {\n bookmakers: [],\n enableBookmaker: false,\n fancyMarkets: [],\n enableFancy: false,\n fancySuspended: false,\n };\n }\n\n // Set BookmakerOdds Data.\n const bookMakerOddsData = action.payload.bookmakerOddsData;\n\n // key as marketId value as fancy data\n const bookmakers = marketsMap[eventId].bookmakers;\n const prevBMMap = new Map();\n let limitMap = new Map();\n for (const { marketId, commissionEnabled, marketLimits } of bookmakers) {\n if (commissionEnabled !== undefined) {\n prevBMMap.set(marketId, commissionEnabled);\n }\n if( marketLimits){\n limitMap.set(marketId, marketLimits);\n }\n }\n\n let bookMakerOdds: BookmakerDTO[] = [];\n if (bookMakerOddsData && bookMakerOddsData.length) {\n for (let br of bookMakerOddsData) {\n let bmRunners: BookmakerRunnerDTO[] = [];\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eventData?.providerId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n br?.marketType,\n br?.marketId,\n br?.suspended\n ); \n for (let b of br.runners) {\n bmRunners.push({\n runnerId: b.runnerId ? b.runnerId : '',\n runnerName: b.runnerName ? b.runnerName : '',\n backPrice: b.backPrices[0]?.price,\n backSize: b.backPrices[0]?.size,\n layPrice: b.layPrices[0]?.price,\n laySize: b.layPrices[0]?.size,\n status: b.status ? b.status : '',\n sort: b.sort ? Number(b.sort) : 0,\n });\n }\n bmRunners.sort((a, b) => {\n if (a?.sort - b?.sort != 0) {\n return a?.sort - b?.sort;\n }\n const aDesc = a.runnerId;\n const bDesc = b.runnerId;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n else return 0;\n });\n let index = bookMakerOdds?.length\n ? bookMakerOdds.findIndex((itm) => itm.marketId === br.marketId)\n : -1;\n if (index > -1)\n bookMakerOdds[index] = {\n suspend: suspend,\n marketId: br.marketId ? br.marketId : '-1',\n marketName: br.marketName ? br.marketName : 'Bookmaker',\n runners: bmRunners,\n status: br.status ? br.status : 'OPEN',\n commissionEnabled:\n br.commissionEnabled !== undefined\n ? br.commissionEnabled\n : bookMakerOdds[index].commissionEnabled,\n marketLimits:\n br.marketLimits\n ? br.marketLimits\n : bookMakerOdds[index].marketLimits,\n };\n else\n bookMakerOdds.push({\n suspend: suspend,\n marketId: br.marketId ? br.marketId : '-1',\n marketName: br.marketName ? br.marketName : 'Bookmaker',\n runners: bmRunners,\n status: br.status ? br.status : 'OPEN',\n commissionEnabled:\n br.commissionEnabled !== undefined\n ? br.commissionEnabled\n : prevBMMap.get(br.marketId),\n marketLimits:\n br.marketLimits\n ? br.marketLimits\n : limitMap.get(br.marketId),\n });\n }\n }\n bookMakerOdds.sort((a, b) => {\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n else return 0;\n });\n marketsMap[eventId].bookmakers = bookMakerOdds;\n marketsMap[eventId].enableBookmaker = action.payload.enableBookmaker;\n\n // Set Fancy markets data\n const fancyOddsData = action.payload.sessionOddsData;\n\n // key as marketId value as fancy data\n const fancyMarkets = marketsMap[eventId].fancyMarkets;\n const prevFancyMap = new Map();\n \n for (const { marketId, commissionEnabled, marketLimits } of fancyMarkets) {\n if (commissionEnabled !== undefined) {\n prevFancyMap.set(marketId, commissionEnabled);\n }\n if(marketLimits){\n limitMap.set(marketId, marketLimits);\n }\n }\n\n let fancyOdds: FancyMarketDTO[] = [];\n if (fancyOddsData && fancyOddsData.length > 0) {\n for (let f of fancyOddsData) {\n if (!f.marketName.toLowerCase().split(' ').includes('bhav')) {\n let suspend: boolean = getSuspendValue(\n suspendMarketsMap,\n eventData?.providerId,\n eventData?.sportId,\n eventData?.competitionId,\n eventId,\n f?.marketType,\n f?.marketId,\n f?.suspended\n ); \n fancyOdds.push({\n ...f,\n marketId: f.marketId ? f.marketId : '',\n marketName: f.marketName ? f.marketName : '',\n status: f.status ? f.status : '',\n sort: f.sort ? Number(f.sort) : 0,\n layPrice: f.noValue\n ? f.category === 'fancy3' || f.category === 'odd-even'\n ? f.noValue.toFixed(2)\n : f.noValue\n : null,\n backPrice: f.yesValue\n ? f.category === 'fancy3' || f.category === 'odd-even'\n ? f.yesValue.toFixed(2)\n : f.yesValue\n : null,\n laySize: f.noRate ? f.noRate : null,\n backSize: f.yesRate ? f.yesRate : null,\n category: getFancyCategory(f.category),\n commissionEnabled:\n f.commissionEnabled !== undefined\n ? f.commissionEnabled\n : prevFancyMap.get(f.marketId),\n marketLimits:\n f.marketLimits\n ? f.marketLimits\n : limitMap.get(f.marketId),\n suspend: suspend,\n });\n }\n }\n } else if (marketsMap[eventId].fancyMarkets) {\n fancyOdds = marketsMap[eventId].fancyMarkets;\n for (let fMarket of fancyOdds) {\n fMarket.status = 'SUSPENDED';\n fMarket.suspend = true;\n }\n }\n fancyOdds.sort((a, b) => {\n if (a?.sort - b?.sort != 0) {\n return a?.sort - b?.sort;\n }\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (aDesc > bDesc) return -1;\n else if (aDesc < bDesc) return 1;\n else return 0;\n });\n marketsMap[eventId].fancyMarkets = fancyOdds;\n marketsMap[eventId].enableFancy = action.payload.enableFancy;\n marketsMap[eventId].fancySuspended = action.payload.fancySuspended;\n }\n\n return {\n ...state,\n secondaryMarketsMap: marketsMap,\n suspendedMarketsMap: suspendMarketsMap,\n };\n }\n\n case DISABLE_EVENT_DATA: {\n const sportId = action.payload.sportId;\n const competitionId = action.payload.competitionId;\n const eventId = action.payload.eventId;\n let disableEvent = action.payload.disableEvent;\n if (!disableEvent && state.selectedEvent.id === eventId) {\n disableEvent = true;\n }\n\n const allEvents = { ...state.events };\n const allSecMarkets = { ...state.secondaryMarketsMap };\n\n if (allEvents[sportId][competitionId][eventId])\n if (disableEvent) {\n const eData = allEvents[sportId][competitionId][eventId];\n for (let runner of eData.matchOdds?.runners) {\n runner.status = 'SUSPENDED';\n }\n allEvents[sportId][competitionId][eventId] = eData;\n } else {\n delete allEvents[sportId][competitionId][eventId];\n }\n if (allSecMarkets[eventId])\n if (disableEvent) {\n const secMarkets = allSecMarkets[eventId];\n for (let bookmaker of secMarkets?.bookmakers) {\n for (let runner of bookmaker.runners) {\n runner.backPrice = '0';\n runner.backSize = '0';\n runner.layPrice = '0';\n runner.laySize = '0';\n }\n }\n for (let fanctMarket of secMarkets?.fancyMarkets) {\n fanctMarket.status = 'SUSPENDED';\n }\n allSecMarkets[eventId] = secMarkets;\n } else {\n delete allSecMarkets[eventId];\n }\n\n return {\n ...state,\n events: allEvents,\n secondaryMarketsMap: allSecMarkets,\n };\n }\n\n case UPDATE_PREMIUM_MARKETS_WS: {\n // const market = action.payload.eventData;\n const premiumSporsMap = { ...state.premiumMarketsMap };\n\n const key = action.payload.eventId;\n const eventData = action.payload.body;\n\n if (premiumSporsMap[key]) {\n if (\n premiumSporsMap[key].markets &&\n premiumSporsMap[key].markets.matchOdds.length > 0\n ) {\n for (let market of eventData?.markets?.matchOdds) {\n const index = premiumSporsMap[key].markets.matchOdds.findIndex(\n (x) => x.marketId === market.marketId\n );\n\n if (index !== -1) {\n premiumSporsMap[key].markets.matchOdds[index] = market;\n }\n }\n }\n }\n\n return {\n ...state,\n premiumMarketsMap: premiumSporsMap,\n };\n }\n\n case SET_EXCH_EVENT: {\n return {\n ...state,\n selectedEvent: action.payload,\n };\n }\n\n case RESET_EVENTS: {\n return {\n ...state,\n events: {},\n };\n }\n\n case UPDATE_SCORECARD: {\n return {\n ...state,\n scorecard: action.payload,\n };\n }\n\n case UPDATE_BINARY_MARKETS: {\n return {\n ...state,\n binaryMarkets: action.payload,\n };\n }\n case UPDATE_PREMIUM_MARKETS: {\n const eventData = action.payload.eventData;\n const premiumMarketsMap = { ...state.premiumMarketsMap };\n premiumMarketsMap[action.payload.eventId] = eventData;\n return {\n ...state,\n premiumMarketsMap: premiumMarketsMap,\n };\n }\n case SET_BETFAIR_WS_CONNECTION:\n return {\n ...state,\n betFairWSConnected: action.payload,\n };\n case SET_SPORTS_RADAR_WS_CONNECTION:\n return {\n ...state,\n sportsRadarWSConnected: action.payload,\n };\n case SET_DREAM_WS_CONNECTION:\n return {\n ...state,\n dreamWSConnected: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default exchangeSportsReducer;\n","export const BUTTON_VARIABLES = [\n { label: '100', stake: 100 },\n { label: '500', stake: 500 },\n { label: '1,000', stake: 1000 },\n { label: '5,000', stake: 5000 },\n { label: '10,000', stake: 10000 },\n { label: '50,000', stake: 50000 },\n { label: '1,00,000', stake: 100000 },\n { label: '5,00,000', stake: 500000 },\n { label: '10,00,000', stake: 1000000 },\n];\n","import { ExBetslip } from '../../models/ExBetslip';\nimport {\n ADD_EXCH_BET,\n EXCH_BET_ODDS_CHANGE,\n REMOVE_EXCH_BET,\n SET_EXCH_BET_STAKE,\n CLEAR_EXCHANGE_BETS,\n FETCH_OPEN_BETS_SUCCESS,\n CLEAR_SUCCESS_BETS,\n SET_BUTTON_VARIABLES,\n SET_BETTING_INPROGRESS,\n ADD_OPEN_BETS,\n BET_CANCEL_SUCCESS,\n ENABLE_ONE_CLICK_BETS,\n ADD_ONE_CLICK_AMOUNT,\n UPDATE_BET_SLIP,\n RESET_BETSLIP_ODDS_CHANGE_MSG,\n FETCH_BET_STATUS_IN_PROGRESS,\n FETCH_BET_STATUS_SUCCESS,\n FETCH_BET_STATUS_FAIL,\n CLEAR_BET_STATUS_RESPONSE,\n} from './exchBetslipActionTypes';\nimport { BUTTON_VARIABLES } from '../../constants/ButtonVariables';\nimport { _findIndexByArray } from '../../util/stringUtil';\nimport store from '../store';\n\ntype Action = {\n type: string;\n payload: any;\n};\n\nconst initialState: ExBetslip = {\n bets: [],\n openBets: [],\n totalOrders: 0,\n buttonVariables: BUTTON_VARIABLES,\n bettingInprogress: false,\n isOneClickEnable: false,\n oneClickAmount: 0,\n betStatusResponse: null,\n};\n\nconst ExchBetslipReducer = (\n state = initialState,\n action: Action\n): ExBetslip => {\n switch (action.type) {\n case ADD_EXCH_BET: {\n const bettingInprogress = state.bettingInprogress;\n if (!bettingInprogress) {\n const bets = [...state.bets];\n bets.push(action.payload);\n return {\n ...state,\n bets,\n };\n }\n return {\n ...state,\n };\n }\n case EXCH_BET_ODDS_CHANGE: {\n const bets = [...state.bets];\n if (bets[action?.payload?.index]) {\n bets[action?.payload?.index].oddValue = action.payload.odds\n ? action.payload.odds\n : null;\n }\n // bets[action?.payload?.index].oddsPrice = action.payload.odds\n // ? action.payload.odds\n // : null;\n\n return {\n ...state,\n bets,\n };\n }\n case REMOVE_EXCH_BET: {\n const bets = [...state.bets];\n bets.splice(action.payload.index, 1);\n\n return {\n ...state,\n bets,\n };\n }\n case SET_EXCH_BET_STAKE: {\n const bets = [...state.bets];\n if (action.payload.type === 'ADD') {\n bets[action.payload.index].amount += Math.floor(action.payload.amount);\n } else if (action.payload.type === 'SET') {\n bets[action.payload.index].amount = Math.floor(action.payload.amount);\n }\n\n if (isNaN(bets[action.payload.index].amount)) {\n bets[action.payload.index].amount = 0;\n }\n\n return {\n ...state,\n bets,\n };\n }\n case CLEAR_EXCHANGE_BETS: {\n const bettingInprogress = state.bettingInprogress;\n if (!bettingInprogress) {\n return {\n ...state,\n bets: [],\n };\n }\n return {\n ...state,\n };\n }\n case SET_BUTTON_VARIABLES: {\n const btnVars = action.payload;\n return {\n ...state,\n buttonVariables: btnVars.length > 0 ? btnVars : BUTTON_VARIABLES,\n };\n }\n\n case FETCH_OPEN_BETS_SUCCESS: {\n const openBets = action.payload ? action.payload.result : [];\n const totalOrders = action.payload ? action.payload.totalOrders : 0;\n\n return {\n ...state,\n openBets: openBets,\n totalOrders: totalOrders,\n };\n }\n\n case BET_CANCEL_SUCCESS: {\n let openBets = [...state.openBets];\n if (openBets && openBets?.length > 0) {\n for (let bet of openBets) {\n if (bet.betId === action.payload.betId && bet.unmatched) {\n const index = _findIndexByArray(openBets, action.payload.betId);\n if (index > -1) {\n openBets.splice(index, 1);\n }\n }\n }\n }\n\n return {\n ...state,\n openBets: openBets,\n };\n }\n\n case ADD_OPEN_BETS: {\n const openBets = action.payload ? action.payload : [];\n const opBets = [...state.openBets];\n const allOpenBets = opBets.concat(openBets);\n return {\n ...state,\n openBets: allOpenBets,\n };\n }\n\n case SET_BETTING_INPROGRESS: {\n return {\n ...state,\n bettingInprogress: action.payload,\n };\n }\n case ENABLE_ONE_CLICK_BETS: {\n return {\n ...state,\n isOneClickEnable: action.payload,\n };\n }\n case ADD_ONE_CLICK_AMOUNT: {\n return {\n ...state,\n oneClickAmount: action.payload,\n };\n }\n\n case UPDATE_BET_SLIP: {\n const eventId: string = action.payload.eventId;\n const bets = state?.bets;\n const matchOdds = action.payload.matchOdds;\n let isOddsChanged = false;\n\n if (action?.payload?.matchOdds) {\n for (let bet of bets) {\n if (\n bet?.marketType === 'MO' &&\n bet?.eventId === eventId &&\n bet?.marketId === matchOdds.marketId\n ) {\n for (let mo of matchOdds.runners) {\n if (mo.runnerId === bet.outcomeId) {\n if (bet.betType === 'BACK') {\n if (mo?.backPrices) {\n console.log(mo.backPrices);\n console.log(\n mo.backPrices[mo.backPrices.length - 1].price,\n '<=',\n mo.backPrices[1].price,\n '<=',\n mo.backPrices[0].price,\n ':',\n bet.oddValue\n );\n console.log(\n mo.backPrices[mo.backPrices.lenght - 1]?.price <=\n bet.oddValue && bet.oddValue <= mo.backPrices[0]?.price\n );\n\n if (\n mo.backPrices[mo.backPrices.lenght - 1]?.price <=\n bet.oddValue ||\n bet.oddValue <= mo.backPrices[0]?.price\n ) {\n isOddsChanged = false;\n } else {\n isOddsChanged = true;\n }\n }\n } else {\n if (mo?.layPrices) {\n if (\n mo.layPrices[0]?.price <= bet.oddValue &&\n bet.oddValue <=\n mo.layPrices[mo.layPrices.lenght - 1]?.price\n ) {\n console.log(\n mo.layPrices[mo.layPrices.lenght - 1].price,\n mo.layPrices[1].price,\n mo.layPrices[0].price,\n ':',\n bet.oddValue\n );\n\n isOddsChanged = false;\n } else {\n isOddsChanged = true;\n }\n }\n }\n }\n }\n }\n }\n }\n\n return {\n ...state,\n // oddsChanged: isOddsChanged,\n };\n }\n\n case CLEAR_SUCCESS_BETS: {\n // const currentBets = [...state.bets];\n // const successIndices: number[] = action.payload;\n\n // const filteredBets = currentBets.filter(\n // (_, i) => !successIndices.includes(i)\n // );\n\n return {\n ...state,\n bets: [],\n };\n }\n\n case RESET_BETSLIP_ODDS_CHANGE_MSG: {\n return {\n ...state,\n // oddsChanged: false,\n };\n }\n\n case FETCH_BET_STATUS_IN_PROGRESS:\n case FETCH_BET_STATUS_SUCCESS:\n case FETCH_BET_STATUS_FAIL: {\n return {\n ...state,\n betStatusResponse: action.payload,\n };\n }\n\n case CLEAR_BET_STATUS_RESPONSE: {\n return {\n ...state,\n betStatusResponse: null,\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default ExchBetslipReducer;\n","import { IndianCasinoState } from '../../models/IndianCasinoState';\nimport {\n UPDATE_CASINO_GAMES,\n SET_CASINO_GAME,\n UPDATE_GAME_DATA,\n UPDATE_GAME_RESULTS,\n} from './CasinoActionTypes';\n\ntype Action = {\n type: string;\n payload: any;\n};\n\nconst initailState: IndianCasinoState = {\n casinoGames: [],\n selectedGmae: { id: '', name: '' },\n gameData: {\n gType: '',\n mId: '',\n roundDetails: [],\n roundCardDetails: [],\n },\n gameResults: [],\n};\n\nconst indianCasinoReducer = (\n state = initailState,\n action: Action\n): IndianCasinoState => {\n switch (action.type) {\n case UPDATE_CASINO_GAMES:\n return {\n ...state,\n casinoGames: action.payload,\n };\n\n case SET_CASINO_GAME:\n return {\n ...state,\n selectedGmae: action.payload,\n gameData: {\n gType: '',\n mId: '',\n roundDetails: [],\n roundCardDetails: [],\n },\n };\n\n case UPDATE_GAME_DATA: {\n const ogData = { ...state.gameData };\n const gData = {\n gType: action.payload.gType,\n mId: action.payload.mId !== '0' ? action.payload.mId : ogData.mId,\n roundDetails: action.payload.roundDetails,\n roundCardDetails: action.payload.roundCardDetails,\n };\n return {\n ...state,\n gameData: gData,\n };\n }\n\n case UPDATE_GAME_RESULTS: {\n return {\n ...state,\n gameResults: action.payload,\n };\n }\n\n default:\n return state;\n }\n};\n\nexport default indianCasinoReducer;\n","import {\r\n SET_MULTIMARKET_EVENT_DATA,\r\n UPDATE_MULTIMARKET_SECONDARY_MARKETS,\r\n UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS,\r\n UPDATE_MULTIMARKET_BOOKMAKER_MARKETS,\r\n MULTI_SUSPENDED_MARKETS,\r\n MULTI_COMMISSION_MARKETS,\r\n TRIGGER_MULTI_FETCH_MARKETS,\r\n TRIGGER_MULTI_FETCH_ORDERS,\r\n TRIGGER_MULTI_BET_STATUS\r\n // UPDATE_MULTIMARKET_FANCY_MARKETS,\r\n} from './multimarketActionTypes';\r\nimport { MatchOddsRunnerDTO } from '../../models/common/MatchOddsDTO';\r\nimport {\r\n BookmakerDTO,\r\n BookmakerRunnerDTO,\r\n} from '../../models/common/BookmakerDTO';\r\nimport { ExchangePriceDTO } from '../../models/common/ExchangePriceDTO';\r\nimport { SuspendedMarketDTOMap } from '../../models/common/SuspendedMarketDTO';\r\nimport { SuspendedMarketDTO } from '../../models/common/SuspendedMarketDTO';\r\nimport { CommissionMarketDTO } from '../../models/common/CommissionMarketDTO';\r\nimport { SecondaryMarketsMap } from '../../models/ExchangeSportsState';\r\nimport moment from 'moment';\r\n\r\ntype Action = {\r\n type: string;\r\n payload: any;\r\n};\r\n\r\nconst initialState = {\r\n multiMarketData: {},\r\n secondaryMultiMatchOddsMap: {},\r\n secondaryMultiMarketsMap: {},\r\n suspendedMarketsMap: {},\r\n triggerFetchMarkets: null,\r\n triggerFetchOrders: null,\r\n triggerBetStatus: null,\r\n};\r\n\r\nconst getMatchOddsSet = (prices: ExchangePriceDTO[]) => {\r\n let pricesSet: ExchangePriceDTO[] = [];\r\n if (prices?.length > 0) {\r\n for (let i = 0; i < 3; i += 1) {\r\n if (prices[i]) pricesSet.push(prices[i]);\r\n else pricesSet.push({ price: null, size: null });\r\n }\r\n }\r\n return pricesSet;\r\n};\r\n// const getFancyCategory = (runnerName: string) => {\r\n// return 'session-market';\r\n// };\r\n\r\nconst getSuspendValue = (\r\n suspendMarketsMap: SuspendedMarketDTOMap,\r\n providerId: string,\r\n sportId: string,\r\n competitionId: string,\r\n dtoEventId: string,\r\n dtoMarketType: string,\r\n dtoMarketId: string,\r\n dtoSuspsend: boolean\r\n) => {\r\n let suspend: boolean;\r\n let key = dtoEventId + \":\" + dtoMarketId;\r\n\r\n // case: for storing initial state from markets api call\r\n if (dtoSuspsend !== undefined) {\r\n suspend = dtoSuspsend;\r\n suspendMarketsMap[key] = {\r\n providerId: providerId,\r\n sportId: sportId,\r\n competitionId: competitionId,\r\n eventId: dtoEventId,\r\n marketType: dtoMarketType,\r\n marketId: dtoMarketId,\r\n suspend: dtoSuspsend,\r\n };\r\n } else { \r\n // case for odds updates from websockets\r\n // suspend field will not be present in odds update from websocket\r\n let suspendedMarket = suspendMarketsMap[key];\r\n if (!suspendedMarket) {\r\n suspend = false;\r\n } else if (suspendedMarket) {\r\n suspend = suspendedMarket.suspend;\r\n }\r\n }\r\n\r\n return suspend;\r\n};\r\n\r\nconst multiMarketReducer = (state = initialState, action: Action) => {\r\n switch (action.type) {\r\n\r\n case MULTI_SUSPENDED_MARKETS: {\r\n let suspendedMarket: SuspendedMarketDTO = action.payload;\r\n let allSuspendedMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\r\n const sportId = suspendedMarket.sportId;\r\n const competitionId = suspendedMarket.competitionId; \r\n const eventId = suspendedMarket.eventId;\r\n const marketType = suspendedMarket.marketType;\r\n const marketId = suspendedMarket.marketId;\r\n const key = eventId + \":\" + marketId;\r\n allSuspendedMarketsMap[key] = suspendedMarket;\r\n \r\n // TODO: check if the return statement is required or not ??\r\n switch (marketType) {\r\n case \"MATCH_ODDS\": {\r\n // Set suspend in match odds markets data\r\n const allEvents = { ...state.multiMarketData };\r\n if (eventId && allEvents[`${sportId}-${competitionId}-${eventId}`]){\r\n let matchOddsMarket = allEvents[`${sportId}-${competitionId}-${eventId}`]?.matchOdds;\r\n if (matchOddsMarket.marketId === marketId) {\r\n matchOddsMarket.suspend = suspendedMarket.suspend;\r\n }\r\n }\r\n \r\n // For secondary match odds data\r\n const allSecMatchOddsMap = { ...state.secondaryMultiMatchOddsMap };\r\n if (allSecMatchOddsMap[`${sportId}-${competitionId}-${eventId}-${marketId}`]) {\r\n let matchOddsMarket = allSecMatchOddsMap[`${sportId}-${competitionId}-${eventId}-${marketId}`];\r\n matchOddsMarket.suspend = suspendedMarket.suspend;\r\n }\r\n \r\n return {\r\n ...state,\r\n multiMarketData: allEvents,\r\n secondaryMultiMatchOddsMap: allSecMatchOddsMap,\r\n suspendedMarketsMap: allSuspendedMarketsMap\r\n };\r\n }\r\n case \"BOOKMAKER\": {\r\n // Set suspend in bookmaker markets data\r\n const marketsMap = { ...state.secondaryMultiMarketsMap };\r\n if (marketsMap[`${sportId}-${competitionId}-${eventId}`]) {\r\n let bookmakerMarkets = marketsMap[`${sportId}-${competitionId}-${eventId}`]?.bookmakers;\r\n if (bookmakerMarkets && bookmakerMarkets.length) {\r\n for (let bm of bookmakerMarkets) {\r\n if (bm.marketId === marketId) bm.suspend = suspendedMarket.suspend;\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n secondaryMultiMarketsMap: marketsMap,\r\n suspendedMarketsMap: allSuspendedMarketsMap\r\n };\r\n }\r\n default:\r\n console.log(\"SuspendMarket:Multi-Market: Invalid market type: \", marketType);\r\n } \r\n \r\n return {\r\n ...state,\r\n suspendedMarketsMap: allSuspendedMarketsMap\r\n };\r\n }\r\n\r\n case MULTI_COMMISSION_MARKETS: {\r\n let commissionMarket: CommissionMarketDTO = action.payload;\r\n const marketType = commissionMarket.marketType;\r\n const marketId = commissionMarket.marketId;\r\n let secondaryMarketsMap = { ...state.secondaryMultiMarketsMap };\r\n let secondaryMarkets = secondaryMarketsMap[`${commissionMarket.sportId}-${commissionMarket.competitionId}-${commissionMarket.eventId}`];\r\n\r\n // TODO: check if the return statement is required or not ??\r\n switch (marketType) {\r\n case \"BOOKMAKER\": {\r\n // Set commission in bookmaker markets data\r\n let bookmakers = secondaryMarkets?.bookmakers;\r\n if (bookmakers && bookmakers.length) {\r\n for (let bm of bookmakers) {\r\n if (bm.marketId === marketId) bm.commissionEnabled = commissionMarket.commission;\r\n }\r\n }\r\n break;\r\n }\r\n default:\r\n console.log(\"CommissionMarket:Multi-Market: Invalid market type: \", marketType);\r\n } \r\n \r\n return {\r\n ...state,\r\n secondaryMarketsMap: secondaryMarketsMap\r\n };\r\n }\r\n\r\n case SET_MULTIMARKET_EVENT_DATA: {\r\n const { sportId, competitionId, eventId, eventData } = action.payload;\r\n let data = { ...state.multiMarketData };\r\n \r\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\r\n // Add events data\r\n if (action.payload.eventData) {\r\n let eData;\r\n let limitMap = new Map();\r\n if (data[`${sportId}-${competitionId}-${eventId}`]) {\r\n eData = { ...data[`${sportId}-${competitionId}-${eventId}`] };\r\n limitMap.set(\r\n data[`${sportId}-${competitionId}-${eventId}`]?.matchOdds.marketId,\r\n data[`${sportId}-${competitionId}-${eventId}`]?.matchOdds\r\n ?.marketLimits,\r\n );\r\n } else eData = { ...action.payload.eventData };\r\n\r\n if (eData && eData.eventId && eData.eventId !== 'undefined') {\r\n let homeTeam = eData.homeTeam ? eData.homeTeam : '';\r\n let awayTeam = eData.awayTeam ? eData.awayTeam : '';\r\n if (\r\n homeTeam === '' &&\r\n awayTeam === '' &&\r\n (eData.eventName?.toLowerCase().includes(' v ') ||\r\n eData.eventName?.toLowerCase().includes(' vs '))\r\n ) {\r\n homeTeam = eData.eventName?.toLowerCase().includes(' v ')\r\n ? eData.eventName.split(' v ')[0].trim()\r\n : eData.eventName.includes(' VS ')\r\n ? eData.eventName.split(' VS ')[0].trim()\r\n : eData.eventName.split(' Vs ')[0].trim();\r\n awayTeam = eData.eventName?.toLowerCase().includes(' v ')\r\n ? eData.eventName.split(' v ')[1].trim().split(' - ')[0]\r\n : eData.eventName.includes(' VS ')\r\n ? eData.eventName.split(' VS ')[1].trim().split(' - ')[0]\r\n : eData.eventName.includes('Vs')\r\n ? eData.eventName.split(' Vs ')[1].trim().split(' - ')[0]\r\n : eData.eventName.split(' vs ')[1].trim().split(' - ')[0];\r\n }\r\n\r\n // Set MatchOdds Data.\r\n const matchOddsData = action.payload.matchOddsData;\r\n const runners: MatchOddsRunnerDTO[] = [];\r\n let suspend: boolean = getSuspendValue(\r\n suspendMarketsMap,\r\n eData?.providerId,\r\n eData?.sportId,\r\n eData?.competitionId,\r\n eData?.eventId,\r\n eData?.marketType,\r\n eData?.marketId,\r\n matchOddsData?.suspended\r\n ); \r\n if (matchOddsData) {\r\n if (matchOddsData.runners && matchOddsData.runners.length > 0) {\r\n let i = 0;\r\n for (let e of matchOddsData.runners) {\r\n if (e) {\r\n let runnerName = e.runnerName ? e.runnerName : e.RunnerName;\r\n if (runnerName === undefined) {\r\n runnerName = '';\r\n }\r\n\r\n if (!runnerName.toLowerCase().includes('draw') && i === 0) {\r\n if (runnerName === '') {\r\n runnerName = homeTeam;\r\n } else if (runnerName !== awayTeam) {\r\n homeTeam = runnerName;\r\n }\r\n }\r\n\r\n if (!runnerName.toLowerCase().includes('draw') && i !== 0) {\r\n if (runnerName === '') {\r\n runnerName = awayTeam;\r\n } else if (runnerName !== homeTeam) {\r\n awayTeam = runnerName;\r\n }\r\n }\r\n\r\n i += 1;\r\n runners.push({\r\n runnerId: e.runnerId ? e.runnerId : e.runnerId,\r\n runnerName: runnerName,\r\n backPrices: getMatchOddsSet(e.backPrices),\r\n layPrices: getMatchOddsSet(e.layPrices),\r\n status: e.status,\r\n\r\n clothNumber: e?.clothNumber,\r\n jockeyName: e?.jockeyName,\r\n runnerAge: e?.runnerAge,\r\n runnerIcon: e?.runnerIcon,\r\n stallDraw: e?.stallDraw,\r\n trainerName: e?.trainerName,\r\n });\r\n }\r\n }\r\n }\r\n const bLimits = eData?.matchOdds?.limits;\r\n eData.matchOdds = {\r\n marketId: matchOddsData.marketId ? matchOddsData.marketId : '',\r\n marketName: matchOddsData.marketName\r\n ? matchOddsData.marketName\r\n : '',\r\n // inplay: matchOddsData.inplay ? matchOddsData.inplay : false,\r\n status: matchOddsData.status ? matchOddsData.status : '',\r\n runners: runners,\r\n limits: matchOddsData.limits ? matchOddsData?.limits : bLimits,\r\n marketLimits: matchOddsData?.marketLimits\r\n ? matchOddsData?.marketLimits\r\n : limitMap.get(matchOddsData?.marketId),\r\n suspend: suspend,\r\n };\r\n } else {\r\n let matchOdds = eData.matchOdds;\r\n if (matchOdds) {\r\n eData.matchOdds = {\r\n marketId: matchOdds?.marketId,\r\n marketName: matchOdds?.marketName,\r\n // inplay: matchOdds?.inplay,\r\n status: 'SUSPENDED',\r\n runners: matchOdds?.runners,\r\n limits: matchOddsData?.limits,\r\n marketLimits: matchOdds?.marketLimits\r\n ? matchOdds?.marketLimits\r\n : limitMap.get(matchOdds?.marketId),\r\n suspend: true,\r\n };\r\n } else {\r\n eData.matchOdds = {\r\n marketId: '',\r\n marketName: '',\r\n // inplay: false,\r\n status: 'SUSPENDED',\r\n runners: [],\r\n limits: null,\r\n suspend: true,\r\n };\r\n }\r\n }\r\n // Set EventData\r\n eData.homeTeam = homeTeam;\r\n eData.awayTeam = awayTeam;\r\n eData.eventSlug = eData.eventSlug\r\n ? eData.eventSlug\r\n : eData.eventName\r\n ? eData.eventName\r\n .toLowerCase()\r\n .replace(/[^a-z0-9]/g, ' ')\r\n .replace(/ +/g, ' ')\r\n .trim()\r\n .split(' ')\r\n .join('-')\r\n : '';\r\n\r\n data[`${sportId}-${competitionId}-${eventId}`] = eData;\r\n }\r\n }\r\n return {\r\n ...state,\r\n multiMarketData: data,\r\n suspendedMarketsMap: suspendMarketsMap,\r\n };\r\n }\r\n\r\n case UPDATE_MULTIMARKET_SECONDARY_MARKETS: {\r\n const { sportId, competitionId, eventId } = action.payload;\r\n const marketsMap = { ...state.secondaryMultiMarketsMap };\r\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\r\n \r\n // Add event data\r\n if (action.payload.eventId) {\r\n if (!marketsMap[`${sportId}-${competitionId}-${eventId}`]) {\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`] = {\r\n bookmakers: [],\r\n enableBookmaker: false,\r\n fancyMarkets: [],\r\n enableFancy: false,\r\n };\r\n }\r\n\r\n // Set BookmakerOdds Data.\r\n const bookMakerOddsData = action.payload.bookmakerOddsData;\r\n let bookMakerOdds: BookmakerDTO[] = [];\r\n if (bookMakerOddsData && bookMakerOddsData.length > 0) {\r\n for (let br of bookMakerOddsData) {\r\n let bmRunners: BookmakerRunnerDTO[] = [];\r\n let suspend: boolean = getSuspendValue(\r\n suspendMarketsMap,\r\n \"-\",\r\n sportId,\r\n competitionId,\r\n eventId,\r\n br?.marketType,\r\n br?.marketId,\r\n br?.suspended\r\n ); \r\n for (let b of br.runners) {\r\n bmRunners.push({\r\n runnerId: b.runnerId ? b.runnerId : '',\r\n runnerName: b.runnerName ? b.runnerName : '',\r\n backPrice: b.backPrices[0]?.price,\r\n backSize: b.backPrices[0]?.size,\r\n layPrice: b.layPrices[0]?.price,\r\n laySize: b.layPrices[0]?.size,\r\n status: b.status ? b.status : '',\r\n sort: b.sort ? Number(b.sort) : 0,\r\n });\r\n }\r\n bmRunners.sort((a, b) => {\r\n if (a?.sort - b?.sort != 0) {\r\n return a?.sort - b?.sort;\r\n }\r\n const aDesc = a.runnerId;\r\n const bDesc = b.runnerId;\r\n if (aDesc > bDesc) return 1;\r\n else if (aDesc < bDesc) return -1;\r\n else return 0;\r\n });\r\n bookMakerOdds.push({\r\n suspend: suspend,\r\n marketId: br.marketId ? br.marketId : '-1',\r\n marketName: br.marketName ? br.marketName : 'Bookmaker',\r\n runners: bmRunners,\r\n status: br.status ? br.status : 'OPEN',\r\n commissionEnabled: br.commissionEnabled !== undefined ? br.commissionEnabled :false,\r\n marketLimits: br?.marketLimits,\r\n });\r\n }\r\n } else if (marketsMap[eventId]?.bookmakers[0]) {\r\n bookMakerOdds = marketsMap[eventId]?.bookmakers;\r\n for (let bm of bookMakerOdds) {\r\n bm.suspend = true; \r\n for (let br of bm.runners) {\r\n br.backPrice = '0';\r\n br.layPrice = '0';\r\n }\r\n }\r\n }\r\n bookMakerOdds.sort((a, b) => {\r\n const aDesc = a.marketName;\r\n const bDesc = b.marketName;\r\n if (aDesc > bDesc) return 1;\r\n else if (aDesc < bDesc) return -1;\r\n else return 0;\r\n });\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`].bookmakers =\r\n bookMakerOdds;\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`].enableBookmaker =\r\n action.payload.enableBookmaker;\r\n\r\n // Set Fancy markets data\r\n // const fancyOddsData = action.payload.sessionOddsData;\r\n // let fancyOdds: FancyMarketDTO[] = [];\r\n // if (fancyOddsData && fancyOddsData.length > 0) {\r\n // for (let f of fancyOddsData) {\r\n // if (!f.runnerName.toLowerCase().split(' ').includes('bhav')) {\r\n // fancyOdds.push({\r\n // selectionId: f.selectionId ? f.selectionId : '',\r\n // runnerName: f.runnerName ? f.runnerName : '',\r\n // gameStatus: f.gameStatus ? f.gameStatus : '',\r\n // layPrice: f.layPrice\r\n // ? f.marketType === 'fancy3' || f.marketType === 'odd-even'\r\n // ? f.layPrice.toFixed(2)\r\n // : f.layPrice\r\n // : null,\r\n // backPrice: f.backPrice\r\n // ? f.marketType === 'fancy3' || f.marketType === 'odd-even'\r\n // ? f.backPrice.toFixed(2)\r\n // : f.backPrice\r\n // : null,\r\n // laySize: f.laySize ? f.laySize : null,\r\n // backSize: f.backSize ? f.backSize : null,\r\n // category: getFancyCategory(f.runnerName),\r\n // });\r\n // }\r\n // }\r\n // } else if (\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`]?.fancyMarkets\r\n // ) {\r\n // fancyOdds =\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].fancyMarkets;\r\n // for (let fMarket of fancyOdds) {\r\n // fMarket.gameStatus = 'SUSPENDED';\r\n // }\r\n // }\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].fancyMarkets =\r\n // fancyOdds;\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].enableFancy =\r\n // action.payload.enableFancy;\r\n }\r\n return {\r\n ...state,\r\n secondaryMultiMarketsMap: marketsMap,\r\n suspendedMarketsMap: suspendMarketsMap,\r\n };\r\n }\r\n\r\n // Data comes form websocket.\r\n case UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS: {\r\n const { sportId, competitionId, eventId } = action.payload;\r\n const marketId: string = action.payload.marketId;\r\n const allSecMatchOddsMap = { ...state.secondaryMultiMatchOddsMap };\r\n const matchOddsData = action?.payload?.matchOddsData;\r\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\r\n\r\n let runners: MatchOddsRunnerDTO[] = [];\r\n let runnersData: MatchOddsRunnerDTO[] = allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ]?.runners?.length\r\n ? [\r\n ...allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ]?.runners,\r\n ]\r\n : [];\r\n if (matchOddsData) {\r\n let suspend: boolean = getSuspendValue(\r\n suspendMarketsMap,\r\n \"-\",\r\n sportId,\r\n competitionId,\r\n eventId,\r\n matchOddsData?.marketType,\r\n matchOddsData?.marketId,\r\n matchOddsData?.suspended\r\n ); \r\n if (matchOddsData?.runners && matchOddsData?.runners?.length > 0) {\r\n let data: any = {};\r\n for (let e of matchOddsData.runners) {\r\n if (e) {\r\n data = runnersData?.find(\r\n (item) => item?.runnerId === e?.runnerId\r\n );\r\n runners.push({\r\n runnerId: e?.runnerId,\r\n runnerName: e?.runnerName,\r\n backPrices: getMatchOddsSet(e.backPrices),\r\n layPrices: getMatchOddsSet(e.layPrices),\r\n status: e?.status,\r\n clothNumber: e?.clothNumber\r\n ? e?.clothNumber\r\n : data?.clothNumber ?? '',\r\n jockeyName: e?.jockeyName\r\n ? e?.jockeyName\r\n : data?.jockeyName ?? '',\r\n runnerAge: e?.runnerAge ? e?.runnerAge : data?.runnerAge ?? '',\r\n runnerIcon: e?.runnerIcon\r\n ? e?.runnerIcon\r\n : data?.runnerIcon ?? '',\r\n stallDraw: e?.stallDraw ? e?.stallDraw : data?.stallDraw ?? '',\r\n trainerName: e?.trainerName\r\n ? e?.trainerName\r\n : data?.trainerName ?? '',\r\n });\r\n }\r\n }\r\n }\r\n\r\n allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ] = {\r\n marketId: matchOddsData.marketId,\r\n marketName: matchOddsData.marketName,\r\n marketTime: matchOddsData.marketTime,\r\n // inplay: matchOddsData.inplay,\r\n status: matchOddsData.status,\r\n runners: runners,\r\n limits: matchOddsData.limits\r\n ? matchOddsData.limits\r\n : allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ]?.limits,\r\n marketLimits: matchOddsData?.marketLimits\r\n ? matchOddsData.marketLimits\r\n : allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ]?.marketLimits,\r\n suspend: suspend,\r\n };\r\n } else {\r\n let matchOdds =\r\n allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ];\r\n if (matchOdds) {\r\n allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ] = {\r\n marketId: matchOdds.marketId,\r\n marketName: matchOdds.marketName,\r\n marketTime: matchOddsData.marketTime,\r\n // inplay: matchOdds.inplay,\r\n status: 'SUSPENDED',\r\n runners: matchOdds.runners,\r\n limits: matchOdds.limits,\r\n marketLimits: matchOdds?.marketLimits\r\n ? matchOdds.marketLimits\r\n : allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ]?.marketLimits,\r\n suspend: true,\r\n };\r\n } else {\r\n allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ] = {\r\n marketId: '',\r\n marketName: '',\r\n // inplay: false,\r\n status: 'SUSPENDED',\r\n runners: [],\r\n limits: null,\r\n suspend: true,\r\n };\r\n }\r\n }\r\n\r\n const secMatchOddsMap = { ...state.secondaryMultiMatchOddsMap };\r\n secMatchOddsMap[`${sportId}-${competitionId}-${eventId}-${marketId}`] =\r\n allSecMatchOddsMap[\r\n `${sportId}-${competitionId}-${eventId}-${marketId}`\r\n ];\r\n\r\n return {\r\n ...state,\r\n secondaryMultiMatchOddsMap: secMatchOddsMap,\r\n suspendedMarketsMap: suspendMarketsMap,\r\n };\r\n }\r\n\r\n // Data comes from websocket.\r\n case UPDATE_MULTIMARKET_BOOKMAKER_MARKETS: {\r\n const { sportId, competitionId, eventId } = action.payload;\r\n //const eventId: string = action.payload.eventId;\r\n const marketsMap = { ...state.secondaryMultiMarketsMap };\r\n let suspendMarketsMap: SuspendedMarketDTOMap = { ...state.suspendedMarketsMap };\r\n if (action.payload.eventId) {\r\n if (!marketsMap[`${sportId}-${competitionId}-${eventId}`]) {\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`] = {\r\n ...marketsMap[`${sportId}-${competitionId}-${eventId}`],\r\n bookmakers: [],\r\n enableBookmaker: false,\r\n };\r\n }\r\n\r\n // Set BookmakerOdds Data.\r\n const bookMakerOddsData =\r\n action?.payload?.bookmakerOddsData &&\r\n Array.isArray(action?.payload?.bookmakerOddsData)\r\n ? action?.payload?.bookmakerOddsData\r\n : [action?.payload?.bookmakerOddsData];\r\n let bookMakerOdds: BookmakerDTO[] = [];\r\n if (\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`]?.bookmakers\r\n ?.length\r\n )\r\n bookMakerOdds =\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`]?.bookmakers;\r\n if (bookMakerOddsData && bookMakerOddsData.length) {\r\n for (let br of bookMakerOddsData) {\r\n let bmRunners: BookmakerRunnerDTO[] = [];\r\n let suspend: boolean = getSuspendValue(\r\n suspendMarketsMap,\r\n \"-\",\r\n sportId,\r\n competitionId,\r\n eventId,\r\n br?.marketType,\r\n br?.marketId,\r\n br?.suspended\r\n ); \r\n for (let b of br.runners) {\r\n bmRunners.push({\r\n runnerId: b.runnerId ? b.runnerId : '',\r\n runnerName: b.runnerName ? b.runnerName : '',\r\n backPrice: b.backPrices[0]?.price,\r\n backSize: b.backPrices[0]?.size,\r\n layPrice: b.layPrices[0]?.price,\r\n laySize: b.layPrices[0]?.size,\r\n status: b.status ? b.status : '',\r\n sort: b.sort ? Number(b.sort) : 0,\r\n });\r\n }\r\n bmRunners.sort((a, b) => {\r\n if (a?.sort - b?.sort != 0) {\r\n return a?.sort - b?.sort;\r\n }\r\n const aDesc = a.runnerId;\r\n const bDesc = b.runnerId;\r\n if (aDesc > bDesc) return 1;\r\n else if (aDesc < bDesc) return -1;\r\n else return 0;\r\n });\r\n let index = bookMakerOdds?.length\r\n ? bookMakerOdds.findIndex((itm) => itm.marketId === br.marketId)\r\n : -1;\r\n if (index > -1)\r\n bookMakerOdds[index] = {\r\n suspend: suspend,\r\n marketId: br.marketId ? br.marketId : '-1',\r\n marketName: br.marketName ? br.marketName : 'Bookmaker',\r\n runners: bmRunners,\r\n status: br.status ? br.status : 'OPEN',\r\n commissionEnabled: br.commissionEnabled !== undefined ? br.commissionEnabled :bookMakerOdds[index].commissionEnabled,\r\n marketLimits: br?.marketLimits\r\n ? br.marketLimits\r\n : bookMakerOdds[index].marketLimits,\r\n };\r\n else\r\n bookMakerOdds.push({\r\n suspend: suspend,\r\n marketId: br.marketId ? br.marketId : '-1',\r\n marketName: br.marketName ? br.marketName : 'Bookmaker',\r\n runners: bmRunners,\r\n status: br.status ? br.status : 'OPEN',\r\n commissionEnabled: br.commissionEnabled !== undefined ? br.commissionEnabled :false,\r\n marketLimits: br?.marketLimits,\r\n });\r\n }\r\n }\r\n bookMakerOdds.sort((a, b) => {\r\n const aDesc = a.marketName;\r\n const bDesc = b.marketName;\r\n if (aDesc > bDesc) return 1;\r\n else if (aDesc < bDesc) return -1;\r\n else return 0;\r\n });\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`].bookmakers =\r\n bookMakerOdds;\r\n marketsMap[`${sportId}-${competitionId}-${eventId}`].enableBookmaker =\r\n action.payload.enableBookmaker;\r\n return {\r\n ...state,\r\n secondaryMultiMarketsMap: marketsMap,\r\n suspendedMarketsMap: suspendMarketsMap,\r\n };\r\n }\r\n }\r\n\r\n // case UPDATE_MULTIMARKET_FANCY_MARKETS: {\r\n // const { sportId, competitionId, eventId } = action.payload;\r\n // //const eventId: string = action.payload.eventId;\r\n // const fancyOddsData = action.payload.fancyUpdateData;\r\n // const marketsMap = { ...state.secondaryMultiMarketsMap };\r\n\r\n // // Add event data\r\n // if (action.payload.eventId) {\r\n // if (!marketsMap[`${sportId}-${competitionId}-${eventId}`]) {\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`] = {\r\n // ...marketsMap[`${sportId}-${competitionId}-${eventId}`],\r\n // fancyMarkets: [],\r\n // enableFancy: false,\r\n // };\r\n // }\r\n\r\n // // Set Fancy markets data\r\n // let fancyOdds: FancyMarketDTO[] = [];\r\n // if (fancyOddsData && fancyOddsData.length > 0) {\r\n // for (let f of fancyOddsData) {\r\n // if (!f.marketName.toLowerCase().split(' ').includes('bhav')) {\r\n // fancyOdds.push({\r\n // selectionId: f.marketId ? f.marketId : '',\r\n // runnerName: f.marketName ? f.marketName : '',\r\n // gameStatus: f.status ? f.status : '',\r\n // layPrice: f.noValue\r\n // ? f.marketType === 'fancy3' || f.marketType === 'odd-even'\r\n // ? f.noValue.toFixed(2)\r\n // : f.noValue\r\n // : null,\r\n // backPrice: f.yesValue\r\n // ? f.marketType === 'fancy3' || f.marketType === 'odd-even'\r\n // ? f.yesValue.toFixed(2)\r\n // : f.yesValue\r\n // : null,\r\n // laySize: f.noRate ? f.noRate : null,\r\n // backSize: f.yesRate ? f.yesRate : null,\r\n // category: getFancyCategory(f.category),\r\n // });\r\n // }\r\n // }\r\n // } else if (\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].fancyMarkets\r\n // ) {\r\n // fancyOdds =\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].fancyMarkets;\r\n // for (let fMarket of fancyOdds) {\r\n // fMarket.gameStatus = 'SUSPENDED';\r\n // }\r\n // }\r\n\r\n // fancyOdds.sort((a, b) => {\r\n // const aDesc = a?.runnerName?.toLocaleLowerCase();\r\n // const bDesc = b?.runnerName?.toLocaleLowerCase();\r\n // if (aDesc > bDesc) return 1;\r\n // else if (aDesc < bDesc) return -1;\r\n // return 0;\r\n // });\r\n // marketsMap[`${sportId}-${competitionId}-${eventId}`].fancyMarkets =\r\n // fancyOdds;\r\n // // marketsMap[eventId].enableFancy = action.payload.enableFancy;\r\n // }\r\n\r\n // return {\r\n // ...state,\r\n // secondaryMultiMarketsMap: marketsMap,\r\n // };\r\n // }\r\n\r\n case TRIGGER_MULTI_FETCH_MARKETS: {\r\n var limitKey = action.payload.data.limitKey;\r\n var trigger = false;\r\n\r\n if (action.payload?.accountPath) {\r\n if (action.payload.accountPath.includes(limitKey)) {\r\n trigger = true;\r\n }\r\n } else {\r\n const multiMarketData = state.multiMarketData;\r\n limitKey = limitKey.concat(\"/\");\r\n var keys = Object.keys(multiMarketData)\r\n\r\n for (let key of keys) {\r\n const ids = key.split(\"-\");\r\n const checkKey = limitKey.includes(`/EI/`)\r\n ? `/EI/${ids[2]}/`\r\n : limitKey.includes(`/CI/`)\r\n ? `/CI/${ids[1]}/`\r\n : limitKey.includes(`/SI/`)\r\n ? `/SI/${ids[0]}/`\r\n : limitKey.includes('/SPORTS/')\r\n ? `/SPORTS/`\r\n : null;\r\n\r\n if (checkKey && limitKey.includes(checkKey)) {\r\n trigger = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (trigger) {\r\n return {\r\n ...state,\r\n triggerFetchMarkets: moment.now()\r\n }\r\n }\r\n }\r\n\r\n case TRIGGER_MULTI_FETCH_ORDERS: {\r\n const multiMarketData = state.multiMarketData;\r\n if (multiMarketData) {\r\n var eventId = action.payload;\r\n var trigger = false;\r\n \r\n var keys = Object.keys(multiMarketData);\r\n for (let key of keys) {\r\n if (key.split(\"-\")[2] == eventId) {\r\n trigger = true;\r\n }\r\n }\r\n \r\n if (trigger) {\r\n return {\r\n ...state,\r\n triggerFetchOrders: moment.now()\r\n }\r\n }\r\n }\r\n }\r\n\r\n case TRIGGER_MULTI_BET_STATUS: {\r\n const multiMarketData = state.multiMarketData;\r\n if (multiMarketData) {\r\n var eventId = action.payload;\r\n var trigger = false;\r\n \r\n var keys = Object.keys(multiMarketData);\r\n for (let key of keys) {\r\n if (key.split(\"-\")[2] == eventId) {\r\n trigger = true;\r\n }\r\n }\r\n \r\n if (trigger) {\r\n return {\r\n ...state,\r\n triggerBetStatus: moment.now()\r\n }\r\n }\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default multiMarketReducer;\r\n","import { combineReducers } from 'redux';\n\nimport authReducer from './auth/authReducer';\nimport commonReducer from './common/commonReducer';\nimport exchangeSportsReducer from './exchangeSports/exchangeSportsReducer';\nimport exchBetslipReducer from './exchBetslip/exchBetslipReducer';\nimport indianCasinoReducer from './casino/CasinoGameReducer';\nimport multiMarketReducer from './multimarket/multimarketReducer';\n\nconst rootReducer = combineReducers({\n auth: authReducer,\n common: commonReducer,\n exchangeSports: exchangeSportsReducer,\n indianCasino: indianCasinoReducer,\n exchBetslip: exchBetslipReducer,\n multiMarket: multiMarketReducer,\n});\n\nexport default rootReducer;\n","import { createStore, applyMiddleware } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport thunk from 'redux-thunk';\n\nimport rootReducer from './rootReducer';\n\nconst store = createStore(\n rootReducer,\n composeWithDevTools(applyMiddleware(thunk))\n);\n\nexport default store;\n","export const LINE_MARKETS = [\n '1st Innings 6 Overs Line',\n '1st Innings 10 Overs Line',\n '1st Innings 15 Overs Line',\n '1st Innings 20 Overs Line',\n '2nd Innings 6 Overs Line',\n '2nd Innings 10 Overs Line',\n '2nd Innings 15 Overs Line',\n '2nd Innings 20 Overs Line',\n];\n","import moment from 'moment';\nimport { LINE_MARKETS } from '../../constants/LineMarkets';\nimport { EventDTO } from '../../models/common/EventDTO';\nimport { MatchOddsDTO } from '../../models/common/MatchOddsDTO';\nimport { EventType } from '../../models/EventType';\nimport {\n CompetitionEventTypeMap,\n EventsMap,\n SecondaryMarketsMap,\n SecondaryMatchOddsMap,\n PremiumMarketsMap,\n} from '../../models/ExchangeSportsState';\nimport { SPORTS_MAP } from '../../constants/ExchangeEventTypes';\n\nconst eventTypesNameMap = {\n '4': 'Cricket',\n '2': 'Tennis',\n '1': 'Football',\n '7': 'Horse Racing',\n '4339': 'GreyHound',\n '7522': 'Basketball',\n '7511': 'Baseball',\n};\n\ntype InplayEventsObj = {\n sportId: string;\n sportName: string;\n sportSlug: string;\n events: EventDTO[];\n priority?: number;\n};\n\nexport const getCompetitionsByEventType = (\n competitions: CompetitionEventTypeMap,\n eventTypeId: string\n) => {\n return competitions[eventTypeId] ? competitions[eventTypeId] : null;\n};\n\nexport const getExchangeEvents = (\n allEvents: EventsMap,\n eventTypeId: string,\n competitionId?: string,\n pageNo?: number,\n pageSize?: number\n) => {\n if (allEvents[eventTypeId]) {\n let events: EventDTO[] = [];\n if (competitionId) {\n if (allEvents[eventTypeId][competitionId]) {\n for (let eventId of Object.keys(\n allEvents[eventTypeId][competitionId]\n )) {\n const eData = allEvents[eventTypeId][competitionId][eventId];\n const dateDiff = moment(eData.openDate).diff(moment(), 'days');\n const dateDiffinSecs = moment(eData.openDate).diff(\n moment(),\n 'seconds'\n );\n if (\n eData.matchOdds &&\n eData.matchOdds.status.toLowerCase() !== 'closed' &&\n (dateDiff >= 0 || eData.status === 'IN_PLAY') &&\n !(dateDiffinSecs < 0 && eData.status !== 'IN_PLAY')\n ) {\n events.push(eData);\n }\n }\n }\n } else {\n for (let competitionId of Object.keys(allEvents[eventTypeId])) {\n for (let eventId of Object.keys(\n allEvents[eventTypeId][competitionId]\n )) {\n const eData = allEvents[eventTypeId][competitionId][eventId];\n const dateDiff = moment(eData.openDate).diff(moment(), 'days');\n const dateDiffinSecs = moment(eData.openDate).diff(\n moment(),\n 'seconds'\n );\n // if (\n // eData.matchOdds &&\n // eData.matchOdds.status.toLowerCase() !== 'closed' &&\n // (dateDiff >= 0 || eData.matchOdds.inplay) &&\n // !(dateDiffinSecs < 0 && !eData.matchOdds.inplay)\n // ) {\n // events.push(eData);\n // }\n events.push(eData);\n }\n }\n }\n if (events.length > 0) {\n events.sort((a, b) => {\n const aOpenDate = moment(a.openDate);\n const bOpenDate = moment(b.openDate);\n return aOpenDate.diff(bOpenDate, 'seconds') > 0 ? 1 : -1;\n });\n if (pageNo && pageSize) {\n return events.slice((pageNo - 1) * pageSize, pageNo * pageSize);\n } else {\n return events;\n }\n }\n }\n return null;\n};\n\nexport const getEventsListByCompetition = (\n allEvents: EventsMap,\n eventTypeId: string,\n competitionId?: string\n) => {\n if (allEvents[eventTypeId]) {\n let events: EventType[] = [];\n if (competitionId && allEvents[eventTypeId][competitionId]) {\n for (let eventId of Object.keys(allEvents[eventTypeId][competitionId])) {\n const e = allEvents[eventTypeId][competitionId][eventId];\n if (e.matchOdds.status.toLowerCase() !== 'closed') {\n events.push({\n id: e.eventId,\n name: e.eventName,\n slug: e.eventSlug,\n });\n }\n }\n } else {\n for (let competitionId of Object.keys(allEvents[eventTypeId])) {\n for (let eventId of Object.keys(\n allEvents[eventTypeId][competitionId]\n )) {\n const e = allEvents[eventTypeId][competitionId][eventId];\n if (e.matchOdds.status.toLowerCase() !== 'closed') {\n events.push({\n id: e.eventId,\n name: e.eventName,\n slug: e.eventSlug,\n });\n }\n }\n }\n }\n return events;\n }\n return null;\n};\n\nexport const getInplayEvents = (allEvents: EventsMap, contentConfig: any) => {\n for (let key in allEvents) {\n if (key == '7' || key == '4339') {\n delete allEvents[key];\n }\n }\n let inplayEvents: InplayEventsObj[] = [];\n for (let etId of Object.keys(allEvents)) {\n let events: EventDTO[] = [];\n var sport = contentConfig?.sports?.filter(\n (item) =>\n item.name.toLowerCase() === eventTypesNameMap[etId]?.toLowerCase()\n )[0];\n for (let cId of Object.keys(allEvents[etId])) {\n for (let eId of Object.keys(allEvents[etId][cId])) {\n const eData = allEvents[etId][cId][eId];\n\n if(moment(eData.openDate).diff( moment(),'seconds') <= 0) {\n events.push(eData);\n }\n }\n }\n\n var disable = sport ? sport.disabled : false;\n if (events.length > 0 && !disable) {\n events.sort((a, b) => {\n const aOpenDate = moment(a.openDate);\n const bOpenDate = moment(b.openDate);\n return aOpenDate.diff(bOpenDate, 'seconds') > 0 ? 1 : -1;\n });\n inplayEvents.push({\n sportId: etId,\n sportName: eventTypesNameMap[etId],\n sportSlug: eventTypesNameMap[etId]?.toLowerCase(),\n events: events,\n priority: sport\n ? sport.priority\n : SPORTS_MAP.get(eventTypesNameMap[etId])?.priority,\n });\n }\n }\n\n inplayEvents.sort((a, b) => a.priority - b.priority);\n\n return inplayEvents;\n};\n\nexport const getAllMarketsByEvent = (\n allEvents: EventsMap,\n eventTypeId: string,\n competitionId: string,\n eventId: string,\n) => {\n competitionId = competitionId.includes(':')? competitionId.split(':').join('_'): competitionId;\n eventId = eventId.includes(':')? eventId.split(':').join('_'): eventId;\n if (\n allEvents[eventTypeId] &&\n allEvents[eventTypeId][competitionId] &&\n allEvents[eventTypeId][competitionId][eventId]\n ) {\n return { ...allEvents[eventTypeId][competitionId][eventId] };\n }\n return null;\n};\n\nexport const getBookmakerMarketsByEvent = (\n secondaryMarketsMap: SecondaryMarketsMap,\n eventId: string\n) => {\n if (secondaryMarketsMap[eventId]) {\n return secondaryMarketsMap[eventId].bookmakers;\n }\n return null;\n};\n\nexport const getFancyMarketsByEvent = (\n secondaryMarketsMap: SecondaryMarketsMap,\n eventId: string\n) => {\n if (secondaryMarketsMap[eventId]) {\n return [...secondaryMarketsMap[eventId].fancyMarkets];\n }\n return null;\n};\n\nexport const isFancyMarketSuspended = (\n secondaryMarketsMap: SecondaryMarketsMap,\n eventId: string\n) => {\n if (secondaryMarketsMap[eventId]) {\n return secondaryMarketsMap[eventId].fancySuspended;\n }\n return false;\n};\n\nexport const getSecondaryMarketsByEvent = (\n secondaryMarketsMap: SecondaryMarketsMap,\n eventId: string\n) => {\n if (secondaryMarketsMap[eventId]) {\n return secondaryMarketsMap[eventId];\n }\n return null;\n};\n\nexport const getSecondaryMatchOddsByEvent = (\n secondaryMatchOddsMap: SecondaryMatchOddsMap,\n eventId: string\n) => {\n let secondaryMatchOdds: MatchOddsDTO[] = [];\n for (let mo of Object.keys(secondaryMatchOddsMap)) {\n if (\n mo.startsWith(eventId) &&\n !LINE_MARKETS.includes(secondaryMatchOddsMap[mo].marketName)\n ) {\n secondaryMatchOdds.push(secondaryMatchOddsMap[mo]);\n }\n }\n secondaryMatchOdds.sort((a, b) => {\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (aDesc > bDesc) return 1;\n else if (aDesc < bDesc) return -1;\n return 0;\n });\n return secondaryMatchOdds;\n};\n\nexport const getLineMarketsByEvent = (\n secondaryMatchOddsMap: SecondaryMatchOddsMap,\n eventId: string\n) => {\n let secondaryMatchOdds: MatchOddsDTO[] = [];\n for (let mo of Object.keys(secondaryMatchOddsMap)) {\n if (\n mo.startsWith(eventId) &&\n LINE_MARKETS.includes(secondaryMatchOddsMap[mo].marketName)\n ) {\n secondaryMatchOdds.push(secondaryMatchOddsMap[mo]);\n }\n }\n secondaryMatchOdds.sort((a, b) => {\n const aDesc = a.marketName;\n const bDesc = b.marketName;\n if (LINE_MARKETS.indexOf(aDesc) > LINE_MARKETS.indexOf(bDesc)) return 1;\n else if (LINE_MARKETS.indexOf(aDesc) < LINE_MARKETS.indexOf(bDesc))\n return -1;\n return 0;\n });\n return secondaryMatchOdds;\n};\n\nexport const getPremiumMarkets = (\n premiumMarketsMap: PremiumMarketsMap,\n eventId: string\n) => {\n // const premiumMarketsData = premiumMarketsMap[eventId];\n const sEventId = eventId?.includes('_')\n ? eventId?.split('_').join(':')\n : eventId;\n const premiumMarketsData = premiumMarketsMap[sEventId];\n return { ...premiumMarketsData };\n};\n","import API from '../../api';\nimport { CasinoGameDTO } from '../../models/IndianCasinoState';\nimport {\n SET_CASINO_GAME,\n UPDATE_CASINO_GAMES,\n UPDATE_GAME_DATA,\n UPDATE_GAME_RESULTS,\n} from './CasinoActionTypes';\n\nexport const updateCasinoGames = (casinoGames: CasinoGameDTO[]) => {\n return {\n type: UPDATE_CASINO_GAMES,\n payload: casinoGames,\n };\n};\n\nexport const setCasinoGame = (game: CasinoGameDTO) => {\n return {\n type: SET_CASINO_GAME,\n payload: game,\n };\n};\n\nexport const fetchGameData = (gameCode: string) => {\n return async (dispatch: Function) => {\n try {\n if (gameCode !== '') {\n const result = await API.get('/indian-casino/round', {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n },\n params: {\n indianCasinoGameType: gameCode,\n },\n });\n if (result.data && result.data.mId) {\n dispatch(updateGameData(result.data));\n }\n }\n } catch (err) {\n console.log(err);\n }\n };\n};\n\nexport const updateGameData = (gameData) => {\n return {\n type: UPDATE_GAME_DATA,\n payload: gameData,\n };\n};\n\nexport const updateGameResults = (gameResults) => {\n return {\n type: UPDATE_GAME_RESULTS,\n payload: gameResults,\n };\n};\n","import axios from 'axios';\nimport store from '../store/store';\nimport { logout } from '../store';\nimport { ThunkDispatch } from 'redux-thunk';\nimport { AnyAction } from 'redux';\nimport { RootState } from '../models/RootState';\nimport { getBaseUrl } from '../api-services/environment-url/environment-url';\n\nconst API = axios.create({\n baseURL: getBaseUrl(process.env.REACT_APP_NODE_ENV, 'REACT_APP_REST_API_URL'),\n responseType: 'json',\n withCredentials: false,\n timeout: 10000, // 10 seconds\n});\n\n//Add a response interceptor\nAPI.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error.response && error.response.status === 401) {\n console.log('***********Unauthorized Error**********');\n const token = sessionStorage.getItem('jwt_token');\n if (token) {\n (store.dispatch as ThunkDispatch)(logout());\n }\n }\n return Promise.reject(error);\n }\n);\n\nexport default API;\n","import {\r\n SET_MULTIMARKET_EVENT_DATA,\r\n UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS,\r\n UPDATE_MULTIMARKET_SECONDARY_MARKETS,\r\n UPDATE_MULTIMARKET_BOOKMAKER_MARKETS,\r\n MULTI_SUSPENDED_MARKETS,\r\n MULTI_COMMISSION_MARKETS,\r\n TRIGGER_MULTI_FETCH_MARKETS,\r\n TRIGGER_MULTI_FETCH_ORDERS,\r\n TRIGGER_MULTI_BET_STATUS,\r\n} from './multimarketActionTypes';\r\nimport { UPDATE_TOPIC_URLS } from '../exchangeSports/exchangeSportsActionTypes';\r\nimport API from '../../api';\r\nimport { EventDTO } from '../../models/common/EventDTO';\r\nimport { EXCH_SPORTS_MAP } from '../../constants/ExchangeEventTypes';\r\nimport { PROVIDER_ID } from '../../constants/Branding';\r\nimport SVLS_API from '../../svls-api';\r\nimport { getAccountPathFromToken } from '../auth/authActions';\r\nimport { isAccountPath } from '../common/commonActions';\r\n\r\nexport const addToMultiMarket = (\r\n competitionId,\r\n eventId,\r\n marketId,\r\n providerId,\r\n sportId\r\n) => {\r\n const username = sessionStorage.getItem('username') ?? '';\r\n if (marketId && username) {\r\n let data = [];\r\n const localData = localStorage.getItem(`multiMarket_${username}`) ?? '';\r\n if (localData) data = JSON.parse(atob(localData));\r\n const marketInclue = data?.filter((itm) => itm.marketId === marketId);\r\n if (marketInclue?.length === 0) {\r\n data.push({\r\n competitionId,\r\n eventId,\r\n marketId,\r\n providerId,\r\n sportId,\r\n });\r\n localStorage.setItem(\r\n `multiMarket_${username}`,\r\n btoa(JSON.stringify(data))\r\n );\r\n }\r\n }\r\n};\r\nexport const removeToMultiMarket = (eventId, marketId) => {\r\n const username = sessionStorage.getItem('username') ?? '';\r\n if (username && marketId) {\r\n let data = [];\r\n const localData = localStorage.getItem(`multiMarket_${username}`) ?? '';\r\n if (localData) data = JSON.parse(atob(localData));\r\n const index = data?.findIndex(\r\n (itm) => itm.eventId === eventId && itm.marketId === marketId\r\n );\r\n index > -1 && data.splice(index, 1);\r\n index > -1 &&\r\n localStorage.setItem(\r\n `multiMarket_${username}`,\r\n btoa(JSON.stringify(data))\r\n );\r\n }\r\n};\r\n\r\nexport const checkIncludeMultiMarket = (marketData, marketId, eventId) => {\r\n let marketInclue = marketData.filter((itm) => itm.marketId === marketId);\r\n return marketInclue.length ? true : false;\r\n};\r\n\r\nconst setMultiMarketEventData = (payload) => {\r\n return {\r\n type: SET_MULTIMARKET_EVENT_DATA,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const updateMultiSecondaryMatchOdds = (payload) => {\r\n return {\r\n type: UPDATE_MULTIMARKET_SECONDARY_MATCH_ODDS,\r\n payload: payload,\r\n };\r\n};\r\n\r\nconst updateMultiSecondaryMarkets = (payload) => {\r\n return {\r\n type: UPDATE_MULTIMARKET_SECONDARY_MARKETS,\r\n payload: payload,\r\n };\r\n};\r\n\r\n// export const updateMultiFancyMarkets = (payload) => {\r\n// return {\r\n// type: UPDATE_MULTIMARKET_FANCY_MARKETS,\r\n// payload: payload,\r\n// };\r\n// };\r\n\r\nexport const updateMultiOddsfromWS = (payload) => {\r\n return {\r\n type: SET_MULTIMARKET_EVENT_DATA,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const updateMultiSuspendedMarkets = (payload) => {\r\n return {\r\n type: MULTI_SUSPENDED_MARKETS,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const updateMultiCommissionMarkets = (payload) => {\r\n return {\r\n type: MULTI_COMMISSION_MARKETS,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const updateMultiBookMakerMarkets = (payload) => {\r\n return {\r\n type: UPDATE_MULTIMARKET_BOOKMAKER_MARKETS,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const triggerMultiFetchMarkets = (payload) => {\r\n return {\r\n type: TRIGGER_MULTI_FETCH_MARKETS,\r\n payload: {\r\n accountPath: isAccountPath(payload.limitKey)\r\n ? getAccountPathFromToken()\r\n : null,\r\n data: payload,\r\n },\r\n };\r\n};\r\n\r\nexport const triggerMultiFetchOrders = (eventId) => {\r\n return {\r\n type: TRIGGER_MULTI_FETCH_ORDERS,\r\n payload: eventId,\r\n };\r\n};\r\n\r\nexport const triggerMultiBetStatus = (eventId) => {\r\n return {\r\n type: TRIGGER_MULTI_BET_STATUS,\r\n payload: eventId,\r\n };\r\n};\r\n\r\nconst updateTopicUrlsInStore = (dispatch: Function, eventData: any) => {\r\n // Dispatch topic urls\r\n const topicUrlPayload = {\r\n matchOddsBaseUrl: eventData?.markets?.matchOddsBaseUrl,\r\n matchOddsTopic: eventData?.markets?.matchOddsTopic,\r\n bookMakerBaseUrl: eventData?.markets?.bookMakerBaseUrl,\r\n bookMakerTopic: eventData?.markets?.bookMakerTopic,\r\n fancyBaseUrl: eventData?.markets?.fancyBaseUrl,\r\n fancyTopic: eventData?.markets?.fancyTopic,\r\n premiumBaseUrl: eventData?.markets?.premiumBaseUrl,\r\n premiumTopic: eventData?.markets?.premiumTopic,\r\n };\r\n dispatch(updateTopicUrls(topicUrlPayload));\r\n};\r\n\r\nexport const updateTopicUrls = (payload) => {\r\n return {\r\n type: UPDATE_TOPIC_URLS,\r\n payload: payload,\r\n };\r\n};\r\n\r\nexport const fetchMultiMarketEventData = () => {\r\n return async (dispatch: Function) => {\r\n try {\r\n let data = [];\r\n const username = sessionStorage.getItem('username') ?? '';\r\n const multiMarket = localStorage.getItem(`multiMarket_${username}`);\r\n if (multiMarket) data = JSON.parse(atob(multiMarket));\r\n if (data?.length) {\r\n const response = await SVLS_API.post(\r\n `/catalog/v2/sports-feed/sports/markets`,\r\n {\r\n eventDetails: data,\r\n providerId: PROVIDER_ID,\r\n marketsCriteria: 'ALL',\r\n },\r\n {\r\n headers: {\r\n Authorization: sessionStorage.getItem('jwt_token'),\r\n },\r\n }\r\n );\r\n if (response?.data?.length > 0) {\r\n updateTopicUrlsInStore(dispatch, response.data[0]);\r\n for (let i = 0; i < response?.data?.length; i++) {\r\n const eventData = response.data[i];\r\n if (eventData.eventId) {\r\n const eData: EventDTO = {\r\n // inPlay: eventData.inPlay,\r\n status: eventData.status,\r\n openDate: eventData.openDate,\r\n sportId: eventData.sportId,\r\n competitionId: eventData.competitionId,\r\n competitionName: eventData.competitionName\r\n ? eventData.competitionName\r\n : 'Other',\r\n eventId: eventData.eventId,\r\n eventName: eventData.eventName,\r\n marketId: eventData.marketId,\r\n providerName: eventData.providerName,\r\n enabled: eventData.enabled,\r\n };\r\n\r\n const payload = {\r\n eventData: eData,\r\n //eventData: response.data,\r\n sportId: eData.sportId,\r\n competitionId: eData.competitionId,\r\n eventId: eventData.eventId,\r\n matchOddsData:\r\n eventData.markets && eventData.markets.matchOdds\r\n ? eventData.markets.matchOdds.find(\r\n (mo) =>\r\n mo.marketName === 'Match Odds' ||\r\n mo.marketName.toLowerCase() === 'moneyline'\r\n )\r\n : null,\r\n onRefresh: true,\r\n };\r\n\r\n dispatch(setMultiMarketEventData(payload));\r\n // if (eData.sportId === '1') {\r\n //|| eData.sportId === '4'\r\n for (let mo of eventData.markets.matchOdds) {\r\n if (eData.sportId === '4') {\r\n if (\r\n mo.marketName !== 'Match Odds' &&\r\n mo.marketName.toLowerCase() !== 'moneyline' &&\r\n mo.marketId !== '1.196548297' &&\r\n mo.marketId !== '1.196548301'\r\n ) {\r\n const secMOPayload = {\r\n sportId: eventData.sportId,\r\n competitionId: eventData.competitionId,\r\n eventId: eventData.eventId,\r\n marketId: mo.marketId,\r\n matchOddsData: mo,\r\n };\r\n\r\n dispatch(updateMultiSecondaryMatchOdds(secMOPayload));\r\n }\r\n } else {\r\n if (\r\n mo.marketName !== 'Match Odds' &&\r\n mo.marketName.toLowerCase() !== 'moneyline'\r\n ) {\r\n const secMOPayload = {\r\n sportId: eventData.sportId,\r\n competitionId: eventData.competitionId,\r\n eventId: eventData.eventId,\r\n marketId: mo.marketId,\r\n matchOddsData: mo,\r\n };\r\n\r\n dispatch(updateMultiSecondaryMatchOdds(secMOPayload));\r\n }\r\n }\r\n }\r\n // }\r\n\r\n if (eData.sportId === '4') {\r\n const secMarketsPayload = {\r\n eventId: eData.eventId,\r\n sportId: eData?.sportId,\r\n competitionId: eData?.competitionId,\r\n bookmakerOddsData: eventData.markets\r\n ? eventData.markets.bookmakers\r\n : null,\r\n enableBookmaker: eventData.markets\r\n ? eventData.markets.enableBookmaker\r\n : false,\r\n sessionOddsData: eventData.markets\r\n ? eventData.markets.fancyMarkets\r\n : null,\r\n enableFancy: eventData.markets\r\n ? eventData.markets.enableFancy\r\n : false,\r\n };\r\n dispatch(updateMultiSecondaryMarkets(secMarketsPayload));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n };\r\n};\r\n","export const UPDATE_CASINO_GAMES = 'UPDATE_CASINO_GAMES';\nexport const SET_CASINO_GAME = 'SET_CASINO_GAME';\nexport const UPDATE_GAME_DATA = 'UPDATE_GAME_DATA';\nexport const UPDATE_GAME_RESULTS = 'UPDATE_GAME_RESULTS';\n","module.exports = __webpack_public_path__ + \"static/media/liveIcon.49116713.svg\";","import rugbyIcon from '../assets/images/sportsbook/icons/rugby.png';\nimport iceHockeyIcon from '../assets/images/sportsbook/icons/ice-hockey.png';\nimport badmintonIcon from '../assets/images/sportsbook/icons/badminton.png';\nimport tableTennisIcon from '../assets/images/sportsbook/icons/table-tennis.png';\nimport GreyhoundIcon from '../assets/images/sportsbook/icons/greyhound-live.png';\nimport HorseRacing from '../assets/images/sportsbook/icons/horse_racing.png';\n\nexport const EXCHANGE_EVENT_TYPES = [\n { id: '4', name: 'Cricket', slug: 'cricket' },\n { id: '1', name: 'Football', slug: 'football' },\n { id: '2', name: 'Tennis', slug: 'tennis' },\n { id: '7', name: 'Horse Racing', slug: 'horseracing' },\n {\n id: '4339',\n name: 'GreyHound',\n slug: 'greyhound',\n },\n {\n id: '7522',\n name: 'basketball',\n slug: 'basketball',\n enabled: true,\n },\n {\n id: '7511',\n name: 'baseball',\n slug: 'baseball',\n enabled: true,\n },\n];\n\nexport const SPORTS_MAP = new Map([\n [\n 'Cricket',\n { id: '4', name: 'Cricket', slug: 'cricket', priority: 0, disable: false },\n ],\n [\n 'Football',\n {\n id: '1',\n name: 'Football',\n slug: 'football',\n priority: 1,\n disable: false,\n },\n ],\n [\n 'Tennis',\n { id: '2', name: 'Tennis', slug: 'tennis', priority: 2, disable: false },\n ],\n [\n 'Horse Racing',\n {\n id: '7',\n name: 'Horse Racing',\n slug: 'horseracing',\n priority: 3,\n disable: false,\n },\n ],\n [\n 'GreyHound',\n {\n id: '4339',\n name: 'GreyHound',\n slug: 'greyhound',\n priority: 4,\n disable: false,\n },\n ],\n [\n 'Basketball',\n {\n id: '7522',\n name: 'basketball',\n slug: 'basketball',\n enabled: true,\n priority: 5,\n disable: false,\n },\n ],\n [\n 'Baseball',\n {\n id: '7511',\n name: 'baseball',\n slug: 'baseball',\n enabled: true,\n priority: 6,\n disable: false,\n },\n ],\n]);\n\nexport const EXCH_SPORTS_MAP = {\n tennis: '2',\n football: '1',\n soccer: '1',\n cricket: '4',\n horseracing: '7',\n greyhound: '4339',\n basketball: '7522',\n baseball: '7511',\n};\n\ntype oEvent = {\n label: string;\n img: string;\n};\n\nexport const OTHER_EVENTS: oEvent[] = [\n // { label: 'Greyhound', img: Greyhound },\n // { label: 'Horse Racing', img: HorseRacing },\n // { label: 'Rugby', img: rugbyIcon },\n // { label: 'Table Tennis', img: tableTennisIcon },\n // { label: 'Ice Hockey', img: iceHockeyIcon },\n { label: 'Badminton', img: badmintonIcon },\n];\n","import { BACKEND_DOMAIN, BRAND_DOMAIN } from '../../constants/Branding';\n\nexport const DevUrlsMap = {\n REACT_APP_REST_API_URL: `https://dev-user-api.hypexexch.com/api/v1`,\n REACT_APP_REST_API_V2_URL: `https://dev-user-api.hypexexch.com`,\n REACT_APP_REST_REPORTING_API_URL: `https://dev-reporting.hypexexch.com`,\n REACT_APP_WEBSOCKET_URL_PUSH_NOTIFICATIONS: `https://dev-reporting.hypexexch.com/push-notifications`,\n BINARY_WEBSOCKET_URL: `https://stage-user-api.hypexexch.com/hypex-ws`,\n REACT_APP_REST_AGPAY_URL: `https://dev-agpay.hypexexch.com`,\n REACT_APP_SPORT_FEED_URL: `https://stage-api.mysportsfeed.io/api/v1`,\n};\n\nexport const StageUrlsMap = {\n REACT_APP_REST_API_URL: `https://dev-feature-api.hypexexch.com/api/v1`,\n REACT_APP_REST_API_V2_URL: `https://dev-feature-api.hypexexch.com`,\n REACT_APP_REST_REPORTING_API_URL: `https://dev-feature-reporting.hypexexch.com`,\n REACT_APP_WEBSOCKET_URL_PUSH_NOTIFICATIONS: `https://dev-feature-reporting.hypexexch.com/push-notifications`,\n BINARY_WEBSOCKET_URL: `https://stage-user-api.hypexexch.com/hypex-ws`,\n REACT_APP_REST_AGPAY_URL: `https://v2-agpay.hypexexch.com`,\n REACT_APP_SPORT_FEED_URL: `https://stage-api.mysportsfeed.io/api/v1`,\n};\n\nexport const ProdUrls = {\n REACT_APP_REST_API_URL: `https://api.${BACKEND_DOMAIN}/api/v1`,\n REACT_APP_REST_API_V2_URL: `https://api.${BACKEND_DOMAIN}`,\n REACT_APP_REST_REPORTING_API_URL: `https://reporting.${BACKEND_DOMAIN}`,\n REACT_APP_WEBSOCKET_URL_PUSH_NOTIFICATIONS: `https://reporting.${BACKEND_DOMAIN}/push-notifications`,\n BINARY_WEBSOCKET_URL: `https://feed.mysportsfeed.io/hypex-ws`,\n REACT_APP_REST_AGPAY_URL: `https://agpay.${BACKEND_DOMAIN}`,\n REACT_APP_SPORT_FEED_URL: `https://api.mysportsfeed.io/api/v1`\n};\n\nexport const EnvUrlsMap = {\n development: StageUrlsMap,\n stage: StageUrlsMap,\n production: ProdUrls,\n};\n\nexport function getBaseUrl(env: string, url: string) {\n return EnvUrlsMap[env][url];\n}\n","export enum Currency {\n Pts = 'Pts',\n Hkd = 'Hkd',\n}\n","export const CONFIG_PERMISSIONS = {\n football: 1,\n tennis: 2,\n cricket: 4,\n live_casino: 8,\n indian_casino: 16,\n sports: 7,\n casino: 24,\n commission: 32,\n crypto_currency: 64,\n binary: 128,\n};\n","import { IonSpinner } from '@ionic/react';\nimport React from 'react';\nimport TitleImg from '../../assets/images/brand/title.png';\nimport { BRAND_NAME } from '../../constants/Branding';\nimport './LoadingPage.scss';\n\nconst LoadingPage: React.FC = () => {\n return (\n
\n
\n {BRAND_NAME}\n
\n
\n \n
\n
\n );\n};\n\nexport default LoadingPage;\n","module.exports = __webpack_public_path__ + \"static/media/Football.7b275018.svg\";","import axios from 'axios';\nimport store from '../store/store';\nimport { logout } from '../store';\nimport { ThunkDispatch } from 'redux-thunk';\nimport { AnyAction } from 'redux';\nimport { RootState } from '../models/RootState';\nimport { getBaseUrl } from '../api-services/environment-url/environment-url';\n\nconst REPORTING_API = axios.create({\n baseURL: getBaseUrl(process.env.REACT_APP_NODE_ENV, 'REACT_APP_REST_REPORTING_API_URL'),\n responseType: 'json',\n withCredentials: false,\n timeout: 10000, // 10 seconds\n});\n\n//Add a response interceptor\nREPORTING_API.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error.response && error.response.status === 401) {\n console.log('***********Unauthorized Error**********');\n const token = sessionStorage.getItem('jwt_token');\n if (token) {\n (store.dispatch as ThunkDispatch)(logout());\n }\n }\n return Promise.reject(error);\n }\n);\n\nexport default REPORTING_API;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeMAAABjCAYAAAHft1jCAAAACXBIWXMAAAsSAAALEgHS3X78AAASbUlEQVR4nO2d623cuhLHqYsUcJ3twG7gAs73ew6QlGCXYJfgLcEuwS4hLiH+cAqwgduAtwNlS9AFl1T0WJIaPsSX/j8gSLK7kihRwxkOZ4ZN13Vsa/xrc3e81Zv+kkEb/Gmb76dz7Lq309/9/8/5YLvuOL3ptlEL+K5rvL/r/y3+fmaM3Z3+vXRdE+fH6ds5Ot95T+suNG/g+HeqY0wX5zfM2IF8c/pz857te3l6DsM5z2/6vLH8lfhGbAS9wbvuavH4ecPb5oIx9nvy3fhY3b9n5/py9kXbPIw+eWSMXZNvaGDPdt2T5TGvpwds5vefbwmvse53Uz1NeeKq13sut0wjDoNMq39juq4K6nlm51pWWbbyZtMAG7GY0zaX1m2SwCLbCpu86c293pvr5fxv2GdkV1D+JGM8oViaZOy6ty+jA+0nF4y9sF13v3isaqKxfG6zTdA23DJ8P/ut+Y1oaJOLuaW1ZMibLjq3mGwNnen5bxljPxWfHyZ2/IjliQWlQbZytmADa689vtFd9zr6/3525KXuPr5MPphOKJicVNjyIicVR+1xqrfkvNHzY+5G//vJ2snhjzNZnr/eL/1Xgx6mT9/OGzuXU8au2K47KL8b/v3Kdt3tYg+rH860vRZjQVi1NJz4c8HY59PDm8DX1PE6/jx/S0vXw47AtKydTc6Nt8Ymp8VbA50cgsAT2dDoJ8Y2DXf3x4p5puv15sep2mGasfj4kUNYRW3zrlwJoc6yTGiXY3xPHAsX03N6T8NEJ0XbzRwtfqtm9mz8XFyUFU2dVMXCxb8Rkn75XNUGVSfuuq/yuzuHVnxVuSV0nTz1HulQrTfGwPV6MdtJ8fTpvhPtfHa46u9T7MQMdSdzr5nix+SG+qL247gOsfzNvpi02dzZ92zXvRi+X8bn2ajv/fhHwscQRyn1PNnHHWs6l8vvljqbangJ39sn8RrLLPnwTaiH6b6dv/4E+NihFQI4Q0IQ2AcZGsyTNwAkeQOgkzcAhusNgE7eAOjkDYBODkHb/JVz89DJG6CORL+SEaG1F5M76GOJx+iTF9WMzhFmqdF1XdbtuCGrbHqc8DmrPuuZfqc7D73dvuiv67uefDi5OSXnw7V4s3LGJTpY5cy3TT8MB2+LvvOGiGT39eRJnLlKJ78rPsuL87BwM6nXlHv44sNSx63w8i3pZLtlN1P2hOnB0hIVPk/JAbaI48zXWrvT5ytgTLukOD7m8+wzx3YudfKzjGxQ4ZJxrWa9tWlu0Awvhu4hramTz8/9xHadOklket7zF9rcTvWas2a4pnbcY7JYMPrLNdbffoEAtqj0Lu/EvoPDP7sLnRo772TdW6ajbX5b/d6fpdoLOlxiptzQPZO+43Ud3H/u/gIoX2Rd+E8jq3PoHsxYQi40vwnJXrbLTz20zY0MbTJh95KrCf1Mzm2jtuF9MJVcTW6h21LjuDwLI+o6m9AfU3iM7jj1PJkzDUpcI6KUuzV33T+adtlwL0eq6QyHWmtI03ZK7Z/4qDraLcSGd/zrJLt16TyU+19qh311qqG+kur6nm0K4btWJnh7Y18pS49NYvzaqGYrSwW0PPHt5LdVMxHW7ejYBmNPeANwYeRA+E8I5jo5M7DUuAHQyRsAw/UGgCRvAHTyBsBwDUAFYLQGoAIgyABUAAQZ5EHb/MPa5j/oDTcgyCAX/ssY+zd6ww0IMgAVYJ+06l5GzEz8CKyhNu+611RWuly4nikPU/+76bmnsbRL7YoR8ZZblbPlZzRG7BmiPs955dS1IMfi6m8a61Ru/JaxwN/YrnNN+7BDRCfqIvuX91WtGZFDZJ/3rBJi83NeA21INE2QhRYGfryzttFr5xDMd3ubk3Hdz1XxFTh1SPjPyEL8agp7p2pknSmtTYX1xmfjvNS1zvXWy51FRnCoazJSCnlNQi6K/S/Vgv/BGKMoqHPrRdQSWN6tLuIz9S3slGaLDjCgSlwdsxUtTCsyMlhEtKniq2Y6dF7g45x1MgM1UAX5qDEjrj3nzjxL7ofH8WFZ3w9wXnnND5PWsZuTl+bsEhXrljSqbsMOWsko9byY+pw+Z7sA22PxvGiCzB/GOh39XZ433QZc8dhHc3bVqoWXfADnXHi9t8OxYlAU1k88+PWIdXvoprWo6kAZBV34XNx6qlzClTijIl7AvKydMKQoEPkihfjCOIUZoD7zZTmyKL5lN0cWBXXdBc5u3S4flooiDuRkWfTWjq+n3H+PuxCkKwXYxxosv7dUSyhEuaEZ1OUnuzK0euKaJiGhFePu50XxBHpol3rzZbGO7bO68F0OwP64WibCpPatmnejeT5zhusMBdApyueFKCfL3m5RwM0KWj7y+qOh24sWevnJ5nwhNPQakV3mdt1qy0ymdnaJ6/+9WtUk2v2dWy+0payQOMlCDrHWH6utRa+JqGK8NGB8yiK49rXXXRFt0mmvn5uM0KPd84tmChJzdw5nWUglyPs/glB6uKCdQIePUVe36WlR+4nIpPoRUw7KM1Obs/xz8SyXCma78hRCFlDqB+TB2qZ15SCNEYAKgEYGoAKgkQGoAAgyABUAQQagAjBHBqBwoI0BKBwIMQCFAyEGoHAgxAAUDoQYgMKBEANQOBBikAd8ozbgBNaJQR7w7KatFsj3BJoYgMKBEANQOBBiAArHdwsYAMqHVlLpY7FMsKgeum7NLlFieoKdENtX7acyLcieojrjOtc830+Zck1q28w1tnSlbtlp/61ddzX7/drPPH7R/SVstkvVPWtRJJGyr1MIXlRbCNHNaXHDKSr2l8xdkuqToq/0GmEuwFuDa17RL9R66boN5+8iCrC20B+1yPxl0QXiUxNz+WSpr7a8jCPM3U+HvYnPt3IR54pZs1oLVRPHG21qRYzaMTD1Vdmlg30Qm+27bVjuvjVqSLTTMnin47H+qG023XX79NYNn1qI5+JaD1xXizrMFjhUDHtnwTtdC+YC6kflHr11P48wDif13sah9jCjYvSK+wqx3QbYVCjzNtM+Oi7zvlBzRRuPZyjaxrypGGXrkJrmymKjNJOmPEgvr+sUh9K/TzZbmfrgZ05v0TxbIv7exRenPZj0lLcPlit82xphOpsE+Ep65ykC7C6EkQSYYU68AjE3VxOYtue89dzHuAy4VSaE17S96KvcC+lA3tJVNSC3TRYe6TF+5rT7Gmgem1yPKXE3QfP+uh/arU7V5yov2IO+wf18W1OKIOoGP5oJ7vc8rZ5VKk38LHfti+vhqw/98yt9J8ol2uaTIMD9zpxzgaRsCK5aG45lZT2ytiH7VVKb05RRtBaizZGqDujgL7fQciaBOkrhVZnDNEFU+3tibhVL9oBTzelX4uhlz1aSweM5vPKKTw4J3US98J4ejI8f3s+YG5KToWnitdcY6zerY3qIH2SiCgiDsKDEMl6W0B1bfDQS85A15gV31WqQNFYGD/yoy7pJ5RUeLCiKKX27FJgheSbIEVlx2nmn++wXt4gVc0BCvhyIA9d0zps67S7cNCXUXN43piBW7PmYg9WvqasBlHm5xcqC2xKT2wv6VOQyjsjhZIQonbvsUvy45eTbphxygNNNt37I61OUFlWAKYrMavBAsAcF8SIvaaRLOd2IjUlIL22WKjLmV5Km8cAQwfIzpPuNKPdyvrxlgJpPHCLgO1vHAAkuyO3JOjV16GUQ7UfnSb5ojcHK4Y6ul9ELaUe4YP8PVWkZIq9kTaeHMpi9jsx+u+dFf07LVoVlX1HNaRQEYBkK8jQ+95uh8sqnh6MrVN/vVaVlSPia9LQaWrqMJeracKjnZD1Y5WJO5xWCaSJX01oEJ+hf9jL9EaHwCdKIa0E6LOfmIcSlBennK8h7oxlozjmuGYpjTF/QMHPSC3Gp0Vr5CrLJjL9OkNCeFmpZpBwSchxlIbUQl53rmq8gm16GxwTpkinxyVhiEYOQnGUhlRDfa7JLyiPf5SdTFhMKH07RL+mIKcpaYcdvp2t7ygJ2RQR5gF0RnUGwBwCFAyEGoHAgxAAUDoQYgMKBYwuAwoEmBqBwIMQAFA6EGIDCgRADUDgQYgAKB0IMQOFgiQkAAABIDCxqAAAAIDFQxgAAAEBioIwBAACAxEAZAwAAAImBMgYAAAASA2UMAAAAJAbKGAAAevj2JOLPX3gmICZQxgAAAEBioIwBAACAxEAZAwAAAImBMgYAAAAS8yXK5dvmmjH2nTF2xxi7zLjT92zXPWm/5YEd5fPCdt298S7yvs8XxthB3sfR+Sz293jPdt1LtPOZaBsuQ++MsQuHoz8YYz+0z66Od9wsx2BAvEvPcnwOxVcn2RRtuZNtua6gl45s132l/ng9Zdw2D4yxx9XOD7bKnbzvR9Y27PTCC8X2uonn0TY/GWM3jkd/Y7vuI3CLQGm0zZ0cm12MuSVurRRx29xIY2CNtqTmh831wytjKGEQFy7EP6Vidp9t5k7b8NnCL8dWPrFdt8d7uVHEjPNhZMiuxRPZKPZ7n0tgb2v4hlXGbfMrsLsDABueT1b/rvtW1VNrm3dHt91RzoYPK7QK5IyYcT5GXBb8IBt89U/YPlyWScIFcLXNIxQxyIBraRSWDx+0xBquiyLen9aroIi3QdtcsLZ5/lO0hHuL4sbn0Fyyg4u8Zqzc0z0hZ8Zru0AAoPL9NDModR1ZuBV/OQ6m5gAtUA/C1fucQVDsPel94waDaG/N2K2ZjwipjF0X4HNay1ry8Ydq67VDEE6oa1NmSjn1icuzYplH7esRHqYHx6NvAxggNawt1xmkJpRZiJnlW0Av5otFnEYoj9XxtD6dH0cf+YuT2qSmvKCSUOkSwlVjp2BipmrkmBbSNr8rjbgUiPS/d8ejX9muuw3SDqQE5YWY/T4GSPUZ0r2ELIXgsJgm2SOMzFDpSj9qzApIqYzhRgM2HKtVxkhXAj3D7PfB830/ygnP1Lji68rh5Ii6Tnzj4e2ZYx2lXAoplfGjnA3Q1hvANhHvSOxglDiIQeqn47WQrlQL4h0PEQB7kOPpm/Jb4ZELFdtzTwoODLtOfDgtQQhvQVx0zzQgKZUxk7OBG5kjGoujtK7qzEcNQR1VmHI38FwHqIOcDa9zf6jAFQeR3uM7+2Vyffx+cbY4VNoKgc06cciZ+GWy3ORBR60WIBmyNnUproMLmY/KUwA+5UsK6uJYqbHFlcwVPEkFwscZnnI3pB75VMDiQUL8PWhOOfU0t62rB2aOzTrxg8fyS65wL8bvNfRGSGVM66C84A/0UwYXgDoQhS7q4kMOvAiuKgnuFubBUkL5fnq6oZ9kzefmFKxnkz8eOniKds3ryvOJQ62B/yGcm5pbZ21z5VHAPiUPp7UNqsUHcuWjuupbgmtZWQxLK6Xgl6Km4kGOU6kfwKeiDYeTx2ZKqJl4rgT3BIfdQpFba2KXihKV2l2SwAAQgjc5a6hREfc8y2WVetO7aiFs9HAJTOVORGzXvPz3uoZhvM5+xryhwp3SyCICpaxx1bBt11bYj9x2W6k4dSnXq7Cskje1V5kaM604FS5i++2PDgnxh6+xh+EYLKd/xvrR1GKdK/5al7DOUKIzDn2KTQglcZDRiqiprOdBBsfkkGNc705ZLoic8a14L/aTilNhI7ZDK7xQUdhOdacprDMzzgGx/osBPRbc6Bo8IT70QXVbinR3fU/f5eAPcsClsl65vCkCCkMpPOf6zkrCuc1XLThSrzKuf90iT6CUbbmV6UqNowfpRqbLbEUJ5EnYWWHuHE9LQ2PE0kkIOX0JusGLkIsQHlKnbRFtaLouUI4/igXQERa0neCKwToO9n2pf27h9i4N6762v0ezO9b+fOp60iJA691xYPMvCLJ1OR7u/2+26/4J2qoYcOM13CTkilhly6eSXCl8XTsupd6ZsRuo8RsazJR1qMvrcYEXaSIuGQl9gNeWInlBT1hv4N6i3GXtijis21wDlPHAS4z6o5sFStmOPiPBzUB8lMUmsEyzFcK5Y5n02lA9C7W75sO6zQ1AGQueUPAjElDKdojcaZf86Qv5fBDgVTvhZ6c2Y2HNkeP7mHph68r4Q64FYPeb2EAp0+ERnP4BXihoUy8hZ6e2LtkaS7T2eiHqvW1RGR9lME5fZB1F91MCpUxHGI1XjkV0+CYF76maDlYi7GYM9i5ZvrQn5Lf0XPODNESS6YVw0dQAAFA6pUdTg2LZupsaAAAASA6UMQAAAJAYKGMAAAAgMVDGAAAAQGLW37UJAADK4W/Z0v+hz0BMEE0NAAAAJAZuagAAACAxUMYAAABAYqCMAQAAgMRAGQMAAACJgTIGAAAAUsIY+z/NdOraSFInRwAAAABJRU5ErkJggg==\"","import React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport { IonSpinner } from '@ionic/react';\nimport TextField from '@material-ui/core/TextField';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport FormControl from '@material-ui/core/FormControl';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport Button from '@material-ui/core/Button';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport './ChangePassword.scss';\nimport { logout } from '../../store';\nimport { AuthResponse } from '../../models/api/AuthResponse';\nimport { IonLabel } from '@ionic/react';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HelpOutlineIcon from '@material-ui/icons/HelpOutline';\nimport SVLS_API from '../../svls-api';\nimport ChangePwdIcon from \"../../assets/images/icons/change-pwd-icon.svg\"\n\ntype ChangePwdProps = {\n logout: Function;\n showTermsCondi?: boolean;\n closeHandler: () => void;\n backHandler: () => void;\n};\n\ntype ChangePasswordRequest = {\n oldPassword: any;\n newPassword: string;\n};\n\nconst ChangePwdForm: React.FC = (props) => {\n const { logout, closeHandler, showTermsCondi } = props;\n const [progress, setProgress] = useState(false);\n const [errorMsg, setErrorMsg] = useState(null);\n const [successMsg, setSuccessMsg] = useState(null);\n\n const formik = useFormik({\n initialValues: {\n oldPwd: '',\n newPwd: '',\n confNewPwd: '',\n acceptTerms: false,\n },\n validationSchema: Yup.object({\n oldPwd: Yup.string().required('Required'),\n newPwd: Yup.string()\n .required('Required')\n .matches(\n /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[\\w~@#$%^&*+=`|{}:;!.?\"()[\\]-]{8,}$/,\n 'Please choose a strong password. For more details hover on help icon(?).'\n ),\n confNewPwd: Yup.string().required('Required'),\n acceptTerms: showTermsCondi\n ? Yup.bool().test(\n 'pointsType',\n 'Please accept terms and conditions',\n () => {\n return formik.values.acceptTerms;\n }\n )\n : Yup.string().optional(),\n }),\n onSubmit: (values) => {\n setErrorMsg(null);\n setSuccessMsg(null);\n const data: ChangePasswordRequest = {\n oldPassword: values.oldPwd.trim(),\n newPassword: values.newPwd.trim(),\n };\n if (values.newPwd === values.confNewPwd) {\n if (values.newPwd === values.oldPwd) {\n setErrorMsg(\n 'New password should not be same as username/old password'\n );\n } else {\n updateNewPassword(data);\n }\n } else {\n setErrorMsg('Passwords mismatch');\n }\n },\n });\n\n const updateNewPassword = async (data: ChangePasswordRequest) => {\n try {\n setProgress(true);\n\n const userName = sessionStorage.getItem('username');\n const response: AuthResponse = await SVLS_API.put(\n `/account/v2/users/${userName}/password:change`,\n data,\n {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n 'Content-Type': 'application/json',\n },\n }\n );\n\n if (response.status === 204) {\n setSuccessMsg('Password changed successfully');\n logout();\n }\n } catch (err) {\n setErrorMsg(err?.response?.data?.message);\n } finally {\n setProgress(false);\n }\n };\n\n return (\n \n
Change Password
\n \n Enter old password\n \n \n\n
\n \n Enter New Password\n \n \n \n \n \n \n {formik.touched.newPwd && formik.errors.newPwd ? (\n \n {formik.errors.newPwd}\n \n ) : null}\n \n
\n\n
\n Confirm New Password\n \n \n {formik.touched.confNewPwd && formik.errors.confNewPwd ? (\n \n {formik.errors.confNewPwd}\n \n ) : null}\n \n
\n\n {showTermsCondi ? (\n
\n {\n formik.handleChange(e);\n }}\n className=\"accept-terms-checkbox\"\n name=\"acceptTerms\"\n color=\"default\"\n />\n }\n label=\"I understand & accept the terms and conditions\"\n labelPlacement=\"end\"\n />\n {formik.touched.acceptTerms && formik.errors.acceptTerms ? (\n \n {formik.errors.acceptTerms}\n \n ) : null}\n
\n ) : null}\n\n {errorMsg !== '' ? {errorMsg} : null}\n {successMsg !== '' ? (\n {successMsg}\n ) : null}\n\n : ''}\n type=\"submit\"\n variant=\"contained\"\n >\n Change\n \n \n );\n};\n\nconst mapDispatchToProps = (dispatch: Function) => {\n return {\n logout: () => dispatch(logout()),\n };\n};\n\nexport default connect(null, mapDispatchToProps)(ChangePwdForm);\n","export const TOSS_ODD_VALUE = 100;\nexport const EXCH_COMPETITIONS_MENU = 'ExchCompetitionsMenu';\nexport const WL_PREFIX_LIST = ['wl1', 'wl2', 'casino', 'pay', 'krishna'];\nexport const SUBDOMAIN_LIST = ['dev', 'stage', 'v2'];\nexport const EXCEPTION_SUBDOMAIN_LIST = ['wl1', 'wl2'];\nexport const BET_TIMEOUT = 20000;\n","module.exports = __webpack_public_path__ + \"static/media/Tennis.92093d0e.svg\";","module.exports = __webpack_public_path__ + \"static/media/horseracing-icon.1944beda.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/googlepay.37fe4f0c.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Phonepe.1620d423.png\";","module.exports = __webpack_public_path__ + \"static/media/UPI.c7ceddd7.png\";","module.exports = __webpack_public_path__ + \"static/media/badminton.6c533144.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAD+vg1LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIOSURBVHgB7VXPaxNBFH6zyRoRhJ2CP6CX8S/Q/gHiRhDMSW9tD9LtwYOCuLeKl2zxJAixCh5ESDwI3tRTELGJN09NPUlPjaIijdtJKUXIZvf5ZnajtmXbbsmhh36wM+978/bbN29mZwBSgMue1V+aqfZarrN17LKLduPjmitXZUuuyHPUN7ynvx3yi0GMAemwGDCHIpz/nc49LOdy0Hgxf3yKj/AxfpIvAoPpr50jyt+6cb9/dTfhbfB/+bVrlzYEYzD77K4xNvBzztur60YRI3g+M7nu+h3fTRWhUohw6Q72PrnNgU9NG/YAKaXIQwaoaeOX2TJE+IGd8Zrq4+RW2XnEu7hcJpt1Gee1TKXQwGiaWjthNhXzNvWWZoxdIX5BmZky1iiMUmPGtnmCFI6RT8T8KPVGAfYnfPp6YlDiozc3j52aSozJHYSt8zb8fAt9zJ+t1+uiVCq1tf/HY4AojGO+P6HpBwC9bsy/PSBupGeMiGr1q4Z1ET4vLFD9VqrEi3ow8CmAxYFBZ/OGDTdIODbTFs8aGKap6ykgI7LvikPhQ+EDLCxeeRYMEcZEvSLG5+fkSCEvx98/qsCQYISm8ZB+cEsfKwzciXcVG4aA7TXO7+UkxeQ4g3bSx5zBGkT0KOFcLlJXSztECkace1m81fwbSAiCgC4G1v2nyWqk8Dphi/S8UdeSZhGqd/XYHxh5r7uFtQ4bAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOYSURBVHgBrVVLTBRJGP6rqgdm3Mza4wEX2GjjoK5hyO5mwZCNumw265LNrnBiYQ8yGA8aD3r05sxFbz4OajBRMF6M8TDGi/hIBvXgYxJMHKIxAgOIJDLQrehM9/R0tVXFG7vbg37JZLoe//f9j6q/EHigJarKkXDJwX0HSCMCpNgAytySBmA/OXbUuDaVpYnLPaGMGwdymmyLqgoC0s0WG1vbJKjbShyNb/YW4XavxT97KFhxJyG8cqI9qh7CgPs5eSiEYEM1Bjds30HAHxA+RjGQ/v+YrafA/9G3R5jnJ1hgMh9vqEawZg1yFQgw8m07FihkwmzbGIejQLtQR7H5sd+PoL6ewOcQiWCxd5EQxZZGIlYmJvKKVYr7uRfzC9PTNlxPFKFjj89T4GK3Cf82Sysj1UyD/lxVHsiICCwfji0l5+AG5ZUI7t+1XMlTjy2oKMdOaZR9paRbRMS9Z3F1OBHs/EuC9FMKKotmJfhc6hGFP5vc0mg3Dqu2LFkldgt4YFeLJNJQUbncy9fjNuzu9E6fRPVDEiDc7LUpEJgl47+VQOANhMhveHoK/eS1KZ2mrmupxxS8kMtRBXedLcj5vO1B4l7koZfuArxGp46bCs5mP0DXaROcRPimiXF38cFB6minszlet+zkeyCba/Z25nNB+cVzCusVDJNvbGE4wFKTSlEx9sLYqC0cUVUbdB1EYc6fM0XN8saYRpRNu5oDpd8rMzMAoxkKEjsYAXYzw9Vk7payVAw6i/AL9vsfC/0IRkdsuNdHxT+HUXj9UMobI32hYEMjn2ht931yHHc2SRCpJXDxgim85OBNsLVdYk7MdprQ3EWL1LL+FabQdWa2NuNqIkGggjyRSzYd/q5sLfz9j+ToafBbBDW1WKQiGESw74APytY6d1l+q+/dpTD9bgBGJq/sx5lkQns1dTXJO6cXuCEXqduKRRf1Ql09hldvLvVkHtyY7UX5DwOdysa0Bl8JleuGNE0fivNvIfCcKW3euCVuGBZ8KQyjCOHwujj3fkGAI1K1+qSum18kwsl1vRjnXPNzy6paU7U6lh5+q5mmdWTVKp+M8WKu+Y2+1bsoXrfkMSpaFApGUSuYdBk5h2O1ng2rigU45vORjgcPn0Hyjh+M3Pple74JZqFh+xhs+/UXME3aR8CKbqn69NH3PA4/NDQpRdtuQYi1dBv9WFpSJh4li+ZGitZMBgFOFvz6yUwy6XpAPgKfwn6dIjI4PQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANxSURBVHgBlVVLTBNBGP5nd3kVKmsCkUcMkKAJJgYwEPBgUm5iYkKiMQZE4eRJpQfjse3BGC+UkxcO4AFOGvECeBGIGiBiIBofCEg1gCAUltL3Y8f5C112220pX7LZeX7fzD/f/EMgBV7NmsTsPP8DVjRdKh4rZ3/8YMUzKC27euco0NckTIaaq6YcyTiIXuPI98ZyEKAPiWNtTEDpX/eOwsLu08MJFPohAjY9IS6+YXihoYsIdFZNjghE1pVyjlAEccvsoGzO8I+GrpQCIwuNFgLEToGI8QOlwJxSzs+sAYHkxWkQkfDEPvD1nEVXAFfOflZIgt3gnKZeknstYYwz4IJNn8tq/1japRHAmLOCBVLAGfgAYepW6qW51zW7QPItv2t/N4RY7JNF5YoA5cCqFxY1wrIbVt0vlLrA5cFZ8VEC+QFEkiH0RcUOHLMMaQBJLxT0QhZ/eMhfNp/BtNOuO57y7pMcO/0WSBO4i3np0J5ebxBK+dvQmN8NBq5EZ0JeF3/r/ukncHCB0gHaNUI9kBWpAb8/GG0zChVQnNUEIboHIbYI/CMIu2XE7fbusJ/oDi2Ch30Sc8s/35uUIhjzQr4VqnLv6vZvBmdgNzyPQg4m4KPxA/xslRvstq55XmqcEyOPHWhBRh3UnbCBgS9JuhhdAbXQTxbz2B3QcQtkECNUGtqgLPuqrhDfdq+00xNeEikEIZvXpgB0zSnD5Wj51967BHKEzOZthWZg0TcI3sjfaPwxwWVzBdgtEZYeMIuZsIYCmAbKjHc0VkS3TG8+hiVGchxQChOcLMMEqEKy4RuFz04zC8d7hRzdUm18GI358UCHyNiySfSH/Tt63aJwg/m8Xal7ImvwdvumYsMj6UNCBddUMS6x8nh8Jx7otLMb1gKH70AuO8RKQyukB9Jvvuhw7GdTAToJoZKaPHagn1wWzYorc9qizjmCXKIh3oalqEBzxZRDppwtnhyB5IveAaWewRmhJMuUkp5S2YarVwQQV85M9jBim54VF71a9xRk1qUgB5u5frUnVte8aO3nv1kp5cy4RXU77gKvfwyFum5iYaHUbK5fsapbE95kc/2fHsrztex9eK5u98prSjn+xqLfWcxr1SuPQQAdmGuj8euwz5ZbWY5m6VxuCcjb1axNPCD8zT4cMw6C0MPGS5AE/wGlQ54Em5QUyAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALnSURBVHgBlVRNaBNREJ6ZTWl+qs02tifRVkG8iLYHD4qSu1LzgwcPxeJNLI0HL4LQ6qkUqtWLeKpUEUTbLAUPxYPVg4iIFC8ePJiiokibXZo0m6TZN86mpiQhqfGDZff9zPe+b+bNArSIiMnBZvMR0+6tjD3wD5xl9nt+5XsICvckcBTAawHnLhBpR1ixB8EuKMCpyn5sRBLL8V7O568gcB8jZlCpH4rYANAsVHyVCeXbu2zoaEVMM0iq/cZ8yH+toaK4mU/ETftmNMM9tdbMYNS0HzWKiaZzExF7yzbVKDMLY4qVb073jSV34e/qNUPXLXl9iZiZcJlkNRer5JWxMKEVcbSGMGZungYoYbLLP1F7SH6w8t0Z9E4ia5fLuSKMExVmY6Y95h7GJSfrFgcjZvYYgZZg4I2k7h+ptyMBjwFUUTmwYOwJGBIUJqVOCeVLydu7mLUxIBKHXG0KnNcNi7Kdt9XsMGmabIQlAo4ohZ1A3rtS8Zl53RvdzuF6/hAqp2M+GPjYnMwtQjr3tHru3FruRDRt36++d/UgaApvEJk/V8/IuIfRe13KkJBUzMRW7eH6qKaWz6dz+xzmS4phWQiCpHmOyvRBBsdkh1+VgxHDhJ7bc13tn5oqjJu5hPsuYVsfELFLBpqWAtuelrwNykVfAA0tl0zUpBwsdjW1HPlp90obnXFzxFBaAakCIfYS0UXl82JsbWMcGUcMPWC4ZNAAHvcaSGsNI9GmyPnGyA80xnGp7H4Zr4gxC0olNEKBlOx9qErZqUGz2I/oHGek9x6kYo1CQ/ctMfG0ctSLpO67RQ6HFGh3iPlDMhSQg+Sq/IXsTS10d2dIbQ4ox3kmDuD57ra3NQq3fGuTSnOeuJVzx6xKlkI4DE1AgIuItOhY+ZP1a1i2zDwuSf5aNe/IM4uA/WI7zKyy0pJD0AJ27BT58yQVqDfSelZS75iBFkA7LYqy7wR0oFUyFzv+sRXilJ0trMN/4A8ZUWDpb0K7MQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAATCAYAAACdkl3yAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGpSURBVHgBnVTdUcJAEN7NOM7gi/ENeDF2QAlJB3RgqECpgFABUAFSAXSQUIHpwLw4MOOD+CQyyvrtJRh+lAR3Jrm9vex33357OaaSJtN6h0Tu4dpZaIJ5m715ohMuBRJWXWIOSWiAWYw0G5l3WHIw9mn93rXoFDunHtFyArAJu7MbALfxNIkr49OAVp9XxBc9sBubcrxZH+V14bpnJSEc8+azEGzsLHnHSgKxCrxAGS0ALSBwJNNaj0Tj0sBaUk7sqDZWJuzOPTMPqxCZn+DGCqLdK2QkoYNdP1wj7MGiaX+kbrHY1krbrKVFRz+jo2xQgkig4m4O3slAmQ7oEoT05gEV2N+M2OqkiOJRCTNim64I9vdmzZSNEdgHSGu7JInqQ5L1SFkeMDI/I04m3CAPLxvp+BXvfi5u+u1vjER88+94z9tJjr7Ye4lThrZNBWaZJKHpXtwhPckb48ojnlcTZ+s6j/Mwq8hoFCFwi/Ehh+dLgOdA0CrzfFwbPsZR2gSGphJIWHvjn7tGj7vIILtrdJckne8Zc8ew3awxm3uJUw0UTJPZpf9Z8g2RsKnglmwYaAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAARgSURBVHgBfVU/b2NFEJ/Z957vjiDyUgES4nyfILlPcDESdUJHARenBl0SJCQ629dddTaioOKSo6MJlFSxS5qL+QSxaUBCIs+AhGJ7d/jN7NoJYO4pm523b2d+M7/5Y6aXPNIuS8ryA3I8ppq7JMmOiaUk5yqcDXHjOyrCKX/88/j/bPBKw5+VdSroK8qyBmWOKMdy1KUa9yjwGQDuRk1m20WOKQ/tVUDuP8Y/fQ0eyzmUt1WfMhIYwXKH5N0phWwf8jga5+gj8x6F/Fx6bx28FEA+eaUFCrrQKE3ZcfKSF5FuUS7PQNV7OB/dIEK/b2DvAqS1kiL56NYh1fKn4BqUZJEW3ZWiTMGMJgGo0jIkKfbJ+TPI6ykM/IlQoAmFP+7xUVUtI5BDKiE2IQ6w+nCoWuFClNko2ST2exDadr68Z+B9ojvb8sWbd/Ukt4+z2+vgvUsCvGDGOvBmRC7bhlITeg8sDwIDIgmEDimEBuU8wJdtwzEHpI/ieIRi0LcGy/tUp7Xsgm4BqwZKatgLl6hxfSoYpZkNYEirp25JX1YP8qD5yPyLiAp0lndg/BnkOoU/NxwUdg1dUqgCYSETPCMHADqjuTRgpIMIecGYGXHzXQgndiBLQuuxhF49cMjCjhkM+BzMuJFhMi2A1RC9IJlf4L1DNzzA84i8nCxSQXP7XxlfQSbOSk/vS9CD60US+bZlSCVCPwbvfZqH5xZpfMqYZHCvR47XrYQD7VPwvzm7oInV0IOwGY8REXm8+AS4pJHRbA4FwZN4Zsb3yFsFWrR88NN9OLKJJJ6wPGQNu241X1suoQLFn7HgnK0PbFykXlDOMzeCSy2rLJaKuIYcTXegDLqmm7j1rTrm+LncgwLCCSN4HL31gU3WfIQg8cxolBRNk6bhBF5XxrenHh+NhjQDkJ9eQHeC+5fQrTL5UJHodSh14HUPCr9YRWduHZV3B3OHl80UR4JS8wPEIcCewND3AN5qv7t2G31zCKfeiL3E32DfYPkAYTK3zKg2V5ENMS4GaJYh2lDfS1orKpoWpVFWTLU/G7hdgsoKYE/TmDiC/ADCbipjTGJfsTRx0dNl8lBghMG3QDnuhc0lXs4jbUCNw2kO+Ag5OY1dTo+xo7loz0x5GXLr1/sOhac89hccGPce3M+xx5Vkyw12v9jr2CvsQrN0Z5bueJyFMLyeRRmS7Pncal0QhRqlVIKx6RCNlqtNVrExzihTFxZ5iWf6WIMi2TlySmmaIoqRDTiliFMnq6czXQCbwdDULxZHj9HVU1/eiPIS9982eRY63K5GSwAD+Ro/icyPUyo48QgAcDOdq2ExQN2vcHYVfgRtWwZqIH4MeQOrw09+7y3t0r8eeUgHoKltHa7jII5mjgnmuPQsx5CkDPdk037xcvRT4B3+/K/eTXurf/SbqAZv5du8nmuc5r3xPUbtN6goLmIO3YC/vNpeZWslwD+Agk5b1DaDDsEgY5nYINMnd1vIajdV4srnbwNPOEs6ww9/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI5SURBVHgBfVRRbtpAFJy3NqSf9ASFExRuwBESqS2oP8BflUJLT5D4BIBCq/6F/FSkUhV6AtwT1D1B3BOUfhawt7NrIBibWLLkXe/Ozsybt4Ijj+6flrB26hBVSibiBdzIl+FskbdesgDNMiJ9zc8635BvGRo+/5QgUuV4gpV48nka7u9TKZB3jfcE+cmNv+D8e8pzPE4vIPGNjL/W4EgFWgsK+l73Gv1cRhZE4xJazmQ89R/kFftwl8N9SbrbpGR9x09Prm6HO6CNnHtETk0+fQlSLM9fVuGoAZmMyGqWAVtJzchMpEX6wmg/BEnECz3SvxHrMCXFsNa4ocxrO7b0o5M/RK4cGphi1mskG65uO7u57V766dKDOi0PULBVmuAoEv7SiGf6DW1QUQnFVWh84wGhwRDda7a5asClAfn5WOvvUHFZxt9muXjdxpCALeMNnlhb5ohiz92cFthSOxLCje+g3ZCzs3xqMmM4fbjSJkgLJmfWo+6rUwZtQO2VxAsydBjAiCxj/JCPSXlz2b1llsSCeYoZ8Q2qNc6aOZ3IkKYrVknhOR57CmRn0k4MtQkaS3lykVaw9JirkamWzVLes40NMZIcOdKhjLYN2RbHHFBko4quQjmljKzz1wa8bfrOjFWyiVJieCapaTAjUZ0BcT0F0n1RhxPNuefDNnuSMU/BRGHX4Zv2mXNuxOBNrAVkbw7eL0T+NbKOL2liiwwDNrGRVcb+lbKWzmEXZIAeAG3nH1xsy6MX239tLSB86J9MxwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Cricket-2.d6da1c00.svg\";","module.exports = __webpack_public_path__ + \"static/media/BasketBall.a1d98f36.svg\";","module.exports = __webpack_public_path__ + \"static/media/BaseBall.8f8568cd.svg\";","module.exports = __webpack_public_path__ + \"static/media/GreyHound.4fb6dd8d.svg\";","module.exports = __webpack_public_path__ + \"static/media/cricket.b9e94792.svg\";","module.exports = __webpack_public_path__ + \"static/media/football.72b7d44d.svg\";","module.exports = __webpack_public_path__ + \"static/media/tennis.a2767af2.svg\";","module.exports = __webpack_public_path__ + \"static/media/horse.c6808d3d.svg\";","module.exports = __webpack_public_path__ + \"static/media/greyhound.48e2eeff.svg\";","module.exports = __webpack_public_path__ + \"static/media/baseketball.4661cee5.svg\";","module.exports = __webpack_public_path__ + \"static/media/baseball.cd45f241.svg\";","module.exports = __webpack_public_path__ + \"static/media/change-pwd-icon.25007899.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgBpVXBVRsxEJ11ck9SQcQxJ9sVsK4gUEF2KyBUYHzKMVBBzC03lgowFWAqQK6AdQXw/+5f0BPScmDe+0+7o5mv0WhGKmxESgiGI+An8FWgbIXLDSTnX4yQ/gVmIjkFPNBqAQcsNU/dCmusY55JgpikJ8ACOADuReRA0AbEHpjLrpRfPnIY3GC4BclZpCchdVNgD1Sw8ZFNNw/9saUiBhobEcxv3plvwh1MpKysP7ipfUy+k0dn9pJz5nBl/eF8VHj4/zryYRWd9r3y+0ag/41hinGZmWfl7MDT6L9k5BVwKRuWXRk5OR00q+UbxoL/iSCc/E18RzS8s9c6vrK+gqhbyYEHdBo2i3a7FIlXgIz8i/Wl2flNpDQRsxlmciIpc7eIu1D/tfX9cAas5VeLp9sJI3/S6scw2AbRsROvoFtYRrTrhZpr0M20gGPkbUys6FoZuwwx9buQWH7kYSN5ku9j4kCYniozx75INp34WpI3QzkmhM6HmblfliEX3/azDBjFJhFBy9yrFFMR5pquAtaFVuLB1HF61DCs7fMEAZvKw+c88ukOFPqDItgGo9sBj9ZXD78PYTS3jGhHtGVlDSXtFOh6ou1tMFwADyJjAw2vzZgwAN73bDLe/UzTxfBwvDwWUHCbe6WolYF7pxSd0tIOuxBPJ59CB+/9f+fcD3z+wchH4Ro4gf46Jsc8SRuMXIRNw0emDm1yb2hl/d1BYT7n4cujqB+UBqJOPdRJ8oCktNdL6SmYYgWxhJux1/8ZfbkS1bYbx7UAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMeSURBVHgBhZW7ThtREIZ319wbNk8Qp0RCxC5TYZepsi5A3CSvu3SYJ8A8QUiXDtOAJZBYnsCbJ8gi6ON06WIKLuKa77fOWW02NhxpOMPZmX/+MzNn7DojVhAE/szMTIC6iJRc1+0/PT29YX9m9ZDTTqfTHuXvDTtcWVnZBvQHahGwnYODg/Lj42MDsEA64DuFQsFfXV3tytb6ra2tbS8tLZWkuznAIk57yHcA2+xi/AkR0/7AwXV9vv0hyL4YA9YyNgkSEniAOZYF9TzvBLWBo2/00+vr61oURf08Ab5XxFg3Qo8IVCFoYm1SYA4HoDLAsI5DDUa9IZlyzHl7Y2NDuT65urp6R/Bd2NdTPJsbgKTHgH6BZTXPMr/wKQnUsDxDfP4vHR4eVlLGYgmLqrla7TVQuyhgw+r4FcGJSFPl9vY2cVFCFYTDPmwdkt/OOqvttGeDKcej0mSK2QPLCx4eHmKiK69x1mh5eTmg7boS20Yigs9PgQ8DVjexLaqP3x4dHSUw9vMsCBZguIX6dXx8XK2nIteR2BmxDEbJs1cD+DJvdHNz01S+VAPdhho00dXjv5wXlrA8/VEUW83sUl5JwyZqH5uYfVN1gPF7pGnzb9f6+nrXPLJZT39GRYahrq8Wapo07LD19AoJ0BvCNE1nYX5+/gOSXFxc/NdiCwsLnzEuslfm5uZcnDrn5+cJ9lXS8e34+Pi3tTXF/IhtwrfymAqBc8hhKw/MQ2lNTU2pFZ27u7s0MD673KKXM9eTbpuXG7lhGPq026CV1ORI6sBE66tjnFeWHV4EGzwy7el0U+IBPTNT7D2iYDUezIvAKuD09HSX1tzCf1GjgYy10nmsxKtIExMTu7oWBo3XQMVUoKj72ItQIFB9G8saqk+ZVPHk5GSNQNumIHH+4YgluVfrBciWAd3TnLE2WWBd/YwXVifnkYYS7z7kTMN8VrNERporbJfsETWoAVYHvJofs4NUaARqYJMK/QKUMXRVBKXn/v6+qTN0zWqlp4xtCOgsdl3ZclbJ3+qfn6b8MowD2OnJP9sfVM4StSntGI0asX8BH2UJJD3Tdm0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAXCAYAAAARIY8tAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAM8SURBVHgBlZXbVSJBEIZnEK8vYgSwEYgRMJ7j7fjCEIEYwboRiBEsRsAYAfDm5YEhAjECZiMAX7xf9vvHbrdFULbOaXu6rK6q/6+qxvf+U7a2tkK2Pd/3f7Cvsq5Yg5eXl5OZmZn49PQ0ce0zU/r1dnd3i9vb251MJlNk/To7OyuijgkU3t/fV3Duvb6+NrA5cO9lp3X+9PTUwHFlNENJHMdDtmhnZycmyCUol8/Pz4+mQsClwvPzc5PP9jjnVoIgyOG8CaI11opF4nvfB6jCrzIU931ltrm5WQXNHucV1oDVYxVwrCSiMAxzNzc3nYeHh3X/q4xmZ2cLZJXj4vDi4qJHsBrnEv++gveaoSZNAv0hujWrm4hgY2MjoGCHXND/EpynDll5Zcq5qyxH75nuKoKwprNQ3N7eNjNuxkRt4DztCgwDaFDGf+iYkCVuT5TpaKdIsG+xle251WoNhf69i+bm5jo4OB6XnRX+F5Npl889t1McuUKvQg/NOZcx8A5Rpny71rRmgW1Z6KwdqBIcC00A94Frjy6vGWE/goljqbJqQ7okXFxc/AFnDWWWzWbbtKbqcK2sQNeClj7nIijWjLN97v3mM9bZ+PGhMvH+1WWQ5ZL4PBJn7BUc1e1QucaG96JDV4LONygSMwOx4zxE1xVFJVMgK6vjJpZgdba2ZsDqcBAJlZKEkn0CXKsGopTvn+jqKnJOrWlgq/IfYLpC4AgaFCgy5x72Zez3jUlPSOfn5/umYZKscRyyFFXF7HsTxNBSYmlyBziXOnFt0GmyE4LWdFYNNKUHDneXkwJAj2rQshmbc1XfooXM1Y0rd3d36++oRYttQyNtM5WfBNsDDZuj0tMtVB11mnmLqva5SBHIIZGr7OLWW1paqtOul2SXA1nkZgdataKejjjNjgdP7UrGkev0Q1LuyycjdQnVD0Sd9/aLpWf4WgXWlJsHL0+gLrqSU+Cxkj52psfzqjwXmzaYGZ5I75J7CQpr2Cr79a9+I1KU+qMeVw/r10gzMAmuREGxLYOy8p3zdwRWDJKyfsAfHx9bCwsLOYsAKVBIZR2I92mcfwpgM2QLcFzF0bL39jz0zLtUH5n6b+UvZtv+vqbCa5wAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAZCAYAAAA14t7uAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALUSURBVHgBpVZ9ThpREJ+Zt1VMmpQbuD2B3sDlBK5g+LAm6gmUE4AnkBuIifK1BbcncDlB6Q3wBv7R2iLuTN8zYmQ/gKa/BFjmvZk385vfzi5CAvKlygUA5UDkAZYAUYT4uep53ui93YpudPcPHQDODro327ACyuWyPUVLJwJ7CwOTxTYKbBdKlTtYAVMBEEQ7areSNksoV2yJDyuCGJorBdbEPQDDNglmYQl4+ujD2kb8sDQHhXQKylykf5Bg18pkEnsRy3gNOPijnZSoIxXCiEluheV84HWa0b354oGNqLND8FMDm+5OQjzTzdhChh+mFs9rjQrFwypPfwaQAhF09c9WvnSwpZX3rd9r+3NUhCFlCcQOJ7/3br322cze7137Gql61jr2+912DhCGLODM7G+BTXZAtJkWxFSUL5braQfoZtuCEMz+Wq7rZmktc6o7YevFe9ct277fGUf9pox1RDzS+xtJh+u1HSUy0pRcMvI5WZmP29roDLqtEyEJ6AM5iRkh7OivgNY3jpOWRRhf+GUeou4Vfe1cB4YRV5eqGAN9uRN1Mre5CNyLyFCLYDdl/WVWIGFNlDTotYxzEqoZnrVjTJeKwqy2Nwa9Vp2NYqLFKHaVEj9fLh+LrsrvdMY4WyyUvtwRP1UZPtTDKZ+pdXXZ797kYAG0jutEHIioWjj5tafWN76HKDkT+E0VJmsm62Ihzykw/FIm486yNba3wDOuX+ZEAs+LMOi1HRSsGTXMbHOzwmQNZvAg38M/oFCszGUbC2yyXsPQZ4iPwUUIWR548lh9b4sNoScgh0LNm5IrWAIEGT0DjImwOfB9Z2HgV49Nfuahu192YEmm5lZGhZ+ia4mB9WBxtNA/w38g+dHEeHXrtZrvbUb8wGTz02NsVuSLlSAag+IGGgPJVtSuQhoRUSyAmXpaTTEqEBJQKB00QLSWcfl7hZEnWXDitVpz7xV/AffYRWvkzrEVAAAAAElFTkSuQmCC\"","var map = {\n\t\"./ion-action-sheet-ios.entry.js\": [\n\t\t345,\n\t\t44\n\t],\n\t\"./ion-action-sheet-md.entry.js\": [\n\t\t346,\n\t\t45\n\t],\n\t\"./ion-alert-ios.entry.js\": [\n\t\t347,\n\t\t28\n\t],\n\t\"./ion-alert-md.entry.js\": [\n\t\t348,\n\t\t29\n\t],\n\t\"./ion-app_8-ios.entry.js\": [\n\t\t349,\n\t\t17\n\t],\n\t\"./ion-app_8-md.entry.js\": [\n\t\t350,\n\t\t18\n\t],\n\t\"./ion-avatar_3-ios.entry.js\": [\n\t\t351,\n\t\t46\n\t],\n\t\"./ion-avatar_3-md.entry.js\": [\n\t\t352,\n\t\t47\n\t],\n\t\"./ion-back-button-ios.entry.js\": [\n\t\t353,\n\t\t48\n\t],\n\t\"./ion-back-button-md.entry.js\": [\n\t\t354,\n\t\t49\n\t],\n\t\"./ion-backdrop-ios.entry.js\": [\n\t\t355,\n\t\t87\n\t],\n\t\"./ion-backdrop-md.entry.js\": [\n\t\t356,\n\t\t88\n\t],\n\t\"./ion-button_2-ios.entry.js\": [\n\t\t357,\n\t\t50\n\t],\n\t\"./ion-button_2-md.entry.js\": [\n\t\t358,\n\t\t51\n\t],\n\t\"./ion-card_5-ios.entry.js\": [\n\t\t359,\n\t\t52\n\t],\n\t\"./ion-card_5-md.entry.js\": [\n\t\t360,\n\t\t53\n\t],\n\t\"./ion-checkbox-ios.entry.js\": [\n\t\t361,\n\t\t54\n\t],\n\t\"./ion-checkbox-md.entry.js\": [\n\t\t362,\n\t\t55\n\t],\n\t\"./ion-chip-ios.entry.js\": [\n\t\t363,\n\t\t56\n\t],\n\t\"./ion-chip-md.entry.js\": [\n\t\t364,\n\t\t57\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t365,\n\t\t89\n\t],\n\t\"./ion-datetime_3-ios.entry.js\": [\n\t\t366,\n\t\t24\n\t],\n\t\"./ion-datetime_3-md.entry.js\": [\n\t\t367,\n\t\t25\n\t],\n\t\"./ion-fab_3-ios.entry.js\": [\n\t\t368,\n\t\t58\n\t],\n\t\"./ion-fab_3-md.entry.js\": [\n\t\t369,\n\t\t59\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t370,\n\t\t90\n\t],\n\t\"./ion-infinite-scroll_2-ios.entry.js\": [\n\t\t371,\n\t\t42\n\t],\n\t\"./ion-infinite-scroll_2-md.entry.js\": [\n\t\t372,\n\t\t43\n\t],\n\t\"./ion-input-ios.entry.js\": [\n\t\t373,\n\t\t60\n\t],\n\t\"./ion-input-md.entry.js\": [\n\t\t374,\n\t\t61\n\t],\n\t\"./ion-item-option_3-ios.entry.js\": [\n\t\t375,\n\t\t62\n\t],\n\t\"./ion-item-option_3-md.entry.js\": [\n\t\t376,\n\t\t63\n\t],\n\t\"./ion-item_8-ios.entry.js\": [\n\t\t377,\n\t\t64\n\t],\n\t\"./ion-item_8-md.entry.js\": [\n\t\t378,\n\t\t65\n\t],\n\t\"./ion-loading-ios.entry.js\": [\n\t\t379,\n\t\t30\n\t],\n\t\"./ion-loading-md.entry.js\": [\n\t\t380,\n\t\t31\n\t],\n\t\"./ion-menu_3-ios.entry.js\": [\n\t\t381,\n\t\t66\n\t],\n\t\"./ion-menu_3-md.entry.js\": [\n\t\t382,\n\t\t67\n\t],\n\t\"./ion-modal-ios.entry.js\": [\n\t\t383,\n\t\t19\n\t],\n\t\"./ion-modal-md.entry.js\": [\n\t\t384,\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t385,\n\t\t23\n\t],\n\t\"./ion-popover-ios.entry.js\": [\n\t\t386,\n\t\t21\n\t],\n\t\"./ion-popover-md.entry.js\": [\n\t\t387,\n\t\t22\n\t],\n\t\"./ion-progress-bar-ios.entry.js\": [\n\t\t388,\n\t\t68\n\t],\n\t\"./ion-progress-bar-md.entry.js\": [\n\t\t389,\n\t\t69\n\t],\n\t\"./ion-radio_2-ios.entry.js\": [\n\t\t390,\n\t\t70\n\t],\n\t\"./ion-radio_2-md.entry.js\": [\n\t\t391,\n\t\t71\n\t],\n\t\"./ion-range-ios.entry.js\": [\n\t\t392,\n\t\t72\n\t],\n\t\"./ion-range-md.entry.js\": [\n\t\t393,\n\t\t73\n\t],\n\t\"./ion-refresher_2-ios.entry.js\": [\n\t\t394,\n\t\t32\n\t],\n\t\"./ion-refresher_2-md.entry.js\": [\n\t\t395,\n\t\t33\n\t],\n\t\"./ion-reorder_2-ios.entry.js\": [\n\t\t396,\n\t\t40\n\t],\n\t\"./ion-reorder_2-md.entry.js\": [\n\t\t397,\n\t\t41\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t398,\n\t\t91\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t399,\n\t\t74\n\t],\n\t\"./ion-searchbar-ios.entry.js\": [\n\t\t400,\n\t\t75\n\t],\n\t\"./ion-searchbar-md.entry.js\": [\n\t\t401,\n\t\t76\n\t],\n\t\"./ion-segment_2-ios.entry.js\": [\n\t\t402,\n\t\t77\n\t],\n\t\"./ion-segment_2-md.entry.js\": [\n\t\t403,\n\t\t78\n\t],\n\t\"./ion-select_3-ios.entry.js\": [\n\t\t404,\n\t\t79\n\t],\n\t\"./ion-select_3-md.entry.js\": [\n\t\t405,\n\t\t80\n\t],\n\t\"./ion-slide_2-ios.entry.js\": [\n\t\t406,\n\t\t92\n\t],\n\t\"./ion-slide_2-md.entry.js\": [\n\t\t407,\n\t\t93\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t408,\n\t\t36\n\t],\n\t\"./ion-split-pane-ios.entry.js\": [\n\t\t409,\n\t\t94\n\t],\n\t\"./ion-split-pane-md.entry.js\": [\n\t\t410,\n\t\t95\n\t],\n\t\"./ion-tab-bar_2-ios.entry.js\": [\n\t\t411,\n\t\t81\n\t],\n\t\"./ion-tab-bar_2-md.entry.js\": [\n\t\t412,\n\t\t82\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t413,\n\t\t39\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t414,\n\t\t83\n\t],\n\t\"./ion-textarea-ios.entry.js\": [\n\t\t415,\n\t\t84\n\t],\n\t\"./ion-textarea-md.entry.js\": [\n\t\t416,\n\t\t85\n\t],\n\t\"./ion-toast-ios.entry.js\": [\n\t\t417,\n\t\t34\n\t],\n\t\"./ion-toast-md.entry.js\": [\n\t\t418,\n\t\t35\n\t],\n\t\"./ion-toggle-ios.entry.js\": [\n\t\t419,\n\t\t26\n\t],\n\t\"./ion-toggle-md.entry.js\": [\n\t\t420,\n\t\t27\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t421,\n\t\t96\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 295;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ion-icon.entry.js\": [\n\t\t425,\n\t\t102\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 297;\nmodule.exports = webpackAsyncContext;","import React, { useState } from 'react';\nimport moment, { Moment } from 'moment';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\n\nimport { IonSpinner, IonLabel } from '@ionic/react';\nimport TextField from '@material-ui/core/TextField';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Button from '@material-ui/core/Button';\nimport MomentUtils from '@date-io/moment';\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from '@material-ui/pickers';\nimport FormHelperText from '@material-ui/core/FormHelperText';\n\nimport API from '../../api/index';\nimport { AuthResponse } from '../../models/api/AuthResponse';\nimport './AcceptTermsModal.scss';\n\ntype AcceptTermsProps = {\n closeHandler: () => void;\n successHandler: () => void;\n};\n\ntype UserPersonalDetails = {\n firstName: string;\n lastName: string;\n dob: Moment;\n};\n\nconst AcceptTermsModal: React.FC = (props) => {\n const { successHandler } = props;\n const [errorMsg, setErrorMsg] = useState('');\n const [progress, setProgress] = useState(false);\n const [dob, setDOB] = useState(moment().subtract(18, 'years'));\n const formik = useFormik({\n initialValues: {\n firstName: '',\n lastName: '',\n dob: moment().subtract(18, 'years'),\n acceptTerms: false,\n },\n validationSchema: Yup.object({\n lastName: Yup.string().required('Required'),\n acceptTerms: Yup.bool().test(\n 'pointsType',\n 'Please accept terms and conditions',\n () => {\n return formik.values.acceptTerms;\n }\n ),\n }),\n onSubmit: (values) => {\n let data: UserPersonalDetails = {\n firstName: values.firstName,\n lastName: values.lastName,\n dob: values.dob,\n };\n setUserDetailsRequest(data);\n },\n });\n\n const setUserDetailsRequest = async (data) => {\n setProgress(true);\n try {\n const response: AuthResponse = await API.put('/user/dob', data, {\n headers: {\n Authorization: sessionStorage.getItem('jwt_token'),\n 'Content-Type': 'application/json',\n },\n });\n if (response.status === 200) {\n setProgress(false);\n successHandler();\n }\n } catch (err) {\n if (err.response && err.response.data) {\n setErrorMsg(err.response.data.error);\n }\n }\n };\n\n return (\n <>\n \n
\n First Name\n \n
\n\n
\n Last Name\n \n
\n\n
\n Date of Birth\n \n {\n formik.values.dob = e;\n setDOB(e);\n }}\n maxDate={moment().subtract(18, 'years')}\n InputProps={{\n disableUnderline: true,\n }}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n }}\n />\n \n
\n \n
\n {\n formik.handleChange(e);\n }}\n className=\"accept-terms-checkbox\"\n name=\"acceptTerms\"\n color=\"default\"\n />\n }\n label=\"I understand & accept the terms and conditions\"\n labelPlacement=\"end\"\n />\n {formik.touched.acceptTerms && formik.errors.acceptTerms ? (\n \n {formik.errors.acceptTerms}\n \n ) : null}\n
\n\n {errorMsg !== '' ? {errorMsg} : null}\n\n : ''}\n type=\"submit\"\n variant=\"contained\"\n >\n Submit\n \n \n \n );\n};\n\nexport default AcceptTermsModal;\n","import React, { useState } from 'react';\nimport Backdrop from '@material-ui/core/Backdrop';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n useMediaQuery,\n useTheme,\n} from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\n\nimport AcceptTermsModal from '../../components/AcceptTermsModal/AcceptTermsModal';\nimport ChangePwdForm from '../../components/ChangePassword/ChangePassword';\nimport './AcceptTerms.scss';\n\nconst AcceptTerms: React.FC = () => {\n const [openAcceptTerms, setOpenAcceptterms] = useState(false);\n const [changePwdModal, setChangePwdModal] = useState(true);\n const history = useHistory();\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down('xs'));\n\n return (\n <>\n \n \n User Details\n \n {\n history.push('/');\n setOpenAcceptterms(false);\n }}\n successHandler={() => {\n setOpenAcceptterms(false);\n setChangePwdModal(true);\n }}\n />\n \n \n\n \n \n Set your password\n \n\n \n {\n history.push('/');\n setChangePwdModal(false);\n }}\n backHandler={() => {\n setChangePwdModal(false);\n setOpenAcceptterms(true);\n }}\n />\n \n \n \n \n );\n};\n\nexport default AcceptTerms;\n","import React from 'react';\nimport './AccessRedirect.scss';\nconst AccessRedirect: React.FC = () => {\n return (\n <>\n
\n International Casino is Under Maintenance.\n
\n \n );\n};\n\nexport default AccessRedirect;\n","export const ShowPaymentMethods: { [key: string]: boolean } = {\n betex247: true,\n mazaa365: true,\n faircric: true,\n hypexexch: true,\n mazaa: true,// remove before merging\n '365fairplay': true,\n};\n\nexport const ShowWhatsopIcon: { [key: string]: boolean } = {\n betlaal: true,\n hypexexch: true,\n vivaexch: true,\n ntexch: true,\n speed247exch: true,\n stbexch: true,\n vardaanexch: true,\n budthabookiee: true,\n allplay99: true,\n classicbook247: true,\n cricbuzzsport: true,\n dhanexchange: true,\n betinr: true,\n mazaa365: true,\n faircric: true,\n betex247: true,\n sikander247: true,\n '365fairplay': true,\n shaexch: true,\n jinnyexch: true,\n sultan: true,\n '999betpro': true,\n maruti247: true,\n khelbazi: true,\n richestplay999: true,\n trishul999: true,\n vipexch3: true,\n reya5: true,\n cricanna: true,\n mykingexch: true,\n bb247: true,\n theboys7: true,\n owlexch77: true,\n adani99: true,\n mudra999: true,\n kuber333: true,\n bb777: true,\n shreejiexch: true,\n a7exch: true,\n secertgames: true,\n mazaa: true,// remove before merging\n};\n\nexport const ShowWelcomePage: { [key: string]: boolean } = {\n //faircric\n 'faircric.co': true,\n 'faircric.in': true,\n 'faircric.live': true,\n 'faircric.world': true,\n 'faircric.co.in': true,\n 'faircric.online': true,\n //mazaa365\n 'mazaa365.in': true,\n 'mazaa365.co': true,\n 'mazaa365.live': true,\n 'mazaa365.world': true,\n 'mazaa365.co.in': true,\n 'mazaa365.online': true,\n //betex247\n 'betex247.in': true,\n 'betex247.co': true,\n 'betex247.live': true,\n 'betex247.world': true,\n 'betex247.co.in': true,\n 'betex247.online': true,\n};\n\nexport const WHDetails: {\n [key: string]: {\n whatsapp: string;\n bank: string;\n accType: string;\n accName: string;\n accNum: string;\n ifsc: string;\n gpayNum: string;\n gpayUpi: string;\n phonePayNum: string;\n phonePayUpi: string;\n paytmNum: string;\n };\n} = {\n dingo777: {\n whatsapp: '+919328893488',\n bank: 'ICIC Bank',\n accType: 'CURRENT ACCOUNT',\n accName: 'HARIOM JEWELLERS',\n accNum: '030805501063',\n ifsc: 'ICIC0000308',\n gpayNum: '+9195860 03386',\n gpayUpi: 'jalaramjnd1@okaxis',\n phonePayNum: '+919586003386',\n phonePayUpi: 'ronakatm@ybl',\n paytmNum: null,\n },\n wazirexch: {\n whatsapp: '+91**********',\n bank: '***** Bank',\n accType: 'CURRENT ACCOUNT',\n accName: '**** *****',\n accNum: '********',\n ifsc: '*******',\n gpayNum: '+91******',\n gpayUpi: '******@****',\n phonePayNum: '+91********',\n phonePayUpi: '******@***',\n paytmNum: null,\n },\n};\n","import React, { useState, useCallback, useEffect } from 'react';\nimport './WelcomeBonus.scss';\nimport {\n IonRow,\n IonCol,\n IonButton,\n} from '@ionic/react';\nimport { BRAND_DOMAIN, BRAND_NAME } from '../../constants/Branding';\nimport { useHistory } from 'react-router-dom';\nimport welcometitle_logo from '../../assets/images/b2cbanner/welcometitle.png';\nimport SportsBetting from '../../assets/images/faricimage/SportsBetting.png';\nimport x7Support from '../../assets/images/faricimage/24x7Support.png';\nimport LiveCasino from '../../assets/images/faricimage/LiveCasino.png';\nimport bankicon from '../../assets/images/faricimage/bank.png';\nimport googlepayicon from '../../assets/images/faricimage/googlepay.png';\nimport paytmicon from '../../assets/images/faricimage/paytm.png';\nimport Phonepeicon from '../../assets/images/faricimage/Phonepe.png';\nimport UPIicon from '../../assets/images/faricimage/UPI.png';\nimport VirtualSports from '../../assets/images/faricimage/VirtualSports.png';\nimport { ShowWelcomePage } from '../../constants/WhitelabelConfig';\n\n\nconst WelcomeBonus: React.FC = () => {\n let history = useHistory();\n useEffect(() => {\n if(!ShowWelcomePage[BRAND_DOMAIN]){\n history.push('/home')\n }\n }, [ShowWelcomePage[BRAND_DOMAIN]]);\n const onRedirect= async () => {\n if(BRAND_NAME.toLocaleLowerCase() === 'faircric'){\n window.location.href = 'https://www.faircric.com';\n }\n else if (BRAND_NAME.toLocaleLowerCase() === 'mazaa365'){\n window.location.href = 'https://www.mazaa365.com';\n }else if(BRAND_NAME.toLocaleLowerCase() === 'betex247'){\n window.location.href = 'https://www.betex247.com';\n }\n \n }\n const signupHandler = () => {\n if(BRAND_DOMAIN.toString() === \"faircric.in\"){\n window.location.href = 'https://www.faircric.com/register';\n }\n };\n return (\n
\n
\n
\n \n \n
\n \n
\n
\n \n
PLAY THE GAME OF WINNING
\n
\n \n
Welcome Bonus
\n
\n \n \n \n
200%
\n \n \n \n
\n cashback on first deposit\n
\n \n \n
\n \n \n \n
 Sports Games
\n
\n \n
 Live Games
\n
\n \n
 Virtual Sports
\n
\n \n
 24x7 Support
\n
\n
\n
\n {BRAND_DOMAIN.toString() === 'faircric.in'? (\n <>\n \n {/* */}\n \n \n onRedirect()}>\n Claim Now\n \n \n \n \n Sign Up\n \n \n \n {/* */}\n \n \n ):null}\n {BRAND_DOMAIN.toString() !== 'faircric.in'? (\n <>\n \n onRedirect()}>\n Claim Now\n \n \n \n ):null}\n \n
Available on
\n
\n \n
\n \n \n \n \n \n\n
\n
\n
\n
\n
\n
\n );\n};\n \nexport default (WelcomeBonus);\n","import React, { Suspense, lazy, useEffect, useState } from 'react';\nimport { Route } from 'react-router-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport { Redirect, Switch } from 'react-router';\nimport { connect } from 'react-redux';\nimport { useIdleTimer } from 'react-idle-timer';\nimport { toast, ToastContainer } from 'react-toastify';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\n/* Core CSS required for Ionic components to work properly */\nimport '@ionic/react/css/core.css';\nimport ErrorIcon from '@material-ui/icons/ErrorOutline';\nimport SuccessIcon from '@material-ui/icons/CheckCircleOutline';\n\n/* Basic CSS for apps built with Ionic */\nimport '@ionic/react/css/normalize.css';\nimport '@ionic/react/css/structure.css';\nimport '@ionic/react/css/typography.css';\n\n/* Optional CSS utils that can be commented out */\nimport '@ionic/react/css/padding.css';\nimport '@ionic/react/css/float-elements.css';\nimport '@ionic/react/css/text-alignment.css';\nimport '@ionic/react/css/text-transformation.css';\nimport '@ionic/react/css/flex-utils.css';\nimport '@ionic/react/css/display.css';\n\n/* Theme variables */\nimport './theme/variables.css';\nimport './App.scss';\nimport { RootState } from './models/RootState';\n\nimport AcceptTerms from './pages/AcceptTerms/AcceptTerms';\nimport { fetchMailVerifiedSuccess, logout, otpLoginFailed, setDomainConfig } from './store';\nimport AccessRedirect from './pages/AccessRedirect/Accessredirect';\nimport { setTimeout } from 'timers';\nimport LoadingPage from './pages/LoadingPage/LoadingPage';\nimport { HelmetProvider } from 'react-helmet-async';\nimport WelcomeBonus from './pages/WelcomeBonus/WelcomeBonus';\nimport { ShowWelcomePage } from './constants/WhitelabelConfig';\nimport { BRAND_DOMAIN, BRAND_NAME } from './constants/Branding';\nimport { fetchContentConfig } from './store/common/commonActions';\nimport SVLS_API from './svls-api';\nimport { DomainConfig } from './models/DomainConfig';\n\nconst MainPage = lazy(() => import('./router/UserRouter'));\nconst ResetPassword = lazy(\n () => import('./pages/ResetPasswordPage/ResetPasswordPage')\n);\nconst LoginPage = lazy(() => import('./pages/Login/LoginPage'));\nconst SignUp = lazy(() => import('./pages/SignUp/SignUp'));\nconst ForgotPwdForm = lazy(\n () => import('./components/ForgotPassword/ForgotPassword')\n);\nconst ThankYou = lazy(() => import('./pages/ThankYou/ThankYou'));\n\ntype StateProps = {\n fetchMailVerifiedSuccess: (mailVerified: boolean) => void;\n logout: () => void;\n mailVerified: boolean;\n prefersDark: boolean;\n loggedIn: boolean;\n fetchContentConfig: any;\n setDomainConfig: (config: DomainConfig) => void;\n otpLoginSuccess: string;\n otpLoginError: string;\n};\n\nconst App: React.FC = (props) => {\n const { setDomainConfig, otpLoginSuccess, otpLoginError } = props;\n const consoleOpen = useConsoleOpen();\n const helmetContext = {};\n // const consoleOpen = false;\n\n const { logout, prefersDark, loggedIn, fetchContentConfig } = props;\n\n useEffect(() => {\n if (BRAND_NAME?.toLocaleLowerCase() === 'faircric') {\n document.head.insertAdjacentHTML(\n 'beforeend',\n ''\n );\n } else if (BRAND_NAME?.toLocaleLowerCase() === 'betex247') {\n document.head.insertAdjacentHTML(\n 'beforeend',\n ''\n );\n }\n }, []);\n\n useEffect(() => {\n const toggleTheme = (systemInitiatedDark) => {\n if (systemInitiatedDark?.matches) {\n document.body.setAttribute('data-theme', 'dark');\n } else {\n document.body.setAttribute('data-theme', 'light');\n }\n };\n\n let systemDark = window.matchMedia('(prefers-color-scheme: dark)');\n systemDark.addListener((e) => toggleTheme(prefersDark));\n document.body.classList.toggle('dark', prefersDark);\n }, [prefersDark]);\n\n const handleOnIdle = () => {\n console.log('user is idle');\n if (loggedIn) {\n logout();\n }\n };\n\n const handleClose = () => {\n console.log('user open dev tools');\n };\n\n useIdleTimer({\n timeout: 1000 * 60 * 60 * 2, // 2 hours\n onIdle: handleOnIdle,\n debounce: 500,\n });\n\n useEffect(() => {\n fetchContentConfig();\n }, []);\n\n useEffect(() => {\n getDomainConfig();\n }, [loggedIn]);\n\n const getDomainConfig = async () => {\n try {\n const response = await SVLS_API.get(`/account/v2/books/${BRAND_DOMAIN}`);\n if (response.status === 200) {\n const dConfig: DomainConfig = {\n demoUser: response.data.demo_user_enabled,\n signup: response.data.signup_enabled,\n whatsapp: response.data.whatsapp_support,\n payments: response.data.payments_enabled,\n bonus: response.data.bonus_enabled,\n casinoEnabled: response.data.casino_enabled,\n sportsEnabled: response.data.sports_enabled,\n isDomainConfigLoading: false\n };\n setDomainConfig(dConfig);\n }\n } catch (err) {\n console.log(err);\n }\n };\n \n useEffect(() => {\n if (otpLoginSuccess) {\n toast.success(\n
\n {otpLoginSuccess}\n
,\n {\n position: 'top-center',\n autoClose: 3000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n }\n );\n }\n\n if (otpLoginError) {\n toast.error(\n
\n {otpLoginError}\n
,\n {\n position: 'top-center',\n autoClose: 3000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n }\n );\n }\n }, [otpLoginError, otpLoginSuccess]);\n\n return (\n <>\n \n {!ShowWelcomePage[BRAND_DOMAIN] ? (\n <>\n {!consoleOpen ? (\n }>\n \n \n \n \n {/* \n \n \n */}\n \n \n \n \n \n \n ) : null}\n \n ) : null}\n {ShowWelcomePage[BRAND_DOMAIN] ? (\n <>\n {!consoleOpen ? (\n }>\n \n \n \n \n \n \n \n \n ) : null}\n \n ) : null}\n \n \n\n \n \n
\n {' '}\n Due to some inactivity or security reasons stop your website, please\n close the developer tool. Thank you for your support\n
\n
\n \n \n );\n};\n\nexport const useConsoleOpen = () => {\n const [consoleOpen, setConsoleOpen] = useState(false);\n\n useEffect(() => {\n let checkStatus;\n\n var element = new Image();\n Object.defineProperty(element, 'id', {\n get: function () {\n checkStatus = true;\n throw new Error('Dev tools checker');\n },\n });\n requestAnimationFrame(function check() {\n setTimeout(() => {\n checkStatus = false;\n // Don't delete this console statements\n // Uncomment fater fixing ios issues\n // if (process.env.REACT_APP_NODE_ENV !== 'development') {\n // console.dir(element);\n // console.clear();\n // }\n setConsoleOpen(checkStatus);\n requestAnimationFrame(check);\n }, 1000);\n });\n });\n\n return consoleOpen;\n};\n\nconst mapStateToProps = (state: RootState) => {\n return {\n mailVerified: state.auth.mailVerified,\n prefersDark: state.common.prefersDark,\n loggedIn: state.auth.loggedIn,\n otpLoginSuccess: state.auth.otpLoginSuccess,\n otpLoginError: state.auth.otpLoginError,\n };\n};\n\nconst mapDispatchToProps = (dispatch: Function) => {\n return {\n fetchMailVerifiedSuccess: (mailVerified: boolean) =>\n dispatch(fetchMailVerifiedSuccess(mailVerified)),\n setDomainConfig: (config: DomainConfig) =>\n dispatch(setDomainConfig(config)),\n logout: () => dispatch(logout()),\n fetchContentConfig: () => dispatch(fetchContentConfig()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (\n process.env.REACT_APP_NODE_ENV === 'production' &&\n 'serviceWorker' in navigator\n ) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\n\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport store from './store/store';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}