{"version":3,"file":"static/chunks/98699.726bf597333fcb0e.js","sources":["webpack://_N_E/./src/LegacyApp/client/modules/app/strategyService.js","webpack://_N_E/./src/modules/games/DiceGame/components/BetValue/betValue.constants.ts","webpack://_N_E/./src/modules/games/Game/methods/checkEasyConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/checkExpertConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsDoubleValue.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsQuadrupleValue.ts","webpack://_N_E/./src/modules/games/Game/methods/getBetValueMaxMin.ts","webpack://_N_E/./src/modules/games/Game/methods/getRuleBetValuesBetConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/getStrategyFromState.ts","webpack://_N_E/./src/modules/games/Game/methods/getWinChanceFromBetValues.ts","webpack://_N_E/./src/modules/games/Game/methods/mapBetValuesDTO.ts"],"sourceRoot":"","sourcesContent":["import { getStrategyFromState } from '@modules/games/Game/methods/getStrategyFromState';\nimport { getGamesList } from '@modules/games/Game/methods/getGamesList';\nimport { lsSet } from '@modules/localStorage/methods/lsSet';\nimport { lsGet } from '@modules/localStorage/methods/lsGet';\nimport { lsClear } from '@modules/localStorage/methods/lsClear';\nimport { generateGameStrategyKey } from '@modules/localStorage/types/localStorageKeys.type';\nimport { jsonToString } from '@common/methods/jsonToString';\nimport { game_config } from '../../game_config';\nimport sortService, { DIRECTION } from './sortService';\nimport { capitalize } from './appService';\n\nexport const isDeprecated = (strategy) => {\n\t// console.log('isDeprecated', strategy);\n\tconst isV3 = strategy.config;\n\tif (\n\t\t(!!strategy.advancedType ||\n\t\t\ttypeof strategy.winIncrease !== 'object' ||\n\t\t\tstrategy.winIncrease === null) &&\n\t\t!isV3\n\t) {\n\t\treturn 'v1';\n\t}\n\tif (!isV3 && typeof strategy.winIncrease === 'object') {\n\t\treturn 'v2';\n\t}\n\treturn null;\n};\n\nexport const parseFetchedStrategy = (data) => {\n\tconst deprecated = isDeprecated(data);\n\tconst parsed = {\n\t\t...data,\n\t};\n\tif (deprecated === 'v1') {\n\t\tparsed.lostStop = data.loseStop;\n\t\tdelete parsed.loseStop;\n\t}\n\tif (parsed.config) {\n\t\tparsed.config = parsed.config\n\t\t\t.filter((el) => {\n\t\t\t\tif (el.length !== undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn el.when.length !== undefined && el.command.length !== undefined;\n\t\t\t})\n\t\t\t.map((block) => {\n\t\t\t\tblock.when = block.when.map((condition) => {\n\t\t\t\t\tif (condition.type === 'exact') {\n\t\t\t\t\t\tcondition.type = condition.name === 'loss' ? 'before' : 'gte';\n\t\t\t\t\t}\n\t\t\t\t\treturn condition;\n\t\t\t\t});\n\t\t\t\treturn block;\n\t\t\t});\n\t}\n\n\treturn parsed;\n};\n\nexport const getActiveStrategy = ({ state, strategies, strategy }) => {\n\tif (!strategies) {\n\t\tstrategies = state.gameAutobet?.strategies;\n\t}\n\tconst currentStrategy = strategy\n\t\t? getStrategyString(strategy)\n\t\t: getStrategyString(getStrategyFromState(state));\n\treturn strategies.find((el) => {\n\t\t// console.log('getActiveStrategy', {\n\t\t// el,\n\t\t// curr: getStrategyFromState(state),\n\t\t// currArr: currentStrategy.split(';'),\n\t\t// setArr: this.getStrategyString(el).split(';'),\n\t\t// bool: this.getStrategyString(el) === currentStrategy,\n\t\t// });\n\n\t\treturn getStrategyString(el) === currentStrategy;\n\t});\n};\n\nexport const getStrategyString = (strategy) => {\n\treturn Object.keys(strategy)\n\t\t.filter((key) => ['name', 'id'].indexOf(key) === -1)\n\t\t.sort((a, b) => sortService.sort(DIRECTION.ASC, a, b))\n\t\t.map((key) => {\n\t\t\tlet value = strategy[key];\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tvalue = jsonToString(value);\n\t\t\t}\n\t\t\treturn `${key}:${value}`;\n\t\t})\n\t\t.join(';');\n};\n\nexport const parseDeprecatedStrategy = (data) => {\n\tconst deprecated = isDeprecated(data);\n\tconst parsed = {\n\t\t...data,\n\t};\n\tif (deprecated === 'v1') {\n\t\tconst parseIncrease = (value, type = 'every') => ({\n\t\t\tcount: value ? 1 : 0,\n\t\t\tactive: !!value,\n\t\t\tvalue: value || 0,\n\t\t\ttype: type,\n\t\t});\n\t\tconst parseAdvanced = (betType, dataType, data) => ({\n\t\t\ttype: data.advancedType[betType] || data.advancedType.init,\n\t\t\tcount: data.advancedCounter[betType] || data.advancedCounter.init,\n\t\t\tactive:\n\t\t\t\tdata[`advancedIs${capitalize(dataType)}`][betType] ||\n\t\t\t\tdata[`advancedIs${capitalize(dataType)}`].init,\n\t\t});\n\t\tparsed.lostStop = data.loseStop || false;\n\t\tparsed.winIncrease = parseIncrease(parsed.winIncrease);\n\t\tparsed.loseIncrease = parseIncrease(parsed.loseIncrease);\n\t\tparsed.winSwitch = parseAdvanced('win', 'switch', parsed);\n\t\tparsed.loseSwitch = parseAdvanced('lose', 'switch', parsed);\n\t\tparsed.winReset = parseAdvanced('win', 'reset', parsed);\n\t\tparsed.loseReset = parseAdvanced('lose', 'reset', parsed);\n\t\tparsed.winStop = parseAdvanced('win', 'stop', parsed);\n\t\tparsed.loseStop = parseAdvanced('lose', 'stop', parsed);\n\t\tdelete parsed.advancedCounter;\n\t\tdelete parsed.advancedType;\n\t\tdelete parsed.advancedIsStop;\n\t\tdelete parsed.advancedIsReset;\n\t\tdelete parsed.advancedIsSwitch;\n\t}\n\tif (deprecated === 'v1' || deprecated === 'v2') {\n\t\tparsed.config = [];\n\t\tconst parse = ({\n\t\t\tforce,\n\t\t\tkey,\n\t\t\tcommandName,\n\t\t\twhenName,\n\t\t\tactive,\n\t\t\tvalue,\n\t\t\tcount,\n\t\t\ttype,\n\t\t}) => {\n\t\t\tconst details = parsed[key];\n\t\t\tif (!details && !force) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (details) {\n\t\t\t\tif (!value) {\n\t\t\t\t\tvalue = details.value;\n\t\t\t\t}\n\t\t\t\tif (!count) {\n\t\t\t\t\tcount = details.count;\n\t\t\t\t}\n\t\t\t\tif (!type) {\n\t\t\t\t\ttype = details.type;\n\t\t\t\t}\n\t\t\t\tif (!active) {\n\t\t\t\t\tactive = details.active;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (active || (details && details.value > 0)) {\n\t\t\t\tparsed.config.push({\n\t\t\t\t\tcommand: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: commandName,\n\t\t\t\t\t\t\tvalue: value || null,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhen: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: whenName,\n\t\t\t\t\t\t\tvalue: count,\n\t\t\t\t\t\t\ttype: type || null,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t\t// console.log('parse', key, {\n\t\t\t// parsed,\n\t\t\t// details,\n\t\t\t// key,\n\t\t\t// commandName,\n\t\t\t// whenName,\n\t\t\t// active,\n\t\t\t// value,\n\t\t\t// count,\n\t\t\t// type,\n\t\t\t// pushed: {\n\t\t\t// command: [{\n\t\t\t// name: commandName,\n\t\t\t// value: value || null,\n\t\t\t// }],\n\t\t\t// when: [{\n\t\t\t// name: whenName,\n\t\t\t// value: count,\n\t\t\t// type: type || null,\n\t\t\t// }],\n\t\t\t// }\n\t\t\t// });\n\t\t\tdelete parsed[key];\n\t\t};\n\t\tparse({\n\t\t\tkey: 'loseReset',\n\t\t\tcommandName: 'resetAmount',\n\t\t\twhenName: 'lose',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winReset',\n\t\t\tcommandName: 'resetAmount',\n\t\t\twhenName: 'win',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseIncrease',\n\t\t\tcommandName: 'increaseAmountPercent',\n\t\t\twhenName: 'lose',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winIncrease',\n\t\t\tcommandName: 'increaseAmountPercent',\n\t\t\twhenName: 'win',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseSwitch',\n\t\t\tcommandName: 'switch',\n\t\t\twhenName: 'lose',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winSwitch',\n\t\t\tcommandName: 'switch',\n\t\t\twhenName: 'win',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'lose',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'win',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'profitStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'profit',\n\t\t\tactive: !!parsed.profitStop,\n\t\t\tcount: parsed.profitStop,\n\t\t\ttype: 'gte',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'lostStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'loss',\n\t\t\tactive: !!parsed.lostStop,\n\t\t\tcount: parsed.lostStop,\n\t\t\ttype: 'before',\n\t\t});\n\t\t// if (!parsed.config.length) {\n\t\t// parse({key: 'loseReset', commandName: 'resetAmount', whenName: 'lose', active: true, count: 1, type: 'every', force: true});\n\t\t// parse({key: 'winReset', commandName: 'resetAmount', whenName: 'win', active: true, count: 1, type: 'every', force: true});\n\t\t// }\n\t}\n\t// console.log('parseDeprecatedStrategy', {data: {...data}, parsed: {...parsed}});\n\treturn parsed;\n};\n\nexport const updateStrategyLocalStorage = (state) => {\n\tgetGamesList().forEach((game) => {\n\t\tif (!state) {\n\t\t\treturn lsClear(generateGameStrategyKey(game));\n\t\t}\n\t\tconst strategy = getStrategyFromState(state, game);\n\t\tdelete strategy.config;\n\t\tif (strategy.rollDirection) {\n\t\t\tdelete strategy.rollDirection;\n\t\t}\n\t\tif (strategy.betValues) {\n\t\t\tdelete strategy.betValues;\n\t\t}\n\t\tstrategy.configExpert = state.gameAutobet?.config[game];\n\t\tstrategy.configEasy = state.gameAutobet?.configEasy[game];\n\t\t// console.log('updateStrategyLocalStorage', jsonToString(strategy), game);\n\t\tif (game_config[game].isAutobet) {\n\t\t\tlsSet(generateGameStrategyKey(game), strategy);\n\t\t}\n\t});\n};\n\nexport const getStrategyLocalStorage = (game) => {\n\treturn lsGet(generateGameStrategyKey(game));\n};\n","import { config } from '@legacyApp/client/config';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { GameType } from '../../../Game/constants/availableGames';\n\nexport const GAME = GameType.DICE;\nexport const ID = `${GAME}-value`;\nexport const roundBetValue = (value: number): number => {\n\treturn roundNumber(value, config.decimals.betValue);\n};\n","import { GameStrategy } from '../types/GameStrategy';\n\nexport const checkEasyConfig = (config: GameStrategy['config']): boolean => {\n\tif (\n\t\tconfig.filter((el) => {\n\t\t\treturn (\n\t\t\t\t['resetAmount', 'increaseAmountPercent'].indexOf(el.command[0].name) >\n\t\t\t\t-1\n\t\t\t);\n\t\t}).length !== 2\n\t) {\n\t\treturn false;\n\t}\n\treturn config.every((el) => {\n\t\tif (el.command[0].name === 'stop') {\n\t\t\tif (el.when[0].name === 'profit' && el.when[0].type === 'gte') {\n\t\t\t\t// console.log('isEasyConfig - stopAction', jsonToString(el));\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (el.when[0].name === 'loss' && el.when[0].type === 'before') {\n\t\t\t\t// console.log('isEasyConfig - stopAction', jsonToString(el));\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\t['resetAmount', 'increaseAmountPercent'].indexOf(el.command[0].name) > -1\n\t\t) {\n\t\t\tif (['win', 'lose'].indexOf(el.when[0].name) > -1) {\n\t\t\t\tif (el.when[0].type === 'every') {\n\t\t\t\t\tif (parseFloat(el.when[0].value) === 1) {\n\t\t\t\t\t\t// console.log('isEasyConfig - amountAction', jsonToString(el));\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t});\n};\n","import { GameStrategy } from '../types/GameStrategy';\nimport { checkEasyConfig } from './checkEasyConfig';\n\nexport const checkExpertConfig = (config: GameStrategy['config']): boolean => {\n\t// console.log('isExpert - 1', { config });\n\tif (!config) {\n\t\treturn false;\n\t}\n\t// console.log('isExpert - 2', {length: config.length, config});\n\tif (config?.length) {\n\t\tconst isEasyTemplate = config.every(\n\t\t\t(el) => !el?.command || (el.command.length === 1 && el.when.length === 1),\n\t\t);\n\t\t// console.log('isExpert - 3', {isEasyTemplate});\n\t\tif (config?.length <= 4 && isEasyTemplate) {\n\t\t\t// console.log('isExpert', {isEasy: isEasyConfig(config), config: JSON.stringify(config)});\n\t\t\treturn !checkEasyConfig(config);\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n","import { RollRule } from '../types/RollRule';\n\nexport const checkIsDoubleValue = (rule: RollRule): boolean => {\n\treturn [RollRule.BETWEEN, RollRule.OUTSIDE].indexOf(rule) > -1;\n};\n","import { RollRule } from '../types/RollRule';\n\nexport const checkIsQuadrupleValue = (rule: RollRule): boolean => {\n\treturn [RollRule.TWO_RANGE].indexOf(rule) > -1;\n};\n","import { config } from '@legacyApp/client/config';\nimport { mathService } from '@legacyApp/client/modules/math/mathService';\nimport {\n\tgetMaxWinChance,\n\tgetMinWinChance,\n} from '@legacyApp/client/modules/app/validateService';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { roundBetValue } from '@modules/games/DiceGame/components/BetValue/betValue.constants';\nimport {\n\tGetBetValueMaxMin,\n\tGetBetValueMaxMinProps,\n\tGetBetValueMaxMinResult,\n} from '../types/GetBetValueMaxMin';\nimport { RollRule } from '../types/RollRule';\nimport { GameType } from '../constants/availableGames';\nimport { checkIsSingleValue } from './checkIsSingleValue';\n\nexport const MAX_WIN_CHANCE = getMaxWinChance();\nexport const MIN_WIN_CHANCE = getMinWinChance(GameType.DICE);\n\nexport const MAX_BET_RESULT = config.games.dice.maxBetResult;\nexport const MIN_BET_RESULT = config.games.dice.minBetResult;\nexport const MIN_BET_VALUE_UNIT = mathService.getMinValueByPrecision(\n\tconfig.decimals.betValue,\n);\nexport const GUARANTEED_LOST_VALUES_WIN_CHANCE = roundBetValue(\n\tMAX_BET_RESULT - config.games.maxWinChance,\n);\nexport const MAX_RANGE_VALUE = roundBetValue(\n\tMAX_BET_RESULT + MIN_BET_VALUE_UNIT,\n);\n\nexport const getPrevAndNextBetValue = (props: GetBetValueMaxMinProps) => {\n\tif (!isTrueOrZero(props.index)) {\n\t\treturn {};\n\t}\n\tconst prevBetValue = props.betValues?.[props.index - 1];\n\tconst nextBetValue = props.betValues?.[props.index + 1];\n\treturn {\n\t\tprevBetValue,\n\t\tnextBetValue,\n\t};\n};\n\nexport const getSingleBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tif (props.rule === RollRule.DIRECT) {\n\t\treturn {\n\t\t\tmin: roundBetValue(MIN_BET_RESULT),\n\t\t\tmax: roundBetValue(MAX_BET_RESULT),\n\t\t};\n\t}\n\tif (props.rule === RollRule.OVER) {\n\t\treturn {\n\t\t\tmin: roundBetValue(MIN_BET_RESULT + GUARANTEED_LOST_VALUES_WIN_CHANCE),\n\t\t\tmax: roundBetValue(MAX_BET_RESULT - MIN_BET_VALUE_UNIT),\n\t\t};\n\t}\n\treturn {\n\t\tmin: roundBetValue(MIN_BET_RESULT + MIN_BET_VALUE_UNIT),\n\t\tmax: roundBetValue(MAX_BET_RESULT - GUARANTEED_LOST_VALUES_WIN_CHANCE),\n\t};\n};\n\nexport const getBetweenBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { prevBetValue, nextBetValue } = getPrevAndNextBetValue(props);\n\n\tlet min = MIN_BET_RESULT;\n\tlet max = MAX_RANGE_VALUE;\n\n\tif (isTrueOrZero(nextBetValue)) {\n\t\tmin = nextBetValue - (MAX_WIN_CHANCE + MIN_BET_VALUE_UNIT);\n\t\tmax = nextBetValue - (MIN_WIN_CHANCE + MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (isTrueOrZero(prevBetValue)) {\n\t\tmin = MIN_WIN_CHANCE + (prevBetValue + MIN_BET_VALUE_UNIT);\n\t\tmax = MAX_WIN_CHANCE + (prevBetValue + MIN_BET_VALUE_UNIT);\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < MIN_BET_RESULT ? MIN_BET_RESULT : min),\n\t\tmax: roundBetValue(max > MAX_RANGE_VALUE ? MAX_RANGE_VALUE : max),\n\t};\n};\n\nexport const getOutsideBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { prevBetValue, nextBetValue } = getPrevAndNextBetValue(props);\n\n\tlet min = MIN_BET_RESULT;\n\tlet max = MAX_BET_RESULT;\n\n\tif (isTrueOrZero(nextBetValue)) {\n\t\tmin = nextBetValue + MIN_WIN_CHANCE - MAX_BET_RESULT;\n\t\tmax = nextBetValue + MAX_WIN_CHANCE - MAX_BET_RESULT;\n\t}\n\n\tif (isTrueOrZero(prevBetValue)) {\n\t\tmin = prevBetValue - MAX_WIN_CHANCE + MAX_BET_RESULT;\n\t\tmax = prevBetValue - MIN_WIN_CHANCE + MAX_BET_RESULT;\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < MIN_BET_RESULT ? MIN_BET_RESULT : min),\n\t\tmax: roundBetValue(max > MAX_BET_RESULT ? MAX_BET_RESULT : max),\n\t};\n};\n\nexport const getTwoRangeBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { index, betValues } = props;\n\n\tconst minResult = isTrueOrZero(betValues?.[index - 1])\n\t\t? betValues?.[index - 1] < MIN_BET_RESULT\n\t\t\t? MIN_BET_RESULT\n\t\t\t: betValues?.[index - 1] +\n\t\t\t (index % 2 === 1 ? 2 * MIN_BET_VALUE_UNIT : MIN_BET_VALUE_UNIT)\n\t\t: MIN_BET_RESULT;\n\tconst maxResult = isTrueOrZero(betValues?.[index + 1])\n\t\t? betValues?.[index + 1] > MAX_RANGE_VALUE\n\t\t\t? MAX_RANGE_VALUE\n\t\t\t: betValues?.[index + 1] -\n\t\t\t (index % 2 === 1 ? MIN_BET_VALUE_UNIT : 2 * MIN_BET_VALUE_UNIT)\n\t\t: MAX_RANGE_VALUE;\n\n\tlet min = minResult;\n\tlet max = maxResult;\n\n\tconst MIN_WIN_CHANCE_ = MIN_WIN_CHANCE + MIN_BET_VALUE_UNIT;\n\n\tif (index === 0) {\n\t\tmin =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[2] -\n\t\t\t(MAX_WIN_CHANCE + 2 * MIN_BET_VALUE_UNIT);\n\t\tmax =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[2] -\n\t\t\t(MIN_WIN_CHANCE_ + 2 * MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (index === 1) {\n\t\tmin =\n\t\t\tMIN_WIN_CHANCE_ +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[3] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t\tmax =\n\t\t\tMAX_WIN_CHANCE +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[3] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t}\n\n\tif (index === 2) {\n\t\tmin =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[0] -\n\t\t\t(MAX_WIN_CHANCE + 2 * MIN_BET_VALUE_UNIT);\n\t\tmax =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[0] -\n\t\t\t(MIN_WIN_CHANCE_ + 2 * MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (index === 3) {\n\t\tmin =\n\t\t\tMIN_WIN_CHANCE_ +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[1] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t\tmax =\n\t\t\tMAX_WIN_CHANCE +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[1] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < minResult ? minResult : min),\n\t\tmax: roundBetValue(max > maxResult ? maxResult : max),\n\t};\n};\n\nexport const getBetValueMaxMin: GetBetValueMaxMin = (props) => {\n\tif (checkIsSingleValue(props.rule)) {\n\t\treturn getSingleBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.BETWEEN) {\n\t\treturn getBetweenBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.OUTSIDE) {\n\t\treturn getOutsideBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.TWO_RANGE) {\n\t\treturn getTwoRangeBetValueMaxMin(props);\n\t}\n\n\treturn {\n\t\tmin: null,\n\t\tmax: null,\n\t};\n};\n","import { RootState } from '@legacyApp/client/store/configure.store';\nimport { scientificToDecimal } from '@legacyApp/methods/math/scientificToDecimal';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { RollRule } from '../types/RollRule';\nimport { checkIsSingleValue } from './checkIsSingleValue';\nimport { getWinChangeFromSingleBetValue } from './getWinChanceFromBetValues';\nimport { checkIsDoubleValue } from './checkIsDoubleValue';\nimport { checkIsQuadrupleValue } from './checkIsQuadrupleValue';\nimport { BetValuesDTO } from './mapBetValuesDTO';\n\nconst parseValue = (value: number): string => {\n\treturn scientificToDecimal(roundNumber(value, 2)).toString();\n};\n\ninterface BetValuesBetConfig extends BetValuesDTO {\n\trule?: RollRule;\n}\n\nexport const getRuleBetValuesBetConfig = (\n\trule: RollRule,\n\tbetValue: RootState['dice']['betValue'],\n): BetValuesBetConfig => {\n\tif (rule === RollRule.DIRECT) {\n\t\treturn {\n\t\t\tbet_value: parseValue(betValue.singleUnder),\n\t\t};\n\t}\n\tif (checkIsSingleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value: parseValue(\n\t\t\t\tgetWinChangeFromSingleBetValue(betValue.singleUnder, rule),\n\t\t\t),\n\t\t};\n\t}\n\tif (checkIsDoubleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: parseValue(betValue.double[0]),\n\t\t\tbet_value_second: parseValue(betValue.double[1]),\n\t\t};\n\t}\n\tif (checkIsQuadrupleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: parseValue(betValue.quadruple[0]),\n\t\t\tbet_value_second: parseValue(betValue.quadruple[1]),\n\t\t\tbet_value_third: parseValue(betValue.quadruple[2]),\n\t\t\tbet_value_fourth: parseValue(betValue.quadruple[3]),\n\t\t};\n\t}\n\treturn null;\n};\n","import {\n\tgetGameFromUrl,\n\tgetPayout,\n} from '@legacyApp/client/modules/app/gameService';\nimport { RootState } from '@legacyApp/client/store/configure.store';\nimport { GameType } from '../constants/availableGames';\nimport { GameStrategy } from '../types/GameStrategy';\nimport { RollRule } from '../types/RollRule';\nimport { getRuleBetValuesBetConfig } from './getRuleBetValuesBetConfig';\n\nconst getDiceConfig = (state: RootState) => {\n\tconst rule = state.dice.rollDirection;\n\tconst betValues =\n\t\trule === RollRule.OVER\n\t\t\t? null\n\t\t\t: getRuleBetValuesBetConfig(\n\t\t\t\t\tstate.dice.rollDirection,\n\t\t\t\t\tstate.dice.betValue,\n\t\t\t );\n\treturn {\n\t\trollDirection: rule,\n\t\t...(!!betValues && { betValues }),\n\t};\n};\n\nexport const getStrategyFromState = (\n\tstate: RootState,\n\tgame: GameType,\n\tisDefault?: boolean,\n): GameStrategy => {\n\tif (!game) {\n\t\tgame = state.game?.activeGame || getGameFromUrl();\n\t}\n\treturn {\n\t\t...(game === GameType.DICE && getDiceConfig(state)),\n\t\tgame,\n\t\tcurrency:\n\t\t\tisDefault &&\n\t\t\tstate.gameAutobet?.currency &&\n\t\t\tstate.gameAutobet?.currency[game]\n\t\t\t\t? state.gameAutobet?.currency[game]\n\t\t\t\t: state.user.activeCurrency,\n\t\tconfig:\n\t\t\tstate.gameAutobet?.mode === 'easy'\n\t\t\t\t? state.gameAutobet?.configEasy[game]\n\t\t\t\t: state.gameAutobet?.config[game],\n\t\tpayoutValue:\n\t\t\tNumber(\n\t\t\t\tisDefault\n\t\t\t\t\t? game === 'limbo'\n\t\t\t\t\t\t? state?.limbo?.defaultPayout\n\t\t\t\t\t\t: getPayout(state.game?.defaultWinChanceValue[game], game)\n\t\t\t\t\t: state.game?.payoutValue[game],\n\t\t\t) || null,\n\t\trolls: Number(state.gameAutobet?.rolls) || null,\n\t\t...(state[game]?.risk && { risk: state[game].risk }),\n\t\t...(state[game]?.lines && { rows: state[game].lines }),\n\t\tbetAmount:\n\t\t\tNumber(\n\t\t\t\tisDefault\n\t\t\t\t\t? state.game?.defaultBetAmount[game]\n\t\t\t\t\t: state.game?.betAmount[game],\n\t\t\t) || null,\n\t};\n};\n","import { getWinChanceDecimal } from '@legacyApp/client/modules/app/gameService';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { GameType } from '../constants/availableGames';\nimport { RollRule } from '../types/RollRule';\nimport { MAX_BET_RESULT, MIN_BET_VALUE_UNIT } from './getBetValueMaxMin';\n\nexport const parseSingleBetValue = (betValue: number, rule: RollRule) => {\n\tif (rule === RollRule.DIRECT) {\n\t\treturn betValue;\n\t}\n\n\treturn getWinChangeFromSingleBetValue(betValue, rule);\n};\n\nexport const getWinChangeFromSingleBetValue = (\n\tbetValue: number,\n\trule: RollRule,\n): number => {\n\tif (!isTrueOrZero(betValue)) {\n\t\treturn null;\n\t}\n\tif (rule === RollRule.OVER) {\n\t\treturn roundNumber(\n\t\t\tMAX_BET_RESULT - betValue,\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.DIRECT) {\n\t\treturn roundNumber(MIN_BET_VALUE_UNIT, getWinChanceDecimal(GameType.DICE));\n\t}\n\treturn betValue;\n};\n\nexport const getWinChanceFromMultipleBetValues = (\n\tbetValue: ReadonlyArray<number>,\n\trule: RollRule,\n): number => {\n\tif (!betValue?.length) {\n\t\treturn null;\n\t}\n\tif (rule === RollRule.OUTSIDE) {\n\t\treturn roundNumber(\n\t\t\tMAX_BET_RESULT - roundNumber(betValue[1] - betValue[0]),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.BETWEEN) {\n\t\treturn roundNumber(\n\t\t\troundNumber(betValue[1] - (betValue[0] + MIN_BET_VALUE_UNIT)),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.TWO_RANGE) {\n\t\treturn roundNumber(\n\t\t\troundNumber(betValue[1] - (betValue[0] + MIN_BET_VALUE_UNIT)) +\n\t\t\t\troundNumber(betValue[3] - (betValue[2] + MIN_BET_VALUE_UNIT)),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\treturn null;\n};\n","import { RollRule } from '../types/RollRule';\nimport { checkIsSingleValue } from './checkIsSingleValue';\nimport { checkIsDoubleValue } from './checkIsDoubleValue';\n\nexport interface BetValuesDTO {\n\tbet_value?: string;\n\tbet_value_first?: string;\n\tbet_value_second?: string;\n\tbet_value_third?: string;\n\tbet_value_fourth?: string;\n}\n\nexport const mapBetValuesDTO = (\n\tbetValues: BetValuesDTO,\n): ReadonlyArray<number> => {\n\tconst {\n\t\tbet_value,\n\t\tbet_value_second,\n\t\tbet_value_first,\n\t\tbet_value_fourth,\n\t\tbet_value_third,\n\t} = betValues || {};\n\n\tif (bet_value) {\n\t\treturn [Number(bet_value)];\n\t}\n\n\tif (bet_value_fourth) {\n\t\treturn [\n\t\t\tNumber(bet_value_first),\n\t\t\tNumber(bet_value_second),\n\t\t\tNumber(bet_value_third),\n\t\t\tNumber(bet_value_fourth),\n\t\t];\n\t}\n\n\treturn [Number(bet_value_first), Number(bet_value_second)];\n};\n\nexport const mapBetValuesToDTO = (\n\tbetValues: ReadonlyArray<number>,\n\trule: RollRule,\n): BetValuesDTO => {\n\tif (checkIsSingleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value: String(betValues[0]),\n\t\t};\n\t}\n\n\tif (checkIsDoubleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: String(betValues[0]),\n\t\t\tbet_value_second: String(betValues[1]),\n\t\t};\n\t}\n\n\treturn {\n\t\tbet_value_first: String(betValues[0]),\n\t\tbet_value_second: String(betValues[1]),\n\t\tbet_value_third: String(betValues[2]),\n\t\tbet_value_fourth: String(betValues[3]),\n\t};\n};\n"],"names":["isDeprecated","strategy","isV3","config","advancedType","winIncrease","parseFetchedStrategy","data","deprecated","parsed","lostStop","loseStop","filter","el","undefined","length","when","command","map","block","condition","type","name","getActiveStrategy","state","strategies","gameAutobet","currentStrategy","getStrategyString","getStrategyFromState","find","Object","keys","key","indexOf","sort","a","b","sortService","DIRECTION","value","jsonToString","join","parseDeprecatedStrategy","parseIncrease","count","active","parseAdvanced","betType","dataType","init","advancedCounter","capitalize","loseIncrease","winSwitch","loseSwitch","winReset","loseReset","winStop","advancedIsStop","advancedIsReset","advancedIsSwitch","parse","force","commandName","whenName","details","push","profitStop","updateStrategyLocalStorage","getGamesList","forEach","game","lsClear","generateGameStrategyKey","rollDirection","betValues","configExpert","configEasy","game_config","isAutobet","lsSet","getStrategyLocalStorage","lsGet","GAME","GameType","ID","roundBetValue","roundNumber","checkExpertConfig","isEasyTemplate","every","parseFloat","checkEasyConfig","checkIsDoubleValue","rule","RollRule","checkIsQuadrupleValue","MAX_WIN_CHANCE","getMaxWinChance","MIN_WIN_CHANCE","getMinWinChance","MAX_BET_RESULT","MIN_BET_RESULT","MIN_BET_VALUE_UNIT","mathService","GUARANTEED_LOST_VALUES_WIN_CHANCE","MAX_RANGE_VALUE","getPrevAndNextBetValue","props","isTrueOrZero","index","prevBetValue","nextBetValue","getBetValueMaxMin","checkIsSingleValue","min","max","getSingleBetValueMaxMin","getBetweenBetValueMaxMin","getOutsideBetValueMaxMin","minResult","maxResult","MIN_WIN_CHANCE_","getTwoRangeBetValueMaxMin","parseValue","scientificToDecimal","toString","getRuleBetValuesBetConfig","betValue","bet_value","singleUnder","getWinChangeFromSingleBetValue","bet_value_first","bet_value_second","quadruple","bet_value_third","bet_value_fourth","isDefault","activeGame","getGameFromUrl","dice","getDiceConfig","currency","user","activeCurrency","mode","payoutValue","Number","limbo","defaultPayout","getPayout","defaultWinChanceValue","rolls","risk","lines","rows","betAmount","defaultBetAmount","parseSingleBetValue","getWinChanceDecimal","getWinChanceFromMultipleBetValues","mapBetValuesDTO","mapBetValuesToDTO","String"],"mappings":";;+6BAWO,IAAMA,EAAe,SAACC,GAE5B,IAAMC,EAAOD,EAASE,OACtB,OACIF,EAASG,cACqB,kBAAzBH,EAASI,aACS,OAAzBJ,EAASI,aACTH,EAIGA,GAAwC,kBAAzBD,EAASI,YAGtB,KAFC,KAHA,MAQIC,EAAuB,SAACC,GACpC,IAAMC,EAAaR,EAAaO,GAC1BE,EAAS,EAAH,GACRF,GAyBJ,MAvBmB,OAAfC,IACHC,EAAOC,SAAWH,EAAKI,gBAChBF,EAAOE,UAEXF,EAAON,SACVM,EAAON,OAASM,EAAON,OACrBS,QAAO,SAACC,GACR,YAAkBC,IAAdD,EAAGE,cAGmBD,IAAnBD,EAAGG,KAAKD,aAA8CD,IAAtBD,EAAGI,QAAQF,WAElDG,KAAI,SAACC,GAOL,OANAA,EAAMH,KAAOG,EAAMH,KAAKE,KAAI,SAACE,GAI5B,MAHuB,UAAnBA,EAAUC,OACbD,EAAUC,KAA0B,SAAnBD,EAAUE,KAAkB,SAAW,OAElDF,KAEDD,MAIHV,GAGKc,EAAoB,SAAC,GAAoC,IACpD,EADkBC,EAAkC,EAAlCA,MAAOC,EAA2B,EAA3BA,WAAYxB,EAAe,EAAfA,SACjDwB,IACJA,EAAU,UAAGD,EAAME,mBAAT,aAAG,EAAmBD,YAEjC,IAAME,EACHC,EADqB3B,IAEH4B,EAAAA,EAAAA,GAAqBL,IAC1C,OAAOC,EAAWK,MAAK,SAACjB,GASvB,OAAOe,EAAkBf,KAAQc,MAItBC,EAAoB,SAAC3B,GACjC,OAAO8B,OAAOC,KAAK/B,GACjBW,QAAO,SAACqB,GAAD,OAA0C,IAAjC,CAAC,OAAQ,MAAMC,QAAQD,MACvCE,MAAK,SAACC,EAAGC,GAAJ,OAAUC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAeH,EAAGC,MAClDnB,KAAI,SAACe,GACL,IAAIO,EAAQvC,EAASgC,GACrB,OAAc,OAAVO,QAA4B1B,IAAV0B,EACd,IAEJA,GAA0B,kBAAVA,IACnBA,GAAQC,EAAAA,EAAAA,GAAaD,IAEf,GAAP,OAAUP,EAAV,YAAiBO,OAEjBE,KAAK,MAGKC,EAA0B,SAACpC,GACvC,IAAMC,EAAaR,EAAaO,GAC1BE,EAAS,EAAH,GACRF,GAEJ,GAAmB,OAAfC,EAAqB,CACxB,IAAMoC,EAAgB,SAACJ,GAAD,IAAQnB,EAAR,uDAAe,QAAf,MAA4B,CACjDwB,MAAOL,EAAQ,EAAI,EACnBM,SAAUN,EACVA,MAAOA,GAAS,EAChBnB,KAAMA,IAED0B,EAAgB,SAACC,EAASC,EAAU1C,GAApB,MAA8B,CACnDc,KAAMd,EAAKH,aAAa4C,IAAYzC,EAAKH,aAAa8C,KACtDL,MAAOtC,EAAK4C,gBAAgBH,IAAYzC,EAAK4C,gBAAgBD,KAC7DJ,OACCvC,EAAK,aAAD,QAAc6C,EAAAA,EAAAA,IAAWH,KAAaD,IAC1CzC,EAAK,aAAD,QAAc6C,EAAAA,EAAAA,IAAWH,KAAaC,OAE5CzC,EAAOC,SAAWH,EAAKI,WAAY,EACnCF,EAAOJ,YAAcuC,EAAcnC,EAAOJ,aAC1CI,EAAO4C,aAAeT,EAAcnC,EAAO4C,cAC3C5C,EAAO6C,UAAYP,EAAc,MAAO,SAAUtC,GAClDA,EAAO8C,WAAaR,EAAc,OAAQ,SAAUtC,GACpDA,EAAO+C,SAAWT,EAAc,MAAO,QAAStC,GAChDA,EAAOgD,UAAYV,EAAc,OAAQ,QAAStC,GAClDA,EAAOiD,QAAUX,EAAc,MAAO,OAAQtC,GAC9CA,EAAOE,SAAWoC,EAAc,OAAQ,OAAQtC,UACzCA,EAAO0C,uBACP1C,EAAOL,oBACPK,EAAOkD,sBACPlD,EAAOmD,uBACPnD,EAAOoD,iBAEf,GAAmB,OAAfrD,GAAsC,OAAfA,EAAqB,CAC/CC,EAAON,OAAS,GAChB,IAAM2D,EAAQ,SAAC,GAST,IARLC,EAQK,EARLA,MACA9B,EAOK,EAPLA,IACA+B,EAMK,EANLA,YACAC,EAKK,EALLA,SACAnB,EAIK,EAJLA,OACAN,EAGK,EAHLA,MACAK,EAEK,EAFLA,MACAxB,EACK,EADLA,KAEM6C,EAAUzD,EAAOwB,IAClBiC,GAAYH,KAIbG,IACE1B,IACJA,EAAQ0B,EAAQ1B,OAEZK,IACJA,EAAQqB,EAAQrB,OAEZxB,IACJA,EAAO6C,EAAQ7C,MAEXyB,IACJA,EAASoB,EAAQpB,UAGfA,GAAWoB,GAAWA,EAAQ1B,MAAQ,IACzC/B,EAAON,OAAOgE,KAAK,CAClBlD,QAAS,CACR,CACCK,KAAM0C,EACNxB,MAAOA,GAAS,OAGlBxB,KAAM,CACL,CACCM,KAAM2C,EACNzB,MAAOK,EACPxB,KAAMA,GAAQ,gBA2BXZ,EAAOwB,KAEf6B,EAAM,CACL7B,IAAK,YACL+B,YAAa,cACbC,SAAU,SAEXH,EAAM,CACL7B,IAAK,WACL+B,YAAa,cACbC,SAAU,QAEXH,EAAM,CACL7B,IAAK,eACL+B,YAAa,wBACbC,SAAU,SAEXH,EAAM,CACL7B,IAAK,cACL+B,YAAa,wBACbC,SAAU,QAEXH,EAAM,CACL7B,IAAK,aACL+B,YAAa,SACbC,SAAU,SAEXH,EAAM,CACL7B,IAAK,YACL+B,YAAa,SACbC,SAAU,QAEXH,EAAM,CACL7B,IAAK,WACL+B,YAAa,OACbC,SAAU,SAEXH,EAAM,CACL7B,IAAK,UACL+B,YAAa,OACbC,SAAU,QAEXH,EAAM,CACL7B,IAAK,aACL+B,YAAa,OACbC,SAAU,SACVnB,SAAUrC,EAAO2D,WACjBvB,MAAOpC,EAAO2D,WACd/C,KAAM,QAEPyC,EAAM,CACL7B,IAAK,WACL+B,YAAa,OACbC,SAAU,OACVnB,SAAUrC,EAAOC,SACjBmC,MAAOpC,EAAOC,SACdW,KAAM,WAQR,OAAOZ,GAGK4D,EAA6B,SAAC7C,IAC1C8C,EAAAA,EAAAA,KAAeC,SAAQ,SAACC,GAAS,QAChC,IAAKhD,EACJ,OAAOiD,EAAAA,EAAAA,IAAQC,EAAAA,EAAAA,IAAwBF,IAExC,IAAMvE,GAAW4B,EAAAA,EAAAA,GAAqBL,EAAOgD,UACtCvE,EAASE,OACZF,EAAS0E,sBACL1E,EAAS0E,cAEb1E,EAAS2E,kBACL3E,EAAS2E,UAEjB3E,EAAS4E,aAAT,UAAwBrD,EAAME,mBAA9B,aAAwB,EAAmBvB,OAAOqE,GAClDvE,EAAS6E,WAAT,UAAsBtD,EAAME,mBAA5B,aAAsB,EAAmBoD,WAAWN,GAEhDO,EAAAA,EAAYP,GAAMQ,YACrBC,EAAAA,EAAAA,IAAMP,EAAAA,EAAAA,IAAwBF,GAAOvE,OAK3BiF,EAA0B,SAACV,GACvC,OAAOW,EAAAA,EAAAA,IAAMT,EAAAA,EAAAA,IAAwBF,M,+HC9RzBY,E,SAAOC,EAAAA,KACPC,EAAK,GAAH,OAAMF,EAAN,UACFG,EAAgB,SAAC/C,GAC7B,OAAOgD,EAAAA,EAAAA,GAAYhD,EAAOrC,EAAAA,EAAAA,SAAAA,Y,sDCLpB,ICCMsF,EAAoB,SAACtF,GAEjC,IAAKA,EACJ,OAAO,EAGR,UAAIA,QAAJ,IAAIA,GAAAA,EAAQY,OAAQ,CACnB,IAAM2E,EAAiBvF,EAAOwF,OAC7B,SAAC9E,GAAD,QAAQ,OAACA,QAAD,IAACA,GAAAA,EAAII,UAAkC,IAAtBJ,EAAGI,QAAQF,QAAmC,IAAnBF,EAAGG,KAAKD,UAG7D,SAAU,OAANZ,QAAM,IAANA,OAAA,EAAAA,EAAQY,SAAU,GAAK2E,KDZE,SAACvF,GAC/B,OAMe,IALdA,EAAOS,QAAO,SAACC,GACd,MACC,CAAC,cAAe,yBAAyBqB,QAAQrB,EAAGI,QAAQ,GAAGK,OAC9D,KAEAP,QAIGZ,EAAOwF,OAAM,SAAC9E,GACpB,GAA2B,SAAvBA,EAAGI,QAAQ,GAAGK,KAAiB,CAClC,GAAwB,WAApBT,EAAGG,KAAK,GAAGM,MAAyC,QAApBT,EAAGG,KAAK,GAAGK,KAE9C,OAAO,EAER,GAAwB,SAApBR,EAAGG,KAAK,GAAGM,MAAuC,WAApBT,EAAGG,KAAK,GAAGK,KAE5C,OAAO,EAGT,MACC,CAAC,cAAe,yBAAyBa,QAAQrB,EAAGI,QAAQ,GAAGK,OAAS,GAEpE,CAAC,MAAO,QAAQY,QAAQrB,EAAGG,KAAK,GAAGM,OAAS,GACvB,UAApBT,EAAGG,KAAK,GAAGK,MACuB,IAAjCuE,WAAW/E,EAAGG,KAAK,GAAGwB,UCbpBqD,CAAgB1F,GAI1B,OAAO,I,oEClBK2F,EAAqB,SAACC,GAClC,MAAO,CAACC,EAAAA,EAAAA,QAAkBA,EAAAA,EAAAA,SAAkB9D,QAAQ6D,IAAS,I,qECDjDE,EAAwB,SAACF,GACrC,MAAO,CAACC,EAAAA,EAAAA,WAAoB9D,QAAQ6D,IAAS,I,kMCcjCG,GAAiBC,EAAAA,EAAAA,MACjBC,GAAiBC,EAAAA,EAAAA,IAAgBhB,EAAAA,EAAAA,MAEjCiB,EAAiBnG,EAAAA,EAAAA,MAAAA,KAAAA,aACjBoG,EAAiBpG,EAAAA,EAAAA,MAAAA,KAAAA,aACjBqG,EAAqBC,EAAAA,EAAAA,uBACjCtG,EAAAA,EAAAA,SAAAA,UAEYuG,GAAoCnB,EAAAA,EAAAA,GAChDe,EAAiBnG,EAAAA,EAAAA,MAAAA,cAELwG,GAAkBpB,EAAAA,EAAAA,GAC9Be,EAAiBE,GAGLI,EAAyB,SAACC,GAAkC,QACxE,OAAKC,EAAAA,EAAAA,GAAaD,EAAME,OAKjB,CACNC,aAHiB,UAAGH,EAAMjC,iBAAT,aAAG,EAAkBiC,EAAME,MAAQ,GAIpDE,aAHiB,UAAGJ,EAAMjC,iBAAT,aAAG,EAAkBiC,EAAME,MAAQ,IAH7C,IAoKIG,EAAuC,SAACL,GACpD,OAAIM,EAAAA,EAAAA,GAAmBN,EAAMd,MA3JS,SACtCc,GAEA,OAAIA,EAAMd,OAASC,EAAAA,EAAAA,OACX,CACNoB,KAAK7B,EAAAA,EAAAA,GAAcgB,GACnBc,KAAK9B,EAAAA,EAAAA,GAAce,IAGjBO,EAAMd,OAASC,EAAAA,EAAAA,KACX,CACNoB,KAAK7B,EAAAA,EAAAA,GAAcgB,EAAiBG,GACpCW,KAAK9B,EAAAA,EAAAA,GAAce,EAAiBE,IAG/B,CACNY,KAAK7B,EAAAA,EAAAA,GAAcgB,EAAiBC,GACpCa,KAAK9B,EAAAA,EAAAA,GAAce,EAAiBI,IA2I7BY,CAAwBT,GAG5BA,EAAMd,OAASC,EAAAA,EAAAA,QA1IoB,SACvCa,GAEA,MAAuCD,EAAuBC,GAAtDG,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,aAElBG,EAAMb,EACNc,EAAMV,EAYV,OAVIG,EAAAA,EAAAA,GAAaG,KAChBG,EAAMH,GAAgBf,EAAiBM,GACvCa,EAAMJ,GAAgBb,EAAiBI,KAGpCM,EAAAA,EAAAA,GAAaE,KAChBI,EAAMhB,GAAkBY,EAAeR,GACvCa,EAAMnB,GAAkBc,EAAeR,IAGjC,CACNY,KAAK7B,EAAAA,EAAAA,GAAc6B,EAAMb,EAAiBA,EAAiBa,GAC3DC,KAAK9B,EAAAA,EAAAA,GAAc8B,EAAMV,EAAkBA,EAAkBU,IAuHtDE,CAAyBV,GAG7BA,EAAMd,OAASC,EAAAA,EAAAA,QAtHoB,SACvCa,GAEA,MAAuCD,EAAuBC,GAAtDG,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,aAElBG,EAAMb,EACNc,EAAMf,EAYV,OAVIQ,EAAAA,EAAAA,GAAaG,KAChBG,EAAMH,EAAeb,EAAiBE,EACtCe,EAAMJ,EAAef,EAAiBI,IAGnCQ,EAAAA,EAAAA,GAAaE,KAChBI,EAAMJ,EAAed,EAAiBI,EACtCe,EAAML,EAAeZ,EAAiBE,GAGhC,CACNc,KAAK7B,EAAAA,EAAAA,GAAc6B,EAAMb,EAAiBA,EAAiBa,GAC3DC,KAAK9B,EAAAA,EAAAA,GAAc8B,EAAMf,EAAiBA,EAAiBe,IAmGpDG,CAAyBX,GAG7BA,EAAMd,OAASC,EAAAA,EAAAA,UAlGqB,SACxCa,GAEA,IAAQE,EAAqBF,EAArBE,MAAOnC,EAAciC,EAAdjC,UAET6C,GAAYX,EAAAA,EAAAA,GAAY,OAAClC,QAAD,IAACA,OAAD,EAACA,EAAYmC,EAAQ,KACvC,OAATnC,QAAS,IAATA,OAAA,EAAAA,EAAYmC,EAAQ,IAAKR,EACxBA,GACS,OAAT3B,QAAS,IAATA,OAAA,EAAAA,EAAYmC,EAAQ,KACnBA,EAAQ,IAAM,EAAI,EAAIP,EAAqBA,GAC7CD,EACGmB,GAAYZ,EAAAA,EAAAA,GAAY,OAAClC,QAAD,IAACA,OAAD,EAACA,EAAYmC,EAAQ,KACvC,OAATnC,QAAS,IAATA,OAAA,EAAAA,EAAYmC,EAAQ,IAAKJ,EACxBA,GACS,OAAT/B,QAAS,IAATA,OAAA,EAAAA,EAAYmC,EAAQ,KACnBA,EAAQ,IAAM,EAAIP,EAAqB,EAAIA,GAC7CG,EAECS,EAAMK,EACNJ,EAAMK,EAEJC,EAAkBvB,EAAiBI,EA0DzC,OAxDc,IAAVO,IACHK,EACCxC,EAAU,GACVA,EAAU,GACVA,EAAU,IACTsB,EAAiB,EAAIM,GACvBa,EACCzC,EAAU,GACVA,EAAU,GACVA,EAAU,IACT+C,EAAkB,EAAInB,IAGX,IAAVO,IACHK,EACCO,EACA,EAAInB,EACJ5B,EAAU,GACVA,EAAU,GACVA,EAAU,GACXyC,EACCnB,EACA,EAAIM,EACJ5B,EAAU,GACVA,EAAU,GACVA,EAAU,IAGE,IAAVmC,IACHK,EACCxC,EAAU,GACVA,EAAU,GACVA,EAAU,IACTsB,EAAiB,EAAIM,GACvBa,EACCzC,EAAU,GACVA,EAAU,GACVA,EAAU,IACT+C,EAAkB,EAAInB,IAGX,IAAVO,IACHK,EACCO,EACA,EAAInB,EACJ5B,EAAU,GACVA,EAAU,GACVA,EAAU,GACXyC,EACCnB,EACA,EAAIM,EACJ5B,EAAU,GACVA,EAAU,GACVA,EAAU,IAGL,CACNwC,KAAK7B,EAAAA,EAAAA,GAAc6B,EAAMK,EAAYA,EAAYL,GACjDC,KAAK9B,EAAAA,EAAAA,GAAc8B,EAAMK,EAAYA,EAAYL,IAkB1CO,CAA0Bf,GAG3B,CACNO,IAAK,KACLC,IAAK,Q,sIC/MDQ,EAAa,SAACrF,GACnB,OAAOsF,EAAAA,EAAAA,IAAoBtC,EAAAA,EAAAA,GAAYhD,EAAO,IAAIuF,YAOtCC,EAA4B,SACxCjC,EACAkC,GAEA,OAAIlC,IAASC,EAAAA,EAAAA,OACL,CACNkC,UAAWL,EAAWI,EAASE,eAG7BhB,EAAAA,EAAAA,GAAmBpB,GACf,CACNmC,UAAWL,GACVO,EAAAA,EAAAA,IAA+BH,EAASE,YAAapC,MAIpDD,EAAAA,EAAAA,GAAmBC,GACf,CACNsC,gBAAiBR,EAAWI,EAAQ,OAAQ,IAC5CK,iBAAkBT,EAAWI,EAAQ,OAAQ,MAG3ChC,EAAAA,EAAAA,GAAsBF,GAClB,CACNsC,gBAAiBR,EAAWI,EAASM,UAAU,IAC/CD,iBAAkBT,EAAWI,EAASM,UAAU,IAChDC,gBAAiBX,EAAWI,EAASM,UAAU,IAC/CE,iBAAkBZ,EAAWI,EAASM,UAAU,KAG3C,O,srBCtCR,IAea1G,EAAuB,SACnCL,EACAgD,EACAkE,GACkB,gCACP,EAANlE,IACJA,GAAO,UAAAhD,EAAMgD,YAAN,eAAYmE,cAAcC,EAAAA,EAAAA,OAElC,OAAO,EAAP,SACKpE,IAASa,EAAAA,EAAAA,MAxBO,SAAC7D,GACtB,IAAMuE,EAAOvE,EAAMqH,KAAKlE,cAClBC,EACLmB,IAASC,EAAAA,EAAAA,KACN,MACAgC,EAAAA,EAAAA,GACAxG,EAAMqH,KAAKlE,cACXnD,EAAMqH,KAAKZ,UAEf,OAAO,EAAP,CACCtD,cAAeoB,KACTnB,GAAa,CAAEA,UAAAA,IAaSkE,CAActH,IAD7C,IAECgD,KAAAA,EACAuE,SACCL,GAAS,UACTlH,EAAME,mBADG,OACT,EAAmBqH,UADnB,UAEAvH,EAAME,mBAFN,OAEA,EAAmBqH,SAASvE,GAF5B,UAGGhD,EAAME,mBAHT,aAGG,EAAmBqH,SAASvE,GAC5BhD,EAAMwH,KAAKC,eACf9I,OAC6B,UAA5B,UAAAqB,EAAME,mBAAN,eAAmBwH,MAAnB,UACG1H,EAAME,mBADT,aACG,EAAmBoD,WAAWN,GADjC,UAEGhD,EAAME,mBAFT,aAEG,EAAmBvB,OAAOqE,GAC9B2E,YACCC,OACCV,EACY,UAATlE,EAAA,OACChD,QADD,IACCA,GADD,UACCA,EAAO6H,aADR,aACC,EAAcC,eACdC,EAAAA,EAAAA,IAAS,UAAC/H,EAAMgD,YAAP,aAAC,EAAYgF,sBAAsBhF,GAAOA,GAH9C,UAINhD,EAAMgD,YAJA,aAIN,EAAY2E,YAAY3E,KACvB,KACNiF,MAAOL,OAAM,UAAC5H,EAAME,mBAAP,aAAC,EAAmB+H,QAAU,OACvC,UAAAjI,EAAMgD,UAAN,eAAakF,OAAQ,CAAEA,KAAMlI,EAAMgD,GAAMkF,QACzC,UAAAlI,EAAMgD,UAAN,eAAamF,QAAS,CAAEC,KAAMpI,EAAMgD,GAAMmF,QAvB/C,IAwBCE,UACCT,OACCV,EAAS,UACNlH,EAAMgD,YADA,aACN,EAAYsF,iBAAiBtF,GADvB,UAENhD,EAAMgD,YAFA,aAEN,EAAYqF,UAAUrF,KACrB,S,6KCvDKuF,EAAsB,SAAC9B,EAAkBlC,GACrD,OAAIA,IAASC,EAAAA,EAAAA,OACLiC,EAGDG,EAA+BH,EAAUlC,IAGpCqC,EAAiC,SAC7CH,EACAlC,GAEA,OAAKe,EAAAA,EAAAA,GAAamB,GAGdlC,IAASC,EAAAA,EAAAA,MACLR,EAAAA,EAAAA,GACNc,EAAAA,GAAiB2B,GACjB+B,EAAAA,EAAAA,IAAoB3E,EAAAA,EAAAA,OAGlBU,IAASC,EAAAA,EAAAA,QACLR,EAAAA,EAAAA,GAAYgB,EAAAA,IAAoBwD,EAAAA,EAAAA,IAAoB3E,EAAAA,EAAAA,OAErD4C,EAXC,MAcIgC,EAAoC,SAChDhC,EACAlC,GAEA,OAAI,OAACkC,QAAD,IAACA,GAAAA,EAAUlH,OAGXgF,IAASC,EAAAA,EAAAA,SACLR,EAAAA,EAAAA,GACNc,EAAAA,IAAiBd,EAAAA,EAAAA,GAAYyC,EAAS,GAAKA,EAAS,KACpD+B,EAAAA,EAAAA,IAAoB3E,EAAAA,EAAAA,OAGlBU,IAASC,EAAAA,EAAAA,SACLR,EAAAA,EAAAA,IACNA,EAAAA,EAAAA,GAAYyC,EAAS,IAAMA,EAAS,GAAKzB,EAAAA,MACzCwD,EAAAA,EAAAA,IAAoB3E,EAAAA,EAAAA,OAGlBU,IAASC,EAAAA,EAAAA,WACLR,EAAAA,EAAAA,IACNA,EAAAA,EAAAA,GAAYyC,EAAS,IAAMA,EAAS,GAAKzB,EAAAA,MACxChB,EAAAA,EAAAA,GAAYyC,EAAS,IAAMA,EAAS,GAAKzB,EAAAA,MAC1CwD,EAAAA,EAAAA,IAAoB3E,EAAAA,EAAAA,OAGf,KArBC,O,sGC3BI6E,EAAkB,SAC9BtF,GAEA,MAMIA,GAAa,GALhBsD,EADD,EACCA,UACAI,EAFD,EAECA,iBACAD,EAHD,EAGCA,gBACAI,EAJD,EAICA,iBACAD,EALD,EAKCA,gBAGD,OAAIN,EACI,CAACkB,OAAOlB,IAGZO,EACI,CACNW,OAAOf,GACPe,OAAOd,GACPc,OAAOZ,GACPY,OAAOX,IAIF,CAACW,OAAOf,GAAkBe,OAAOd,KAG5B6B,EAAoB,SAChCvF,EACAmB,GAEA,OAAIoB,EAAAA,EAAAA,GAAmBpB,GACf,CACNmC,UAAWkC,OAAOxF,EAAU,MAI1BkB,EAAAA,EAAAA,GAAmBC,GACf,CACNsC,gBAAiB+B,OAAOxF,EAAU,IAClC0D,iBAAkB8B,OAAOxF,EAAU,KAI9B,CACNyD,gBAAiB+B,OAAOxF,EAAU,IAClC0D,iBAAkB8B,OAAOxF,EAAU,IACnC4D,gBAAiB4B,OAAOxF,EAAU,IAClC6D,iBAAkB2B,OAAOxF,EAAU","debug_id":"0a0fb0c2-82b1-56f1-8061-0bd0e41d8eff"}