@smartico/public-api 0.0.152 → 0.0.154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.mjs","sources":["../src/Base/ClassId.ts","../src/IntUtils.ts","../src/MiniGames/SAWBuyInType.ts","../src/MiniGames/SAWUtils.ts","../src/MiniGames/SAWAcknowledgeType.ts","../src/MiniGames/SAWAskForUsername.ts","../src/MiniGames/SAWGameType.ts","../src/MiniGames/SAWPrizeType.ts","../src/MiniGames/SAWGetTemplatesResponse.ts","../src/MiniGames/SAWSpinErrorCode.ts","../src/MiniGames/SAWWinSoundType.ts","../src/NodeCache.ts","../src/OCache.ts","../src/Core/ActivityTypeLimited.ts","../src/Core/CoreUtils.ts","../src/Core/PublicLabelSettings.ts","../src/Core/TranslationArea.ts","../src/Inbox/GetInboxMessagesResponse.ts","../src/Inbox/InboxMessage.ts","../src/Inbox/InboxMessageType.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Store/StoreItemPurchased.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Leaderboard/LeaderBoardPeriodType.ts","../src/Level/GetLevelMapResponse.ts","../src/WSAPI/WSAPI.ts","../src/Leaderboard/LeaderBoards.ts","../src/CustomSections/AchCustomSection.ts","../src/CustomSections/UICustomSection.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts","../src/Quiz/SportTypes.ts","../src/Quiz/MarketsType.ts","../src/Quiz/MarketsAnswers.ts","../src/Quiz/MarketsInfo.ts","../src/Quiz/MarketsPerSport.ts","../src/Jackpots/JackpotContributionType.ts","../src/Jackpots/JackpotType.ts"],"sourcesContent":["export enum ClassId {\n PING = 1,\n PONG = 2,\n\n\n INIT = 3,\n INIT_RESPONSE = 4,\n IDENTIFY = 5,\n IDENTIFY_RESPONSE = 6,\n LOGIN = 7,\n LOGOUT = 8,\n EVENT = 9,\n EVENT_RESPONSE = 10,\n\n LOGIN_RESPONSE = 11,\n LOGOUT_RESPONSE = 12,\n\n GET_TRANSLATIONS_REQUEST = 13,\n GET_TRANSLATIONS_RESPONSE = 14,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n CLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n CLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n CLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n CLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n CLIENT_EXECUTE_JS_EVENT = 107,\n CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n CLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n CLIENT_TRACK_ACTIVITY_REQUEST = 155,\n CLIENT_SET_AVATAR_REQUEST = 157,\n CLIENT_SET_AVATAR_RESPONSE = 158,\n\n CLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n CLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n CHECK_SEGMENT_MATCH_REQUEST = 161,\n CHECK_SEGMENT_MATCH_RESPONSE = 162,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n // 500-1000 - Achievements\n GET_LEVEL_MAP_REQUEST = 500,\n GET_LEVEL_MAP_RESPONSE = 501,\n GET_ACHIEVEMENT_MAP_REQUEST = 502,\n GET_ACHIEVEMENT_MAP_RESPONSE = 503,\n RELOAD_ACHIEVEMENTS_EVENT = 504,\n GET_LEADERS_BOARD_REQUEST = 505,\n GET_LEADERS_BOARD_RESPONSE = 506,\n GET_SHOP_ITEMS_REQUEST = 509,\n GET_SHOP_ITEMS_RESPONSE = 510,\n BUY_SHOP_ITEM_REQUEST = 511,\n BUY_SHOP_ITEM_RESPONSE = 512,\n GET_INBOX_MESSAGES_REQUEST = 513,\n GET_INBOX_MESSAGES_RESPONSE = 514,\n GET_SHOP_CATEGORIES_REQUEST = 515,\n GET_SHOP_CATEGORIES_RESPONSE = 516,\n GET_TOURNAMENT_LOBBY_REQUEST = 517,\n GET_TOURNAMENT_LOBBY_RESPONSE = 518,\n GET_TOURNAMENT_INFO_REQUEST = 519,\n GET_TOURNAMENT_INFO_RESPONSE = 520,\n TOURNAMENT_REGISTER_REQUEST = 521,\n TOURNAMENT_REGISTER_RESPONSE = 522,\n GET_CUSTOM_SECTIONS_REQUEST = 523,\n GET_CUSTOM_SECTIONS_RESPONSE = 524,\n MISSION_OPTIN_REQUEST = 525,\n MISSION_OPTIN_RESPONSE = 526,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n GET_ACHIEVEMENT_USER_REQUEST = 527,\n GET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n MARK_INBOX_READ_REQUEST = 529,\n MARK_INBOX_READ_RESPONSE = 530,\n MARK_INBOX_STARRED_REQUEST = 531,\n MARK_INBOX_STARRED_RESPONSE = 532,\n MARK_INBOX_DELETED_REQUEST = 535,\n MARK_INBOX_DELETED_RESPONSE = 536,\n\n GET_ACH_CATEGORIES_REQUEST = 537,\n GET_ACH_CATEGORIES_RESPONSE = 538,\n\n ACHIEVEMENT_CLAIM_PRIZE_REQUEST = 539,\n ACHIEVEMENT_CLAIM_PRIZE_RESPONSE = 540,\n\n ACH_SHOP_ITEM_HISTORY_REQUEST = 541,\n ACH_SHOP_ITEM_HISTORY_RESPONSE = 542,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n GET_BONUSES_REQUEST = 600,\n GET_BONUSES_RESPONSE = 601,\n CLAIM_BONUS_REQUEST = 602,\n CLAIM_BONUS_RESPONSE = 603,\n\n SAW_GET_SPINS_REQUEST = 700,\n SAW_GET_SPINS_RESPONSE = 701,\n SAW_DO_SPIN_REQUEST = 702,\n SAW_DO_SPIN_RESPONSE = 703,\n SAW_AKNOWLEDGE_REQUEST = 704,\n SAW_AKNOWLEDGE_RESPONSE = 705,\n SAW_SPINS_COUNT_PUSH = 706,\n SAW_SHOW_SPIN_PUSH = 707,\n SAW_PRIZE_DROP_WIN_PUSH = 708,\n SAW_PRIZE_DROP_WIN_AKNOWLEDGE_REQUEST = 709,\n SAW_PRIZE_DROP_WIN_AKNOWLEDGE_RESPONSE = 710,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n\n JP_GET_JACKPOTS_REQUEST = 800,\n JP_GET_JACKPOTS_RESPONSE = 801,\n\n JP_GET_LATEST_POTS_REQUEST = 802,\n JP_GET_LATEST_POTS_RESPONSE = 803,\n\n JP_OPTIN_REQUEST = 804,\n JP_OPTIN_RESPONSE = 805,\n\n JP_OPTOUT_REQUEST = 806,\n JP_OPTOUT_RESPONSE = 807,\n\n JP_WIN_PUSH = 808,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n CLIENT_DEBUG_REQUEST = 77777,\n\n \n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n UNSUPPORTED_COMMAND = 99999,\n}","\n\n\nclass IntUtils {\n\n public static uuid(): string {\n let a: any;\n let b: any;\n for (b = a = \"\"; a++ < 36; b += a * 51 & 52 ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16) : \"-\") {}\n return b;\n } \n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n } \n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n } \n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (IntUtils.isNotNull(value)) {\n return value.replace(new RegExp(IntUtils.escapeRegExp(regex), \"g\"), replacement?.toString());\n }\n return value;\n } \n\n public static escapeRegExp(v: string): string {\n if (IntUtils.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static JsonOrText = (str: string): any => {\n if (str && str.includes && (str.includes('{') || str.includes('['))) {\n try {\n return JSON.parse(str)\n } catch (e) {\n return str;\n }\n }\n return str;\n }\n \n // public static wsTimeToEpoch = (time: string): number => {\n // if (time) {\n // return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n // } else {\n // return null\n // }\n // }\n\n public static isWithinPeriod = (timestamp: number, period: 'today' | 'thisWeek' | 'thisMonth'): boolean => {\n const now = new Date();\n const completedDate = new Date(timestamp);\n\n switch(period) {\n case 'today':\n return (\n now.getFullYear() === completedDate.getFullYear() &&\n now.getMonth() === completedDate.getMonth() &&\n now.getDate() === completedDate.getDate()\n );\n case \"thisWeek\":\n const startOfWeek = new Date(now);\n startOfWeek.setDate(now.getDate() - now.getDay());\n startOfWeek.setHours(0, 0, 0, 0);\n\n const endOfWeek = new Date(startOfWeek);\n endOfWeek.setDate(startOfWeek.getDate() + 6);\n endOfWeek.setHours(23, 59, 59, 999);\n\n return completedDate >= startOfWeek && completedDate <= endOfWeek;\n case \"thisMonth\":\n return (\n now.getFullYear() === completedDate.getFullYear() &&\n now.getMonth() === completedDate.getMonth()\n );\n default:\n return false;\n }\n }\n}\n\n\n\nexport { IntUtils }","/** @hidden */\nexport enum SAWBuyInType {\n Free = 1,\n Points = 2,\n Spins = 3\n}\n\nexport enum SAWBuyInTypeName {\n Free = 'free',\n Points = 'points',\n Spins = 'spins',\n Unknown = 'unknown'\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n return {\n [SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n [SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n [SAWBuyInType.Spins]: SAWBuyInTypeName.Spins\n }[type] || SAWBuyInTypeName.Unknown;\n}","import { SAWBuyInType } from \"./SAWBuyInType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\n\nclass SAWUtils {\n\n public static canPlay = (t: SAWTemplate, pointsBalance: number): boolean => {\n if (t === null || t === undefined) {\n return false;\n }\n \n switch (t.saw_buyin_type_id) {\n case SAWBuyInType.Free: {\n return true;\n }\n case SAWBuyInType.Spins: {\n return t.spin_count !== null && t.spin_count > 0\n }\n case SAWBuyInType.Points: {\n return t.buyin_cost_points <= pointsBalance;\n }\n default: {\n console.error(\"MiniGamesUtils.canPlay: Unknwon SAW buyin type \" + t.saw_buyin_type_id);\n return false;\n }\n }\n }\n \n}\n\nexport { SAWUtils }","export enum SAWAcknowledgeType {\n\n Silent = 1,\n QuickMessage = 2,\n FullMessage = 3\n}\n","\nexport enum SAWAskForUsername {\n NOASK = \"no-ask\",\n ONSUMBIT = \"on-submit\"\n}","/** @hidden */\n\nexport enum SAWGameType {\n SpinAWheel = 1,\n ScratchCard = 2,\n MatchX = 3,\n GiftBox = 4,\n PrizeDrop = 5,\n Quiz = 6\n}\n\nexport enum SAWGameTypeName {\n SpinAWheel = \"wheel\",\n ScratchCard = \"scratch\",\n MatchX = \"matchx\",\n GiftBox = \"giftbox\",\n PrizeDrop = \"prizedrop\",\n Quiz = 'quiz',\n Unknown = \"unknown\"\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n return {\n [SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n [SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n [SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n [SAWGameType.GiftBox]: SAWGameTypeName.GiftBox,\n [SAWGameType.PrizeDrop]: SAWGameTypeName.PrizeDrop,\n [SAWGameType.Quiz]: SAWGameTypeName.Quiz\n }[type] || SAWGameTypeName.Unknown;\n}\n","/** @hidden */\nexport enum SAWPrizeType {\n\n NO_PRIZE = 1,\n POINTS = 2,\n BONUS = 3,\n MANUAL = 4,\n SPIN = 5,\n JACKPOT = 6\n}\n\nexport enum MiniGamePrizeTypeName {\n NO_PRIZE = 'no-prize',\n POINTS = 'points',\n BONUS = 'bonus',\n MANUAL = 'manual',\n SPIN = 'spin',\n JACKPOT = 'jackpot',\n UNKNOWN = \"unknown\"\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n return {\n [SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n [SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n [SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n [SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n [SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n [SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT, \n }[type] || MiniGamePrizeTypeName.UNKNOWN;\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { TMiniGamePrize, TMiniGameTemplate } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"./../Base/ProtocolResponse\";\nimport { SAWBuyInTypeNamed } from \"./SAWBuyInType\";\nimport { SAWGameTypeNamed } from \"./SAWGameType\";\nimport { MiniGamePrizeTypeName, MiniGamePrizeTypeNamed } from \"./SAWPrizeType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\nimport { SAWUtils } from \"./SAWUtils\";\n\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\n templates: SAWTemplate[];\n}\n\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => { \n \n \n return items.map( r => {\n\n const x: TMiniGameTemplate = {\n \n id: r.saw_template_id,\n name: r.saw_template_ui_definition.name,\n description: r.saw_template_ui_definition.description,\n thumbnail: \n r.saw_skin_ui_definition?.skin_folder\n ? r.saw_skin_ui_definition?.skin_folder + '/ico.png'\n : `https://libs.smartico.ai/gf/images/saw/${r.saw_skin_key}/ico.png`\n ,\n over_limit_message: r.saw_template_ui_definition.over_limit_message,\n no_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n jackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n saw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n saw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n buyin_cost_points: r.buyin_cost_points,\n jackpot_add_on_attempt: r.jackpot_add_on_attempt,\n jackpot_current: r.jackpot_current,\n spin_count: r.spin_count,\n promo_image: r.saw_template_ui_definition.promo_image,\n promo_text: r.saw_template_ui_definition.promo_text,\n custom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n expose_game_stat_on_api: r.expose_game_stat_on_api,\n\n next_available_spin_ts: r.next_available_spin_ts,\n\n prizes: r.prizes.map( p => {\n const y: TMiniGamePrize = {\n id: p.saw_prize_id,\n name: p.saw_prize_ui_definition.name,\n prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n prize_value: p.prize_value,\n font_size: p.saw_prize_ui_definition.font_size,\n font_size_mobile: p.saw_prize_ui_definition.font_size_mobile,\n icon: p.saw_prize_ui_definition.icon,\n position: p.saw_prize_ui_definition.position,\n aknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n acknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n acknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n pool: p.pool,\n wins_count: p.wins_count,\n }\n return y;\n })\n };\n return x;\n });\n}\n\n","\n/*\n* Possible error codes for the mini-games attempts\n*/\nexport enum SAWSpinErrorCode {\n /** No error */\n SAW_OK = 0,\n /** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n SAW_NO_SPINS = 40001,\n /** The are no prizes left to play the game */\n SAW_PRIZE_POOL_EMPTY = 40002,\n /** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n SAW_NOT_ENOUGH_POINTS = 40003,\n /** User reached max number of game attempts defined in the BackOffice */\n SAW_FAILED_MAX_SPINS_REACHED = 40004,\n /** Special code for the 'visitor' mode */\n SAW_VISITOR_STOP_SPIN_REQUEST = -40001 \n}","export enum SAWWinSoundType {\n\n Disappointing = 1,\n Positive = 2,\n HighlyPositive = 3,\n NoSound = 4,\n Custom = 5,\n}\n\nexport const SAWWinSoundFiles = {\n [SAWWinSoundType.NoSound]: null,\n [SAWWinSoundType.Disappointing]: \"saw-disappointed.m4a\",\n [SAWWinSoundType.Positive]: \"saw-positive.m4a\",\n [SAWWinSoundType.HighlyPositive]: \"saw-highly-positive.m4a\",\n}","\nclass NodeCache {\n\n private static ttlChecker: NodeJS.Timeout;\n\n private static cache: { [key: string] : any } = {};\n\n constructor() {\n if (NodeCache.ttlChecker === undefined) {\n NodeCache.ttlChecker = setInterval(() => {\n const now = new Date().getTime();\n for (const key in NodeCache.cache) {\n if (NodeCache.cache.hasOwnProperty(key)) {\n const o = NodeCache.cache[key];\n if (o.ttl < now) {\n delete NodeCache.cache[key];\n }\n }\n }\n }, 1000);\n }\n }\n\n public get(key: string): any {\n const o = NodeCache.cache[key];\n if (o !== undefined && o.ttl > new Date().getTime()) {\n return o.value;\n }\n }\n\n public set(key: string, value: any, ttlSeconds: number = 60) {\n NodeCache.cache[key] = {\n value,\n ttl: new Date().getTime() + ttlSeconds * 1000\n }\n }\n\n public remove(key: string) {\n if (NodeCache.cache.hasOwnProperty(key)) { \n delete NodeCache.cache[key];\n\n }\n } \n\n public flushAll() {\n NodeCache.cache = {};\n }\n\n}\n\n\nexport { NodeCache }","import { NodeCache } from \"./NodeCache\";\n\nexport enum ECacheContext {\n Translations,\n LabelInfo,\n WSAPI,\n}\n\nconst WITH_REF_CACHE = [\n ECacheContext.Translations\n];\n\nexport class OCache {\n\n private static cache: { [key: string]: NodeCache } = {};\n\n private static init(cacheContext: ECacheContext) {\n if (this.cache[cacheContext] === undefined) {\n this.cache[cacheContext] = new NodeCache();\n }\n }\n\n public static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n return deepClone(this.cache[cacheContext].get(key));\n }\n\n public static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n this.cache[cacheContext].set(key, deepClone(o), ttlSeconds);\n }\n\n public static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n if (ttlSeconds <= 0) {\n return await f();\n } else {\n let o: T = OCache.get(oKey, cacheContext);\n\n if (o === undefined) {\n o = await f();\n OCache.set(oKey, o, cacheContext, ttlSeconds);\n }\n \n return o;\n }\n }\n\n public static async clear(cacheContext: ECacheContext, oKey: any) {\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].remove(key);\n }\n }\n\n public static async clearContext(cacheContext: ECacheContext) {\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].flushAll();\n }\n }\n\n public static async clearAll() {\n this.cache = {};\n } \n\n}\n\nconst deepClone = (o: any) => {\n if (o) {\n return JSON.parse(JSON.stringify(o));\n }\n\n return o;\n}\n","export enum ActivityTypeLimited {\n\n DoNothing = 8,\n Points = 12,\n GiveMission = 14,\n StartAnotherCampaign = 15,\n MiniGameAttempt = 16,\n DeductPoints = 21,\n ResetPoints = 22,\n Popup = 30,\n Inbox = 31,\n Slack = 70,\n Email_To_Customer_Support = 80,\n Email_To_Risk_Operator = 90,\n Bonus = 100,\n WebHook = 200,\n TagCustomer = 504,\n UnTagCustomer = 505,\n}","\nclass CoreUtils {\n\n public static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n if (avatarDomain && avatar_id !== null && avatar_id !== undefined && !(avatar_id.startsWith && avatar_id.startsWith('http'))) {\n if (avatarDomain.endsWith('/')) {\n return avatarDomain.slice(0, -1) + '/avatar/' + avatar_id\n } else {\n return avatarDomain + '/avatar/' + avatar_id\n }\n } else {\n return avatar_id\n }\n }\n\n public static currencySymbol(currency: string) {\n return {\n [currency?.toUpperCase()]: currency?.toUpperCase(),\n USD: \"$\", // United States Dollar\n EUR: \"\\u20AC\", // Euro\n JPY: \"\\u00A5\", // Japanese Yen\n GBP: \"\\u00A3\", // British Pound Sterling\n AUD: \"A$\", // Australian Dollar\n CAD: \"C$\", // Canadian Dollar\n CHF: \"CHF\", // Swiss Franc\n CNY: \"\\u00A5\", // Chinese Yuan\n SEK: \"kr\", // Swedish Krona\n NZD: \"NZ$\", // New Zealand Dollar\n MXN: \"MX$\", // Mexican Peso\n SGD: \"S$\", // Singapore Dollar\n HKD: \"HK$\", // Hong Kong Dollar\n NOK: \"kr\", // Norwegian Krone\n KRW: \"\\u20A9\", // South Korean Won\n TRY: \"\\u20BA\", // Turkish Lira\n INR: \"\\u20B9\", // Indian Rupee\n RUB: \"\\u20BD\", // Russian Ruble\n BRL: \"R$\", // Brazilian Real\n ZAR: \"R\", // South African Rand\n }[currency?.toUpperCase()];\n }\n}\n\nexport { CoreUtils }","\nexport enum PublicLabelSettings {\n PUBLIC_API_URL = \"PUBLIC_API_URL\",\n RECORDING_ENABLED_FOR_ALL_USERS = \"RECORDING_ENABLED_FOR_ALL_USERS\",\n JS_INJECTION = \"JS_INJECTION\",\n GAMIFICATION_UI_MAIN = \"GAMIFICATION_UI_MAIN\",\n GAMIFICATION_UI_WIDGET = \"GAMIFICATION_UI_WIDGET\",\n GAMIFICATION_UI_MINI_GAME = \"GAMIFICATION_UI_MINI_GAME\",\n GAMIFICATION_UI_SETTINGS = \"GAMIFICATION_UI_SETTINGS\",\n GAMIFICATION_UI_MAIN_TEST = \"GAMIFICATION_UI_MAIN_TEST\",\n GAMIFICATION_UI_WIDGET_TEST = \"GAMIFICATION_UI_WIDGET_TEST\",\n GAMIFICATION_UI_SETTINGS_TEST = \"GAMIFICATION_UI_SETTINGS_TEST\",\n FRONT_END_ALLOWED_LANGUAGES = \"FRONT_END_ALLOWED_LANGUAGES\",\n FRONT_END_ALLOW_DOMAINS = \"FRONT_END_ALLOW_DOMAINS\",\n DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = \"DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS\",\n SHADOW_LABEL_PUBLIC_KEY = \"SHADOW_LABEL_PUBLIC_KEY\",\n DYNAMIC_IMAGE_DOMAIN = \"DYNAMIC_IMAGE_DOMAIN\",\n \n GAMIFICATION_UI_LEVEL_ENABLED = \"GAMIFICATION_UI_LEVEL_ENABLED\",\n GAMIFICATION_UI_LEVEL_IMAGE_MOB = \"GAMIFICATION_UI_LEVEL_IMAGE_MOB\",\n GAMIFICATION_UI_LEVEL_IMAGE_DESK = \"GAMIFICATION_UI_LEVEL_IMAGE_DESK\",\n \n GAMIFICATION_LEVELS_LOGIC2 = \"GAMIFICATION_LEVELS_LOGIC2\",\n GAMIFICATION_LEVELS_LOGIC3 = \"GAMIFICATION_LEVELS_LOGIC2\",\n \n AVATAR_CUSTOM_IMAGE_MAX_ID = \"AVATAR_CUSTOM_IMAGE_MAX_ID\",\n AVATAR_CUSTOM_IMAGE_FOLDER = \"AVATAR_CUSTOM_IMAGE_FOLDER\",\n \n GAMIFICATION_SHOW_POWERED_BY = \"GAMIFICATION_SHOW_POWERED_BY\",\n _system_leader_board_mask_username = \"_system_leader_board_mask_username\",\n\n INBOX_PUBLIC_CDN = \"INBOX_PUBLIC_CDN\",\n}\n","enum TranslationArea {\n\n Casino = 1,\n Gamification = 2,\n Trading = 3,\n Archived = 4,\n Affiliation = 5,\n RetentionGames = 6,\n AffIliateAdminNew = 7\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { InboxMessage } from \"./InboxMessage\";\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\n log: InboxMessage[];\n}\n\nexport const InboxMessagesTransform = ((items: InboxMessage[]): TInboxMessage[] => {\n\n return items.map(item => {\n const x: TInboxMessage = {\n sent_date: item.createDate,\n message_guid: item.engagement_uid,\n read: item.is_read,\n favorite: item.is_starred,\n }\n return x;\n });\n})\n","import { TInboxMessageBody } from \"../WSAPI/WSAPITypes\";\nimport { InboxMessageType } from \"./InboxMessageType\";\n\nexport interface InboxMessageBody {\n action: string;\n body: string;\n type: InboxMessageType;\n image: string;\n title: string;\n html_body: string; \n additional_buttons?: { inbox_cta_text: string, action: string }[];\n}\n\nexport interface InboxMessage {\n\n createDate: string;\n body: InboxMessageBody;\n engagement_uid: string;\n is_read: boolean;\n is_starred: boolean;\n is_deleted?: boolean;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n \n const x: TInboxMessageBody = {\n action: item.action,\n icon: item.image,\n title: item.title,\n preview_body: item.body,\n }\n\n if (item.action === 'dp:inbox') {\n if (item.additional_buttons && item.additional_buttons.length) {\n x.buttons = item.additional_buttons.map(b => ({\n action: b.action,\n text: b.inbox_cta_text\n }))\n }\n\n x.html_body = item?.html_body || null;\n }\n\n return x;\n}\n","export enum InboxMessageType {\n Custom = 0,\n MissionCompleted = 1,\n MissionUnlocked = 2,\n LeaderboardWon = 3,\n LevelChanged = 4,\n BonusGiven = 5,\n PointsAdded = 6,\n PointsUsed = 7,\n PersonalMessage = 8\n}\n\n// keep in sync with BO enum\n","export enum BuyStoreItemErrorCode {\n FAILED_TO_BUY_SHOP_ITEM = 121,\n SHOP_NO_BALANCE = 11000,\n SHOP_WRONG_LABEL = 11001,\n SHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. Shoudnt happen\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n SHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n SHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n SHOP_FAILED_POOL_EMPTY = 11009,\n}","import { TStoreCategory } from \"../WSAPI/WSAPITypes\";\nimport { StoreCategoryPublicMeta } from \"./StoreCategoryPublicMeta\";\n\nexport interface StoreCategory {\n\n id?: number;\n publicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => { \n return items.map( r => {\n const x: TStoreCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","export enum StoreItemType {\n Bonus = 1,\n Tangible = 2,\n MiniGameSpin = 3,\n ChangeLevel = 4,\n PrizeDrop = 5,\n}\n\nexport enum StoreItemTypeName {\n Bonus = \"bonus\",\n Tangible = \"tangible\",\n MiniGameSpin = \"minigamespin\",\n ChangeLevel = \"changelevel\",\n PrizeDrop = \"prizedrop\",\n Unknown = \"unknown\"\n}\n\nexport const StoreItemTypeNamed = (type: StoreItemType): StoreItemTypeName => {\n return {\n [StoreItemType.Bonus]: StoreItemTypeName.Bonus,\n [StoreItemType.Tangible]: StoreItemTypeName.Bonus,\n [StoreItemType.MiniGameSpin]: StoreItemTypeName.MiniGameSpin,\n [StoreItemType.ChangeLevel]: StoreItemTypeName.ChangeLevel,\n [StoreItemType.PrizeDrop]: StoreItemTypeName.PrizeDrop,\n }[type] || StoreItemTypeName.Unknown;\n}\n\n","import { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItemPublicMeta } from \"./StoreItemPublicMeta\";\nimport { StoreItemType, StoreItemTypeNamed } from \"./StoreItemType\";\n\nexport interface StoreItem {\n id: number;\n itemTypeId: StoreItemType;\n itemPublicMeta: StoreItemPublicMeta;\n categoryIds?: number[];\n canBuy?: boolean;\n shopPool: number;\n}\n\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority ?? 0,\n related_item_ids: r.itemPublicMeta.related_items,\n hint_text: r.itemPublicMeta.hint_text,\n type: StoreItemTypeNamed(r.itemTypeId),\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n }\n return x;\n });\n\n}","import { IntUtils } from \"../IntUtils\";\nimport { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItem } from \"./StoreItem\";\nimport { StoreItemTypeNamed } from \"./StoreItemType\";\n\ninterface StoreItemPurchased extends StoreItem {\n purchase_ts: number;\n purchase_points_amount: number;\n purchased_today?: boolean;\n purchased_this_week?: boolean;\n purchased_this_month?: boolean;\n}\n\nexport const StoreItemPurchasedTransform = (items: StoreItemPurchased[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const purchasedToday = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'today') : false;\n const purchasedThisWeek = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisWeek') : false;\n const purchasedThisMonth = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisMonth') : false;\n\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority ?? 0,\n related_item_ids: r.itemPublicMeta.related_items,\n hint_text: r.itemPublicMeta.hint_text,\n type: StoreItemTypeNamed(r.itemTypeId),\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n purchase_ts: r.purchase_ts,\n purchase_points_amount: r.purchase_points_amount,\n purchased_today: purchasedToday,\n purchased_this_week: purchasedThisWeek,\n purchased_this_month: purchasedThisMonth,\n }\n\n return x;\n });\n\n}\n\nexport { StoreItemPurchased }","export enum AchievementStatus {\n\n Draft = 1,\n AvailableUnlocked = 2,\n AvailableLocked = 3,\n Archived = 4,\n FeaturedManually = 5,\n FeaturedAI = 6,\n Recurring = 7\n}\n","export enum AchievementTaskType {\n CompleteAchievement = 1,\n UnlockAchievement = 2\n}\n","export enum AchievementType {\n\n Mission = 1,\n Badge = 2\n}\n","\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\nimport { IntUtils } from \"../IntUtils\";\nimport { TMissionOrBadge } from \"../WSAPI/WSAPITypes\";\nimport { AchievementPublicMeta } from \"./AchievementPublicMeta\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { AchievementTaskType } from \"./AchievementTaskType\";\nimport { AchievementType } from \"./AchievementType\";\nimport { ScheduledMissionType } from \"./ScheduledMissionType\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport interface UserAchievement {\n\n ach_id?: number;\n ach_type_id?: AchievementType;\n ach_public_meta?: AchievementPublicMeta;\n isCompleted?: boolean;\n isLocked?: boolean;\n requiresOptin?: boolean;\n isOptedIn?: boolean;\n start_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n start_date_ts?: number; \n time_limit_ms?: number;\n progress?: number;\n complete_date?: string;\n complete_date_ts?: number;\n unlock_date?: string;\n milliseconds_till_available?: number;\n completed_tasks?: number;\n achievementTasks?: UserAchievementTask[];\n ach_status_id?: AchievementStatus;\n scheduledMissionType?: ScheduledMissionType;\n related_games?: AchRelatedGame[];\n active_from_ts?: number; // indicates when 'scheduled' mission is active from,\n ach_categories?: number[];\n\n ach_completed_id?: number; // ID of the completion fact from ach_completed or ach_completed_recurring tables\n requires_prize_claim?: boolean; // flag from achievement if the mission prize will be given only after user claims it\n prize_claimed_date_ts?: number; // the date/timestamp indicating when the prize was claimed by the user\n\n completed_today?: boolean;\n completed_this_week?: boolean;\n completed_this_month?: boolean;\n custom_section_type_id?: number;\n}\n\n\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n \n return items.filter( r => r.ach_id >= 1).map( r => {\n const completedToday = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'today') : false;\n const completedThisWeek = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisWeek') : false;\n const completedThisMonth = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisMonth') : false;\n\n const x: TMissionOrBadge = {\n id: r.ach_id,\n name: r.ach_public_meta.name,\n description: r.ach_public_meta.description,\n hint_text: r.ach_public_meta.hint_text,\n unlock_mission_description: r.ach_public_meta.unlock_mission_description,\n image: r.ach_public_meta.image_url,\n is_completed: r.isCompleted,\n is_locked: r.isLocked,\n is_requires_optin: r.requiresOptin,\n is_opted_in: r.isOptedIn,\n time_limit_ms: r.time_limit_ms,\n dt_start: r.start_date_ts,\n reward: r.ach_public_meta.reward,\n progress: r.progress,\n type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n cta_action: r.ach_public_meta.cta_action,\n cta_text: r.ach_public_meta.cta_text,\n custom_section_id: r.ach_public_meta.custom_section_id,\n only_in_custom_section: r.ach_public_meta.only_in_custom_section,\n custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n position: r.ach_public_meta.position,\n ribbon: r.ach_public_meta.label_tag === 'custom' ? r.ach_public_meta.custom_label_tag : r.ach_public_meta.label_tag,\n tasks: (r.achievementTasks || [])\n .filter( t => t.task_type_id === AchievementTaskType.CompleteAchievement)\n .map( t => ({\n id: t.task_id,\n name: t.task_public_meta?.name,\n points_reward: t.points_reward,\n is_completed: t.isCompleted,\n progress: t.userProgress,\n execution_count_expected: t.executionCount,\n execution_count_actual: t.userExecutedCount,\n display_progress_as_count: t.task_public_meta.display_progress_as_count,\n })),\n related_games: (r.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n category_ids: r.ach_categories ?? [],\n ach_completed_id: r.ach_completed_id,\n requires_prize_claim: r.requires_prize_claim,\n prize_claimed_date_ts: r.prize_claimed_date_ts,\n complete_date: r.complete_date,\n complete_date_ts: r.complete_date_ts,\n completed_today: completedToday,\n completed_this_week: completedThisWeek,\n completed_this_month: completedThisMonth,\n custom_section_type_id: r.ach_public_meta.custom_section_type_id,\n }\n return x;\n});\n} \n\n","export enum ScheduledMissionType {\n\n Future = 1,\n Past = 2,\n Present = 3,\n}","import { TAchCategory } from \"../WSAPI/WSAPITypes\";\nimport { AchCategoryPublicMeta } from \"./AchCategoryPublicMeta\";\n\nexport interface AchCategory {\n\n id?: number;\n publicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => { \n return items.map( r => {\n const x: TAchCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","/** @hidden */\nexport enum TournamentRegistrationType {\n\n AUTO = 1,\n OPT_IN = 2,\n BUY_IN_POINTS = 3,\n MANUAL_APPROVAL = 4,\n REQUIRES_QUALIFICATION = 5\n // BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName = 'AUTO' | 'OPT_IN' | 'BUY_IN_POINTS' | 'MANUAL_APPROVAL' | 'REQUIRES_QUALIFICATION' | 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n return ({\n [TournamentRegistrationType.AUTO]: 'AUTO',\n [TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n [TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n [TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n [TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n }[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n}","/** @hidden */\nexport enum TournamentRegistrationStatus {\n\n NOT_REGISTERED = 0,\n REGISTERED = 1,\n FINISHED = 2,\n PENDING = 3,\n CANCELLED = 4,\n REGISTERED_PENDING_QUALIFICATION = 5,\n QUALIFIED_PENDING_REGISTRATION = 6\n}\n\nexport enum TournamentRegistrationStatusName {\n NOT_REGISTERED = 'NOT_REGISTERED',\n REGISTERED = 'REGISTERED',\n FINISHED = 'FINISHED',\n PENDING = 'PENDING',\n CANCELLED = 'CANCELLED',\n REGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n QUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n UNKNOWN = \"UNKNOWN\"\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n return ({\n [TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n [TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n [TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n [TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n [TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]: TournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n [TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n [TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]: TournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION\n }[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n} \n\n","import {TournamentRegistrationType, TournamentRegistrationTypeGetName} from \"./TournamentRegistrationType\";\nimport {TournamentInstanceStatus} from \"./TournamentInstanceStatus\";\nimport { TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed } from \"./TournamentRegistrationStatus\";\nimport { TournamentType } from \"./TournamentType\";\nimport { TournamentPublicMeta } from \"./TournamentPublicMeta\";\nimport { TTournament } from \"../WSAPI/WSAPITypes\";\nimport { TournamentPlayer, TournamentPrize, TournamentUtils } from \".\";\nimport { IntUtils } from \"../IntUtils\";\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\n\nexport interface Tournament {\n\n /** ID of tournament template */\n tournamentId?: number;\n /** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n tournamentInstanceId?: number;\n /** Type of the tournament. For now only SCHEDULED is support */\n tournamentType?: TournamentType;\n /** Meta information about tournament that should be used to build UI */\n publicMeta?: TournamentPublicMeta;\n /** Cost of registration in the tournament in gamification points */\n buyInAmount?: number;\n /** Not in use */\n prizePool?: number;\n /** The time when tournament is going to start */\n startTime?: string;\n /** The time when tournament is going to finish */\n endTime?: string;\n /** The time when tournament is going to start, epoch */\n startTimeTs?: number;\n /** The time when tournament is going to finish, epoch */\n endTimeTs?: number; \n /** Number of users registered in the tournament */\n registrationCount?: number;\n /** Not in use */\n totalCount?: number;\n /** Type of registration in the tournament */\n registrationType?: TournamentRegistrationType;\n /** Status of registration in the tournament for current user */\n tournamentRegistrationStatus?: TournamentRegistrationStatus;\n /** Status of tournament instance */\n tournamentInstanceStatus?: TournamentInstanceStatus;\n /** flag indicating if current user is registered in the tournament */\n isUserRegistered?: boolean;\n /** Indicator if tournament allows later registration, when tournament is already started */\n allowLateRegistration?: boolean;\n /** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n playersMinCount?: number;\n /** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n playersMaxCount?: number;\n /** Tournament duration in millisecnnds */\n durationMs?: number;\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n /** Information about current user */\n tournamentPlayer?: TournamentPlayer\n\n /** List of casino games (or other types of entities) related to the tournament */\n related_games?: AchRelatedGame[];\n}\n\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => { \n\n return items.filter(r => r.tournamentId >= 1).map(r => {\n const x: TTournament = {\n instance_id: r.tournamentInstanceId,\n tournament_id: r.tournamentId,\n name: r.publicMeta.name,\n description: r.publicMeta.description,\n segment_dont_match_message: r.publicMeta.segment_dont_match_message,\n image1: r.publicMeta.image_url,\n image2: r.publicMeta.image_url2,\n image2_mobile: r.publicMeta.image_url2_mobile,\n prize_pool_short: r.publicMeta.prize_pool_short,\n custom_price_text: r.publicMeta.custom_price_text,\n custom_section_id: r.publicMeta.custom_section_id,\n custom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n is_featured: r.publicMeta.featured,\n ribbon: r.publicMeta.label_tag === 'custom' ? r.publicMeta.custom_label_tag : r.publicMeta.label_tag,\n priority: r.publicMeta.position,\n \n\n start_time: r.startTimeTs,\n end_time: r.endTimeTs,\n registration_count: r.registrationCount,\n is_user_registered: r.isUserRegistered,\n players_min_count: r.playersMinCount,\n players_max_count: r.playersMaxCount,\n registration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n registration_type: TournamentRegistrationTypeGetName(r.registrationType),\n registration_cost_points: r.buyInAmount,\n duration_ms: r.durationMs,\n\n is_active: TournamentUtils.isActive(r),\n is_can_register: TournamentUtils.isCanRegister(r),\n is_cancelled: TournamentUtils.isCancelled(r),\n is_finished: TournamentUtils.isFinished(r),\n is_in_progress: TournamentUtils.isInProgress(r),\n is_upcoming: TournamentUtils.isUpcoming(r),\n\n }\n\n if (r.prizeStructure) {\n x.prizes = r.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (r.tournamentPlayer) {\n x.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true)\n }\n\n return x;\n });\n\n\n}\n\n","export enum TournamentInstanceStatus {\n\n PUBLISHED = 1,\n REGISTER = 2,\n STARTED = 3,\n FINISHED = 4,\n CANCELLED = 5,\n FAILED = 6,\n FINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n return {\n [TournamentInstanceStatus.PUBLISHED]: \"PUBLISHED\",\n [TournamentInstanceStatus.REGISTER]: \"REGISTER\",\n [TournamentInstanceStatus.STARTED]: \"STARTED\",\n [TournamentInstanceStatus.FINISHED]: \"FINISHED\",\n [TournamentInstanceStatus.CANCELLED]: \"CANCELLED\",\n [TournamentInstanceStatus.FAILED]: \"FAILED\",\n [TournamentInstanceStatus.FINALIZING]: \"FINALIZING\",\n }[s];\n};","import { ActivityTypeLimited } from \"../Core\";\nimport { Tournament } from \"./Tournament\";\nimport { TournamentInstanceStatus } from \"./TournamentInstanceStatus\";\nimport { TournamentPlayer } from \"./TournamentPlayer\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TournamentRegistrationStatus } from \"./TournamentRegistrationStatus\";\nimport { TournamentRegistrationType } from \"./TournamentRegistrationType\";\n\nconst tournamentPrizeTypeToPrizeName = (type: ActivityTypeLimited) => {\n return {\n [ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n [ActivityTypeLimited.Points]: 'POINTS_ADD',\n [ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n [ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n [ActivityTypeLimited.MiniGameAttempt]: \"MINI_GAME_ATTEMPT\",\n [ActivityTypeLimited.Bonus]: 'BONUS',\n }[type]\n}\n\nexport class TournamentUtils {\n\n public static isCanRegister = (tournament: Tournament): boolean => {\n if (tournament) {\n if (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n return true;\n }\n return !tournament.isUserRegistered &&\n (tournament.playersMaxCount !== tournament.registrationCount || tournament.playersMaxCount === null || tournament.playersMaxCount === 0) &&\n tournament.registrationType !== TournamentRegistrationType.AUTO &&\n (\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n (tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration)\n );\n }\n return false;\n }\n\n\n public static isInProgress = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n }\n return false;\n }\n\n public static isActive = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n }\n return false;\n }\n\n public static isFinished = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING;\n }\n return false;\n }\n\n public static isCancelled = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n }\n return false;\n }\n\n public static isUpcoming = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED || tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER;\n }\n return false;\n }\n\n public static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n if (player) {\n const playerTransformed = {\n public_username: player.userAltName,\n avatar_url: player.avatar_url,\n position: player.position,\n scores: player.scores,\n is_me: player.isMe,\n }\n \n if (isMe) {\n delete playerTransformed.is_me;\n }\n\n return playerTransformed;\n }\n\n return null;\n }\n\n public static getPrizeTransformed = (prize: TournamentPrize) => {\n if (prize) {\n return ({...prize, type: tournamentPrizeTypeToPrizeName(prize.type)})\n }\n\n return null;\n }\n\n}\n","import {Tournament, TournamentItemsTransform} from \"./Tournament\";\nimport {TournamentPlayer} from \"./TournamentPlayer\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TTournamentDetailed } from \"../WSAPI/WSAPITypes\";\nimport { TournamentUtils } from \"./TournamentUtils\";\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\n /** tournament info */\n tournamentInfo: {\n /** id of label, not in use */\n labelId: number;\n tournamentLobbyInfo: Tournament;\n /** list of registered users */\n players: TournamentPlayer[];\n },\n /** information about current user position */\n userPosition: TournamentPlayer,\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n const response: TTournamentDetailed = {\n ...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n related_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n players: t.tournamentInfo.players.map( p => TournamentUtils.getPlayerTransformed(p)),\n };\n\n if (t.prizeStructure) {\n response.prizes = t.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (t.userPosition) {\n response.me = TournamentUtils.getPlayerTransformed(t.userPosition, true)\n }\n\n return response;\n}\n\n\n","export enum TournamentRegistrationError {\n NO_ERROR = 0,\n TOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n TOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n TOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n TOURNAMENT_ALREADY_REGISTERED = 30004,\n TOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n TOURNAMENT_USER_NOT_REGISTERED = 30006,\n TOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n TOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\n SCHEDULED = 1,\n SNG = 2,\n TEST = 3,\n}\n","export enum LeaderBoardPeriodType {\n DAILY = 1,\n WEEKLY = 2,\n MONTHLY = 3\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TLevel } from \"../WSAPI/WSAPITypes\";\nimport { Level } from \"./Level\";\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\n levels: Level[];\n}\n\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n \n return levels?.levels.map((l => ({\n id: l.level_id,\n name: l.level_public_meta.name,\n description: l.level_public_meta.description,\n image: l.level_public_meta.image_url,\n required_points: l.required_points,\n visibility_points: l.level_public_meta.visibility_points ? parseInt(l.level_public_meta.visibility_points as any) : null,\n required_level_counter_1: l.required_level_counter_1,\n required_level_counter_2: l.required_level_counter_2,\n custom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n })));\n}","import { ClassId } from \"../Base/ClassId\";\nimport { CoreUtils } from \"../Core\";\nimport { MiniGamePrizeTypeName, SAWDoSpinResponse, SAWSpinErrorCode, SAWSpinsCountPush } from \"../MiniGames\";\nimport { ECacheContext, OCache } from \"../OCache\";\nimport { SmarticoAPI } from \"../SmarticoAPI\";\nimport { InboxMarkMessageAction, LeaderBoardDetailsT, TAchCategory, TBuyStoreItemResult, TGetTranslations, TInboxMessage, TInboxMessageBody, TLevel, TMiniGamePlayResult, TMiniGameTemplate, TMissionClaimRewardResult, TMissionOptInResult, TMissionOrBadge, TSegmentCheckResult, TStoreCategory, TStoreItem, TTournament, TTournamentDetailed, TTournamentRegistrationResult, TUICustomSection, TUserProfile, UserLevelExtraCountersT } from \"./WSAPITypes\";\nimport { LeaderBoardPeriodType } from \"../Leaderboard\";\nimport { JackpotDetails, JackpotPot, JackpotWinPush, JackpotsOptinResponse, JackpotsOptoutRequest, JackpotsOptoutResponse } from \"../Jackpots\";\n \n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n\nconst JACKPOT_TEMPLATE_CACHE_SEC = 30;\nconst JACKPOT_POT_CACHE_SEC = 1;\n\n /** @hidden */\nenum onUpdateContextKey {\n Saw = 'saw',\n Missions = 'missions',\n TournamentList = 'tournamentList',\n InboxMessages = 'inboxMessages',\n Badges = 'badges',\n Levels = 'levels',\n StoreItems = 'storeItems',\n StoreCategories = 'storeCategories',\n AchCategories = 'achCategories',\n LeaderBoards = 'leaderBoards',\n LevelExtraCounters = 'levelExtraCounters',\n Segments = 'segments',\n StoreHistory = 'storeHistory',\n Jackpots = 'jackpots',\n Pots = 'Pots',\n CustomSections = 'customSections'\n}\n\n\n/** @group General API */\nexport class WSAPI {\n\n private onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n private jackpotGetSignature: string = '';\n\n /** @private */\n constructor(private api: SmarticoAPI) {\n\n OCache.clearAll();\n if (this.api.tracker) {\n const on = this.api.tracker.on;\n on(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n on(ClassId.SAW_SHOW_SPIN_PUSH, () => this.updateOnAddSpin());\n on(ClassId.SAW_DO_SPIN_RESPONSE, (data: SAWDoSpinResponse) => on(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => this.updateOnPrizeWin(data)));\n on(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissionsOnOptIn());\n on(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournamentsOnRegistration());\n on(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n on(ClassId.LOGOUT_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n on(ClassId.IDENTIFY_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n on(ClassId.JP_WIN_PUSH, (data: JackpotWinPush) => this.jackpotClearCache());\n on(ClassId.JP_OPTOUT_RESPONSE, (data: JackpotsOptoutRequest) => this.jackpotClearCache());\n on(ClassId.JP_OPTIN_RESPONSE, (data: JackpotsOptinResponse) => this.jackpotClearCache());\n }\n }\n\n /** Returns information about current user\n * \n * **Example**:\n * ```\n * _smartico.api.getUserProfile().then((result) => {\n * console.log(result);\n * });\n * ```\n * **Visitor mode: not supported**\n * */\n public getUserProfile(): TUserProfile {\n if (this.api.tracker) {\n const o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n return o;\n } else {\n throw new Error('Tracker is not initialized, cannot getUserProfile');\n }\n }\n\n /** Check if user belongs to specific segments\n * **Example**:\n * ```\n * _smartico.api.checkSegmentMatch(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async checkSegmentMatch(segment_id: number): Promise<boolean> {\n const r = await this.api.coreCheckSegments(null, [segment_id]);\n if (r && r.find(s => s.segment_id === segment_id && s.is_matching)) {\n return true;\n } else {\n return false;\n }\n }\n\n /** Check if user belongs to specific list of segments\n * **Example**:\n * ```\n * _smartico.api.checkSegmentListMatch([1, 2, 3]).then((result) => {\n * console.log(result);\n * });\n * ```\n * **Visitor mode: not supported**\n */\n public async checkSegmentListMatch(segment_ids: number[]): Promise<TSegmentCheckResult[]> {\n return await this.api.coreCheckSegments(null, Array.isArray(segment_ids) ? segment_ids : [segment_ids]);\n } \n\n /** Returns all the levels available the current user\n * **Example**:\n * ```\n * _smartico.api.getLevels().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getLevels().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getLevels(): Promise<TLevel[]> {\n return OCache.use(onUpdateContextKey.Levels, ECacheContext.WSAPI, () => this.api.levelsGetT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the missions available the current user.\n * The returned missions are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n * Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it.\n * \n * **Example**:\n * ```\n * _smartico.api.getMissions().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getMissions().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Missions, ECacheContext.WSAPI, () => this.api.missionsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns all the badges available the current user\n * \n * **Visitor mode: not supported**\n */\n public async getBadges(): Promise<TMissionOrBadge[]> {\n return OCache.use(onUpdateContextKey.Badges, ECacheContext.WSAPI, () => this.api.badgetsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Returns the extra counters for the current user level.\n * These are counters that are configured for each Smartico client separatly by request.\n * For example 1st counter could be total wagering amount, 2nd counter could be total deposit amount, etc.\n * \n * **Example**:\n * ```\n * _smartico.api.getUserLevelExtraCounters().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async getUserLevelExtraCounters(): Promise<UserLevelExtraCountersT> {\n return OCache.use(onUpdateContextKey.LevelExtraCounters, ECacheContext.WSAPI, () => this.api.getUserGamificationInfoT(null), CACHE_DATA_SEC);\n }\n\n /** \n * \n * Returns all the store items available the current user\n * \n * **Example**:\n * ```\n * _smartico.api.getStoreItems().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getStoreItems().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n\n public async getStoreItems(): Promise<TStoreItem[]> {\n return OCache.use(onUpdateContextKey.StoreItems, ECacheContext.WSAPI, () => this.api.storeGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Buy the specific shop item by item_id. Returns the err_code in case of success or error.\n * **Example**:\n * ```\n * _smartico.api.buyStoreItem(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n const r = await this.api.buyStoreItem(null, item_id);\n\n const o: TBuyStoreItemResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * \n * Returns store categories\n * \n * **Example**:\n * ```\n * _smartico.api.getStoreCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getStoreCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getStoreCategories(): Promise<TStoreCategory[]> {\n return OCache.use(onUpdateContextKey.StoreCategories, ECacheContext.WSAPI, () => this.api.storeGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns purchased items based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched. \n * The maximum number of items per request is limited to 20. \n * You can leave this params empty and by default it will return list of purchased items ranging from 0 to 20.\n * \n * **Example**:\n * ```\n * _smartico.api.getStorePurchasedItems().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n\n public async getStorePurchasedItems({ limit, offset, onUpdate } : { limit?: number, offset?: number, onUpdate?: (data: TStoreItem[]) => void} = {}): Promise<TStoreItem[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.StoreHistory, onUpdate);\n }\n return OCache.use(onUpdateContextKey.StoreHistory, ECacheContext.WSAPI, () => this.api.storeGetPurchasedItemsT(null, limit, offset), CACHE_DATA_SEC);\n }\n\n /**\n * Returns missions & badges categories\n * \n * **Example**:\n * ```\n * _smartico.api.getAchCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getAchCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * */\n public async getAchCategories(): Promise<TAchCategory[]> {\n return OCache.use(onUpdateContextKey.AchCategories, ECacheContext.WSAPI, () => this.api.achGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns list of custom sections\n * \n * **Example**:\n * ```\n * _smartico.api.getCustomSections().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getCustomSections().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * */\n public async getCustomSections(): Promise<TUICustomSection[]> {\n return OCache.use(onUpdateContextKey.CustomSections, ECacheContext.WSAPI, () => this.api.getCustomSectionsT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Returns the list of mini-games available for user \n * The returned list of mini-games is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMiniGames with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on available spin count change, if mini-game has increasing jackpot per spin or wined prize is spin/jackpot and if max count of the available user spin equal one, also if the spins were issued to the user manually in the BO. Updated templates will be passed to onUpdate callback.\n * \n * **Example**:\n * ```\n * _smartico.api.getMiniGames().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getMiniGames().then((result) => {\n * console.log(result);\n * });\n * ```\n *\n */\n public async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<TMiniGameTemplate[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code\n * \n * **Visitor mode: not supported** \n */\n public async playMiniGame(template_id: number): Promise<TMiniGamePlayResult> {\n const r = await this.api.sawSpinRequest(null, template_id);\n this.api.doAcknowledgeRequest(null, r.request_id)\n\n const o: TMiniGamePlayResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n prize_id: r.saw_prize_id,\n }\n\n return o;\n }\n\n /** \n * Requests an opt-in for the specified mission_id. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult>{\n const r = await this.api.missionOptIn(null, mission_id);\n\n const o: TMissionOptInResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * Request for claim reward for the specified mission id. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async requestMissionClaimReward(mission_id: number, ach_completed_id: number): Promise<TMissionClaimRewardResult> {\n const r = await this.api.missionClaimPrize(null, mission_id, ach_completed_id);\n\n const o: TMissionClaimRewardResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns all the active instances of tournaments \n * The returned list is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getTournamentsList with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.\n * \n * **Example**:\n * ```\n * _smartico.api.getTournamentsList().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getTournamentsList().then((result) => {\n * console.log(result);\n * });\n * ```\n * */\n public async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.TournamentList, ECacheContext.WSAPI, () => this.api.tournamentsGetLobbyT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players\n * \n * **Example**:\n * ```\n * _smartico.api.getTournamentsList().then((result) => {\n * if (result.length > 0) {\n * _smartico.api.getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n * console.log(result);\n * });\n * }\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getTournamentsList().then((result) => {\n * if (result.length > 0) {\n * _smartico.vapi('EN').getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n * console.log(result);\n * });\n * }\n * });\n * ```\n */\n public async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n return this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n }\n\n /** \n * Requests registration for the specified tournament instance. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult>{\n const r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n const o: TTournamentRegistrationResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * Returns the leaderboard for the current type (default is Daily). If getPreviousPeriod is passed as true, a leaderboard for the previous period for the current type will be returned.\n * For example, if the type is Weekly and getPreviousPeriod is true, a leaderboard for the previous week will be returned.\n * \n * **Example**:\n * ```\n * _smartico.api.getLeaderBoard(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getLeaderBoard(1).then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getLeaderBoard(periodType: LeaderBoardPeriodType, getPreviousPeriod?: boolean): Promise<LeaderBoardDetailsT> {\n return OCache.use(onUpdateContextKey.LeaderBoards, ECacheContext.WSAPI, () => this.api.leaderboardsGetT(null, periodType, getPreviousPeriod), CACHE_DATA_SEC);\n }\n\n /** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched. \n * The maximum number of messages per request is limited to 20. An indicator \"onlyFavorite\" can be passed to get only messages marked as favorites. \n * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n * This functions return list of messages without the body of the message. \n * To get the body of the message you need to call getInboxMessageBody function and pass the message guid contained in each message of this request.\n * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n * The \"onUpdate\" callback will be triggered when the user receives a new message. It will provide an updated list of messages, ranging from 0 to 20, to the onUpdate callback function.\n *\n * **Visitor mode: not supported** \n * \n * @param params\n */\n public async getInboxMessages({ from, to, onlyFavorite, onUpdate }: { from?: number, to?: number, onlyFavorite?: boolean, onUpdate?: (data: TInboxMessage[]) => void } = {}): Promise<TInboxMessage[]> { \n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n }\n\n return await this.api.getInboxMessagesT(null, from, to, onlyFavorite);\n }\n\n /** \n * Returns the message body of the specified message guid.\n *\n * **Visitor mode: not supported** \n */\n public async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n return await this.api.getInboxMessageBodyT(messageGuid);\n }\n\n /** \n * Requests to mark inbox message with specified guid as read\n *\n * **Visitor mode: not supported** \n */\n public async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.markInboxMessageRead(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to mark all inbox messages as rea\n *\n * **Visitor mode: not supported** \n */ \n public async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n const r = await this.api.markAllInboxMessageRead(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove.\n *\n * **Visitor mode: not supported** \n */\n public async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n const r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to delete inbox message\n *\n * **Visitor mode: not supported** \n */\n \n public async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteInboxMessage(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to delete all inbox messages\n *\n * **Visitor mode: not supported** \n */\n\n public async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteAllInboxMessages(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests translations for the given language. Returns the object including translation key/translation value pairs. All possible translation keys defined in the back office.\n */\n public async getTranslations(lang_code: string): Promise<TGetTranslations> {\n const r = await this.api.getTranslationsT(null, lang_code, []);\n\n return {\n translations: r.translations\n }\n }\n\n private async updateOnSpin(data: SAWSpinsCountPush) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const index = templates.findIndex(t => t.id === data.saw_template_id);\n templates[index].spin_count = data.spin_count;\n this.updateEntity(onUpdateContextKey.Saw, templates)\n }\n\n private async updateOnAddSpin() {\n const payload = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, payload)\n }\n\n private async updateOnPrizeWin(data: SAWDoSpinResponse) {\n if (data.errCode === SAWSpinErrorCode.SAW_OK) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const template: TMiniGameTemplate = templates.find(t => t.prizes.find(p => p.id === data.saw_prize_id));\n const prizeType = template.prizes.find(p => p.id === data.saw_prize_id)?.prize_type;\n\n if (\n template.jackpot_add_on_attempt ||\n template.spin_count === 1 ||\n prizeType === MiniGamePrizeTypeName.JACKPOT ||\n prizeType === MiniGamePrizeTypeName.SPIN\n ) {\n const updatedTemplates = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, updatedTemplates)\n }\n }\n }\n\n private async updateMissionsOnOptIn() {\n const payload = await this.api.missionsGetItemsT(null);\n this.updateEntity(onUpdateContextKey.Missions, payload)\n }\n\n private async updateTournamentsOnRegistration() {\n const payload = await this.api.tournamentsGetLobbyT(null);\n this.updateEntity(onUpdateContextKey.TournamentList, payload)\n }\n\n private async updateInboxMessages() {\n const payload = await this.api.getInboxMessagesT(null);\n this.updateEntity(onUpdateContextKey.InboxMessages, payload)\n }\n\n private async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n OCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n const onUpdate = this.onUpdateCallback.get(contextKey);\n if (onUpdate) {\n onUpdate(payload);\n }\n }\n\n private async jackpotClearCache() {\n OCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Jackpots);\n OCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Pots); \n }\n\n /** Returns list of Jackpots that are active in the systen and matching to the filter definition.\n * If filter is not provided, all active jackpots will be returned.\n * Filter can be used to get jackpots related to specific game or specific jackpot template.\n * You can call this method every second in order to get up to date information about current value of the jackpot(s) and present them to the end-users\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async jackpotGet(filter?: { related_game_id?: string, jp_template_id?: number }): Promise<JackpotDetails[]> {\n\n const signature: string = `${filter?.jp_template_id}:${filter?.related_game_id}`;\n\n if (signature !== this.jackpotGetSignature) {\n this.jackpotGetSignature = signature;\n this.jackpotClearCache();\n }\n\n let jackpots: JackpotDetails[] = [];\n let pots: JackpotPot[] = [];\n\n jackpots = await OCache.use<JackpotDetails[]>(onUpdateContextKey.Jackpots, ECacheContext.WSAPI, async () => {\n \n const _jackpots = await this.api.jackpotGet(null, filter);\n const _pots = _jackpots.items.map( jp => jp.pot);\n\n OCache.set(onUpdateContextKey.Pots, _pots, ECacheContext.WSAPI, JACKPOT_POT_CACHE_SEC);\n return _jackpots.items;\n\n }, JACKPOT_TEMPLATE_CACHE_SEC);\n\n\n if (jackpots.length > 0) {\n pots = await OCache.use<JackpotPot[]>(onUpdateContextKey.Pots, ECacheContext.WSAPI, async () => {\n \n const jp_template_ids = jackpots.map(jp => jp.jp_template_id);\n return (await this.api.potGet(null, { jp_template_ids })).items;\n\n }, JACKPOT_POT_CACHE_SEC);\n }\n\n return jackpots.map( jp => {\n let _jp: JackpotDetails = {\n ...jp,\n pot: pots.find( p => p.jp_template_id === jp.jp_template_id),\n };\n return _jp;\n });\n\n }\n\n /** \n * Opt-in currently logged in user to the jackpot with the specified jp_template_id.\n * You may call jackpotGet method after doing optin to see that user is opted in to the jackpot.\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotOptIn({ jp_template_id: 123 }).then((result) => {\n * console.log('Opted in to the jackpot');\n * });\n * ```\n *\n * **Visitor mode: not supported** \n *\n */ \n public async jackpotOptIn(filter: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n \n if (!filter.jp_template_id) {\n throw new Error('jp_template_id is required in jackpotOptIn');\n };\n\n const result = await this.api.jackpotOptIn(null, filter);\n\n return result;\n }\n\n /** \n * Opt-out currently logged in user from the jackpot with the specified jp_template_id.\n * You may call jackpotGet method after doing optout to see that user is not opted in to the jackpot.\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotOptOut({ jp_template_id: 123 }).then((result) => {\n * console.log('Opted out from the jackpot');\n * });\n * ```\n *\n * **Visitor mode: not supported** \n *\n */ \n public async jackpotOptOut(filter: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n \n if (!filter.jp_template_id) {\n throw new Error('jp_template_id is required in jackpotOptOut');\n };\n\n const result = await this.api.jackpotOptOut(null, filter);\n\n return result;\n }\n}\n","import { LeaderBoardDetailsT, LeaderBoardUserT, LeaderBoardsRewardsT } from \"../WSAPI/WSAPITypes\";\nimport { LeaderBoardDetails } from \"./LeaderBoardDetails\";\nimport { LeaderBoardPeriodType } from \"./LeaderBoardPeriodType\";\nimport { LeaderBoardPosition } from \"./LeaderBoardPosition\";\n\nconst pointsRewardTransform = (reward_points: number[]): LeaderBoardsRewardsT[] => {\n if (reward_points && reward_points.length) {\n return reward_points.map((r, i) => ({ place: i + 1, points: r }));\n }\n\n return null;\n}\n\nconst getLeaderBoardPlayerTransformed = (user: LeaderBoardPosition, isMe?: boolean): LeaderBoardUserT => {\n if (user) {\n const x: LeaderBoardUserT= {\n public_username: user?.public_username || user.user_alt_name,\n avatar_url: user.avatar_url,\n position: user.position_in_board,\n points: user.points_accumulated,\n is_me: user.is_me,\n }\n \n if (isMe) {\n delete x.is_me;\n }\n\n return x;\n }\n\n return null;\n}\n\nexport const getLeaderBoardTransform = (board: LeaderBoardDetails): LeaderBoardDetailsT => {\n if (board) {\n const x: LeaderBoardDetailsT = {\n board_id: board.board_id,\n name: board.board_public_meta.name,\n description: board.board_public_meta.description,\n rules: board.board_public_meta.rules,\n period_type_id: board.period_type_id,\n rewards: pointsRewardTransform(board.reward_points),\n users: board.positions.map(p => getLeaderBoardPlayerTransformed(p)),\n me: getLeaderBoardPlayerTransformed(board.userPosition, true),\n }\n\n return x;\n }\n\n return null;\n}","export enum AchCustomSectionType {\n HTML_PAGE = 1,\n MISSIONS_CATEGORY = 2,\n TOURNAMENTS_CATEGORY = 3,\n LEVELS = 4,\n MINI_GAMES = 5,\n MISSION_CUSTOM_LAYOUT = 6,\n MATCH_X = 7,\n}\n\nexport enum AchCustomLayoutTheme {\n VALENTINES_LIGHT = 'valentines-light',\n VALENTINES_DARK = 'valentines-dark',\n EURO_2024 = 'euro-2024',\n GENERIC = 'generic',\n}\n\nexport enum AchMissionsTabsOptions {\n ONLY_OVERVIEW = 1,\n NO_OVERVIEW = 2,\n ALL = 3,\n}\n\nexport enum AchOverviewMissionsFilter {\n ANY = 1,\n ALL_MISSIONS = 2,\n ALL_EXCEPT_COMPLETED = 3,\n ALL_EXCEPT_LOCKED = 4,\n ALL_EXCEPT_COMPLETED_AND_LOCKED = 5,\n}","import { TUICustomSection } from \"../WSAPI/WSAPITypes\";\nimport { AchCustomLayoutTheme, AchCustomSectionType, AchMissionsTabsOptions, AchOverviewMissionsFilter } from \"./AchCustomSection\";\n\nexport interface UICustomSection {\n\n body?: string;\n menu_img?: string;\n menu_name?: string;\n custom_skin_images?: string;\n section_type_id?: AchCustomSectionType;\n theme?: AchCustomLayoutTheme;\n generic_custom_css?: string;\n mission_tabs_options?: AchMissionsTabsOptions;\n overview_missions_filter?: AchOverviewMissionsFilter;\n overview_missions_count?: number;\n}\n\nexport const UICustomSectionTransform = (items: UICustomSection[]): TUICustomSection[] => {\n return items.filter(r => r.section_type_id !== undefined && r.section_type_id >= 1).map( r => {\n const x: TUICustomSection = {\n body: r.body,\n menu_img: r.menu_img,\n menu_name: r.menu_name,\n section_type_id: r.section_type_id,\n custom_skin_images: r.custom_skin_images,\n generic_custom_css: r.generic_custom_css,\n mission_tabs_options: r.mission_tabs_options,\n overview_missions_count: r.overview_missions_count,\n overview_missions_filter: r.overview_missions_filter,\n theme: r.theme\n }\n return x;\n })\n}","import { ClassId } from \"./Base/ClassId\";\nimport { ProtocolRequest } from './Base/ProtocolRequest';\nimport { ProtocolResponse } from './Base/ProtocolResponse';\nimport { SAWGetTemplatesResponse } from './MiniGames/SAWGetTemplatesResponse';\nimport { SAWGetTemplatesRequest } from './MiniGames/SAWGetTemplatesRequest';\nimport { IntUtils } from './IntUtils';\nimport { ILogger } from './ILogger';\nimport { SAWDoAknowledgeRequest, SAWDoAknowledgeResponse, SAWDoSpinRequest, SAWDoSpinResponse, SAWSpinErrorCode, SAWTemplatesTransform } from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport { CoreUtils, GetTranslationsRequest, GetTranslationsResponse, PublicLabelSettings, ResponseIdentify, TranslationArea } from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport { GetInboxMessagesRequest, GetInboxMessagesResponse, InboxMessageBody, InboxMessageBodyTransform, InboxMessagesTransform, MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse, MarkInboxMessageReadRequest, MarkInboxMessageReadResponse, MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse } from './Inbox';\nimport { BuyStoreItemRequest, BuyStoreItemResponse, GetCategoriesStoreResponse, GetStoreHistoryRequest, GetStoreHistoryResponse, GetStoreItemsResponse, StoreCategoryTransform, StoreItemPurchasedTransform, StoreItemTransform } from './Store';\nimport { AchCategoryTransform, AchClaimPrizeRequest, AchClaimPrizeResponse, AchievementOptinRequest, AchievementOptinResponse, AchievementType, GetAchCategoriesResponse, GetAchievementMapRequest, GetAchievementMapResponse, UserAchievementTransform } from './Missions';\nimport { GetTournamentInfoRequest, GetTournamentInfoResponse, GetTournamentsRequest, GetTournamentsResponse, TournamentItemsTransform, TournamentRegisterRequest, TournamentRegisterResponse, tournamentInfoItemTransform } from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from \"./Leaderboard\";\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from \"./Level\";\nimport { WSAPI } from \"./WSAPI/WSAPI\";\nimport { TInboxMessage, TInboxMessageBody, TLevel, TMiniGameTemplate, TMissionOrBadge, TStoreCategory, TAchCategory, TStoreItem, TTournament, TTournamentDetailed, LeaderBoardDetailsT, UserLevelExtraCountersT, TSegmentCheckResult, TUICustomSection } from \"./WSAPI/WSAPITypes\";\nimport { getLeaderBoardTransform } from \"./Leaderboard/LeaderBoards\";\nimport { GetAchievementsUserInfoResponse } from \"./Core/GetAchievementsUserInfoResponse\";\nimport { CheckSegmentMatchResponse } from \"./Core/CheckSegmentMatchResponse\";\nimport { CheckSegmentMatchRequest } from \"./Core/CheckSegmentMatchRequest\";\nimport { GetJackpotsPotsRequest, GetJackpotsPotsResponse, GetJackpotsRequest, GetJackpotsResponse, JackpotDetails, JackpotPot, JackpotsOptinRequest, JackpotsOptinResponse, JackpotsOptoutRequest, JackpotsOptoutResponse } from \"./Jackpots\";\nimport { GetCustomSectionsRequest, GetCustomSectionsResponse, UICustomSectionTransform } from \"./CustomSections\";\n\nconst PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';\nconst C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';\nconst AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';\nconst DEFAULT_LANG_EN = \"EN\";\n\ninterface Tracker {\n label_api_key: string;\n userPublicProps: any;\n on: (callBackKey: ClassId, func: (data: any) => void) => void;\n getLabelSetting: (key: PublicLabelSettings) => any;\n}\ninterface IOptions {\n logger?: ILogger;\n logCIDs?: ClassId[];\n logHTTPTiming?: boolean;\n tracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\n\nclass SmarticoAPI {\n\n private publicUrl: string;\n private wsUrl: string;\n private inboxCdnUrl: string;\n private partnerUrl: string;\n public avatarDomain: string;\n\n private logger: ILogger;\n private logCIDs: ClassId[];\n private logHTTPTiming: boolean;\n public tracker?: Tracker;\n\n public constructor(private label_api_key: string, private brand_api_key: string, private messageSender: MessageSender, options: IOptions = {}) {\n\n this.logger = options.logger || (console as any);\n\n if (this.logger.always === undefined) {\n this.logger.always = this.logger.info;\n }\n\n this.logCIDs = options.logCIDs || [];\n this.logHTTPTiming = options.logHTTPTiming || false;\n this.tracker = options.tracker;\n\n this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\n }\n\n public static getEnvDnsSuffix(label_api_key: string): string {\n\n let ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n \n if (ENV_ID === '1' || ENV_ID === '2') {\n ENV_ID = ''\n }\n return ENV_ID;\n }\n\n public static getEnvId(label_api_key: string): number {\n\n return label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n \n }\n\n public static getCleanLabelApiKey(label_api_key: string): string {\n return label_api_key.substring(0, 36);\n }\n\n public static getPublicUrl(label_api_key: string): string {\n return PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n }\n\n public static getPublicWsUrl(label_api_key: string): string {\n return C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n public static getAvatarUrl(label_api_key: string): string {\n return AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n private async send<T>(message: any, expectCID?: ClassId, force_language?: string): Promise<T> {\n\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('REQ', message)\n }\n\n if (force_language) {\n message.force_language = force_language;\n }\n\n let result: any;\n \n try {\n const timeStart = new Date().getTime();\n result = await this.messageSender(message, this.publicUrl, expectCID);\n const timeEnd = new Date().getTime();\n\n if (this.logHTTPTiming) {\n this.logger.always('HTTP time, ms:' + (timeEnd - timeStart))\n }\n\n } catch (e) {\n this.logger.error(`Failed to make request to smartico channel, L2. ${e.message}`, { url: this.publicUrl, request: message, error: e.message });\n throw(new Error(`Failed to make request to smartico channel, L1. ${e.message}`));\n }\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('RES', result)\n }\n\n if (expectCID) {\n if (Array.isArray(result)) { \n for (const str of result as string[]) {\n const obj: ProtocolResponse = JSON.parse(str);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n }\n if (obj.cid === expectCID) {\n return obj as any;\n }\n }\n this.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, { request: message, response: result });\n } else {\n return result;\n } \n } else {\n if (Array.isArray(result)) { \n if (result.length === 1) {\n const obj = JSON.parse(result[0]);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n } \n return obj;\n } else {\n this.logger.error('Expected one response, but got array', { request: message, response: result });\n }\n }\n return result;\n }\n }\n\n private buildMessage<TRequest,TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\n const message: ProtocolRequest = {\n // AA: in fact we need api and brand keys and ext_user_id only in the context of HTTP\n // its not needed in WebSocket and can be deleted\n api_key: this.label_api_key, \n brand_key: this.brand_api_key,\n ext_user_id: user_ext_id,\n cid,\n uuid: IntUtils.uuid(),\n ts: new Date().getTime(),\n ...payload\n };\n\n if (message.ext_user_id === undefined || message.ext_user_id === null) {\n delete message.ext_user_id;\n }\n\n if (message.brand_key === undefined || message.brand_key === null) {\n delete message.brand_key;\n } \n\n return message as any\n }\n\n public async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n const eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n eventType,\n payload\n });\n\n const eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n return eventResponse;\n }\n\n public async coreGetTranslations(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n\n if (lang_code === undefined || lang_code === null || lang_code.trim && lang_code.trim() === '') {\n lang_code = DEFAULT_LANG_EN;\n } \n\n const response = await OCache.use<GetTranslationsResponse>(`${lang_code}-${this.label_api_key}-${this.brand_api_key}`, ECacheContext.Translations, async () => {\n\n const tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code: DEFAULT_LANG_EN,\n hash_code: 0,\n areas\n });\n\n const trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n if (lang_code !== DEFAULT_LANG_EN) {\n const trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code,\n hash_code: 0,\n areas\n }); \n\n const trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n \n Object.keys(trUser?.translations ?? {}).forEach( k => {\n trBase.translations[k] = trUser.translations[k];\n })\n }\n\n return trBase;\n\n }, cacheSec );\n\n return response;\n } \n\n public async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n \n return OCache.use<GetLabelInfoResponse>(`${this.label_api_key} - ${this.brand_api_key}`, ECacheContext.LabelInfo, async () => {\n\n const message = this.buildMessage<GetLabelInfoResponse, GetLabelInfoRequest>(user_ext_id, ClassId.INIT);\n\n return this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE)\n \n }, cacheSec);\n \n } \n\n public async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\n const message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n request_id: IntUtils.uuid() // AA: do we need request_id?\n });\n\n const r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n r.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n return r;\n } \n\n public async coreChangeUsername(user_ext_id: string, public_username_custom: string): Promise<{ public_username_custom: string }> {\n \n const message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n public_username_custom\n });\n \n return await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n }\n\n public async coreCheckSegments(user_ext_id: string, segment_id: number[]): Promise<TSegmentCheckResult[]> {\n \n const message = this.buildMessage<CheckSegmentMatchRequest, any>(user_ext_id, ClassId.CHECK_SEGMENT_MATCH_REQUEST, {\n segment_id\n });\n \n const results = await this.send<CheckSegmentMatchResponse>(message, ClassId.CHECK_SEGMENT_MATCH_RESPONSE);\n\n return results.segments || [];\n }\n\n public async jackpotGet(user_ext_id: string, filter?: { related_game_id?: string, jp_template_id?: number }, force_language?: string ): Promise<GetJackpotsResponse> {\n\n const message = this.buildMessage<GetJackpotsRequest, GetJackpotsResponse>(user_ext_id, ClassId.JP_GET_JACKPOTS_REQUEST, filter);\n return await this.send<GetJackpotsResponse>(message, ClassId.JP_GET_JACKPOTS_RESPONSE, force_language);\n }\n\n public async potGet(user_ext_id: string, filter: { jp_template_ids: number[] }): Promise<GetJackpotsPotsResponse> {\n const message = this.buildMessage<GetJackpotsPotsRequest, GetJackpotsPotsResponse>(user_ext_id, ClassId.JP_GET_LATEST_POTS_REQUEST, filter);\n return await this.send<GetJackpotsPotsResponse>(message, ClassId.JP_GET_LATEST_POTS_RESPONSE);\n }\n\n public async jackpotOptIn(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n const message = this.buildMessage<JackpotsOptinRequest, JackpotsOptinResponse>(user_ext_id, ClassId.JP_OPTIN_REQUEST, payload);\n return await this.send<JackpotsOptinResponse>(message, ClassId.JP_OPTIN_RESPONSE);\n }\n\n public async jackpotOptOut(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n const message = this.buildMessage<JackpotsOptoutRequest, JackpotsOptoutResponse>(user_ext_id, ClassId.JP_OPTOUT_REQUEST, payload);\n return await this.send<JackpotsOptoutResponse>(message, ClassId.JP_OPTOUT_RESPONSE);\n }\n\n public async sawGetTemplates(user_ext_id: string, force_language?: string, is_visitor_mode: boolean = false): Promise<SAWGetTemplatesResponse> {\n\n const message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(user_ext_id, ClassId.SAW_GET_SPINS_REQUEST, { is_visitor_mode });\n\n const response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE, force_language);\n\n if (response && response.templates) {\n response.templates.forEach(t => {\n \n if (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n t.saw_template_ui_definition.name = IntUtils.replaceAll(t.saw_template_ui_definition.name, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.description = IntUtils.replaceAll(t.saw_template_ui_definition.description, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.promo_text = IntUtils.replaceAll(t.saw_template_ui_definition.promo_text, '{{jackpot}}', jackpotValue);\n t.prizes.forEach(p => {\n p.saw_prize_ui_definition.name = IntUtils.replaceAll(p.saw_prize_ui_definition.name, '{{jackpot}}', jackpotValue);\n p.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(p.saw_prize_ui_definition.aknowledge_message, '{{jackpot}}', jackpotValue);\n })\n }\n });\n }\n\n return response;\n }\n\n public async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n return SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n }\n\n public async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse>{\n const message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(user_ext_id, ClassId.SAW_AKNOWLEDGE_REQUEST, {\n request_id\n });\n\n return await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n }\n\n public async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n if (!saw_template_id) {\n throw new Error('Missing template id');\n }\n\n const request_id = IntUtils.uuid();\n\n const message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n saw_template_id,\n request_id\n });\n\n const spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n // to simulate fail\n // response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n const status: string = {\n [SAWSpinErrorCode.SAW_OK]: 'OK',\n [SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n [SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n [SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n [SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n }[spinAttemptResponse.errCode] || 'OTHER';\n\n await this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n saw_template_id,\n status,\n round_id,\n });\n\n return {...spinAttemptResponse, request_id };\n }\n\n public async missionOptIn(user_ext_id: string, mission_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n const message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(user_ext_id, ClassId.MISSION_OPTIN_REQUEST, {\n achievementId: mission_id\n });\n\n const res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n return res;\n }\n\n public async missionClaimPrize(user_ext_id: string, mission_id: number, ach_completed_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n\n const message = this.buildMessage<AchClaimPrizeRequest, AchClaimPrizeResponse>(user_ext_id, ClassId.ACHIEVEMENT_CLAIM_PRIZE_REQUEST, {\n ach_id: mission_id,\n ach_completed_id: ach_completed_id\n })\n\n const res = await this.send<AchClaimPrizeResponse>(message, ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE);\n\n return res;\n }\n\n public async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(user_ext_id, ClassId.TOURNAMENT_REGISTER_REQUEST, {\n tournamentInstanceId\n });\n\n const res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n return res;\n }\n\n public async buyStoreItem(user_ext_id: string, itemId: number) {\n if (!itemId) {\n throw new Error('Missing store item id');\n }\n const message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n itemId\n });\n\n const res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n return res;\n }\n\n public async inboxGetMessages(user_ext_id: string, limit: number = 10, offset: number = 0): Promise<GetInboxMessagesResponse> {\n\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\n }\n\n public async storeGetItems(user_ext_id: string, force_language?: string): Promise<GetStoreItemsResponse> {\n const message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n return await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE, force_language);\n }\n\n public async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n return StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n }\n\n public async storeGetCategories(user_ext_id: string, force_language?: string): Promise<GetCategoriesStoreResponse> {\n const message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n return await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE, force_language);\n }\n\n public async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n return StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n }\n\n public async storeGetPurchasedItems(user_ext_id: string, limit: number = 20, offset: number = 0): Promise<GetStoreHistoryResponse> {\n\n const message = this.buildMessage<GetStoreHistoryRequest, GetStoreHistoryResponse>(user_ext_id, ClassId.ACH_SHOP_ITEM_HISTORY_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetStoreHistoryResponse>(message, ClassId.ACH_SHOP_ITEM_HISTORY_RESPONSE);\n }\n\n public async storeGetPurchasedItemsT(user_ext_id: string, limit?: number, offset?: number): Promise<TStoreItem[]> {\n return StoreItemPurchasedTransform((await this.storeGetPurchasedItems(user_ext_id, limit, offset)).items);\n }\n\n public async missionsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE, force_language);\n // we need to clone response to avoid changing original object,for cases when its called together with badgesGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Mission);\n }\n return responseClone;\n }\n\n public async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n }\n\n public async getUserGamificationInfo(user_ext_id: string): Promise<GetAchievementsUserInfoResponse> {\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementsUserInfoResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_USER_REQUEST);\n\n return await this.send<GetAchievementsUserInfoResponse>(message, ClassId.GET_ACHIEVEMENT_USER_RESPONSE);\n }\n\n public async getUserGamificationInfoT(user_ext_id: string): Promise<UserLevelExtraCountersT> {\n const response = await this.getUserGamificationInfo(user_ext_id);\n \n return {\n level_counter_1: response.level_counter_1,\n level_counter_2: response.level_counter_2,\n }\n }\n\n public async achGetCategories(user_ext_id: string, force_language?: string): Promise<GetAchCategoriesResponse> {\n\n const message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n return await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE, force_language);\n }\n\n public async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n return AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n } \n\n public async badgetsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE, force_language);\n // we need to clone response to avoid changing original object,for cases when its called together with missionsGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Badge);\n }\n return responseClone;\n } \n\n public async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n } \n\n\n public async tournamentsGetLobby(user_ext_id: string, force_language?: string): Promise<GetTournamentsResponse> {\n\n const message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);\n return await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE, force_language);\n\n }\n\n public async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n return TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n }\n\n public async tournamentsGetInfo(user_ext_id: string, tournamentInstanceId: number, force_language?: string): Promise<GetTournamentInfoResponse> {\n\n const message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, \n {\n tournamentInstanceId\n }\n );\n const response = await this.send<GetTournamentInfoResponse>(message, ClassId.GET_TOURNAMENT_INFO_RESPONSE, force_language);\n \n if (response.userPosition?.avatar_id) {\n response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.tournamentInfo.players?.length) {\n response.tournamentInfo.players.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n }\n\n return response;\n\n }\n\n public async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n return tournamentInfoItemTransform(response);\n } \n\n public async leaderboardGet(user_ext_id: string, period_type_id?: LeaderBoardPeriodType, prevPeriod: boolean = false, force_language?: string): Promise<LeaderBoardDetails> {\n\n const message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(user_ext_id, ClassId.GET_LEADERS_BOARD_REQUEST, \n {\n period_type_id,\n snapshot_offset: prevPeriod ? 1 : 0,\n include_users: true\n }\n );\n\n const response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE, force_language);\n\n const boardKey = Object.keys(response.map).find( k => period_type_id === undefined || k === period_type_id?.toString());\n\n if (boardKey === undefined) {\n return undefined;\n }\n\n if (response.map[boardKey]?.userPosition?.avatar_id) {\n response.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(response.map[boardKey].userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.map[boardKey]?.positions?.length) {\n response.map[boardKey].positions.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n \n }\n \n return response.map[boardKey];\n\n }\n\n public async leaderboardsGetT(user_ext_id: string, period_type_id: LeaderBoardPeriodType = LeaderBoardPeriodType.DAILY, prevPeriod: boolean = false): Promise<LeaderBoardDetailsT> { \n return getLeaderBoardTransform(await this.leaderboardGet(user_ext_id, period_type_id, prevPeriod));\n }\n\n public async levelsGet(user_ext_id: string, force_language?: string): Promise<GetLevelMapResponse> {\n const message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n return await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE, force_language);\n }\n\n public async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n }\n\n public async getCustomSections(user_ext_id: string): Promise<GetCustomSectionsResponse> {\n const message = this.buildMessage<GetCustomSectionsRequest, GetCustomSectionsResponse>(user_ext_id, ClassId.GET_CUSTOM_SECTIONS_REQUEST);\n return await this.send<GetCustomSectionsResponse>(message, ClassId.GET_CUSTOM_SECTIONS_RESPONSE);\n }\n\n public async getCustomSectionsT(user_ext_id: string): Promise<TUICustomSection[]> {\n return UICustomSectionTransform(Object.values((await this.getCustomSections(user_ext_id)).customSections));\n }\n\n public async getTranslationsT(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n return await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n }\n\n public async getInboxMessages(user_ext_id: string, limit: number = 20, offset: number = 0, starred_only: boolean): Promise<GetInboxMessagesResponse> {\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset,\n starred_only\n });\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n }\n\n public async getInboxMessagesT(user_ext_id: string, from: number = 0, to: number = 20, favoriteOnly: boolean = false): Promise<TInboxMessage[]> {\n const limit = (to - from) > 20 ? 20 : to - from;\n const offset = from;\n\n return InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly)).log);\n }\n\n public async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\n const getMessageBody = async (messageGuid: string): Promise<InboxMessageBody>=> {\n const inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n try {\n const url = `${inboxCdnUrl}${messageGuid}.json`;\n \n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n }\n });\n const data = await response.json();\n return data || {};\n } catch (error) {\n this.logger.error('Error fetching inbox message body:', error);\n return null;\n }\n };\n\n return await getMessageBody(messageGuid)\n }\n\n public async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n const message = await this.getInboxMessageBody(messageGuid);\n return InboxMessageBodyTransform(message);\n }\n\n public async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n engagement_uid: messageGuid\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n all_read: true\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markUnmarkInboxMessageAsFavorite(user_ext_id: string, messageGuid: string, mark: boolean): Promise<MarkInboxMessageStarredResponse> {\n const message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(user_ext_id, ClassId.MARK_INBOX_STARRED_REQUEST, {\n engagement_uid: messageGuid,\n is_starred: mark\n });\n\n return await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n }\n\n public async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n engagement_uid: messageGuid,\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n public async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n all_deleted: true\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n\n public getWSCalls(): WSAPI {\n return new WSAPI(this);\n }\n\n}\n\nexport { SmarticoAPI, MessageSender }","import { TSMap } from \"typescript-map\";\n\nclass CookieStore {\n private static cookieStore = new TSMap<string, string[]>()\n\n public static get(key: string): string[] | undefined {\n \n return CookieStore.cookieStore.get(key);\n }\n\n public static set(key: string, value: string[]) {\n const v = value.map(v => v.split(';')[0]);\n CookieStore.cookieStore.set(key, v);\n }\n}\n\nexport { CookieStore }","export enum QuizSportType {\n Soccer = 1,\n Tennis = 5,\n Basketball = 6,\n}\n\nexport const quizSupportedSports = [QuizSportType.Basketball, QuizSportType.Soccer, QuizSportType.Tennis];\n","export enum SAWGPMarketType {\n TwoTeamsWithScore = 1,\n RedCard = 2,\n OneXTwo = 3,\n OneXTwoHalftime = 4,\n HalftimeFulltime = 5,\n FirstGoal = 6,\n DoubleChance = 7,\n OverUnder2_5 = 8,\n OverUnder1_5Halftime = 9,\n OverUnder1_5__2ndHalf = 10,\n TotalCorners8_5 = 11,\n TotalCorners9_5 = 12,\n Corners1x2 = 13,\n One_Two = 14,\n Overtime = 15,\n OddEven = 16,\n OddEvenHomeAway = 17,\n FirstSet = 18,\n SecondSet = 19,\n ThirdSet = 20,\n FourthSet = 21,\n FifthSet = 22,\n PlayerOneWinsOneSet = 23,\n PlayerTwoWinsOneSet = 24,\n LastGoal = 25,\n\n CustomSport = 26,\n CustomNonSport = 27,\n}","export enum QuizAnswersValueType {\n HomeTeam = '1',\n AwayTeam = '2',\n Draw = 'x',\n HomeTeamHomeTeam = '1/1',\n HomeTeamDraw = '1/x',\n HomeTeamAwayTeam = '1/2',\n DrawHomeTeam = 'x/1',\n DrawDraw = 'x/x',\n DrawAwayTeam = 'x/2',\n AwayTeamHomeTeam = '2/1',\n AwayTeamDraw = '2/x',\n AwayTeamAwayTeam = '2/2',\n Yes = 'yes',\n No = 'no',\n Odd = 'odd',\n Even = 'even',\n HomeOdd = '1/odd',\n HomeEven = '1/even',\n AwayOdd = '2/odd',\n AwayEven = '2/even',\n}\n\nexport const quizAnswerHomeTeamReplacementText = '{quiz_home_team}';\nexport const quizAnswerAwayTeamReplacementText = '{quiz_away_team}';\nexport const quizDrawReplacementText = '{quiz_draw}';\nexport const quizYesReplacementText = '{yes}';\nexport const quizNoReplacementText = '{no}';\nexport const quizOddReplacementText = '{odd}';\nexport const quizEvenReplacementText = '{even}';\nexport const quizOrReplacementText = '{or}';\n\nexport const quizAnswersTrKeys = {\n [quizDrawReplacementText]: 'quizAnswer_draw',\n [quizYesReplacementText]: 'quizAnswer_yes',\n [quizNoReplacementText]: 'quizAnswer_no',\n [quizOddReplacementText]: 'quizAnswer_odd',\n [quizEvenReplacementText]: 'quizAnswer_even',\n [quizOrReplacementText]: 'quizAnswer_or',\n}\n","import { QuizAnswersValueType, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizDrawReplacementText, quizEvenReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizYesReplacementText } from \"./MarketsAnswers\";\nimport { SAWGPMarketType } from \"./MarketsType\";\n\nconst yesNoAnswers = [\n { text: quizYesReplacementText, value: QuizAnswersValueType.Yes },\n { text: quizNoReplacementText, value: QuizAnswersValueType.No }\n]\n\nconst homeAwayAnswers = [\n { text: quizAnswerHomeTeamReplacementText, value: QuizAnswersValueType.HomeTeam },\n { text: quizAnswerAwayTeamReplacementText, value: QuizAnswersValueType.AwayTeam }\n]\n\nconst homeAwayDrawAnswers = [\n ...homeAwayAnswers,\n { text: quizDrawReplacementText, value: QuizAnswersValueType.Draw },\n]\n\nexport const marketsInfo = [\n {\n type: SAWGPMarketType.OneXTwo,\n name: '1x2',\n question: { text: 'Who will win the match ?', trKey: 'quizQuestion_1x2'},\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.OneXTwoHalftime,\n name: '1x2 Halftime',\n question: { text: 'Who will lead the first half of the match ?', trKey: 'quizQuestion_x2half' },\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.HalftimeFulltime,\n name: 'Halftime / Fulltime',\n question: { text: 'Who will lead the first half and who will win the match ?', trKey: 'quizQuestion__HalftimeFulltime' },\n answers: [\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamHomeTeam },\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.HomeTeamDraw },\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamAwayTeam },\n { text: `${quizDrawReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.DrawHomeTeam },\n { text: `${quizDrawReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.DrawDraw },\n { text: `${quizDrawReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.DrawAwayTeam },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamHomeTeam },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.AwayTeamDraw },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamAwayTeam }\n ]\n },\n {\n type: SAWGPMarketType.FirstGoal,\n name: 'First Goal',\n question: { text: 'Who will score the first goal ?', trKey: 'quizQuestion_firstGoal' },\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.LastGoal,\n name: 'Last Goal',\n question: { text: 'Who will score the last goal ?', trKey: 'quizQuestion_lastGoal' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.DoubleChance,\n name: 'Double Chance',\n question: { text: 'Who will win the match? Choose a combination:', trKey: 'quizQuestion_doubleChance' },\n answers: [\n { text: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamDraw },\n { text: `${quizAnswerHomeTeamReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamAwayTeam },\n { text: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamDraw }\n ]\n },\n {\n type: SAWGPMarketType.OverUnder2_5,\n name: 'Over/Under 2.5',\n question: { text: 'Will there be 3 or more goals in the match?', trKey: 'quizQuestion_overUnder2_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OverUnder1_5Halftime,\n name: 'Over/Under 1.5 Halftime',\n question: { text: 'Will there be 2 or more goals in the first half?', trKey: 'quizQuestion_overUnder1_5Halftime' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OverUnder1_5__2ndHalf,\n name: 'Over/Under 1.5 2nd Half',\n question: { text: 'Will there be 2 or more goals in the second half?', trKey: 'quizQuestion_overUnder1_5__2ndHalf' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.RedCard,\n name: 'Red Card',\n question: { text: 'Will there be a red card in the match?', trKey: 'quizQuestion_redCard' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.TotalCorners8_5,\n name: 'Total Corners 8.5',\n question: { text: 'Will there be 9 or more corners in the match?', trKey: 'quizQuestion_totalCorners8_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.TotalCorners9_5,\n name: 'Total Corners 9.5',\n question: { text: 'Will there be 10 or more corners in the match?', trKey: 'quizQuestion_totalCorners9_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.Corners1x2,\n name: 'Corners 1x2',\n question: { text: 'Which team will have more corners in the match?', trKey: 'quizQuestion_corners1x2' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.One_Two,\n name: '1-2',\n question: { text: 'Who will win the match ?', trKey: 'quizQuestion_1-2'},\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.Overtime,\n name: 'Overtime',\n question: { text: 'Will there be overtime in the match?', trKey: 'quizQuestion_overtime' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OddEven,\n name: 'Odd/Even',\n question: { text: 'Is the sum of all points scored in the game going to be an odd number or even?', trKey: 'quizQuestion_oddEven' },\n answers: [\n { text: quizOddReplacementText, value: QuizAnswersValueType.Odd },\n { text: quizEvenReplacementText, value: QuizAnswersValueType.Even }\n ]\n },\n {\n type: SAWGPMarketType.OddEvenHomeAway,\n name: 'Odd/Even Home/Away',\n question: { text: 'Which team will win and what will be the sum of the points (Odd or Even)?', trKey: 'quizQuestion_oddEvenHomeAway' },\n answers: [\n { text: `${quizAnswerHomeTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.HomeOdd },\n { text: `${quizAnswerHomeTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.HomeEven },\n { text: `${quizAnswerAwayTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.AwayOdd },\n { text: `${quizAnswerAwayTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.AwayEven }\n ]\n },\n {\n type: SAWGPMarketType.FirstSet,\n name: 'First Set',\n question: { text: 'Who will win the first set ?', trKey: 'quizQuestion_firstSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.SecondSet,\n name: 'Second Set',\n question: { text: 'Who will win the second set ?', trKey: 'quizQuestion_secondSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.ThirdSet,\n name: 'Third Set',\n question: { text: 'Who will win the third set ?', trKey: 'quizQuestion_thirdSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.FourthSet,\n name: 'Fourth Set',\n question: { text: 'Who will win the fourth set ?', trKey: 'quizQuestion_fourthSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.FifthSet,\n name: 'Fifth Set',\n question: { text: 'Who will win the fifth set ?', trKey: 'quizQuestion_fifthSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.PlayerOneWinsOneSet,\n name: 'Player One Wins One Set',\n question: { text: 'Will Player One win at least one set?', trKey: 'quizQuestion_playerOneWinsOneSet' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.PlayerTwoWinsOneSet,\n name: 'Player Two Wins One Set',\n question: { text: 'Will Player Two win at least one set?', trKey: 'quizQuestion_playerTwoWinsOneSet' },\n answers: yesNoAnswers\n },\n]","import { SAWGPMarketType } from \"./MarketsType\";\nimport { QuizSportType } from \"./SportTypes\";\n\nexport const QuizMarketPerSport = {\n [QuizSportType.Basketball]: [\n SAWGPMarketType.One_Two,\n SAWGPMarketType.Overtime,\n SAWGPMarketType.OneXTwo,\n SAWGPMarketType.OddEven,\n SAWGPMarketType.OddEvenHomeAway,\n SAWGPMarketType.DoubleChance,\n ],\n [QuizSportType.Soccer]: [\n SAWGPMarketType.OneXTwo,\n SAWGPMarketType.OneXTwoHalftime,\n SAWGPMarketType.HalftimeFulltime,\n SAWGPMarketType.FirstGoal,\n SAWGPMarketType.LastGoal,\n SAWGPMarketType.DoubleChance,\n SAWGPMarketType.OverUnder2_5,\n SAWGPMarketType.OverUnder1_5Halftime,\n SAWGPMarketType.OverUnder1_5__2ndHalf,\n SAWGPMarketType.RedCard,\n SAWGPMarketType.TotalCorners8_5,\n SAWGPMarketType.TotalCorners9_5,\n SAWGPMarketType.Corners1x2,\n ],\n [QuizSportType.Tennis]: [\n SAWGPMarketType.One_Two,\n SAWGPMarketType.FirstSet,\n SAWGPMarketType.SecondSet,\n SAWGPMarketType.ThirdSet,\n SAWGPMarketType.FourthSet,\n SAWGPMarketType.FifthSet,\n SAWGPMarketType.PlayerOneWinsOneSet,\n SAWGPMarketType.PlayerTwoWinsOneSet,\n SAWGPMarketType.OddEven\n ]\n}","enum JackpotContributionType {\n Fixed = 1,\n Percentage = 2\n}\n\n\nexport { JackpotContributionType }","\n\nenum JackpotType {\n Main = 1\n}\n\n\nexport { JackpotType }"],"names":["ClassId","IntUtils","uuid","a","b","Math","random","toString","isNotNull","val","isNotEmpty","length","replaceAll","value","regex","replacement","replace","RegExp","escapeRegExp","v","JsonOrText","str","includes","JSON","parse","e","isWithinPeriod","timestamp","period","now","Date","completedDate","getFullYear","getMonth","getDate","startOfWeek","setDate","getDay","setHours","endOfWeek","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Unknown","SAWUtils","canPlay","t","pointsBalance","undefined","saw_buyin_type_id","spin_count","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","PrizeDrop","Quiz","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","UNKNOWN","SAWTemplatesTransform","items","map","r","_r$saw_skin_ui_defini","_r$saw_skin_ui_defini2","x","id","saw_template_id","name","saw_template_ui_definition","description","thumbnail","saw_skin_ui_definition","skin_folder","saw_skin_key","over_limit_message","no_attempts_message","jackpot_symbol","saw_game_type","saw_game_type_id","saw_buyin_type","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","expose_game_stat_on_api","next_available_spin_ts","prizes","p","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","font_size_mobile","icon","position","aknowledge_message","acknowledge_dp","acknowledge_action_title","pool","wins_count","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","NodeCache","constructor","ttlChecker","setInterval","getTime","key","cache","hasOwnProperty","o","ttl","get","set","ttlSeconds","remove","flushAll","ECacheContext","OCache","init","cacheContext","oKey","stringify","deepClone","use","f","clear","clearContext","clearAll","ActivityTypeLimited","CoreUtils","currencySymbol","currency","toUpperCase","USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","MXN","SGD","HKD","NOK","KRW","TRY","INR","RUB","BRL","ZAR","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","BuyStoreItemErrorCode","StoreCategoryTransform","_r$publicMeta","_r$publicMeta2","publicMeta","order","StoreItemType","StoreItemTypeName","StoreItemTypeNamed","Bonus","Tangible","MiniGameSpin","ChangeLevel","StoreItemTransform","filter","_r$itemPublicMeta$pri","_r$categoryIds","itemPublicMeta","price","image_url","ribbon","label_tag","custom_label_tag","limit_message","priority","related_item_ids","related_items","hint_text","itemTypeId","can_buy","canBuy","category_ids","categoryIds","shopPool","StoreItemPurchasedTransform","purchasedToday","purchase_ts","purchasedThisWeek","purchasedThisMonth","purchase_points_amount","purchased_today","purchased_this_week","purchased_this_month","AchievementStatus","AchievementTaskType","AchievementType","UserAchievementTransform","ach_id","_r$ach_categories","completedToday","complete_date_ts","completedThisWeek","completedThisMonth","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","isLocked","is_requires_optin","requiresOptin","is_opted_in","isOptedIn","time_limit_ms","dt_start","start_date_ts","reward","progress","ach_type_id","Mission","cta_action","cta_text","custom_section_id","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","_t$task_public_meta","task_id","task_public_meta","points_reward","userProgress","execution_count_expected","executionCount","execution_count_actual","userExecutedCount","display_progress_as_count","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","ach_categories","ach_completed_id","requires_prize_claim","prize_claimed_date_ts","complete_date","completed_today","completed_this_week","completed_this_month","custom_section_type_id","ScheduledMissionType","AchCategoryTransform","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","image2_mobile","image_url2_mobile","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","registrationCount","is_user_registered","isUserRegistered","players_min_count","playersMinCount","players_max_count","playersMaxCount","registration_status","tournamentRegistrationStatus","registration_type","registrationType","registration_cost_points","buyInAmount","duration_ms","durationMs","is_active","TournamentUtils","isActive","is_can_register","isCanRegister","is_cancelled","isCancelled","is_finished","isFinished","is_in_progress","isInProgress","is_upcoming","isUpcoming","prizeStructure","getPrizeTransformed","tournamentPlayer","me","getPlayerTransformed","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","tournament","tournamentInstanceStatus","allowLateRegistration","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","prize","_extends","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","LeaderBoardPeriodType","GetLevelMapResponseTransform","levels","l","_l$level_public_meta","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","CACHE_DATA_SEC","JACKPOT_TEMPLATE_CACHE_SEC","JACKPOT_POT_CACHE_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","jackpotGetSignature","tracker","on","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","updateOnAddSpin","SAW_DO_SPIN_RESPONSE","SAW_AKNOWLEDGE_RESPONSE","updateOnPrizeWin","MISSION_OPTIN_RESPONSE","updateMissionsOnOptIn","TOURNAMENT_REGISTER_RESPONSE","updateTournamentsOnRegistration","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","JP_WIN_PUSH","jackpotClearCache","JP_OPTOUT_RESPONSE","JP_OPTIN_RESPONSE","getUserProfile","Object","assign","userPublicProps","Error","checkSegmentMatch","segment_id","coreCheckSegments","find","is_matching","checkSegmentListMatch","segment_ids","Array","isArray","getLevels","Levels","levelsGetT","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","Badges","badgetsGetItemsT","getUserLevelExtraCounters","LevelExtraCounters","getUserGamificationInfoT","getStoreItems","StoreItems","storeGetItemsT","buyStoreItem","item_id","err_code","errCode","err_message","errMsg","getStoreCategories","StoreCategories","storeGetCategoriesT","getStorePurchasedItems","limit","offset","StoreHistory","storeGetPurchasedItemsT","getAchCategories","AchCategories","achGetCategoriesT","getCustomSections","CustomSections","getCustomSectionsT","getMiniGames","Saw","sawGetTemplatesT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","prize_id","requestMissionOptIn","mission_id","missionOptIn","requestMissionClaimReward","missionClaimPrize","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getLeaderBoard","periodType","getPreviousPeriod","LeaderBoards","leaderboardsGetT","getInboxMessages","from","to","onlyFavorite","InboxMessages","getInboxMessagesT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","payload","SAW_OK","_template$prizes$find","template","prizeType","updatedTemplates","contextKey","Jackpots","Pots","jackpotGet","_this","signature","jp_template_id","related_game_id","jackpots","pots","_jackpots","_pots","jp","pot","jp_template_ids","potGet","_jp","jackpotOptIn","result","jackpotOptOut","pointsRewardTransform","reward_points","i","place","points","getLeaderBoardPlayerTransformed","user","user_alt_name","position_in_board","points_accumulated","getLeaderBoardTransform","board","board_id","board_public_meta","rules","period_type_id","rewards","users","positions","AchCustomSectionType","AchCustomLayoutTheme","AchMissionsTabsOptions","AchOverviewMissionsFilter","UICustomSectionTransform","section_type_id","menu_img","menu_name","custom_skin_images","generic_custom_css","mission_tabs_options","overview_missions_count","overview_missions_filter","theme","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","_options$tracker","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","info","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","getEnvId","send","message","expectCID","force_language","cid","timeStart","timeEnd","url","request","obj","buildMessage","user_ext_id","api_key","brand_key","ext_user_id","ts","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","_trUser$translations","trUserRQ","trUser","keys","forEach","k","coreIdentifyLabel","_this2","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","CHECK_SEGMENT_MATCH_REQUEST","results","CHECK_SEGMENT_MATCH_RESPONSE","segments","JP_GET_JACKPOTS_REQUEST","JP_GET_JACKPOTS_RESPONSE","JP_GET_LATEST_POTS_REQUEST","JP_GET_LATEST_POTS_RESPONSE","JP_OPTIN_REQUEST","JP_OPTOUT_REQUEST","sawGetTemplates","is_visitor_mode","SAW_GET_SPINS_REQUEST","SAW_GET_SPINS_RESPONSE","_t$saw_template_ui_de","_t$saw_template_ui_de2","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","MISSION_OPTIN_REQUEST","achievementId","res","ACHIEVEMENT_CLAIM_PRIZE_REQUEST","ACHIEVEMENT_CLAIM_PRIZE_RESPONSE","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","BUY_SHOP_ITEM_RESPONSE","inboxGetMessages","GET_INBOX_MESSAGES_REQUEST","GET_INBOX_MESSAGES_RESPONSE","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","storeGetPurchasedItems","ACH_SHOP_ITEM_HISTORY_REQUEST","ACH_SHOP_ITEM_HISTORY_RESPONSE","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","responseClone","achievements","getUserGamificationInfo","GET_ACHIEVEMENT_USER_REQUEST","GET_ACHIEVEMENT_USER_RESPONSE","level_counter_1","level_counter_2","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","_response$userPositio","_response$tournamentI","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","prevPeriod","_response$map$boardKe","_response$map$boardKe2","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","DAILY","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","GET_CUSTOM_SECTIONS_REQUEST","GET_CUSTOM_SECTIONS_RESPONSE","values","customSections","starred_only","favoriteOnly","log","_this3","getMessageBody","getLabelSetting","INBOX_PUBLIC_CDN","fetch","method","headers","json","MARK_INBOX_READ_REQUEST","MARK_INBOX_READ_RESPONSE","all_read","MARK_INBOX_STARRED_REQUEST","MARK_INBOX_STARRED_RESPONSE","MARK_INBOX_DELETED_REQUEST","MARK_INBOX_DELETED_RESPONSE","all_deleted","getWSCalls","CookieStore","cookieStore","split","TSMap","QuizSportType","quizSupportedSports","Basketball","Soccer","Tennis","SAWGPMarketType","QuizAnswersValueType","quizAnswerHomeTeamReplacementText","quizAnswerAwayTeamReplacementText","quizDrawReplacementText","quizYesReplacementText","quizNoReplacementText","quizOddReplacementText","quizEvenReplacementText","quizOrReplacementText","quizAnswersTrKeys","yesNoAnswers","Yes","No","homeAwayAnswers","HomeTeam","AwayTeam","homeAwayDrawAnswers","Draw","marketsInfo","OneXTwo","question","trKey","answers","OneXTwoHalftime","HalftimeFulltime","HomeTeamHomeTeam","HomeTeamDraw","HomeTeamAwayTeam","DrawHomeTeam","DrawDraw","DrawAwayTeam","AwayTeamHomeTeam","AwayTeamDraw","AwayTeamAwayTeam","FirstGoal","LastGoal","DoubleChance","OverUnder2_5","OverUnder1_5Halftime","OverUnder1_5__2ndHalf","RedCard","TotalCorners8_5","TotalCorners9_5","Corners1x2","One_Two","Overtime","OddEven","Odd","Even","OddEvenHomeAway","HomeOdd","HomeEven","AwayOdd","AwayEven","FirstSet","SecondSet","ThirdSet","FourthSet","FifthSet","PlayerOneWinsOneSet","PlayerTwoWinsOneSet","QuizMarketPerSport","JackpotContributionType","JackpotType"],"mappings":";;IAAYA,QA8JX;AA9JD,CAAA,UAAYA,OAAO,EAAA;EACfA,OAAA,CAAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,OAAA,CAAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EAGRA,OAAA,CAAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,OAAA,CAAAA,OAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;EACjBA,OAAA,CAAAA,OAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,OAAA,CAAAA,OAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;EACrBA,OAAA,CAAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,OAAA,CAAAA,OAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,OAAA,CAAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,OAAA,CAAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;EAEnBA,OAAA,CAAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;EACnBA,OAAA,CAAAA,OAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;EAEpBA,OAAA,CAAAA,OAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,2BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,2BAA8B,CAAA;AAE9B;;;AAGE;EAEFA,OAAA,CAAAA,OAAA,CAAA,sCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,sCAA0C,CAAA;EAC1CA,OAAA,CAAAA,OAAA,CAAA,kCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kCAAsC,CAAA;EACtCA,OAAA,CAAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;EACnCA,OAAA,CAAAA,OAAA,CAAA,kCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kCAAsC,CAAA;EACtCA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,wCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wCAA4C,CAAA;EAC5CA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EAEjCA,OAAA,CAAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;EACnCA,OAAA,CAAAA,OAAA,CAAA,2BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,2BAA+B,CAAA;EAC/BA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAEhCA,OAAA,CAAAA,OAAA,CAAA,oCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,oCAAwC,CAAA;EACxCA,OAAA,CAAAA,OAAA,CAAA,qCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,qCAAyC,CAAA;EAEzCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;AAElC;;;AAGE;AAEF;EACAA,OAAA,CAAAA,OAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B,CAAA;EAC3BA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;EAC5BA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,2BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,2BAA+B,CAAA;EAC/BA,OAAA,CAAAA,OAAA,CAAA,2BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,2BAA+B,CAAA;EAC/BA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;EAC5BA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B,CAAA;EAC3BA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;EAC5BA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;EACnCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B,CAAA;EAC3BA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;AAE5B;;;AAGE;EAEFA,OAAA,CAAAA,OAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;EAClCA,OAAA,CAAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;EAEnCA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,0BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,0BAA8B,CAAA;EAC9BA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EACjCA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EAEjCA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EAEjCA,OAAA,CAAAA,OAAA,CAAA,iCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,iCAAqC,CAAA;EACrCA,OAAA,CAAAA,OAAA,CAAA,kCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kCAAsC,CAAA;EAEtCA,OAAA,CAAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;EACnCA,OAAA,CAAAA,OAAA,CAAA,gCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gCAAoC,CAAA;AAEpC;;;AAGE;EAEFA,OAAA,CAAAA,OAAA,CAAA,qBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,qBAAyB,CAAA;EACzBA,OAAA,CAAAA,OAAA,CAAA,sBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,sBAA0B,CAAA;EAC1BA,OAAA,CAAAA,OAAA,CAAA,qBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,qBAAyB,CAAA;EACzBA,OAAA,CAAAA,OAAA,CAAA,sBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,sBAA0B,CAAA;EAE1BA,OAAA,CAAAA,OAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B,CAAA;EAC3BA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;EAC5BA,OAAA,CAAAA,OAAA,CAAA,qBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,qBAAyB,CAAA;EACzBA,OAAA,CAAAA,OAAA,CAAA,sBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,sBAA0B,CAAA;EAC1BA,OAAA,CAAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wBAA4B,CAAA;EAC5BA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,sBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,sBAA0B,CAAA;EAC1BA,OAAA,CAAAA,OAAA,CAAA,oBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,oBAAwB,CAAA;EACxBA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,uCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uCAA2C,CAAA;EAC3CA,OAAA,CAAAA,OAAA,CAAA,wCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,wCAA4C,CAAA;AAE5C;;;AAGE;EAGFA,OAAA,CAAAA,OAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,OAAA,CAAAA,OAAA,CAAA,0BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,0BAA8B,CAAA;EAE9BA,OAAA,CAAAA,OAAA,CAAA,4BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,4BAAgC,CAAA;EAChCA,OAAA,CAAAA,OAAA,CAAA,6BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,6BAAiC,CAAA;EAEjCA,OAAA,CAAAA,OAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB,CAAA;EACtBA,OAAA,CAAAA,OAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB,CAAA;EAEvBA,OAAA,CAAAA,OAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB,CAAA;EACvBA,OAAA,CAAAA,OAAA,CAAA,oBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,oBAAwB,CAAA;EAExBA,OAAA,CAAAA,OAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB,CAAA;AAEjB;;;AAGE;EAEFA,OAAA,CAAAA,OAAA,CAAA,uCAAA,CAAA,GAAA,IAAA,CAAA,GAAA,uCAA4C,CAAA;EAC5CA,OAAA,CAAAA,OAAA,CAAA,wCAAA,CAAA,GAAA,IAAA,CAAA,GAAA,wCAA6C,CAAA;EAE7CA,OAAA,CAAAA,OAAA,CAAA,sBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAA4B,CAAA;AAG5B;;;AAGE;EAEFA,OAAA,CAAAA,OAAA,CAAA,qBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAA2B,CAAA;AAC/B,CAAC,EA9JWA,OAAO,KAAPA,OAAO,GA8JlB,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;AC3JD,MAAMC,QAAQ,CAAA;EAEH,OAAOC,IAAIA,GAAA;AACd,IAAA,IAAIC,CAAM,CAAA;AACV,IAAA,IAAIC,CAAM,CAAA;IACV,KAAKA,CAAC,GAAGD,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,GAAG,EAAE,EAAEC,CAAC,IAAID,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAACA,CAAC,GAAG,EAAE,GAAG,CAAC,GAAGE,IAAI,CAACC,MAAM,EAAE,IAAIH,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAEI,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE;AACzH,IAAA,OAAOH,CAAC,CAAA;AACZ,GAAA;EAEO,OAAOI,SAASA,CAACC,GAAQ,EAAA;AAC5B,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,CAAA;AACrD,GAAA;EAEO,OAAOC,UAAUA,CAACD,GAAW,EAAA;AAChC,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACE,MAAM,GAAG,CAAC,CAAA;AACvE,GAAA;AAEO,EAAA,OAAOC,UAAUA,CAACC,KAAa,EAAEC,KAAa,EAAEC,WAA4B,EAAA;AAC/E,IAAA,IAAId,QAAQ,CAACO,SAAS,CAACK,KAAK,CAAC,EAAE;MAC3B,OAAOA,KAAK,CAACG,OAAO,CAAC,IAAIC,MAAM,CAAChB,QAAQ,CAACiB,YAAY,CAACJ,KAAK,CAAC,EAAE,GAAG,CAAC,EAAEC,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAER,QAAQ,EAAE,CAAC,CAAA;AAC/F,KAAA;AACD,IAAA,OAAOM,KAAK,CAAA;AAChB,GAAA;EAEO,OAAOK,YAAYA,CAACC,CAAS,EAAA;AAChC,IAAA,IAAIlB,QAAQ,CAACS,UAAU,CAACS,CAAC,CAAC,EAAE;AACxB,MAAA,OAAOA,CAAC,CAACH,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AAClD,KAAA;AACD,IAAA,OAAOG,CAAC,CAAA;AACZ,GAAA;;AA7BElB,QAAQ,CA+BImB,UAAU,GAAIC,GAAW,IAAS;EAC5C,IAAIA,GAAG,IAAIA,GAAG,CAACC,QAAQ,KAAKD,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAID,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;IACjE,IAAI;AACA,MAAA,OAAOC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;KACzB,CAAC,OAAOI,CAAC,EAAE;AACR,MAAA,OAAOJ,GAAG,CAAA;AACb,KAAA;AACJ,GAAA;AACD,EAAA,OAAOA,GAAG,CAAA;AACd,CAAC,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AAhDEpB,QAAQ,CAkDIyB,cAAc,GAAG,CAACC,SAAiB,EAAEC,MAA0C,KAAa;AACtG,EAAA,MAAMC,GAAG,GAAG,IAAIC,IAAI,EAAE,CAAA;AACtB,EAAA,MAAMC,aAAa,GAAG,IAAID,IAAI,CAACH,SAAS,CAAC,CAAA;AAEzC,EAAA,QAAOC,MAAM;AACT,IAAA,KAAK,OAAO;AACR,MAAA,OACIC,GAAG,CAACG,WAAW,EAAE,KAAKD,aAAa,CAACC,WAAW,EAAE,IACjDH,GAAG,CAACI,QAAQ,EAAE,KAAKF,aAAa,CAACE,QAAQ,EAAE,IAC3CJ,GAAG,CAACK,OAAO,EAAE,KAAKH,aAAa,CAACG,OAAO,EAAE,CAAA;AAEjD,IAAA,KAAK,UAAU;AACP,MAAA,MAAMC,WAAW,GAAG,IAAIL,IAAI,CAACD,GAAG,CAAC,CAAA;AACjCM,MAAAA,WAAW,CAACC,OAAO,CAACP,GAAG,CAACK,OAAO,EAAE,GAAGL,GAAG,CAACQ,MAAM,EAAE,CAAC,CAAA;MACjDF,WAAW,CAACG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAEhC,MAAA,MAAMC,SAAS,GAAG,IAAIT,IAAI,CAACK,WAAW,CAAC,CAAA;MACvCI,SAAS,CAACH,OAAO,CAACD,WAAW,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;MAC5CK,SAAS,CAACD,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AAEnC,MAAA,OAAOP,aAAa,IAAII,WAAW,IAAIJ,aAAa,IAAIQ,SAAS,CAAA;AACzE,IAAA,KAAK,WAAW;MACZ,OACIV,GAAG,CAACG,WAAW,EAAE,KAAKD,aAAa,CAACC,WAAW,EAAE,IACjDH,GAAG,CAACI,QAAQ,EAAE,KAAKF,aAAa,CAACE,QAAQ,EAAE,CAAA;AAEnD,IAAA;AACI,MAAA,OAAO,KAAK,CAAA;AACnB,GAAA;AACL,CAAC;;AClFL;IACYO,aAIX;AAJD,CAAA,UAAYA,YAAY,EAAA;EACpBA,YAAA,CAAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,YAAA,CAAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,YAAA,CAAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACb,CAAC,EAJWA,YAAY,KAAZA,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;IAEWC,iBAKX;AALD,CAAA,UAAYA,gBAAgB,EAAA;AACxBA,EAAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EALWA,gBAAgB,KAAhBA,gBAAgB,GAK3B,EAAA,CAAA,CAAA,CAAA;AAED;AACaC,MAAAA,iBAAiB,GAAIC,IAAkB,IAAsB;EACtE,OAAO;AACH,IAAA,CAACH,YAAY,CAACI,IAAI,GAAGH,gBAAgB,CAACG,IAAI;AAC1C,IAAA,CAACJ,YAAY,CAACK,MAAM,GAAGJ,gBAAgB,CAACI,MAAM;AAC9C,IAAA,CAACL,YAAY,CAACM,KAAK,GAAGL,gBAAgB,CAACK,KAAAA;AAC1C,GAAA,CAACH,IAAI,CAAC,IAAIF,gBAAgB,CAACM,OAAO,CAAA;AACvC;;ACjBA,MAAMC,QAAQ,CAAA,EAAA;AAARA,QAAQ,CAEIC,OAAO,GAAG,CAACC,CAAc,EAAEC,aAAqB,KAAa;AACvE,EAAA,IAAID,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKE,SAAS,EAAE;AAC/B,IAAA,OAAO,KAAK,CAAA;AACf,GAAA;EAED,QAAQF,CAAC,CAACG,iBAAiB;IACvB,KAAKb,YAAY,CAACI,IAAI;AAAE,MAAA;AACpB,QAAA,OAAO,IAAI,CAAA;AACd,OAAA;IACD,KAAKJ,YAAY,CAACM,KAAK;AAAE,MAAA;QACrB,OAAOI,CAAC,CAACI,UAAU,KAAK,IAAI,IAAIJ,CAAC,CAACI,UAAU,GAAG,CAAC,CAAA;AACnD,OAAA;IACD,KAAKd,YAAY,CAACK,MAAM;AAAE,MAAA;AACtB,QAAA,OAAOK,CAAC,CAACK,iBAAiB,IAAIJ,aAAa,CAAA;AAC9C,OAAA;AACD,IAAA;AAAS,MAAA;QACLK,OAAO,CAACC,KAAK,CAAC,iDAAiD,GAAGP,CAAC,CAACG,iBAAiB,CAAC,CAAA;AACtF,QAAA,OAAO,KAAK,CAAA;AACf,OAAA;AACJ,GAAA;AACL,CAAC;;IC1BOK,mBAKX;AALD,CAAA,UAAYA,kBAAkB,EAAA;EAE1BA,kBAAA,CAAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,kBAAA,CAAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,kBAAA,CAAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACnB,CAAC,EALWA,kBAAkB,KAAlBA,kBAAkB,GAK7B,EAAA,CAAA,CAAA;;ICJWC,kBAGX;AAHD,CAAA,UAAYA,iBAAiB,EAAA;AACzBA,EAAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,QAAgB,CAAA;AAChBA,EAAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AAC1B,CAAC,EAHWA,iBAAiB,KAAjBA,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;ACJD;IAEYC,YAOX;AAPD,CAAA,UAAYA,WAAW,EAAA;EACnBA,WAAA,CAAAA,WAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,WAAA,CAAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;EACfA,WAAA,CAAAA,WAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,WAAA,CAAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,WAAA,CAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,WAAA,CAAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAPWA,WAAW,KAAXA,WAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;IAEWC,gBAQX;AARD,CAAA,UAAYA,eAAe,EAAA;AACvBA,EAAAA,eAAA,CAAA,YAAA,CAAA,GAAA,OAAoB,CAAA;AACpBA,EAAAA,eAAA,CAAA,aAAA,CAAA,GAAA,SAAuB,CAAA;AACvBA,EAAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EARWA,eAAe,KAAfA,eAAe,GAQ1B,EAAA,CAAA,CAAA,CAAA;AAED;AACaC,MAAAA,gBAAgB,GAAInB,IAAiB,IAAqB;EACnE,OAAO;AACH,IAAA,CAACiB,WAAW,CAACG,UAAU,GAAGF,eAAe,CAACE,UAAU;AACpD,IAAA,CAACH,WAAW,CAACI,WAAW,GAAGH,eAAe,CAACG,WAAW;AACtD,IAAA,CAACJ,WAAW,CAACK,MAAM,GAAGJ,eAAe,CAACI,MAAM;AAC5C,IAAA,CAACL,WAAW,CAACM,OAAO,GAAGL,eAAe,CAACK,OAAO;AAC9C,IAAA,CAACN,WAAW,CAACO,SAAS,GAAGN,eAAe,CAACM,SAAS;AAClD,IAAA,CAACP,WAAW,CAACQ,IAAI,GAAGP,eAAe,CAACO,IAAAA;AACvC,GAAA,CAACzB,IAAI,CAAC,IAAIkB,eAAe,CAACd,OAAO,CAAA;AACtC;;AC/BA;IACYsB,aAQX;AARD,CAAA,UAAYA,YAAY,EAAA;EAEpBA,YAAA,CAAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,YAAA,CAAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,YAAA,CAAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,YAAA,CAAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,YAAA,CAAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,YAAA,CAAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACf,CAAC,EARWA,YAAY,KAAZA,YAAY,GAQvB,EAAA,CAAA,CAAA,CAAA;IAEWC,sBAQX;AARD,CAAA,UAAYA,qBAAqB,EAAA;AAC7BA,EAAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EARWA,qBAAqB,KAArBA,qBAAqB,GAQhC,EAAA,CAAA,CAAA,CAAA;AAED;AACaC,MAAAA,sBAAsB,GAAI5B,IAAkB,IAA2B;EAChF,OAAO;AACH,IAAA,CAAC0B,YAAY,CAACG,QAAQ,GAAGF,qBAAqB,CAACE,QAAQ;AACvD,IAAA,CAACH,YAAY,CAACI,MAAM,GAAGH,qBAAqB,CAACG,MAAM;AACnD,IAAA,CAACJ,YAAY,CAACK,KAAK,GAAGJ,qBAAqB,CAACI,KAAK;AACjD,IAAA,CAACL,YAAY,CAACM,MAAM,GAAGL,qBAAqB,CAACK,MAAM;AACnD,IAAA,CAACN,YAAY,CAACO,IAAI,GAAGN,qBAAqB,CAACM,IAAI;AAC/C,IAAA,CAACP,YAAY,CAACQ,OAAO,GAAGP,qBAAqB,CAACO,OAAAA;AACjD,GAAA,CAAClC,IAAI,CAAC,IAAI2B,qBAAqB,CAACQ,OAAO,CAAA;AAC5C;;ACfaC,MAAAA,qBAAqB,GAAIC,KAAoB,IAAyB;AAG/E,EAAA,OAAOA,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAG;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAElB,IAAA,MAAMC,CAAC,GAAuB;MAE1BC,EAAE,EAAEJ,CAAC,CAACK,eAAe;AACrBC,MAAAA,IAAI,EAAEN,CAAC,CAACO,0BAA0B,CAACD,IAAI;AACvCE,MAAAA,WAAW,EAAER,CAAC,CAACO,0BAA0B,CAACC,WAAW;AACrDC,MAAAA,SAAS,EACL,CAAAR,qBAAA,GAAAD,CAAC,CAACU,sBAAsB,KAAA,IAAA,IAAxBT,qBAAA,CAA0BU,WAAW,GACnC,CAAAT,CAAAA,sBAAA,GAAAF,CAAC,CAACU,sBAAsB,KAAxBR,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA0BS,WAAW,IAAG,UAAU,GAClD,CAAA,uCAAA,EAA0CX,CAAC,CAACY,YAAsB,CAAA,QAAA,CAAA;AAExEC,MAAAA,kBAAkB,EAAEb,CAAC,CAACO,0BAA0B,CAACM,kBAAkB;AACnEC,MAAAA,mBAAmB,EAAEd,CAAC,CAACO,0BAA0B,CAACO,mBAAmB;AACrEC,MAAAA,cAAc,EAAEf,CAAC,CAACO,0BAA0B,CAACQ,cAAc;AAC3DC,MAAAA,aAAa,EAAEpC,gBAAgB,CAACoB,CAAC,CAACiB,gBAAgB,CAAC;AACnDC,MAAAA,cAAc,EAAE1D,iBAAiB,CAACwC,CAAC,CAAC7B,iBAAiB,CAAC;MACtDE,iBAAiB,EAAE2B,CAAC,CAAC3B,iBAAiB;MACtC8C,sBAAsB,EAAEnB,CAAC,CAACmB,sBAAsB;MAChDC,eAAe,EAAEpB,CAAC,CAACoB,eAAe;MAClChD,UAAU,EAAE4B,CAAC,CAAC5B,UAAU;AACxBiD,MAAAA,WAAW,EAAErB,CAAC,CAACO,0BAA0B,CAACc,WAAW;AACrDC,MAAAA,UAAU,EAAEtB,CAAC,CAACO,0BAA0B,CAACe,UAAU;MACnDC,WAAW,EAAExG,QAAQ,CAACmB,UAAU,CAAC8D,CAAC,CAACO,0BAA0B,CAACgB,WAAW,CAAC;MAC1EC,uBAAuB,EAAExB,CAAC,CAACwB,uBAAuB;MAElDC,sBAAsB,EAAEzB,CAAC,CAACyB,sBAAsB;MAEhDC,MAAM,EAAE1B,CAAC,CAAC0B,MAAM,CAAC3B,GAAG,CAAE4B,CAAC,IAAG;AACtB,QAAA,MAAMC,CAAC,GAAmB;UACtBxB,EAAE,EAAEuB,CAAC,CAACE,YAAY;AAClBvB,UAAAA,IAAI,EAAEqB,CAAC,CAACG,uBAAuB,CAACxB,IAAI;AACpCyB,UAAAA,UAAU,EAAE1C,sBAAsB,CAACsC,CAAC,CAACK,aAAa,CAAC;UACnDC,WAAW,EAAEN,CAAC,CAACM,WAAW;AAC1BC,UAAAA,SAAS,EAAEP,CAAC,CAACG,uBAAuB,CAACI,SAAS;AAC9CC,UAAAA,gBAAgB,EAAER,CAAC,CAACG,uBAAuB,CAACK,gBAAgB;AAC5DC,UAAAA,IAAI,EAAET,CAAC,CAACG,uBAAuB,CAACM,IAAI;AACpCC,UAAAA,QAAQ,EAAEV,CAAC,CAACG,uBAAuB,CAACO,QAAQ;AAC5CC,UAAAA,kBAAkB,EAAEX,CAAC,CAACG,uBAAuB,CAACQ,kBAAkB;AAChEC,UAAAA,cAAc,EAAEZ,CAAC,CAACG,uBAAuB,CAACS,cAAc;AACxDC,UAAAA,wBAAwB,EAAEb,CAAC,CAACG,uBAAuB,CAACU,wBAAwB;UAC5EC,IAAI,EAAEd,CAAC,CAACc,IAAI;UACZC,UAAU,EAAEf,CAAC,CAACe,UAAAA;SACjB,CAAA;AACD,QAAA,OAAOd,CAAC,CAAA;OACX,CAAA;KACJ,CAAA;AACD,IAAA,OAAOzB,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AACN;;ACnEA;;AAEE;IACUwC,iBAaX;AAbD,CAAA,UAAYA,gBAAgB,EAAA;AACxB;EACAA,gBAAA,CAAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV;EACAA,gBAAA,CAAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAoB,CAAA;AACpB;EACAA,gBAAA,CAAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAA4B,CAAA;AAC5B;EACAA,gBAAA,CAAAA,gBAAA,CAAA,uBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,uBAA6B,CAAA;AAC7B;EACAA,gBAAA,CAAAA,gBAAA,CAAA,8BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,8BAAoC,CAAA;AACpC;EACAA,gBAAA,CAAAA,gBAAA,CAAA,+BAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA,+BAAsC,CAAA;AAC1C,CAAC,EAbWA,gBAAgB,KAAhBA,gBAAgB,GAa3B,EAAA,CAAA,CAAA;;ICjBWC,gBAOX;AAPD,CAAA,UAAYA,eAAe,EAAA;EAEvBA,eAAA,CAAAA,eAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;EACjBA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,eAAA,CAAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;EAClBA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,eAAA,CAAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EAPWA,eAAe,KAAfA,eAAe,GAO1B,EAAA,CAAA,CAAA,CAAA;AAEM,MAAMC,gBAAgB,GAAG;AAC5B,EAAA,CAACD,eAAe,CAACE,OAAO,GAAG,IAAI;AAC/B,EAAA,CAACF,eAAe,CAACG,aAAa,GAAG,sBAAsB;AACvD,EAAA,CAACH,eAAe,CAACI,QAAQ,GAAG,kBAAkB;EAC9C,CAACJ,eAAe,CAACK,cAAc,GAAG,yBAAA;;;ACZtC,MAAMC,SAAS,CAAA;AAMXC,EAAAA,WAAAA,GAAA;AACI,IAAA,IAAID,SAAS,CAACE,UAAU,KAAKlF,SAAS,EAAE;AACpCgF,MAAAA,SAAS,CAACE,UAAU,GAAGC,WAAW,CAAC,MAAK;QACpC,MAAM1G,GAAG,GAAG,IAAIC,IAAI,EAAE,CAAC0G,OAAO,EAAE,CAAA;AAChC,QAAA,KAAK,MAAMC,GAAG,IAAIL,SAAS,CAACM,KAAK,EAAE;UAC/B,IAAIN,SAAS,CAACM,KAAK,CAACC,cAAc,CAACF,GAAG,CAAC,EAAE;AACrC,YAAA,MAAMG,CAAC,GAAGR,SAAS,CAACM,KAAK,CAACD,GAAG,CAAC,CAAA;AAC9B,YAAA,IAAIG,CAAC,CAACC,GAAG,GAAGhH,GAAG,EAAE;AACb,cAAA,OAAOuG,SAAS,CAACM,KAAK,CAACD,GAAG,CAAC,CAAA;AAC9B,aAAA;AACJ,WAAA;AACJ,SAAA;OACJ,EAAE,IAAI,CAAC,CAAA;AACX,KAAA;AACL,GAAA;EAEOK,GAAGA,CAACL,GAAW,EAAA;AAClB,IAAA,MAAMG,CAAC,GAAGR,SAAS,CAACM,KAAK,CAACD,GAAG,CAAC,CAAA;AAC9B,IAAA,IAAIG,CAAC,KAAKxF,SAAS,IAAIwF,CAAC,CAACC,GAAG,GAAG,IAAI/G,IAAI,EAAE,CAAC0G,OAAO,EAAE,EAAE;MACjD,OAAOI,CAAC,CAAC/H,KAAK,CAAA;AACjB,KAAA;AACL,GAAA;EAEOkI,GAAGA,CAACN,GAAW,EAAE5H,KAAU,EAAEmI,aAAqB,EAAE,EAAA;AACvDZ,IAAAA,SAAS,CAACM,KAAK,CAACD,GAAG,CAAC,GAAG;MACnB5H,KAAK;MACLgI,GAAG,EAAE,IAAI/G,IAAI,EAAE,CAAC0G,OAAO,EAAE,GAAGQ,UAAU,GAAG,IAAA;KAC5C,CAAA;AACL,GAAA;EAEOC,MAAMA,CAACR,GAAW,EAAA;IACrB,IAAIL,SAAS,CAACM,KAAK,CAACC,cAAc,CAACF,GAAG,CAAC,EAAE;AACrC,MAAA,OAAOL,SAAS,CAACM,KAAK,CAACD,GAAG,CAAC,CAAA;AAE9B,KAAA;AACL,GAAA;AAEOS,EAAAA,QAAQA,GAAA;AACXd,IAAAA,SAAS,CAACM,KAAK,GAAG,EAAE,CAAA;AACxB,GAAA;;AA7CEN,SAAS,CAEIE,UAAU,GAAA,KAAA,CAAA,CAAA;AAFvBF,SAAS,CAIIM,KAAK,GAA4B,EAAE;;ICH1CS,cAIX;AAJD,CAAA,UAAYA,aAAa,EAAA;EACrBA,aAAA,CAAAA,aAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;EACZA,aAAA,CAAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;EACTA,aAAA,CAAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACT,CAAC,EAJWA,aAAa,KAAbA,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;MAMYC,MAAM,CAAA;EAIP,OAAOC,IAAIA,CAACC,YAA2B,EAAA;IAC3C,IAAI,IAAI,CAACZ,KAAK,CAACY,YAAY,CAAC,KAAKlG,SAAS,EAAE;MACxC,IAAI,CAACsF,KAAK,CAACY,YAAY,CAAC,GAAG,IAAIlB,SAAS,EAAE,CAAA;AAC7C,KAAA;AACL,GAAA;AAEO,EAAA,OAAOU,GAAGA,CAAIS,IAAS,EAAED,YAA2B,EAAA;AAEvD,IAAA,MAAMb,GAAG,GAAGa,YAAY,CAAC/I,QAAQ,EAAE,GAAG,GAAG,GAAGgB,IAAI,CAACiI,SAAS,CAACD,IAAI,CAAC,CAAA;AAEhE,IAAA,IAAI,CAACF,IAAI,CAACC,YAAY,CAAC,CAAA;AAEvB,IAAA,OAAOG,SAAS,CAAC,IAAI,CAACf,KAAK,CAACY,YAAY,CAAC,CAACR,GAAG,CAACL,GAAG,CAAC,CAAC,CAAA;AACvD,GAAA;EAEO,OAAOM,GAAGA,CAACQ,IAAS,EAAEX,CAAM,EAAEU,YAA2B,EAAEN,UAAA,GAAqB,EAAE,EAAA;AAErF,IAAA,MAAMP,GAAG,GAAGa,YAAY,CAAC/I,QAAQ,EAAE,GAAG,GAAG,GAAGgB,IAAI,CAACiI,SAAS,CAACD,IAAI,CAAC,CAAA;AAEhE,IAAA,IAAI,CAACF,IAAI,CAACC,YAAY,CAAC,CAAA;AAEvB,IAAA,IAAI,CAACZ,KAAK,CAACY,YAAY,CAAC,CAACP,GAAG,CAACN,GAAG,EAAEgB,SAAS,CAACb,CAAC,CAAC,EAAEI,UAAU,CAAC,CAAA;AAC/D,GAAA;EAEO,aAAaU,GAAGA,CAAIH,IAAS,EAAED,YAA2B,EAAEK,CAAmB,EAAEX,UAAA,GAAqB,EAAE,EAAA;IAC3G,IAAIA,UAAU,IAAI,CAAC,EAAE;MACjB,OAAO,MAAMW,CAAC,EAAE,CAAA;AACnB,KAAA,MAAM;MACH,IAAIf,CAAC,GAAMQ,MAAM,CAACN,GAAG,CAACS,IAAI,EAAED,YAAY,CAAC,CAAA;MAEzC,IAAIV,CAAC,KAAKxF,SAAS,EAAE;AACjBwF,QAAAA,CAAC,GAAG,MAAMe,CAAC,EAAE,CAAA;QACbP,MAAM,CAACL,GAAG,CAACQ,IAAI,EAAEX,CAAC,EAAEU,YAAY,EAAEN,UAAU,CAAC,CAAA;AAChD,OAAA;AAED,MAAA,OAAOJ,CAAC,CAAA;AACX,KAAA;AACL,GAAA;AAEO,EAAA,aAAagB,KAAKA,CAACN,YAA2B,EAAEC,IAAS,EAAA;AAC5D,IAAA,MAAMd,GAAG,GAAGa,YAAY,CAAC/I,QAAQ,EAAE,GAAG,GAAG,GAAGgB,IAAI,CAACiI,SAAS,CAACD,IAAI,CAAC,CAAA;AAEhE,IAAA,IAAI,IAAI,CAACb,KAAK,CAACY,YAAY,CAAC,EAAE;MAC1B,IAAI,CAACZ,KAAK,CAACY,YAAY,CAAC,CAACL,MAAM,CAACR,GAAG,CAAC,CAAA;AACvC,KAAA;AACL,GAAA;EAEO,aAAaoB,YAAYA,CAACP,YAA2B,EAAA;AACxD,IAAA,IAAI,IAAI,CAACZ,KAAK,CAACY,YAAY,CAAC,EAAE;MAC1B,IAAI,CAACZ,KAAK,CAACY,YAAY,CAAC,CAACJ,QAAQ,EAAE,CAAA;AACtC,KAAA;AACL,GAAA;EAEO,aAAaY,QAAQA,GAAA;AACxB,IAAA,IAAI,CAACpB,KAAK,GAAG,EAAE,CAAA;AACnB,GAAA;;AA3DSU,MAAM,CAEAV,KAAK,GAAiC,EAAE,CAAA;AA6D3D,MAAMe,SAAS,GAAIb,CAAM,IAAI;AACzB,EAAA,IAAIA,CAAC,EAAE;IACH,OAAOrH,IAAI,CAACC,KAAK,CAACD,IAAI,CAACiI,SAAS,CAACZ,CAAC,CAAC,CAAC,CAAA;AACvC,GAAA;AAED,EAAA,OAAOA,CAAC,CAAA;AACZ,CAAC;;ICjFWmB,oBAkBX;AAlBD,CAAA,UAAYA,mBAAmB,EAAA;EAE3BA,mBAAA,CAAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,mBAAA,CAAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;EACXA,mBAAA,CAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB,CAAA;EAChBA,mBAAA,CAAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAyB,CAAA;EACzBA,mBAAA,CAAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;EACpBA,mBAAA,CAAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAiB,CAAA;EACjBA,mBAAA,CAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB,CAAA;EAChBA,mBAAA,CAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;EACVA,mBAAA,CAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;EACVA,mBAAA,CAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;EACVA,mBAAA,CAAAA,mBAAA,CAAA,2BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,2BAA8B,CAAA;EAC9BA,mBAAA,CAAAA,mBAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAA2B,CAAA;EAC3BA,mBAAA,CAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAA,CAAA,GAAA,OAAW,CAAA;EACXA,mBAAA,CAAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAa,CAAA;EACbA,mBAAA,CAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB,CAAA;EACjBA,mBAAA,CAAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAAmB,CAAA;AACvB,CAAC,EAlBWA,mBAAmB,KAAnBA,mBAAmB,GAkB9B,EAAA,CAAA,CAAA;;ACjBD,MAAMC,SAAS,CAAA;EAcJ,OAAOC,cAAcA,CAACC,QAAgB,EAAA;IACzC,OAAO;AACH,MAAA,CAACA,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEC,WAAW,EAAE,GAAGD,QAAQ,IAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEC,WAAW,EAAE;AAClDC,MAAAA,GAAG,EAAE,GAAG;AACRC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,GAAG,EAAE,KAAK;AACVC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,GAAG,EAAE,KAAK;AACVC,MAAAA,GAAG,EAAE,KAAK;AACVC,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,GAAG,EAAE,KAAK;AACVC,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,QAAQ;AACbC,MAAAA,GAAG,EAAE,IAAI;MACTC,GAAG,EAAE,GAAG;KACX,CAACrB,QAAQ,IAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEC,WAAW,EAAE,CAAC,CAAA;AAC9B,GAAA;;AAtCEH,SAAS,CAEGwB,SAAS,GAAG,CAACC,SAAiB,EAAEC,YAAoB,KAAY;EAC1E,IAAIA,YAAY,IAAID,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAKrI,SAAS,IAAI,EAAEqI,SAAS,CAACE,UAAU,IAAIF,SAAS,CAACE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;AAC1H,IAAA,IAAID,YAAY,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,MAAA,OAAOF,YAAY,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,GAAGJ,SAAS,CAAA;AAC5D,KAAA,MAAM;AACH,MAAA,OAAOC,YAAY,GAAG,UAAU,GAAGD,SAAS,CAAA;AAC/C,KAAA;AACJ,GAAA,MAAM;AACH,IAAA,OAAOA,SAAS,CAAA;AACnB,GAAA;AACL,CAAC;;ICZOK,oBA+BX;AA/BD,CAAA,UAAYA,mBAAmB,EAAA;AAC3BA,EAAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,mBAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;AACnEA,EAAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7CA,EAAAA,mBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjDA,EAAAA,mBAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvDA,EAAAA,mBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD,CAAA;AACrDA,EAAAA,mBAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvDA,EAAAA,mBAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D,CAAA;AAC3DA,EAAAA,mBAAA,CAAA,+BAAA,CAAA,GAAA,+BAA+D,CAAA;AAC/DA,EAAAA,mBAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D,CAAA;AAC3DA,EAAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;AACnDA,EAAAA,mBAAA,CAAA,wCAAA,CAAA,GAAA,wCAAiF,CAAA;AACjFA,EAAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;AACnDA,EAAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAE7CA,EAAAA,mBAAA,CAAA,+BAAA,CAAA,GAAA,+BAA+D,CAAA;AAC/DA,EAAAA,mBAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;AACnEA,EAAAA,mBAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE,CAAA;AAErEA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AACzDA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AAEzDA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AACzDA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AAEzDA,EAAAA,mBAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D,CAAA;AAC7DA,EAAAA,mBAAA,CAAA,oCAAA,CAAA,GAAA,oCAAyE,CAAA;AAEzEA,EAAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACzC,CAAC,EA/BWA,mBAAmB,KAAnBA,mBAAmB,GA+B9B,EAAA,CAAA,CAAA;;AChCD,IAAKC,gBASJ;AATD,CAAA,UAAKA,eAAe,EAAA;EAEhBA,eAAA,CAAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,eAAA,CAAAA,eAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,eAAA,CAAAA,eAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;EACfA,eAAA,CAAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;EAClBA,eAAA,CAAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;AACzB,CAAC,EATIA,eAAe,KAAfA,eAAe,GASnB,EAAA,CAAA,CAAA;;ACAYC,MAAAA,sBAAsB,GAAKhH,KAAqB,IAAqB;AAE9E,EAAA,OAAOA,KAAK,CAACC,GAAG,CAACgH,IAAI,IAAG;AACpB,IAAA,MAAM5G,CAAC,GAAkB;MACrB6G,SAAS,EAAED,IAAI,CAACE,UAAU;MAC1BC,YAAY,EAAEH,IAAI,CAACI,cAAc;MACjCC,IAAI,EAAEL,IAAI,CAACM,OAAO;MAClBC,QAAQ,EAAEP,IAAI,CAACQ,UAAAA;KAClB,CAAA;AACD,IAAA,OAAOpH,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AACN;;ACGaqH,MAAAA,yBAAyB,GAAIT,IAAsB,IAAuB;AAEnF,EAAA,MAAM5G,CAAC,GAAsB;IACzBsH,MAAM,EAAEV,IAAI,CAACU,MAAM;IACnBrF,IAAI,EAAE2E,IAAI,CAACW,KAAK;IAChBC,KAAK,EAAEZ,IAAI,CAACY,KAAK;IACjBC,YAAY,EAAEb,IAAI,CAACc,IAAAA;GACtB,CAAA;AAED,EAAA,IAAId,IAAI,CAACU,MAAM,KAAK,UAAU,EAAE;IAC5B,IAAIV,IAAI,CAACe,kBAAkB,IAAIf,IAAI,CAACe,kBAAkB,CAACrM,MAAM,EAAE;MAC3D0E,CAAC,CAAC4H,OAAO,GAAGhB,IAAI,CAACe,kBAAkB,CAAC/H,GAAG,CAAC7E,CAAC,KAAK;QAC1CuM,MAAM,EAAEvM,CAAC,CAACuM,MAAM;QAChBO,IAAI,EAAE9M,CAAC,CAAC+M,cAAAA;AACX,OAAA,CAAC,CAAC,CAAA;AACN,KAAA;IAED9H,CAAC,CAAC+H,SAAS,GAAG,CAAAnB,IAAI,oBAAJA,IAAI,CAAEmB,SAAS,KAAI,IAAI,CAAA;AACxC,GAAA;AAED,EAAA,OAAO/H,CAAC,CAAA;AACZ;;IC5CYgI,iBAUX;AAVD,CAAA,UAAYA,gBAAgB,EAAA;EACxBA,gBAAA,CAAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,gBAAA,CAAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;EACpBA,gBAAA,CAAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;EACnBA,gBAAA,CAAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;EAClBA,gBAAA,CAAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,gBAAA,CAAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,gBAAA,CAAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;EACfA,gBAAA,CAAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,gBAAA,CAAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;AACvB,CAAC,EAVWA,gBAAgB,KAAhBA,gBAAgB,GAU3B,EAAA,CAAA,CAAA,CAAA;AAED;;ICZYC,sBAUX;AAVD,CAAA,UAAYA,qBAAqB,EAAA;EAC7BA,qBAAA,CAAAA,qBAAA,CAAA,yBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,yBAA6B,CAAA;EAC7BA,qBAAA,CAAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAuB,CAAA;EACvBA,qBAAA,CAAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAwB,CAAA;EACxBA,qBAAA,CAAAA,qBAAA,CAAA,0BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,0BAAgC,CAAA;EAChCA,qBAAA,CAAAA,qBAAA,CAAA,wCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,wCAA8C,CAAA;EAC9CA,qBAAA,CAAAA,qBAAA,CAAA,iDAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iDAAuD,CAAA;EACvDA,qBAAA,CAAAA,qBAAA,CAAA,mCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,mCAAyC,CAAA;EACzCA,qBAAA,CAAAA,qBAAA,CAAA,sCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sCAA4C,CAAA;EAC5CA,qBAAA,CAAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,wBAA8B,CAAA;AAClC,CAAC,EAVWA,qBAAqB,KAArBA,qBAAqB,GAUhC,EAAA,CAAA,CAAA;;ACDYC,MAAAA,sBAAsB,GAAIvI,KAAsB,IAAsB;AAC/E,EAAA,OAAOA,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAG;IAAA,IAAAsI,aAAA,EAAAC,cAAA,CAAA;AAClB,IAAA,MAAMpI,CAAC,GAAmB;MACtBC,EAAE,EAAEJ,CAAC,CAACI,EAAE;MACRE,IAAI,EAAA,CAAAgI,aAAA,GAAEtI,CAAC,CAACwI,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAZF,aAAA,CAAchI,IAAI;MACxBmI,KAAK,EAAA,CAAAF,cAAA,GAAEvI,CAAC,CAACwI,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAZD,cAAA,CAAcE,KAAAA;KACxB,CAAA;AACD,IAAA,OAAOtI,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AACN;;IClBYuI,cAMX;AAND,CAAA,UAAYA,aAAa,EAAA;EACrBA,aAAA,CAAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,aAAA,CAAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,aAAA,CAAAA,aAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,aAAA,CAAAA,aAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;EACfA,aAAA,CAAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACjB,CAAC,EANWA,aAAa,KAAbA,aAAa,GAMxB,EAAA,CAAA,CAAA,CAAA;IAEWC,kBAOX;AAPD,CAAA,UAAYA,iBAAiB,EAAA;AACzBA,EAAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3BA,EAAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EAPWA,iBAAiB,KAAjBA,iBAAiB,GAO5B,EAAA,CAAA,CAAA,CAAA;AAEYC,MAAAA,kBAAkB,GAAInL,IAAmB,IAAuB;EACzE,OAAO;AACH,IAAA,CAACiL,aAAa,CAACG,KAAK,GAAGF,iBAAiB,CAACE,KAAK;AAC9C,IAAA,CAACH,aAAa,CAACI,QAAQ,GAAGH,iBAAiB,CAACE,KAAK;AACjD,IAAA,CAACH,aAAa,CAACK,YAAY,GAAGJ,iBAAiB,CAACI,YAAY;AAC5D,IAAA,CAACL,aAAa,CAACM,WAAW,GAAGL,iBAAiB,CAACK,WAAW;AAC1D,IAAA,CAACN,aAAa,CAACzJ,SAAS,GAAG0J,iBAAiB,CAAC1J,SAAAA;AAChD,GAAA,CAACxB,IAAI,CAAC,IAAIkL,iBAAiB,CAAC9K,OAAO,CAAA;AACxC;;ACXaoL,MAAAA,kBAAkB,GAAInJ,KAAkB,IAAkB;AACnE,EAAA,OAAOA,KAAK,CAACoJ,MAAM,CAAElJ,CAAC,IAAIA,CAAC,CAACI,EAAE,IAAI,CAAC,CAAC,CAACL,GAAG,CAAEC,CAAC,IAAG;IAAA,IAAAmJ,qBAAA,EAAAC,cAAA,CAAA;AAC1C,IAAA,MAAMjJ,CAAC,GACP;MACIC,EAAE,EAAEJ,CAAC,CAACI,EAAE;AACRE,MAAAA,IAAI,EAAEN,CAAC,CAACqJ,cAAc,CAAC/I,IAAI;AAC3BgJ,MAAAA,KAAK,EAAEtJ,CAAC,CAACqJ,cAAc,CAACC,KAAsB;AAC9C5B,MAAAA,KAAK,EAAE1H,CAAC,CAACqJ,cAAc,CAACE,SAAS;AACjC/I,MAAAA,WAAW,EAAER,CAAC,CAACqJ,cAAc,CAAC7I,WAAW;AACzCgJ,MAAAA,MAAM,EAAExJ,CAAC,CAACqJ,cAAc,CAACI,SAAS,KAAK,QAAQ,GAAGzJ,CAAC,CAACqJ,cAAc,CAACK,gBAAgB,GAAG1J,CAAC,CAACqJ,cAAc,CAACI,SAAS;AAChHE,MAAAA,aAAa,EAAE3J,CAAC,CAACqJ,cAAc,CAACM,aAAa;MAC7CC,QAAQ,EAAA,CAAAT,qBAAA,GAAEnJ,CAAC,CAACqJ,cAAc,CAACO,QAAQ,KAAA,IAAA,GAAAT,qBAAA,GAAI,CAAC;AACxCU,MAAAA,gBAAgB,EAAE7J,CAAC,CAACqJ,cAAc,CAACS,aAAa;AAChDC,MAAAA,SAAS,EAAE/J,CAAC,CAACqJ,cAAc,CAACU,SAAS;AACrCtM,MAAAA,IAAI,EAAEmL,kBAAkB,CAAC5I,CAAC,CAACgK,UAAU,CAAC;MACtCC,OAAO,EAAEjK,CAAC,CAACkK,MAAM;MACjBC,YAAY,EAAA,CAAAf,cAAA,GAAEpJ,CAAC,CAACoK,WAAW,KAAA,IAAA,GAAAhB,cAAA,GAAI,EAAE;MACjC3G,IAAI,EAAEzC,CAAC,CAACqK,QAAAA;KACX,CAAA;AACD,IAAA,OAAOlK,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AAEN;;ACvBamK,MAAAA,2BAA2B,GAAIxK,KAA2B,IAAkB;AACrF,EAAA,OAAOA,KAAK,CAACoJ,MAAM,CAAElJ,CAAC,IAAIA,CAAC,CAACI,EAAE,IAAI,CAAC,CAAC,CAACL,GAAG,CAAEC,CAAC,IAAG;IAAA,IAAAmJ,qBAAA,EAAAC,cAAA,CAAA;AAC1C,IAAA,MAAMmB,cAAc,GAAGvK,CAAC,CAACwK,WAAW,GAAGzP,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACwK,WAAW,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;AAC9F,IAAA,MAAMC,iBAAiB,GAAGzK,CAAC,CAACwK,WAAW,GAAGzP,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACwK,WAAW,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;AACpG,IAAA,MAAME,kBAAkB,GAAG1K,CAAC,CAACwK,WAAW,GAAGzP,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACwK,WAAW,EAAE,WAAW,CAAC,GAAG,KAAK,CAAA;AAEtG,IAAA,MAAMrK,CAAC,GACP;MACIC,EAAE,EAAEJ,CAAC,CAACI,EAAE;AACRE,MAAAA,IAAI,EAAEN,CAAC,CAACqJ,cAAc,CAAC/I,IAAI;AAC3BgJ,MAAAA,KAAK,EAAEtJ,CAAC,CAACqJ,cAAc,CAACC,KAAsB;AAC9C5B,MAAAA,KAAK,EAAE1H,CAAC,CAACqJ,cAAc,CAACE,SAAS;AACjC/I,MAAAA,WAAW,EAAER,CAAC,CAACqJ,cAAc,CAAC7I,WAAW;AACzCgJ,MAAAA,MAAM,EAAExJ,CAAC,CAACqJ,cAAc,CAACI,SAAS,KAAK,QAAQ,GAAGzJ,CAAC,CAACqJ,cAAc,CAACK,gBAAgB,GAAG1J,CAAC,CAACqJ,cAAc,CAACI,SAAS;AAChHE,MAAAA,aAAa,EAAE3J,CAAC,CAACqJ,cAAc,CAACM,aAAa;MAC7CC,QAAQ,EAAA,CAAAT,qBAAA,GAAEnJ,CAAC,CAACqJ,cAAc,CAACO,QAAQ,KAAA,IAAA,GAAAT,qBAAA,GAAI,CAAC;AACxCU,MAAAA,gBAAgB,EAAE7J,CAAC,CAACqJ,cAAc,CAACS,aAAa;AAChDC,MAAAA,SAAS,EAAE/J,CAAC,CAACqJ,cAAc,CAACU,SAAS;AACrCtM,MAAAA,IAAI,EAAEmL,kBAAkB,CAAC5I,CAAC,CAACgK,UAAU,CAAC;MACtCC,OAAO,EAAEjK,CAAC,CAACkK,MAAM;MACjBC,YAAY,EAAA,CAAAf,cAAA,GAAEpJ,CAAC,CAACoK,WAAW,KAAA,IAAA,GAAAhB,cAAA,GAAI,EAAE;MACjC3G,IAAI,EAAEzC,CAAC,CAACqK,QAAQ;MAChBG,WAAW,EAAExK,CAAC,CAACwK,WAAW;MAC1BG,sBAAsB,EAAE3K,CAAC,CAAC2K,sBAAsB;AAChDC,MAAAA,eAAe,EAAEL,cAAc;AAC/BM,MAAAA,mBAAmB,EAAEJ,iBAAiB;AACtCK,MAAAA,oBAAoB,EAAEJ,kBAAAA;KACzB,CAAA;AAED,IAAA,OAAOvK,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AAEN;;IC7CY4K,kBASX;AATD,CAAA,UAAYA,iBAAiB,EAAA;EAEzBA,iBAAA,CAAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,iBAAA,CAAAA,iBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;EACrBA,iBAAA,CAAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;EACnBA,iBAAA,CAAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,iBAAA,CAAAA,iBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;EACpBA,iBAAA,CAAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,iBAAA,CAAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACjB,CAAC,EATWA,iBAAiB,KAAjBA,iBAAiB,GAS5B,EAAA,CAAA,CAAA;;ICTWC,oBAGX;AAHD,CAAA,UAAYA,mBAAmB,EAAA;EAC3BA,mBAAA,CAAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAuB,CAAA;EACvBA,mBAAA,CAAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;AACzB,CAAC,EAHWA,mBAAmB,KAAnBA,mBAAmB,GAG9B,EAAA,CAAA,CAAA;;ICHWC,gBAIX;AAJD,CAAA,UAAYA,eAAe,EAAA;EAEvBA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,eAAA,CAAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACb,CAAC,EAJWA,eAAe,KAAfA,eAAe,GAI1B,EAAA,CAAA,CAAA;;AC4CYC,MAAAA,wBAAwB,GAAIpL,KAAwB,IAAuB;AAEpF,EAAA,OAAOA,KAAK,CAACoJ,MAAM,CAAElJ,CAAC,IAAIA,CAAC,CAACmL,MAAM,IAAI,CAAC,CAAC,CAACpL,GAAG,CAAEC,CAAC,IAAG;AAAA,IAAA,IAAAoL,iBAAA,CAAA;AAC9C,IAAA,MAAMC,cAAc,GAAGrL,CAAC,CAACsL,gBAAgB,GAAGvQ,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACsL,gBAAgB,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;AACxG,IAAA,MAAMC,iBAAiB,GAAGvL,CAAC,CAACsL,gBAAgB,GAAGvQ,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACsL,gBAAgB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;AAC9G,IAAA,MAAME,kBAAkB,GAAGxL,CAAC,CAACsL,gBAAgB,GAAGvQ,QAAQ,CAACyB,cAAc,CAACwD,CAAC,CAACsL,gBAAgB,EAAE,WAAW,CAAC,GAAG,KAAK,CAAA;AAEhH,IAAA,MAAMnL,CAAC,GAAoB;MACvBC,EAAE,EAAEJ,CAAC,CAACmL,MAAM;AACZ7K,MAAAA,IAAI,EAAEN,CAAC,CAACyL,eAAe,CAACnL,IAAI;AAC5BE,MAAAA,WAAW,EAAER,CAAC,CAACyL,eAAe,CAACjL,WAAW;AAC1CuJ,MAAAA,SAAS,EAAE/J,CAAC,CAACyL,eAAe,CAAC1B,SAAS;AACtC2B,MAAAA,0BAA0B,EAAE1L,CAAC,CAACyL,eAAe,CAACC,0BAA0B;AACxEhE,MAAAA,KAAK,EAAE1H,CAAC,CAACyL,eAAe,CAAClC,SAAS;MAClCoC,YAAY,EAAE3L,CAAC,CAAC4L,WAAW;MAC3BC,SAAS,EAAE7L,CAAC,CAAC8L,QAAQ;MACrBC,iBAAiB,EAAE/L,CAAC,CAACgM,aAAa;MAClCC,WAAW,EAAEjM,CAAC,CAACkM,SAAS;MACxBC,aAAa,EAAEnM,CAAC,CAACmM,aAAa;MAC9BC,QAAQ,EAAEpM,CAAC,CAACqM,aAAa;AACzBC,MAAAA,MAAM,EAAEtM,CAAC,CAACyL,eAAe,CAACa,MAAM;MAChCC,QAAQ,EAAEvM,CAAC,CAACuM,QAAQ;MACpB9O,IAAI,EAAEuC,CAAC,CAACwM,WAAW,KAAKvB,eAAe,CAACwB,OAAO,GAAG,SAAS,GAAG,OAAO;AACrEC,MAAAA,UAAU,EAAE1M,CAAC,CAACyL,eAAe,CAACiB,UAAU;AACxCC,MAAAA,QAAQ,EAAE3M,CAAC,CAACyL,eAAe,CAACkB,QAAQ;AACpCC,MAAAA,iBAAiB,EAAE5M,CAAC,CAACyL,eAAe,CAACmB,iBAAiB;AACtDC,MAAAA,sBAAsB,EAAE7M,CAAC,CAACyL,eAAe,CAACoB,sBAAsB;MAChEtL,WAAW,EAAExG,QAAQ,CAACmB,UAAU,CAAC8D,CAAC,CAACyL,eAAe,CAAClK,WAAW,CAAC;AAC/Dc,MAAAA,QAAQ,EAAErC,CAAC,CAACyL,eAAe,CAACpJ,QAAQ;AACpCmH,MAAAA,MAAM,EAAExJ,CAAC,CAACyL,eAAe,CAAChC,SAAS,KAAK,QAAQ,GAAGzJ,CAAC,CAACyL,eAAe,CAAC/B,gBAAgB,GAAG1J,CAAC,CAACyL,eAAe,CAAChC,SAAS;MACnHqD,KAAK,EAAE,CAAC9M,CAAC,CAAC+M,gBAAgB,IAAI,EAAE,EAC3B7D,MAAM,CAAElL,CAAC,IAAIA,CAAC,CAACgP,YAAY,KAAKhC,mBAAmB,CAACiC,mBAAmB,CAAC,CACxElN,GAAG,CAAE/B,CAAC,IAAA;AAAA,QAAA,IAAAkP,mBAAA,CAAA;QAAA,OAAK;UACR9M,EAAE,EAAEpC,CAAC,CAACmP,OAAO;UACb7M,IAAI,EAAA,CAAA4M,mBAAA,GAAElP,CAAC,CAACoP,gBAAgB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBF,mBAAA,CAAoB5M,IAAI;UAC9B+M,aAAa,EAAErP,CAAC,CAACqP,aAAa;UAC9B1B,YAAY,EAAE3N,CAAC,CAAC4N,WAAW;UAC3BW,QAAQ,EAAEvO,CAAC,CAACsP,YAAY;UACxBC,wBAAwB,EAAEvP,CAAC,CAACwP,cAAc;UAC1CC,sBAAsB,EAAEzP,CAAC,CAAC0P,iBAAiB;AAC3CC,UAAAA,yBAAyB,EAAE3P,CAAC,CAACoP,gBAAgB,CAACO,yBAAAA;SACjD,CAAA;AAAA,OAAC,CAAC;MACPC,aAAa,EAAE,CAAC5N,CAAC,CAAC4N,aAAa,IAAI,EAAE,EAAE7N,GAAG,CAAC8N,CAAC,KAAK;QAC7CC,WAAW,EAAED,CAAC,CAACC,WAAW;AAC1BC,QAAAA,gBAAgB,EAAE;AACdzN,UAAAA,IAAI,EAAEuN,CAAC,CAACE,gBAAgB,CAACzN,IAAI;AAC7B0N,UAAAA,IAAI,EAAEH,CAAC,CAACE,gBAAgB,CAACC,IAAI;AAC7BtG,UAAAA,KAAK,EAAEmG,CAAC,CAACE,gBAAgB,CAACrG,KAAK;AAC/BuG,UAAAA,OAAO,EAAEJ,CAAC,CAACE,gBAAgB,CAACE,OAAO;AACnCC,UAAAA,eAAe,EAAEL,CAAC,CAACE,gBAAgB,CAACG,eAAe;AACnDC,UAAAA,aAAa,EAAEN,CAAC,CAACE,gBAAgB,CAACI,aAAAA;AACrC,SAAA;AACJ,OAAA,CAAC,CAAC;MACHhE,YAAY,EAAA,CAAAiB,iBAAA,GAAEpL,CAAC,CAACoO,cAAc,KAAA,IAAA,GAAAhD,iBAAA,GAAI,EAAE;MACpCiD,gBAAgB,EAAErO,CAAC,CAACqO,gBAAgB;MACpCC,oBAAoB,EAAEtO,CAAC,CAACsO,oBAAoB;MAC5CC,qBAAqB,EAAEvO,CAAC,CAACuO,qBAAqB;MAC9CC,aAAa,EAAExO,CAAC,CAACwO,aAAa;MAC9BlD,gBAAgB,EAAEtL,CAAC,CAACsL,gBAAgB;AACpCmD,MAAAA,eAAe,EAAEpD,cAAc;AAC/BqD,MAAAA,mBAAmB,EAAEnD,iBAAiB;AACtCoD,MAAAA,oBAAoB,EAAEnD,kBAAkB;AACxCoD,MAAAA,sBAAsB,EAAE5O,CAAC,CAACyL,eAAe,CAACmD,sBAAAA;KAC7C,CAAA;AACD,IAAA,OAAOzO,CAAC,CAAA;AAChB,GAAC,CAAC,CAAA;AACF;;IClHY0O,qBAKX;AALD,CAAA,UAAYA,oBAAoB,EAAA;EAE5BA,oBAAA,CAAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,oBAAA,CAAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,oBAAA,CAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACf,CAAC,EALWA,oBAAoB,KAApBA,oBAAoB,GAK/B,EAAA,CAAA,CAAA;;ACIYC,MAAAA,oBAAoB,GAAIhP,KAAoB,IAAoB;AACzE,EAAA,OAAOA,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAG;IAAA,IAAAsI,aAAA,EAAAC,cAAA,CAAA;AAClB,IAAA,MAAMpI,CAAC,GAAiB;MACpBC,EAAE,EAAEJ,CAAC,CAACI,EAAE;MACRE,IAAI,EAAA,CAAAgI,aAAA,GAAEtI,CAAC,CAACwI,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAZF,aAAA,CAAchI,IAAI;MACxBmI,KAAK,EAAA,CAAAF,cAAA,GAAEvI,CAAC,CAACwI,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAZD,cAAA,CAAcE,KAAAA;KACxB,CAAA;AACD,IAAA,OAAOtI,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AACN;;AClBA;IACY4O,2BAQX;AARD,CAAA,UAAYA,0BAA0B,EAAA;EAElCA,0BAAA,CAAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;EACRA,0BAAA,CAAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,0BAAA,CAAAA,0BAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;EACjBA,0BAAA,CAAAA,0BAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;EACnBA,0BAAA,CAAAA,0BAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAA0B,CAAA;AAC1B;AACJ,CAAC,EARWA,0BAA0B,KAA1BA,0BAA0B,GAQrC,EAAA,CAAA,CAAA,CAAA;AAID;AACaC,MAAAA,iCAAiC,GAAIvR,IAAgC,IAAoC;EAClH,OAAQ;AACJ,IAAA,CAACsR,0BAA0B,CAACE,IAAI,GAAG,MAAM;AACzC,IAAA,CAACF,0BAA0B,CAACG,aAAa,GAAG,eAAe;AAC3D,IAAA,CAACH,0BAA0B,CAACI,eAAe,GAAG,iBAAiB;AAC/D,IAAA,CAACJ,0BAA0B,CAACK,MAAM,GAAG,QAAQ;IAC7C,CAACL,0BAA0B,CAACM,sBAAsB,GAAG,wBAAA;AACxD,GAAA,CAAC5R,IAAI,CAAC,IAAI,SAAS,CAAA;AACxB;;ACtBA;IACY6R,6BASX;AATD,CAAA,UAAYA,4BAA4B,EAAA;EAEpCA,4BAAA,CAAAA,4BAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;EAClBA,4BAAA,CAAAA,4BAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,4BAAA,CAAAA,4BAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,4BAAA,CAAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,4BAAA,CAAAA,4BAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,4BAAA,CAAAA,4BAAA,CAAA,kCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kCAAoC,CAAA;EACpCA,4BAAA,CAAAA,4BAAA,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gCAAkC,CAAA;AACtC,CAAC,EATWA,4BAA4B,KAA5BA,4BAA4B,GASvC,EAAA,CAAA,CAAA,CAAA;IAEWC,iCASX;AATD,CAAA,UAAYA,gCAAgC,EAAA;AACxCA,EAAAA,gCAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,gCAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,gCAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,gCAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,gCAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,gCAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE,CAAA;AACrEA,EAAAA,gCAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE,CAAA;AACjEA,EAAAA,gCAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EATWA,gCAAgC,KAAhCA,gCAAgC,GAS3C,EAAA,CAAA,CAAA,CAAA;AAED;AACaC,MAAAA,iCAAiC,GAAI/R,IAAkC,IAAsC;EACtH,OAAQ;AACJ,IAAA,CAAC6R,4BAA4B,CAACG,SAAS,GAAGF,gCAAgC,CAACE,SAAS;AACpF,IAAA,CAACH,4BAA4B,CAACI,QAAQ,GAAGH,gCAAgC,CAACG,QAAQ;AAClF,IAAA,CAACJ,4BAA4B,CAACK,cAAc,GAAGJ,gCAAgC,CAACI,cAAc;AAC9F,IAAA,CAACL,4BAA4B,CAACM,OAAO,GAAGL,gCAAgC,CAACK,OAAO;AAChF,IAAA,CAACN,4BAA4B,CAACO,8BAA8B,GAAGN,gCAAgC,CAACM,8BAA8B;AAC9H,IAAA,CAACP,4BAA4B,CAACQ,UAAU,GAAGP,gCAAgC,CAACO,UAAU;AACtF,IAAA,CAACR,4BAA4B,CAACS,gCAAgC,GAAGR,gCAAgC,CAACQ,gCAAAA;AACrG,GAAA,CAACtS,IAAI,CAAC,IAAI8R,gCAAgC,CAAC3P,OAAO,CAAA;AACvD;;AC8BaoQ,MAAAA,wBAAwB,GAAIlQ,KAAmB,IAAmB;AAE3E,EAAA,OAAOA,KAAK,CAACoJ,MAAM,CAAClJ,CAAC,IAAIA,CAAC,CAACiQ,YAAY,IAAI,CAAC,CAAC,CAAClQ,GAAG,CAACC,CAAC,IAAG;AAClD,IAAA,MAAMG,CAAC,GAAgB;MACnB+P,WAAW,EAAElQ,CAAC,CAACmQ,oBAAoB;MACnCC,aAAa,EAAEpQ,CAAC,CAACiQ,YAAY;AAC7B3P,MAAAA,IAAI,EAAEN,CAAC,CAACwI,UAAU,CAAClI,IAAI;AACvBE,MAAAA,WAAW,EAAER,CAAC,CAACwI,UAAU,CAAChI,WAAW;AACrC6P,MAAAA,0BAA0B,EAAErQ,CAAC,CAACwI,UAAU,CAAC6H,0BAA0B;AACnEC,MAAAA,MAAM,EAAEtQ,CAAC,CAACwI,UAAU,CAACe,SAAS;AAC9BgH,MAAAA,MAAM,EAAEvQ,CAAC,CAACwI,UAAU,CAACgI,UAAU;AAC/BC,MAAAA,aAAa,EAAEzQ,CAAC,CAACwI,UAAU,CAACkI,iBAAiB;AAC7CC,MAAAA,gBAAgB,EAAE3Q,CAAC,CAACwI,UAAU,CAACmI,gBAAgB;AAC/CC,MAAAA,iBAAiB,EAAE5Q,CAAC,CAACwI,UAAU,CAACoI,iBAAiB;AACjDhE,MAAAA,iBAAiB,EAAE5M,CAAC,CAACwI,UAAU,CAACoE,iBAAiB;MACjDrL,WAAW,EAAExG,QAAQ,CAACmB,UAAU,CAAC8D,CAAC,CAACwI,UAAU,CAACjH,WAAW,CAAC;AAC1DsP,MAAAA,WAAW,EAAE7Q,CAAC,CAACwI,UAAU,CAACsI,QAAQ;AAClCtH,MAAAA,MAAM,EAAExJ,CAAC,CAACwI,UAAU,CAACiB,SAAS,KAAK,QAAQ,GAAGzJ,CAAC,CAACwI,UAAU,CAACkB,gBAAgB,GAAG1J,CAAC,CAACwI,UAAU,CAACiB,SAAS;AACpGG,MAAAA,QAAQ,EAAE5J,CAAC,CAACwI,UAAU,CAACnG,QAAQ;MAG/B0O,UAAU,EAAE/Q,CAAC,CAACgR,WAAW;MACzBC,QAAQ,EAAEjR,CAAC,CAACkR,SAAS;MACrBC,kBAAkB,EAAEnR,CAAC,CAACoR,iBAAiB;MACvCC,kBAAkB,EAAErR,CAAC,CAACsR,gBAAgB;MACtCC,iBAAiB,EAAEvR,CAAC,CAACwR,eAAe;MACpCC,iBAAiB,EAAEzR,CAAC,CAAC0R,eAAe;AACpCC,MAAAA,mBAAmB,EAAEnC,iCAAiC,CAACxP,CAAC,CAAC4R,4BAA4B,CAAC;AAEtFC,MAAAA,iBAAiB,EAAE7C,iCAAiC,CAAChP,CAAC,CAAC8R,gBAAgB,CAAC;MACxEC,wBAAwB,EAAE/R,CAAC,CAACgS,WAAW;MACvCC,WAAW,EAAEjS,CAAC,CAACkS,UAAU;AAEzBC,MAAAA,SAAS,EAAEC,eAAe,CAACC,QAAQ,CAACrS,CAAC,CAAC;AACtCsS,MAAAA,eAAe,EAAEF,eAAe,CAACG,aAAa,CAACvS,CAAC,CAAC;AACjDwS,MAAAA,YAAY,EAAEJ,eAAe,CAACK,WAAW,CAACzS,CAAC,CAAC;AAC5C0S,MAAAA,WAAW,EAAEN,eAAe,CAACO,UAAU,CAAC3S,CAAC,CAAC;AAC1C4S,MAAAA,cAAc,EAAER,eAAe,CAACS,YAAY,CAAC7S,CAAC,CAAC;AAC/C8S,MAAAA,WAAW,EAAEV,eAAe,CAACW,UAAU,CAAC/S,CAAC,CAAA;KAE5C,CAAA;IAED,IAAIA,CAAC,CAACgT,cAAc,EAAE;AAClB7S,MAAAA,CAAC,CAACuB,MAAM,GAAG1B,CAAC,CAACgT,cAAc,CAACtR,MAAM,CAAC3B,GAAG,CAAC4B,CAAC,IAAIyQ,eAAe,CAACa,mBAAmB,CAACtR,CAAC,CAAC,CAAC,CAAA;AACtF,KAAA;IAED,IAAI3B,CAAC,CAACkT,gBAAgB,EAAE;AACpB/S,MAAAA,CAAC,CAACgT,EAAE,GAAGf,eAAe,CAACgB,oBAAoB,CAACpT,CAAC,CAACkT,gBAAgB,EAAE,IAAI,CAAC,CAAA;AACxE,KAAA;AAED,IAAA,OAAO/S,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AAGN;;ICtHYkT,yBASX;AATD,CAAA,UAAYA,wBAAwB,EAAA;EAEhCA,wBAAA,CAAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,wBAAA,CAAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,wBAAA,CAAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,wBAAA,CAAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,wBAAA,CAAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,wBAAA,CAAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,wBAAA,CAAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EATWA,wBAAwB,KAAxBA,wBAAwB,GASnC,EAAA,CAAA,CAAA,CAAA;AAEYC,MAAAA,4BAA4B,GAAIC,CAA2B,IAAY;EAChF,OAAO;AACH,IAAA,CAACF,wBAAwB,CAACG,SAAS,GAAG,WAAW;AACjD,IAAA,CAACH,wBAAwB,CAACI,QAAQ,GAAG,UAAU;AAC/C,IAAA,CAACJ,wBAAwB,CAACK,OAAO,GAAG,SAAS;AAC7C,IAAA,CAACL,wBAAwB,CAAC3D,QAAQ,GAAG,UAAU;AAC/C,IAAA,CAAC2D,wBAAwB,CAAC5D,SAAS,GAAG,WAAW;AACjD,IAAA,CAAC4D,wBAAwB,CAACM,MAAM,GAAG,QAAQ;IAC3C,CAACN,wBAAwB,CAACO,UAAU,GAAG,YAAA;GAC1C,CAACL,CAAC,CAAC,CAAA;AACR;;ACbA,MAAMM,8BAA8B,GAAIpW,IAAyB,IAAI;EACjE,OAAO;AACH,IAAA,CAACoH,mBAAmB,CAACiP,SAAS,GAAG,UAAU;AAC3C,IAAA,CAACjP,mBAAmB,CAAClH,MAAM,GAAG,YAAY;AAC1C,IAAA,CAACkH,mBAAmB,CAACkP,YAAY,GAAG,eAAe;AACnD,IAAA,CAAClP,mBAAmB,CAACmP,WAAW,GAAG,cAAc;AACjD,IAAA,CAACnP,mBAAmB,CAACoP,eAAe,GAAG,mBAAmB;IAC1D,CAACpP,mBAAmB,CAACgE,KAAK,GAAG,OAAA;GAChC,CAACpL,IAAI,CAAC,CAAA;AACX,CAAC,CAAA;MAEY2U,eAAe,CAAA,EAAA;AAAfA,eAAe,CAEVG,aAAa,GAAI2B,UAAsB,IAAa;AAC9D,EAAA,IAAIA,UAAU,EAAE;AACZ,IAAA,IAAIA,UAAU,CAACtC,4BAA4B,KAAKtC,4BAA4B,CAACO,8BAA8B,EAAE;AACzG,MAAA,OAAO,IAAI,CAAA;AACd,KAAA;IACD,OAAO,CAACqE,UAAU,CAAC5C,gBAAgB,KAC9B4C,UAAU,CAACxC,eAAe,KAAKwC,UAAU,CAAC9C,iBAAiB,IAAI8C,UAAU,CAACxC,eAAe,KAAK,IAAI,IAAIwC,UAAU,CAACxC,eAAe,KAAK,CAAC,CAAC,IACxIwC,UAAU,CAACpC,gBAAgB,KAAK/C,0BAA0B,CAACE,IAAI,KAE3DiF,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACI,QAAQ,IACxES,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACK,OAAO,IAAIQ,UAAU,CAACE,qBAAsB,CACjH,CAAA;AACR,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAhBQhC,eAAe,CAmBVS,YAAY,GAAIqB,UAAsB,IAAa;AAC7D,EAAA,IAAIA,UAAU,EAAE;AACZ,IAAA,OAAOA,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACK,OAAO,CAAA;AAClF,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAxBQtB,eAAe,CA0BVC,QAAQ,GAAI6B,UAAsB,IAAa;AACzD,EAAA,IAAIA,UAAU,EAAE;IACZ,OAAOA,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACG,SAAS,IACjFU,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACI,QAAQ,IACzES,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACK,OAAO,CAAA;AAC3E,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAjCQtB,eAAe,CAmCVO,UAAU,GAAIuB,UAAsB,IAAa;AAC3D,EAAA,IAAIA,UAAU,EAAE;IACZ,OAAOA,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAAC3D,QAAQ,IAC7EwE,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAAC5D,SAAS,IAC1EyE,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACO,UAAU,CAAA;AACjF,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AA1CQxB,eAAe,CA4CVK,WAAW,GAAIyB,UAAsB,IAAa;AAC5D,EAAA,IAAIA,UAAU,EAAE;AACZ,IAAA,OAAOA,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAAC5D,SAAS,CAAA;AACpF,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAjDQ2C,eAAe,CAmDVW,UAAU,GAAImB,UAAsB,IAAa;AAC3D,EAAA,IAAIA,UAAU,EAAE;AACZ,IAAA,OAAOA,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACG,SAAS,IAAIU,UAAU,CAACC,wBAAwB,KAAKd,wBAAwB,CAACI,QAAQ,CAAA;AACjK,GAAA;AACD,EAAA,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAxDQrB,eAAe,CA0DVgB,oBAAoB,GAAG,CAACiB,MAAwB,EAAEC,IAAc,KAAI;AAC9E,EAAA,IAAID,MAAM,EAAE;AACR,IAAA,MAAME,iBAAiB,GAAG;MACtBC,eAAe,EAAEH,MAAM,CAACI,WAAW;MACnCC,UAAU,EAAEL,MAAM,CAACK,UAAU;MAC7BrS,QAAQ,EAAEgS,MAAM,CAAChS,QAAQ;MACzBsS,MAAM,EAAEN,MAAM,CAACM,MAAM;MACrBC,KAAK,EAAEP,MAAM,CAACC,IAAAA;KACjB,CAAA;AAED,IAAA,IAAIA,IAAI,EAAE;MACN,OAAOC,iBAAiB,CAACK,KAAK,CAAA;AACjC,KAAA;AAED,IAAA,OAAOL,iBAAiB,CAAA;AAC3B,GAAA;AAED,EAAA,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AA5EQnC,eAAe,CA8EVa,mBAAmB,GAAI4B,KAAsB,IAAI;AAC3D,EAAA,IAAIA,KAAK,EAAE;IACP,OAAAC,QAAA,KAAYD,KAAK,EAAA;AAAEpX,MAAAA,IAAI,EAAEoW,8BAA8B,CAACgB,KAAK,CAACpX,IAAI,CAAA;AAAC,KAAA,CAAA,CAAA;AACtE,GAAA;AAED,EAAA,OAAO,IAAI,CAAA;AACf,CAAC;;AC9EQsX,MAAAA,2BAA2B,GAAI/W,CAA4B,IAAyB;AAC7F,EAAA,MAAMgX,QAAQ,GAAAF,QAAA,CACP9E,EAAAA,EAAAA,wBAAwB,CAAC,CAAChS,CAAC,CAACiX,cAAc,CAACC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAA;AACtEtH,IAAAA,aAAa,EAAE,CAAC5P,CAAC,CAACiX,cAAc,CAACC,mBAAmB,CAACtH,aAAa,IAAI,EAAE,EAAE7N,GAAG,CAAC8N,CAAC,KAAK;MAChFC,WAAW,EAAED,CAAC,CAACC,WAAW;AAC1BC,MAAAA,gBAAgB,EAAE;AACdzN,QAAAA,IAAI,EAAEuN,CAAC,CAACE,gBAAgB,CAACzN,IAAI;AAC7B0N,QAAAA,IAAI,EAAEH,CAAC,CAACE,gBAAgB,CAACC,IAAI;AAC7BtG,QAAAA,KAAK,EAAEmG,CAAC,CAACE,gBAAgB,CAACrG,KAAK;AAC/BuG,QAAAA,OAAO,EAAEJ,CAAC,CAACE,gBAAgB,CAACE,OAAO;AACnCC,QAAAA,eAAe,EAAEL,CAAC,CAACE,gBAAgB,CAACG,eAAe;AACnDC,QAAAA,aAAa,EAAEN,CAAC,CAACE,gBAAgB,CAACI,aAAAA;AACrC,OAAA;AACJ,KAAA,CAAC,CAAC;AACHgH,IAAAA,OAAO,EAAEnX,CAAC,CAACiX,cAAc,CAACE,OAAO,CAACpV,GAAG,CAAE4B,CAAC,IAAIyQ,eAAe,CAACgB,oBAAoB,CAACzR,CAAC,CAAC,CAAA;GACtF,CAAA,CAAA;EAED,IAAI3D,CAAC,CAACgV,cAAc,EAAE;AAClBgC,IAAAA,QAAQ,CAACtT,MAAM,GAAG1D,CAAC,CAACgV,cAAc,CAACtR,MAAM,CAAC3B,GAAG,CAAC4B,CAAC,IAAIyQ,eAAe,CAACa,mBAAmB,CAACtR,CAAC,CAAC,CAAC,CAAA;AAC7F,GAAA;EAED,IAAI3D,CAAC,CAACoX,YAAY,EAAE;AAChBJ,IAAAA,QAAQ,CAAC7B,EAAE,GAAGf,eAAe,CAACgB,oBAAoB,CAACpV,CAAC,CAACoX,YAAY,EAAE,IAAI,CAAC,CAAA;AAC3E,GAAA;AAED,EAAA,OAAOJ,QAAQ,CAAA;AACnB;;ICnDYK,4BAUX;AAVD,CAAA,UAAYA,2BAA2B,EAAA;EACnCA,2BAAA,CAAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;EACZA,2BAAA,CAAAA,2BAAA,CAAA,+BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,+BAAqC,CAAA;EACrCA,2BAAA,CAAAA,2BAAA,CAAA,2CAAA,CAAA,GAAA,KAAA,CAAA,GAAA,2CAAiD,CAAA;EACjDA,2BAAA,CAAAA,2BAAA,CAAA,kCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kCAAwC,CAAA;EACxCA,2BAAA,CAAAA,2BAAA,CAAA,+BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,+BAAqC,CAAA;EACrCA,2BAAA,CAAAA,2BAAA,CAAA,uCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,uCAA6C,CAAA;EAC7CA,2BAAA,CAAAA,2BAAA,CAAA,gCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gCAAsC,CAAA;EACtCA,2BAAA,CAAAA,2BAAA,CAAA,4CAAA,CAAA,GAAA,KAAA,CAAA,GAAA,4CAAkD,CAAA;EAClDA,2BAAA,CAAAA,2BAAA,CAAA,sCAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sCAA4C,CAAA;AAChD,CAAC,EAVWA,2BAA2B,KAA3BA,2BAA2B,GAUtC,EAAA,CAAA,CAAA;;ICVWC,eAKX;AALD,CAAA,UAAYA,cAAc,EAAA;EAEtBA,cAAA,CAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,cAAA,CAAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;EACPA,cAAA,CAAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EALWA,cAAc,KAAdA,cAAc,GAKzB,EAAA,CAAA,CAAA;;ICLWC,sBAIX;AAJD,CAAA,UAAYA,qBAAqB,EAAA;EAC7BA,qBAAA,CAAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,qBAAA,CAAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,qBAAA,CAAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACf,CAAC,EAJWA,qBAAqB,KAArBA,qBAAqB,GAIhC,EAAA,CAAA,CAAA;;ACOYC,MAAAA,4BAA4B,GAAIC,MAA2B,IAAc;EAElF,OAAOA,MAAM,oBAANA,MAAM,CAAEA,MAAM,CAAC1V,GAAG,CAAE2V,CAAC,IAAA;AAAA,IAAA,IAAAC,oBAAA,CAAA;IAAA,OAAK;MAC7BvV,EAAE,EAAEsV,CAAC,CAACE,QAAQ;AACdtV,MAAAA,IAAI,EAAEoV,CAAC,CAACG,iBAAiB,CAACvV,IAAI;AAC9BE,MAAAA,WAAW,EAAEkV,CAAC,CAACG,iBAAiB,CAACrV,WAAW;AAC5CkH,MAAAA,KAAK,EAAEgO,CAAC,CAACG,iBAAiB,CAACtM,SAAS;MACpCuM,eAAe,EAAEJ,CAAC,CAACI,eAAe;AAClCC,MAAAA,iBAAiB,EAAEL,CAAC,CAACG,iBAAiB,CAACE,iBAAiB,GAAGC,QAAQ,CAACN,CAAC,CAACG,iBAAiB,CAACE,iBAAwB,CAAC,GAAG,IAAI;MACxHE,wBAAwB,EAAEP,CAAC,CAACO,wBAAwB;MACpDC,wBAAwB,EAAER,CAAC,CAACQ,wBAAwB;AACpD3U,MAAAA,WAAW,EAAExG,QAAQ,CAACmB,UAAU,CAAAyZ,CAAAA,oBAAA,GAACD,CAAC,CAACG,iBAAiB,KAAnBF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqBpU,WAAW,CAAA;KACpE,CAAA;AAAA,GAAE,CAAC,CAAA;AACR;;ACfA;AACA,MAAM4U,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAMC,0BAA0B,GAAG,EAAE,CAAA;AACrC,MAAMC,qBAAqB,GAAG,CAAC,CAAA;AAE9B;AACD,IAAKC,kBAiBJ,CAAA;AAjBD,CAAA,UAAKA,kBAAkB,EAAA;AACnBA,EAAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/BA,EAAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnCA,EAAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/BA,EAAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzCA,EAAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACrC,CAAC,EAjBIA,kBAAkB,KAAlBA,kBAAkB,GAiBtB,EAAA,CAAA,CAAA,CAAA;AAGD;MACaC,KAAK,CAAA;AAKd;EACApT,WAAAA,CAAoBqT,GAAgB,EAAA;AAAA,IAAA,IAAA,CAAhBA,GAAA,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAJZC,gBAAgB,GAAiD,IAAIC,GAAG,EAAE,CAAA;IAAA,IAC1EC,CAAAA,mBAAmB,GAAW,EAAE,CAAA;IAGpB,IAAG,CAAAH,GAAA,GAAHA,GAAG,CAAA;IAEnBtS,MAAM,CAACU,QAAQ,EAAE,CAAA;AACjB,IAAA,IAAI,IAAI,CAAC4R,GAAG,CAACI,OAAO,EAAE;MAClB,MAAMC,EAAE,GAAG,IAAI,CAACL,GAAG,CAACI,OAAO,CAACC,EAAE,CAAA;AAC9BA,MAAAA,EAAE,CAAC/b,OAAO,CAACgc,oBAAoB,EAAGC,IAAuB,IAAK,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC,CAAC,CAAA;MACtFF,EAAE,CAAC/b,OAAO,CAACmc,kBAAkB,EAAE,MAAM,IAAI,CAACC,eAAe,EAAE,CAAC,CAAA;MAC5DL,EAAE,CAAC/b,OAAO,CAACqc,oBAAoB,EAAGJ,IAAuB,IAAKF,EAAE,CAAC/b,OAAO,CAACsc,uBAAuB,EAAE,MAAM,IAAI,CAACC,gBAAgB,CAACN,IAAI,CAAC,CAAC,CAAC,CAAA;MACrIF,EAAE,CAAC/b,OAAO,CAACwc,sBAAsB,EAAE,MAAM,IAAI,CAACC,qBAAqB,EAAE,CAAC,CAAA;MACtEV,EAAE,CAAC/b,OAAO,CAAC0c,4BAA4B,EAAE,MAAM,IAAI,CAACC,+BAA+B,EAAE,CAAC,CAAA;MACtFZ,EAAE,CAAC/b,OAAO,CAAC4c,2BAA2B,EAAE,MAAM,IAAI,CAACC,mBAAmB,EAAE,CAAC,CAAA;AACzEd,MAAAA,EAAE,CAAC/b,OAAO,CAAC8c,eAAe,EAAE,MAAM1T,MAAM,CAACS,YAAY,CAACV,aAAa,CAACsS,KAAK,CAAC,CAAC,CAAA;AAC3EM,MAAAA,EAAE,CAAC/b,OAAO,CAAC+c,iBAAiB,EAAE,MAAM3T,MAAM,CAACS,YAAY,CAACV,aAAa,CAACsS,KAAK,CAAC,CAAC,CAAA;AAC7EM,MAAAA,EAAE,CAAC/b,OAAO,CAACgd,WAAW,EAAGf,IAAoB,IAAK,IAAI,CAACgB,iBAAiB,EAAE,CAAC,CAAA;AAC3ElB,MAAAA,EAAE,CAAC/b,OAAO,CAACkd,kBAAkB,EAAGjB,IAA2B,IAAK,IAAI,CAACgB,iBAAiB,EAAE,CAAC,CAAA;AACzFlB,MAAAA,EAAE,CAAC/b,OAAO,CAACmd,iBAAiB,EAAGlB,IAA2B,IAAK,IAAI,CAACgB,iBAAiB,EAAE,CAAC,CAAA;AAC3F,KAAA;AACL,GAAA;AAEA;;;;;;;;;AASK;AACEG,EAAAA,cAAcA,GAAA;AACjB,IAAA,IAAI,IAAI,CAAC1B,GAAG,CAACI,OAAO,EAAE;AAClB,MAAA,MAAMlT,CAAC,GAAiByU,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC5B,GAAG,CAACI,OAAO,CAACyB,eAAe,CAAC,CAAA;MAC3E3U,CAAC,CAACgR,UAAU,GAAG5P,SAAS,CAACwB,SAAS,CAAC,IAAI,CAACkQ,GAAG,CAACI,OAAO,CAACyB,eAAe,CAAC9R,SAAS,EAAE,IAAI,CAACiQ,GAAG,CAAChQ,YAAY,CAAC,CAAA;AACrG,MAAA,OAAO9C,CAAC,CAAA;AACX,KAAA,MAAM;AACH,MAAA,MAAM,IAAI4U,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACvE,KAAA;AACL,GAAA;AAEA;;;;;;;;;AASE;EACK,MAAMC,iBAAiBA,CAACC,UAAkB,EAAA;AAC7C,IAAA,MAAMxY,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACiC,iBAAiB,CAAC,IAAI,EAAE,CAACD,UAAU,CAAC,CAAC,CAAA;AAC9D,IAAA,IAAIxY,CAAC,IAAIA,CAAC,CAAC0Y,IAAI,CAACnF,CAAC,IAAIA,CAAC,CAACiF,UAAU,KAAKA,UAAU,IAAIjF,CAAC,CAACoF,WAAW,CAAC,EAAE;AAChE,MAAA,OAAO,IAAI,CAAA;AACd,KAAA,MAAM;AACH,MAAA,OAAO,KAAK,CAAA;AACf,KAAA;AACL,GAAA;AAEA;;;;;;;;AAQE;EACK,MAAMC,qBAAqBA,CAACC,WAAqB,EAAA;IACpD,OAAO,MAAM,IAAI,CAACrC,GAAG,CAACiC,iBAAiB,CAAC,IAAI,EAAEK,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,GAAGA,WAAW,GAAG,CAACA,WAAW,CAAC,CAAC,CAAA;AAC3G,GAAA;AAEA;;;;;;;;;;;;;;AAcE;EACK,MAAMG,SAASA,GAAA;IAClB,OAAO9U,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC2C,MAAM,EAAEhV,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC0C,UAAU,CAAC,IAAI,CAAC,EAAE/C,cAAc,CAAC,CAAA;AACtH,GAAA;AAEA;;;;;;;;;;;;;;;;;;AAkBG;AACI,EAAA,MAAMgD,WAAWA,CAAC;AAAEC,IAAAA,QAAAA;MAA+D,EAAE,EAAA;AACxF,IAAA,IAAIA,QAAQ,EAAE;MACV,IAAI,CAAC3C,gBAAgB,CAAC5S,GAAG,CAACyS,kBAAkB,CAAC+C,QAAQ,EAAED,QAAQ,CAAC,CAAA;AACnE,KAAA;IAED,OAAOlV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC+C,QAAQ,EAAEpV,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC8C,iBAAiB,CAAC,IAAI,CAAC,EAAEnD,cAAc,CAAC,CAAA;AAC/H,GAAA;AAEA;;;;AAIE;EACK,MAAMoD,SAASA,GAAA;IAClB,OAAOrV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACkD,MAAM,EAAEvV,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACiD,gBAAgB,CAAC,IAAI,CAAC,EAAEtD,cAAc,CAAC,CAAA;AAC5H,GAAA;AAEA;;;;;;;;;;;;;AAaE;EACK,MAAMuD,yBAAyBA,GAAA;IAClC,OAAOxV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACqD,kBAAkB,EAAE1V,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACoD,wBAAwB,CAAC,IAAI,CAAC,EAAEzD,cAAc,CAAC,CAAA;AAChJ,GAAA;AAEA;;;;;;;;;;;;;;;;;AAiBE;EAEK,MAAM0D,aAAaA,GAAA;IACtB,OAAO3V,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACwD,UAAU,EAAE7V,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACuD,cAAc,CAAC,IAAI,CAAC,EAAE5D,cAAc,CAAC,CAAA;AAC9H,GAAA;AAEA;;;;;;;;;AASE;EACK,MAAM6D,YAAYA,CAACC,OAAe,EAAA;AACrC,IAAA,MAAMja,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACwD,YAAY,CAAC,IAAI,EAAEC,OAAO,CAAC,CAAA;AAEpD,IAAA,MAAMvW,CAAC,GAAwB;MAC3BwW,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AAED,IAAA,OAAO3W,CAAC,CAAA;AACZ,GAAA;AAEA;;;;;;;;;;;;;;;;;AAiBG;EACI,MAAM4W,kBAAkBA,GAAA;IAC3B,OAAOpW,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACiE,eAAe,EAAEtW,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACgE,mBAAmB,CAAC,IAAI,CAAC,EAAErE,cAAc,CAAC,CAAA;AACxI,GAAA;AAEC;;;;;;;;;;;;;AAaC;AAEK,EAAA,MAAMsE,sBAAsBA,CAAC;IAAEC,KAAK;IAAEC,MAAM;AAAEvB,IAAAA,QAAAA;GAAQ,GAAmF,EAAE,EAAA;AAC9I,IAAA,IAAIA,QAAQ,EAAE;MACV,IAAI,CAAC3C,gBAAgB,CAAC5S,GAAG,CAACyS,kBAAkB,CAACsE,YAAY,EAAExB,QAAQ,CAAC,CAAA;AACvE,KAAA;IACD,OAAOlV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACsE,YAAY,EAAE3W,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACqE,uBAAuB,CAAC,IAAI,EAAEH,KAAK,EAAEC,MAAM,CAAC,EAAExE,cAAc,CAAC,CAAA;AACxJ,GAAA;AAEA;;;;;;;;;;;;;;;;;AAiBK;EACE,MAAM2E,gBAAgBA,GAAA;IACzB,OAAO5W,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACyE,aAAa,EAAE9W,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACwE,iBAAiB,CAAC,IAAI,CAAC,EAAE7E,cAAc,CAAC,CAAA;AACpI,GAAA;AAEC;;;;;;;;;;;;;;;;;AAiBI;EACE,MAAM8E,iBAAiBA,GAAA;IAC1B,OAAO/W,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC4E,cAAc,EAAEjX,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC2E,kBAAkB,CAAC,IAAI,CAAC,EAAEhF,cAAc,CAAC,CAAA;AACtI,GAAA;AAEA;;;;;;;;;;;;;;;;;;;AAmBG;AACI,EAAA,MAAMiF,YAAYA,CAAC;AAAEhC,IAAAA,QAAAA;MAAiE,EAAE,EAAA;AAC3F,IAAA,IAAIA,QAAQ,EAAE;MACV,IAAI,CAAC3C,gBAAgB,CAAC5S,GAAG,CAACyS,kBAAkB,CAAC+E,GAAG,EAAEjC,QAAQ,CAAC,CAAA;AAC9D,KAAA;IAED,OAAOlV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC+E,GAAG,EAAEpX,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC8E,gBAAgB,CAAC,IAAI,CAAC,EAAEnF,cAAc,CAAC,CAAA;AACzH,GAAA;AAEA;;;;AAIE;EACK,MAAMoF,YAAYA,CAACC,WAAmB,EAAA;AACzC,IAAA,MAAMxb,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACiF,cAAc,CAAC,IAAI,EAAED,WAAW,CAAC,CAAA;IAC1D,IAAI,CAAChF,GAAG,CAACkF,oBAAoB,CAAC,IAAI,EAAE1b,CAAC,CAAC2b,UAAU,CAAC,CAAA;AAEjD,IAAA,MAAMjY,CAAC,GAAwB;MAC3BwW,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAM;MACrBuB,QAAQ,EAAE5b,CAAC,CAAC6B,YAAAA;KACf,CAAA;AAED,IAAA,OAAO6B,CAAC,CAAA;AACZ,GAAA;AAEA;;;;AAIE;EACK,MAAMmY,mBAAmBA,CAACC,UAAkB,EAAA;AAC/C,IAAA,MAAM9b,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACuF,YAAY,CAAC,IAAI,EAAED,UAAU,CAAC,CAAA;AAEvD,IAAA,MAAMpY,CAAC,GAAwB;MAC3BwW,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AAED,IAAA,OAAO3W,CAAC,CAAA;AACZ,GAAA;AAEA;;;;AAIE;AACK,EAAA,MAAMsY,yBAAyBA,CAACF,UAAkB,EAAEzN,gBAAwB,EAAA;AAC/E,IAAA,MAAMrO,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACyF,iBAAiB,CAAC,IAAI,EAAEH,UAAU,EAAEzN,gBAAgB,CAAC,CAAA;AAE9E,IAAA,MAAM3K,CAAC,GAA8B;MACjCwW,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AAED,IAAA,OAAO3W,CAAC,CAAA;AACZ,GAAA;AAEA;;;;;;;;;;;;;;;;;AAiBK;AACE,EAAA,MAAMwY,kBAAkBA,CAAC;AAAE9C,IAAAA,QAAAA;MAA2D,EAAE,EAAA;AAC3F,IAAA,IAAIA,QAAQ,EAAE;MACV,IAAI,CAAC3C,gBAAgB,CAAC5S,GAAG,CAACyS,kBAAkB,CAAC6F,cAAc,EAAE/C,QAAQ,CAAC,CAAA;AACzE,KAAA;IAED,OAAOlV,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC6F,cAAc,EAAElY,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC4F,oBAAoB,CAAC,IAAI,CAAC,EAAEjG,cAAc,CAAC,CAAA;AACxI,GAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;EACI,MAAMkG,yBAAyBA,CAAClM,oBAA4B,EAAA;IAC/D,OAAO,IAAI,CAACqG,GAAG,CAAC8F,mBAAmB,CAAC,IAAI,EAAEnM,oBAAoB,CAAC,CAAA;AACnE,GAAA;AAEA;;;;AAIE;EACK,MAAMoM,oBAAoBA,CAACpM,oBAA4B,EAAA;AAC1D,IAAA,MAAMnQ,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAAC+F,oBAAoB,CAAC,IAAI,EAAEpM,oBAAoB,CAAC,CAAA;AAEzE,IAAA,MAAMzM,CAAC,GAAkC;MACrCwW,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AAED,IAAA,OAAO3W,CAAC,CAAA;AACZ,GAAA;AAEA;;;;;;;;;;;;;;;;;AAiBG;AACI,EAAA,MAAM8Y,cAAcA,CAACC,UAAiC,EAAEC,iBAA2B,EAAA;IACtF,OAAOxY,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAACqG,YAAY,EAAE1Y,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAACoG,gBAAgB,CAAC,IAAI,EAAEH,UAAU,EAAEC,iBAAiB,CAAC,EAAEvG,cAAc,CAAC,CAAA;AACjK,GAAA;AAEA;;;;;;;;;;;AAWE;AACK,EAAA,MAAM0G,gBAAgBA,CAAC;IAAEC,IAAI;IAAEC,EAAE;IAAEC,YAAY;AAAE5D,IAAAA,QAAAA;GAAQ,GAAyG,EAAE,EAAA;AACvK,IAAA,IAAIA,QAAQ,EAAE;MACV,IAAI,CAAC3C,gBAAgB,CAAC5S,GAAG,CAACyS,kBAAkB,CAAC2G,aAAa,EAAE7D,QAAQ,CAAC,CAAA;AACxE,KAAA;AAED,IAAA,OAAO,MAAM,IAAI,CAAC5C,GAAG,CAAC0G,iBAAiB,CAAC,IAAI,EAAEJ,IAAI,EAAEC,EAAE,EAAEC,YAAY,CAAC,CAAA;AACzE,GAAA;AAEA;;;;AAIE;EACK,MAAMG,mBAAmBA,CAACC,WAAmB,EAAA;IAChD,OAAO,MAAM,IAAI,CAAC5G,GAAG,CAAC6G,oBAAoB,CAACD,WAAW,CAAC,CAAA;AAC3D,GAAA;AAEA;;;;AAIG;EACI,MAAME,sBAAsBA,CAACF,WAAmB,EAAA;AACnD,IAAA,MAAMpd,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAAC+G,oBAAoB,CAAC,IAAI,EAAEH,WAAW,CAAC,CAAA;IAEhE,OAAO;MACHlD,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AACL,GAAA;AAEA;;;;AAIE;EACK,MAAMmD,0BAA0BA,GAAA;IACnC,MAAMxd,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACiH,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAEtD,OAAO;MACHvD,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AACL,GAAA;AAEA;;;;AAIG;AACI,EAAA,MAAMqD,gCAAgCA,CAACN,WAAmB,EAAEO,IAAa,EAAA;AAC5E,IAAA,MAAM3d,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACkH,gCAAgC,CAAC,IAAI,EAAEN,WAAW,EAAEO,IAAI,CAAC,CAAA;IAElF,OAAO;MACHzD,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AACL,GAAA;AAEA;;;;AAIG;EAEI,MAAMuD,kBAAkBA,CAACR,WAAmB,EAAA;AAC/C,IAAA,MAAMpd,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACoH,kBAAkB,CAAC,IAAI,EAAER,WAAW,CAAC,CAAA;IAE9D,OAAO;MACHlD,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AACL,GAAA;AAEA;;;;AAIG;EAEI,MAAMwD,sBAAsBA,GAAA;IAC/B,MAAM7d,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACqH,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAErD,OAAO;MACH3D,QAAQ,EAAEla,CAAC,CAACma,OAAO;MACnBC,WAAW,EAAEpa,CAAC,CAACqa,MAAAA;KAClB,CAAA;AACL,GAAA;AAEA;;AAEE;EACK,MAAMyD,eAAeA,CAACC,SAAiB,EAAA;AAC1C,IAAA,MAAM/d,CAAC,GAAG,MAAM,IAAI,CAACwW,GAAG,CAACwH,gBAAgB,CAAC,IAAI,EAAED,SAAS,EAAE,EAAE,CAAC,CAAA;IAE9D,OAAO;MACHE,YAAY,EAAEje,CAAC,CAACie,YAAAA;KACnB,CAAA;AACL,GAAA;EAEQ,MAAMjH,YAAYA,CAACD,IAAuB,EAAA;IAC9C,MAAMmH,SAAS,GAAwB,MAAMha,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC+E,GAAG,EAAEpX,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC8E,gBAAgB,CAAC,IAAI,CAAC,EAAEnF,cAAc,CAAC,CAAA;AAC3J,IAAA,MAAMgI,KAAK,GAAGD,SAAS,CAACE,SAAS,CAACpgB,CAAC,IAAIA,CAAC,CAACoC,EAAE,KAAK2W,IAAI,CAAC1W,eAAe,CAAC,CAAA;IACrE6d,SAAS,CAACC,KAAK,CAAC,CAAC/f,UAAU,GAAG2Y,IAAI,CAAC3Y,UAAU,CAAA;IAC7C,IAAI,CAACigB,YAAY,CAAC/H,kBAAkB,CAAC+E,GAAG,EAAE6C,SAAS,CAAC,CAAA;AACxD,GAAA;EAEQ,MAAMhH,eAAeA,GAAA;IACzB,MAAMoH,OAAO,GAAG,MAAM,IAAI,CAAC9H,GAAG,CAAC8E,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,CAAC+C,YAAY,CAAC/H,kBAAkB,CAAC+E,GAAG,EAAEiD,OAAO,CAAC,CAAA;AACtD,GAAA;EAEQ,MAAMjH,gBAAgBA,CAACN,IAAuB,EAAA;AAClD,IAAA,IAAIA,IAAI,CAACoD,OAAO,KAAKxX,gBAAgB,CAAC4b,MAAM,EAAE;AAAA,MAAA,IAAAC,qBAAA,CAAA;MAC1C,MAAMN,SAAS,GAAwB,MAAMha,MAAM,CAACM,GAAG,CAAC8R,kBAAkB,CAAC+E,GAAG,EAAEpX,aAAa,CAACsS,KAAK,EAAE,MAAM,IAAI,CAACC,GAAG,CAAC8E,gBAAgB,CAAC,IAAI,CAAC,EAAEnF,cAAc,CAAC,CAAA;MAC3J,MAAMsI,QAAQ,GAAsBP,SAAS,CAACxF,IAAI,CAAC1a,CAAC,IAAIA,CAAC,CAAC0D,MAAM,CAACgX,IAAI,CAAC/W,CAAC,IAAIA,CAAC,CAACvB,EAAE,KAAK2W,IAAI,CAAClV,YAAY,CAAC,CAAC,CAAA;MACvG,MAAM6c,SAAS,IAAAF,qBAAA,GAAGC,QAAQ,CAAC/c,MAAM,CAACgX,IAAI,CAAC/W,CAAC,IAAIA,CAAC,CAACvB,EAAE,KAAK2W,IAAI,CAAClV,YAAY,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAArD2c,qBAAA,CAAuDzc,UAAU,CAAA;MAEnF,IACI0c,QAAQ,CAACtd,sBAAsB,IAC/Bsd,QAAQ,CAACrgB,UAAU,KAAK,CAAC,IACzBsgB,SAAS,KAAKtf,qBAAqB,CAACO,OAAO,IAC3C+e,SAAS,KAAKtf,qBAAqB,CAACM,IAAI,EAC1C;QACE,MAAMif,gBAAgB,GAAG,MAAM,IAAI,CAACnI,GAAG,CAAC8E,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC9D,IAAI,CAAC+C,YAAY,CAAC/H,kBAAkB,CAAC+E,GAAG,EAAEsD,gBAAgB,CAAC,CAAA;AAC9D,OAAA;AACJ,KAAA;AACL,GAAA;EAEQ,MAAMpH,qBAAqBA,GAAA;IAC/B,MAAM+G,OAAO,GAAG,MAAM,IAAI,CAAC9H,GAAG,CAAC8C,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,CAAC+E,YAAY,CAAC/H,kBAAkB,CAAC+C,QAAQ,EAAEiF,OAAO,CAAC,CAAA;AAC3D,GAAA;EAEQ,MAAM7G,+BAA+BA,GAAA;IACzC,MAAM6G,OAAO,GAAG,MAAM,IAAI,CAAC9H,GAAG,CAAC4F,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACzD,IAAI,CAACiC,YAAY,CAAC/H,kBAAkB,CAAC6F,cAAc,EAAEmC,OAAO,CAAC,CAAA;AACjE,GAAA;EAEQ,MAAM3G,mBAAmBA,GAAA;IAC7B,MAAM2G,OAAO,GAAG,MAAM,IAAI,CAAC9H,GAAG,CAAC0G,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,CAACmB,YAAY,CAAC/H,kBAAkB,CAAC2G,aAAa,EAAEqB,OAAO,CAAC,CAAA;AAChE,GAAA;AAEQ,EAAA,MAAMD,YAAYA,CAACO,UAA8B,EAAEN,OAAY,EAAA;IACnEpa,MAAM,CAACL,GAAG,CAAC+a,UAAU,EAAEN,OAAO,EAAEra,aAAa,CAACsS,KAAK,CAAC,CAAA;IAEpD,MAAM6C,QAAQ,GAAG,IAAI,CAAC3C,gBAAgB,CAAC7S,GAAG,CAACgb,UAAU,CAAC,CAAA;AACtD,IAAA,IAAIxF,QAAQ,EAAE;MACVA,QAAQ,CAACkF,OAAO,CAAC,CAAA;AACpB,KAAA;AACL,GAAA;EAEQ,MAAMvG,iBAAiBA,GAAA;IAC3B7T,MAAM,CAACQ,KAAK,CAACT,aAAa,CAACsS,KAAK,EAAED,kBAAkB,CAACuI,QAAQ,CAAC,CAAA;IAC9D3a,MAAM,CAACQ,KAAK,CAACT,aAAa,CAACsS,KAAK,EAAED,kBAAkB,CAACwI,IAAI,CAAC,CAAA;AAC9D,GAAA;AAEA;;;;;;;;;;;;;;;;;;AAkBE;EACK,MAAMC,UAAUA,CAAC7V,MAA8D,EAAA;AAAA,IAAA,IAAA8V,KAAA,GAAA,IAAA,CAAA;AAElF,IAAA,MAAMC,SAAS,GAAW,CAAG/V,EAAAA,MAAM,oBAANA,MAAM,CAAEgW,cAAc,CAAA,CAAA,EAAIhW,MAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEiW,eAAe,CAAE,CAAA,CAAA;AAEhF,IAAA,IAAIF,SAAS,KAAK,IAAI,CAACtI,mBAAmB,EAAE;MACxC,IAAI,CAACA,mBAAmB,GAAGsI,SAAS,CAAA;MACpC,IAAI,CAAClH,iBAAiB,EAAE,CAAA;AAC3B,KAAA;IAED,IAAIqH,QAAQ,GAAqB,EAAE,CAAA;IACnC,IAAIC,IAAI,GAAiB,EAAE,CAAA;AAE3BD,IAAAA,QAAQ,GAAG,MAAMlb,MAAM,CAACM,GAAG,CAAmB8R,kBAAkB,CAACuI,QAAQ,EAAE5a,aAAa,CAACsS,KAAK,EAAE,kBAAW;AAEvG,MAAA,MAAM+I,SAAS,GAAG,MAAMN,KAAI,CAACxI,GAAG,CAACuI,UAAU,CAAC,IAAI,EAAE7V,MAAM,CAAC,CAAA;AACzD,MAAA,MAAMqW,KAAK,GAAGD,SAAS,CAACxf,KAAK,CAACC,GAAG,CAAEyf,EAAE,IAAIA,EAAE,CAACC,GAAG,CAAC,CAAA;AAEhDvb,MAAAA,MAAM,CAACL,GAAG,CAACyS,kBAAkB,CAACwI,IAAI,EAAES,KAAK,EAAEtb,aAAa,CAACsS,KAAK,EAAEF,qBAAqB,CAAC,CAAA;MACtF,OAAOiJ,SAAS,CAACxf,KAAK,CAAA;KAEzB,EAAEsW,0BAA0B,CAAC,CAAA;AAG9B,IAAA,IAAIgJ,QAAQ,CAAC3jB,MAAM,GAAG,CAAC,EAAE;AACrB4jB,MAAAA,IAAI,GAAG,MAAMnb,MAAM,CAACM,GAAG,CAAe8R,kBAAkB,CAACwI,IAAI,EAAE7a,aAAa,CAACsS,KAAK,EAAE,kBAAW;QAE3F,MAAMmJ,eAAe,GAAGN,QAAQ,CAACrf,GAAG,CAACyf,EAAE,IAAIA,EAAE,CAACN,cAAc,CAAC,CAAA;QAC7D,OAAO,CAAC,MAAMF,KAAI,CAACxI,GAAG,CAACmJ,MAAM,CAAC,IAAI,EAAE;AAAED,UAAAA,eAAAA;SAAiB,CAAC,EAAE5f,KAAK,CAAA;OAElE,EAAEuW,qBAAqB,CAAC,CAAA;AAC5B,KAAA;AAED,IAAA,OAAO+I,QAAQ,CAACrf,GAAG,CAAEyf,EAAE,IAAG;AACtB,MAAA,IAAII,GAAG,GAAA9K,QAAA,CAAA,EAAA,EACA0K,EAAE,EAAA;AACLC,QAAAA,GAAG,EAAEJ,IAAI,CAAC3G,IAAI,CAAE/W,CAAC,IAAIA,CAAC,CAACud,cAAc,KAAKM,EAAE,CAACN,cAAc,CAAA;OAC9D,CAAA,CAAA;AACD,MAAA,OAAOU,GAAG,CAAA;AACd,KAAC,CAAC,CAAA;AAEN,GAAA;AAEA;;;;;;;;;;;;;AAaE;EACK,MAAMC,YAAYA,CAAC3W,MAAkC,EAAA;AAExD,IAAA,IAAI,CAACA,MAAM,CAACgW,cAAc,EAAE;AACxB,MAAA,MAAM,IAAI5G,KAAK,CAAC,4CAA4C,CAAC,CAAA;AAChE,KAAA;AAED,IAAA,MAAMwH,MAAM,GAAG,MAAM,IAAI,CAACtJ,GAAG,CAACqJ,YAAY,CAAC,IAAI,EAAE3W,MAAM,CAAC,CAAA;AAExD,IAAA,OAAO4W,MAAM,CAAA;AACjB,GAAA;AAEA;;;;;;;;;;;;;AAaE;EACK,MAAMC,aAAaA,CAAC7W,MAAkC,EAAA;AAEzD,IAAA,IAAI,CAACA,MAAM,CAACgW,cAAc,EAAE;AACxB,MAAA,MAAM,IAAI5G,KAAK,CAAC,6CAA6C,CAAC,CAAA;AACjE,KAAA;AAED,IAAA,MAAMwH,MAAM,GAAG,MAAM,IAAI,CAACtJ,GAAG,CAACuJ,aAAa,CAAC,IAAI,EAAE7W,MAAM,CAAC,CAAA;AAEzD,IAAA,OAAO4W,MAAM,CAAA;AACjB,GAAA;AACH;;AC9vBD,MAAME,qBAAqB,GAAIC,aAAuB,IAA4B;AAC9E,EAAA,IAAIA,aAAa,IAAIA,aAAa,CAACxkB,MAAM,EAAE;IACvC,OAAOwkB,aAAa,CAAClgB,GAAG,CAAC,CAACC,CAAC,EAAEkgB,CAAC,MAAM;MAAEC,KAAK,EAAED,CAAC,GAAG,CAAC;AAAEE,MAAAA,MAAM,EAAEpgB,CAAAA;AAAC,KAAE,CAAC,CAAC,CAAA;AACpE,GAAA;AAED,EAAA,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAED,MAAMqgB,+BAA+B,GAAGA,CAACC,IAAyB,EAAEhM,IAAc,KAAsB;AACpG,EAAA,IAAIgM,IAAI,EAAE;AACN,IAAA,MAAMngB,CAAC,GAAoB;MACvBqU,eAAe,EAAE,CAAA8L,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAE9L,eAAe,KAAI8L,IAAI,CAACC,aAAa;MAC5D7L,UAAU,EAAE4L,IAAI,CAAC5L,UAAU;MAC3BrS,QAAQ,EAAEie,IAAI,CAACE,iBAAiB;MAChCJ,MAAM,EAAEE,IAAI,CAACG,kBAAkB;MAC/B7L,KAAK,EAAE0L,IAAI,CAAC1L,KAAAA;KACf,CAAA;AAED,IAAA,IAAIN,IAAI,EAAE;MACN,OAAOnU,CAAC,CAACyU,KAAK,CAAA;AACjB,KAAA;AAED,IAAA,OAAOzU,CAAC,CAAA;AACX,GAAA;AAED,EAAA,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAEM,MAAMugB,uBAAuB,GAAIC,KAAyB,IAAyB;AACtF,EAAA,IAAIA,KAAK,EAAE;AACP,IAAA,MAAMxgB,CAAC,GAAwB;MAC3BygB,QAAQ,EAAED,KAAK,CAACC,QAAQ;AACxBtgB,MAAAA,IAAI,EAAEqgB,KAAK,CAACE,iBAAiB,CAACvgB,IAAI;AAClCE,MAAAA,WAAW,EAAEmgB,KAAK,CAACE,iBAAiB,CAACrgB,WAAW;AAChDsgB,MAAAA,KAAK,EAAEH,KAAK,CAACE,iBAAiB,CAACC,KAAK;MACpCC,cAAc,EAAEJ,KAAK,CAACI,cAAc;AACpCC,MAAAA,OAAO,EAAEhB,qBAAqB,CAACW,KAAK,CAACV,aAAa,CAAC;AACnDgB,MAAAA,KAAK,EAAEN,KAAK,CAACO,SAAS,CAACnhB,GAAG,CAAC4B,CAAC,IAAI0e,+BAA+B,CAAC1e,CAAC,CAAC,CAAC;AACnEwR,MAAAA,EAAE,EAAEkN,+BAA+B,CAACM,KAAK,CAACvL,YAAY,EAAE,IAAI,CAAA;KAC/D,CAAA;AAED,IAAA,OAAOjV,CAAC,CAAA;AACX,GAAA;AAED,EAAA,OAAO,IAAI,CAAA;AACf,CAAC;;AClDD,IAAYghB,oBAQX,CAAA;AARD,CAAA,UAAYA,oBAAoB,EAAA;EAC5BA,oBAAA,CAAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,oBAAA,CAAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;EACrBA,oBAAA,CAAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB,CAAA;EACxBA,oBAAA,CAAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,oBAAA,CAAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;EACdA,oBAAA,CAAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAyB,CAAA;EACzBA,oBAAA,CAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACf,CAAC,EARWA,oBAAoB,KAApBA,oBAAoB,GAQ/B,EAAA,CAAA,CAAA,CAAA;AAED,IAAYC,oBAKX,CAAA;AALD,CAAA,UAAYA,oBAAoB,EAAA;AAC5BA,EAAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrCA,EAAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnCA,EAAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EALWA,oBAAoB,KAApBA,oBAAoB,GAK/B,EAAA,CAAA,CAAA,CAAA;AAED,IAAYC,sBAIX,CAAA;AAJD,CAAA,UAAYA,sBAAsB,EAAA;EAC9BA,sBAAA,CAAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;EACjBA,sBAAA,CAAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;EACfA,sBAAA,CAAAA,sBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACX,CAAC,EAJWA,sBAAsB,KAAtBA,sBAAsB,GAIjC,EAAA,CAAA,CAAA,CAAA;AAED,IAAYC,yBAMX,CAAA;AAND,CAAA,UAAYA,yBAAyB,EAAA;EACjCA,yBAAA,CAAAA,yBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;EACPA,yBAAA,CAAAA,yBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,yBAAA,CAAAA,yBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB,CAAA;EACxBA,yBAAA,CAAAA,yBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;EACrBA,yBAAA,CAAAA,yBAAA,CAAA,iCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iCAAmC,CAAA;AACvC,CAAC,EANWA,yBAAyB,KAAzBA,yBAAyB,GAMpC,EAAA,CAAA,CAAA;;ACZM,MAAMC,wBAAwB,GAAIzhB,KAAwB,IAAwB;EACrF,OAAOA,KAAK,CAACoJ,MAAM,CAAClJ,CAAC,IAAIA,CAAC,CAACwhB,eAAe,KAAKtjB,SAAS,IAAI8B,CAAC,CAACwhB,eAAe,IAAI,CAAC,CAAC,CAACzhB,GAAG,CAAEC,CAAC,IAAG;AACzF,IAAA,MAAMG,CAAC,GAAqB;MACxB0H,IAAI,EAAE7H,CAAC,CAAC6H,IAAI;MACZ4Z,QAAQ,EAAEzhB,CAAC,CAACyhB,QAAQ;MACpBC,SAAS,EAAE1hB,CAAC,CAAC0hB,SAAS;MACtBF,eAAe,EAAExhB,CAAC,CAACwhB,eAAe;MAClCG,kBAAkB,EAAE3hB,CAAC,CAAC2hB,kBAAkB;MACxCC,kBAAkB,EAAE5hB,CAAC,CAAC4hB,kBAAkB;MACxCC,oBAAoB,EAAE7hB,CAAC,CAAC6hB,oBAAoB;MAC5CC,uBAAuB,EAAE9hB,CAAC,CAAC8hB,uBAAuB;MAClDC,wBAAwB,EAAE/hB,CAAC,CAAC+hB,wBAAwB;MACpDC,KAAK,EAAEhiB,CAAC,CAACgiB,KAAAA;KACZ,CAAA;AACD,IAAA,OAAO7hB,CAAC,CAAA;AACZ,GAAC,CAAC,CAAA;AACN,CAAC;;ACND,MAAM8hB,cAAc,GAAG,kDAAkD,CAAA;AACzE,MAAMC,aAAa,GAAG,kDAAkD,CAAA;AACxE,MAAMC,aAAa,GAAG,4BAA4B,CAAA;AAClD,MAAMC,eAAe,GAAG,IAAI,CAAA;AAkB5B,MAAMC,WAAW,CAAA;EAablf,WAAAA,CAA2Bmf,aAAqB,EAAUC,aAAqB,EAAUC,aAA4B,EAAEC,UAAoB,EAAE,EAAA;AAAA,IAAA,IAAAC,gBAAA,CAAA;AAAA,IAAA,IAAA,CAAlHJ,aAAA,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAA+BC,aAAA,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAA+BC,aAAA,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAXjFG,SAAS,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACTC,KAAK,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACLC,WAAW,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACXC,UAAU,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACXtc,YAAY,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAEXuc,MAAM,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACNC,OAAO,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACPC,aAAa,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACdrM,OAAO,GAAA,KAAA,CAAA,CAAA;IAEa,IAAa,CAAA0L,aAAA,GAAbA,aAAa,CAAA;IAAkB,IAAa,CAAAC,aAAA,GAAbA,aAAa,CAAA;IAAkB,IAAa,CAAAC,aAAA,GAAbA,aAAa,CAAA;AAElG,IAAA,IAAI,CAACO,MAAM,GAAGN,OAAO,CAACM,MAAM,IAAKzkB,OAAe,CAAA;AAEhD,IAAA,IAAI,IAAI,CAACykB,MAAM,CAACG,MAAM,KAAKhlB,SAAS,EAAE;MAClC,IAAI,CAAC6kB,MAAM,CAACG,MAAM,GAAG,IAAI,CAACH,MAAM,CAACI,IAAI,CAAA;AACxC,KAAA;AAED,IAAA,IAAI,CAACH,OAAO,GAAGP,OAAO,CAACO,OAAO,IAAI,EAAE,CAAA;AACpC,IAAA,IAAI,CAACC,aAAa,GAAGR,OAAO,CAACQ,aAAa,IAAI,KAAK,CAAA;AACnD,IAAA,IAAI,CAACrM,OAAO,GAAG6L,OAAO,CAAC7L,OAAO,CAAA;IAE9B,IAAI,CAAC+L,SAAS,GAAGN,WAAW,CAACe,YAAY,CAACd,aAAa,CAAC,CAAA;IACxD,IAAI,CAACM,KAAK,GAAGP,WAAW,CAACgB,cAAc,CAACf,aAAa,CAAC,CAAA;AAEtD,IAAA,IAAI,CAAC9b,YAAY,GAAG6b,WAAW,CAACiB,YAAY,CAAChB,aAAa,KAAA,CAAAI,gBAAA,GAAID,OAAO,CAAC7L,OAAO,qBAAf8L,gBAAA,CAAiBJ,aAAa,CAAC,CAAA,CAAA;IAE7F,IAAI,CAACA,aAAa,GAAGD,WAAW,CAACkB,mBAAmB,CAACjB,aAAa,CAAC,CAAA;AAEvE,GAAA;EAEO,OAAOkB,eAAeA,CAAClB,aAAqB,EAAA;AAE/C,IAAA,IAAImB,MAAM,GAAGnB,aAAa,CAAC7mB,MAAM,KAAK,EAAE,GAAG6mB,aAAa,CAACoB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AAE/E,IAAA,IAAID,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG,EAAE;AAClCA,MAAAA,MAAM,GAAG,EAAE,CAAA;AACd,KAAA;AACD,IAAA,OAAOA,MAAM,CAAA;AACjB,GAAA;EAEO,OAAOE,QAAQA,CAACrB,aAAqB,EAAA;IAExC,OAAOA,aAAa,CAAC7mB,MAAM,KAAK,EAAE,GAAGua,QAAQ,CAACsM,aAAa,CAACoB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AAE1F,GAAA;EAEO,OAAOH,mBAAmBA,CAACjB,aAAqB,EAAA;AACnD,IAAA,OAAOA,aAAa,CAACoB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACzC,GAAA;EAEO,OAAON,YAAYA,CAACd,aAAqB,EAAA;AAC5C,IAAA,OAAOL,cAAc,CAACnmB,OAAO,CAAC,UAAU,EAAEumB,WAAW,CAACmB,eAAe,CAAClB,aAAa,CAAC,CAAC,CAAA;AACzF,GAAA;EAEO,OAAOe,cAAcA,CAACf,aAAqB,EAAA;AAC9C,IAAA,OAAOJ,aAAa,CAACpmB,OAAO,CAAC,UAAU,EAAEumB,WAAW,CAACmB,eAAe,CAAClB,aAAa,CAAC,CAAC,CAAA;AACxF,GAAA;EAEO,OAAOgB,YAAYA,CAAChB,aAAqB,EAAA;AAC5C,IAAA,OAAOH,aAAa,CAACrmB,OAAO,CAAC,UAAU,EAAEumB,WAAW,CAACmB,eAAe,CAAClB,aAAa,CAAC,CAAC,CAAA;AACxF,GAAA;AAEQ,EAAA,MAAMsB,IAAIA,CAAIC,OAAY,EAAEC,SAAmB,EAAEC,cAAuB,EAAA;IAG5E,IAAI,IAAI,CAACf,OAAO,CAAC5mB,QAAQ,CAACynB,OAAO,CAACG,GAAG,CAAC,EAAE;MACpC,IAAI,CAACjB,MAAM,CAACI,IAAI,CAAC,KAAK,EAAEU,OAAO,CAAC,CAAA;AACnC,KAAA;AAED,IAAA,IAAIE,cAAc,EAAE;MAChBF,OAAO,CAACE,cAAc,GAAGA,cAAc,CAAA;AAC1C,KAAA;AAED,IAAA,IAAIjE,MAAW,CAAA;IAEf,IAAI;MACA,MAAMmE,SAAS,GAAG,IAAIrnB,IAAI,EAAE,CAAC0G,OAAO,EAAE,CAAA;AACtCwc,MAAAA,MAAM,GAAG,MAAM,IAAI,CAAC0C,aAAa,CAACqB,OAAO,EAAE,IAAI,CAAClB,SAAS,EAAEmB,SAAS,CAAC,CAAA;MACrE,MAAMI,OAAO,GAAG,IAAItnB,IAAI,EAAE,CAAC0G,OAAO,EAAE,CAAA;MAEpC,IAAI,IAAI,CAAC2f,aAAa,EAAE;QACpB,IAAI,CAACF,MAAM,CAACG,MAAM,CAAC,gBAAgB,IAAIgB,OAAO,GAAGD,SAAS,CAAC,CAAC,CAAA;AAC/D,OAAA;KAEJ,CAAC,OAAO1nB,CAAC,EAAE;MACR,IAAI,CAACwmB,MAAM,CAACxkB,KAAK,CAAC,mDAAmDhC,CAAC,CAACsnB,OAAO,CAAA,CAAE,EAAE;QAAEM,GAAG,EAAE,IAAI,CAACxB,SAAS;AAAEyB,QAAAA,OAAO,EAAEP,OAAO;QAAEtlB,KAAK,EAAEhC,CAAC,CAACsnB,OAAAA;AAAO,OAAE,CAAC,CAAA;MAC9I,MAAM,IAAIvL,KAAK,CAAC,CAAA,gDAAA,EAAmD/b,CAAC,CAACsnB,OAAO,EAAE,CAAC,CAAA;AAClF,KAAA;IAED,IAAI,IAAI,CAACb,OAAO,CAAC5mB,QAAQ,CAACynB,OAAO,CAACG,GAAG,CAAC,EAAE;MACpC,IAAI,CAACjB,MAAM,CAACI,IAAI,CAAC,KAAK,EAAErD,MAAM,CAAC,CAAA;AAClC,KAAA;AAED,IAAA,IAAIgE,SAAS,EAAE;AACX,MAAA,IAAIhL,KAAK,CAACC,OAAO,CAAC+G,MAAM,CAAC,EAAE;AACvB,QAAA,KAAK,MAAM3jB,GAAG,IAAI2jB,MAAkB,EAAE;AAClC,UAAA,MAAMuE,GAAG,GAAqBhoB,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;UAC7C,IAAI,IAAI,CAAC6mB,OAAO,CAAC5mB,QAAQ,CAACioB,GAAG,CAACL,GAAG,CAAC,EAAE;YAChC,IAAI,CAACjB,MAAM,CAACI,IAAI,CAAC,KAAK,EAAErD,MAAM,CAAC,CAAA;AAClC,WAAA;AACD,UAAA,IAAIuE,GAAG,CAACL,GAAG,KAAKF,SAAS,EAAE;AACvB,YAAA,OAAOO,GAAU,CAAA;AACpB,WAAA;AACJ,SAAA;QACD,IAAI,CAACtB,MAAM,CAACxkB,KAAK,CAAC,CAAoDulB,iDAAAA,EAAAA,SAAW,EAAA,EAAE;AAAEM,UAAAA,OAAO,EAAEP,OAAO;AAAE7O,UAAAA,QAAQ,EAAE8K,MAAAA;AAAM,SAAE,CAAC,CAAA;AAC7H,OAAA,MAAM;AACH,QAAA,OAAOA,MAAM,CAAA;AAChB,OAAA;AACJ,KAAA,MAAM;AACH,MAAA,IAAIhH,KAAK,CAACC,OAAO,CAAC+G,MAAM,CAAC,EAAE;AACvB,QAAA,IAAIA,MAAM,CAACrkB,MAAM,KAAK,CAAC,EAAE;UACrB,MAAM4oB,GAAG,GAAGhoB,IAAI,CAACC,KAAK,CAACwjB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;UACjC,IAAI,IAAI,CAACkD,OAAO,CAAC5mB,QAAQ,CAACioB,GAAG,CAACL,GAAG,CAAC,EAAE;YAChC,IAAI,CAACjB,MAAM,CAACI,IAAI,CAAC,KAAK,EAAErD,MAAM,CAAC,CAAA;AAClC,WAAA;AACD,UAAA,OAAOuE,GAAG,CAAA;AACb,SAAA,MAAM;AACH,UAAA,IAAI,CAACtB,MAAM,CAACxkB,KAAK,CAAC,sCAAsC,EAAE;AAAE6lB,YAAAA,OAAO,EAAEP,OAAO;AAAE7O,YAAAA,QAAQ,EAAE8K,MAAAA;AAAM,WAAE,CAAC,CAAA;AACpG,SAAA;AACJ,OAAA;AACD,MAAA,OAAOA,MAAM,CAAA;AAChB,KAAA;AACL,GAAA;EAEQwE,YAAYA,CAAqBC,WAAmB,EAAEP,GAAY,EAAE1F,UAA6B,EAAE,EAAA;IAEvG,MAAMuF,OAAO,GAAA/O,QAAA,CAAA;AACT;AACA;MACA0P,OAAO,EAAE,IAAI,CAAClC,aAAa;MAC3BmC,SAAS,EAAE,IAAI,CAAClC,aAAa;AAC7BmC,MAAAA,WAAW,EAAEH,WAAW;MACxBP,GAAG;AACHhpB,MAAAA,IAAI,EAAED,QAAQ,CAACC,IAAI,EAAE;AACrB2pB,MAAAA,EAAE,EAAE,IAAI/nB,IAAI,EAAE,CAAC0G,OAAO,EAAE;AAAA,KAAA,EACrBgb,OAAO,CACb,CAAA;IAED,IAAIuF,OAAO,CAACa,WAAW,KAAKxmB,SAAS,IAAI2lB,OAAO,CAACa,WAAW,KAAK,IAAI,EAAE;MACnE,OAAOb,OAAO,CAACa,WAAW,CAAA;AAC7B,KAAA;IAED,IAAIb,OAAO,CAACY,SAAS,KAAKvmB,SAAS,IAAI2lB,OAAO,CAACY,SAAS,KAAK,IAAI,EAAE;MAC/D,OAAOZ,OAAO,CAACY,SAAS,CAAA;AAC3B,KAAA;AAED,IAAA,OAAOZ,OAAc,CAAA;AACzB,GAAA;EAEO,MAAMe,qBAAqBA,CAACL,WAAmB,EAAEM,SAAiB,EAAEvG,UAAe,EAAE,EAAA;IACxF,MAAMwG,YAAY,GAAG,IAAI,CAACR,YAAY,CAAWC,WAAW,EAAEzpB,OAAO,CAACiqB,KAAK,EAAE;MACzEF,SAAS;AACTvG,MAAAA,OAAAA;AACH,KAAA,CAAC,CAAA;AAEF,IAAA,MAAM0G,aAAa,GAAG,MAAM,IAAI,CAACpB,IAAI,CAAMkB,YAAY,EAAEhqB,OAAO,CAACmqB,cAAc,CAAC,CAAA;AAChF,IAAA,OAAOD,aAAa,CAAA;AACxB,GAAA;EAEO,MAAME,mBAAmBA,CAACX,WAAmB,EAAExG,SAAiB,EAAEoH,KAAwB,EAAEC,QAAA,GAAmB,EAAE,EAAA;AAAA,IAAA,IAAApG,KAAA,GAAA,IAAA,CAAA;AAEpH,IAAA,IAAIjB,SAAS,KAAK7f,SAAS,IAAI6f,SAAS,KAAK,IAAI,IAAIA,SAAS,CAACsH,IAAI,IAAItH,SAAS,CAACsH,IAAI,EAAE,KAAK,EAAE,EAAE;AAC5FtH,MAAAA,SAAS,GAAGqE,eAAe,CAAA;AAC9B,KAAA;IAED,MAAMpN,QAAQ,GAAG,MAAM9Q,MAAM,CAACM,GAAG,CAA0B,CAAGuZ,EAAAA,SAAS,CAAI,CAAA,EAAA,IAAI,CAACuE,aAAiB,CAAA,CAAA,EAAA,IAAI,CAACC,aAAe,CAAA,CAAA,EAAEte,aAAa,CAACqhB,YAAY,EAAE,kBAAW;MAE1J,MAAMC,QAAQ,GAAGvG,KAAI,CAACsF,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAAC0qB,wBAAwB,EAAE;AAC/HzH,QAAAA,SAAS,EAAEqE,eAAe;AAC1BqD,QAAAA,SAAS,EAAE,CAAC;AACZN,QAAAA,KAAAA;AACH,OAAA,CAAC,CAAA;AAEF,MAAA,MAAMO,MAAM,GAAG,MAAM1G,KAAI,CAAC4E,IAAI,CAA0B2B,QAAQ,EAAEzqB,OAAO,CAAC6qB,yBAAyB,CAAC,CAAA;MAEpG,IAAI5H,SAAS,KAAKqE,eAAe,EAAE;AAAA,QAAA,IAAAwD,oBAAA,CAAA;QAC/B,MAAMC,QAAQ,GAAG7G,KAAI,CAACsF,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAAC0qB,wBAAwB,EAAE;UAC/HzH,SAAS;AACT0H,UAAAA,SAAS,EAAE,CAAC;AACZN,UAAAA,KAAAA;AACH,SAAA,CAAC,CAAA;AAEF,QAAA,MAAMW,MAAM,GAAG,MAAM9G,KAAI,CAAC4E,IAAI,CAA0BiC,QAAQ,EAAE/qB,OAAO,CAAC6qB,yBAAyB,CAAC,CAAA;QAEpGxN,MAAM,CAAC4N,IAAI,CAAAH,CAAAA,oBAAA,GAACE,MAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAE7H,YAAY,YAAA2H,oBAAA,GAAI,EAAE,CAAC,CAACI,OAAO,CAAEC,CAAC,IAAG;UACjDP,MAAM,CAACzH,YAAY,CAACgI,CAAC,CAAC,GAAGH,MAAM,CAAC7H,YAAY,CAACgI,CAAC,CAAC,CAAA;AACnD,SAAC,CAAC,CAAA;AACL,OAAA;AAED,MAAA,OAAOP,MAAM,CAAA;KAEhB,EAAEN,QAAQ,CAAE,CAAA;AAEb,IAAA,OAAOpQ,QAAQ,CAAA;AACnB,GAAA;AAEO,EAAA,MAAMkR,iBAAiBA,CAAC3B,WAAmB,EAAEa,WAAmB,EAAE,EAAA;AAAA,IAAA,IAAAe,MAAA,GAAA,IAAA,CAAA;AAErE,IAAA,OAAOjiB,MAAM,CAACM,GAAG,EAA0B,EAAA,IAAI,CAAC8d,aAAmB,CAAA,GAAA,EAAA,IAAI,CAACC,aAAa,CAAE,CAAA,EAAEte,aAAa,CAACmiB,SAAS,EAAE,kBAAW;MAEzH,MAAMvC,OAAO,GAAGsC,MAAI,CAAC7B,YAAY,CAA4CC,WAAW,EAAEzpB,OAAO,CAACurB,IAAI,CAAC,CAAA;MAEvG,OAAOF,MAAI,CAACvC,IAAI,CAAuBC,OAAO,EAAE/oB,OAAO,CAACwrB,aAAa,CAAC,CAAA;KAEzE,EAAElB,QAAQ,CAAC,CAAA;AAEhB,GAAA;EAEO,MAAMmB,gBAAgBA,CAAChC,WAAmB,EAAA;IAE7C,MAAMV,OAAO,GAAG,IAAI,CAACS,YAAY,CAAwBC,WAAW,EAAEzpB,OAAO,CAAC0rB,QAAQ,EAAE;AACpF7K,MAAAA,UAAU,EAAE5gB,QAAQ,CAACC,IAAI,EAAE;AAC9B,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMgF,CAAC,GAAG,MAAM,IAAI,CAAC4jB,IAAI,CAAmBC,OAAO,EAAE/oB,OAAO,CAAC+c,iBAAiB,CAAC,CAAA;AAE/E7X,IAAAA,CAAC,CAACuG,SAAS,GAAGzB,SAAS,CAACwB,SAAS,CAACtG,CAAC,CAACuG,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAA;AAEjE,IAAA,OAAOxG,CAAC,CAAA;AACZ,GAAA;AAEO,EAAA,MAAMymB,kBAAkBA,CAAClC,WAAmB,EAAEmC,sBAA8B,EAAA;IAE/E,MAAM7C,OAAO,GAAG,IAAI,CAACS,YAAY,CAAWC,WAAW,EAAEzpB,OAAO,CAAC6rB,kCAAkC,EAAE;AACjGD,MAAAA,sBAAAA;AACH,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAAC9C,IAAI,CAACC,OAAO,EAAE/oB,OAAO,CAAC8rB,mCAAmC,CAAC,CAAA;AAChF,GAAA;AAEO,EAAA,MAAMnO,iBAAiBA,CAAC8L,WAAmB,EAAE/L,UAAoB,EAAA;IAEpE,MAAMqL,OAAO,GAAG,IAAI,CAACS,YAAY,CAAgCC,WAAW,EAAEzpB,OAAO,CAAC+rB,2BAA2B,EAAE;AAC/GrO,MAAAA,UAAAA;AACH,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMsO,OAAO,GAAG,MAAM,IAAI,CAAClD,IAAI,CAA4BC,OAAO,EAAE/oB,OAAO,CAACisB,4BAA4B,CAAC,CAAA;AAEzG,IAAA,OAAOD,OAAO,CAACE,QAAQ,IAAI,EAAE,CAAA;AACjC,GAAA;AAEO,EAAA,MAAMjI,UAAUA,CAACwF,WAAmB,EAAErb,MAA8D,EAAE6a,cAAuB,EAAA;AAEhI,IAAA,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAA0CC,WAAW,EAAEzpB,OAAO,CAACmsB,uBAAuB,EAAE/d,MAAM,CAAC,CAAA;AAChI,IAAA,OAAO,MAAM,IAAI,CAAC0a,IAAI,CAAsBC,OAAO,EAAE/oB,OAAO,CAACosB,wBAAwB,EAAEnD,cAAc,CAAC,CAAA;AAC1G,GAAA;AAEO,EAAA,MAAMpE,MAAMA,CAAC4E,WAAmB,EAAErb,MAAqC,EAAA;AAC1E,IAAA,MAAM2a,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAACqsB,0BAA0B,EAAEje,MAAM,CAAC,CAAA;IAC3I,OAAO,MAAM,IAAI,CAAC0a,IAAI,CAA0BC,OAAO,EAAE/oB,OAAO,CAACssB,2BAA2B,CAAC,CAAA;AACjG,GAAA;AAEO,EAAA,MAAMvH,YAAYA,CAAC0E,WAAmB,EAAEjG,OAAmC,EAAA;AAC9E,IAAA,MAAMuF,OAAO,GAAG,IAAI,CAACS,YAAY,CAA8CC,WAAW,EAAEzpB,OAAO,CAACusB,gBAAgB,EAAE/I,OAAO,CAAC,CAAA;IAC9H,OAAO,MAAM,IAAI,CAACsF,IAAI,CAAwBC,OAAO,EAAE/oB,OAAO,CAACmd,iBAAiB,CAAC,CAAA;AACrF,GAAA;AAEO,EAAA,MAAM8H,aAAaA,CAACwE,WAAmB,EAAEjG,OAAmC,EAAA;AAC/E,IAAA,MAAMuF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAgDC,WAAW,EAAEzpB,OAAO,CAACwsB,iBAAiB,EAAEhJ,OAAO,CAAC,CAAA;IACjI,OAAO,MAAM,IAAI,CAACsF,IAAI,CAAyBC,OAAO,EAAE/oB,OAAO,CAACkd,kBAAkB,CAAC,CAAA;AACvF,GAAA;EAEO,MAAMuP,eAAeA,CAAChD,WAAmB,EAAER,cAAuB,EAAEyD,kBAA2B,KAAK,EAAA;IAEvG,MAAM3D,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAAC2sB,qBAAqB,EAAE;AAAED,MAAAA,eAAAA;AAAe,KAAE,CAAC,CAAA;AAEnJ,IAAA,MAAMxS,QAAQ,GAAG,MAAM,IAAI,CAAC4O,IAAI,CAA0BC,OAAO,EAAE/oB,OAAO,CAAC4sB,sBAAsB,EAAE3D,cAAc,CAAC,CAAA;AAElH,IAAA,IAAI/O,QAAQ,IAAIA,QAAQ,CAACkJ,SAAS,EAAE;AAChClJ,MAAAA,QAAQ,CAACkJ,SAAS,CAAC8H,OAAO,CAAChoB,CAAC,IAAG;QAE3B,IAAIA,CAAC,CAACoD,eAAe,KAAKlD,SAAS,IAAIF,CAAC,CAACoD,eAAe,KAAK,IAAI,EAAE;UAAA,IAAAumB,qBAAA,EAAAC,sBAAA,CAAA;AAC/D,UAAA,MAAMC,YAAY,GAAG7pB,CAAC,CAACoD,eAAe,IAAI,CAAAumB,qBAAA,GAAA3pB,CAAC,CAACuC,0BAA0B,aAA5BonB,qBAAA,CAA8B5mB,cAAc,GAAG,GAAG,IAAA,CAAA6mB,sBAAA,GAAG5pB,CAAC,CAACuC,0BAA0B,KAAA,IAAA,GAAA,KAAA,CAAA,GAA5BqnB,sBAAA,CAA8B7mB,cAAc,CAAA,GAAG,EAAE,CAAC,CAAA;AACjJ/C,UAAAA,CAAC,CAACuC,0BAA0B,CAACD,IAAI,GAAGvF,QAAQ,CAACW,UAAU,CAACsC,CAAC,CAACuC,0BAA0B,CAACD,IAAI,EAAE,aAAa,EAAEunB,YAAY,CAAC,CAAA;AACvH7pB,UAAAA,CAAC,CAACuC,0BAA0B,CAACC,WAAW,GAAGzF,QAAQ,CAACW,UAAU,CAACsC,CAAC,CAACuC,0BAA0B,CAACC,WAAW,EAAE,aAAa,EAAEqnB,YAAY,CAAC,CAAA;AACrI7pB,UAAAA,CAAC,CAACuC,0BAA0B,CAACe,UAAU,GAAGvG,QAAQ,CAACW,UAAU,CAACsC,CAAC,CAACuC,0BAA0B,CAACe,UAAU,EAAE,aAAa,EAAEumB,YAAY,CAAC,CAAA;AACnI7pB,UAAAA,CAAC,CAAC0D,MAAM,CAACskB,OAAO,CAACrkB,CAAC,IAAG;AACjBA,YAAAA,CAAC,CAACG,uBAAuB,CAACxB,IAAI,GAAGvF,QAAQ,CAACW,UAAU,CAACiG,CAAC,CAACG,uBAAuB,CAACxB,IAAI,EAAE,aAAa,EAAEunB,YAAY,CAAC,CAAA;AACjHlmB,YAAAA,CAAC,CAACG,uBAAuB,CAACQ,kBAAkB,GAAGvH,QAAQ,CAACW,UAAU,CAACiG,CAAC,CAACG,uBAAuB,CAACQ,kBAAkB,EAAE,aAAa,EAAEulB,YAAY,CAAC,CAAA;AACjJ,WAAC,CAAC,CAAA;AACL,SAAA;AACL,OAAC,CAAC,CAAA;AACL,KAAA;AAED,IAAA,OAAO7S,QAAQ,CAAA;AACnB,GAAA;EAEO,MAAMsG,gBAAgBA,CAACiJ,WAAmB,EAAA;AAC7C,IAAA,OAAO1kB,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC0nB,eAAe,CAAChD,WAAW,CAAC,EAAErG,SAAS,CAAC,CAAA;AACrF,GAAA;AAEO,EAAA,MAAMxC,oBAAoBA,CAAC6I,WAAmB,EAAE5I,UAAkB,EAAA;IACrE,MAAMkI,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAACgtB,sBAAsB,EAAE;AAC5HnM,MAAAA,UAAAA;AACH,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACiI,IAAI,CAA0BC,OAAO,EAAE/oB,OAAO,CAACsc,uBAAuB,CAAC,CAAA;AAC7F,GAAA;AAEO,EAAA,MAAMqE,cAAcA,CAAC8I,WAAmB,EAAElkB,eAAuB,EAAE0nB,QAAiB,EAAA;IACvF,IAAI,CAAC1nB,eAAe,EAAE;AAClB,MAAA,MAAM,IAAIiY,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACzC,KAAA;AAED,IAAA,MAAMqD,UAAU,GAAG5gB,QAAQ,CAACC,IAAI,EAAE,CAAA;IAElC,MAAM6oB,OAAO,GAAG,IAAI,CAACS,YAAY,CAAsCC,WAAW,EAAEzpB,OAAO,CAACktB,mBAAmB,EAAE;MAC7G3nB,eAAe;AACfsb,MAAAA,UAAAA;AACH,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMsM,mBAAmB,GAAG,MAAM,IAAI,CAACrE,IAAI,CAAoBC,OAAO,EAAE/oB,OAAO,CAACqc,oBAAoB,CAAC,CAAA;AAErG;AACA;AAEA,IAAA,MAAM+Q,MAAM,GAAW;AACnB,MAAA,CAACvlB,gBAAgB,CAAC4b,MAAM,GAAG,IAAI;AAC/B,MAAA,CAAC5b,gBAAgB,CAACwlB,YAAY,GAAG,oBAAoB;AACrD,MAAA,CAACxlB,gBAAgB,CAACylB,oBAAoB,GAAG,qBAAqB;AAC9D,MAAA,CAACzlB,gBAAgB,CAAC0lB,qBAAqB,GAAG,mBAAmB;MAC7D,CAAC1lB,gBAAgB,CAAC2lB,4BAA4B,GAAG,2BAAA;AACpD,KAAA,CAACL,mBAAmB,CAAC9N,OAAO,CAAC,IAAI,OAAO,CAAA;AAEzC,IAAA,MAAM,IAAI,CAACyK,qBAAqB,CAACL,WAAW,EAAE,kBAAkB,EAAE;MAC9DlkB,eAAe;MACf6nB,MAAM;AACNH,MAAAA,QAAAA;AACH,KAAA,CAAC,CAAA;IAEF,OAAAjT,QAAA,KAAWmT,mBAAmB,EAAA;AAAEtM,MAAAA,UAAAA;AAAU,KAAA,CAAA,CAAA;AAC9C,GAAA;AAEO,EAAA,MAAMI,YAAYA,CAACwI,WAAmB,EAAEzI,UAAkB,EAAA;IAC7D,IAAI,CAACA,UAAU,EAAE;AACb,MAAA,MAAM,IAAIxD,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACxC,KAAA;IACD,MAAMuL,OAAO,GAAG,IAAI,CAACS,YAAY,CAAoDC,WAAW,EAAEzpB,OAAO,CAACytB,qBAAqB,EAAE;AAC9HC,MAAAA,aAAa,EAAE1M,UAAAA;AACjB,KAAA,CAAC,CAAA;AAEF,IAAA,MAAM2M,GAAG,GAAG,MAAM,IAAI,CAAC7E,IAAI,CAA2BC,OAAO,EAAE/oB,OAAO,CAACwc,sBAAsB,CAAC,CAAA;AAE9F,IAAA,OAAOmR,GAAG,CAAA;AACd,GAAA;AAEO,EAAA,MAAMxM,iBAAiBA,CAACsI,WAAmB,EAAEzI,UAAkB,EAAEzN,gBAAwB,EAAA;IAC5F,IAAI,CAACyN,UAAU,EAAE;AACb,MAAA,MAAM,IAAIxD,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACxC,KAAA;IAED,MAAMuL,OAAO,GAAG,IAAI,CAACS,YAAY,CAA8CC,WAAW,EAAEzpB,OAAO,CAAC4tB,+BAA+B,EAAE;AACjIvd,MAAAA,MAAM,EAAE2Q,UAAU;AAClBzN,MAAAA,gBAAgB,EAAEA,gBAAAA;AACrB,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMoa,GAAG,GAAG,MAAM,IAAI,CAAC7E,IAAI,CAAwBC,OAAO,EAAE/oB,OAAO,CAAC6tB,gCAAgC,CAAC,CAAA;AAErG,IAAA,OAAOF,GAAG,CAAA;AACd,GAAA;AAEO,EAAA,MAAMlM,oBAAoBA,CAACgI,WAAmB,EAAEpU,oBAA4B,EAAA;IAC/E,IAAI,CAACA,oBAAoB,EAAE;AACvB,MAAA,MAAM,IAAImI,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACpD,KAAA;IACD,MAAMuL,OAAO,GAAG,IAAI,CAACS,YAAY,CAAwDC,WAAW,EAAEzpB,OAAO,CAAC8tB,2BAA2B,EAAE;AACvIzY,MAAAA,oBAAAA;AACH,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMsY,GAAG,GAAG,MAAM,IAAI,CAAC7E,IAAI,CAA6BC,OAAO,EAAE/oB,OAAO,CAAC0c,4BAA4B,CAAC,CAAA;AAEtG,IAAA,OAAOiR,GAAG,CAAA;AACd,GAAA;AAEO,EAAA,MAAMzO,YAAYA,CAACuK,WAAmB,EAAEsE,MAAc,EAAA;IACzD,IAAI,CAACA,MAAM,EAAE;AACT,MAAA,MAAM,IAAIvQ,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC3C,KAAA;IACD,MAAMuL,OAAO,GAAG,IAAI,CAACS,YAAY,CAA4CC,WAAW,EAAEzpB,OAAO,CAACguB,qBAAqB,EAAE;AACrHD,MAAAA,MAAAA;AACH,KAAA,CAAC,CAAA;AAEF,IAAA,MAAMJ,GAAG,GAAG,MAAM,IAAI,CAAC7E,IAAI,CAAuBC,OAAO,EAAE/oB,OAAO,CAACiuB,sBAAsB,CAAC,CAAA;AAE1F,IAAA,OAAON,GAAG,CAAA;AACd,GAAA;EAEO,MAAMO,gBAAgBA,CAACzE,WAAmB,EAAE7J,KAAgB,GAAA,EAAE,EAAEC,MAAA,GAAiB,CAAC,EAAA;IAErF,MAAMkJ,OAAO,GAAG,IAAI,CAACS,YAAY,CAAoDC,WAAW,EAAEzpB,OAAO,CAACmuB,0BAA0B,EAAE;MAClIvO,KAAK;AACLC,MAAAA,MAAAA;AACH,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACiJ,IAAI,CAA2BC,OAAO,EAAE/oB,OAAO,CAACouB,2BAA2B,CAAC,CAAA;AAElG,GAAA;AAEO,EAAA,MAAMC,aAAaA,CAAC5E,WAAmB,EAAER,cAAuB,EAAA;IACnE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAA6BC,WAAW,EAAEzpB,OAAO,CAACsuB,sBAAsB,CAAC,CAAA;AAC1G,IAAA,OAAO,MAAM,IAAI,CAACxF,IAAI,CAAwBC,OAAO,EAAE/oB,OAAO,CAACuuB,uBAAuB,EAAEtF,cAAc,CAAC,CAAA;AAC3G,GAAA;EAEO,MAAMhK,cAAcA,CAACwK,WAAmB,EAAA;AAC3C,IAAA,OAAOtb,kBAAkB,CAAC,CAAC,MAAM,IAAI,CAACkgB,aAAa,CAAC5E,WAAW,CAAC,EAAEzkB,KAAK,CAAC,CAAA;AAC5E,GAAA;AAEO,EAAA,MAAMwpB,kBAAkBA,CAAC/E,WAAmB,EAAER,cAAuB,EAAA;IACxE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkCC,WAAW,EAAEzpB,OAAO,CAACyuB,2BAA2B,CAAC,CAAA;AACpH,IAAA,OAAO,MAAM,IAAI,CAAC3F,IAAI,CAA6BC,OAAO,EAAE/oB,OAAO,CAAC0uB,4BAA4B,EAAEzF,cAAc,CAAC,CAAA;AACrH,GAAA;EAEO,MAAMvJ,mBAAmBA,CAAC+J,WAAmB,EAAA;AAChD,IAAA,OAAOlc,sBAAsB,CAAC,CAAC,MAAM,IAAI,CAACihB,kBAAkB,CAAC/E,WAAW,CAAC,EAAEkF,UAAU,CAAC,CAAA;AAC1F,GAAA;EAEO,MAAMC,sBAAsBA,CAACnF,WAAmB,EAAE7J,KAAgB,GAAA,EAAE,EAAEC,MAAA,GAAiB,CAAC,EAAA;IAE3F,MAAMkJ,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAAC6uB,6BAA6B,EAAE;MACnIjP,KAAK;AACLC,MAAAA,MAAAA;AACH,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACiJ,IAAI,CAA0BC,OAAO,EAAE/oB,OAAO,CAAC8uB,8BAA8B,CAAC,CAAA;AACpG,GAAA;AAEO,EAAA,MAAM/O,uBAAuBA,CAAC0J,WAAmB,EAAE7J,KAAc,EAAEC,MAAe,EAAA;AACrF,IAAA,OAAOrQ,2BAA2B,CAAC,CAAC,MAAM,IAAI,CAACof,sBAAsB,CAACnF,WAAW,EAAE7J,KAAK,EAAEC,MAAM,CAAC,EAAE7a,KAAK,CAAC,CAAA;AAC7G,GAAA;AAEO,EAAA,MAAM+pB,gBAAgBA,CAACtF,WAAmB,EAAER,cAAuB,EAAA;IAEtE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAsDC,WAAW,EAAEzpB,OAAO,CAACgvB,2BAA2B,CAAC,CAAA;AACxI,IAAA,MAAM9U,QAAQ,GAAG,MAAM,IAAI,CAAC4O,IAAI,CAA4BC,OAAO,EAAE/oB,OAAO,CAACivB,4BAA4B,EAAEhG,cAAc,CAAC,CAAA;AAC1H;AACA,IAAA,MAAMiG,aAAa,GAAAlV,QAAA,CAAA,EAAA,EAAQE,QAAQ,CAAE,CAAA;IAErC,IAAIgV,aAAa,CAACC,YAAY,EAAE;AAC5BD,MAAAA,aAAa,CAACC,YAAY,GAAGD,aAAa,CAACC,YAAY,CAAC/gB,MAAM,CAACjO,CAAC,IAAIA,CAAC,CAACuR,WAAW,KAAKvB,eAAe,CAACwB,OAAO,CAAC,CAAA;AACjH,KAAA;AACD,IAAA,OAAOud,aAAa,CAAA;AACxB,GAAA;EAEO,MAAM1Q,iBAAiBA,CAACiL,WAAmB,EAAA;AAC9C,IAAA,OAAOrZ,wBAAwB,CAAC,CAAC,MAAM,IAAI,CAAC2e,gBAAgB,CAACtF,WAAW,CAAC,EAAE0F,YAAY,CAAC,CAAA;AAC5F,GAAA;EAEO,MAAMC,uBAAuBA,CAAC3F,WAAmB,EAAA;IACpD,MAAMV,OAAO,GAAG,IAAI,CAACS,YAAY,CAA4DC,WAAW,EAAEzpB,OAAO,CAACqvB,4BAA4B,CAAC,CAAA;IAE/I,OAAO,MAAM,IAAI,CAACvG,IAAI,CAAkCC,OAAO,EAAE/oB,OAAO,CAACsvB,6BAA6B,CAAC,CAAA;AAC3G,GAAA;EAEO,MAAMxQ,wBAAwBA,CAAC2K,WAAmB,EAAA;IACrD,MAAMvP,QAAQ,GAAG,MAAM,IAAI,CAACkV,uBAAuB,CAAC3F,WAAW,CAAC,CAAA;IAEhE,OAAO;MACH8F,eAAe,EAAErV,QAAQ,CAACqV,eAAe;MACzCC,eAAe,EAAEtV,QAAQ,CAACsV,eAAAA;KAC7B,CAAA;AACL,GAAA;AAEO,EAAA,MAAMC,gBAAgBA,CAAChG,WAAmB,EAAER,cAAuB,EAAA;IAEtE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAgCC,WAAW,EAAEzpB,OAAO,CAAC0vB,0BAA0B,CAAC,CAAA;AACjH,IAAA,OAAO,MAAM,IAAI,CAAC5G,IAAI,CAA2BC,OAAO,EAAE/oB,OAAO,CAAC2vB,2BAA2B,EAAE1G,cAAc,CAAC,CAAA;AAClH,GAAA;EAEO,MAAM/I,iBAAiBA,CAACuJ,WAAmB,EAAA;AAC9C,IAAA,OAAOzV,oBAAoB,CAAC,CAAC,MAAM,IAAI,CAACyb,gBAAgB,CAAChG,WAAW,CAAC,EAAEkF,UAAU,CAAC,CAAA;AACtF,GAAA;AAEO,EAAA,MAAMiB,eAAeA,CAACnG,WAAmB,EAAER,cAAuB,EAAA;IAErE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAsDC,WAAW,EAAEzpB,OAAO,CAACgvB,2BAA2B,CAAC,CAAA;AACxI,IAAA,MAAM9U,QAAQ,GAAG,MAAM,IAAI,CAAC4O,IAAI,CAA4BC,OAAO,EAAE/oB,OAAO,CAACivB,4BAA4B,EAAEhG,cAAc,CAAC,CAAA;AAC1H;AACA,IAAA,MAAMiG,aAAa,GAAAlV,QAAA,CAAA,EAAA,EAAQE,QAAQ,CAAE,CAAA;IAErC,IAAIgV,aAAa,CAACC,YAAY,EAAE;AAC5BD,MAAAA,aAAa,CAACC,YAAY,GAAGD,aAAa,CAACC,YAAY,CAAC/gB,MAAM,CAACjO,CAAC,IAAIA,CAAC,CAACuR,WAAW,KAAKvB,eAAe,CAAC0f,KAAK,CAAC,CAAA;AAC/G,KAAA;AACD,IAAA,OAAOX,aAAa,CAAA;AACxB,GAAA;EAEO,MAAMvQ,gBAAgBA,CAAC8K,WAAmB,EAAA;AAC7C,IAAA,OAAOrZ,wBAAwB,CAAC,CAAC,MAAM,IAAI,CAACwf,eAAe,CAACnG,WAAW,CAAC,EAAE0F,YAAY,CAAC,CAAA;AAC3F,GAAA;AAGO,EAAA,MAAMW,mBAAmBA,CAACrG,WAAmB,EAAER,cAAuB,EAAA;IAEzE,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAAgDC,WAAW,EAAEzpB,OAAO,CAAC+vB,4BAA4B,CAAC,CAAA;AACnI,IAAA,OAAO,MAAM,IAAI,CAACjH,IAAI,CAAyBC,OAAO,EAAE/oB,OAAO,CAACgwB,6BAA6B,EAAE/G,cAAc,CAAC,CAAA;AAElH,GAAA;EAEO,MAAM3H,oBAAoBA,CAACmI,WAAmB,EAAA;AACjD,IAAA,OAAOvU,wBAAwB,CAAC,CAAC,MAAM,IAAI,CAAC4a,mBAAmB,CAACrG,WAAW,CAAC,EAAEwG,WAAW,CAAC,CAAA;AAC9F,GAAA;AAEO,EAAA,MAAMC,kBAAkBA,CAACzG,WAAmB,EAAEpU,oBAA4B,EAAE4T,cAAuB,EAAA;IAAA,IAAAkH,qBAAA,EAAAC,qBAAA,CAAA;IAEtG,MAAMrH,OAAO,GAAG,IAAI,CAACS,YAAY,CAAsDC,WAAW,EAAEzpB,OAAO,CAACqwB,2BAA2B,EACnI;AACIhb,MAAAA,oBAAAA;AACH,KAAA,CACJ,CAAA;AACD,IAAA,MAAM6E,QAAQ,GAAG,MAAM,IAAI,CAAC4O,IAAI,CAA4BC,OAAO,EAAE/oB,OAAO,CAACswB,4BAA4B,EAAErH,cAAc,CAAC,CAAA;IAE1H,IAAAkH,CAAAA,qBAAA,GAAIjW,QAAQ,CAACI,YAAY,KAArB6V,IAAAA,IAAAA,qBAAA,CAAuB1kB,SAAS,EAAE;AAClCyO,MAAAA,QAAQ,CAACI,YAAY,CAACV,UAAU,GAAG5P,SAAS,CAACwB,SAAS,CAAC0O,QAAQ,CAACI,YAAY,CAAC7O,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAA;AAC7G,KAAA;IAED,IAAA0kB,CAAAA,qBAAA,GAAIlW,QAAQ,CAACC,cAAc,CAACE,OAAO,KAA/B+V,IAAAA,IAAAA,qBAAA,CAAiCzvB,MAAM,EAAE;MACzCuZ,QAAQ,CAACC,cAAc,CAACE,OAAO,CAAC6Q,OAAO,CAACrkB,CAAC,IAAG;AACxCA,QAAAA,CAAC,CAAC+S,UAAU,GAAG5P,SAAS,CAACwB,SAAS,CAAC3E,CAAC,CAAC4E,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAA;AACtE,OAAC,CAAC,CAAA;AACL,KAAA;AAED,IAAA,OAAOwO,QAAQ,CAAA;AAEnB,GAAA;AAEO,EAAA,MAAMsH,mBAAmBA,CAACiI,WAAmB,EAAEpU,oBAA4B,EAAA;IAC9E,IAAI,CAACA,oBAAoB,EAAE;AACvB,MAAA,MAAM,IAAImI,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACpD,KAAA;IACD,MAAMtD,QAAQ,GAAG,MAAM,IAAI,CAACgW,kBAAkB,CAACzG,WAAW,EAAEpU,oBAAoB,CAAC,CAAA;IACjF,OAAO4E,2BAA2B,CAACC,QAAQ,CAAC,CAAA;AAChD,GAAA;EAEO,MAAMqW,cAAcA,CAAC9G,WAAmB,EAAExD,cAAsC,EAAEuK,UAAA,GAAsB,KAAK,EAAEvH,cAAuB,EAAA;IAAA,IAAAwH,qBAAA,EAAAC,sBAAA,CAAA;IAEzI,MAAM3H,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkDC,WAAW,EAAEzpB,OAAO,CAAC2wB,yBAAyB,EAC7H;MACI1K,cAAc;AACd2K,MAAAA,eAAe,EAAEJ,UAAU,GAAG,CAAC,GAAG,CAAC;AACnCK,MAAAA,aAAa,EAAE,IAAA;AAClB,KAAA,CACJ,CAAA;AAED,IAAA,MAAM3W,QAAQ,GAAG,MAAM,IAAI,CAAC4O,IAAI,CAA0BC,OAAO,EAAE/oB,OAAO,CAAC8wB,0BAA0B,EAAE7H,cAAc,CAAC,CAAA;AAEtH,IAAA,MAAM8H,QAAQ,GAAI1T,MAAM,CAAC4N,IAAI,CAAC/Q,QAAQ,CAACjV,GAAG,CAAC,CAAC2Y,IAAI,CAAEuN,CAAC,IAAIlF,cAAc,KAAK7iB,SAAS,IAAI+nB,CAAC,MAAKlF,cAAc,IAAdA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAc,CAAE1lB,QAAQ,EAAE,CAAC,CAAA,CAAA;IAExH,IAAIwwB,QAAQ,KAAK3tB,SAAS,EAAE;AACxB,MAAA,OAAOA,SAAS,CAAA;AACnB,KAAA;AAED,IAAA,IAAA,CAAAqtB,qBAAA,GAAIvW,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,KAAA,IAAA,IAAA,CAAAN,qBAAA,GAAtBA,qBAAA,CAAwBnW,YAAY,aAApCmW,qBAAA,CAAsChlB,SAAS,EAAE;AACjDyO,MAAAA,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,CAACzW,YAAY,CAACV,UAAU,GAAG5P,SAAS,CAACwB,SAAS,CAAC0O,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,CAACzW,YAAY,CAAC7O,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAA;AACzI,KAAA;AAED,IAAA,IAAA,CAAAglB,sBAAA,GAAIxW,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,KAAA,IAAA,IAAA,CAAAL,sBAAA,GAAtBA,sBAAA,CAAwBtK,SAAS,aAAjCsK,sBAAA,CAAmC/vB,MAAM,EAAE;MAC3CuZ,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,CAAC3K,SAAS,CAAC8E,OAAO,CAACrkB,CAAC,IAAG;AACzCA,QAAAA,CAAC,CAAC+S,UAAU,GAAG5P,SAAS,CAACwB,SAAS,CAAC3E,CAAC,CAAC4E,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAA;AACtE,OAAC,CAAC,CAAA;AAEL,KAAA;AAED,IAAA,OAAOwO,QAAQ,CAACjV,GAAG,CAAC8rB,QAAQ,CAAC,CAAA;AAEjC,GAAA;AAEO,EAAA,MAAMjP,gBAAgBA,CAAC2H,WAAmB,EAAExD,cAAwC,GAAAxL,qBAAqB,CAACuW,KAAK,EAAER,UAAA,GAAsB,KAAK,EAAA;AAC/I,IAAA,OAAO5K,uBAAuB,CAAC,MAAM,IAAI,CAAC2K,cAAc,CAAC9G,WAAW,EAAExD,cAAc,EAAEuK,UAAU,CAAC,CAAC,CAAA;AACtG,GAAA;AAEO,EAAA,MAAMS,SAASA,CAACxH,WAAmB,EAAER,cAAuB,EAAA;IAC/D,MAAMF,OAAO,GAAG,IAAI,CAACS,YAAY,CAA2BC,WAAW,EAAEzpB,OAAO,CAACkxB,qBAAqB,CAAC,CAAA;AACvG,IAAA,OAAO,MAAM,IAAI,CAACpI,IAAI,CAAsBC,OAAO,EAAE/oB,OAAO,CAACmxB,sBAAsB,EAAElI,cAAc,CAAC,CAAA;AACxG,GAAA;EAEO,MAAM7K,UAAUA,CAACqL,WAAmB,EAAA;IACvC,OAAO/O,4BAA4B,CAAC,MAAM,IAAI,CAACuW,SAAS,CAACxH,WAAW,CAAC,CAAC,CAAA;AAC1E,GAAA;EAEO,MAAMtJ,iBAAiBA,CAACsJ,WAAmB,EAAA;IAC9C,MAAMV,OAAO,GAAG,IAAI,CAACS,YAAY,CAAsDC,WAAW,EAAEzpB,OAAO,CAACoxB,2BAA2B,CAAC,CAAA;IACxI,OAAO,MAAM,IAAI,CAACtI,IAAI,CAA4BC,OAAO,EAAE/oB,OAAO,CAACqxB,4BAA4B,CAAC,CAAA;AACpG,GAAA;EAEO,MAAMhR,kBAAkBA,CAACoJ,WAAmB,EAAA;AAC/C,IAAA,OAAOhD,wBAAwB,CAACpJ,MAAM,CAACiU,MAAM,CAAC,CAAC,MAAM,IAAI,CAACnR,iBAAiB,CAACsJ,WAAW,CAAC,EAAE8H,cAAc,CAAC,CAAC,CAAA;AAC9G,GAAA;EAEO,MAAMrO,gBAAgBA,CAACuG,WAAmB,EAAExG,SAAiB,EAAEoH,KAAwB,EAAEC,QAAA,GAAmB,EAAE,EAAA;AACjH,IAAA,OAAO,MAAM,IAAI,CAACF,mBAAmB,CAACX,WAAW,EAAExG,SAAS,EAAEoH,KAAK,EAAE,EAAE,CAAC,CAAA;AAC5E,GAAA;AAEO,EAAA,MAAMtI,gBAAgBA,CAAC0H,WAAmB,EAAE7J,KAAgB,GAAA,EAAE,EAAEC,MAAA,GAAiB,CAAC,EAAE2R,YAAqB,EAAA;IAC5G,MAAMzI,OAAO,GAAG,IAAI,CAACS,YAAY,CAAoDC,WAAW,EAAEzpB,OAAO,CAACmuB,0BAA0B,EAAE;MAClIvO,KAAK;MACLC,MAAM;AACN2R,MAAAA,YAAAA;AACH,KAAA,CAAC,CAAA;IACF,OAAO,MAAM,IAAI,CAAC1I,IAAI,CAA2BC,OAAO,EAAE/oB,OAAO,CAACouB,2BAA2B,CAAC,CAAA;AAClG,GAAA;AAEO,EAAA,MAAMhM,iBAAiBA,CAACqH,WAAmB,EAAEzH,IAAA,GAAe,CAAC,EAAEC,EAAa,GAAA,EAAE,EAAEwP,YAAA,GAAwB,KAAK,EAAA;AAChH,IAAA,MAAM7R,KAAK,GAAIqC,EAAE,GAAGD,IAAI,GAAI,EAAE,GAAG,EAAE,GAAGC,EAAE,GAAGD,IAAI,CAAA;IAC/C,MAAMnC,MAAM,GAAGmC,IAAI,CAAA;AAEnB,IAAA,OAAOhW,sBAAsB,CAAC,CAAC,MAAM,IAAI,CAAC+V,gBAAgB,CAAC0H,WAAW,EAAE7J,KAAK,EAAEC,MAAM,EAAE4R,YAAY,CAAC,EAAEC,GAAG,CAAC,CAAA;AAC9G,GAAA;EAEO,MAAMrP,mBAAmBA,CAACC,WAAmB,EAAA;AAAA,IAAA,IAAAqP,MAAA,GAAA,IAAA,CAAA;AAEhD,IAAA,MAAMC,cAAc,GAAG,eAAjBA,cAAcA,CAAUtP,WAAmB,EAA8B;MAC3E,MAAMyF,WAAW,GAAG4J,MAAI,CAAC7V,OAAO,CAAC+V,eAAe,CAAC/lB,mBAAmB,CAACgmB,gBAAgB,CAAC,CAAA;MAEtF,IAAI;AACA,QAAA,MAAMzI,GAAG,GAAG,CAAA,EAAGtB,WAAc,CAAA,EAAAzF,YAAkB,KAAA,CAAA,CAAA;AAE/C,QAAA,MAAMpI,QAAQ,GAAG,MAAM6X,KAAK,CAAC1I,GAAG,EAAE;AAC9B2I,UAAAA,MAAM,EAAE,KAAK;AACbC,UAAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,6BAA6B,EAAE,GAAA;AAClC,WAAA;AACJ,SAAA,CAAC,CAAA;AACF,QAAA,MAAMhW,IAAI,GAAG,MAAM/B,QAAQ,CAACgY,IAAI,EAAE,CAAA;QAClC,OAAOjW,IAAI,IAAI,EAAE,CAAA;OACpB,CAAC,OAAOxY,KAAK,EAAE;QACZkuB,MAAI,CAAC1J,MAAM,CAACxkB,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC,CAAA;AAC9D,QAAA,OAAO,IAAI,CAAA;AACd,OAAA;KACJ,CAAA;AAED,IAAA,OAAO,MAAMmuB,cAAc,CAACtP,WAAW,CAAC,CAAA;AAC5C,GAAA;EAEO,MAAMC,oBAAoBA,CAACD,WAAmB,EAAA;IACjD,MAAMyG,OAAO,GAAG,MAAM,IAAI,CAAC1G,mBAAmB,CAACC,WAAW,CAAC,CAAA;IAC3D,OAAO5V,yBAAyB,CAACqc,OAAO,CAAC,CAAA;AAC7C,GAAA;AAEO,EAAA,MAAMtG,oBAAoBA,CAACgH,WAAmB,EAAEnH,WAAmB,EAAA;IACtE,MAAMyG,OAAO,GAAG,IAAI,CAACS,YAAY,CAA4DC,WAAW,EAAEzpB,OAAO,CAACmyB,uBAAuB,EAAE;AACvI9lB,MAAAA,cAAc,EAAEiW,WAAAA;AACnB,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACwG,IAAI,CAA+BC,OAAO,EAAE/oB,OAAO,CAACoyB,wBAAwB,CAAC,CAAA;AACnG,GAAA;EAEO,MAAMzP,uBAAuBA,CAAC8G,WAAmB,EAAA;IACpD,MAAMV,OAAO,GAAG,IAAI,CAACS,YAAY,CAA4DC,WAAW,EAAEzpB,OAAO,CAACmyB,uBAAuB,EAAE;AACvIE,MAAAA,QAAQ,EAAE,IAAA;AACb,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACvJ,IAAI,CAA+BC,OAAO,EAAE/oB,OAAO,CAACoyB,wBAAwB,CAAC,CAAA;AACnG,GAAA;AAEO,EAAA,MAAMxP,gCAAgCA,CAAC6G,WAAmB,EAAEnH,WAAmB,EAAEO,IAAa,EAAA;IACjG,MAAMkG,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkEC,WAAW,EAAEzpB,OAAO,CAACsyB,0BAA0B,EAAE;AAChJjmB,MAAAA,cAAc,EAAEiW,WAAW;AAC3B7V,MAAAA,UAAU,EAAEoW,IAAAA;AACf,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACiG,IAAI,CAAkCC,OAAO,EAAE/oB,OAAO,CAACuyB,2BAA2B,CAAC,CAAA;AACzG,GAAA;AAEO,EAAA,MAAMzP,kBAAkBA,CAAC2G,WAAmB,EAAEnH,WAAmB,EAAA;IACpE,MAAMyG,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkEC,WAAW,EAAEzpB,OAAO,CAACwyB,0BAA0B,EAAE;AAChJnmB,MAAAA,cAAc,EAAEiW,WAAAA;AACnB,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAACwG,IAAI,CAAkCC,OAAO,EAAE/oB,OAAO,CAACyyB,2BAA2B,CAAC,CAAA;AACzG,GAAA;EAEO,MAAM1P,sBAAsBA,CAAC0G,WAAmB,EAAA;IACnD,MAAMV,OAAO,GAAG,IAAI,CAACS,YAAY,CAAkEC,WAAW,EAAEzpB,OAAO,CAACwyB,0BAA0B,EAAE;AAChJE,MAAAA,WAAW,EAAE,IAAA;AAChB,KAAA,CAAC,CAAA;IAEF,OAAO,MAAM,IAAI,CAAC5J,IAAI,CAAkCC,OAAO,EAAE/oB,OAAO,CAACyyB,2BAA2B,CAAC,CAAA;AACzG,GAAA;AAGOE,EAAAA,UAAUA,GAAA;AACb,IAAA,OAAO,IAAIlX,KAAK,CAAC,IAAI,CAAC,CAAA;AAC1B,GAAA;AAEH;;AC/tBD,MAAMmX,WAAW,CAAA;EAGN,OAAO9pB,GAAGA,CAACL,GAAW,EAAA;AAEzB,IAAA,OAAOmqB,WAAW,CAACC,WAAW,CAAC/pB,GAAG,CAACL,GAAG,CAAC,CAAA;AAC3C,GAAA;AAEO,EAAA,OAAOM,GAAGA,CAACN,GAAW,EAAE5H,KAAe,EAAA;AAC1C,IAAA,MAAMM,CAAC,GAAGN,KAAK,CAACoE,GAAG,CAAC9D,CAAC,IAAIA,CAAC,CAAC2xB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzCF,WAAW,CAACC,WAAW,CAAC9pB,GAAG,CAACN,GAAG,EAAEtH,CAAC,CAAC,CAAA;AACvC,GAAA;;AAXEyxB,WAAW,CACEC,WAAW,GAAG,IAAIE,KAAK,EAAoB;;ICHlDC,cAIX;AAJD,CAAA,UAAYA,aAAa,EAAA;EACrBA,aAAA,CAAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,aAAA,CAAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;EACVA,aAAA,CAAAA,aAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EAJWA,aAAa,KAAbA,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEYC,MAAAA,mBAAmB,GAAG,CAACD,aAAa,CAACE,UAAU,EAAEF,aAAa,CAACG,MAAM,EAAEH,aAAa,CAACI,MAAM;;ICN5FC,gBA6BX;AA7BD,CAAA,UAAYA,eAAe,EAAA;EACvBA,eAAA,CAAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;EACrBA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;EACXA,eAAA,CAAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;EACnBA,eAAA,CAAAA,eAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;EACpBA,eAAA,CAAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;EACbA,eAAA,CAAAA,eAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,eAAA,CAAAA,eAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;EAChBA,eAAA,CAAAA,eAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB,CAAA;EACxBA,eAAA,CAAAA,eAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAA0B,CAAA;EAC1BA,eAAA,CAAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;EACpBA,eAAA,CAAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;EACpBA,eAAA,CAAAA,eAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe,CAAA;EACfA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAY,CAAA;EACZA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;EACbA,eAAA,CAAAA,eAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAY,CAAA;EACZA,eAAA,CAAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;EACpBA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;EACbA,eAAA,CAAAA,eAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc,CAAA;EACdA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;EACbA,eAAA,CAAAA,eAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc,CAAA;EACdA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;EACbA,eAAA,CAAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAwB,CAAA;EACxBA,eAAA,CAAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAwB,CAAA;EACxBA,eAAA,CAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;EAEbA,eAAA,CAAAA,eAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB,CAAA;EAChBA,eAAA,CAAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;AACvB,CAAC,EA7BWA,eAAe,KAAfA,eAAe,GA6B1B,EAAA,CAAA,CAAA;;IC7BWC,qBAqBX;AArBD,CAAA,UAAYA,oBAAoB,EAAA;AAC5BA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACdA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACdA,EAAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACVA,EAAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,KAAwB,CAAA;AACxBA,EAAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,KAAoB,CAAA;AACpBA,EAAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,KAAwB,CAAA;AACxBA,EAAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,KAAoB,CAAA;AACpBA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChBA,EAAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,KAAoB,CAAA;AACpBA,EAAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,KAAwB,CAAA;AACxBA,EAAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,KAAoB,CAAA;AACpBA,EAAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,KAAwB,CAAA;AACxBA,EAAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,oBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACTA,EAAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,OAAiB,CAAA;AACjBA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,QAAmB,CAAA;AACnBA,EAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,OAAiB,CAAA;AACjBA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,QAAmB,CAAA;AACvB,CAAC,EArBWA,oBAAoB,KAApBA,oBAAoB,GAqB/B,EAAA,CAAA,CAAA,CAAA;AAEM,MAAMC,iCAAiC,GAAG,mBAAkB;AAC5D,MAAMC,iCAAiC,GAAG,mBAAkB;AAC5D,MAAMC,uBAAuB,GAAG,cAAa;AAC7C,MAAMC,sBAAsB,GAAG,QAAO;AACtC,MAAMC,qBAAqB,GAAG,OAAM;AACpC,MAAMC,sBAAsB,GAAG,QAAO;AACtC,MAAMC,uBAAuB,GAAG,SAAQ;AACxC,MAAMC,qBAAqB,GAAG,OAAM;AAEpC,MAAMC,iBAAiB,GAAG;EAC7B,CAACN,uBAAuB,GAAG,iBAAiB;EAC5C,CAACC,sBAAsB,GAAG,gBAAgB;EAC1C,CAACC,qBAAqB,GAAG,eAAe;EACxC,CAACC,sBAAsB,GAAG,gBAAgB;EAC1C,CAACC,uBAAuB,GAAG,iBAAiB;AAC5C,EAAA,CAACC,qBAAqB,GAAG,eAAA;;;ACnC7B,MAAME,YAAY,GAAG,CACjB;AAAE9mB,EAAAA,IAAI,EAAEwmB,sBAAsB;EAAE7yB,KAAK,EAAEyyB,oBAAoB,CAACW,GAAAA;AAAK,CAAA,EACjE;AAAE/mB,EAAAA,IAAI,EAAEymB,qBAAqB;EAAE9yB,KAAK,EAAEyyB,oBAAoB,CAACY,EAAAA;AAAI,CAAA,CAClE,CAAA;AAED,MAAMC,eAAe,GAAG,CACpB;AAAEjnB,EAAAA,IAAI,EAAEqmB,iCAAiC;EAAE1yB,KAAK,EAAEyyB,oBAAoB,CAACc,QAAAA;AAAU,CAAA,EACjF;AAAElnB,EAAAA,IAAI,EAAEsmB,iCAAiC;EAAE3yB,KAAK,EAAEyyB,oBAAoB,CAACe,QAAAA;AAAU,CAAA,CACpF,CAAA;AAED,MAAMC,mBAAmB,GAAG,CACxB,GAAGH,eAAe,EAClB;AAAEjnB,EAAAA,IAAI,EAAEumB,uBAAuB;EAAE5yB,KAAK,EAAEyyB,oBAAoB,CAACiB,IAAAA;AAAM,CAAA,CACtE,CAAA;AAEM,MAAMC,WAAW,GAAG,CACvB;EACI7xB,IAAI,EAAE0wB,eAAe,CAACoB,OAAO;AAC7BjvB,EAAAA,IAAI,EAAE,KAAK;AACXkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,0BAA0B;AAAEynB,IAAAA,KAAK,EAAE,kBAAA;GAAmB;AACxEC,EAAAA,OAAO,EAAEN,mBAAAA;AACZ,CAAA,EACD;EACI3xB,IAAI,EAAE0wB,eAAe,CAACwB,eAAe;AACrCrvB,EAAAA,IAAI,EAAE,cAAc;AACpBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,6CAA6C;AAAEynB,IAAAA,KAAK,EAAE,qBAAA;GAAuB;AAC/FC,EAAAA,OAAO,EAAEN,mBAAAA;AACZ,CAAA,EACD;EACI3xB,IAAI,EAAE0wB,eAAe,CAACyB,gBAAgB;AACtCtvB,EAAAA,IAAI,EAAE,qBAAqB;AAC3BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,2DAA2D;AAAEynB,IAAAA,KAAK,EAAE,gCAAA;GAAkC;AACxHC,EAAAA,OAAO,EAAE,CACL;AAAE1nB,IAAAA,IAAI,EAAK,CAAA,EAAAqmB,iCAAuC,CAAA,GAAA,EAAAA,iCAAmC,CAAA,CAAA;IAAE1yB,KAAK,EAAEyyB,oBAAoB,CAACyB,gBAAAA;AAAkB,GAAA,EACrI;AAAE7nB,IAAAA,IAAI,EAAK,CAAA,EAAAqmB,iCAAuC,CAAA,GAAA,EAAAE,uBAAyB,CAAA,CAAA;IAAE5yB,KAAK,EAAEyyB,oBAAoB,CAAC0B,YAAAA;AAAc,GAAA,EACvH;AAAE9nB,IAAAA,IAAI,EAAK,CAAA,EAAAqmB,iCAAuC,CAAA,GAAA,EAAAC,iCAAmC,CAAA,CAAA;IAAG3yB,KAAK,EAAEyyB,oBAAoB,CAAC2B,gBAAAA;AAAkB,GAAA,EACtI;AAAE/nB,IAAAA,IAAI,EAAK,CAAA,EAAAumB,uBAA6B,CAAA,GAAA,EAAAF,iCAAmC,CAAA,CAAA;IAAE1yB,KAAK,EAAEyyB,oBAAoB,CAAC4B,YAAAA;AAAc,GAAA,EACvH;AAAEhoB,IAAAA,IAAI,EAAK,CAAA,EAAAumB,uBAA6B,CAAA,GAAA,EAAAA,uBAAyB,CAAA,CAAA;IAAG5yB,KAAK,EAAEyyB,oBAAoB,CAAC6B,QAAAA;AAAU,GAAA,EAC1G;AAAEjoB,IAAAA,IAAI,EAAK,CAAA,EAAAumB,uBAA6B,CAAA,GAAA,EAAAD,iCAAmC,CAAA,CAAA;IAAE3yB,KAAK,EAAEyyB,oBAAoB,CAAC8B,YAAAA;AAAc,GAAA,EACvH;AAAEloB,IAAAA,IAAI,EAAK,CAAA,EAAAsmB,iCAAuC,CAAA,GAAA,EAAAD,iCAAmC,CAAA,CAAA;IAAE1yB,KAAK,EAAEyyB,oBAAoB,CAAC+B,gBAAAA;AAAkB,GAAA,EACrI;AAAEnoB,IAAAA,IAAI,EAAK,CAAA,EAAAsmB,iCAAuC,CAAA,GAAA,EAAAC,uBAAyB,CAAA,CAAA;IAAG5yB,KAAK,EAAEyyB,oBAAoB,CAACgC,YAAAA;AAAc,GAAA,EACxH;AAAEpoB,IAAAA,IAAI,EAAK,CAAA,EAAAsmB,iCAAuC,CAAA,GAAA,EAAAA,iCAAmC,CAAA,CAAA;IAAE3yB,KAAK,EAAEyyB,oBAAoB,CAACiC,gBAAAA;GAAkB,CAAA;AAE5I,CAAA,EACD;EACI5yB,IAAI,EAAE0wB,eAAe,CAACmC,SAAS;AAC/BhwB,EAAAA,IAAI,EAAE,YAAY;AAClBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,iCAAiC;AAAEynB,IAAAA,KAAK,EAAE,wBAAA;GAA0B;AACtFC,EAAAA,OAAO,EAAEN,mBAAAA;AACZ,CAAA,EACD;EACI3xB,IAAI,EAAE0wB,eAAe,CAACoC,QAAQ;AAC9BjwB,EAAAA,IAAI,EAAE,WAAW;AACjBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,gCAAgC;AAAEynB,IAAAA,KAAK,EAAE,uBAAA;GAAyB;AACpFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAACqC,YAAY;AAClClwB,EAAAA,IAAI,EAAE,eAAe;AACrBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,+CAA+C;AAAEynB,IAAAA,KAAK,EAAE,2BAAA;GAA6B;AACvGC,EAAAA,OAAO,EAAE,CACL;AAAE1nB,IAAAA,IAAI,EAAK,CAAAumB,EAAAA,2BAA2BK,qBAAqB,CAAA,CAAA,EAAIP,iCAAiC,CAAE,CAAA;IAAE1yB,KAAK,EAAEyyB,oBAAoB,CAAC0B,YAAAA;AAAc,GAAA,EAC9I;AAAE9nB,IAAAA,IAAI,EAAK,CAAAqmB,EAAAA,qCAAqCO,qBAAqB,CAAA,CAAA,EAAIN,iCAAiC,CAAE,CAAA;IAAE3yB,KAAK,EAAEyyB,oBAAoB,CAAC2B,gBAAAA;AAAkB,GAAA,EAC5J;AAAE/nB,IAAAA,IAAI,EAAK,CAAAumB,EAAAA,2BAA2BK,qBAAqB,CAAA,CAAA,EAAIN,iCAAiC,CAAE,CAAA;IAAE3yB,KAAK,EAAEyyB,oBAAoB,CAACgC,YAAAA;GAAc,CAAA;AAErJ,CAAA,EACD;EACI3yB,IAAI,EAAE0wB,eAAe,CAACsC,YAAY;AAClCnwB,EAAAA,IAAI,EAAE,gBAAgB;AACtBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,6CAA6C;AAAEynB,IAAAA,KAAK,EAAE,2BAAA;GAA6B;AACrGC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAACuC,oBAAoB;AAC1CpwB,EAAAA,IAAI,EAAE,yBAAyB;AAC/BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,kDAAkD;AAAEynB,IAAAA,KAAK,EAAE,mCAAA;GAAqC;AAClHC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAACwC,qBAAqB;AAC3CrwB,EAAAA,IAAI,EAAE,yBAAyB;AAC/BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,mDAAmD;AAAEynB,IAAAA,KAAK,EAAE,oCAAA;GAAsC;AACpHC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAACyC,OAAO;AAC7BtwB,EAAAA,IAAI,EAAE,UAAU;AAChBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,wCAAwC;AAAEynB,IAAAA,KAAK,EAAE,sBAAA;GAAwB;AAC3FC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAAC0C,eAAe;AACrCvwB,EAAAA,IAAI,EAAE,mBAAmB;AACzBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,+CAA+C;AAAEynB,IAAAA,KAAK,EAAE,8BAAA;GAAgC;AAC1GC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAAC2C,eAAe;AACrCxwB,EAAAA,IAAI,EAAE,mBAAmB;AACzBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,gDAAgD;AAAEynB,IAAAA,KAAK,EAAE,8BAAA;GAAgC;AAC3GC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAAC4C,UAAU;AAChCzwB,EAAAA,IAAI,EAAE,aAAa;AACnBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,iDAAiD;AAAEynB,IAAAA,KAAK,EAAE,yBAAA;GAA2B;AACvGC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAAC6C,OAAO;AAC7B1wB,EAAAA,IAAI,EAAE,KAAK;AACXkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,0BAA0B;AAAEynB,IAAAA,KAAK,EAAE,kBAAA;GAAmB;AACxEC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAAC8C,QAAQ;AAC9B3wB,EAAAA,IAAI,EAAE,UAAU;AAChBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,sCAAsC;AAAEynB,IAAAA,KAAK,EAAE,uBAAA;GAAyB;AAC1FC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAAC+C,OAAO;AAC7B5wB,EAAAA,IAAI,EAAE,UAAU;AAChBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,gFAAgF;AAAEynB,IAAAA,KAAK,EAAE,sBAAA;GAAwB;AACnIC,EAAAA,OAAO,EAAE,CACL;AAAE1nB,IAAAA,IAAI,EAAE0mB,sBAAsB;IAAE/yB,KAAK,EAAEyyB,oBAAoB,CAAC+C,GAAAA;AAAK,GAAA,EACjE;AAAEnpB,IAAAA,IAAI,EAAE2mB,uBAAuB;IAAEhzB,KAAK,EAAEyyB,oBAAoB,CAACgD,IAAAA;GAAM,CAAA;AAE1E,CAAA,EACD;EACI3zB,IAAI,EAAE0wB,eAAe,CAACkD,eAAe;AACrC/wB,EAAAA,IAAI,EAAE,oBAAoB;AAC1BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,2EAA2E;AAAEynB,IAAAA,KAAK,EAAE,8BAAA;GAAgC;AACtIC,EAAAA,OAAO,EAAE,CACL;AAAE1nB,IAAAA,IAAI,EAAK,CAAA,EAAAqmB,iCAAuC,CAAA,GAAA,EAAAK,sBAAwB,CAAA,CAAA;IAAE/yB,KAAK,EAAEyyB,oBAAoB,CAACkD,OAAAA;AAAS,GAAA,EACjH;AAAEtpB,IAAAA,IAAI,EAAK,CAAA,EAAAqmB,iCAAuC,CAAA,GAAA,EAAAM,uBAAyB,CAAA,CAAA;IAAEhzB,KAAK,EAAEyyB,oBAAoB,CAACmD,QAAAA;AAAU,GAAA,EACnH;AAAEvpB,IAAAA,IAAI,EAAK,CAAA,EAAAsmB,iCAAuC,CAAA,GAAA,EAAAI,sBAAwB,CAAA,CAAA;IAAE/yB,KAAK,EAAEyyB,oBAAoB,CAACoD,OAAAA;AAAS,GAAA,EACjH;AAAExpB,IAAAA,IAAI,EAAK,CAAA,EAAAsmB,iCAAuC,CAAA,GAAA,EAAAK,uBAAyB,CAAA,CAAA;IAAEhzB,KAAK,EAAEyyB,oBAAoB,CAACqD,QAAAA;GAAU,CAAA;AAE1H,CAAA,EACD;EACIh0B,IAAI,EAAE0wB,eAAe,CAACuD,QAAQ;AAC9BpxB,EAAAA,IAAI,EAAE,WAAW;AACjBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,8BAA8B;AAAEynB,IAAAA,KAAK,EAAE,uBAAA;GAAyB;AAClFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAACwD,SAAS;AAC/BrxB,EAAAA,IAAI,EAAE,YAAY;AAClBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,+BAA+B;AAAEynB,IAAAA,KAAK,EAAE,wBAAA;GAA0B;AACpFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAACyD,QAAQ;AAC9BtxB,EAAAA,IAAI,EAAE,WAAW;AACjBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,8BAA8B;AAAEynB,IAAAA,KAAK,EAAE,uBAAA;GAAyB;AAClFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAAC0D,SAAS;AAC/BvxB,EAAAA,IAAI,EAAE,YAAY;AAClBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,+BAA+B;AAAEynB,IAAAA,KAAK,EAAE,wBAAA;GAA0B;AACpFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAAC2D,QAAQ;AAC9BxxB,EAAAA,IAAI,EAAE,WAAW;AACjBkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,8BAA8B;AAAEynB,IAAAA,KAAK,EAAE,uBAAA;GAAyB;AAClFC,EAAAA,OAAO,EAAET,eAAAA;AACZ,CAAA,EACD;EACIxxB,IAAI,EAAE0wB,eAAe,CAAC4D,mBAAmB;AACzCzxB,EAAAA,IAAI,EAAE,yBAAyB;AAC/BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,uCAAuC;AAAEynB,IAAAA,KAAK,EAAE,kCAAA;GAAoC;AACtGC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA,EACD;EACIrxB,IAAI,EAAE0wB,eAAe,CAAC6D,mBAAmB;AACzC1xB,EAAAA,IAAI,EAAE,yBAAyB;AAC/BkvB,EAAAA,QAAQ,EAAE;AAAExnB,IAAAA,IAAI,EAAE,uCAAuC;AAAEynB,IAAAA,KAAK,EAAE,kCAAA;GAAoC;AACtGC,EAAAA,OAAO,EAAEZ,YAAAA;AACZ,CAAA;;ACrLE,MAAMmD,kBAAkB,GAAG;AAC9B,EAAA,CAACnE,aAAa,CAACE,UAAU,GAAG,CACxBG,eAAe,CAAC6C,OAAO,EACvB7C,eAAe,CAAC8C,QAAQ,EACxB9C,eAAe,CAACoB,OAAO,EACvBpB,eAAe,CAAC+C,OAAO,EACvB/C,eAAe,CAACkD,eAAe,EAC/BlD,eAAe,CAACqC,YAAY,CAC/B;EACD,CAAC1C,aAAa,CAACG,MAAM,GAAG,CACpBE,eAAe,CAACoB,OAAO,EACvBpB,eAAe,CAACwB,eAAe,EAC/BxB,eAAe,CAACyB,gBAAgB,EAChCzB,eAAe,CAACmC,SAAS,EACzBnC,eAAe,CAACoC,QAAQ,EACxBpC,eAAe,CAACqC,YAAY,EAC5BrC,eAAe,CAACsC,YAAY,EAC5BtC,eAAe,CAACuC,oBAAoB,EACpCvC,eAAe,CAACwC,qBAAqB,EACrCxC,eAAe,CAACyC,OAAO,EACvBzC,eAAe,CAAC0C,eAAe,EAC/B1C,eAAe,CAAC2C,eAAe,EAC/B3C,eAAe,CAAC4C,UAAU,CAC7B;AACD,EAAA,CAACjD,aAAa,CAACI,MAAM,GAAG,CACpBC,eAAe,CAAC6C,OAAO,EACvB7C,eAAe,CAACuD,QAAQ,EACxBvD,eAAe,CAACwD,SAAS,EACzBxD,eAAe,CAACyD,QAAQ,EACxBzD,eAAe,CAAC0D,SAAS,EACzB1D,eAAe,CAAC2D,QAAQ,EACxB3D,eAAe,CAAC4D,mBAAmB,EACnC5D,eAAe,CAAC6D,mBAAmB,EACnC7D,eAAe,CAAC+C,OAAO,CAAA;;;ACpC/B,IAAKgB,wBAGJ;AAHD,CAAA,UAAKA,uBAAuB,EAAA;EACxBA,uBAAA,CAAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;EACTA,uBAAA,CAAAA,uBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EAHIA,uBAAuB,KAAvBA,uBAAuB,GAG3B,EAAA,CAAA,CAAA;;ACDD,IAAKC,YAEJ;AAFD,CAAA,UAAKA,WAAW,EAAA;EACZA,WAAA,CAAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAFIA,WAAW,KAAXA,WAAW,GAEf,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/Base/ClassId.ts","../src/IntUtils.ts","../src/MiniGames/SAWBuyInType.ts","../src/MiniGames/SAWUtils.ts","../src/MiniGames/SAWAcknowledgeType.ts","../src/MiniGames/SAWAskForUsername.ts","../src/MiniGames/SAWGameType.ts","../src/MiniGames/SAWPrizeType.ts","../src/MiniGames/SAWGetTemplatesResponse.ts","../src/MiniGames/SAWSpinErrorCode.ts","../src/MiniGames/SAWWinSoundType.ts","../src/NodeCache.ts","../src/OCache.ts","../src/Core/ActivityTypeLimited.ts","../src/Core/CoreUtils.ts","../src/Core/PublicLabelSettings.ts","../src/Core/TranslationArea.ts","../src/Inbox/GetInboxMessagesResponse.ts","../src/Inbox/InboxMessage.ts","../src/Inbox/InboxMessageType.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Store/StoreItemPurchased.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Leaderboard/LeaderBoardPeriodType.ts","../src/Level/GetLevelMapResponse.ts","../src/WSAPI/WSAPI.ts","../src/Leaderboard/LeaderBoards.ts","../src/CustomSections/AchCustomSection.ts","../src/CustomSections/UICustomSection.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts","../src/Quiz/SportTypes.ts","../src/Quiz/MarketsType.ts","../src/Quiz/MarketsAnswers.ts","../src/Quiz/MarketsInfo.ts","../src/Quiz/MarketsPerSport.ts","../src/Jackpots/JackpotContributionType.ts","../src/Jackpots/JackpotType.ts"],"sourcesContent":["export enum ClassId {\n PING = 1,\n PONG = 2,\n\n\n INIT = 3,\n INIT_RESPONSE = 4,\n IDENTIFY = 5,\n IDENTIFY_RESPONSE = 6,\n LOGIN = 7,\n LOGOUT = 8,\n EVENT = 9,\n EVENT_RESPONSE = 10,\n\n LOGIN_RESPONSE = 11,\n LOGOUT_RESPONSE = 12,\n\n GET_TRANSLATIONS_REQUEST = 13,\n GET_TRANSLATIONS_RESPONSE = 14,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n CLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n CLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n CLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n CLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n CLIENT_EXECUTE_JS_EVENT = 107,\n CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n CLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n CLIENT_TRACK_ACTIVITY_REQUEST = 155,\n CLIENT_SET_AVATAR_REQUEST = 157,\n CLIENT_SET_AVATAR_RESPONSE = 158,\n\n CLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n CLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n CHECK_SEGMENT_MATCH_REQUEST = 161,\n CHECK_SEGMENT_MATCH_RESPONSE = 162,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n // 500-1000 - Achievements\n GET_LEVEL_MAP_REQUEST = 500,\n GET_LEVEL_MAP_RESPONSE = 501,\n GET_ACHIEVEMENT_MAP_REQUEST = 502,\n GET_ACHIEVEMENT_MAP_RESPONSE = 503,\n RELOAD_ACHIEVEMENTS_EVENT = 504,\n GET_LEADERS_BOARD_REQUEST = 505,\n GET_LEADERS_BOARD_RESPONSE = 506,\n GET_SHOP_ITEMS_REQUEST = 509,\n GET_SHOP_ITEMS_RESPONSE = 510,\n BUY_SHOP_ITEM_REQUEST = 511,\n BUY_SHOP_ITEM_RESPONSE = 512,\n GET_INBOX_MESSAGES_REQUEST = 513,\n GET_INBOX_MESSAGES_RESPONSE = 514,\n GET_SHOP_CATEGORIES_REQUEST = 515,\n GET_SHOP_CATEGORIES_RESPONSE = 516,\n GET_TOURNAMENT_LOBBY_REQUEST = 517,\n GET_TOURNAMENT_LOBBY_RESPONSE = 518,\n GET_TOURNAMENT_INFO_REQUEST = 519,\n GET_TOURNAMENT_INFO_RESPONSE = 520,\n TOURNAMENT_REGISTER_REQUEST = 521,\n TOURNAMENT_REGISTER_RESPONSE = 522,\n GET_CUSTOM_SECTIONS_REQUEST = 523,\n GET_CUSTOM_SECTIONS_RESPONSE = 524,\n MISSION_OPTIN_REQUEST = 525,\n MISSION_OPTIN_RESPONSE = 526,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n GET_ACHIEVEMENT_USER_REQUEST = 527,\n GET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n MARK_INBOX_READ_REQUEST = 529,\n MARK_INBOX_READ_RESPONSE = 530,\n MARK_INBOX_STARRED_REQUEST = 531,\n MARK_INBOX_STARRED_RESPONSE = 532,\n MARK_INBOX_DELETED_REQUEST = 535,\n MARK_INBOX_DELETED_RESPONSE = 536,\n\n GET_ACH_CATEGORIES_REQUEST = 537,\n GET_ACH_CATEGORIES_RESPONSE = 538,\n\n ACHIEVEMENT_CLAIM_PRIZE_REQUEST = 539,\n ACHIEVEMENT_CLAIM_PRIZE_RESPONSE = 540,\n\n ACH_SHOP_ITEM_HISTORY_REQUEST = 541,\n ACH_SHOP_ITEM_HISTORY_RESPONSE = 542,\n\n GET_RELATED_ACH_N_TOURNAMENTS_REQUEST = 543,\n GET_RELATED_ACH_N_TOURNAMENTS_RESPONSE = 544,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n GET_BONUSES_REQUEST = 600,\n GET_BONUSES_RESPONSE = 601,\n CLAIM_BONUS_REQUEST = 602,\n CLAIM_BONUS_RESPONSE = 603,\n\n SAW_GET_SPINS_REQUEST = 700,\n SAW_GET_SPINS_RESPONSE = 701,\n SAW_DO_SPIN_REQUEST = 702,\n SAW_DO_SPIN_RESPONSE = 703,\n SAW_AKNOWLEDGE_REQUEST = 704,\n SAW_AKNOWLEDGE_RESPONSE = 705,\n SAW_SPINS_COUNT_PUSH = 706,\n SAW_SHOW_SPIN_PUSH = 707,\n SAW_PRIZE_DROP_WIN_PUSH = 708,\n SAW_PRIZE_DROP_WIN_AKNOWLEDGE_REQUEST = 709,\n SAW_PRIZE_DROP_WIN_AKNOWLEDGE_RESPONSE = 710,\n SAW_AKNOWLEDGE_SPIN_PUSH = 711,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n\n JP_GET_JACKPOTS_REQUEST = 800,\n JP_GET_JACKPOTS_RESPONSE = 801,\n\n JP_GET_LATEST_POTS_REQUEST = 802,\n JP_GET_LATEST_POTS_RESPONSE = 803,\n\n JP_OPTIN_REQUEST = 804,\n JP_OPTIN_RESPONSE = 805,\n\n JP_OPTOUT_REQUEST = 806,\n JP_OPTOUT_RESPONSE = 807,\n\n JP_WIN_PUSH = 808,\n\n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n CLIENT_DEBUG_REQUEST = 77777,\n\n \n /*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */ \n\n UNSUPPORTED_COMMAND = 99999,\n}","\n\n\nclass IntUtils {\n\n public static uuid(): string {\n let a: any;\n let b: any;\n for (b = a = \"\"; a++ < 36; b += a * 51 & 52 ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16) : \"-\") {}\n return b;\n } \n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n } \n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n } \n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (IntUtils.isNotNull(value)) {\n return value.replace(new RegExp(IntUtils.escapeRegExp(regex), \"g\"), replacement?.toString());\n }\n return value;\n } \n\n public static escapeRegExp(v: string): string {\n if (IntUtils.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static JsonOrText = (str: string): any => {\n if (str && str.includes && (str.includes('{') || str.includes('['))) {\n try {\n return JSON.parse(str)\n } catch (e) {\n return str;\n }\n }\n return str;\n }\n \n // public static wsTimeToEpoch = (time: string): number => {\n // if (time) {\n // return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n // } else {\n // return null\n // }\n // }\n\n public static isWithinPeriod = (timestamp: number, period: 'today' | 'thisWeek' | 'thisMonth'): boolean => {\n const now = new Date();\n const completedDate = new Date(timestamp);\n\n switch(period) {\n case 'today':\n return (\n now.getFullYear() === completedDate.getFullYear() &&\n now.getMonth() === completedDate.getMonth() &&\n now.getDate() === completedDate.getDate()\n );\n case \"thisWeek\":\n const startOfWeek = new Date(now);\n startOfWeek.setDate(now.getDate() - now.getDay());\n startOfWeek.setHours(0, 0, 0, 0);\n\n const endOfWeek = new Date(startOfWeek);\n endOfWeek.setDate(startOfWeek.getDate() + 6);\n endOfWeek.setHours(23, 59, 59, 999);\n\n return completedDate >= startOfWeek && completedDate <= endOfWeek;\n case \"thisMonth\":\n return (\n now.getFullYear() === completedDate.getFullYear() &&\n now.getMonth() === completedDate.getMonth()\n );\n default:\n return false;\n }\n }\n}\n\n\n\nexport { IntUtils }","/** @hidden */\nexport enum SAWBuyInType {\n Free = 1,\n Points = 2,\n Spins = 3\n}\n\nexport enum SAWBuyInTypeName {\n Free = 'free',\n Points = 'points',\n Spins = 'spins',\n Unknown = 'unknown'\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n return {\n [SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n [SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n [SAWBuyInType.Spins]: SAWBuyInTypeName.Spins\n }[type] || SAWBuyInTypeName.Unknown;\n}","import { SAWBuyInType } from \"./SAWBuyInType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\n\nclass SAWUtils {\n\n public static canPlay = (t: SAWTemplate, pointsBalance: number): boolean => {\n if (t === null || t === undefined) {\n return false;\n }\n \n switch (t.saw_buyin_type_id) {\n case SAWBuyInType.Free: {\n return true;\n }\n case SAWBuyInType.Spins: {\n return t.spin_count !== null && t.spin_count > 0\n }\n case SAWBuyInType.Points: {\n return t.buyin_cost_points <= pointsBalance;\n }\n default: {\n console.error(\"MiniGamesUtils.canPlay: Unknwon SAW buyin type \" + t.saw_buyin_type_id);\n return false;\n }\n }\n }\n \n}\n\nexport { SAWUtils }","export enum SAWAcknowledgeType {\n\n Silent = 1,\n QuickMessage = 2,\n FullMessage = 3\n}\n","\nexport enum SAWAskForUsername {\n NOASK = \"no-ask\",\n ONSUMBIT = \"on-submit\"\n}","/** @hidden */\n\nexport enum SAWGameType {\n SpinAWheel = 1,\n ScratchCard = 2,\n MatchX = 3,\n GiftBox = 4,\n PrizeDrop = 5,\n Quiz = 6\n}\n\nexport enum SAWGameTypeName {\n SpinAWheel = \"wheel\",\n ScratchCard = \"scratch\",\n MatchX = \"matchx\",\n GiftBox = \"giftbox\",\n PrizeDrop = \"prizedrop\",\n Quiz = 'quiz',\n Unknown = \"unknown\"\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n return {\n [SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n [SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n [SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n [SAWGameType.GiftBox]: SAWGameTypeName.GiftBox,\n [SAWGameType.PrizeDrop]: SAWGameTypeName.PrizeDrop,\n [SAWGameType.Quiz]: SAWGameTypeName.Quiz\n }[type] || SAWGameTypeName.Unknown;\n}\n","/** @hidden */\nexport enum SAWPrizeType {\n\n NO_PRIZE = 1,\n POINTS = 2,\n BONUS = 3,\n MANUAL = 4,\n SPIN = 5,\n JACKPOT = 6\n}\n\nexport enum MiniGamePrizeTypeName {\n NO_PRIZE = 'no-prize',\n POINTS = 'points',\n BONUS = 'bonus',\n MANUAL = 'manual',\n SPIN = 'spin',\n JACKPOT = 'jackpot',\n UNKNOWN = \"unknown\"\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n return {\n [SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n [SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n [SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n [SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n [SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n [SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT, \n }[type] || MiniGamePrizeTypeName.UNKNOWN;\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { TMiniGamePrize, TMiniGameTemplate } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"./../Base/ProtocolResponse\";\nimport { SAWBuyInTypeNamed } from \"./SAWBuyInType\";\nimport { SAWGameTypeNamed } from \"./SAWGameType\";\nimport { MiniGamePrizeTypeName, MiniGamePrizeTypeNamed } from \"./SAWPrizeType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\nimport { SAWUtils } from \"./SAWUtils\";\n\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\n templates: SAWTemplate[];\n}\n\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => { \n \n \n return items.map( r => {\n\n const x: TMiniGameTemplate = {\n \n id: r.saw_template_id,\n name: r.saw_template_ui_definition.name,\n description: r.saw_template_ui_definition.description,\n thumbnail: \n r.saw_skin_ui_definition?.skin_folder\n ? r.saw_skin_ui_definition?.skin_folder + '/ico.png'\n : `https://libs.smartico.ai/gf/images/saw/${r.saw_skin_key}/ico.png`\n ,\n over_limit_message: r.saw_template_ui_definition.over_limit_message,\n no_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n jackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n saw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n saw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n buyin_cost_points: r.buyin_cost_points,\n jackpot_add_on_attempt: r.jackpot_add_on_attempt,\n jackpot_current: r.jackpot_current,\n spin_count: r.spin_count,\n promo_image: r.saw_template_ui_definition.promo_image,\n promo_text: r.saw_template_ui_definition.promo_text,\n custom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n expose_game_stat_on_api: r.expose_game_stat_on_api,\n\n next_available_spin_ts: r.next_available_spin_ts,\n\n prizes: r.prizes.map( p => {\n const y: TMiniGamePrize = {\n id: p.saw_prize_id,\n name: p.saw_prize_ui_definition.name,\n prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n prize_value: p.prize_value,\n font_size: p.saw_prize_ui_definition.font_size,\n font_size_mobile: p.saw_prize_ui_definition.font_size_mobile,\n icon: p.saw_prize_ui_definition.icon,\n position: p.saw_prize_ui_definition.position,\n aknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n acknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n acknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n pool: p.pool,\n wins_count: p.wins_count,\n }\n return y;\n })\n };\n return x;\n });\n}\n\n","\n/*\n* Possible error codes for the mini-games attempts\n*/\nexport enum SAWSpinErrorCode {\n /** No error */\n SAW_OK = 0,\n /** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n SAW_NO_SPINS = 40001,\n /** The are no prizes left to play the game */\n SAW_PRIZE_POOL_EMPTY = 40002,\n /** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n SAW_NOT_ENOUGH_POINTS = 40003,\n /** User reached max number of game attempts defined in the BackOffice */\n SAW_FAILED_MAX_SPINS_REACHED = 40004,\n /** Special code for the 'visitor' mode */\n SAW_VISITOR_STOP_SPIN_REQUEST = -40001 \n}","export enum SAWWinSoundType {\n\n Disappointing = 1,\n Positive = 2,\n HighlyPositive = 3,\n NoSound = 4,\n Custom = 5,\n}\n\nexport const SAWWinSoundFiles = {\n [SAWWinSoundType.NoSound]: null,\n [SAWWinSoundType.Disappointing]: \"saw-disappointed.m4a\",\n [SAWWinSoundType.Positive]: \"saw-positive.m4a\",\n [SAWWinSoundType.HighlyPositive]: \"saw-highly-positive.m4a\",\n}","\nclass NodeCache {\n\n private static ttlChecker: NodeJS.Timeout;\n\n private static cache: { [key: string] : any } = {};\n\n constructor() {\n if (NodeCache.ttlChecker === undefined) {\n NodeCache.ttlChecker = setInterval(() => {\n const now = new Date().getTime();\n for (const key in NodeCache.cache) {\n if (NodeCache.cache.hasOwnProperty(key)) {\n const o = NodeCache.cache[key];\n if (o.ttl < now) {\n delete NodeCache.cache[key];\n }\n }\n }\n }, 1000);\n }\n }\n\n public get(key: string): any {\n const o = NodeCache.cache[key];\n if (o !== undefined && o.ttl > new Date().getTime()) {\n return o.value;\n }\n }\n\n public set(key: string, value: any, ttlSeconds: number = 60) {\n NodeCache.cache[key] = {\n value,\n ttl: new Date().getTime() + ttlSeconds * 1000\n }\n }\n\n public remove(key: string) {\n if (NodeCache.cache.hasOwnProperty(key)) { \n delete NodeCache.cache[key];\n\n }\n } \n\n public flushAll() {\n NodeCache.cache = {};\n }\n\n}\n\n\nexport { NodeCache }","import { NodeCache } from \"./NodeCache\";\n\nexport enum ECacheContext {\n Translations,\n LabelInfo,\n WSAPI,\n}\n\nconst WITH_REF_CACHE = [\n ECacheContext.Translations\n];\n\nexport class OCache {\n\n private static cache: { [key: string]: NodeCache } = {};\n\n private static init(cacheContext: ECacheContext) {\n if (this.cache[cacheContext] === undefined) {\n this.cache[cacheContext] = new NodeCache();\n }\n }\n\n public static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n return deepClone(this.cache[cacheContext].get(key));\n }\n\n public static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n this.cache[cacheContext].set(key, deepClone(o), ttlSeconds);\n }\n\n public static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n if (ttlSeconds <= 0) {\n return await f();\n } else {\n let o: T = OCache.get(oKey, cacheContext);\n\n if (o === undefined) {\n o = await f();\n OCache.set(oKey, o, cacheContext, ttlSeconds);\n }\n \n return o;\n }\n }\n\n public static async clear(cacheContext: ECacheContext, oKey: any) {\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].remove(key);\n }\n }\n\n public static async clearContext(cacheContext: ECacheContext) {\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].flushAll();\n }\n }\n\n public static async clearAll() {\n this.cache = {};\n } \n\n}\n\nconst deepClone = (o: any) => {\n if (o) {\n return JSON.parse(JSON.stringify(o));\n }\n\n return o;\n}\n","export enum ActivityTypeLimited {\n\n DoNothing = 8,\n Points = 12,\n GiveMission = 14,\n StartAnotherCampaign = 15,\n MiniGameAttempt = 16,\n DeductPoints = 21,\n ResetPoints = 22,\n Popup = 30,\n Inbox = 31,\n Slack = 70,\n Email_To_Customer_Support = 80,\n Email_To_Risk_Operator = 90,\n Bonus = 100,\n WebHook = 200,\n TagCustomer = 504,\n UnTagCustomer = 505,\n}","\nclass CoreUtils {\n\n public static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n if (avatarDomain && avatar_id !== null && avatar_id !== undefined && !(avatar_id.startsWith && avatar_id.startsWith('http'))) {\n if (avatarDomain.endsWith('/')) {\n return avatarDomain.slice(0, -1) + '/avatar/' + avatar_id\n } else {\n return avatarDomain + '/avatar/' + avatar_id\n }\n } else {\n return avatar_id\n }\n }\n\n public static currencySymbol(currency: string) {\n return {\n [currency?.toUpperCase()]: currency?.toUpperCase(),\n USD: \"$\", // United States Dollar\n EUR: \"\\u20AC\", // Euro\n JPY: \"\\u00A5\", // Japanese Yen\n GBP: \"\\u00A3\", // British Pound Sterling\n AUD: \"A$\", // Australian Dollar\n CAD: \"C$\", // Canadian Dollar\n CHF: \"CHF\", // Swiss Franc\n CNY: \"\\u00A5\", // Chinese Yuan\n SEK: \"kr\", // Swedish Krona\n NZD: \"NZ$\", // New Zealand Dollar\n MXN: \"MX$\", // Mexican Peso\n SGD: \"S$\", // Singapore Dollar\n HKD: \"HK$\", // Hong Kong Dollar\n NOK: \"kr\", // Norwegian Krone\n KRW: \"\\u20A9\", // South Korean Won\n TRY: \"\\u20BA\", // Turkish Lira\n INR: \"\\u20B9\", // Indian Rupee\n RUB: \"\\u20BD\", // Russian Ruble\n BRL: \"R$\", // Brazilian Real\n ZAR: \"R\", // South African Rand\n }[currency?.toUpperCase()];\n }\n}\n\nexport { CoreUtils }","\nexport enum PublicLabelSettings {\n PUBLIC_API_URL = \"PUBLIC_API_URL\",\n RECORDING_ENABLED_FOR_ALL_USERS = \"RECORDING_ENABLED_FOR_ALL_USERS\",\n JS_INJECTION = \"JS_INJECTION\",\n GAMIFICATION_UI_MAIN = \"GAMIFICATION_UI_MAIN\",\n GAMIFICATION_UI_WIDGET = \"GAMIFICATION_UI_WIDGET\",\n GAMIFICATION_UI_MINI_GAME = \"GAMIFICATION_UI_MINI_GAME\",\n GAMIFICATION_UI_SETTINGS = \"GAMIFICATION_UI_SETTINGS\",\n GAMIFICATION_UI_MAIN_TEST = \"GAMIFICATION_UI_MAIN_TEST\",\n GAMIFICATION_UI_WIDGET_TEST = \"GAMIFICATION_UI_WIDGET_TEST\",\n GAMIFICATION_UI_SETTINGS_TEST = \"GAMIFICATION_UI_SETTINGS_TEST\",\n FRONT_END_ALLOWED_LANGUAGES = \"FRONT_END_ALLOWED_LANGUAGES\",\n FRONT_END_ALLOW_DOMAINS = \"FRONT_END_ALLOW_DOMAINS\",\n DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = \"DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS\",\n SHADOW_LABEL_PUBLIC_KEY = \"SHADOW_LABEL_PUBLIC_KEY\",\n DYNAMIC_IMAGE_DOMAIN = \"DYNAMIC_IMAGE_DOMAIN\",\n \n GAMIFICATION_UI_LEVEL_ENABLED = \"GAMIFICATION_UI_LEVEL_ENABLED\",\n GAMIFICATION_UI_LEVEL_IMAGE_MOB = \"GAMIFICATION_UI_LEVEL_IMAGE_MOB\",\n GAMIFICATION_UI_LEVEL_IMAGE_DESK = \"GAMIFICATION_UI_LEVEL_IMAGE_DESK\",\n \n GAMIFICATION_LEVELS_LOGIC2 = \"GAMIFICATION_LEVELS_LOGIC2\",\n GAMIFICATION_LEVELS_LOGIC3 = \"GAMIFICATION_LEVELS_LOGIC2\",\n \n AVATAR_CUSTOM_IMAGE_MAX_ID = \"AVATAR_CUSTOM_IMAGE_MAX_ID\",\n AVATAR_CUSTOM_IMAGE_FOLDER = \"AVATAR_CUSTOM_IMAGE_FOLDER\",\n \n GAMIFICATION_SHOW_POWERED_BY = \"GAMIFICATION_SHOW_POWERED_BY\",\n _system_leader_board_mask_username = \"_system_leader_board_mask_username\",\n\n INBOX_PUBLIC_CDN = \"INBOX_PUBLIC_CDN\",\n}\n","enum TranslationArea {\n\n Casino = 1,\n Gamification = 2,\n Trading = 3,\n Archived = 4,\n Affiliation = 5,\n RetentionGames = 6,\n AffIliateAdminNew = 7\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { InboxMessage } from \"./InboxMessage\";\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\n log: InboxMessage[];\n}\n\nexport const InboxMessagesTransform = ((items: InboxMessage[]): TInboxMessage[] => {\n\n return items.map(item => {\n const x: TInboxMessage = {\n sent_date: item.createDate,\n message_guid: item.engagement_uid,\n read: item.is_read,\n favorite: item.is_starred,\n }\n return x;\n });\n})\n","import { TInboxMessageBody } from \"../WSAPI/WSAPITypes\";\nimport { InboxMessageType } from \"./InboxMessageType\";\n\nexport interface InboxMessageBody {\n action: string;\n body: string;\n type: InboxMessageType;\n image: string;\n title: string;\n html_body: string; \n additional_buttons?: { inbox_cta_text: string, action: string }[];\n}\n\nexport interface InboxMessage {\n\n createDate: string;\n body: InboxMessageBody;\n engagement_uid: string;\n is_read: boolean;\n is_starred: boolean;\n is_deleted?: boolean;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n \n const x: TInboxMessageBody = {\n action: item.action,\n icon: item.image,\n title: item.title,\n preview_body: item.body,\n }\n\n if (item.action === 'dp:inbox') {\n if (item.additional_buttons && item.additional_buttons.length) {\n x.buttons = item.additional_buttons.map(b => ({\n action: b.action,\n text: b.inbox_cta_text\n }))\n }\n\n x.html_body = item?.html_body || null;\n }\n\n return x;\n}\n","export enum InboxMessageType {\n Custom = 0,\n MissionCompleted = 1,\n MissionUnlocked = 2,\n LeaderboardWon = 3,\n LevelChanged = 4,\n BonusGiven = 5,\n PointsAdded = 6,\n PointsUsed = 7,\n PersonalMessage = 8\n}\n\n// keep in sync with BO enum\n","export enum BuyStoreItemErrorCode {\n FAILED_TO_BUY_SHOP_ITEM = 121,\n SHOP_NO_BALANCE = 11000,\n SHOP_WRONG_LABEL = 11001,\n SHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. Shoudnt happen\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n SHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n SHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n SHOP_FAILED_POOL_EMPTY = 11009,\n}","import { TStoreCategory } from \"../WSAPI/WSAPITypes\";\nimport { StoreCategoryPublicMeta } from \"./StoreCategoryPublicMeta\";\n\nexport interface StoreCategory {\n\n id?: number;\n publicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => { \n return items.map( r => {\n const x: TStoreCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","export enum StoreItemType {\n Bonus = 1,\n Tangible = 2,\n MiniGameSpin = 3,\n ChangeLevel = 4,\n PrizeDrop = 5,\n}\n\nexport enum StoreItemTypeName {\n Bonus = \"bonus\",\n Tangible = \"tangible\",\n MiniGameSpin = \"minigamespin\",\n ChangeLevel = \"changelevel\",\n PrizeDrop = \"prizedrop\",\n Unknown = \"unknown\"\n}\n\nexport const StoreItemTypeNamed = (type: StoreItemType): StoreItemTypeName => {\n return {\n [StoreItemType.Bonus]: StoreItemTypeName.Bonus,\n [StoreItemType.Tangible]: StoreItemTypeName.Bonus,\n [StoreItemType.MiniGameSpin]: StoreItemTypeName.MiniGameSpin,\n [StoreItemType.ChangeLevel]: StoreItemTypeName.ChangeLevel,\n [StoreItemType.PrizeDrop]: StoreItemTypeName.PrizeDrop,\n }[type] || StoreItemTypeName.Unknown;\n}\n\n","import { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItemPublicMeta } from \"./StoreItemPublicMeta\";\nimport { StoreItemType, StoreItemTypeNamed } from \"./StoreItemType\";\n\nexport interface StoreItem {\n id: number;\n itemTypeId: StoreItemType;\n itemPublicMeta: StoreItemPublicMeta;\n categoryIds?: number[];\n canBuy?: boolean;\n shopPool: number;\n}\n\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority ?? 0,\n related_item_ids: r.itemPublicMeta.related_items,\n hint_text: r.itemPublicMeta.hint_text,\n type: StoreItemTypeNamed(r.itemTypeId),\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n }\n return x;\n });\n\n}","import { IntUtils } from \"../IntUtils\";\nimport { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItem } from \"./StoreItem\";\nimport { StoreItemTypeNamed } from \"./StoreItemType\";\n\ninterface StoreItemPurchased extends StoreItem {\n purchase_ts: number;\n purchase_points_amount: number;\n purchased_today?: boolean;\n purchased_this_week?: boolean;\n purchased_this_month?: boolean;\n}\n\nexport const StoreItemPurchasedTransform = (items: StoreItemPurchased[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const purchasedToday = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'today') : false;\n const purchasedThisWeek = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisWeek') : false;\n const purchasedThisMonth = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisMonth') : false;\n\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority ?? 0,\n related_item_ids: r.itemPublicMeta.related_items,\n hint_text: r.itemPublicMeta.hint_text,\n type: StoreItemTypeNamed(r.itemTypeId),\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n purchase_ts: r.purchase_ts,\n purchase_points_amount: r.purchase_points_amount,\n purchased_today: purchasedToday,\n purchased_this_week: purchasedThisWeek,\n purchased_this_month: purchasedThisMonth,\n }\n\n return x;\n });\n\n}\n\nexport { StoreItemPurchased }","export enum AchievementStatus {\n\n Draft = 1,\n AvailableUnlocked = 2,\n AvailableLocked = 3,\n Archived = 4,\n FeaturedManually = 5,\n FeaturedAI = 6,\n Recurring = 7\n}\n","export enum AchievementTaskType {\n CompleteAchievement = 1,\n UnlockAchievement = 2\n}\n","export enum AchievementType {\n\n Mission = 1,\n Badge = 2\n}\n","\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\nimport { IntUtils } from \"../IntUtils\";\nimport { TMissionOrBadge } from \"../WSAPI/WSAPITypes\";\nimport { AchievementPublicMeta } from \"./AchievementPublicMeta\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { AchievementTaskType } from \"./AchievementTaskType\";\nimport { AchievementType } from \"./AchievementType\";\nimport { ScheduledMissionType } from \"./ScheduledMissionType\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport interface UserAchievement {\n\n ach_id?: number;\n ach_type_id?: AchievementType;\n ach_public_meta?: AchievementPublicMeta;\n isCompleted?: boolean;\n isLocked?: boolean;\n requiresOptin?: boolean;\n isOptedIn?: boolean;\n start_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n start_date_ts?: number; \n time_limit_ms?: number;\n progress?: number;\n complete_date?: string;\n complete_date_ts?: number;\n unlock_date?: string;\n milliseconds_till_available?: number;\n completed_tasks?: number;\n achievementTasks?: UserAchievementTask[];\n ach_status_id?: AchievementStatus;\n scheduledMissionType?: ScheduledMissionType;\n related_games?: AchRelatedGame[];\n active_from_ts?: number; // indicates when 'scheduled' mission is active from,\n ach_categories?: number[];\n\n ach_completed_id?: number; // ID of the completion fact from ach_completed or ach_completed_recurring tables\n requires_prize_claim?: boolean; // flag from achievement if the mission prize will be given only after user claims it\n prize_claimed_date_ts?: number; // the date/timestamp indicating when the prize was claimed by the user\n\n completed_today?: boolean;\n completed_this_week?: boolean;\n completed_this_month?: boolean;\n custom_section_type_id?: number;\n}\n\n\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n \n return items.filter( r => r.ach_id >= 1).map( r => {\n const completedToday = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'today') : false;\n const completedThisWeek = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisWeek') : false;\n const completedThisMonth = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisMonth') : false;\n\n const x: TMissionOrBadge = {\n id: r.ach_id,\n name: r.ach_public_meta.name,\n description: r.ach_public_meta.description,\n hint_text: r.ach_public_meta.hint_text,\n unlock_mission_description: r.ach_public_meta.unlock_mission_description,\n image: r.ach_public_meta.image_url,\n is_completed: r.isCompleted,\n is_locked: r.isLocked,\n is_requires_optin: r.requiresOptin,\n is_opted_in: r.isOptedIn,\n time_limit_ms: r.time_limit_ms,\n dt_start: r.start_date_ts,\n reward: r.ach_public_meta.reward,\n progress: r.progress,\n type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n cta_action: r.ach_public_meta.cta_action,\n cta_text: r.ach_public_meta.cta_text,\n custom_section_id: r.ach_public_meta.custom_section_id,\n only_in_custom_section: r.ach_public_meta.only_in_custom_section,\n custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n position: r.ach_public_meta.position,\n ribbon: r.ach_public_meta.label_tag === 'custom' ? r.ach_public_meta.custom_label_tag : r.ach_public_meta.label_tag,\n tasks: (r.achievementTasks || [])\n .filter( t => t.task_type_id === AchievementTaskType.CompleteAchievement)\n .map( t => ({\n id: t.task_id,\n name: t.task_public_meta?.name,\n points_reward: t.points_reward,\n is_completed: t.isCompleted,\n progress: t.userProgress,\n execution_count_expected: t.executionCount,\n execution_count_actual: t.userExecutedCount,\n display_progress_as_count: t.task_public_meta.display_progress_as_count,\n })),\n related_games: (r.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n category_ids: r.ach_categories ?? [],\n ach_completed_id: r.ach_completed_id,\n requires_prize_claim: r.requires_prize_claim,\n prize_claimed_date_ts: r.prize_claimed_date_ts,\n complete_date: r.complete_date,\n complete_date_ts: r.complete_date_ts,\n completed_today: completedToday,\n completed_this_week: completedThisWeek,\n completed_this_month: completedThisMonth,\n custom_section_type_id: r.ach_public_meta.custom_section_type_id,\n }\n return x;\n});\n} \n\n","export enum ScheduledMissionType {\n\n Future = 1,\n Past = 2,\n Present = 3,\n}","import { TAchCategory } from \"../WSAPI/WSAPITypes\";\nimport { AchCategoryPublicMeta } from \"./AchCategoryPublicMeta\";\n\nexport interface AchCategory {\n\n id?: number;\n publicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => { \n return items.map( r => {\n const x: TAchCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","/** @hidden */\nexport enum TournamentRegistrationType {\n\n AUTO = 1,\n OPT_IN = 2,\n BUY_IN_POINTS = 3,\n MANUAL_APPROVAL = 4,\n REQUIRES_QUALIFICATION = 5\n // BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName = 'AUTO' | 'OPT_IN' | 'BUY_IN_POINTS' | 'MANUAL_APPROVAL' | 'REQUIRES_QUALIFICATION' | 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n return ({\n [TournamentRegistrationType.AUTO]: 'AUTO',\n [TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n [TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n [TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n [TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n }[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n}","/** @hidden */\nexport enum TournamentRegistrationStatus {\n\n NOT_REGISTERED = 0,\n REGISTERED = 1,\n FINISHED = 2,\n PENDING = 3,\n CANCELLED = 4,\n REGISTERED_PENDING_QUALIFICATION = 5,\n QUALIFIED_PENDING_REGISTRATION = 6\n}\n\nexport enum TournamentRegistrationStatusName {\n NOT_REGISTERED = 'NOT_REGISTERED',\n REGISTERED = 'REGISTERED',\n FINISHED = 'FINISHED',\n PENDING = 'PENDING',\n CANCELLED = 'CANCELLED',\n REGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n QUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n UNKNOWN = \"UNKNOWN\"\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n return ({\n [TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n [TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n [TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n [TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n [TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]: TournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n [TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n [TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]: TournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION\n }[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n} \n\n","import {TournamentRegistrationType, TournamentRegistrationTypeGetName} from \"./TournamentRegistrationType\";\nimport {TournamentInstanceStatus} from \"./TournamentInstanceStatus\";\nimport { TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed } from \"./TournamentRegistrationStatus\";\nimport { TournamentType } from \"./TournamentType\";\nimport { TournamentPublicMeta } from \"./TournamentPublicMeta\";\nimport { TTournament } from \"../WSAPI/WSAPITypes\";\nimport { TournamentPlayer, TournamentPrize, TournamentUtils } from \".\";\nimport { IntUtils } from \"../IntUtils\";\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\n\nexport interface Tournament {\n\n /** ID of tournament template */\n tournamentId?: number;\n /** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n tournamentInstanceId?: number;\n /** Type of the tournament. For now only SCHEDULED is support */\n tournamentType?: TournamentType;\n /** Meta information about tournament that should be used to build UI */\n publicMeta?: TournamentPublicMeta;\n /** Cost of registration in the tournament in gamification points */\n buyInAmount?: number;\n /** Not in use */\n prizePool?: number;\n /** The time when tournament is going to start */\n startTime?: string;\n /** The time when tournament is going to finish */\n endTime?: string;\n /** The time when tournament is going to start, epoch */\n startTimeTs?: number;\n /** The time when tournament is going to finish, epoch */\n endTimeTs?: number; \n /** Number of users registered in the tournament */\n registrationCount?: number;\n /** Not in use */\n totalCount?: number;\n /** Type of registration in the tournament */\n registrationType?: TournamentRegistrationType;\n /** Status of registration in the tournament for current user */\n tournamentRegistrationStatus?: TournamentRegistrationStatus;\n /** Status of tournament instance */\n tournamentInstanceStatus?: TournamentInstanceStatus;\n /** flag indicating if current user is registered in the tournament */\n isUserRegistered?: boolean;\n /** Indicator if tournament allows later registration, when tournament is already started */\n allowLateRegistration?: boolean;\n /** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n playersMinCount?: number;\n /** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n playersMaxCount?: number;\n /** Tournament duration in millisecnnds */\n durationMs?: number;\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n /** Information about current user */\n tournamentPlayer?: TournamentPlayer\n\n /** List of casino games (or other types of entities) related to the tournament */\n related_games?: AchRelatedGame[];\n}\n\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => { \n\n return items.filter(r => r.tournamentId >= 1).map(r => {\n const x: TTournament = {\n instance_id: r.tournamentInstanceId,\n tournament_id: r.tournamentId,\n name: r.publicMeta.name,\n description: r.publicMeta.description,\n segment_dont_match_message: r.publicMeta.segment_dont_match_message,\n image1: r.publicMeta.image_url,\n image2: r.publicMeta.image_url2,\n image2_mobile: r.publicMeta.image_url2_mobile,\n prize_pool_short: r.publicMeta.prize_pool_short,\n custom_price_text: r.publicMeta.custom_price_text,\n custom_section_id: r.publicMeta.custom_section_id,\n custom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n is_featured: r.publicMeta.featured,\n ribbon: r.publicMeta.label_tag === 'custom' ? r.publicMeta.custom_label_tag : r.publicMeta.label_tag,\n priority: r.publicMeta.position,\n \n\n start_time: r.startTimeTs,\n end_time: r.endTimeTs,\n registration_count: r.registrationCount,\n is_user_registered: r.isUserRegistered,\n players_min_count: r.playersMinCount,\n players_max_count: r.playersMaxCount,\n registration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n registration_type: TournamentRegistrationTypeGetName(r.registrationType),\n registration_cost_points: r.buyInAmount,\n duration_ms: r.durationMs,\n\n is_active: TournamentUtils.isActive(r),\n is_can_register: TournamentUtils.isCanRegister(r),\n is_cancelled: TournamentUtils.isCancelled(r),\n is_finished: TournamentUtils.isFinished(r),\n is_in_progress: TournamentUtils.isInProgress(r),\n is_upcoming: TournamentUtils.isUpcoming(r),\n\n }\n\n if (r.prizeStructure) {\n x.prizes = r.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (r.tournamentPlayer) {\n x.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true)\n }\n\n return x;\n });\n\n\n}\n\n","export enum TournamentInstanceStatus {\n\n PUBLISHED = 1,\n REGISTER = 2,\n STARTED = 3,\n FINISHED = 4,\n CANCELLED = 5,\n FAILED = 6,\n FINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n return {\n [TournamentInstanceStatus.PUBLISHED]: \"PUBLISHED\",\n [TournamentInstanceStatus.REGISTER]: \"REGISTER\",\n [TournamentInstanceStatus.STARTED]: \"STARTED\",\n [TournamentInstanceStatus.FINISHED]: \"FINISHED\",\n [TournamentInstanceStatus.CANCELLED]: \"CANCELLED\",\n [TournamentInstanceStatus.FAILED]: \"FAILED\",\n [TournamentInstanceStatus.FINALIZING]: \"FINALIZING\",\n }[s];\n};","import { ActivityTypeLimited } from \"../Core\";\nimport { Tournament } from \"./Tournament\";\nimport { TournamentInstanceStatus } from \"./TournamentInstanceStatus\";\nimport { TournamentPlayer } from \"./TournamentPlayer\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TournamentRegistrationStatus } from \"./TournamentRegistrationStatus\";\nimport { TournamentRegistrationType } from \"./TournamentRegistrationType\";\n\nconst tournamentPrizeTypeToPrizeName = (type: ActivityTypeLimited) => {\n return {\n [ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n [ActivityTypeLimited.Points]: 'POINTS_ADD',\n [ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n [ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n [ActivityTypeLimited.MiniGameAttempt]: \"MINI_GAME_ATTEMPT\",\n [ActivityTypeLimited.Bonus]: 'BONUS',\n }[type]\n}\n\nexport class TournamentUtils {\n\n public static isCanRegister = (tournament: Tournament): boolean => {\n if (tournament) {\n if (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n return true;\n }\n return !tournament.isUserRegistered &&\n (tournament.playersMaxCount !== tournament.registrationCount || tournament.playersMaxCount === null || tournament.playersMaxCount === 0) &&\n tournament.registrationType !== TournamentRegistrationType.AUTO &&\n (\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n (tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration)\n );\n }\n return false;\n }\n\n\n public static isInProgress = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n }\n return false;\n }\n\n public static isActive = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n }\n return false;\n }\n\n public static isFinished = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING;\n }\n return false;\n }\n\n public static isCancelled = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n }\n return false;\n }\n\n public static isUpcoming = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED || tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER;\n }\n return false;\n }\n\n public static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n if (player) {\n const playerTransformed = {\n public_username: player.userAltName,\n avatar_url: player.avatar_url,\n position: player.position,\n scores: player.scores,\n is_me: player.isMe,\n }\n \n if (isMe) {\n delete playerTransformed.is_me;\n }\n\n return playerTransformed;\n }\n\n return null;\n }\n\n public static getPrizeTransformed = (prize: TournamentPrize) => {\n if (prize) {\n return ({...prize, type: tournamentPrizeTypeToPrizeName(prize.type)})\n }\n\n return null;\n }\n\n}\n","import {Tournament, TournamentItemsTransform} from \"./Tournament\";\nimport {TournamentPlayer} from \"./TournamentPlayer\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TTournamentDetailed } from \"../WSAPI/WSAPITypes\";\nimport { TournamentUtils } from \"./TournamentUtils\";\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\n /** tournament info */\n tournamentInfo: {\n /** id of label, not in use */\n labelId: number;\n tournamentLobbyInfo: Tournament;\n /** list of registered users */\n players: TournamentPlayer[];\n },\n /** information about current user position */\n userPosition: TournamentPlayer,\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n const response: TTournamentDetailed = {\n ...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n related_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n players: t.tournamentInfo.players.map( p => TournamentUtils.getPlayerTransformed(p)),\n };\n\n if (t.prizeStructure) {\n response.prizes = t.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (t.userPosition) {\n response.me = TournamentUtils.getPlayerTransformed(t.userPosition, true)\n }\n\n return response;\n}\n\n\n","export enum TournamentRegistrationError {\n NO_ERROR = 0,\n TOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n TOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n TOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n TOURNAMENT_ALREADY_REGISTERED = 30004,\n TOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n TOURNAMENT_USER_NOT_REGISTERED = 30006,\n TOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n TOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\n SCHEDULED = 1,\n SNG = 2,\n TEST = 3,\n}\n","export enum LeaderBoardPeriodType {\n DAILY = 1,\n WEEKLY = 2,\n MONTHLY = 3\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TLevel } from \"../WSAPI/WSAPITypes\";\nimport { Level } from \"./Level\";\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\n levels: Level[];\n}\n\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n \n return levels?.levels.map((l => ({\n id: l.level_id,\n name: l.level_public_meta.name,\n description: l.level_public_meta.description,\n image: l.level_public_meta.image_url,\n required_points: l.required_points,\n visibility_points: l.level_public_meta.visibility_points ? parseInt(l.level_public_meta.visibility_points as any) : null,\n required_level_counter_1: l.required_level_counter_1,\n required_level_counter_2: l.required_level_counter_2,\n custom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n })));\n}","import { ClassId } from \"../Base/ClassId\";\nimport { CoreUtils } from \"../Core\";\nimport { MiniGamePrizeTypeName, SAWDoSpinResponse, SAWSpinErrorCode, SAWSpinsCountPush } from \"../MiniGames\";\nimport { ECacheContext, OCache } from \"../OCache\";\nimport { SmarticoAPI } from \"../SmarticoAPI\";\nimport { InboxMarkMessageAction, LeaderBoardDetailsT, TAchCategory, TBuyStoreItemResult, TGetTranslations, TInboxMessage, TInboxMessageBody, TLevel, TMiniGamePlayResult, TMiniGameTemplate, TMissionClaimRewardResult, TMissionOptInResult, TMissionOrBadge, TSegmentCheckResult, TStoreCategory, TStoreItem, TTournament, TTournamentDetailed, TTournamentRegistrationResult, TUICustomSection, TUserProfile, UserLevelExtraCountersT } from \"./WSAPITypes\";\nimport { LeaderBoardPeriodType } from \"../Leaderboard\";\nimport { JackpotDetails, JackpotPot, JackpotWinPush, JackpotsOptinResponse, JackpotsOptoutRequest, JackpotsOptoutResponse } from \"../Jackpots\";\n \n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n\nconst JACKPOT_TEMPLATE_CACHE_SEC = 30;\nconst JACKPOT_POT_CACHE_SEC = 1;\n\n /** @hidden */\nenum onUpdateContextKey {\n Saw = 'saw',\n Missions = 'missions',\n TournamentList = 'tournamentList',\n InboxMessages = 'inboxMessages',\n Badges = 'badges',\n Levels = 'levels',\n StoreItems = 'storeItems',\n StoreCategories = 'storeCategories',\n AchCategories = 'achCategories',\n LeaderBoards = 'leaderBoards',\n LevelExtraCounters = 'levelExtraCounters',\n Segments = 'segments',\n StoreHistory = 'storeHistory',\n Jackpots = 'jackpots',\n Pots = 'Pots',\n CustomSections = 'customSections'\n}\n\n\n/** @group General API */\nexport class WSAPI {\n\n private onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n private jackpotGetSignature: string = '';\n\n /** @private */\n constructor(private api: SmarticoAPI) {\n\n OCache.clearAll();\n if (this.api.tracker) {\n const on = this.api.tracker.on;\n on(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n on(ClassId.SAW_SHOW_SPIN_PUSH, () => this.updateOnAddSpin());\n on(ClassId.SAW_DO_SPIN_RESPONSE, (data: SAWDoSpinResponse) => on(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => this.updateOnPrizeWin(data)));\n on(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissionsOnOptIn());\n on(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournamentsOnRegistration());\n on(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n on(ClassId.LOGOUT_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n on(ClassId.IDENTIFY_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n on(ClassId.JP_WIN_PUSH, (data: JackpotWinPush) => this.jackpotClearCache());\n on(ClassId.JP_OPTOUT_RESPONSE, (data: JackpotsOptoutRequest) => this.jackpotClearCache());\n on(ClassId.JP_OPTIN_RESPONSE, (data: JackpotsOptinResponse) => this.jackpotClearCache());\n }\n }\n\n /** Returns information about current user\n * \n * **Example**:\n * ```\n * _smartico.api.getUserProfile().then((result) => {\n * console.log(result);\n * });\n * ```\n * **Visitor mode: not supported**\n * */\n public getUserProfile(): TUserProfile {\n if (this.api.tracker) {\n const o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n return o;\n } else {\n throw new Error('Tracker is not initialized, cannot getUserProfile');\n }\n }\n\n /** Check if user belongs to specific segments\n * **Example**:\n * ```\n * _smartico.api.checkSegmentMatch(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async checkSegmentMatch(segment_id: number): Promise<boolean> {\n const r = await this.api.coreCheckSegments(null, [segment_id]);\n if (r && r.find(s => s.segment_id === segment_id && s.is_matching)) {\n return true;\n } else {\n return false;\n }\n }\n\n /** Check if user belongs to specific list of segments\n * **Example**:\n * ```\n * _smartico.api.checkSegmentListMatch([1, 2, 3]).then((result) => {\n * console.log(result);\n * });\n * ```\n * **Visitor mode: not supported**\n */\n public async checkSegmentListMatch(segment_ids: number[]): Promise<TSegmentCheckResult[]> {\n return await this.api.coreCheckSegments(null, Array.isArray(segment_ids) ? segment_ids : [segment_ids]);\n } \n\n /** Returns all the levels available the current user\n * **Example**:\n * ```\n * _smartico.api.getLevels().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getLevels().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getLevels(): Promise<TLevel[]> {\n return OCache.use(onUpdateContextKey.Levels, ECacheContext.WSAPI, () => this.api.levelsGetT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the missions available the current user.\n * The returned missions are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n * Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it.\n * \n * **Example**:\n * ```\n * _smartico.api.getMissions().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getMissions().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Missions, ECacheContext.WSAPI, () => this.api.missionsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns all the badges available the current user\n * \n * **Visitor mode: not supported**\n */\n public async getBadges(): Promise<TMissionOrBadge[]> {\n return OCache.use(onUpdateContextKey.Badges, ECacheContext.WSAPI, () => this.api.badgetsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Returns the extra counters for the current user level.\n * These are counters that are configured for each Smartico client separatly by request.\n * For example 1st counter could be total wagering amount, 2nd counter could be total deposit amount, etc.\n * \n * **Example**:\n * ```\n * _smartico.api.getUserLevelExtraCounters().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async getUserLevelExtraCounters(): Promise<UserLevelExtraCountersT> {\n return OCache.use(onUpdateContextKey.LevelExtraCounters, ECacheContext.WSAPI, () => this.api.getUserGamificationInfoT(null), CACHE_DATA_SEC);\n }\n\n /** \n * \n * Returns all the store items available the current user\n * \n * **Example**:\n * ```\n * _smartico.api.getStoreItems().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getStoreItems().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n\n public async getStoreItems(): Promise<TStoreItem[]> {\n return OCache.use(onUpdateContextKey.StoreItems, ECacheContext.WSAPI, () => this.api.storeGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Buy the specific shop item by item_id. Returns the err_code in case of success or error.\n * **Example**:\n * ```\n * _smartico.api.buyStoreItem(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n public async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n const r = await this.api.buyStoreItem(null, item_id);\n\n const o: TBuyStoreItemResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * \n * Returns store categories\n * \n * **Example**:\n * ```\n * _smartico.api.getStoreCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getStoreCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getStoreCategories(): Promise<TStoreCategory[]> {\n return OCache.use(onUpdateContextKey.StoreCategories, ECacheContext.WSAPI, () => this.api.storeGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns purchased items based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched. \n * The maximum number of items per request is limited to 20. \n * You can leave this params empty and by default it will return list of purchased items ranging from 0 to 20.\n * \n * **Example**:\n * ```\n * _smartico.api.getStorePurchasedItems().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Visitor mode: not supported**\n */\n\n public async getStorePurchasedItems({ limit, offset, onUpdate } : { limit?: number, offset?: number, onUpdate?: (data: TStoreItem[]) => void} = {}): Promise<TStoreItem[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.StoreHistory, onUpdate);\n }\n return OCache.use(onUpdateContextKey.StoreHistory, ECacheContext.WSAPI, () => this.api.storeGetPurchasedItemsT(null, limit, offset), CACHE_DATA_SEC);\n }\n\n /**\n * Returns missions & badges categories\n * \n * **Example**:\n * ```\n * _smartico.api.getAchCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getAchCategories().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * */\n public async getAchCategories(): Promise<TAchCategory[]> {\n return OCache.use(onUpdateContextKey.AchCategories, ECacheContext.WSAPI, () => this.api.achGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns list of custom sections\n * \n * **Example**:\n * ```\n * _smartico.api.getCustomSections().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getCustomSections().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * */\n public async getCustomSections(): Promise<TUICustomSection[]> {\n return OCache.use(onUpdateContextKey.CustomSections, ECacheContext.WSAPI, () => this.api.getCustomSectionsT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Returns the list of mini-games available for user \n * The returned list of mini-games is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMiniGames with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on available spin count change, if mini-game has increasing jackpot per spin or wined prize is spin/jackpot and if max count of the available user spin equal one, also if the spins were issued to the user manually in the BO. Updated templates will be passed to onUpdate callback.\n * \n * **Example**:\n * ```\n * _smartico.api.getMiniGames().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getMiniGames().then((result) => {\n * console.log(result);\n * });\n * ```\n *\n */\n public async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<TMiniGameTemplate[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n }\n\n /** \n * Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code\n * \n * **Visitor mode: not supported** \n */\n public async playMiniGame(template_id: number): Promise<TMiniGamePlayResult> {\n const r = await this.api.sawSpinRequest(null, template_id);\n this.api.doAcknowledgeRequest(null, r.request_id)\n\n const o: TMiniGamePlayResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n prize_id: r.saw_prize_id,\n }\n\n return o;\n }\n\n /** \n * Requests an opt-in for the specified mission_id. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult>{\n const r = await this.api.missionOptIn(null, mission_id);\n\n const o: TMissionOptInResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * Request for claim reward for the specified mission id. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async requestMissionClaimReward(mission_id: number, ach_completed_id: number): Promise<TMissionClaimRewardResult> {\n const r = await this.api.missionClaimPrize(null, mission_id, ach_completed_id);\n\n const o: TMissionClaimRewardResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns all the active instances of tournaments \n * The returned list is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getTournamentsList with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.\n * \n * **Example**:\n * ```\n * _smartico.api.getTournamentsList().then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getTournamentsList().then((result) => {\n * console.log(result);\n * });\n * ```\n * */\n public async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.TournamentList, ECacheContext.WSAPI, () => this.api.tournamentsGetLobbyT(null), CACHE_DATA_SEC);\n }\n\n /**\n * Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players\n * \n * **Example**:\n * ```\n * _smartico.api.getTournamentsList().then((result) => {\n * if (result.length > 0) {\n * _smartico.api.getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n * console.log(result);\n * });\n * }\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getTournamentsList().then((result) => {\n * if (result.length > 0) {\n * _smartico.vapi('EN').getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n * console.log(result);\n * });\n * }\n * });\n * ```\n */\n public async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n return this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n }\n\n /** \n * Requests registration for the specified tournament instance. Returns the err_code.\n * \n * **Visitor mode: not supported** \n */\n public async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult>{\n const r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n const o: TTournamentRegistrationResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** \n * Returns the leaderboard for the current type (default is Daily). If getPreviousPeriod is passed as true, a leaderboard for the previous period for the current type will be returned.\n * For example, if the type is Weekly and getPreviousPeriod is true, a leaderboard for the previous week will be returned.\n * \n * **Example**:\n * ```\n * _smartico.api.getLeaderBoard(1).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').getLeaderBoard(1).then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async getLeaderBoard(periodType: LeaderBoardPeriodType, getPreviousPeriod?: boolean): Promise<LeaderBoardDetailsT> {\n return OCache.use(onUpdateContextKey.LeaderBoards, ECacheContext.WSAPI, () => this.api.leaderboardsGetT(null, periodType, getPreviousPeriod), CACHE_DATA_SEC);\n }\n\n /** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched. \n * The maximum number of messages per request is limited to 20. An indicator \"onlyFavorite\" can be passed to get only messages marked as favorites. \n * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n * This functions return list of messages without the body of the message. \n * To get the body of the message you need to call getInboxMessageBody function and pass the message guid contained in each message of this request.\n * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n * The \"onUpdate\" callback will be triggered when the user receives a new message. It will provide an updated list of messages, ranging from 0 to 20, to the onUpdate callback function.\n *\n * **Visitor mode: not supported** \n * \n * @param params\n */\n public async getInboxMessages({ from, to, onlyFavorite, onUpdate }: { from?: number, to?: number, onlyFavorite?: boolean, onUpdate?: (data: TInboxMessage[]) => void } = {}): Promise<TInboxMessage[]> { \n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n }\n\n return await this.api.getInboxMessagesT(null, from, to, onlyFavorite);\n }\n\n /** \n * Returns the message body of the specified message guid.\n *\n * **Visitor mode: not supported** \n */\n public async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n return await this.api.getInboxMessageBodyT(messageGuid);\n }\n\n /** \n * Requests to mark inbox message with specified guid as read\n *\n * **Visitor mode: not supported** \n */\n public async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.markInboxMessageRead(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to mark all inbox messages as rea\n *\n * **Visitor mode: not supported** \n */ \n public async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n const r = await this.api.markAllInboxMessageRead(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove.\n *\n * **Visitor mode: not supported** \n */\n public async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n const r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to delete inbox message\n *\n * **Visitor mode: not supported** \n */\n \n public async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteInboxMessage(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests to delete all inbox messages\n *\n * **Visitor mode: not supported** \n */\n\n public async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteAllInboxMessages(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** \n * Requests translations for the given language. Returns the object including translation key/translation value pairs. All possible translation keys defined in the back office.\n */\n public async getTranslations(lang_code: string): Promise<TGetTranslations> {\n const r = await this.api.getTranslationsT(null, lang_code, []);\n\n return {\n translations: r.translations\n }\n }\n\n private async updateOnSpin(data: SAWSpinsCountPush) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const index = templates.findIndex(t => t.id === data.saw_template_id);\n templates[index].spin_count = data.spin_count;\n this.updateEntity(onUpdateContextKey.Saw, templates)\n }\n\n private async updateOnAddSpin() {\n const payload = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, payload)\n }\n\n private async updateOnPrizeWin(data: SAWDoSpinResponse) {\n if (data.errCode === SAWSpinErrorCode.SAW_OK) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const template: TMiniGameTemplate = templates.find(t => t.prizes.find(p => p.id === data.saw_prize_id));\n const prizeType = template.prizes.find(p => p.id === data.saw_prize_id)?.prize_type;\n\n if (\n template.jackpot_add_on_attempt ||\n template.spin_count === 1 ||\n prizeType === MiniGamePrizeTypeName.JACKPOT ||\n prizeType === MiniGamePrizeTypeName.SPIN\n ) {\n const updatedTemplates = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, updatedTemplates)\n }\n }\n }\n\n private async updateMissionsOnOptIn() {\n const payload = await this.api.missionsGetItemsT(null);\n this.updateEntity(onUpdateContextKey.Missions, payload)\n }\n\n private async updateTournamentsOnRegistration() {\n const payload = await this.api.tournamentsGetLobbyT(null);\n this.updateEntity(onUpdateContextKey.TournamentList, payload)\n }\n\n private async updateInboxMessages() {\n const payload = await this.api.getInboxMessagesT(null);\n this.updateEntity(onUpdateContextKey.InboxMessages, payload)\n }\n\n private async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n OCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n const onUpdate = this.onUpdateCallback.get(contextKey);\n if (onUpdate) {\n onUpdate(payload);\n }\n }\n\n private async jackpotClearCache() {\n OCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Jackpots);\n OCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Pots); \n }\n\n /** Returns list of Jackpots that are active in the systen and matching to the filter definition.\n * If filter is not provided, all active jackpots will be returned.\n * Filter can be used to get jackpots related to specific game or specific jackpot template.\n * You can call this method every second in order to get up to date information about current value of the jackpot(s) and present them to the end-users\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n * console.log(result);\n * });\n * ```\n * \n * **Example in the Visitor mode**:\n * ```\n * _smartico.vapi('EN').jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n * console.log(result);\n * });\n * ```\n */\n public async jackpotGet(filter?: { related_game_id?: string, jp_template_id?: number }): Promise<JackpotDetails[]> {\n\n const signature: string = `${filter?.jp_template_id}:${filter?.related_game_id}`;\n\n if (signature !== this.jackpotGetSignature) {\n this.jackpotGetSignature = signature;\n this.jackpotClearCache();\n }\n\n let jackpots: JackpotDetails[] = [];\n let pots: JackpotPot[] = [];\n\n jackpots = await OCache.use<JackpotDetails[]>(onUpdateContextKey.Jackpots, ECacheContext.WSAPI, async () => {\n \n const _jackpots = await this.api.jackpotGet(null, filter);\n const _pots = _jackpots.items.map( jp => jp.pot);\n\n OCache.set(onUpdateContextKey.Pots, _pots, ECacheContext.WSAPI, JACKPOT_POT_CACHE_SEC);\n return _jackpots.items;\n\n }, JACKPOT_TEMPLATE_CACHE_SEC);\n\n\n if (jackpots.length > 0) {\n pots = await OCache.use<JackpotPot[]>(onUpdateContextKey.Pots, ECacheContext.WSAPI, async () => {\n \n const jp_template_ids = jackpots.map(jp => jp.jp_template_id);\n return (await this.api.potGet(null, { jp_template_ids })).items;\n\n }, JACKPOT_POT_CACHE_SEC);\n }\n\n return jackpots.map( jp => {\n let _jp: JackpotDetails = {\n ...jp,\n pot: pots.find( p => p.jp_template_id === jp.jp_template_id),\n };\n return _jp;\n });\n\n }\n\n /** \n * Opt-in currently logged in user to the jackpot with the specified jp_template_id.\n * You may call jackpotGet method after doing optin to see that user is opted in to the jackpot.\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotOptIn({ jp_template_id: 123 }).then((result) => {\n * console.log('Opted in to the jackpot');\n * });\n * ```\n *\n * **Visitor mode: not supported** \n *\n */ \n public async jackpotOptIn(filter: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n \n if (!filter.jp_template_id) {\n throw new Error('jp_template_id is required in jackpotOptIn');\n };\n\n const result = await this.api.jackpotOptIn(null, filter);\n\n return result;\n }\n\n /** \n * Opt-out currently logged in user from the jackpot with the specified jp_template_id.\n * You may call jackpotGet method after doing optout to see that user is not opted in to the jackpot.\n * \n * **Example**:\n * ```\n * _smartico.api.jackpotOptOut({ jp_template_id: 123 }).then((result) => {\n * console.log('Opted out from the jackpot');\n * });\n * ```\n *\n * **Visitor mode: not supported** \n *\n */ \n public async jackpotOptOut(filter: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n \n if (!filter.jp_template_id) {\n throw new Error('jp_template_id is required in jackpotOptOut');\n };\n\n const result = await this.api.jackpotOptOut(null, filter);\n\n return result;\n }\n}\n","import { LeaderBoardDetailsT, LeaderBoardUserT, LeaderBoardsRewardsT } from \"../WSAPI/WSAPITypes\";\nimport { LeaderBoardDetails } from \"./LeaderBoardDetails\";\nimport { LeaderBoardPeriodType } from \"./LeaderBoardPeriodType\";\nimport { LeaderBoardPosition } from \"./LeaderBoardPosition\";\n\nconst pointsRewardTransform = (reward_points: number[]): LeaderBoardsRewardsT[] => {\n if (reward_points && reward_points.length) {\n return reward_points.map((r, i) => ({ place: i + 1, points: r }));\n }\n\n return null;\n}\n\nconst getLeaderBoardPlayerTransformed = (user: LeaderBoardPosition, isMe?: boolean): LeaderBoardUserT => {\n if (user) {\n const x: LeaderBoardUserT= {\n public_username: user?.public_username || user.user_alt_name,\n avatar_url: user.avatar_url,\n position: user.position_in_board,\n points: user.points_accumulated,\n is_me: user.is_me,\n }\n \n if (isMe) {\n delete x.is_me;\n }\n\n return x;\n }\n\n return null;\n}\n\nexport const getLeaderBoardTransform = (board: LeaderBoardDetails): LeaderBoardDetailsT => {\n if (board) {\n const x: LeaderBoardDetailsT = {\n board_id: board.board_id,\n name: board.board_public_meta.name,\n description: board.board_public_meta.description,\n rules: board.board_public_meta.rules,\n period_type_id: board.period_type_id,\n rewards: pointsRewardTransform(board.reward_points),\n users: board.positions.map(p => getLeaderBoardPlayerTransformed(p)),\n me: getLeaderBoardPlayerTransformed(board.userPosition, true),\n }\n\n return x;\n }\n\n return null;\n}","export enum AchCustomSectionType {\n HTML_PAGE = 1,\n MISSIONS_CATEGORY = 2,\n TOURNAMENTS_CATEGORY = 3,\n LEVELS = 4,\n MINI_GAMES = 5,\n MISSION_CUSTOM_LAYOUT = 6,\n MATCH_X = 7,\n}\n\nexport enum AchCustomLayoutTheme {\n VALENTINES_LIGHT = 'valentines-light',\n VALENTINES_DARK = 'valentines-dark',\n EURO_2024 = 'euro-2024',\n GENERIC = 'generic',\n}\n\nexport enum AchMissionsTabsOptions {\n ONLY_OVERVIEW = 1,\n NO_OVERVIEW = 2,\n ALL = 3,\n}\n\nexport enum AchOverviewMissionsFilter {\n ANY = 1,\n ALL_MISSIONS = 2,\n ALL_EXCEPT_COMPLETED = 3,\n ALL_EXCEPT_LOCKED = 4,\n ALL_EXCEPT_COMPLETED_AND_LOCKED = 5,\n}","import { TUICustomSection } from \"../WSAPI/WSAPITypes\";\nimport { AchCustomLayoutTheme, AchCustomSectionType, AchMissionsTabsOptions, AchOverviewMissionsFilter } from \"./AchCustomSection\";\n\nexport interface UICustomSection {\n\n body?: string;\n menu_img?: string;\n menu_name?: string;\n custom_skin_images?: string;\n section_type_id?: AchCustomSectionType;\n theme?: AchCustomLayoutTheme;\n generic_custom_css?: string;\n mission_tabs_options?: AchMissionsTabsOptions;\n overview_missions_filter?: AchOverviewMissionsFilter;\n overview_missions_count?: number;\n}\n\nexport const UICustomSectionTransform = (items: UICustomSection[]): TUICustomSection[] => {\n return items.filter(r => r.section_type_id !== undefined && r.section_type_id >= 1).map( r => {\n const x: TUICustomSection = {\n body: r.body,\n menu_img: r.menu_img,\n menu_name: r.menu_name,\n section_type_id: r.section_type_id,\n custom_skin_images: r.custom_skin_images,\n generic_custom_css: r.generic_custom_css,\n mission_tabs_options: r.mission_tabs_options,\n overview_missions_count: r.overview_missions_count,\n overview_missions_filter: r.overview_missions_filter,\n theme: r.theme\n }\n return x;\n })\n}","import { ClassId } from \"./Base/ClassId\";\nimport { ProtocolRequest } from './Base/ProtocolRequest';\nimport { ProtocolResponse } from './Base/ProtocolResponse';\nimport { SAWGetTemplatesResponse } from './MiniGames/SAWGetTemplatesResponse';\nimport { SAWGetTemplatesRequest } from './MiniGames/SAWGetTemplatesRequest';\nimport { IntUtils } from './IntUtils';\nimport { ILogger } from './ILogger';\nimport { SAWDoAknowledgeRequest, SAWDoAknowledgeResponse, SAWDoSpinRequest, SAWDoSpinResponse, SAWSpinErrorCode, SAWTemplatesTransform } from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport { CoreUtils, GetTranslationsRequest, GetTranslationsResponse, PublicLabelSettings, ResponseIdentify, TranslationArea } from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport { GetInboxMessagesRequest, GetInboxMessagesResponse, InboxMessageBody, InboxMessageBodyTransform, InboxMessagesTransform, MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse, MarkInboxMessageReadRequest, MarkInboxMessageReadResponse, MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse } from './Inbox';\nimport { BuyStoreItemRequest, BuyStoreItemResponse, GetCategoriesStoreResponse, GetStoreHistoryRequest, GetStoreHistoryResponse, GetStoreItemsResponse, StoreCategoryTransform, StoreItemPurchasedTransform, StoreItemTransform } from './Store';\nimport { AchCategoryTransform, AchClaimPrizeRequest, AchClaimPrizeResponse, AchievementOptinRequest, AchievementOptinResponse, AchievementType, GetAchCategoriesResponse, GetAchievementMapRequest, GetAchievementMapResponse, UserAchievementTransform } from './Missions';\nimport { GetTournamentInfoRequest, GetTournamentInfoResponse, GetTournamentsRequest, GetTournamentsResponse, TournamentItemsTransform, TournamentRegisterRequest, TournamentRegisterResponse, tournamentInfoItemTransform } from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from \"./Leaderboard\";\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from \"./Level\";\nimport { WSAPI } from \"./WSAPI/WSAPI\";\nimport { TInboxMessage, TInboxMessageBody, TLevel, TMiniGameTemplate, TMissionOrBadge, TStoreCategory, TAchCategory, TStoreItem, TTournament, TTournamentDetailed, LeaderBoardDetailsT, UserLevelExtraCountersT, TSegmentCheckResult, TUICustomSection } from \"./WSAPI/WSAPITypes\";\nimport { getLeaderBoardTransform } from \"./Leaderboard/LeaderBoards\";\nimport { GetAchievementsUserInfoResponse } from \"./Core/GetAchievementsUserInfoResponse\";\nimport { CheckSegmentMatchResponse } from \"./Core/CheckSegmentMatchResponse\";\nimport { CheckSegmentMatchRequest } from \"./Core/CheckSegmentMatchRequest\";\nimport { GetJackpotsPotsRequest, GetJackpotsPotsResponse, GetJackpotsRequest, GetJackpotsResponse, JackpotDetails, JackpotPot, JackpotsOptinRequest, JackpotsOptinResponse, JackpotsOptoutRequest, JackpotsOptoutResponse } from \"./Jackpots\";\nimport { GetCustomSectionsRequest, GetCustomSectionsResponse, UICustomSectionTransform } from \"./CustomSections\";\n\nconst PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';\nconst C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';\nconst AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';\nconst DEFAULT_LANG_EN = \"EN\";\n\ninterface Tracker {\n label_api_key: string;\n userPublicProps: any;\n on: (callBackKey: ClassId, func: (data: any) => void) => void;\n getLabelSetting: (key: PublicLabelSettings) => any;\n}\ninterface IOptions {\n logger?: ILogger;\n logCIDs?: ClassId[];\n logHTTPTiming?: boolean;\n tracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\n\nclass SmarticoAPI {\n\n private publicUrl: string;\n private wsUrl: string;\n private inboxCdnUrl: string;\n private partnerUrl: string;\n public avatarDomain: string;\n\n private logger: ILogger;\n private logCIDs: ClassId[];\n private logHTTPTiming: boolean;\n public tracker?: Tracker;\n\n public constructor(private label_api_key: string, private brand_api_key: string, private messageSender: MessageSender, options: IOptions = {}) {\n\n this.logger = options.logger || (console as any);\n\n if (this.logger.always === undefined) {\n this.logger.always = this.logger.info;\n }\n\n this.logCIDs = options.logCIDs || [];\n this.logHTTPTiming = options.logHTTPTiming || false;\n this.tracker = options.tracker;\n\n this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\n }\n\n public static getEnvDnsSuffix(label_api_key: string): string {\n\n let ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n \n if (ENV_ID === '1' || ENV_ID === '2') {\n ENV_ID = ''\n }\n return ENV_ID;\n }\n\n public static getEnvId(label_api_key: string): number {\n\n return label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n \n }\n\n public static getCleanLabelApiKey(label_api_key: string): string {\n return label_api_key.substring(0, 36);\n }\n\n public static getPublicUrl(label_api_key: string): string {\n return PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n }\n\n public static getPublicWsUrl(label_api_key: string): string {\n return C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n public static getAvatarUrl(label_api_key: string): string {\n return AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n private async send<T>(message: any, expectCID?: ClassId, force_language?: string): Promise<T> {\n\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('REQ', message)\n }\n\n if (force_language) {\n message.force_language = force_language;\n }\n\n let result: any;\n \n try {\n const timeStart = new Date().getTime();\n result = await this.messageSender(message, this.publicUrl, expectCID);\n const timeEnd = new Date().getTime();\n\n if (this.logHTTPTiming) {\n this.logger.always('HTTP time, ms:' + (timeEnd - timeStart))\n }\n\n } catch (e) {\n this.logger.error(`Failed to make request to smartico channel, L2. ${e.message}`, { url: this.publicUrl, request: message, error: e.message });\n throw(new Error(`Failed to make request to smartico channel, L2 L1. ${e.message}`));\n }\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('RES', result)\n }\n\n if (expectCID) {\n if (Array.isArray(result)) { \n for (const str of result as string[]) {\n const obj: ProtocolResponse = JSON.parse(str);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n }\n if (obj.cid === expectCID) {\n return obj as any;\n }\n }\n this.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, { request: message, response: result });\n } else {\n return result;\n } \n } else {\n if (Array.isArray(result)) { \n if (result.length === 1) {\n const obj = JSON.parse(result[0]);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n } \n return obj;\n } else {\n this.logger.error('Expected one response, but got array', { request: message, response: result });\n }\n }\n return result;\n }\n }\n\n private buildMessage<TRequest,TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\n const message: ProtocolRequest = {\n // AA: in fact we need api and brand keys and ext_user_id only in the context of HTTP\n // its not needed in WebSocket and can be deleted\n api_key: this.label_api_key, \n brand_key: this.brand_api_key,\n ext_user_id: user_ext_id,\n cid,\n uuid: IntUtils.uuid(),\n ts: new Date().getTime(),\n ...payload\n };\n\n if (message.ext_user_id === undefined || message.ext_user_id === null) {\n delete message.ext_user_id;\n }\n\n if (message.brand_key === undefined || message.brand_key === null) {\n delete message.brand_key;\n } \n\n return message as any\n }\n\n public async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n const eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n eventType,\n payload\n });\n\n const eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n return eventResponse;\n }\n\n public async coreGetTranslations(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n\n if (lang_code === undefined || lang_code === null || lang_code.trim && lang_code.trim() === '') {\n lang_code = DEFAULT_LANG_EN;\n } \n\n const response = await OCache.use<GetTranslationsResponse>(`${lang_code}-${this.label_api_key}-${this.brand_api_key}`, ECacheContext.Translations, async () => {\n\n const tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code: DEFAULT_LANG_EN,\n hash_code: 0,\n areas\n });\n\n const trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n if (lang_code !== DEFAULT_LANG_EN) {\n const trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code,\n hash_code: 0,\n areas\n }); \n\n const trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n \n Object.keys(trUser?.translations ?? {}).forEach( k => {\n trBase.translations[k] = trUser.translations[k];\n })\n }\n\n return trBase;\n\n }, cacheSec );\n\n return response;\n } \n\n public async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n \n return OCache.use<GetLabelInfoResponse>(`${this.label_api_key} - ${this.brand_api_key}`, ECacheContext.LabelInfo, async () => {\n\n const message = this.buildMessage<GetLabelInfoResponse, GetLabelInfoRequest>(user_ext_id, ClassId.INIT);\n\n return this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE)\n \n }, cacheSec);\n \n } \n\n public async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\n const message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n request_id: IntUtils.uuid() // AA: do we need request_id?\n });\n\n const r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n r.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n return r;\n } \n\n public async coreChangeUsername(user_ext_id: string, public_username_custom: string): Promise<{ public_username_custom: string }> {\n \n const message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n public_username_custom\n });\n \n return await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n }\n\n public async coreCheckSegments(user_ext_id: string, segment_id: number[]): Promise<TSegmentCheckResult[]> {\n \n const message = this.buildMessage<CheckSegmentMatchRequest, any>(user_ext_id, ClassId.CHECK_SEGMENT_MATCH_REQUEST, {\n segment_id\n });\n \n const results = await this.send<CheckSegmentMatchResponse>(message, ClassId.CHECK_SEGMENT_MATCH_RESPONSE);\n\n return results.segments || [];\n }\n\n public async jackpotGet(user_ext_id: string, filter?: { related_game_id?: string, jp_template_id?: number }, force_language?: string ): Promise<GetJackpotsResponse> {\n\n const message = this.buildMessage<GetJackpotsRequest, GetJackpotsResponse>(user_ext_id, ClassId.JP_GET_JACKPOTS_REQUEST, filter);\n return await this.send<GetJackpotsResponse>(message, ClassId.JP_GET_JACKPOTS_RESPONSE, force_language);\n }\n\n public async potGet(user_ext_id: string, filter: { jp_template_ids: number[] }): Promise<GetJackpotsPotsResponse> {\n const message = this.buildMessage<GetJackpotsPotsRequest, GetJackpotsPotsResponse>(user_ext_id, ClassId.JP_GET_LATEST_POTS_REQUEST, filter);\n return await this.send<GetJackpotsPotsResponse>(message, ClassId.JP_GET_LATEST_POTS_RESPONSE);\n }\n\n public async jackpotOptIn(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n const message = this.buildMessage<JackpotsOptinRequest, JackpotsOptinResponse>(user_ext_id, ClassId.JP_OPTIN_REQUEST, payload);\n return await this.send<JackpotsOptinResponse>(message, ClassId.JP_OPTIN_RESPONSE);\n }\n\n public async jackpotOptOut(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n const message = this.buildMessage<JackpotsOptoutRequest, JackpotsOptoutResponse>(user_ext_id, ClassId.JP_OPTOUT_REQUEST, payload);\n return await this.send<JackpotsOptoutResponse>(message, ClassId.JP_OPTOUT_RESPONSE);\n }\n\n public async sawGetTemplates(user_ext_id: string, force_language?: string, is_visitor_mode: boolean = false): Promise<SAWGetTemplatesResponse> {\n\n const message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(user_ext_id, ClassId.SAW_GET_SPINS_REQUEST, { is_visitor_mode });\n\n const response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE, force_language);\n\n if (response && response.templates) {\n response.templates.forEach(t => {\n \n if (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n t.saw_template_ui_definition.name = IntUtils.replaceAll(t.saw_template_ui_definition.name, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.description = IntUtils.replaceAll(t.saw_template_ui_definition.description, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.promo_text = IntUtils.replaceAll(t.saw_template_ui_definition.promo_text, '{{jackpot}}', jackpotValue);\n t.prizes.forEach(p => {\n p.saw_prize_ui_definition.name = IntUtils.replaceAll(p.saw_prize_ui_definition.name, '{{jackpot}}', jackpotValue);\n p.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(p.saw_prize_ui_definition.aknowledge_message, '{{jackpot}}', jackpotValue);\n })\n }\n });\n }\n\n return response;\n }\n\n public async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n return SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n }\n\n public async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse>{\n const message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(user_ext_id, ClassId.SAW_AKNOWLEDGE_REQUEST, {\n request_id\n });\n\n return await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n }\n\n public async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n if (!saw_template_id) {\n throw new Error('Missing template id');\n }\n\n const request_id = IntUtils.uuid();\n\n const message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n saw_template_id,\n request_id\n });\n\n const spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n // to simulate fail\n // response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n const status: string = {\n [SAWSpinErrorCode.SAW_OK]: 'OK',\n [SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n [SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n [SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n [SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n }[spinAttemptResponse.errCode] || 'OTHER';\n\n await this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n saw_template_id,\n status,\n round_id,\n });\n\n return {...spinAttemptResponse, request_id };\n }\n\n public async missionOptIn(user_ext_id: string, mission_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n const message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(user_ext_id, ClassId.MISSION_OPTIN_REQUEST, {\n achievementId: mission_id\n });\n\n const res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n return res;\n }\n\n public async missionClaimPrize(user_ext_id: string, mission_id: number, ach_completed_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n\n const message = this.buildMessage<AchClaimPrizeRequest, AchClaimPrizeResponse>(user_ext_id, ClassId.ACHIEVEMENT_CLAIM_PRIZE_REQUEST, {\n ach_id: mission_id,\n ach_completed_id: ach_completed_id\n })\n\n const res = await this.send<AchClaimPrizeResponse>(message, ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE);\n\n return res;\n }\n\n public async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(user_ext_id, ClassId.TOURNAMENT_REGISTER_REQUEST, {\n tournamentInstanceId\n });\n\n const res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n return res;\n }\n\n public async buyStoreItem(user_ext_id: string, itemId: number) {\n if (!itemId) {\n throw new Error('Missing store item id');\n }\n const message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n itemId\n });\n\n const res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n return res;\n }\n\n public async inboxGetMessages(user_ext_id: string, limit: number = 10, offset: number = 0): Promise<GetInboxMessagesResponse> {\n\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\n }\n\n public async storeGetItems(user_ext_id: string, force_language?: string): Promise<GetStoreItemsResponse> {\n const message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n return await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE, force_language);\n }\n\n public async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n return StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n }\n\n public async storeGetCategories(user_ext_id: string, force_language?: string): Promise<GetCategoriesStoreResponse> {\n const message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n return await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE, force_language);\n }\n\n public async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n return StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n }\n\n public async storeGetPurchasedItems(user_ext_id: string, limit: number = 20, offset: number = 0): Promise<GetStoreHistoryResponse> {\n\n const message = this.buildMessage<GetStoreHistoryRequest, GetStoreHistoryResponse>(user_ext_id, ClassId.ACH_SHOP_ITEM_HISTORY_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetStoreHistoryResponse>(message, ClassId.ACH_SHOP_ITEM_HISTORY_RESPONSE);\n }\n\n public async storeGetPurchasedItemsT(user_ext_id: string, limit?: number, offset?: number): Promise<TStoreItem[]> {\n return StoreItemPurchasedTransform((await this.storeGetPurchasedItems(user_ext_id, limit, offset)).items);\n }\n\n public async missionsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE, force_language);\n // we need to clone response to avoid changing original object,for cases when its called together with badgesGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Mission);\n }\n return responseClone;\n }\n\n public async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n }\n\n public async getUserGamificationInfo(user_ext_id: string): Promise<GetAchievementsUserInfoResponse> {\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementsUserInfoResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_USER_REQUEST);\n\n return await this.send<GetAchievementsUserInfoResponse>(message, ClassId.GET_ACHIEVEMENT_USER_RESPONSE);\n }\n\n public async getUserGamificationInfoT(user_ext_id: string): Promise<UserLevelExtraCountersT> {\n const response = await this.getUserGamificationInfo(user_ext_id);\n \n return {\n level_counter_1: response.level_counter_1,\n level_counter_2: response.level_counter_2,\n }\n }\n\n public async achGetCategories(user_ext_id: string, force_language?: string): Promise<GetAchCategoriesResponse> {\n\n const message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n return await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE, force_language);\n }\n\n public async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n return AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n } \n\n public async badgetsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE, force_language);\n // we need to clone response to avoid changing original object,for cases when its called together with missionsGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Badge);\n }\n return responseClone;\n } \n\n public async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n } \n\n\n public async tournamentsGetLobby(user_ext_id: string, force_language?: string): Promise<GetTournamentsResponse> {\n\n const message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);\n return await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE, force_language);\n\n }\n\n public async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n return TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n }\n\n public async tournamentsGetInfo(user_ext_id: string, tournamentInstanceId: number, force_language?: string): Promise<GetTournamentInfoResponse> {\n\n const message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, \n {\n tournamentInstanceId\n }\n );\n const response = await this.send<GetTournamentInfoResponse>(message, ClassId.GET_TOURNAMENT_INFO_RESPONSE, force_language);\n \n if (response.userPosition?.avatar_id) {\n response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.tournamentInfo.players?.length) {\n response.tournamentInfo.players.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n }\n\n return response;\n\n }\n\n public async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n return tournamentInfoItemTransform(response);\n } \n\n public async leaderboardGet(user_ext_id: string, period_type_id?: LeaderBoardPeriodType, prevPeriod: boolean = false, force_language?: string): Promise<LeaderBoardDetails> {\n\n const message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(user_ext_id, ClassId.GET_LEADERS_BOARD_REQUEST, \n {\n period_type_id,\n snapshot_offset: prevPeriod ? 1 : 0,\n include_users: true\n }\n );\n\n const response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE, force_language);\n\n const boardKey = Object.keys(response.map).find( k => period_type_id === undefined || k === period_type_id?.toString());\n\n if (boardKey === undefined) {\n return undefined;\n }\n\n if (response.map[boardKey]?.userPosition?.avatar_id) {\n response.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(response.map[boardKey].userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.map[boardKey]?.positions?.length) {\n response.map[boardKey].positions.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n \n }\n \n return response.map[boardKey];\n\n }\n\n public async leaderboardsGetT(user_ext_id: string, period_type_id: LeaderBoardPeriodType = LeaderBoardPeriodType.DAILY, prevPeriod: boolean = false): Promise<LeaderBoardDetailsT> { \n return getLeaderBoardTransform(await this.leaderboardGet(user_ext_id, period_type_id, prevPeriod));\n }\n\n public async levelsGet(user_ext_id: string, force_language?: string): Promise<GetLevelMapResponse> {\n const message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n return await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE, force_language);\n }\n\n public async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n }\n\n public async getCustomSections(user_ext_id: string): Promise<GetCustomSectionsResponse> {\n const message = this.buildMessage<GetCustomSectionsRequest, GetCustomSectionsResponse>(user_ext_id, ClassId.GET_CUSTOM_SECTIONS_REQUEST);\n return await this.send<GetCustomSectionsResponse>(message, ClassId.GET_CUSTOM_SECTIONS_RESPONSE);\n }\n\n public async getCustomSectionsT(user_ext_id: string): Promise<TUICustomSection[]> {\n return UICustomSectionTransform(Object.values((await this.getCustomSections(user_ext_id)).customSections));\n }\n\n public async getTranslationsT(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n return await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n }\n\n public async getInboxMessages(user_ext_id: string, limit: number = 20, offset: number = 0, starred_only: boolean): Promise<GetInboxMessagesResponse> {\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset,\n starred_only\n });\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n }\n\n public async getInboxMessagesT(user_ext_id: string, from: number = 0, to: number = 20, favoriteOnly: boolean = false): Promise<TInboxMessage[]> {\n const limit = (to - from) > 20 ? 20 : to - from;\n const offset = from;\n\n return InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly)).log);\n }\n\n public async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\n const getMessageBody = async (messageGuid: string): Promise<InboxMessageBody>=> {\n const inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n try {\n const url = `${inboxCdnUrl}${messageGuid}.json`;\n \n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n }\n });\n const data = await response.json();\n return data || {};\n } catch (error) {\n this.logger.error('Error fetching inbox message body:', error);\n return null;\n }\n };\n\n return await getMessageBody(messageGuid)\n }\n\n public async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n const message = await this.getInboxMessageBody(messageGuid);\n return InboxMessageBodyTransform(message);\n }\n\n public async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n engagement_uid: messageGuid\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n all_read: true\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markUnmarkInboxMessageAsFavorite(user_ext_id: string, messageGuid: string, mark: boolean): Promise<MarkInboxMessageStarredResponse> {\n const message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(user_ext_id, ClassId.MARK_INBOX_STARRED_REQUEST, {\n engagement_uid: messageGuid,\n is_starred: mark\n });\n\n return await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n }\n\n public async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n engagement_uid: messageGuid,\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n public async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n all_deleted: true\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n\n public getWSCalls(): WSAPI {\n return new WSAPI(this);\n }\n\n}\n\nexport { SmarticoAPI, MessageSender }","import { TSMap } from \"typescript-map\";\n\nclass CookieStore {\n private static cookieStore = new TSMap<string, string[]>()\n\n public static get(key: string): string[] | undefined {\n \n return CookieStore.cookieStore.get(key);\n }\n\n public static set(key: string, value: string[]) {\n const v = value.map(v => v.split(';')[0]);\n CookieStore.cookieStore.set(key, v);\n }\n}\n\nexport { CookieStore }","export enum QuizSportType {\n Soccer = 1,\n Tennis = 5,\n Basketball = 6,\n}\n\nexport const quizSupportedSports = [QuizSportType.Basketball, QuizSportType.Soccer, QuizSportType.Tennis];\n","export enum SAWGPMarketType {\n TwoTeamsWithScore = 1,\n RedCard = 2,\n OneXTwo = 3,\n OneXTwoHalftime = 4,\n HalftimeFulltime = 5,\n FirstGoal = 6,\n DoubleChance = 7,\n OverUnder2_5 = 8,\n OverUnder1_5Halftime = 9,\n OverUnder1_5__2ndHalf = 10,\n TotalCorners8_5 = 11,\n TotalCorners9_5 = 12,\n Corners1x2 = 13,\n One_Two = 14,\n Overtime = 15,\n OddEven = 16,\n OddEvenHomeAway = 17,\n FirstSet = 18,\n SecondSet = 19,\n ThirdSet = 20,\n FourthSet = 21,\n FifthSet = 22,\n PlayerOneWinsOneSet = 23,\n PlayerTwoWinsOneSet = 24,\n LastGoal = 25,\n\n CustomSport = 26,\n CustomNonSport = 27,\n}","export enum QuizAnswersValueType {\n HomeTeam = '1',\n AwayTeam = '2',\n Draw = 'x',\n HomeTeamHomeTeam = '1/1',\n HomeTeamDraw = '1/x',\n HomeTeamAwayTeam = '1/2',\n DrawHomeTeam = 'x/1',\n DrawDraw = 'x/x',\n DrawAwayTeam = 'x/2',\n AwayTeamHomeTeam = '2/1',\n AwayTeamDraw = '2/x',\n AwayTeamAwayTeam = '2/2',\n Yes = 'yes',\n No = 'no',\n Odd = 'odd',\n Even = 'even',\n HomeOdd = '1/odd',\n HomeEven = '1/even',\n AwayOdd = '2/odd',\n AwayEven = '2/even',\n}\n\nexport const quizAnswerHomeTeamReplacementText = '{quiz_home_team}';\nexport const quizAnswerAwayTeamReplacementText = '{quiz_away_team}';\nexport const quizDrawReplacementText = '{quiz_draw}';\nexport const quizYesReplacementText = '{yes}';\nexport const quizNoReplacementText = '{no}';\nexport const quizOddReplacementText = '{odd}';\nexport const quizEvenReplacementText = '{even}';\nexport const quizOrReplacementText = '{or}';\n\nexport const quizAnswersTrKeys = {\n [quizDrawReplacementText]: 'quizAnswer_draw',\n [quizYesReplacementText]: 'quizAnswer_yes',\n [quizNoReplacementText]: 'quizAnswer_no',\n [quizOddReplacementText]: 'quizAnswer_odd',\n [quizEvenReplacementText]: 'quizAnswer_even',\n [quizOrReplacementText]: 'quizAnswer_or',\n}\n","import { QuizAnswersValueType, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizDrawReplacementText, quizEvenReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizYesReplacementText } from \"./MarketsAnswers\";\nimport { SAWGPMarketType } from \"./MarketsType\";\n\nconst yesNoAnswers = [\n { text: quizYesReplacementText, value: QuizAnswersValueType.Yes },\n { text: quizNoReplacementText, value: QuizAnswersValueType.No }\n]\n\nconst homeAwayAnswers = [\n { text: quizAnswerHomeTeamReplacementText, value: QuizAnswersValueType.HomeTeam },\n { text: quizAnswerAwayTeamReplacementText, value: QuizAnswersValueType.AwayTeam }\n]\n\nconst homeAwayDrawAnswers = [\n ...homeAwayAnswers,\n { text: quizDrawReplacementText, value: QuizAnswersValueType.Draw },\n]\n\nexport const marketsInfo = [\n {\n type: SAWGPMarketType.OneXTwo,\n name: '1x2',\n question: { text: 'Who will win the match ?', trKey: 'quizQuestion_1x2'},\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.OneXTwoHalftime,\n name: '1x2 Halftime',\n question: { text: 'Who will lead the first half of the match ?', trKey: 'quizQuestion_x2half' },\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.HalftimeFulltime,\n name: 'Halftime / Fulltime',\n question: { text: 'Who will lead the first half and who will win the match ?', trKey: 'quizQuestion__HalftimeFulltime' },\n answers: [\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamHomeTeam },\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.HomeTeamDraw },\n { text: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamAwayTeam },\n { text: `${quizDrawReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.DrawHomeTeam },\n { text: `${quizDrawReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.DrawDraw },\n { text: `${quizDrawReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.DrawAwayTeam },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamHomeTeam },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.AwayTeamDraw },\n { text: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamAwayTeam }\n ]\n },\n {\n type: SAWGPMarketType.FirstGoal,\n name: 'First Goal',\n question: { text: 'Who will score the first goal ?', trKey: 'quizQuestion_firstGoal' },\n answers: homeAwayDrawAnswers\n },\n {\n type: SAWGPMarketType.LastGoal,\n name: 'Last Goal',\n question: { text: 'Who will score the last goal ?', trKey: 'quizQuestion_lastGoal' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.DoubleChance,\n name: 'Double Chance',\n question: { text: 'Who will win the match? Choose a combination:', trKey: 'quizQuestion_doubleChance' },\n answers: [\n { text: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerHomeTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamDraw },\n { text: `${quizAnswerHomeTeamReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.HomeTeamAwayTeam },\n { text: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`, value: QuizAnswersValueType.AwayTeamDraw }\n ]\n },\n {\n type: SAWGPMarketType.OverUnder2_5,\n name: 'Over/Under 2.5',\n question: { text: 'Will there be 3 or more goals in the match?', trKey: 'quizQuestion_overUnder2_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OverUnder1_5Halftime,\n name: 'Over/Under 1.5 Halftime',\n question: { text: 'Will there be 2 or more goals in the first half?', trKey: 'quizQuestion_overUnder1_5Halftime' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OverUnder1_5__2ndHalf,\n name: 'Over/Under 1.5 2nd Half',\n question: { text: 'Will there be 2 or more goals in the second half?', trKey: 'quizQuestion_overUnder1_5__2ndHalf' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.RedCard,\n name: 'Red Card',\n question: { text: 'Will there be a red card in the match?', trKey: 'quizQuestion_redCard' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.TotalCorners8_5,\n name: 'Total Corners 8.5',\n question: { text: 'Will there be 9 or more corners in the match?', trKey: 'quizQuestion_totalCorners8_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.TotalCorners9_5,\n name: 'Total Corners 9.5',\n question: { text: 'Will there be 10 or more corners in the match?', trKey: 'quizQuestion_totalCorners9_5' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.Corners1x2,\n name: 'Corners 1x2',\n question: { text: 'Which team will have more corners in the match?', trKey: 'quizQuestion_corners1x2' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.One_Two,\n name: '1-2',\n question: { text: 'Who will win the match ?', trKey: 'quizQuestion_1-2'},\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.Overtime,\n name: 'Overtime',\n question: { text: 'Will there be overtime in the match?', trKey: 'quizQuestion_overtime' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.OddEven,\n name: 'Odd/Even',\n question: { text: 'Is the sum of all points scored in the game going to be an odd number or even?', trKey: 'quizQuestion_oddEven' },\n answers: [\n { text: quizOddReplacementText, value: QuizAnswersValueType.Odd },\n { text: quizEvenReplacementText, value: QuizAnswersValueType.Even }\n ]\n },\n {\n type: SAWGPMarketType.OddEvenHomeAway,\n name: 'Odd/Even Home/Away',\n question: { text: 'Which team will win and what will be the sum of the points (Odd or Even)?', trKey: 'quizQuestion_oddEvenHomeAway' },\n answers: [\n { text: `${quizAnswerHomeTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.HomeOdd },\n { text: `${quizAnswerHomeTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.HomeEven },\n { text: `${quizAnswerAwayTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.AwayOdd },\n { text: `${quizAnswerAwayTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.AwayEven }\n ]\n },\n {\n type: SAWGPMarketType.FirstSet,\n name: 'First Set',\n question: { text: 'Who will win the first set ?', trKey: 'quizQuestion_firstSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.SecondSet,\n name: 'Second Set',\n question: { text: 'Who will win the second set ?', trKey: 'quizQuestion_secondSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.ThirdSet,\n name: 'Third Set',\n question: { text: 'Who will win the third set ?', trKey: 'quizQuestion_thirdSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.FourthSet,\n name: 'Fourth Set',\n question: { text: 'Who will win the fourth set ?', trKey: 'quizQuestion_fourthSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.FifthSet,\n name: 'Fifth Set',\n question: { text: 'Who will win the fifth set ?', trKey: 'quizQuestion_fifthSet' },\n answers: homeAwayAnswers\n },\n {\n type: SAWGPMarketType.PlayerOneWinsOneSet,\n name: 'Player One Wins One Set',\n question: { text: 'Will Player One win at least one set?', trKey: 'quizQuestion_playerOneWinsOneSet' },\n answers: yesNoAnswers\n },\n {\n type: SAWGPMarketType.PlayerTwoWinsOneSet,\n name: 'Player Two Wins One Set',\n question: { text: 'Will Player Two win at least one set?', trKey: 'quizQuestion_playerTwoWinsOneSet' },\n answers: yesNoAnswers\n },\n]","import { SAWGPMarketType } from \"./MarketsType\";\nimport { QuizSportType } from \"./SportTypes\";\n\nexport const QuizMarketPerSport = {\n [QuizSportType.Basketball]: [\n SAWGPMarketType.One_Two,\n SAWGPMarketType.Overtime,\n SAWGPMarketType.OneXTwo,\n SAWGPMarketType.OddEven,\n SAWGPMarketType.OddEvenHomeAway,\n SAWGPMarketType.DoubleChance,\n ],\n [QuizSportType.Soccer]: [\n SAWGPMarketType.OneXTwo,\n SAWGPMarketType.OneXTwoHalftime,\n SAWGPMarketType.HalftimeFulltime,\n SAWGPMarketType.FirstGoal,\n SAWGPMarketType.LastGoal,\n SAWGPMarketType.DoubleChance,\n SAWGPMarketType.OverUnder2_5,\n SAWGPMarketType.OverUnder1_5Halftime,\n SAWGPMarketType.OverUnder1_5__2ndHalf,\n SAWGPMarketType.RedCard,\n SAWGPMarketType.TotalCorners8_5,\n SAWGPMarketType.TotalCorners9_5,\n SAWGPMarketType.Corners1x2,\n ],\n [QuizSportType.Tennis]: [\n SAWGPMarketType.One_Two,\n SAWGPMarketType.FirstSet,\n SAWGPMarketType.SecondSet,\n SAWGPMarketType.ThirdSet,\n SAWGPMarketType.FourthSet,\n SAWGPMarketType.FifthSet,\n SAWGPMarketType.PlayerOneWinsOneSet,\n SAWGPMarketType.PlayerTwoWinsOneSet,\n SAWGPMarketType.OddEven\n ]\n}","enum JackpotContributionType {\n Fixed = 1,\n Percentage = 2\n}\n\n\nexport { JackpotContributionType }","\n\nenum JackpotType {\n Main = 1\n}\n\n\nexport { JackpotType }"],"names":["ClassId","IntUtils","uuid","a","b","Math","random","toString","isNotNull","val","isNotEmpty","length","replaceAll","value","regex","replacement","replace","RegExp","escapeRegExp","v","JsonOrText","str","includes","JSON","parse","e","isWithinPeriod","timestamp","period","now","Date","completedDate","getFullYear","getMonth","getDate","startOfWeek","setDate","getDay","setHours","endOfWeek","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Unknown","SAWUtils","canPlay","t","pointsBalance","undefined","saw_buyin_type_id","spin_count","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","PrizeDrop","Quiz","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","UNKNOWN","SAWTemplatesTransform","items","map","r","_r$saw_skin_ui_defini","_r$saw_skin_ui_defini2","x","id","saw_template_id","name","saw_template_ui_definition","description","thumbnail","saw_skin_ui_definition","skin_folder","saw_skin_key","over_limit_message","no_attempts_message","jackpot_symbol","saw_game_type","saw_game_type_id","saw_buyin_type","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","expose_game_stat_on_api","next_available_spin_ts","prizes","p","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","font_size_mobile","icon","position","aknowledge_message","acknowledge_dp","acknowledge_action_title","pool","wins_count","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","NodeCache","constructor","ttlChecker","setInterval","getTime","key","cache","hasOwnProperty","o","ttl","get","set","ttlSeconds","remove","flushAll","ECacheContext","OCache","init","cacheContext","oKey","stringify","deepClone","use","f","clear","clearContext","clearAll","ActivityTypeLimited","CoreUtils","currencySymbol","currency","toUpperCase","USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","MXN","SGD","HKD","NOK","KRW","TRY","INR","RUB","BRL","ZAR","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","BuyStoreItemErrorCode","StoreCategoryTransform","_r$publicMeta","_r$publicMeta2","publicMeta","order","StoreItemType","StoreItemTypeName","StoreItemTypeNamed","Bonus","Tangible","MiniGameSpin","ChangeLevel","StoreItemTransform","filter","_r$itemPublicMeta$pri","_r$categoryIds","itemPublicMeta","price","image_url","ribbon","label_tag","custom_label_tag","limit_message","priority","related_item_ids","related_items","hint_text","itemTypeId","can_buy","canBuy","category_ids","categoryIds","shopPool","StoreItemPurchasedTransform","purchasedToday","purchase_ts","purchasedThisWeek","purchasedThisMonth","purchase_points_amount","purchased_today","purchased_this_week","purchased_this_month","AchievementStatus","AchievementTaskType","AchievementType","UserAchievementTransform","ach_id","_r$ach_categories","completedToday","complete_date_ts","completedThisWeek","completedThisMonth","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","isLocked","is_requires_optin","requiresOptin","is_opted_in","isOptedIn","time_limit_ms","dt_start","start_date_ts","reward","progress","ach_type_id","Mission","cta_action","cta_text","custom_section_id","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","_t$task_public_meta","task_id","task_public_meta","points_reward","userProgress","execution_count_expected","executionCount","execution_count_actual","userExecutedCount","display_progress_as_count","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","ach_categories","ach_completed_id","requires_prize_claim","prize_claimed_date_ts","complete_date","completed_today","completed_this_week","completed_this_month","custom_section_type_id","ScheduledMissionType","AchCategoryTransform","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","image2_mobile","image_url2_mobile","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","registrationCount","is_user_registered","isUserRegistered","players_min_count","playersMinCount","players_max_count","playersMaxCount","registration_status","tournamentRegistrationStatus","registration_type","registrationType","registration_cost_points","buyInAmount","duration_ms","durationMs","is_active","TournamentUtils","isActive","is_can_register","isCanRegister","is_cancelled","isCancelled","is_finished","isFinished","is_in_progress","isInProgress","is_upcoming","isUpcoming","prizeStructure","getPrizeTransformed","tournamentPlayer","me","getPlayerTransformed","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","tournament","tournamentInstanceStatus","allowLateRegistration","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","prize","_extends","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","LeaderBoardPeriodType","GetLevelMapResponseTransform","levels","l","_l$level_public_meta","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","CACHE_DATA_SEC","JACKPOT_TEMPLATE_CACHE_SEC","JACKPOT_POT_CACHE_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","jackpotGetSignature","tracker","on","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","updateOnAddSpin","SAW_DO_SPIN_RESPONSE","SAW_AKNOWLEDGE_RESPONSE","updateOnPrizeWin","MISSION_OPTIN_RESPONSE","updateMissionsOnOptIn","TOURNAMENT_REGISTER_RESPONSE","updateTournamentsOnRegistration","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","JP_WIN_PUSH","jackpotClearCache","JP_OPTOUT_RESPONSE","JP_OPTIN_RESPONSE","getUserProfile","Object","assign","userPublicProps","Error","checkSegmentMatch","segment_id","coreCheckSegments","find","is_matching","checkSegmentListMatch","segment_ids","Array","isArray","getLevels","Levels","levelsGetT","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","Badges","badgetsGetItemsT","getUserLevelExtraCounters","LevelExtraCounters","getUserGamificationInfoT","getStoreItems","StoreItems","storeGetItemsT","buyStoreItem","item_id","err_code","errCode","err_message","errMsg","getStoreCategories","StoreCategories","storeGetCategoriesT","getStorePurchasedItems","limit","offset","StoreHistory","storeGetPurchasedItemsT","getAchCategories","AchCategories","achGetCategoriesT","getCustomSections","CustomSections","getCustomSectionsT","getMiniGames","Saw","sawGetTemplatesT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","prize_id","requestMissionOptIn","mission_id","missionOptIn","requestMissionClaimReward","missionClaimPrize","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getLeaderBoard","periodType","getPreviousPeriod","LeaderBoards","leaderboardsGetT","getInboxMessages","from","to","onlyFavorite","InboxMessages","getInboxMessagesT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","payload","SAW_OK","_template$prizes$find","template","prizeType","updatedTemplates","contextKey","Jackpots","Pots","jackpotGet","_this","signature","jp_template_id","related_game_id","jackpots","pots","_jackpots","_pots","jp","pot","jp_template_ids","potGet","_jp","jackpotOptIn","result","jackpotOptOut","pointsRewardTransform","reward_points","i","place","points","getLeaderBoardPlayerTransformed","user","user_alt_name","position_in_board","points_accumulated","getLeaderBoardTransform","board","board_id","board_public_meta","rules","period_type_id","rewards","users","positions","AchCustomSectionType","AchCustomLayoutTheme","AchMissionsTabsOptions","AchOverviewMissionsFilter","UICustomSectionTransform","section_type_id","menu_img","menu_name","custom_skin_images","generic_custom_css","mission_tabs_options","overview_missions_count","overview_missions_filter","theme","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","_options$tracker","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","info","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","getEnvId","send","message","expectCID","force_language","cid","timeStart","timeEnd","url","request","obj","buildMessage","user_ext_id","api_key","brand_key","ext_user_id","ts","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","_trUser$translations","trUserRQ","trUser","keys","forEach","k","coreIdentifyLabel","_this2","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","CHECK_SEGMENT_MATCH_REQUEST","results","CHECK_SEGMENT_MATCH_RESPONSE","segments","JP_GET_JACKPOTS_REQUEST","JP_GET_JACKPOTS_RESPONSE","JP_GET_LATEST_POTS_REQUEST","JP_GET_LATEST_POTS_RESPONSE","JP_OPTIN_REQUEST","JP_OPTOUT_REQUEST","sawGetTemplates","is_visitor_mode","SAW_GET_SPINS_REQUEST","SAW_GET_SPINS_RESPONSE","_t$saw_template_ui_de","_t$saw_template_ui_de2","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","MISSION_OPTIN_REQUEST","achievementId","res","ACHIEVEMENT_CLAIM_PRIZE_REQUEST","ACHIEVEMENT_CLAIM_PRIZE_RESPONSE","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","BUY_SHOP_ITEM_RESPONSE","inboxGetMessages","GET_INBOX_MESSAGES_REQUEST","GET_INBOX_MESSAGES_RESPONSE","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","storeGetPurchasedItems","ACH_SHOP_ITEM_HISTORY_REQUEST","ACH_SHOP_ITEM_HISTORY_RESPONSE","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","responseClone","achievements","getUserGamificationInfo","GET_ACHIEVEMENT_USER_REQUEST","GET_ACHIEVEMENT_USER_RESPONSE","level_counter_1","level_counter_2","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","_response$userPositio","_response$tournamentI","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","prevPeriod","_response$map$boardKe","_response$map$boardKe2","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","DAILY","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","GET_CUSTOM_SECTIONS_REQUEST","GET_CUSTOM_SECTIONS_RESPONSE","values","customSections","starred_only","favoriteOnly","log","_this3","getMessageBody","getLabelSetting","INBOX_PUBLIC_CDN","fetch","method","headers","json","MARK_INBOX_READ_REQUEST","MARK_INBOX_READ_RESPONSE","all_read","MARK_INBOX_STARRED_REQUEST","MARK_INBOX_STARRED_RESPONSE","MARK_INBOX_DELETED_REQUEST","MARK_INBOX_DELETED_RESPONSE","all_deleted","getWSCalls","CookieStore","cookieStore","split","TSMap","QuizSportType","quizSupportedSports","Basketball","Soccer","Tennis","SAWGPMarketType","QuizAnswersValueType","quizAnswerHomeTeamReplacementText","quizAnswerAwayTeamReplacementText","quizDrawReplacementText","quizYesReplacementText","quizNoReplacementText","quizOddReplacementText","quizEvenReplacementText","quizOrReplacementText","quizAnswersTrKeys","yesNoAnswers","Yes","No","homeAwayAnswers","HomeTeam","AwayTeam","homeAwayDrawAnswers","Draw","marketsInfo","OneXTwo","question","trKey","answers","OneXTwoHalftime","HalftimeFulltime","HomeTeamHomeTeam","HomeTeamDraw","HomeTeamAwayTeam","DrawHomeTeam","DrawDraw","DrawAwayTeam","AwayTeamHomeTeam","AwayTeamDraw","AwayTeamAwayTeam","FirstGoal","LastGoal","DoubleChance","OverUnder2_5","OverUnder1_5Halftime","OverUnder1_5__2ndHalf","RedCard","TotalCorners8_5","TotalCorners9_5","Corners1x2","One_Two","Overtime","OddEven","Odd","Even","OddEvenHomeAway","HomeOdd","HomeEven","AwayOdd","AwayEven","FirstSet","SecondSet","ThirdSet","FourthSet","FifthSet","PlayerOneWinsOneSet","PlayerTwoWinsOneSet","QuizMarketPerSport","JackpotContributionType","JackpotType"],"mappings":"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"}