@finatic/client 0.0.142 → 0.9.1
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.
- package/CHANGELOG.md +16 -0
- package/LICENSE +39 -0
- package/README.md +54 -425
- package/dist/index.d.ts +7329 -1579
- package/dist/index.js +8110 -6114
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8047 -6085
- package/dist/index.mjs.map +1 -1
- package/package.json +77 -33
- package/dist/types/core/client/ApiClient.d.ts +0 -270
- package/dist/types/core/client/FinaticConnect.d.ts +0 -332
- package/dist/types/core/portal/PortalUI.d.ts +0 -37
- package/dist/types/index.d.ts +0 -12
- package/dist/types/lib/logger/index.d.ts +0 -2
- package/dist/types/lib/logger/logger.d.ts +0 -4
- package/dist/types/lib/logger/logger.types.d.ts +0 -28
- package/dist/types/mocks/MockApiClient.d.ts +0 -171
- package/dist/types/mocks/MockDataProvider.d.ts +0 -139
- package/dist/types/mocks/MockFactory.d.ts +0 -53
- package/dist/types/mocks/utils.d.ts +0 -24
- package/dist/types/themes/portalPresets.d.ts +0 -9
- package/dist/types/types/api/auth.d.ts +0 -93
- package/dist/types/types/api/broker.d.ts +0 -421
- package/dist/types/types/api/core.d.ts +0 -46
- package/dist/types/types/api/errors.d.ts +0 -31
- package/dist/types/types/api/orders.d.ts +0 -39
- package/dist/types/types/api/portfolio.d.ts +0 -55
- package/dist/types/types/common/pagination.d.ts +0 -33
- package/dist/types/types/connect.d.ts +0 -58
- package/dist/types/types/index.d.ts +0 -13
- package/dist/types/types/portal.d.ts +0 -204
- package/dist/types/types/ui/theme.d.ts +0 -104
- package/dist/types/utils/brokerUtils.d.ts +0 -30
- package/dist/types/utils/errors.d.ts +0 -45
- package/dist/types/utils/events.d.ts +0 -12
- package/dist/types/utils/themeUtils.d.ts +0 -34
- package/src/core/client/ApiClient.ts +0 -2004
- package/src/core/client/FinaticConnect.ts +0 -1606
- package/src/core/portal/PortalUI.ts +0 -335
- package/src/index.d.ts +0 -23
- package/src/index.ts +0 -100
- package/src/lib/logger/index.ts +0 -3
- package/src/lib/logger/logger.ts +0 -332
- package/src/lib/logger/logger.types.ts +0 -34
- package/src/mocks/MockApiClient.ts +0 -1058
- package/src/mocks/MockDataProvider.ts +0 -986
- package/src/mocks/MockFactory.ts +0 -97
- package/src/mocks/utils.ts +0 -133
- package/src/themes/portalPresets.ts +0 -1307
- package/src/types/api/auth.ts +0 -112
- package/src/types/api/broker.ts +0 -461
- package/src/types/api/core.ts +0 -53
- package/src/types/api/errors.ts +0 -35
- package/src/types/api/orders.ts +0 -45
- package/src/types/api/portfolio.ts +0 -59
- package/src/types/common/pagination.ts +0 -164
- package/src/types/connect.ts +0 -56
- package/src/types/index.ts +0 -25
- package/src/types/portal.ts +0 -214
- package/src/types/ui/theme.ts +0 -105
- package/src/utils/brokerUtils.ts +0 -104
- package/src/utils/errors.ts +0 -104
- package/src/utils/events.ts +0 -66
- package/src/utils/themeUtils.ts +0 -165
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/lib/logger/logger.ts","../src/types/common/pagination.ts","../src/types/api/auth.ts","../src/utils/errors.ts","../src/core/client/ApiClient.ts","../src/utils/events.ts","../src/core/portal/PortalUI.ts","../src/mocks/MockDataProvider.ts","../src/mocks/MockApiClient.ts","../src/mocks/utils.ts","../src/mocks/MockFactory.ts","../src/themes/portalPresets.ts","../src/utils/themeUtils.ts","../src/utils/brokerUtils.ts","../src/core/client/FinaticConnect.ts"],"sourcesContent":["import { Logger, LoggerExtra, LoggerMetadata, LoggerOptions, LogLevel, LogVerbosity } from './logger.types';\n\nconst LOG_LEVEL_ORDER: Record<Exclude<LogLevel, 'silent'>, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\n\nconst LEVEL_TO_CONSOLE: Record<Exclude<LogLevel, 'silent'>, keyof Console> = {\n error: 'error',\n warn: 'warn',\n info: 'info',\n debug: 'debug',\n};\n\nconst DEFAULT_LOGGER_NAME = 'FinaticLogger';\n\nconst parseLogLevel = (value: unknown, fallback: LogLevel): LogLevel => {\n if (typeof value !== 'string') {\n return fallback;\n }\n\n const normalized = value.toLowerCase().trim() as LogLevel;\n if (normalized === 'silent' || normalized === 'error' || normalized === 'warn' || normalized === 'info' || normalized === 'debug') {\n return normalized;\n }\n\n return fallback;\n};\n\nconst parseVerbosity = (value: unknown, fallback: LogVerbosity): LogVerbosity => {\n if (typeof value !== 'string' && typeof value !== 'number') {\n return fallback;\n }\n\n const numeric = typeof value === 'number' ? value : Number.parseInt(value, 10);\n if (Number.isNaN(numeric)) {\n return fallback;\n }\n\n if (numeric <= 0) {\n return 0;\n }\n\n if (numeric >= 3) {\n return 3;\n }\n\n return numeric as LogVerbosity;\n};\n\nconst resolveEnv = (key: string): string | undefined => {\n try {\n if (typeof process !== 'undefined' && process.env && typeof process.env[key] === 'string') {\n return process.env[key];\n }\n } catch {\n // ignore\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const metaEnv = typeof import.meta !== 'undefined' ? (import.meta as any).env : undefined;\n if (metaEnv && typeof metaEnv[key] === 'string') {\n return metaEnv[key];\n }\n } catch {\n // ignore\n }\n\n try {\n if (typeof globalThis !== 'undefined') {\n const value = (globalThis as Record<string, unknown>)[key];\n if (typeof value === 'string') {\n return value;\n }\n }\n } catch {\n // ignore\n }\n\n return undefined;\n};\n\nconst resolveDefaultLogLevel = (explicitLevel?: LogLevel): LogLevel => {\n if (explicitLevel) {\n return explicitLevel;\n }\n\n const envLevel =\n resolveEnv('FINATIC_LOG_LEVEL') ||\n resolveEnv('VITE_FINATIC_LOG_LEVEL') ||\n resolveEnv('NEXT_PUBLIC_FINATIC_LOG_LEVEL') ||\n resolveEnv('NEXT_FINATIC_LOG_LEVEL') ||\n resolveEnv('REACT_APP_FINATIC_LOG_LEVEL') ||\n resolveEnv('NUXT_PUBLIC_FINATIC_LOG_LEVEL') ||\n resolveEnv('NX_FINATIC_LOG_LEVEL');\n\n if (envLevel) {\n return parseLogLevel(envLevel, 'silent');\n }\n\n return 'silent';\n};\n\nconst resolveVerbosity = (): LogVerbosity => {\n const envVerbosity =\n resolveEnv('FINATIC_LOG_VERBOSITY') ||\n resolveEnv('VITE_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NEXT_PUBLIC_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NEXT_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('REACT_APP_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NUXT_PUBLIC_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NX_FINATIC_LOG_VERBOSITY');\n\n if (envVerbosity) {\n return parseVerbosity(envVerbosity, 1);\n }\n\n return 1;\n};\n\nconst resolveBaseMetadata = (): LoggerMetadata => {\n const base: LoggerMetadata = {\n timestamp: new Date().toISOString(),\n };\n\n try {\n if (typeof globalThis !== 'undefined') {\n if (typeof (globalThis as Window).location !== 'undefined') {\n base.host = (globalThis as Window).location.hostname;\n }\n if (typeof (globalThis as Window).navigator !== 'undefined') {\n base.user_agent = (globalThis as Window).navigator.userAgent;\n }\n }\n } catch {\n // ignore\n }\n\n try {\n if (typeof process !== 'undefined') {\n base.pid = process.pid;\n }\n } catch {\n // ignore\n }\n\n return base;\n};\n\nconst normalizeError = (error: unknown): Record<string, unknown> | undefined => {\n if (!error) {\n return undefined;\n }\n\n if (error instanceof Error) {\n return {\n type: error.name,\n message: error.message,\n stacktrace: error.stack,\n };\n }\n\n if (typeof error === 'object') {\n return { ...(error as Record<string, unknown>) };\n }\n\n return {\n type: 'Error',\n message: String(error),\n };\n};\n\nconst shouldLog = (requestedLevel: Exclude<LogLevel, 'silent'>, currentLevel: LogLevel): boolean => {\n if (currentLevel === 'silent') {\n return false;\n }\n\n const currentOrder = LOG_LEVEL_ORDER[currentLevel];\n const requestedOrder = LOG_LEVEL_ORDER[requestedLevel];\n\n return requestedOrder <= currentOrder;\n};\n\nconst buildPayload = (\n name: string,\n level: Exclude<LogLevel, 'silent'>,\n message: string,\n defaultMetadata: LoggerMetadata | undefined,\n extra: LoggerExtra | undefined,\n verbosity: LogVerbosity,\n): Record<string, unknown> => {\n const payload: Record<string, unknown> = {\n timestamp: new Date().toISOString(),\n message,\n };\n\n if (verbosity >= 1 && extra) {\n if (extra.module) {\n payload.module = extra.module;\n }\n if (extra.function) {\n payload.function = extra.function;\n }\n }\n\n if (verbosity >= 2) {\n if (extra?.duration_ms !== undefined) {\n payload.duration_ms = extra.duration_ms;\n }\n if (extra?.event) {\n payload.event = extra.event;\n }\n if (extra?.error) {\n payload.error = normalizeError(extra.error);\n }\n }\n\n if (verbosity >= 3) {\n payload.level = level.toUpperCase();\n payload.name = name;\n const baseMetadata = resolveBaseMetadata();\n const mergedMetadata: LoggerMetadata = {\n ...baseMetadata,\n ...(defaultMetadata || {}),\n ...(extra?.metadata || {}),\n };\n if (Object.keys(mergedMetadata).length > 0) {\n payload.metadata = mergedMetadata;\n }\n }\n\n const restKeys = ['module', 'function', 'event', 'duration_ms', 'error', 'metadata'];\n if (extra) {\n Object.entries(extra).forEach(([key, value]) => {\n if (!restKeys.includes(key) && value !== undefined) {\n payload[key] = value;\n }\n });\n }\n\n return payload;\n};\n\nconst consoleWrite = (\n consoleLevel: keyof Console,\n name: string,\n level: Exclude<LogLevel, 'silent'>,\n message: string,\n payload: Record<string, unknown>,\n): void => {\n if (typeof console === 'undefined' || typeof console[consoleLevel] !== 'function') {\n return;\n }\n\n const prefix = `${level.toUpperCase()}: ${name} || ${message}`;\n console[consoleLevel](prefix, payload);\n};\n\nexport const setupLogger = (nameOrOptions: string | LoggerOptions, level?: LogLevel, defaultMetadata?: LoggerMetadata): Logger => {\n const options: LoggerOptions =\n typeof nameOrOptions === 'string'\n ? {\n name: nameOrOptions,\n level,\n defaultMetadata,\n }\n : nameOrOptions;\n\n const loggerName = options.name || DEFAULT_LOGGER_NAME;\n let currentLevel: LogLevel = resolveDefaultLogLevel(options.level);\n const loggerDefaultMetadata = options.defaultMetadata;\n const verbosity = resolveVerbosity();\n\n const log = (requestedLevel: Exclude<LogLevel, 'silent'>, message: string, extra?: LoggerExtra) => {\n if (!shouldLog(requestedLevel, currentLevel)) {\n return;\n }\n\n const payload = buildPayload(loggerName, requestedLevel, message, loggerDefaultMetadata, extra, verbosity);\n consoleWrite(LEVEL_TO_CONSOLE[requestedLevel], loggerName, requestedLevel, message, payload);\n };\n\n return {\n getLevel: () => currentLevel,\n setLevel: (nextLevel: LogLevel) => {\n currentLevel = nextLevel;\n },\n debug: (message: string, extra?: LoggerExtra) => log('debug', message, extra),\n info: (message: string, extra?: LoggerExtra) => log('info', message, extra),\n warn: (message: string, extra?: LoggerExtra) => log('warn', message, extra),\n error: (message: string, extra?: LoggerExtra) => log('error', message, extra),\n exception: (message: string, error: unknown, extra?: LoggerExtra) => {\n log('error', message, {\n ...extra,\n error,\n event: extra?.event || 'exception',\n });\n },\n };\n};\n\nexport const buildLoggerExtra = (metadata: LoggerMetadata): LoggerExtra => ({\n metadata,\n});\n\nexport const logStartEnd =\n (logger: Logger) =>\n <Args extends unknown[], ReturnType>(fn: (...args: Args) => ReturnType | Promise<ReturnType>) =>\n async (...args: Args): Promise<ReturnType> => {\n const start = Date.now();\n const functionName = fn.name || 'anonymous';\n logger.debug('START', { module: 'logStartEnd', function: functionName, event: 'start' });\n\n try {\n const result = await fn(...args);\n const duration = Date.now() - start;\n logger.info('END', { module: 'logStartEnd', function: functionName, event: 'end', duration_ms: duration });\n return result;\n } catch (error) {\n const duration = Date.now() - start;\n logger.exception('EXCEPTION', error, {\n module: 'logStartEnd',\n function: functionName,\n duration_ms: duration,\n });\n throw error;\n }\n };\n\n","/**\n * Pagination-related types and classes\n */\n\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst paginationLogger = setupLogger('FinaticClientSDK.Pagination', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildPaginationExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'PaginatedResult',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\nexport interface ApiPaginationInfo {\n has_more: boolean;\n next_offset: number;\n current_offset: number;\n limit: number;\n}\n\nexport interface PaginationMetadata {\n hasMore: boolean;\n nextOffset: number;\n currentOffset: number;\n limit: number;\n currentPage: number;\n hasNext: boolean;\n hasPrevious: boolean;\n}\n\nexport class PaginatedResult<T> {\n public readonly data: T;\n public readonly metadata: PaginationMetadata;\n private navigationCallback?: (offset: number, limit: number) => Promise<PaginatedResult<T>>;\n\n constructor(\n data: T,\n paginationInfo: ApiPaginationInfo,\n navigationCallback?: (offset: number, limit: number) => Promise<PaginatedResult<T>>\n ) {\n this.data = data;\n this.navigationCallback = navigationCallback;\n this.metadata = {\n hasMore: paginationInfo.has_more,\n nextOffset: paginationInfo.next_offset,\n currentOffset: paginationInfo.current_offset,\n limit: paginationInfo.limit,\n currentPage: Math.floor(paginationInfo.current_offset / paginationInfo.limit) + 1,\n hasNext: paginationInfo.has_more,\n hasPrevious: paginationInfo.current_offset > 0,\n };\n }\n\n get hasNext(): boolean {\n return this.metadata.hasNext;\n }\n\n get hasPrevious(): boolean {\n return this.metadata.hasPrevious;\n }\n\n get currentPage(): number {\n return this.metadata.currentPage;\n }\n\n async nextPage(): Promise<PaginatedResult<T> | null> {\n if (!this.hasNext || !this.navigationCallback) {\n return null;\n }\n\n try {\n return await this.navigationCallback(this.metadata.nextOffset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching next page', error, buildPaginationExtra('nextPage', {\n next_offset: this.metadata.nextOffset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async previousPage(): Promise<PaginatedResult<T> | null> {\n if (!this.hasPrevious || !this.navigationCallback) {\n return null;\n }\n\n const previousOffset = Math.max(0, this.metadata.currentOffset - this.metadata.limit);\n try {\n return await this.navigationCallback(previousOffset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching previous page', error, buildPaginationExtra('previousPage', {\n previous_offset: previousOffset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async goToPage(pageNumber: number): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback || pageNumber < 1) {\n return null;\n }\n\n const offset = (pageNumber - 1) * this.metadata.limit;\n try {\n return await this.navigationCallback(offset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching page', error, buildPaginationExtra('goToPage', {\n page_number: pageNumber,\n offset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async firstPage(): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback) {\n return null;\n }\n\n try {\n return await this.navigationCallback(0, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching first page', error, buildPaginationExtra('firstPage', {\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async lastPage(): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback) {\n return null;\n }\n\n const findLast = async (page: PaginatedResult<T>): Promise<PaginatedResult<T>> => {\n if (!page.hasNext) {\n return page;\n }\n const nextPage = await page.nextPage();\n if (!nextPage) {\n return page;\n }\n return findLast(nextPage);\n };\n\n try {\n return await findLast(this);\n } catch (error) {\n paginationLogger.exception('Error fetching last page', error, buildPaginationExtra('lastPage', {\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n getPaginationInfo(): string {\n return `Page ${this.currentPage} (${this.metadata.currentOffset + 1}-${this.metadata.currentOffset + this.metadata.limit})`;\n }\n} ","/**\n * Authentication-related types\n */\n\nexport interface SessionInitResponse {\n success: boolean;\n message: string;\n data: {\n one_time_token: string;\n expires_at: string;\n };\n}\n\n// SessionResponseData moved below to match backend response format\n\n// SessionStartResponse removed - using SessionResponse instead\n\nexport interface OtpRequestResponse {\n success: boolean;\n message: string;\n data: boolean;\n}\n\nexport interface OtpVerifyResponse {\n success: boolean;\n message: string;\n data: {\n access_token: string;\n refresh_token: string;\n user_id: string;\n expires_in: number;\n scope: string;\n token_type: 'Bearer';\n };\n}\n\nexport interface UserToken {\n user_id: string;\n // Removed token fields - we no longer use Supabase tokens in the SDK\n}\n\nexport interface SessionValidationResponse {\n valid: boolean;\n company_id: string;\n status: string;\n is_sandbox: boolean; // Whether this session is in sandbox mode\n environment: string; // Environment context (production or sandbox)\n}\n\nexport interface SessionAuthenticateResponse {\n success: boolean;\n message: string;\n data: {\n access_token: string;\n refresh_token: string;\n };\n}\n\nexport interface RefreshTokenRequest {\n refresh_token: string;\n}\n\nexport interface RefreshTokenResponse {\n success: boolean;\n response_data: {\n access_token: string;\n refresh_token: string;\n expires_at: string;\n company_id: string;\n company_name: string;\n email_verified: boolean;\n };\n message: string;\n}\n\nexport interface TokenInfo {\n accessToken: string;\n refreshToken: string;\n expiresAt: string;\n userId?: string;\n}\n\nexport interface SessionResponseData {\n session_id: string;\n company_id: string;\n status: string;\n expires_at: string;\n user_id?: string | null;\n auto_login?: boolean;\n}\n\nexport interface SessionResponse {\n success: boolean;\n message: string;\n data: SessionResponseData;\n}\n\nexport enum SessionState {\n PENDING = 'PENDING',\n AUTHENTICATING = 'AUTHENTICATING',\n ACTIVE = 'ACTIVE',\n COMPLETED = 'COMPLETED',\n EXPIRED = 'EXPIRED',\n}\n\nexport type SessionStatus = SessionState;\n\nexport interface DeviceInfo {\n ip_address: string;\n user_agent: string;\n fingerprint: string;\n} ","export class BaseError extends Error {\n constructor(\n message: string,\n public readonly code: string = 'UNKNOWN_ERROR'\n ) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n\nexport class ApiError extends BaseError {\n constructor(\n public readonly status: number,\n message: string,\n public readonly details?: Record<string, any>\n ) {\n super(message, `API_ERROR_${status}`);\n this.name = 'ApiError';\n }\n}\n\nexport class SessionError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(400, message, details);\n this.name = 'SessionError';\n }\n}\n\nexport class AuthenticationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(401, message, details);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'AuthorizationError';\n }\n}\n\nexport class RateLimitError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(429, message, details);\n this.name = 'RateLimitError';\n }\n}\n\nexport class TokenError extends BaseError {\n constructor(message: string) {\n super(message, 'TOKEN_ERROR');\n this.name = 'TokenError';\n }\n}\n\nexport class ValidationError extends BaseError {\n constructor(message: string) {\n super(message, 'VALIDATION_ERROR');\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends BaseError {\n constructor(message: string) {\n super(message, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}\n\nexport class SecurityError extends BaseError {\n constructor(message: string) {\n super(message, 'SECURITY_ERROR');\n this.name = 'SecurityError';\n }\n}\n\nexport class CompanyAccessError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'CompanyAccessError';\n }\n}\n\nexport class OrderError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(500, message, details);\n this.name = 'OrderError';\n }\n}\n\nexport class OrderValidationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(400, message, details);\n this.name = 'OrderValidationError';\n }\n}\n\nexport class TradingNotEnabledError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'TradingNotEnabledError';\n }\n}\n","import { Order } from '../../types/api/orders';\nimport {\n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerDataOptions,\n DisconnectCompanyResponse,\n} from '../../types/api/broker';\nimport { BrokerOrderParams, BrokerExtras } from '../../types/api/broker';\nimport { CryptoOrderOptions, OptionsOrderOptions, OrderResponse } from '../../types/api/orders';\nimport { BrokerConnection } from '../../types/api/broker';\nimport {\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n OrderFill,\n OrderEvent,\n OrderGroup,\n PositionLot,\n PositionLotFill,\n OrderFillsFilter,\n OrderEventsFilter,\n OrderGroupsFilter,\n PositionLotsFilter,\n PositionLotFillsFilter,\n} from '../../types/api/broker';\nimport { TradingContext } from '../../types/api/orders';\nimport { ApiPaginationInfo, PaginatedResult } from '../../types/common/pagination';\nimport { ApiResponse } from '../../types/api/core';\nimport { PortalUrlResponse } from '../../types/api/core';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\nimport {\n DeviceInfo,\n SessionState,\n TokenInfo,\n SessionResponse,\n SessionResponseData,\n OtpRequestResponse,\n OtpVerifyResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n RefreshTokenRequest,\n RefreshTokenResponse,\n} from '../../types/api/auth';\nimport {\n ApiError,\n SessionError,\n AuthenticationError,\n AuthorizationError,\n RateLimitError,\n CompanyAccessError,\n OrderError,\n OrderValidationError,\n TradingNotEnabledError,\n} from '../../utils/errors';\n// Supabase import removed - SDK no longer depends on Supabase\n\nexport class ApiClient {\n private readonly baseUrl: string;\n protected readonly deviceInfo?: DeviceInfo;\n protected currentSessionState: SessionState | null = null;\n protected currentSessionId: string | null = null;\n private tradingContext: TradingContext = {};\n\n // Session management (no Supabase needed)\n\n // Session and company context\n private companyId: string | null = null;\n private csrfToken: string | null = null;\n private readonly logger = setupLogger('FinaticClientSDK.ApiClient', undefined, {\n codebase: 'FinaticClientSDK',\n });\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'ApiClient',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(baseUrl: string, deviceInfo?: DeviceInfo) {\n this.baseUrl = baseUrl;\n this.deviceInfo = deviceInfo;\n // Ensure baseUrl doesn't end with a slash\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n // Append /api/v1 if not already present\n if (!this.baseUrl.includes('/api/v1')) {\n this.baseUrl = `${this.baseUrl}/api/v1`;\n }\n\n // No Supabase initialization needed - SDK is clean\n }\n\n // Supabase initialization removed - SDK no longer depends on Supabase\n\n /**\n * Set session context (session ID, company ID, CSRF token)\n */\n setSessionContext(sessionId: string, companyId: string, csrfToken?: string): void {\n this.currentSessionId = sessionId;\n this.companyId = companyId;\n this.csrfToken = csrfToken || null;\n }\n\n /**\n * Get the current session ID\n */\n getCurrentSessionId(): string | null {\n return this.currentSessionId;\n }\n\n /**\n * Get the current company ID\n */\n getCurrentCompanyId(): string | null {\n return this.companyId;\n }\n\n /**\n * Get the current CSRF token\n */\n getCurrentCsrfToken(): string | null {\n return this.csrfToken;\n }\n\n /**\n * Get a valid access token (session-based auth - no tokens needed)\n */\n async getValidAccessToken(): Promise<string> {\n // Session-based auth - return empty token as we use session headers\n return '';\n }\n\n // Token expiration check removed - session-based auth doesn't use expiring tokens\n\n // Supabase refresh method removed - SDK no longer uses Supabase tokens\n\n /**\n * Perform the actual Supabase session refresh\n */\n // Supabase refresh method removed - SDK no longer uses Supabase tokens\n\n /**\n * Clear session tokens (useful for logout)\n */\n clearTokens(): void {\n // Session-based auth - no tokens to clear\n }\n\n /**\n * Get current session info (for debugging/testing) - session-based auth\n */\n getTokenInfo(): { accessToken: string; refreshToken: string; expiresAt: number } | null {\n // Session-based auth - no tokens to return\n return null;\n }\n\n /**\n * Make a request to the API.\n */\n protected async request<T>(\n path: string,\n options: {\n method: string;\n headers?: Record<string, string>;\n body?: any;\n params?: Record<string, string>;\n }\n ): Promise<T> {\n // Ensure path starts with a slash\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n const url = new URL(`${this.baseUrl}${normalizedPath}`);\n\n if (options.params) {\n Object.entries(options.params).forEach(([key, value]) => {\n url.searchParams.append(key, value);\n });\n }\n\n // Get Supabase JWT token\n const accessToken = await this.getValidAccessToken();\n\n // Build comprehensive headers object with all available session data\n const comprehensiveHeaders: Record<string, string> = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n };\n\n // Add device info if available\n if (this.deviceInfo) {\n comprehensiveHeaders['X-Device-Info'] = JSON.stringify({\n ip_address: this.deviceInfo.ip_address || '',\n user_agent: this.deviceInfo.user_agent || '',\n fingerprint: this.deviceInfo.fingerprint || '',\n });\n }\n\n // Add session headers if available (filter out empty values)\n if (this.currentSessionId && this.currentSessionId.trim() !== '') {\n comprehensiveHeaders['X-Session-ID'] = this.currentSessionId;\n comprehensiveHeaders['Session-ID'] = this.currentSessionId;\n }\n\n if (this.companyId && this.companyId.trim() !== '') {\n comprehensiveHeaders['X-Company-ID'] = this.companyId;\n }\n\n if (this.csrfToken && this.csrfToken.trim() !== '') {\n comprehensiveHeaders['X-CSRF-Token'] = this.csrfToken;\n }\n\n // Add any additional headers from options (these will override defaults)\n if (options.headers) {\n Object.entries(options.headers).forEach(([key, value]) => {\n if (value !== undefined && value !== null && value.trim() !== '') {\n comprehensiveHeaders[key] = value;\n }\n });\n }\n\n // Safari-specific fix: Ensure all headers are explicitly set and not empty\n // Safari can be strict about header formatting and empty values\n const safariSafeHeaders: Record<string, string> = {};\n Object.entries(comprehensiveHeaders).forEach(([key, value]) => {\n if (value && value.trim() !== '') {\n // Ensure header names are properly formatted for Safari\n const normalizedKey = key.trim();\n const normalizedValue = value.trim();\n safariSafeHeaders[normalizedKey] = normalizedValue;\n }\n });\n\n this.logger.debug('Dispatching API request', this.buildLoggerExtra('request', {\n url: url.toString(),\n method: options.method,\n has_body: Boolean(options.body),\n }));\n\n const response = await fetch(url.toString(), {\n method: options.method,\n headers: safariSafeHeaders,\n body: options.body ? JSON.stringify(options.body) : undefined,\n });\n\n this.logger.debug('Received API response', this.buildLoggerExtra('request', {\n url: url.toString(),\n status: response.status,\n }));\n\n if (!response.ok) {\n const error = await response.json();\n const apiError = this.handleError(response.status, error);\n this.logger.exception('API request failed', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: response.status,\n }));\n throw apiError;\n }\n\n const data = await response.json();\n\n // Check if the response has a success field and it's false\n if (data && typeof data === 'object' && 'success' in data && data.success === false) {\n // For order endpoints, provide more context\n const isOrderEndpoint = path.includes('/brokers/orders');\n if (isOrderEndpoint) {\n // Add context that this is an order-related error\n data._isOrderError = true;\n }\n const apiError = this.handleError(data.status_code || 500, data);\n this.logger.exception('API response indicated failure', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code || 500,\n }));\n throw apiError;\n }\n\n // Check if the response has a status_code field indicating an error (4xx or 5xx)\n if (data && typeof data === 'object' && 'status_code' in data && data.status_code >= 400) {\n const apiError = this.handleError(data.status_code, data);\n this.logger.exception('API status code error', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code,\n }));\n throw apiError;\n }\n\n // Check if the response has errors field with content\n if (\n data &&\n typeof data === 'object' &&\n 'errors' in data &&\n data.errors &&\n Array.isArray(data.errors) &&\n data.errors.length > 0\n ) {\n const apiError = this.handleError(data.status_code || 500, data);\n this.logger.exception('API response contained errors', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code || 500,\n }));\n throw apiError;\n }\n\n return data;\n }\n\n /**\n * Handle API errors. This method can be overridden by language-specific implementations.\n */\n protected handleError(status: number, error: any): ApiError {\n // Extract message from the error object with multiple fallback options\n let message = 'API request failed';\n\n if (error && typeof error === 'object') {\n // Try different possible message fields\n message =\n error.message ||\n error.detail?.message ||\n error.error?.message ||\n error.errors?.[0]?.message ||\n (typeof error.errors === 'string' ? error.errors : null) ||\n 'API request failed';\n }\n\n // Check if this is an order-related error (either from order endpoints or order validation)\n const isOrderError =\n error._isOrderError ||\n message.includes('ORDER_FAILED') ||\n message.includes('AUTH_ERROR') ||\n message.includes('not found or not available for trading') ||\n message.includes('Symbol') ||\n (error.errors &&\n Array.isArray(error.errors) &&\n error.errors.some(\n (e: any) =>\n e.category === 'INVALID_ORDER' ||\n e.message?.includes('Symbol') ||\n e.message?.includes('not available for trading')\n ));\n\n if (isOrderError) {\n // Check if this is a validation error (400 status with specific validation messages)\n const isValidationError =\n status === 400 &&\n (message.includes('not found or not available for trading') ||\n message.includes('Symbol') ||\n (error.errors &&\n Array.isArray(error.errors) &&\n error.errors.some(\n (e: any) =>\n e.category === 'INVALID_ORDER' ||\n e.message?.includes('Symbol') ||\n e.message?.includes('not available for trading')\n )));\n\n if (isValidationError) {\n return new OrderValidationError(message, error);\n }\n\n // For order placement errors, provide more specific error messages\n if (message.includes('ORDER_FAILED') || message.includes('AUTH_ERROR')) {\n // Extract the specific error from the nested structure\n const orderErrorMatch = message.match(/\\[([^\\]]+)\\]/g);\n if (orderErrorMatch && orderErrorMatch.length > 0) {\n // Take the last error in the chain (most specific)\n const specificError = orderErrorMatch[orderErrorMatch.length - 1].replace(/[[\\]]/g, '');\n message = `Order failed: ${specificError}`;\n }\n }\n\n // Use OrderError for order-related failures\n return new OrderError(message, error);\n }\n\n switch (status) {\n case 400:\n return new SessionError(message, error);\n case 401:\n return new AuthenticationError(\n message || 'Unauthorized: Invalid or missing session token',\n error\n );\n case 403:\n if (error.detail?.code === 'NO_COMPANY_ACCESS') {\n return new CompanyAccessError(\n error.detail.message || 'No broker connections found for this company',\n error.detail\n );\n }\n if (error.detail?.code === 'TRADING_NOT_ENABLED') {\n return new TradingNotEnabledError(\n error.detail.message || 'Trading is not enabled for your company',\n error.detail\n );\n }\n return new AuthorizationError(\n message || 'Forbidden: No access to the requested data',\n error\n );\n case 404:\n return new ApiError(\n status,\n message || 'Not found: The requested data does not exist',\n error\n );\n case 429:\n return new RateLimitError(message || 'Rate limit exceeded', error);\n case 500:\n return new ApiError(status, message || 'Internal server error', error);\n default:\n return new ApiError(status, message || 'API request failed', error);\n }\n }\n\n // Session Management\n async startSession(token: string, userId?: string): Promise<SessionResponse> {\n const response = await this.request<SessionResponse>('/session/start', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'One-Time-Token': token,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n user_id: userId,\n },\n });\n\n // Store session ID and set state to ACTIVE\n this.currentSessionId = response.data.session_id;\n this.currentSessionState = SessionState.ACTIVE;\n\n return response;\n }\n\n // OTP Flow\n async requestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n return this.request<OtpRequestResponse>('/auth/otp/request', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n email,\n },\n });\n }\n\n async verifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n const response = await this.request<OtpVerifyResponse>('/auth/otp/verify', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n otp,\n },\n });\n\n // OTP verification successful - tokens are handled by Supabase client\n if (response.success && response.data) {\n // Note: Supabase JWT will be handled by the Supabase client\n // The backend now creates/retrieves Supabase users and returns session info\n }\n\n return response;\n }\n\n // Direct Authentication\n async authenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n // Ensure session is active before authenticating\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to authenticate');\n }\n\n const response = await this.request<SessionAuthenticateResponse>('/session/authenticate', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': sessionId,\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n session_id: sessionId,\n user_id: userId,\n },\n });\n\n // Store tokens after successful direct authentication\n if (response.success && response.data) {\n // Session-based auth - no token storage needed\n }\n\n return response;\n }\n\n // Portal Management\n /**\n * Get the portal URL for an active session\n * @param sessionId The session identifier\n * @returns Portal URL response\n * @throws SessionError if session is not in ACTIVE state\n */\n public async getPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to get portal URL');\n }\n\n return this.request<PortalUrlResponse>('/session/portal', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': sessionId,\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n });\n }\n\n async completePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n return this.request<PortalUrlResponse>(`/portal/${sessionId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n // Portfolio Management\n\n async getOrders(): Promise<{ data: Order[] }> {\n const accessToken = await this.getValidAccessToken();\n return this.request<{ data: Order[] }>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n // Enhanced Trading Methods with Session Management\n async placeBrokerOrder(\n params: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n assetType: 'equity' | 'equity_option' | 'crypto' | 'forex' | 'future' | 'future_option';\n },\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n // Get broker and account from context or params\n const broker = params.broker || this.tradingContext.broker;\n const accountNumber = params.accountNumber || this.tradingContext.accountNumber;\n\n if (!broker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n if (!accountNumber) {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n }\n\n // Merge context with provided parameters\n const fullParams: BrokerOrderParams = {\n broker:\n ((params.broker || this.tradingContext.broker) as\n | 'robinhood'\n | 'tasty_trade'\n | 'ninja_trader') ||\n (() => {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n })(),\n accountNumber:\n params.accountNumber ||\n this.tradingContext.accountNumber ||\n (() => {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n })(),\n symbol: params.symbol,\n orderQty: params.orderQty,\n action: params.action,\n orderType: params.orderType,\n assetType: params.assetType,\n timeInForce: params.timeInForce || 'day',\n price: params.price,\n stopPrice: params.stopPrice,\n order_id: params.order_id,\n };\n\n // Build request body with camelCase parameter names\n const requestBody = this.buildOrderRequestBody(fullParams, extras);\n\n // Add query parameters if connection_id is provided\n const queryParams: Record<string, string> = {};\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n return this.request<OrderResponse>('/brokers/orders', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body: requestBody,\n params: queryParams,\n });\n }\n\n async cancelBrokerOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n const selectedBroker = broker || this.tradingContext.broker;\n if (!selectedBroker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n const accountNumber = this.tradingContext.accountNumber;\n\n // Build query parameters as required by API documentation\n const queryParams: Record<string, string> = {};\n\n // Add optional parameters if available\n if (accountNumber) {\n queryParams.account_number = accountNumber.toString();\n }\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n // Build optional request body if extras are provided\n let body: any = undefined;\n if (Object.keys(extras).length > 0) {\n body = {\n broker: selectedBroker,\n order: {\n order_id: orderId,\n account_number: accountNumber,\n ...extras,\n },\n };\n }\n\n return this.request<OrderResponse>(`/brokers/orders/${orderId}`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body,\n params: queryParams,\n });\n }\n\n async modifyBrokerOrder(\n orderId: string,\n params: Partial<BrokerOrderParams>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n const selectedBroker = broker || this.tradingContext.broker;\n if (!selectedBroker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n // Build request body with camelCase parameter names and include broker\n const requestBody = this.buildModifyRequestBody(params, extras, selectedBroker);\n\n // Add query parameters if connection_id is provided\n const queryParams: Record<string, string> = {};\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n return this.request<OrderResponse>(`/brokers/orders/${orderId}`, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body: requestBody,\n params: queryParams,\n });\n }\n\n // Context management methods\n setBroker(broker: 'robinhood' | 'tasty_trade' | 'ninja_trader'): void {\n this.tradingContext.broker = broker;\n // Clear account when broker changes\n this.tradingContext.accountNumber = undefined;\n this.tradingContext.accountId = undefined;\n }\n\n setAccount(accountNumber: string, accountId?: string): void {\n this.tradingContext.accountNumber = accountNumber;\n this.tradingContext.accountId = accountId;\n }\n\n\n // Stock convenience methods\n async placeStockMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity',\n timeInForce: 'day',\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n async placeStockLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity',\n price,\n timeInForce,\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n async placeStockStopOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'day',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Stop',\n assetType: 'equity',\n stopPrice,\n timeInForce,\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n // Crypto convenience methods\n async placeCryptoMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'crypto',\n timeInForce: 'day',\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n async placeCryptoLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'crypto',\n price,\n timeInForce,\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n // Options convenience methods\n async placeOptionsMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: OptionsOrderOptions,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity_option',\n timeInForce: 'day',\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n async placeOptionsLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n options: OptionsOrderOptions,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity_option',\n price,\n timeInForce,\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n // Futures convenience methods\n async placeFuturesMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'future',\n timeInForce: 'day',\n broker,\n accountNumber,\n },\n extras\n );\n }\n\n async placeFuturesLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'future',\n price,\n timeInForce,\n broker,\n accountNumber,\n },\n extras\n );\n }\n\n private buildOrderRequestBody(params: BrokerOrderParams, extras: BrokerExtras = {}) {\n const baseOrder: any = {\n order_id: params.order_id,\n orderType: params.orderType,\n assetType: params.assetType,\n action: params.action,\n timeInForce: params.timeInForce,\n accountNumber: params.accountNumber,\n symbol: params.symbol,\n orderQty: params.orderQty,\n };\n\n if (params.price !== undefined) baseOrder.price = params.price;\n if (params.stopPrice !== undefined) baseOrder.stopPrice = params.stopPrice;\n\n // Apply broker-specific defaults – map camelCase extras property keys to snake_case before merging\n const brokerExtras = this.applyBrokerDefaults(params.broker, extras);\n\n return {\n broker: params.broker,\n order: {\n ...baseOrder,\n ...brokerExtras,\n },\n };\n }\n\n private buildModifyRequestBody(params: Partial<BrokerOrderParams>, extras: any, broker: string) {\n const order: any = {};\n\n if (params.order_id !== undefined) order.order_id = params.order_id;\n if (params.orderType !== undefined) order.orderType = params.orderType;\n if (params.assetType !== undefined) order.assetType = params.assetType;\n if (params.action !== undefined) order.action = params.action;\n if (params.timeInForce !== undefined) order.timeInForce = params.timeInForce;\n if (params.accountNumber !== undefined) order.accountNumber = params.accountNumber;\n if (params.symbol !== undefined) order.symbol = params.symbol;\n if (params.orderQty !== undefined) order.orderQty = params.orderQty;\n if (params.price !== undefined) order.price = params.price;\n if (params.stopPrice !== undefined) order.stopPrice = params.stopPrice;\n\n // Apply broker-specific defaults (handles snake_case conversion)\n const brokerExtras = this.applyBrokerDefaults(broker, extras);\n\n return {\n broker,\n order: {\n ...order,\n ...brokerExtras,\n },\n };\n }\n\n private applyBrokerDefaults(broker: string, extras: any): any {\n // If the caller provided a broker-scoped extras object (e.g. { ninjaTrader: { ... } })\n // pull the nested object for easier processing.\n if (extras && typeof extras === 'object') {\n const scoped =\n broker === 'robinhood'\n ? extras.robinhood\n : broker === 'ninja_trader'\n ? extras.ninjaTrader\n : broker === 'tasty_trade'\n ? extras.tastyTrade\n : undefined;\n if (scoped) {\n extras = scoped;\n }\n }\n\n switch (broker) {\n case 'robinhood':\n return {\n ...extras,\n extendedHours: extras?.extendedHours ?? extras?.extended_hours ?? true,\n marketHours: extras?.marketHours ?? extras?.market_hours ?? 'regular_hours',\n trailType: extras?.trailType ?? extras?.trail_type ?? 'percentage',\n };\n case 'ninja_trader':\n return {\n ...extras,\n accountSpec: extras?.accountSpec ?? extras?.account_spec ?? '',\n isAutomated: extras?.isAutomated ?? extras?.is_automated ?? true,\n };\n case 'tasty_trade':\n return {\n ...extras,\n automatedSource: extras?.automatedSource ?? extras?.automated_source ?? true,\n };\n default:\n return extras;\n }\n }\n\n async getUserToken(sessionId: string): Promise<UserToken> {\n const accessToken = await this.getValidAccessToken();\n return this.request<UserToken>(`/session/${sessionId}/user`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n /**\n * Get the current session state\n */\n getCurrentSessionState(): SessionState | null {\n return this.currentSessionState;\n }\n\n /**\n * Refresh the current session to extend its lifetime\n * Note: This now uses Supabase session refresh instead of custom endpoint\n */\n async refreshSession(): Promise<{\n success: boolean;\n response_data: {\n session_id: string;\n company_id: string;\n status: string;\n expires_at: string;\n user_id: string;\n auto_login: boolean;\n };\n message: string;\n status_code: number;\n }> {\n if (!this.currentSessionId || !this.companyId) {\n throw new SessionError('No active session to refresh');\n }\n\n // Session-based auth - no token refresh needed\n\n // Return session info in expected format\n return {\n success: true,\n response_data: {\n session_id: this.currentSessionId,\n company_id: this.companyId,\n status: 'active',\n expires_at: new Date(Date.now() + 60 * 60 * 1000).toISOString(), // 1 hour from now\n user_id: '', // Session-based auth - user_id comes from session\n auto_login: false,\n },\n message: 'Session refreshed successfully',\n status_code: 200,\n };\n }\n\n // Broker Data Management\n async getBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n // Public endpoint - no auth required\n return this.request<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/', {\n method: 'GET',\n });\n }\n\n async getBrokerAccounts(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/accounts', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerOrders(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerPositions(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/positions', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerBalances(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerBalance[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerBalance[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/balances', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.request<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/connections', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n async getBalances(filters?: any): Promise<{\n _id: string;\n response_data: any[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params = new URLSearchParams();\n if (filters) {\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.append(key, String(value));\n }\n });\n }\n\n const queryString = params.toString();\n const url = queryString ? `/brokers/data/balances?${queryString}` : '/brokers/data/balances';\n\n return this.request<{\n _id: string;\n response_data: any[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(url, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n // Page-based pagination methods\n async getBrokerOrdersPage(\n page: number = 1,\n perPage: number = 100,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerOrder[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.symbol) params.symbol = filters.symbol;\n if (filters.status) params.status = filters.status;\n if (filters.side) params.side = filters.side;\n if (filters.asset_type) params.asset_type = filters.asset_type;\n if (filters.created_after) params.created_after = filters.created_after;\n if (filters.created_before) params.created_before = filters.created_before;\n }\n\n const response = await this.request<ApiResponse<BrokerOrder[]>>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerOrder[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.symbol) newParams.symbol = filters.symbol;\n if (filters.status) newParams.status = filters.status;\n if (filters.side) newParams.side = filters.side;\n if (filters.asset_type) newParams.asset_type = filters.asset_type;\n if (filters.created_after) newParams.created_after = filters.created_after;\n if (filters.created_before) newParams.created_before = filters.created_before;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerOrder[]>>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n });\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerAccountsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerAccount[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_type) params.account_type = filters.account_type;\n if (filters.status) params.status = filters.status;\n if (filters.currency) params.currency = filters.currency;\n }\n\n const response = await this.request<ApiResponse<BrokerAccount[]>>('/brokers/data/accounts', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerAccount[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_type) newParams.account_type = filters.account_type;\n if (filters.status) newParams.status = filters.status;\n if (filters.currency) newParams.currency = filters.currency;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerAccount[]>>(\n '/brokers/data/accounts',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerPositionsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerPosition[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.symbol) params.symbol = filters.symbol;\n if (filters.position_status) params.position_status = filters.position_status;\n if (filters.side) params.side = filters.side;\n }\n\n const response = await this.request<ApiResponse<BrokerPosition[]>>('/brokers/data/positions', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerPosition[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.symbol) newParams.symbol = filters.symbol;\n if (filters.position_status) newParams.position_status = filters.position_status;\n if (filters.side) newParams.side = filters.side;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerPosition[]>>(\n '/brokers/data/positions',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerBalancesPage(\n page: number = 1,\n perPage: number = 100,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.is_end_of_day_snapshot !== undefined)\n params.is_end_of_day_snapshot = filters.is_end_of_day_snapshot.toString();\n if (filters.balance_created_after)\n params.balance_created_after = filters.balance_created_after;\n if (filters.balance_created_before)\n params.balance_created_before = filters.balance_created_before;\n if (filters.with_metadata !== undefined)\n params.with_metadata = filters.with_metadata.toString();\n }\n\n const response = await this.request<ApiResponse<BrokerBalance[]>>('/brokers/data/balances', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerBalance[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.is_end_of_day_snapshot !== undefined)\n newParams.is_end_of_day_snapshot = filters.is_end_of_day_snapshot.toString();\n if (filters.balance_created_after)\n newParams.balance_created_after = filters.balance_created_after;\n if (filters.balance_created_before)\n newParams.balance_created_before = filters.balance_created_before;\n if (filters.with_metadata !== undefined)\n newParams.with_metadata = filters.with_metadata.toString();\n }\n\n const newResponse = await this.request<ApiResponse<BrokerBalance[]>>(\n '/brokers/data/balances',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n // Navigation methods\n async getNextPage<T>(\n previousResult: PaginatedResult<T>,\n fetchFunction: (offset: number, limit: number) => Promise<PaginatedResult<T>>\n ): Promise<PaginatedResult<T> | null> {\n if (!previousResult.hasNext) {\n return null;\n }\n\n return fetchFunction(previousResult.metadata.nextOffset, previousResult.metadata.limit);\n }\n\n /**\n * Check if this is a mock client\n * @returns false for real API client\n */\n isMockClient(): boolean {\n return false;\n }\n\n /**\n * Disconnect a company from a broker connection\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with disconnect response\n */\n async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n const accessToken = await this.getValidAccessToken();\n return this.request<DisconnectCompanyResponse>(`/brokers/disconnect/${connectionId}`, {\n method: 'DELETE',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n /**\n * Get order fills for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order fills response\n */\n async getOrderFills(\n orderId: string,\n filter?: OrderFillsFilter\n ): Promise<{\n _id: string;\n response_data: OrderFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: OrderFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/orders/${orderId}/fills`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get order events for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order events response\n */\n async getOrderEvents(\n orderId: string,\n filter?: OrderEventsFilter\n ): Promise<{\n _id: string;\n response_data: OrderEvent[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: OrderEvent[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/orders/${orderId}/events`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get order groups\n * @param filter - Optional filter parameters\n * @returns Promise with order groups response\n */\n async getOrderGroups(\n filter?: OrderGroupsFilter\n ): Promise<{\n _id: string;\n response_data: OrderGroup[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.broker_id) {\n params.broker_id = filter.broker_id;\n }\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n if (filter?.created_after) {\n params.created_after = filter.created_after;\n }\n if (filter?.created_before) {\n params.created_before = filter.created_before;\n }\n\n return this.request<{\n _id: string;\n response_data: OrderGroup[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/orders/groups', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get position lots (tax lots for positions)\n * @param filter - Optional filter parameters\n * @returns Promise with position lots response\n */\n async getPositionLots(\n filter?: PositionLotsFilter\n ): Promise<{\n _id: string;\n response_data: PositionLot[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.broker_id) {\n params.broker_id = filter.broker_id;\n }\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.account_id) {\n params.account_id = filter.account_id;\n }\n if (filter?.symbol) {\n params.symbol = filter.symbol;\n }\n if (filter?.position_id) {\n params.position_id = filter.position_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: PositionLot[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/positions/lots', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get position lot fills for a specific lot\n * @param lotId - The position lot ID\n * @param filter - Optional filter parameters\n * @returns Promise with position lot fills response\n */\n async getPositionLotFills(\n lotId: string,\n filter?: PositionLotFillsFilter\n ): Promise<{\n _id: string;\n response_data: PositionLotFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: PositionLotFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/positions/lots/${lotId}/fills`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n}\n","import { setupLogger, buildLoggerExtra } from '../lib/logger';\n\ntype EventCallback = (...args: any[]) => void;\n\nconst eventsLogger = setupLogger('FinaticClientSDK.Events', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nexport class EventEmitter {\n private events: Map<string, Set<EventCallback>> = new Map();\n\n public on(event: string, callback: EventCallback): void {\n if (!this.events.has(event)) {\n this.events.set(event, new Set());\n }\n this.events.get(event)!.add(callback);\n }\n\n public off(event: string, callback: EventCallback): void {\n if (this.events.has(event)) {\n this.events.get(event)!.delete(callback);\n }\n }\n\n public once(event: string, callback: EventCallback): void {\n const onceCallback = (...args: any[]) => {\n callback(...args);\n this.off(event, onceCallback);\n };\n this.on(event, onceCallback);\n }\n\n public emit(event: string, ...args: any[]): void {\n if (this.events.has(event)) {\n this.events.get(event)!.forEach(callback => {\n try {\n callback(...args);\n } catch (error) {\n eventsLogger.exception('Error in event handler', error, {\n module: 'EventEmitter',\n function: 'emit',\n ...buildLoggerExtra({\n event_name: event,\n }),\n });\n }\n });\n }\n }\n\n public removeAllListeners(event?: string): void {\n if (event) {\n this.events.delete(event);\n } else {\n this.events.clear();\n }\n }\n\n public listenerCount(event: string): number {\n return this.events.get(event)?.size || 0;\n }\n\n public listeners(event: string): EventCallback[] {\n return Array.from(this.events.get(event) || []);\n }\n}\n","import { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst portalLogger = setupLogger('FinaticClientSDK.PortalUI', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nexport class PortalUI {\n private iframe: HTMLIFrameElement | null = null;\n private container: HTMLDivElement | null = null;\n private messageHandler: ((event: MessageEvent) => void) | null = null;\n private sessionId: string | null = null;\n private portalOrigin: string | null = null;\n private options?: {\n onSuccess?: (userId: string, tokens?: { access_token?: string; refresh_token?: string }) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n onEvent?: (type: string, data: any) => void;\n };\n private originalBodyStyle: string | null = null;\n\n private readonly logger = portalLogger;\n\n constructor(portalUrl: string) {\n this.createContainer();\n }\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'PortalUI',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n private createContainer(): void {\n this.logger.debug('Creating portal container and iframe', this.buildLoggerExtra('createContainer'));\n this.container = document.createElement('div');\n this.container.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n display: none;\n z-index: 9999;\n `;\n\n this.iframe = document.createElement('iframe');\n // Let the portal handle its own styling - only set essential attributes\n this.iframe.style.cssText = `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 90%;\n max-width: 500px;\n height: 90%;\n max-height: 600px;\n border: none;\n border-radius: 24px;\n `;\n\n // Set security headers\n this.iframe.setAttribute('sandbox', 'allow-scripts allow-forms allow-popups allow-same-origin');\n this.iframe.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');\n this.iframe.setAttribute(\n 'allow',\n 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'\n );\n\n // Add CSP meta tag to allow Google Fonts and other required resources\n const meta = document.createElement('meta');\n meta.setAttribute('http-equiv', 'Content-Security-Policy');\n meta.setAttribute(\n 'content',\n `\n default-src 'self' https:;\n style-src 'self' 'unsafe-inline' https: https://fonts.googleapis.com https://fonts.gstatic.com https://cdn.jsdelivr.net;\n font-src 'self' https://fonts.gstatic.com;\n img-src 'self' data: https:;\n script-src 'self' 'unsafe-inline' 'unsafe-eval' https:;\n connect-src 'self' https:;\n frame-src 'self' https:;\n `\n .replace(/\\s+/g, ' ')\n .trim()\n );\n this.iframe.contentDocument?.head.appendChild(meta);\n\n this.container.appendChild(this.iframe);\n document.body.appendChild(this.container);\n this.logger.debug('Portal container and iframe created successfully', this.buildLoggerExtra('createContainer'));\n }\n\n /**\n * Lock background scrolling by setting overflow: hidden on body\n */\n private lockScroll(): void {\n if (typeof document !== 'undefined' && document.body) {\n // Store original body style to restore later\n this.originalBodyStyle = document.body.style.cssText;\n\n // Add overflow: hidden to prevent scrolling\n document.body.style.overflow = 'hidden';\n document.body.style.position = 'fixed';\n document.body.style.width = '100%';\n document.body.style.top = `-${window.scrollY}px`;\n\n this.logger.debug('Background scroll locked', this.buildLoggerExtra('lockScroll'));\n }\n }\n\n /**\n * Unlock background scrolling by restoring original body style\n */\n private unlockScroll(): void {\n if (typeof document !== 'undefined' && document.body && this.originalBodyStyle !== null) {\n // Restore original body style\n document.body.style.cssText = this.originalBodyStyle;\n\n // Restore scroll position\n const scrollY = document.body.style.top;\n document.body.style.position = '';\n document.body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n\n this.originalBodyStyle = null;\n this.logger.debug('Background scroll unlocked', this.buildLoggerExtra('unlockScroll'));\n }\n }\n\n public show(\n url: string,\n sessionId: string,\n options: {\n onSuccess?: (userId: string) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n onEvent?: (type: string, data: any) => void;\n } = {}\n ): void {\n if (!this.iframe || !this.container) {\n this.createContainer();\n }\n\n // Set portalOrigin to the actual portal URL's origin\n try {\n this.portalOrigin = new URL(url).origin;\n } catch (e) {\n this.portalOrigin = null;\n }\n\n this.sessionId = sessionId;\n this.options = options;\n this.container!.style.display = 'block';\n this.iframe!.src = url;\n\n // Lock background scrolling\n this.lockScroll();\n\n // Set up message handler\n this.messageHandler = this.handleMessage.bind(this);\n window.addEventListener('message', this.messageHandler);\n }\n\n public hide(): void {\n if (this.container) {\n this.container.style.display = 'none';\n }\n if (this.iframe) {\n this.iframe.src = '';\n }\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n this.messageHandler = null;\n }\n this.sessionId = null;\n\n // Unlock background scrolling\n this.unlockScroll();\n }\n\n private handleMessage(event: MessageEvent): void {\n // Verify origin matches the portal URL\n if (!this.portalOrigin || event.origin !== this.portalOrigin) {\n this.logger.warn('Received message from unauthorized origin', this.buildLoggerExtra('handleMessage', {\n received_origin: event.origin,\n expected_origin: this.portalOrigin || 'unknown',\n }));\n return;\n }\n\n const { type, userId, access_token, refresh_token, error, height, data } = event.data;\n this.logger.debug('Received portal message', this.buildLoggerExtra('handleMessage', {\n message_type: type,\n has_data: Boolean(data),\n }));\n\n switch (type) {\n case 'portal-success': {\n // Handle both direct userId and data.userId formats\n const successUserId = userId || (data && data.userId);\n const tokens = {\n access_token: access_token || (data && data.access_token),\n refresh_token: refresh_token || (data && data.refresh_token)\n };\n this.handlePortalSuccess(successUserId, tokens);\n break;\n }\n\n case 'portal-error': {\n // Handle both direct error and data.message formats\n const errorMessage = error || (data && data.message);\n this.handlePortalError(errorMessage);\n break;\n }\n\n case 'portal-close':\n this.handlePortalClose();\n break;\n\n case 'event':\n this.handleGenericEvent(data);\n break;\n\n case 'resize':\n this.handleResize(height);\n break;\n\n // Legacy support for old message types\n case 'success':\n this.handleSuccess(userId);\n break;\n\n case 'error':\n this.handleError(error);\n break;\n\n case 'close':\n this.handleClose();\n break;\n\n default:\n this.logger.warn('Received unhandled message type', this.buildLoggerExtra('handleMessage', {\n message_type: type,\n }));\n }\n }\n\n private handlePortalSuccess(userId: string, tokens?: { access_token?: string; refresh_token?: string }): void {\n if (!userId) {\n this.logger.error('Missing userId in portal-success message', this.buildLoggerExtra('handlePortalSuccess'));\n return;\n }\n\n this.logger.info('Portal success - user connected', this.buildLoggerExtra('handlePortalSuccess', {\n user_id_present: Boolean(userId),\n tokens_provided: Boolean(tokens?.access_token && tokens?.refresh_token),\n }));\n if (tokens?.access_token && tokens?.refresh_token) {\n this.logger.debug('Tokens received for user', this.buildLoggerExtra('handlePortalSuccess', {\n tokens_provided: true,\n }));\n }\n\n // Pass userId to parent (SDK will handle tokens internally)\n this.options?.onSuccess?.(userId, tokens);\n }\n\n private handlePortalError(error: string): void {\n this.logger.error('Portal error received', this.buildLoggerExtra('handlePortalError', {\n error_message: error,\n }));\n this.options?.onError?.(new Error(error || 'Unknown portal error'));\n }\n\n private handlePortalClose(): void {\n this.logger.info('Portal closed by user', this.buildLoggerExtra('handlePortalClose'));\n this.options?.onClose?.();\n this.hide();\n }\n\n private handleGenericEvent(data: any): void {\n if (!data || !data.type) {\n this.logger.warn('Invalid event data received', this.buildLoggerExtra('handleGenericEvent', {\n has_type: Boolean(data?.type),\n }));\n return;\n }\n\n this.logger.debug('Generic event received', this.buildLoggerExtra('handleGenericEvent', {\n event_type: data.type,\n payload_present: Boolean(data.data),\n }));\n\n // Emit the event to be handled by the SDK\n // This will be implemented in FinaticConnect\n if (this.options?.onEvent) {\n this.options.onEvent(data.type, data.data);\n }\n }\n\n private handleSuccess(userId: string): void {\n if (!userId) {\n this.logger.error('Missing required fields in success message', this.buildLoggerExtra('handleSuccess'));\n return;\n }\n\n // Pass userId to parent\n this.options?.onSuccess?.(userId);\n }\n\n private handleError(error: string): void {\n this.logger.error('Received portal error message', this.buildLoggerExtra('handleError', {\n error_message: error,\n }));\n this.options?.onError?.(new Error(error || 'Unknown error'));\n }\n\n private handleClose(): void {\n this.logger.debug('Received close message', this.buildLoggerExtra('handleClose'));\n this.options?.onClose?.();\n this.hide();\n }\n\n private handleResize(height: number): void {\n if (height && this.iframe) {\n this.logger.debug('Received resize message', this.buildLoggerExtra('handleResize', {\n height,\n }));\n this.iframe.style.height = `${height}px`;\n }\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\n\n// Import types from the main API types\nimport { Order, OrderResponse } from '../types/api/orders';\nimport { \n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerConnection,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n BrokerOrderParams,\n DisconnectCompanyResponse,\n} from '../types/api/broker';\nimport { \n SessionResponse,\n OtpRequestResponse,\n OtpVerifyResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n RefreshTokenResponse,\n SessionState,\n} from '../types/api/auth';\nimport { PortalUrlResponse } from '../types/api/core';\n\n/**\n * Configuration for mock behavior\n */\nexport interface MockConfig {\n delay?: number;\n scenario?: MockScenario;\n customData?: Record<string, any>;\n mockApiOnly?: boolean;\n}\n\n/**\n * Different mock scenarios for testing\n */\nexport type MockScenario = 'success' | 'error' | 'network_error' | 'rate_limit' | 'auth_failure';\n\n/**\n * Mock data provider for Finatic API endpoints\n */\nexport class MockDataProvider {\n private config: MockConfig;\n private sessionData: Map<string, any> = new Map();\n private userTokens: Map<string, UserToken> = new Map();\n\n constructor(config: MockConfig = {}) {\n this.config = {\n delay: config.delay || this.getRandomDelay(50, 200),\n scenario: config.scenario || 'success',\n customData: config.customData || {},\n };\n }\n\n /**\n * Get a random delay between min and max milliseconds\n */\n private getRandomDelay(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n /**\n * Simulate network delay\n */\n async simulateDelay(): Promise<void> {\n const delay = this.config.delay || this.getRandomDelay(50, 200);\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n\n /**\n * Generate a realistic session ID\n */\n private generateSessionId(): string {\n return `session_${uuidv4().replace(/-/g, '')}`;\n }\n\n /**\n * Generate a realistic user ID\n */\n private generateUserId(): string {\n return `user_${uuidv4().replace(/-/g, '').substring(0, 8)}`;\n }\n\n /**\n * Generate a realistic company ID\n */\n private generateCompanyId(): string {\n return `company_${uuidv4().replace(/-/g, '').substring(0, 8)}`;\n }\n\n /**\n * Generate mock tokens\n */\n private generateTokens(userId: string): UserToken {\n const accessToken = `mock_access_${uuidv4().replace(/-/g, '')}`;\n const refreshToken = `mock_refresh_${uuidv4().replace(/-/g, '')}`;\n\n return {\n user_id: userId,\n // Removed token fields - we no longer use Supabase tokens in the SDK\n };\n }\n\n // Authentication & Session Management Mocks\n\n async mockStartSession(token: string, userId?: string): Promise<SessionResponse> {\n await this.simulateDelay();\n\n const sessionId = this.generateSessionId();\n const companyId = this.generateCompanyId();\n const actualUserId = userId || this.generateUserId();\n\n const sessionData = {\n session_id: sessionId,\n state: SessionState.ACTIVE,\n company_id: companyId,\n status: 'active',\n expires_at: new Date(Date.now() + 30 * 60 * 1000).toISOString(), // 30 minutes\n user_id: actualUserId,\n auto_login: false,\n };\n\n this.sessionData.set(sessionId, sessionData);\n\n return {\n success: true,\n data: sessionData,\n message: 'Session started successfully',\n };\n }\n\n async mockRequestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n await this.simulateDelay();\n\n return {\n success: true,\n message: 'OTP sent successfully',\n data: true,\n };\n }\n\n async mockVerifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n await this.simulateDelay();\n\n const userId = this.generateUserId();\n const tokens = this.generateTokens(userId);\n\n this.userTokens.set(userId, tokens);\n\n return {\n success: true,\n message: 'OTP verified successfully',\n data: {\n access_token: '', // No longer using Supabase tokens\n refresh_token: '', // No longer using Supabase tokens\n user_id: userId,\n expires_in: 0, // No token expiration for session-based auth\n scope: 'api:access',\n token_type: 'Bearer',\n },\n };\n }\n\n async mockAuthenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n await this.simulateDelay();\n\n const tokens = this.generateTokens(userId);\n this.userTokens.set(userId, tokens);\n\n return {\n success: true,\n message: 'Authentication successful',\n data: {\n access_token: '', // No longer using Supabase tokens\n refresh_token: '', // No longer using Supabase tokens\n },\n };\n }\n\n async mockGetPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n await this.simulateDelay();\n const scenario = this.getScenario();\n if (scenario === 'error') {\n return {\n success: false,\n message: 'Failed to retrieve portal URL (mock error)',\n data: { portal_url: '' },\n };\n }\n if (scenario === 'network_error') {\n throw new Error('Network error (mock)');\n }\n if (scenario === 'rate_limit') {\n return {\n success: false,\n message: 'Rate limit exceeded (mock)',\n data: { portal_url: '' },\n };\n }\n if (scenario === 'auth_failure') {\n return {\n success: false,\n message: 'Authentication failed (mock)',\n data: { portal_url: '' },\n };\n }\n // Default: success\n return {\n success: true,\n message: 'Portal URL retrieved successfully',\n data: {\n portal_url: 'http://localhost:3000/mock-portal',\n },\n };\n }\n\n async mockValidatePortalSession(\n sessionId: string,\n signature: string\n ): Promise<SessionValidationResponse> {\n await this.simulateDelay();\n\n return {\n valid: true,\n company_id: this.generateCompanyId(),\n status: 'active',\n is_sandbox: false,\n environment: 'production',\n };\n }\n\n async mockCompletePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n await this.simulateDelay();\n\n return {\n success: true,\n message: 'Portal session completed successfully',\n data: {\n portal_url: `https://portal.finatic.dev/complete/${sessionId}`,\n },\n };\n }\n\n async mockRefreshToken(refreshToken: string): Promise<RefreshTokenResponse> {\n await this.simulateDelay();\n\n const newAccessToken = `mock_access_${uuidv4().replace(/-/g, '')}`;\n const newRefreshToken = `mock_refresh_${uuidv4().replace(/-/g, '')}`;\n\n return {\n success: true,\n response_data: {\n access_token: newAccessToken,\n refresh_token: newRefreshToken,\n expires_at: new Date(Date.now() + 3600 * 1000).toISOString(),\n company_id: this.generateCompanyId(),\n company_name: 'Mock Company',\n email_verified: true,\n },\n message: 'Token refreshed successfully',\n };\n }\n\n // Broker Management Mocks\n\n async mockGetBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const brokers: BrokerInfo[] = [\n {\n id: 'alpaca',\n name: 'alpaca',\n display_name: 'Alpaca',\n description: 'Commission-free stock trading and crypto',\n website: 'https://alpaca.markets',\n features: ['stocks', 'crypto', 'fractional_shares', 'api_trading'],\n auth_type: 'api_key',\n logo_path: '/logos/alpaca.png',\n is_active: true,\n },\n {\n id: 'robinhood',\n name: 'robinhood',\n display_name: 'Robinhood',\n description: 'Commission-free stock and options trading',\n website: 'https://robinhood.com',\n features: ['stocks', 'options', 'crypto', 'fractional_shares'],\n auth_type: 'oauth',\n logo_path: '/logos/robinhood.png',\n is_active: true,\n },\n {\n id: 'tasty_trade',\n name: 'tasty_trade',\n display_name: 'TastyTrade',\n description: 'Options and futures trading platform',\n website: 'https://tastytrade.com',\n features: ['options', 'futures', 'stocks'],\n auth_type: 'oauth',\n logo_path: '/logos/tastytrade.png',\n is_active: true,\n },\n {\n id: 'ninja_trader',\n name: 'ninja_trader',\n display_name: 'NinjaTrader',\n description: 'Advanced futures and forex trading platform',\n website: 'https://ninjatrader.com',\n features: ['futures', 'forex', 'options'],\n auth_type: 'api_key',\n logo_path: '/logos/ninjatrader.png',\n is_active: true,\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: brokers,\n message: 'Broker list retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async mockGetBrokerAccounts(): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const accounts: BrokerAccount[] = [\n {\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: '123456789',\n account_name: 'Individual Account',\n account_type: 'individual',\n currency: 'USD',\n cash_balance: 15000.5,\n buying_power: 45000.0,\n status: 'active',\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000).toISOString(), // 1 year ago\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - 300 * 24 * 60 * 60 * 1000).toISOString(), // 300 days ago\n },\n {\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: '987654321',\n account_name: 'IRA Account',\n account_type: 'ira',\n currency: 'USD',\n cash_balance: 25000.75,\n buying_power: 75000.0,\n status: 'active',\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - 730 * 24 * 60 * 60 * 1000).toISOString(), // 2 years ago\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - 700 * 24 * 60 * 60 * 1000).toISOString(), // 700 days ago\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: accounts,\n message: 'Broker accounts retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async mockGetBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const connections: BrokerConnection[] = [\n {\n id: uuidv4(),\n broker_id: 'robinhood',\n user_id: this.generateUserId(),\n company_id: this.generateCompanyId(),\n status: 'connected',\n connected_at: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(), // 7 days ago\n last_synced_at: new Date().toISOString(),\n permissions: {\n read: true,\n write: true,\n },\n metadata: {\n nickname: 'My Robinhood',\n },\n needs_reauth: false,\n },\n {\n id: uuidv4(),\n broker_id: 'tasty_trade',\n user_id: this.generateUserId(),\n company_id: this.generateCompanyId(),\n status: 'connected',\n connected_at: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(), // 3 days ago\n last_synced_at: new Date().toISOString(),\n permissions: {\n read: true,\n write: false,\n },\n metadata: {\n nickname: 'Tasty Options',\n },\n needs_reauth: false,\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: connections,\n message: 'Broker connections retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n // Portfolio & Trading Mocks\n\n\n\n async mockGetOrders(filter?: OrdersFilter): Promise<{ data: Order[] }> {\n await this.simulateDelay();\n\n const mockOrders: Order[] = [\n {\n symbol: 'AAPL',\n side: 'buy',\n quantity: 100,\n type_: 'market',\n timeInForce: 'day',\n },\n {\n symbol: 'TSLA',\n side: 'sell',\n quantity: 50,\n type_: 'limit',\n price: 250.0,\n timeInForce: 'day',\n },\n ];\n\n // Apply filters if provided\n let filteredOrders = mockOrders;\n if (filter) {\n filteredOrders = this.applyOrderFilters(mockOrders, filter);\n }\n\n return { data: filteredOrders };\n }\n\n async mockGetBrokerOrders(filter?: OrdersFilter): Promise<{ data: BrokerDataOrder[] }> {\n await this.simulateDelay();\n\n // Determine how many orders to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock orders based on requested count\n const mockOrders: BrokerDataOrder[] = this.generateMockOrders(count);\n\n // Apply filters if provided\n let filteredOrders = mockOrders;\n if (filter) {\n filteredOrders = this.applyBrokerOrderFilters(mockOrders, filter);\n }\n\n return {\n data: filteredOrders,\n };\n }\n\n async mockGetBrokerPositions(filter?: PositionsFilter): Promise<{ data: BrokerDataPosition[] }> {\n await this.simulateDelay();\n\n // Determine how many positions to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock positions based on requested count\n const mockPositions: BrokerDataPosition[] = this.generateMockPositions(count);\n\n // Apply filters if provided\n let filteredPositions = mockPositions;\n if (filter) {\n filteredPositions = this.applyBrokerPositionFilters(mockPositions, filter);\n }\n\n return {\n data: filteredPositions,\n };\n }\n\n async mockGetBrokerBalances(filter?: BalancesFilter): Promise<{ data: BrokerBalance[] }> {\n await this.simulateDelay();\n\n // Determine how many balances to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n\n const mockBalances: BrokerBalance[] = [];\n for (let i = 0; i < maxLimit; i++) {\n const totalCashValue = Math.random() * 100000 + 10000; // $10k - $110k\n const netLiquidationValue = totalCashValue * (0.8 + Math.random() * 0.4); // ±20% variation\n const initialMargin = netLiquidationValue * 0.1; // 10% of net liquidation\n const maintenanceMargin = initialMargin * 0.8; // 80% of initial margin\n const availableToWithdraw = totalCashValue * 0.9; // 90% of cash available\n const totalRealizedPnl = (Math.random() - 0.5) * 10000; // -$5k to +$5k\n\n const balance: BrokerBalance = {\n id: `balance_${i + 1}`,\n account_id: `account_${Math.floor(Math.random() * 3) + 1}`,\n total_cash_value: totalCashValue,\n net_liquidation_value: netLiquidationValue,\n initial_margin: initialMargin,\n maintenance_margin: maintenanceMargin,\n available_to_withdraw: availableToWithdraw,\n total_realized_pnl: totalRealizedPnl,\n balance_created_at: new Date(Date.now() - Math.random() * 7 * 24 * 60 * 60 * 1000).toISOString(),\n balance_updated_at: new Date().toISOString(),\n is_end_of_day_snapshot: Math.random() > 0.7, // 30% chance of being EOD snapshot\n raw_payload: {\n broker_specific_data: {\n margin_ratio: netLiquidationValue / initialMargin,\n day_trading_buying_power: availableToWithdraw * 4,\n overnight_buying_power: availableToWithdraw * 2,\n },\n },\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(),\n updated_at: new Date().toISOString(),\n };\n\n mockBalances.push(balance);\n }\n\n // Apply filters if provided\n let filteredBalances = mockBalances;\n if (filter) {\n filteredBalances = this.applyBrokerBalanceFilters(mockBalances, filter);\n }\n\n return {\n data: filteredBalances,\n };\n }\n\n async mockGetBrokerDataAccounts(filter?: AccountsFilter): Promise<{ data: BrokerAccount[] }> {\n await this.simulateDelay();\n\n // Determine how many accounts to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock accounts based on requested count\n const mockAccounts: BrokerAccount[] = this.generateMockAccounts(count);\n\n // Apply filters if provided\n let filteredAccounts = mockAccounts;\n if (filter) {\n filteredAccounts = this.applyBrokerAccountFilters(mockAccounts, filter);\n }\n\n return {\n data: filteredAccounts,\n };\n }\n\n async mockPlaceOrder(order: BrokerOrderParams): Promise<OrderResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 100));\n\n // Generate a mock order ID\n const orderId = `mock_order_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'pending',\n broker: order.broker,\n accountNumber: order.accountNumber,\n symbol: order.symbol,\n orderType: order.orderType,\n assetType: order.assetType,\n action: order.action,\n quantity: order.orderQty,\n price: order.price,\n stopPrice: order.stopPrice,\n timeInForce: order.timeInForce,\n },\n message: 'Order placed successfully',\n status_code: 200,\n };\n }\n\n // Utility methods\n\n /**\n * Get stored session data\n */\n getSessionData(sessionId: string): any {\n return this.sessionData.get(sessionId);\n }\n\n /**\n * Get stored user token\n */\n getUserToken(sessionId: string): UserToken | undefined {\n return this.userTokens.get(sessionId);\n }\n\n /**\n * Clear all stored data\n */\n clearData(): void {\n this.sessionData.clear();\n this.userTokens.clear();\n }\n\n /**\n * Update configuration\n */\n updateConfig(config: Partial<MockConfig>): void {\n this.config = { ...this.config, ...config };\n }\n\n setScenario(scenario: MockScenario) {\n this.config.scenario = scenario;\n }\n getScenario(): MockScenario {\n return this.config.scenario || 'success';\n }\n\n // Helper methods to apply filters\n private applyOrderFilters(orders: Order[], filter: OrdersFilter): Order[] {\n return orders.filter(order => {\n if (filter.symbol && order.symbol !== filter.symbol) return false;\n if (filter.side && order.side !== filter.side) return false;\n return true;\n });\n }\n\n private applyBrokerOrderFilters(\n orders: BrokerDataOrder[],\n filter: OrdersFilter\n ): BrokerDataOrder[] {\n return orders.filter(order => {\n if (filter.broker_id && order.broker_id !== filter.broker_id) return false;\n if (filter.connection_id && order.connection_id !== filter.connection_id) return false;\n if (filter.account_id && order.account_id !== filter.account_id) return false;\n if (filter.symbol && order.symbol !== filter.symbol) return false;\n if (filter.status && order.status !== filter.status) return false;\n if (filter.side && order.side !== filter.side) return false;\n if (filter.asset_type && order.asset_type !== filter.asset_type) return false;\n if (filter.created_after && new Date(order.created_at) < new Date(filter.created_after))\n return false;\n if (filter.created_before && new Date(order.created_at) > new Date(filter.created_before))\n return false;\n return true;\n });\n }\n\n private applyBrokerPositionFilters(\n positions: BrokerDataPosition[],\n filter: PositionsFilter\n ): BrokerDataPosition[] {\n return positions.filter(position => {\n if (filter.broker_id && position.broker_id !== filter.broker_id) return false;\n if (filter.connection_id && position.connection_id !== filter.connection_id) return false;\n if (filter.account_id && position.account_id !== filter.account_id) return false;\n if (filter.symbol && position.symbol !== filter.symbol) return false;\n if (filter.side && position.side !== filter.side) return false;\n if (filter.asset_type && position.asset_type !== filter.asset_type) return false;\n if (filter.position_status && position.position_status !== filter.position_status)\n return false;\n if (filter.updated_after && new Date(position.updated_at) < new Date(filter.updated_after))\n return false;\n if (filter.updated_before && new Date(position.updated_at) > new Date(filter.updated_before))\n return false;\n return true;\n });\n }\n\n private applyBrokerAccountFilters(\n accounts: BrokerAccount[],\n filter: AccountsFilter\n ): BrokerAccount[] {\n return accounts.filter(account => {\n if (filter.broker_id && account.user_broker_connection_id !== filter.connection_id) return false;\n if (filter.connection_id && account.user_broker_connection_id !== filter.connection_id) return false;\n if (filter.account_type && account.account_type !== filter.account_type) return false;\n if (filter.status && account.status !== filter.status) return false;\n if (filter.currency && account.currency !== filter.currency) return false;\n return true;\n });\n }\n\n private applyBrokerBalanceFilters(\n balances: BrokerBalance[],\n filter: BalancesFilter\n ): BrokerBalance[] {\n return balances.filter(balance => {\n if (filter.account_id && balance.account_id !== filter.account_id) return false;\n if (filter.is_end_of_day_snapshot !== undefined && balance.is_end_of_day_snapshot !== filter.is_end_of_day_snapshot) return false;\n if (filter.balance_created_after && balance.balance_created_at && new Date(balance.balance_created_at) < new Date(filter.balance_created_after)) return false;\n if (filter.balance_created_before && balance.balance_created_at && new Date(balance.balance_created_at) > new Date(filter.balance_created_before)) return false;\n return true;\n });\n }\n\n /**\n * Generate mock orders with diverse data\n */\n private generateMockOrders(count: number): BrokerDataOrder[] {\n const orders: BrokerDataOrder[] = [];\n const symbols = [\n 'AAPL',\n 'TSLA',\n 'MSFT',\n 'GOOGL',\n 'AMZN',\n 'META',\n 'NVDA',\n 'NFLX',\n 'SPY',\n 'QQQ',\n 'IWM',\n 'VTI',\n 'BTC',\n 'ETH',\n 'ADA',\n ];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const orderTypes = ['market', 'limit', 'stop', 'stop_limit'] as const;\n const sides = ['buy', 'sell'] as const;\n const statuses = ['filled', 'pending', 'cancelled', 'rejected', 'partially_filled'] as const;\n const assetTypes = ['stock', 'option', 'crypto', 'future'] as const;\n\n for (let i = 0; i < count; i++) {\n const symbol = symbols[Math.floor(Math.random() * symbols.length)];\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const orderType = orderTypes[Math.floor(Math.random() * orderTypes.length)];\n const side = sides[Math.floor(Math.random() * sides.length)];\n const status = statuses[Math.floor(Math.random() * statuses.length)];\n const assetType = assetTypes[Math.floor(Math.random() * assetTypes.length)];\n const quantity = Math.floor(Math.random() * 1000) + 1;\n const price = Math.random() * 500 + 10;\n const isFilled = status === 'filled' || status === 'partially_filled';\n const filledQuantity = isFilled ? Math.floor(quantity * (0.5 + Math.random() * 0.5)) : 0;\n const filledAvgPrice = isFilled ? price * (0.95 + Math.random() * 0.1) : 0;\n\n orders.push({\n id: uuidv4(),\n broker_id: broker,\n connection_id: uuidv4(),\n account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n order_id: `order_${String(i + 1).padStart(6, '0')}`,\n symbol,\n order_type: orderType,\n side,\n quantity,\n price,\n status,\n asset_type: assetType,\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 30 days\n updated_at: new Date().toISOString(),\n filled_at: isFilled ? new Date().toISOString() : undefined,\n filled_quantity: filledQuantity,\n filled_avg_price: filledAvgPrice,\n });\n }\n\n return orders;\n }\n\n /**\n * Generate mock positions with diverse data\n */\n private generateMockPositions(count: number): BrokerDataPosition[] {\n const positions: BrokerDataPosition[] = [];\n const symbols = [\n 'AAPL',\n 'TSLA',\n 'MSFT',\n 'GOOGL',\n 'AMZN',\n 'META',\n 'NVDA',\n 'NFLX',\n 'SPY',\n 'QQQ',\n 'IWM',\n 'VTI',\n 'BTC',\n 'ETH',\n 'ADA',\n ];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const sides = ['long', 'short'] as const;\n const assetTypes = ['stock', 'option', 'crypto', 'future'] as const;\n const positionStatuses = ['open', 'closed'] as const;\n\n for (let i = 0; i < count; i++) {\n const symbol = symbols[Math.floor(Math.random() * symbols.length)];\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const side = sides[Math.floor(Math.random() * sides.length)];\n const assetType = assetTypes[Math.floor(Math.random() * assetTypes.length)];\n const positionStatus = positionStatuses[Math.floor(Math.random() * positionStatuses.length)];\n const quantity = Math.floor(Math.random() * 1000) + 1;\n const averagePrice = Math.random() * 500 + 10;\n const currentPrice = averagePrice * (0.8 + Math.random() * 0.4); // ±20% variation\n const marketValue = quantity * currentPrice;\n const costBasis = quantity * averagePrice;\n const unrealizedGainLoss = marketValue - costBasis;\n const unrealizedGainLossPercent = (unrealizedGainLoss / costBasis) * 100;\n\n positions.push({\n id: uuidv4(),\n broker_id: broker,\n connection_id: uuidv4(),\n account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n symbol,\n asset_type: assetType,\n side,\n quantity,\n average_price: averagePrice,\n market_value: marketValue,\n cost_basis: costBasis,\n unrealized_gain_loss: unrealizedGainLoss,\n unrealized_gain_loss_percent: unrealizedGainLossPercent,\n current_price: currentPrice,\n last_price: currentPrice,\n last_price_updated_at: new Date().toISOString(),\n position_status: positionStatus,\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 30 days\n updated_at: new Date().toISOString(),\n });\n }\n\n return positions;\n }\n\n /**\n * Generate mock accounts with diverse data\n */\n private generateMockAccounts(count: number): BrokerAccount[] {\n const accounts: BrokerAccount[] = [];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const accountTypes = ['margin', 'cash', 'crypto_wallet', 'live', 'sim'] as const;\n const statuses = ['active', 'inactive'] as const;\n const currencies = ['USD', 'EUR', 'GBP', 'CAD'];\n const accountNames = [\n 'Individual Account',\n 'Paper Trading',\n 'Retirement Account',\n 'Crypto Wallet',\n 'Margin Account',\n 'Cash Account',\n 'Trading Account',\n 'Investment Account',\n ];\n\n for (let i = 0; i < count; i++) {\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const accountType = accountTypes[Math.floor(Math.random() * accountTypes.length)];\n const status = statuses[Math.floor(Math.random() * statuses.length)];\n const currency = currencies[Math.floor(Math.random() * currencies.length)];\n const accountName = accountNames[Math.floor(Math.random() * accountNames.length)];\n\n const cashBalance = Math.random() * 100000 + 1000;\n const buyingPower = cashBalance * (1 + Math.random() * 2); // 1-3x cash balance\n\n accounts.push({\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n account_name: `${accountName} ${i + 1}`,\n account_type: accountType,\n currency,\n cash_balance: cashBalance,\n buying_power: buyingPower,\n status,\n created_at: new Date(Date.now() - Math.random() * 365 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last year\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - Math.random() * 730 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 2 years\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - Math.random() * 500 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 500 days\n });\n }\n\n return accounts;\n }\n\n /**\n * Mock disconnect company method\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with mock disconnect response\n */\n async mockDisconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 200));\n\n // Randomly decide if this will delete the connection or just remove company access\n const willDeleteConnection = Math.random() > 0.5;\n \n if (willDeleteConnection) {\n return {\n success: true,\n response_data: {\n connection_id: connectionId,\n action: 'connection_deleted',\n message: 'Company access removed and connection deleted (no companies remaining)',\n },\n message: 'Company access removed and connection deleted (no companies remaining)',\n status_code: 200,\n };\n } else {\n return {\n success: true,\n response_data: {\n connection_id: connectionId,\n action: 'company_access_removed',\n remaining_companies: Math.floor(Math.random() * 5) + 1, // 1-5 remaining companies\n message: 'Company access removed from connection',\n },\n message: 'Company access removed from connection',\n status_code: 200,\n };\n }\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\n\n// Import types from the main API types\nimport {\n SessionResponse,\n OtpRequestResponse,\n OtpVerifyResponse,\n PortalUrlResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n Order,\n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerConnection,\n BrokerDataOptions,\n BrokerOrderParams,\n BrokerExtras,\n CryptoOrderOptions,\n OptionsOrderOptions,\n OrderResponse,\n TradingContext,\n RefreshTokenRequest,\n RefreshTokenResponse,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n DisconnectCompanyResponse,\n} from '../types';\nimport { PaginatedResult } from '../types';\nimport { DeviceInfo, SessionState, TokenInfo } from '../types/api/auth';\nimport {\n ApiError,\n SessionError,\n AuthenticationError,\n AuthorizationError,\n RateLimitError,\n CompanyAccessError,\n OrderError,\n OrderValidationError,\n} from '../utils/errors';\nimport { MockDataProvider, MockConfig } from './MockDataProvider';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst mockApiLogger = setupLogger('FinaticClientSDK.MockApiClient', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\n/**\n * Mock API Client that implements the same interface as the real ApiClient\n * but returns mock data instead of making HTTP requests\n */\nexport class MockApiClient {\n private readonly baseUrl: string;\n protected readonly deviceInfo?: DeviceInfo;\n protected currentSessionState: SessionState | null = null;\n protected currentSessionId: string | null = null;\n private tradingContext: TradingContext = {};\n\n // Token management\n private tokenInfo: TokenInfo | null = null;\n private refreshPromise: Promise<TokenInfo> | null = null;\n private readonly REFRESH_BUFFER_MINUTES = 5;\n\n // Session and company context\n private companyId: string | null = null;\n private csrfToken: string | null = null;\n\n // Mock data provider\n private mockDataProvider: MockDataProvider;\n private readonly mockApiOnly: boolean;\n private readonly logger = mockApiLogger;\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'MockApiClient',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(baseUrl: string, deviceInfo?: DeviceInfo, mockConfig?: MockConfig) {\n this.baseUrl = baseUrl;\n this.deviceInfo = deviceInfo;\n this.mockApiOnly = mockConfig?.mockApiOnly || false;\n this.mockDataProvider = new MockDataProvider(mockConfig);\n\n // Log that mocks are being used\n if (this.mockApiOnly) {\n this.logger.info('Using mock API client (API only, real portal)', this.buildLoggerExtra('constructor', {\n mock_api_only: true,\n }));\n } else {\n this.logger.info('Using mock API client', this.buildLoggerExtra('constructor', {\n mock_api_only: false,\n }));\n }\n }\n\n /**\n * Store tokens after successful authentication\n */\n setTokens(accessToken: string, refreshToken: string, expiresAt: string, userId?: string): void {\n this.tokenInfo = {\n accessToken,\n refreshToken,\n expiresAt,\n userId,\n };\n }\n\n /**\n * Get the current access token, refreshing if necessary\n */\n async getValidAccessToken(): Promise<string> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No tokens available. Please authenticate first.');\n }\n\n // Check if token is expired or about to expire\n if (this.isTokenExpired()) {\n await this.refreshTokens();\n }\n\n return this.tokenInfo.accessToken;\n }\n\n /**\n * Check if the current token is expired or about to expire\n */\n private isTokenExpired(): boolean {\n if (!this.tokenInfo) return true;\n\n const expiryTime = new Date(this.tokenInfo.expiresAt).getTime();\n const currentTime = Date.now();\n const bufferTime = this.REFRESH_BUFFER_MINUTES * 60 * 1000;\n\n return currentTime >= expiryTime - bufferTime;\n }\n\n /**\n * Refresh the access token using the refresh token\n */\n private async refreshTokens(): Promise<void> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No refresh token available.');\n }\n\n // If a refresh is already in progress, wait for it\n if (this.refreshPromise) {\n await this.refreshPromise;\n return;\n }\n\n // Start a new refresh\n this.refreshPromise = this.performTokenRefresh();\n\n try {\n await this.refreshPromise;\n } finally {\n this.refreshPromise = null;\n }\n }\n\n /**\n * Perform the actual token refresh request\n */\n private async performTokenRefresh(): Promise<TokenInfo> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No refresh token available.');\n }\n\n try {\n const response = await this.mockDataProvider.mockRefreshToken(this.tokenInfo.refreshToken);\n\n // Update stored tokens\n this.tokenInfo = {\n accessToken: response.response_data.access_token,\n refreshToken: response.response_data.refresh_token,\n expiresAt: response.response_data.expires_at,\n userId: this.tokenInfo.userId,\n };\n\n return this.tokenInfo;\n } catch (error) {\n // Clear tokens on refresh failure\n this.tokenInfo = null;\n throw new AuthenticationError(\n 'Token refresh failed. Please re-authenticate.',\n error as Record<string, any>\n );\n }\n }\n\n /**\n * Clear stored tokens (useful for logout)\n */\n clearTokens(): void {\n this.tokenInfo = null;\n this.refreshPromise = null;\n }\n\n /**\n * Get current token info (for debugging/testing)\n */\n getTokenInfo(): TokenInfo | null {\n return this.tokenInfo ? { ...this.tokenInfo } : null;\n }\n\n /**\n * Set session context (session ID, company ID, CSRF token)\n */\n setSessionContext(sessionId: string, companyId: string, csrfToken?: string): void {\n this.currentSessionId = sessionId;\n this.companyId = companyId;\n this.csrfToken = csrfToken || null;\n }\n\n /**\n * Get the current session ID\n */\n getCurrentSessionId(): string | null {\n return this.currentSessionId;\n }\n\n /**\n * Get the current company ID\n */\n getCurrentCompanyId(): string | null {\n return this.companyId;\n }\n\n /**\n * Get the current CSRF token\n */\n getCurrentCsrfToken(): string | null {\n return this.csrfToken;\n }\n\n // Session Management\n async startSession(token: string, userId?: string): Promise<SessionResponse> {\n const response = await this.mockDataProvider.mockStartSession(token, userId);\n\n // Store session ID and set state to ACTIVE\n this.currentSessionId = response.data.session_id;\n this.currentSessionState = SessionState.ACTIVE;\n\n return response;\n }\n\n // OTP Flow\n async requestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n return this.mockDataProvider.mockRequestOtp(sessionId, email);\n }\n\n async verifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n const response = await this.mockDataProvider.mockVerifyOtp(sessionId, otp);\n\n // Store tokens after successful OTP verification\n if (response.success && response.data) {\n const expiresAt = new Date(Date.now() + response.data.expires_in * 1000).toISOString();\n this.setTokens(\n response.data.access_token,\n response.data.refresh_token,\n expiresAt,\n response.data.user_id\n );\n }\n\n return response;\n }\n\n // Direct Authentication\n async authenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n // Ensure session is active before authenticating\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to authenticate');\n }\n\n const response = await this.mockDataProvider.mockAuthenticateDirectly(sessionId, userId);\n\n // Store tokens after successful direct authentication\n if (response.success && response.data) {\n // For direct auth, we don't get expires_in, so we'll set a default 1-hour expiry\n const expiresAt = new Date(Date.now() + 60 * 60 * 1000).toISOString(); // 1 hour\n this.setTokens(response.data.access_token, response.data.refresh_token, expiresAt, userId);\n }\n\n return response;\n }\n\n // Portal Management\n async getPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to get portal URL');\n }\n\n // If in mockApiOnly mode, return the real portal URL\n if (this.mockApiOnly) {\n return {\n success: true,\n message: 'Portal URL retrieved successfully',\n data: {\n portal_url: 'http://localhost:5173/companies',\n },\n };\n }\n\n return this.mockDataProvider.mockGetPortalUrl(sessionId);\n }\n\n async validatePortalSession(\n sessionId: string,\n signature: string\n ): Promise<SessionValidationResponse> {\n return this.mockDataProvider.mockValidatePortalSession(sessionId, signature);\n }\n\n async completePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n return this.mockDataProvider.mockCompletePortalSession(sessionId);\n }\n\n // Portfolio Management\n\n async getOrders(filter?: OrdersFilter): Promise<{ data: Order[] }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetOrders(filter);\n }\n\n async placeOrder(order: BrokerOrderParams): Promise<void> {\n const accessToken = await this.getValidAccessToken();\n await this.mockDataProvider.mockPlaceOrder(order);\n }\n\n // Enhanced Trading Methods with Session Management\n async placeBrokerOrder(\n params: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n assetType: 'equity' | 'equity_option' | 'crypto' | 'forex' | 'future' | 'future_option';\n },\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n // Debug logging\n this.logger.debug('placeBrokerOrder parameters', this.buildLoggerExtra('placeBrokerOrder', {\n has_params_broker: Boolean(params.broker),\n has_context_broker: Boolean(this.tradingContext.broker),\n has_params_account: Boolean(params.accountNumber),\n has_context_account: Boolean(this.tradingContext.accountNumber),\n }));\n\n const fullParams: BrokerOrderParams = {\n broker:\n ((params.broker || this.tradingContext.broker) as\n | 'robinhood'\n | 'tasty_trade'\n | 'ninja_trader') ||\n (() => {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n })(),\n accountNumber:\n params.accountNumber ||\n this.tradingContext.accountNumber ||\n (() => {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n })(),\n symbol: params.symbol,\n orderQty: params.orderQty,\n action: params.action,\n orderType: params.orderType,\n assetType: params.assetType,\n timeInForce: params.timeInForce || 'day',\n price: params.price,\n stopPrice: params.stopPrice,\n order_id: params.order_id,\n };\n\n this.logger.debug('placeBrokerOrder normalized parameters', this.buildLoggerExtra('placeBrokerOrder', {\n broker: fullParams.broker,\n account_number_present: Boolean(fullParams.accountNumber),\n symbol: fullParams.symbol,\n order_type: fullParams.orderType,\n asset_type: fullParams.assetType,\n }));\n return this.mockDataProvider.mockPlaceOrder(fullParams);\n }\n\n async cancelBrokerOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n // Mock successful cancellation\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'cancelled',\n broker: broker || this.tradingContext.broker,\n },\n message: 'Order cancelled successfully',\n status_code: 200,\n };\n }\n\n async modifyBrokerOrder(\n orderId: string,\n params: Partial<BrokerOrderParams>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n // Mock successful modification\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'modified',\n broker: broker || this.tradingContext.broker,\n ...params,\n },\n message: 'Order modified successfully',\n status_code: 200,\n };\n }\n\n // Context management methods\n setBroker(broker: 'robinhood' | 'tasty_trade' | 'ninja_trader'): void {\n this.tradingContext.broker = broker;\n // Clear account when broker changes\n this.tradingContext.accountNumber = undefined;\n this.tradingContext.accountId = undefined;\n }\n\n setAccount(accountNumber: string, accountId?: string): void {\n this.logger.debug('setAccount invoked', this.buildLoggerExtra('setAccount', {\n account_number: accountNumber,\n account_id_present: Boolean(accountId),\n had_existing_account: Boolean(this.tradingContext.accountNumber),\n }));\n this.tradingContext.accountNumber = accountNumber;\n this.tradingContext.accountId = accountId;\n this.logger.debug('setAccount updated context', this.buildLoggerExtra('setAccount', {\n broker: this.tradingContext.broker,\n account_number_present: Boolean(this.tradingContext.accountNumber),\n account_id_present: Boolean(this.tradingContext.accountId),\n }));\n }\n\n\n // Stock convenience methods\n async placeStockMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity',\n timeInForce: 'day',\n },\n extras\n );\n }\n\n async placeStockLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity',\n timeInForce,\n price,\n },\n extras\n );\n }\n\n async placeStockStopOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'day',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Stop',\n assetType: 'equity',\n timeInForce,\n stopPrice,\n },\n extras\n );\n }\n\n // Crypto convenience methods\n async placeCryptoMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market';\n assetType: 'crypto';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty: options.quantity || orderQty,\n action,\n orderType: 'Market',\n assetType: 'crypto',\n timeInForce: 'gtc', // Crypto typically uses GTC\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n async placeCryptoLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Limit';\n assetType: 'crypto';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty: options.quantity || orderQty,\n action,\n orderType: 'Limit',\n assetType: 'crypto',\n timeInForce,\n price,\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n // Options convenience methods\n async placeOptionsMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: OptionsOrderOptions,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market';\n assetType: 'equity_option';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity_option',\n timeInForce: 'day',\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n async placeOptionsLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n options: OptionsOrderOptions,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Limit';\n assetType: 'equity_option';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity_option',\n timeInForce,\n price,\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n // Futures convenience methods\n async placeFuturesMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'future',\n timeInForce: 'day',\n },\n extras\n );\n }\n\n async placeFuturesLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'future',\n timeInForce,\n price,\n },\n extras\n );\n }\n\n async getUserToken(sessionId: string): Promise<UserToken> {\n const token = this.mockDataProvider.getUserToken(sessionId);\n if (!token) {\n throw new AuthenticationError('User token not found');\n }\n return token;\n }\n\n getCurrentSessionState(): SessionState | null {\n return this.currentSessionState;\n }\n\n // Broker Data Management\n async getBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n // Public in mock mode as well - no auth required\n return this.mockDataProvider.mockGetBrokerList();\n }\n\n async getBrokerAccounts(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetBrokerAccounts();\n }\n\n async getBrokerOrders(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n // Return empty orders for now - keeping original interface\n return {\n _id: uuidv4(),\n response_data: [],\n message: 'Broker orders retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async getBrokerPositions(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n // Return empty positions for now - keeping original interface\n return {\n _id: uuidv4(),\n response_data: [],\n message: 'Broker positions retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n // New broker data methods with filtering support\n async getBrokerOrdersWithFilter(filter?: OrdersFilter): Promise<{ data: BrokerDataOrder[] }> {\n return this.mockDataProvider.mockGetBrokerOrders(filter);\n }\n\n async getBrokerPositionsWithFilter(\n filter?: PositionsFilter\n ): Promise<{ data: BrokerDataPosition[] }> {\n return this.mockDataProvider.mockGetBrokerPositions(filter);\n }\n\n async getBrokerBalancesWithFilter(filter?: BalancesFilter): Promise<{ data: BrokerBalance[] }> {\n return this.mockDataProvider.mockGetBrokerBalances(filter);\n }\n\n async getBrokerDataAccountsWithFilter(\n filter?: AccountsFilter\n ): Promise<{ data: BrokerAccount[] }> {\n return this.mockDataProvider.mockGetBrokerDataAccounts(filter);\n }\n\n // Page-based pagination methods\n async getBrokerOrdersPage(\n page: number = 1,\n perPage: number = 100,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerDataOrder[]>> {\n const mockOrders = await this.mockDataProvider.mockGetBrokerOrders(filters);\n const orders = mockOrders.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedOrders = orders.slice(startIndex, endIndex);\n\n const hasMore = endIndex < orders.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerDataOrder[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedOrders = orders.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < orders.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedOrders,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedOrders,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerAccountsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerAccount[]>> {\n const mockAccounts = await this.mockDataProvider.mockGetBrokerDataAccounts(filters);\n const accounts = mockAccounts.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedAccounts = accounts.slice(startIndex, endIndex);\n\n const hasMore = endIndex < accounts.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerAccount[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedAccounts = accounts.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < accounts.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedAccounts,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedAccounts,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerPositionsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerDataPosition[]>> {\n const mockPositions = await this.mockDataProvider.mockGetBrokerPositions(filters);\n const positions = mockPositions.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedPositions = positions.slice(startIndex, endIndex);\n\n const hasMore = endIndex < positions.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerDataPosition[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedPositions = positions.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < positions.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedPositions,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedPositions,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerBalancesPage(\n page: number = 1,\n perPage: number = 100,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n const mockBalances = await this.mockDataProvider.mockGetBrokerBalances(filters);\n const balances = mockBalances.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedBalances = balances.slice(startIndex, endIndex);\n\n const hasMore = endIndex < balances.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerBalance[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedBalances = balances.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < balances.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedBalances,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedBalances,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetBrokerConnections();\n }\n\n /**\n * Mock disconnect company method\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with mock disconnect response\n */\n async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockDisconnectCompany(connectionId);\n }\n\n // Utility methods for mock system\n getMockDataProvider(): MockDataProvider {\n return this.mockDataProvider;\n }\n\n clearMockData(): void {\n this.mockDataProvider.clearData();\n }\n\n /**\n * Check if this is a mock client\n * @returns true if this is a mock client\n */\n isMockClient(): boolean {\n return true;\n }\n}\n","/**\n * Utility functions for mock system environment detection\n */\n\n// Type declarations for Node.js environment\n// Note: process is already declared globally in Node.js types\n\n/**\n * Check if mocks should be used based on environment variables\n * Supports both browser and Node.js environments\n */\nexport function shouldUseMocks(): boolean {\n // Check Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n return (\n process.env.FINATIC_USE_MOCKS === 'true' ||\n process.env.NEXT_PUBLIC_FINATIC_USE_MOCKS === 'true'\n );\n }\n\n // Check browser environment\n if (typeof window !== 'undefined') {\n // Check global variable\n if ((window as any).FINATIC_USE_MOCKS === 'true') {\n return true;\n }\n\n // Check Next.js public environment variables\n if ((window as any).NEXT_PUBLIC_FINATIC_USE_MOCKS === 'true') {\n return true;\n }\n\n // Check localStorage\n try {\n return localStorage.getItem('FINATIC_USE_MOCKS') === 'true';\n } catch (error) {\n // localStorage might not be available\n return false;\n }\n }\n\n return false;\n}\n\n/**\n * Set mock mode in the current environment\n */\nexport function setMockMode(enabled: boolean): void {\n // Set in Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n process.env.FINATIC_USE_MOCKS = enabled ? 'true' : 'false';\n }\n\n // Set in browser environment\n if (typeof window !== 'undefined') {\n (window as any).FINATIC_USE_MOCKS = enabled ? 'true' : 'false';\n\n try {\n if (enabled) {\n localStorage.setItem('FINATIC_USE_MOCKS', 'true');\n } else {\n localStorage.removeItem('FINATIC_USE_MOCKS');\n }\n } catch (error) {\n // localStorage might not be available\n }\n }\n}\n\n/**\n * Check if only API should be mocked (but portal should use real URL)\n */\nexport function shouldMockApiOnly(): boolean {\n // Check Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n return (\n process.env.FINATIC_MOCK_API_ONLY === 'true' ||\n process.env.NEXT_PUBLIC_FINATIC_MOCK_API_ONLY === 'true'\n );\n }\n\n // Check browser environment\n if (typeof window !== 'undefined') {\n // Check global variable\n if ((window as any).FINATIC_MOCK_API_ONLY === 'true') {\n return true;\n }\n\n // Check Next.js public environment variables\n if ((window as any).NEXT_PUBLIC_FINATIC_MOCK_API_ONLY === 'true') {\n return true;\n }\n\n // Check localStorage\n try {\n return localStorage.getItem('FINATIC_MOCK_API_ONLY') === 'true';\n } catch (error) {\n // localStorage might not be available\n return false;\n }\n }\n\n return false;\n}\n\n/**\n * Get mock configuration from environment\n */\nexport function getMockConfig(): { enabled: boolean; delay?: number; mockApiOnly?: boolean } {\n const enabled = shouldUseMocks();\n const mockApiOnly = shouldMockApiOnly();\n\n let delay: number | undefined;\n\n // Check for custom delay in Node.js\n if (typeof process !== 'undefined' && process?.env?.FINATIC_MOCK_DELAY) {\n delay = parseInt(process.env.FINATIC_MOCK_DELAY, 10);\n }\n\n // Check for custom delay in browser\n if (typeof window !== 'undefined') {\n try {\n const storedDelay = localStorage.getItem('FINATIC_MOCK_DELAY');\n if (storedDelay) {\n delay = parseInt(storedDelay, 10);\n }\n } catch (error) {\n // localStorage might not be available\n }\n }\n\n return { enabled, delay, mockApiOnly };\n}\n","import { ApiClient } from '../core/client/ApiClient';\nimport { MockApiClient } from './MockApiClient';\nimport { MockConfig } from './MockDataProvider';\nimport { shouldUseMocks, shouldMockApiOnly, getMockConfig } from './utils';\nimport { DeviceInfo } from '../types';\n\n/**\n * Factory class for creating API clients (real or mock)\n */\nexport class MockFactory {\n /**\n * Create an API client based on environment configuration\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration (only used if mocks are enabled)\n * @returns ApiClient or MockApiClient instance\n */\n static createApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n ): ApiClient | MockApiClient {\n const useMocks = shouldUseMocks();\n const mockApiOnly = shouldMockApiOnly();\n\n if (useMocks || mockApiOnly) {\n // Merge environment config with provided config\n const envConfig = getMockConfig();\n const finalConfig: MockConfig = {\n delay: mockConfig?.delay || envConfig.delay,\n scenario: mockConfig?.scenario || 'success',\n customData: mockConfig?.customData || {},\n mockApiOnly: mockApiOnly, // Pass this flag to the mock client\n };\n\n return new MockApiClient(baseUrl, deviceInfo, finalConfig);\n } else {\n return new ApiClient(baseUrl, deviceInfo);\n }\n }\n\n /**\n * Force create a mock API client regardless of environment settings\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration\n * @returns MockApiClient instance\n */\n static createMockApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n ): MockApiClient {\n return new MockApiClient(baseUrl, deviceInfo, mockConfig);\n }\n\n /**\n * Force create a real API client regardless of environment settings\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @returns ApiClient instance\n */\n static createRealApiClient(baseUrl: string, deviceInfo?: DeviceInfo): ApiClient {\n return new ApiClient(baseUrl, deviceInfo);\n }\n\n /**\n * Check if mocks are currently enabled\n * @returns boolean indicating if mocks are enabled\n */\n static isMockMode(): boolean {\n return shouldUseMocks();\n }\n\n /**\n * Get current mock configuration\n * @returns Mock configuration object\n */\n static getMockConfig(): { enabled: boolean; delay?: number } {\n return getMockConfig();\n }\n}\n\n/**\n * Convenience function to create an API client\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration\n * @returns ApiClient or MockApiClient instance\n */\nexport function createMockApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n): ApiClient | MockApiClient {\n return MockFactory.createApiClient(baseUrl, deviceInfo, mockConfig);\n}\n","import { PortalThemeConfig } from '../types/portal';\n\n// Dark theme (default Finatic theme)\nexport const darkTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#000000',\n secondary: '#1a1a1a',\n tertiary: '#2a2a2a',\n accent: 'rgba(0, 255, 255, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#00FFFF',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#00FFFF',\n },\n text: {\n primary: '#FFFFFF',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#000000',\n },\n border: {\n primary: 'rgba(0, 255, 255, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(0, 255, 255, 0.4)',\n focus: 'rgba(0, 255, 255, 0.6)',\n accent: '#00FFFF',\n },\n input: {\n background: '#1a1a1a',\n border: 'rgba(0, 255, 255, 0.2)',\n borderFocus: '#00FFFF',\n text: '#FFFFFF',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#00FFFF',\n text: '#000000',\n hover: '#00E6E6',\n active: '#00CCCC',\n },\n secondary: {\n background: 'transparent',\n text: '#00FFFF',\n border: '#00FFFF',\n hover: 'rgba(0, 255, 255, 0.1)',\n active: 'rgba(0, 255, 255, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(0, 255, 255, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 255, 255, 0.2)',\n cardHover: '0px 4px 24px rgba(0, 255, 255, 0.3), 0 0 30px rgba(0, 255, 255, 0.25)',\n glow: '0 0 20px rgba(0, 255, 255, 0.8)',\n focus: '0 0 0 2px #00FFFF, 0 0 8px 2px rgba(0, 255, 255, 0.8)',\n },\n },\n branding: {\n primaryColor: '#00FFFF',\n },\n glow: {\n primary: 'rgba(0, 255, 255, 0.4)',\n secondary: 'rgba(0, 255, 255, 0.6)',\n card: 'rgba(0, 255, 255, 0.2)',\n cardHover: 'rgba(0, 255, 255, 0.3)',\n button: 'rgba(0, 255, 255, 0.6)',\n focus: 'rgba(0, 255, 255, 0.8)',\n scrollbar: 'rgba(0, 255, 255, 0.4)',\n },\n gradients: {\n start: 'rgba(0, 255, 255, 0.08)',\n end: 'rgba(0, 255, 255, 0.03)',\n hoverStart: 'rgba(0, 255, 255, 0.15)',\n hoverEnd: 'rgba(0, 255, 255, 0.08)',\n },\n};\n\n// Light theme with cyan accents\nexport const lightTheme: PortalThemeConfig = {\n mode: 'light',\n colors: {\n background: {\n primary: '#FFFFFF',\n secondary: '#F8FAFC',\n tertiary: '#F1F5F9',\n accent: 'rgba(0, 255, 255, 0.1)',\n glass: 'rgba(0, 0, 0, 0.05)',\n },\n status: {\n connected: '#00FFFF',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#00FFFF',\n },\n text: {\n primary: '#1E293B',\n secondary: '#64748B',\n muted: '#94A3B8',\n inverse: '#FFFFFF',\n },\n border: {\n primary: 'rgba(0, 255, 255, 0.2)',\n secondary: 'rgba(0, 0, 0, 0.1)',\n hover: 'rgba(0, 255, 255, 0.4)',\n focus: 'rgba(0, 255, 255, 0.6)',\n accent: '#00FFFF',\n },\n input: {\n background: '#FFFFFF',\n border: 'rgba(0, 255, 255, 0.2)',\n borderFocus: '#00FFFF',\n text: '#1E293B',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#00FFFF',\n text: '#000000',\n hover: '#00E6E6',\n active: '#00CCCC',\n },\n secondary: {\n background: 'transparent',\n text: '#00FFFF',\n border: '#00FFFF',\n hover: 'rgba(0, 255, 255, 0.1)',\n active: 'rgba(0, 255, 255, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(255, 255, 255, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.5)',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(0, 255, 255, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.1)',\n md: '0 4px 6px rgba(0, 0, 0, 0.1)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.1)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.1)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 20px rgba(0, 255, 255, 0.2)',\n cardHover: '0px 4px 24px rgba(0, 255, 255, 0.3), 0 0 30px rgba(0, 255, 255, 0.25)',\n glow: '0 0 20px rgba(0, 255, 255, 0.8)',\n focus: '0 0 0 2px #00FFFF, 0 0 8px 2px rgba(0, 255, 255, 0.8)',\n },\n },\n branding: {\n primaryColor: '#00FFFF',\n },\n glow: {\n primary: 'rgba(0, 255, 255, 0.4)',\n secondary: 'rgba(0, 255, 255, 0.6)',\n card: 'rgba(0, 255, 255, 0.2)',\n cardHover: 'rgba(0, 255, 255, 0.3)',\n button: 'rgba(0, 255, 255, 0.6)',\n focus: 'rgba(0, 255, 255, 0.8)',\n scrollbar: 'rgba(0, 255, 255, 0.4)',\n },\n gradients: {\n start: 'rgba(0, 255, 255, 0.08)',\n end: 'rgba(0, 255, 255, 0.03)',\n hoverStart: 'rgba(0, 255, 255, 0.15)',\n hoverEnd: 'rgba(0, 255, 255, 0.08)',\n },\n};\n\n// Corporate blue theme\nexport const corporateBlueTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1E293B',\n secondary: '#334155',\n tertiary: '#475569',\n accent: 'rgba(59, 130, 246, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#3B82F6',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1E293B',\n },\n border: {\n primary: 'rgba(59, 130, 246, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(59, 130, 246, 0.4)',\n focus: 'rgba(59, 130, 246, 0.6)',\n accent: '#3B82F6',\n },\n input: {\n background: '#334155',\n border: 'rgba(59, 130, 246, 0.2)',\n borderFocus: '#3B82F6',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#3B82F6',\n text: '#FFFFFF',\n hover: '#2563EB',\n active: '#1D4ED8',\n },\n secondary: {\n background: 'transparent',\n text: '#3B82F6',\n border: '#3B82F6',\n hover: 'rgba(59, 130, 246, 0.1)',\n active: 'rgba(59, 130, 246, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(59, 130, 246, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(59, 130, 246, 0.2)',\n cardHover: '0px 4px 24px rgba(59, 130, 246, 0.3), 0 0 30px rgba(59, 130, 246, 0.25)',\n glow: '0 0 20px rgba(59, 130, 246, 0.8)',\n focus: '0 0 0 2px #3B82F6, 0 0 8px 2px rgba(59, 130, 246, 0.8)',\n },\n },\n branding: {\n primaryColor: '#3B82F6',\n },\n glow: {\n primary: 'rgba(59, 130, 246, 0.4)',\n secondary: 'rgba(59, 130, 246, 0.6)',\n card: 'rgba(59, 130, 246, 0.2)',\n cardHover: 'rgba(59, 130, 246, 0.3)',\n button: 'rgba(59, 130, 246, 0.6)',\n focus: 'rgba(59, 130, 246, 0.8)',\n scrollbar: 'rgba(59, 130, 246, 0.4)',\n },\n gradients: {\n start: 'rgba(59, 130, 246, 0.08)',\n end: 'rgba(59, 130, 246, 0.03)',\n hoverStart: 'rgba(59, 130, 246, 0.15)',\n hoverEnd: 'rgba(59, 130, 246, 0.08)',\n },\n};\n\n// Purple theme\nexport const purpleTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(168, 85, 247, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#A855F7',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(168, 85, 247, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(168, 85, 247, 0.4)',\n focus: 'rgba(168, 85, 247, 0.6)',\n accent: '#A855F7',\n },\n input: {\n background: '#334155',\n border: 'rgba(168, 85, 247, 0.2)',\n borderFocus: '#A855F7',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#A855F7',\n text: '#FFFFFF',\n hover: '#9333EA',\n active: '#7C3AED',\n },\n secondary: {\n background: 'transparent',\n text: '#A855F7',\n border: '#A855F7',\n hover: 'rgba(168, 85, 247, 0.1)',\n active: 'rgba(168, 85, 247, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(168, 85, 247, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(168, 85, 247, 0.2)',\n cardHover: '0px 4px 24px rgba(168, 85, 247, 0.3), 0 0 30px rgba(168, 85, 247, 0.25)',\n glow: '0 0 20px rgba(168, 85, 247, 0.8)',\n focus: '0 0 0 2px #A855F7, 0 0 8px 2px rgba(168, 85, 247, 0.8)',\n },\n },\n branding: {\n primaryColor: '#A855F7',\n },\n glow: {\n primary: 'rgba(168, 85, 247, 0.4)',\n secondary: 'rgba(168, 85, 247, 0.6)',\n card: 'rgba(168, 85, 247, 0.2)',\n cardHover: 'rgba(168, 85, 247, 0.3)',\n button: 'rgba(168, 85, 247, 0.6)',\n focus: 'rgba(168, 85, 247, 0.8)',\n scrollbar: 'rgba(168, 85, 247, 0.4)',\n },\n gradients: {\n start: 'rgba(168, 85, 247, 0.08)',\n end: 'rgba(168, 85, 247, 0.03)',\n hoverStart: 'rgba(168, 85, 247, 0.15)',\n hoverEnd: 'rgba(168, 85, 247, 0.08)',\n },\n};\n\n// Green theme\nexport const greenTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(34, 197, 94, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#22C55E',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#22C55E',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(34, 197, 94, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(34, 197, 94, 0.4)',\n focus: 'rgba(34, 197, 94, 0.6)',\n accent: '#22C55E',\n },\n input: {\n background: '#334155',\n border: 'rgba(34, 197, 94, 0.2)',\n borderFocus: '#22C55E',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#22C55E',\n text: '#FFFFFF',\n hover: '#16A34A',\n active: '#15803D',\n },\n secondary: {\n background: 'transparent',\n text: '#22C55E',\n border: '#22C55E',\n hover: 'rgba(34, 197, 94, 0.1)',\n active: 'rgba(34, 197, 94, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(34, 197, 94, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(34, 197, 94, 0.2)',\n cardHover: '0px 4px 24px rgba(34, 197, 94, 0.3), 0 0 30px rgba(34, 197, 94, 0.25)',\n glow: '0 0 20px rgba(34, 197, 94, 0.8)',\n focus: '0 0 0 2px #22C55E, 0 0 8px 2px rgba(34, 197, 94, 0.8)',\n },\n },\n branding: {\n primaryColor: '#22C55E',\n },\n glow: {\n primary: 'rgba(34, 197, 94, 0.4)',\n secondary: 'rgba(34, 197, 94, 0.6)',\n card: 'rgba(34, 197, 94, 0.2)',\n cardHover: 'rgba(34, 197, 94, 0.3)',\n button: 'rgba(34, 197, 94, 0.6)',\n focus: 'rgba(34, 197, 94, 0.8)',\n scrollbar: 'rgba(34, 197, 94, 0.4)',\n },\n gradients: {\n start: 'rgba(34, 197, 94, 0.08)',\n end: 'rgba(34, 197, 94, 0.03)',\n hoverStart: 'rgba(34, 197, 94, 0.15)',\n hoverEnd: 'rgba(34, 197, 94, 0.08)',\n },\n};\n\n// Orange theme\nexport const orangeTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(249, 115, 22, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#F97316',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(249, 115, 22, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(249, 115, 22, 0.4)',\n focus: 'rgba(249, 115, 22, 0.6)',\n accent: '#F97316',\n },\n input: {\n background: '#334155',\n border: 'rgba(249, 115, 22, 0.2)',\n borderFocus: '#F97316',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#F97316',\n text: '#FFFFFF',\n hover: '#EA580C',\n active: '#DC2626',\n },\n secondary: {\n background: 'transparent',\n text: '#F97316',\n border: '#F97316',\n hover: 'rgba(249, 115, 22, 0.1)',\n active: 'rgba(249, 115, 22, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(249, 115, 22, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(249, 115, 22, 0.2)',\n cardHover: '0px 4px 24px rgba(249, 115, 22, 0.3), 0 0 30px rgba(249, 115, 22, 0.25)',\n glow: '0 0 20px rgba(249, 115, 22, 0.8)',\n focus: '0 0 0 2px #F97316, 0 0 8px 2px rgba(249, 115, 22, 0.8)',\n },\n },\n branding: {\n primaryColor: '#F97316',\n },\n glow: {\n primary: 'rgba(249, 115, 22, 0.4)',\n secondary: 'rgba(249, 115, 22, 0.6)',\n card: 'rgba(249, 115, 22, 0.2)',\n cardHover: 'rgba(249, 115, 22, 0.3)',\n button: 'rgba(249, 115, 22, 0.6)',\n focus: 'rgba(249, 115, 22, 0.8)',\n scrollbar: 'rgba(249, 115, 22, 0.4)',\n },\n gradients: {\n start: 'rgba(249, 115, 22, 0.08)',\n end: 'rgba(249, 115, 22, 0.03)',\n hoverStart: 'rgba(249, 115, 22, 0.15)',\n hoverEnd: 'rgba(249, 115, 22, 0.08)',\n },\n};\n\n// StockAlgos theme - Clean professional theme matching StockAlgos website\nexport const stockAlgosTheme: PortalThemeConfig = {\n mode: 'light', // Light mode like StockAlgos website\n colors: {\n background: {\n primary: '#FFFFFF', // Clean white background\n secondary: '#FFFFFF', // Also white for consistency\n tertiary: '#F8FAFC', // Very light gray for subtle elevation\n accent: 'rgba(79, 70, 229, 0.05)', // Very subtle blue accent\n glass: '#FFFFFF', // Pure white, no transparency\n },\n status: {\n connected: '#10B981', // Green for positive/connected\n disconnected: '#EF4444', // Red for negative/disconnected \n warning: '#F59E0B', // Amber for warnings\n pending: '#6366F1', // Indigo for pending states\n error: '#EF4444', // Red for errors\n success: '#10B981', // Green for success\n },\n text: {\n primary: '#111827', // Very dark text for maximum contrast\n secondary: '#374151', // Dark gray for secondary text\n muted: '#6B7280', // Medium gray for muted text\n inverse: '#FFFFFF', // White for text on dark backgrounds\n },\n border: {\n primary: '#E5E7EB', // Light gray border\n secondary: '#F3F4F6', // Very light gray border\n hover: '#D1D5DB', // Slightly darker on hover\n focus: '#4F46E5', // Blue focus border\n accent: '#4F46E5', // Blue accent border\n },\n input: {\n background: '#FFFFFF', // White input background\n border: '#D1D5DB', // Slightly more visible light gray border\n borderFocus: '#4F46E5', // Blue focus border\n text: '#111827', // Darker text for better contrast\n placeholder: '#6B7280', // Darker placeholder for visibility\n },\n button: {\n primary: {\n background: '#4F46E5', // Blue primary button\n text: '#FFFFFF', // White text\n hover: '#4338CA', // Darker blue on hover\n active: '#3730A3', // Even darker on active\n },\n secondary: {\n background: '#FFFFFF', // White background\n text: '#4F46E5', // Blue text\n border: '#E5E7EB', // Light gray border\n hover: '#F8FAFC', // Very light gray on hover\n active: '#F1F5F9', // Light gray on active\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Inter, system-ui, -apple-system, sans-serif', // Clean, modern font like StockAlgos\n secondary: 'Inter, system-ui, -apple-system, sans-serif',\n },\n fontSize: {\n xs: '0.75rem', // 12px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '1.875rem', // 30px\n '4xl': '2.25rem', // 36px\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem', // 4px\n sm: '0.5rem', // 8px\n md: '1rem', // 16px\n lg: '1.5rem', // 24px\n xl: '2rem', // 32px\n '2xl': '3rem', // 48px\n '3xl': '4rem', // 64px\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem', // 4px\n md: '0.5rem', // 8px\n lg: '0.75rem', // 12px\n xl: '1rem', // 16px\n '2xl': '1.5rem', // 24px\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.1, // Minimal glow for clean look\n },\n modal: {\n background: '#FFFFFF', // Pure white modal background\n backdrop: 'rgba(0, 0, 0, 0.4)', // Lighter backdrop\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: false, // Disable glass effects for clean look\n blur: '0px',\n opacity: 0,\n border: 'rgba(0, 0, 0, 0.1)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '200ms', // Faster, more subtle animations\n slow: '300ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.05)', // Very subtle shadows\n md: '0 4px 6px rgba(0, 0, 0, 0.07)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.1)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.1)',\n card: '0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)', // Clean card shadow\n cardHover: '0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)', // Subtle hover shadow\n glow: '0 0 0px transparent', // No glow effects\n focus: '0 0 0 3px rgba(79, 70, 229, 0.1)', // Subtle focus ring\n },\n },\n branding: {\n logo: '/stockalgos-logo.png', // Custom logo path\n companyName: 'StockAlgos', // Company name\n favicon: '/stockalgos-favicon.ico', // Custom favicon\n primaryColor: '#4F46E5', // Indigo brand color\n },\n \n // Minimal glow effects\n glow: {\n primary: 'transparent',\n secondary: 'transparent',\n card: 'transparent',\n cardHover: 'rgba(79, 70, 229, 0.05)', // Very subtle\n button: 'transparent',\n focus: 'rgba(79, 70, 229, 0.1)',\n scrollbar: 'transparent',\n },\n \n // Minimal gradients\n gradients: {\n start: 'rgba(79, 70, 229, 0.02)',\n end: 'rgba(79, 70, 229, 0.01)',\n hoverStart: 'rgba(79, 70, 229, 0.05)',\n hoverEnd: 'rgba(79, 70, 229, 0.02)',\n },\n};\n\n// Theme preset mapping\nexport const portalThemePresets: Record<string, PortalThemeConfig> = {\n dark: darkTheme,\n light: lightTheme,\n corporateBlue: corporateBlueTheme,\n purple: purpleTheme,\n green: greenTheme,\n orange: orangeTheme,\n stockAlgos: stockAlgosTheme,\n};","import { PortalTheme, PortalThemeConfig } from '../types/portal';\nimport { portalThemePresets } from '../themes/portalPresets';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst themeLogger = setupLogger('FinaticClientSDK.ThemeUtils', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildThemeExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'ThemeUtils',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\n/**\n * Generate a portal URL with theme parameters\n * @param baseUrl The base portal URL\n * @param theme The theme configuration\n * @returns The portal URL with theme parameters\n */\nexport function generatePortalThemeURL(baseUrl: string, theme?: PortalTheme): string {\n if (!theme) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n\n if (theme.preset) {\n // Use preset theme\n url.searchParams.set('theme', theme.preset);\n } else if (theme.custom) {\n // Use custom theme\n const encodedTheme = btoa(JSON.stringify(theme.custom));\n url.searchParams.set('theme', 'custom');\n url.searchParams.set('themeObject', encodedTheme);\n }\n\n return url.toString();\n } catch (error) {\n themeLogger.exception('Failed to generate theme URL', error, buildThemeExtra('generatePortalThemeURL', {\n base_url: baseUrl,\n has_theme: Boolean(theme),\n }));\n return baseUrl;\n }\n}\n\n/**\n * Generate a portal URL with theme parameters, appending to existing query params\n * @param baseUrl The base portal URL (may already have query parameters)\n * @param theme The theme configuration\n * @returns The portal URL with theme parameters appended\n */\nexport function appendThemeToURL(baseUrl: string, theme?: PortalTheme): string {\n if (!theme) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n\n if (theme.preset) {\n // Use preset theme\n url.searchParams.set('theme', theme.preset);\n } else if (theme.custom) {\n // Use custom theme\n const encodedTheme = btoa(JSON.stringify(theme.custom));\n url.searchParams.set('theme', 'custom');\n url.searchParams.set('themeObject', encodedTheme);\n }\n\n return url.toString();\n } catch (error) {\n themeLogger.exception('Failed to append theme to URL', error, buildThemeExtra('appendThemeToURL', {\n base_url: baseUrl,\n has_theme: Boolean(theme),\n }));\n return baseUrl;\n }\n}\n\n/**\n * Get a theme configuration by preset name\n * @param preset The preset theme name\n * @returns The theme configuration or undefined if not found\n */\nexport function getThemePreset(preset: string): PortalThemeConfig | undefined {\n return portalThemePresets[preset];\n}\n\n/**\n * Validate a custom theme configuration\n * @param theme The theme configuration to validate\n * @returns True if valid, false otherwise\n */\nexport function validateCustomTheme(theme: PortalThemeConfig): boolean {\n try {\n // Only validate what's provided - everything else gets defaults\n if (theme.mode && !['dark', 'light', 'auto'].includes(theme.mode)) {\n return false;\n }\n\n // If colors are provided, validate the structure\n if (theme.colors) {\n // Check that any provided color sections have valid structure\n const colorSections = ['background', 'status', 'text', 'border', 'input', 'button'];\n for (const section of colorSections) {\n const colorSection = theme.colors[section as keyof typeof theme.colors];\n if (colorSection && typeof colorSection !== 'object') {\n return false;\n }\n }\n }\n\n // If typography is provided, validate structure\n if (theme.typography) {\n if (theme.typography.fontSize && typeof theme.typography.fontSize !== 'object') {\n return false;\n }\n if (theme.typography.fontWeight && typeof theme.typography.fontWeight !== 'object') {\n return false;\n }\n }\n\n // If effects are provided, validate structure\n if (theme.effects) {\n if (theme.effects.animations && typeof theme.effects.animations !== 'object') {\n return false;\n }\n if (theme.effects.shadows && typeof theme.effects.shadows !== 'object') {\n return false;\n }\n }\n\n return true;\n } catch (error) {\n themeLogger.exception('Theme validation error', error, buildThemeExtra('validateCustomTheme'));\n return false;\n }\n}\n\n/**\n * Create a custom theme from a preset with modifications\n * @param preset The base preset theme\n * @param modifications Partial theme modifications\n * @returns The modified theme configuration\n */\nexport function createCustomThemeFromPreset(\n preset: string,\n modifications: Partial<PortalThemeConfig>\n): PortalThemeConfig | null {\n const baseTheme = getThemePreset(preset);\n if (!baseTheme) {\n themeLogger.warn('Preset theme not found', buildThemeExtra('createCustomThemeFromPreset', {\n preset,\n }));\n return null;\n }\n\n return {\n ...baseTheme,\n ...modifications,\n };\n}\n","/**\n * Broker filtering utility functions\n */\n\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst brokerLogger = setupLogger('FinaticClientSDK.BrokerUtils', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildBrokerExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'BrokerUtils',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\n// Supported broker names and their corresponding IDs (including aliases)\nconst SUPPORTED_BROKERS: Record<string, string> = {\n 'alpaca': 'alpaca',\n 'robinhood': 'robinhood',\n 'tasty_trade': 'tasty_trade',\n 'ninja_trader': 'ninja_trader',\n 'tradovate': 'tradovate', // Alias for ninja_trader\n 'interactive_brokers': 'interactive_brokers',\n};\n\n/**\n * Convert broker names to broker IDs, filtering out unsupported ones\n * @param brokerNames Array of broker names to convert\n * @returns Object containing valid broker IDs and any warnings about unsupported names\n */\nexport function convertBrokerNamesToIds(brokerNames: string[]): {\n brokerIds: string[];\n warnings: string[];\n} {\n const brokerIds: string[] = [];\n const warnings: string[] = [];\n\n for (const brokerName of brokerNames) {\n const brokerId = SUPPORTED_BROKERS[brokerName.toLowerCase()];\n if (brokerId) {\n brokerIds.push(brokerId);\n } else {\n warnings.push(`Broker name '${brokerName}' is not supported. Supported brokers: ${Object.keys(SUPPORTED_BROKERS).join(', ')}`);\n }\n }\n\n return { brokerIds, warnings };\n}\n\n/**\n * Append broker filter parameters to a portal URL\n * @param baseUrl The base portal URL (may already have query parameters)\n * @param brokerNames Array of broker names to filter by\n * @returns The portal URL with broker filter parameters appended\n */\nexport function appendBrokerFilterToURL(baseUrl: string, brokerNames?: string[]): string {\n if (!brokerNames || brokerNames.length === 0) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n const { brokerIds, warnings } = convertBrokerNamesToIds(brokerNames);\n\n // Log warnings for unsupported broker names\n warnings.forEach(warning =>\n brokerLogger.warn('Unsupported broker name provided', buildBrokerExtra('appendBrokerFilterToURL', {\n warning,\n })),\n );\n\n // Only add broker filter if we have valid broker IDs\n if (brokerIds.length > 0) {\n const encodedBrokers = btoa(JSON.stringify(brokerIds));\n url.searchParams.set('brokers', encodedBrokers);\n }\n\n return url.toString();\n } catch (error) {\n brokerLogger.exception('Failed to append broker filter to URL', error, buildBrokerExtra('appendBrokerFilterToURL', {\n base_url: baseUrl,\n brokers_count: brokerNames?.length ?? 0,\n }));\n return baseUrl;\n }\n}\n\n/**\n * Get list of supported broker names\n * @returns Array of supported broker names\n */\nexport function getSupportedBrokerNames(): string[] {\n return Object.keys(SUPPORTED_BROKERS);\n}\n\n/**\n * Check if a broker name is supported\n * @param brokerName The broker name to check\n * @returns True if the broker is supported, false otherwise\n */\nexport function isBrokerSupported(brokerName: string): boolean {\n return brokerName.toLowerCase() in SUPPORTED_BROKERS;\n}\n","import { EventEmitter } from '../../utils/events';\nimport { ApiClient } from './ApiClient';\nimport { PortalUI } from '../portal/PortalUI';\nimport { SessionError, AuthenticationError, CompanyAccessError, ApiError, ValidationError } from '../../utils/errors';\nimport { MockFactory } from '../../mocks/MockFactory';\nimport { PaginatedResult } from '../../types/common/pagination';\nimport { UserToken, SessionState } from '../../types/api/auth';\nimport { Order, OrderResponse, TradingContext } from '../../types/api/orders';\nimport {\n BrokerDataOptions,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerInfo,\n BrokerOrderParams,\n BrokerConnection,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n DisconnectCompanyResponse,\n} from '../../types/api/broker';\nimport { FinaticConnectOptions, PortalOptions } from '../../types/connect';\nimport { appendThemeToURL } from '../../utils/themeUtils';\nimport { appendBrokerFilterToURL } from '../../utils/brokerUtils';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst finaticConnectLogger = setupLogger('FinaticClientSDK.FinaticConnect', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst makeFinaticConnectExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'FinaticConnect',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n// Supabase import removed - SDK no longer depends on Supabase\n\ninterface DeviceInfo {\n ip_address: string;\n user_agent: string;\n fingerprint: string;\n}\n\nexport class FinaticConnect extends EventEmitter {\n private static instance: FinaticConnect | null = null;\n private apiClient: ApiClient | any; // Allow both ApiClient and MockApiClient\n private portalUI: PortalUI;\n private options: FinaticConnectOptions;\n private userToken: UserToken | null = null;\n private sessionId: string | null = null;\n private companyId: string;\n private baseUrl: string;\n private readonly BROKER_LIST_CACHE_KEY = 'finatic_broker_list_cache';\n private readonly BROKER_LIST_CACHE_VERSION = '1.0';\n private readonly BROKER_LIST_CACHE_DURATION = 1000 * 60 * 60 * 24; // 24 hours in milliseconds\n private readonly deviceInfo?: DeviceInfo;\n private currentSessionState: string | null = null;\n\n // Session keep-alive mechanism\n private sessionKeepAliveInterval: ReturnType<typeof setInterval> | null = null;\n private readonly SESSION_KEEP_ALIVE_INTERVAL = 1000 * 60 * 5; // 5 minutes\n private readonly SESSION_VALIDATION_TIMEOUT = 1000 * 30; // 30 seconds\n private readonly SESSION_REFRESH_BUFFER_HOURS = 16; // Refresh session at 16 hours\n private sessionStartTime: number | null = null;\n\n private readonly logger = finaticConnectLogger;\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'FinaticConnect',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(options: FinaticConnectOptions, deviceInfo?: DeviceInfo) {\n super();\n this.options = options;\n this.baseUrl = options.baseUrl || 'https://api.finatic.dev';\n this.apiClient = MockFactory.createApiClient(this.baseUrl, deviceInfo);\n this.portalUI = new PortalUI(this.baseUrl);\n this.deviceInfo = deviceInfo;\n\n // Extract company ID from token\n try {\n // Validate token exists\n if (!options.token) {\n throw new Error('Token is required but not provided');\n }\n\n // Check if token is in JWT format (contains dots)\n if (options.token.includes('.')) {\n const tokenParts = options.token.split('.');\n if (tokenParts.length === 3) {\n const payload = JSON.parse(atob(tokenParts[1]));\n this.companyId = payload.company_id;\n } else {\n throw new Error('Invalid JWT token format');\n }\n } else {\n // Handle UUID format token\n // For UUID tokens, we'll get the company_id from the session start response\n this.companyId = ''; // Will be set after session start\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n throw new Error('Failed to parse token: ' + error.message);\n } else {\n throw new Error('Failed to parse token: Unknown error');\n }\n }\n\n // Set up event listeners for callbacks\n if (this.options.onSuccess) {\n this.on('success', this.options.onSuccess);\n }\n if (this.options.onError) {\n this.on('error', this.options.onError);\n }\n if (this.options.onClose) {\n this.on('close', this.options.onClose);\n }\n\n // Register automatic session cleanup\n this.registerSessionCleanup();\n }\n\n private async linkUserToSession(userId: string): Promise<boolean> {\n try {\n if (!this.sessionId) {\n this.logger.error('No session ID available for user linking', this.buildLoggerExtra('linkUserToSession'));\n return false;\n }\n\n // Call API endpoint to authenticate user with session\n const response = await this.apiClient.request('/session/authenticate', {\n method: 'POST',\n body: {\n session_id: this.sessionId,\n user_id: userId,\n },\n });\n\n if (response.error) {\n this.logger.error('Failed to link user to session', {\n ...this.buildLoggerExtra('linkUserToSession', {\n session_id: this.sessionId,\n user_id: userId,\n }),\n error: response.error,\n });\n return false;\n }\n\n this.logger.info('User linked to session successfully', this.buildLoggerExtra('linkUserToSession', { session_id: this.sessionId, user_id: userId }));\n return true;\n } catch (error) {\n this.logger.exception('Error linking user to session', error, this.buildLoggerExtra('linkUserToSession', { session_id: this.sessionId, user_id: userId }));\n return false;\n }\n }\n\n /**\n * Store user ID for authentication state persistence\n * @param userId - The user ID to store\n */\n private storeUserId(userId: string): void {\n // Initialize userToken if it doesn't exist\n if (!this.userToken) {\n this.userToken = {\n user_id: userId,\n };\n } else {\n // Update existing userToken with new userId\n this.userToken.user_id = userId;\n }\n\n // Set user ID in ApiClient for session context\n this.apiClient.setSessionContext(this.sessionId || '', this.companyId, undefined);\n }\n\n /**\n * Check if the user is fully authenticated (has userId in session context)\n * @returns True if the user is fully authenticated and ready for API calls\n */\n public async isAuthenticated(): Promise<boolean> {\n // Check internal session context only - no localStorage dependency\n return this.userToken?.user_id !== undefined && this.userToken?.user_id !== null;\n }\n\n\n /**\n * Get user's orders with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getOrders(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerDataOrder[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerOrdersPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerOrdersPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerOrdersPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's positions with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getPositions(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerDataPosition[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerPositionsPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerPositionsPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerPositionsPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's accounts with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getAccounts(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerDataAccount[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerAccountsPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerAccountsPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerAccountsPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's balances with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getBalances(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerBalancesPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerBalancesPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerBalancesPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Initialize the Finatic Connect SDK\n * @param token - The portal token from your backend\n * @param userId - Optional: The user ID if you have it from a previous session\n * @param options - Optional configuration including baseUrl\n * @returns FinaticConnect instance\n */\n public static async init(\n token: string,\n userId?: string | null | undefined,\n options?: { baseUrl?: string } | undefined\n ): Promise<FinaticConnect> {\n // Safari-specific fix: Clear instance if it exists but has no valid session\n // This prevents stale instances from interfering with new requests\n if (FinaticConnect.instance && !FinaticConnect.instance.sessionId) {\n finaticConnectLogger.debug('Clearing stale instance for Safari compatibility', makeFinaticConnectExtra('init'));\n FinaticConnect.instance = null;\n }\n\n if (!FinaticConnect.instance) {\n const connectOptions: FinaticConnectOptions = {\n token,\n baseUrl: options?.baseUrl || 'https://api.finatic.dev',\n onSuccess: undefined,\n onError: undefined,\n onClose: undefined,\n };\n\n // Generate device info\n const deviceInfo: DeviceInfo = {\n ip_address: '', // Will be set by the server\n user_agent: navigator.userAgent,\n fingerprint: btoa(\n [\n navigator.userAgent,\n navigator.language,\n new Date().getTimezoneOffset(),\n screen.width,\n screen.height,\n navigator.hardwareConcurrency,\n // @ts-expect-error - deviceMemory is not in the Navigator type but exists in modern browsers\n navigator.deviceMemory || 'unknown',\n ].join('|')\n ),\n };\n\n FinaticConnect.instance = new FinaticConnect(connectOptions, deviceInfo);\n\n // Start session and get session data\n const normalizedUserId = userId || undefined; // Convert null to undefined\n const startResponse = await FinaticConnect.instance.apiClient.startSession(\n token,\n normalizedUserId\n );\n FinaticConnect.instance.sessionId = startResponse.data.session_id;\n FinaticConnect.instance.companyId = startResponse.data.company_id || '';\n\n // Record session start time for automatic refresh\n FinaticConnect.instance.sessionStartTime = Date.now();\n\n // Set session context in API client\n if (\n FinaticConnect.instance.apiClient &&\n typeof FinaticConnect.instance.apiClient.setSessionContext === 'function'\n ) {\n FinaticConnect.instance.apiClient.setSessionContext(\n FinaticConnect.instance.sessionId,\n FinaticConnect.instance.companyId,\n startResponse.data.csrf_token // If available in response\n );\n }\n\n // If userId is provided, try to link user to session\n if (normalizedUserId) {\n try {\n // Try to link user to session via API\n const linked = await FinaticConnect.instance.linkUserToSession(normalizedUserId);\n if (linked) {\n // Store user ID for authentication state\n FinaticConnect.instance.storeUserId(normalizedUserId);\n // Emit success event\n FinaticConnect.instance.emit('success', normalizedUserId);\n } else {\n finaticConnectLogger.warn('Failed to link user to session during initialization', makeFinaticConnectExtra('init', { user_id: normalizedUserId }));\n }\n } catch (error) {\n FinaticConnect.instance.emit('error', error as Error);\n throw error;\n }\n }\n }\n return FinaticConnect.instance;\n }\n\n /**\n * Initialize the SDK with a user ID\n * @param userId - The user ID from a previous session\n */\n public async setUserId(userId: string): Promise<void> {\n await this.initializeWithUser(userId);\n }\n\n /**\n * Get the user and tokens for a completed session\n * @returns Promise with user information and tokens\n */\n\n private async initializeWithUser(userId: string): Promise<void> {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Try to link user to session\n const linked = await this.linkUserToSession(userId);\n if (!linked) {\n this.logger.warn('Failed to link user to session during initialization', this.buildLoggerExtra('initializeWithUser', { user_id: userId }));\n // Don't throw error, just continue without authentication\n return;\n }\n\n // Store user ID for authentication state\n this.storeUserId(userId);\n\n this.emit('success', userId);\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Handle company access error by opening the portal\n * @param error The company access error\n * @param options Optional configuration for the portal\n */\n private async handleCompanyAccessError(\n error: CompanyAccessError,\n options?: {\n onSuccess?: (userId: string) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n }\n ): Promise<void> {\n // Emit a specific event for company access errors\n this.emit('companyAccessError', error);\n\n // Open the portal to allow the user to connect a broker\n await this.openPortal(options);\n }\n\n /**\n * Open the portal for user authentication\n * @param options Optional configuration for the portal\n */\n public async openPortal(options?: PortalOptions): Promise<void> {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Ensure session is active\n const sessionState = this.apiClient.getCurrentSessionState();\n if (sessionState !== SessionState.ACTIVE) {\n // If not active, try to start a new session\n const startResponse = await this.apiClient.startSession(this.options.token);\n this.sessionId = startResponse.data.session_id;\n this.companyId = startResponse.data.company_id || '';\n\n // Set session context in API client\n if (this.apiClient && typeof this.apiClient.setSessionContext === 'function') {\n this.apiClient.setSessionContext(\n this.sessionId,\n this.companyId,\n startResponse.data.csrf_token // If available in response\n );\n }\n\n // Session is now active\n this.currentSessionState = SessionState.ACTIVE;\n }\n\n // Get portal URL\n const portalResponse = await this.apiClient.getPortalUrl(this.sessionId);\n if (!portalResponse.data.portal_url) {\n throw new Error('Failed to get portal URL');\n }\n\n // Apply theme to portal URL if provided\n let themedPortalUrl = appendThemeToURL(portalResponse.data.portal_url, options?.theme);\n\n // Apply broker filter to portal URL if provided\n themedPortalUrl = appendBrokerFilterToURL(themedPortalUrl, options?.brokers);\n\n // Apply email parameter to portal URL if provided\n if (options?.email) {\n const url = new URL(themedPortalUrl);\n url.searchParams.set('email', options.email);\n themedPortalUrl = url.toString();\n }\n\n // Add session ID to portal URL so the portal can use it\n const url = new URL(themedPortalUrl);\n if (this.sessionId) {\n url.searchParams.set('session_id', this.sessionId);\n }\n if (this.companyId) {\n url.searchParams.set('company_id', this.companyId);\n }\n themedPortalUrl = url.toString();\n\n // Create portal UI if not exists\n if (!this.portalUI) {\n this.portalUI = new PortalUI(this.baseUrl);\n }\n\n // Show portal\n this.portalUI.show(themedPortalUrl, this.sessionId || '', {\n onSuccess: async (userId: string) => {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Store the userId for authentication state\n this.storeUserId(userId);\n\n // Try to link user to session via API\n const linked = await this.linkUserToSession(userId);\n if (!linked) {\n this.logger.warn('Failed to link user to session, continuing with authentication', this.buildLoggerExtra('openPortal.onSuccess', { user_id: userId }));\n }\n\n // Emit portal success event\n this.emit('portal:success', userId);\n\n // Emit legacy success event\n this.emit('success', userId);\n options?.onSuccess?.(userId);\n } catch (error) {\n if (error instanceof CompanyAccessError) {\n // Handle company access error by opening the portal\n await this.handleCompanyAccessError(error, options);\n } else {\n this.emit('error', error as Error);\n options?.onError?.(error as Error);\n }\n }\n },\n onError: (error: Error) => {\n // Emit portal error event\n this.emit('portal:error', error);\n\n // Emit legacy error event\n this.emit('error', error);\n options?.onError?.(error);\n },\n onClose: () => {\n // Emit portal close event\n this.emit('portal:close');\n\n // Emit legacy close event\n this.emit('close');\n options?.onClose?.();\n },\n onEvent: (type: string, data: any) => {\n this.logger.debug('Portal event received', {\n ...this.buildLoggerExtra('openPortal.onEvent', {\n event_type: type,\n payload_present: Boolean(data),\n }),\n event: 'portal-event',\n });\n\n // Emit generic event\n this.emit('event', type, data);\n\n // Call the event callback\n options?.onEvent?.(type, data);\n },\n });\n } catch (error) {\n if (error instanceof CompanyAccessError) {\n // Handle company access error by opening the portal\n await this.handleCompanyAccessError(error, options);\n } else {\n this.emit('error', error as Error);\n options?.onError?.(error as Error);\n }\n }\n }\n\n /**\n * Close the Finatic Connect Portal\n */\n public closePortal(): void {\n this.portalUI.hide();\n this.emit('close');\n }\n\n /**\n * Initialize a new session\n * @param oneTimeToken - The one-time token from initSession\n */\n protected async startSession(oneTimeToken: string): Promise<void> {\n try {\n const response = await this.apiClient.startSession(oneTimeToken);\n this.sessionId = response.data.session_id;\n this.currentSessionState = response.data.state;\n\n // Set session context in API client\n if (this.apiClient && typeof this.apiClient.setSessionContext === 'function') {\n this.apiClient.setSessionContext(\n this.sessionId,\n this.companyId,\n response.data.csrf_token // If available in response\n );\n }\n\n // For non-direct auth, we need to wait for the session to be ACTIVE\n if (response.data.state === SessionState.PENDING) {\n // Session is now active\n this.currentSessionState = SessionState.ACTIVE;\n }\n } catch (error) {\n if (error instanceof SessionError) {\n throw new AuthenticationError('Failed to start session', error.details);\n }\n throw error;\n }\n }\n\n /**\n * Place a new order using the broker order API\n * @param order - Order details with broker context\n */\n public async placeOrder(order: BrokerOrderParams, extras?: BrokerExtras): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n // Use the order parameter directly since it's already BrokerOrderParams\n return await this.apiClient.placeBrokerOrder(\n order,\n extras || {},\n order.connection_id\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Cancel a broker order\n * @param orderId - The order ID to cancel\n * @param broker - Optional broker override\n * @param connection_id - Optional connection ID for testing bypass\n */\n public async cancelOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n connection_id?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.cancelBrokerOrder(orderId, broker, {}, connection_id);\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Modify a broker order\n * @param orderId - The order ID to modify\n * @param modifications - The modifications to apply\n * @param broker - Optional broker override\n * @param connection_id - Optional connection ID for testing bypass\n */\n public async modifyOrder(\n orderId: string,\n modifications: Partial<{\n symbol?: string;\n quantity?: number;\n price?: number;\n stopPrice?: number;\n timeInForce?: 'day' | 'gtc' | 'gtd' | 'ioc' | 'fok';\n orderType?: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n side?: 'Buy' | 'Sell';\n order_id?: string;\n }>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n connection_id?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n // Convert modifications to broker format\n const brokerModifications: Partial<BrokerOrderParams> = {};\n if (modifications.symbol) brokerModifications.symbol = modifications.symbol;\n if (modifications.quantity) brokerModifications.orderQty = modifications.quantity;\n if (modifications.price) brokerModifications.price = modifications.price;\n if (modifications.stopPrice) brokerModifications.stopPrice = modifications.stopPrice;\n if (modifications.timeInForce)\n brokerModifications.timeInForce = modifications.timeInForce as\n | 'day'\n | 'gtc'\n | 'gtd'\n | 'ioc'\n | 'fok';\n if (modifications.orderType) brokerModifications.orderType = modifications.orderType;\n if (modifications.side) brokerModifications.action = modifications.side;\n if (modifications.order_id) brokerModifications.order_id = modifications.order_id;\n\n return await this.apiClient.modifyBrokerOrder(\n orderId,\n brokerModifications,\n broker,\n {},\n connection_id\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n\n /**\n * Place a stock market order (convenience method)\n */\n public async placeStockMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a stock limit order (convenience method)\n */\n public async placeStockLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a stock stop order (convenience method)\n */\n public async placeStockStopOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockStopOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n stopPrice,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a crypto market order (convenience method)\n */\n public async placeCryptoMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'coinbase' | 'binance' | 'kraken',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeCryptoMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a crypto limit order (convenience method)\n */\n public async placeCryptoLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'coinbase' | 'binance' | 'kraken',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeCryptoLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place an options market order (convenience method)\n */\n public async placeOptionsMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'tasty_trade' | 'robinhood' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeOptionsMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place an options limit order (convenience method)\n */\n public async placeOptionsLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'tasty_trade' | 'robinhood' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeOptionsLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a futures market order (convenience method)\n */\n public async placeFuturesMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'ninja_trader' | 'tasty_trade',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeFuturesMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a futures limit order (convenience method)\n */\n public async placeFuturesLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'ninja_trader' | 'tasty_trade',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeFuturesLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Get the current user ID\n * @returns The current user ID or undefined if not authenticated\n * @throws AuthenticationError if user is not authenticated\n */\n public async getUserId(): Promise<string | null> {\n if (!(await this.isAuthenticated())) {\n return null;\n }\n if (!this.userToken?.user_id) {\n return null;\n }\n return this.userToken.user_id;\n }\n\n /**\n * Get list of supported brokers\n * @returns Promise with array of broker information\n */\n public async getBrokerList(): Promise<BrokerInfo[]> {\n // if (!this.isAuthenticated()) {\n // throw new AuthenticationError('Not authenticated');\n // }\n\n const response = await this.apiClient.getBrokerList();\n const baseUrl = this.baseUrl.replace('/api/v1', ''); // Remove /api/v1 to get the base URL\n\n // Transform the broker list to include full logo URLs\n return response.response_data.map((broker: BrokerInfo) => ({\n ...broker,\n logo_path: broker.logo_path ? `${baseUrl}${broker.logo_path}` : '',\n }));\n }\n\n /**\n * Get broker connections\n * @returns Promise with array of broker connections\n * @throws AuthenticationError if user is not authenticated\n */\n public async getBrokerConnections(): Promise<BrokerConnection[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n const response = await this.apiClient.getBrokerConnections();\n if (response.status_code !== 200) {\n throw new Error(response.message || 'Failed to retrieve broker connections');\n }\n return response.response_data;\n }\n\n // Abstract convenience methods\n /**\n * Get only open positions\n * @returns Promise with array of open positions\n */\n public async getOpenPositions(): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ position_status: 'open' });\n }\n\n /**\n * Get only filled orders\n * @returns Promise with array of filled orders\n */\n public async getFilledOrders(): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ status: 'filled' });\n }\n\n /**\n * Get only pending orders\n * @returns Promise with array of pending orders\n */\n public async getPendingOrders(): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ status: 'pending' });\n }\n\n /**\n * Get only active accounts\n * @returns Promise with array of active accounts\n */\n public async getActiveAccounts(): Promise<BrokerDataAccount[]> {\n return this.getAllAccounts({ status: 'active' });\n }\n\n /**\n * Get orders for a specific symbol\n * @param symbol - The symbol to filter by\n * @returns Promise with array of orders for the symbol\n */\n public async getOrdersBySymbol(symbol: string): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ symbol });\n }\n\n /**\n * Get positions for a specific symbol\n * @param symbol - The symbol to filter by\n * @returns Promise with array of positions for the symbol\n */\n public async getPositionsBySymbol(symbol: string): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ symbol });\n }\n\n /**\n * Get orders for a specific broker\n * @param brokerId - The broker ID to filter by\n * @returns Promise with array of orders for the broker\n */\n public async getOrdersByBroker(brokerId: string): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ broker_id: brokerId });\n }\n\n /**\n * Get positions for a specific broker\n * @param brokerId - The broker ID to filter by\n * @returns Promise with array of positions for the broker\n */\n public async getPositionsByBroker(brokerId: string): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ broker_id: brokerId });\n }\n\n // Pagination methods\n\n\n\n\n\n\n\n /**\n * Get all orders across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all orders\n */\n public async getAllOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataOrder[] = [];\n let currentResult = await this.apiClient.getBrokerOrdersPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Get all positions across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all positions\n */\n public async getAllPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataPosition[] = [];\n let currentResult = await this.apiClient.getBrokerPositionsPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Get all accounts across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all accounts\n */\n public async getAllAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataAccount[] = [];\n let currentResult = await this.apiClient.getBrokerAccountsPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n public async getAllBalances(filter?: BalancesFilter): Promise<BrokerBalance[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerBalance[] = [];\n let currentResult = await this.apiClient.getBrokerBalancesPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Register session management (but don't auto-cleanup for 24-hour sessions)\n */\n private registerSessionCleanup(): void {\n // Only cleanup on actual page unload (not visibility changes)\n // This prevents sessions from being closed when users switch tabs or apps\n window.addEventListener('beforeunload', this.handleSessionCleanup.bind(this));\n\n // Handle visibility changes for keep-alive management (but don't complete sessions)\n document.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this));\n\n // Start session keep-alive mechanism\n this.startSessionKeepAlive();\n }\n\n /**\n * Start the session keep-alive mechanism\n */\n private startSessionKeepAlive(): void {\n if (this.sessionKeepAliveInterval) {\n clearInterval(this.sessionKeepAliveInterval);\n }\n\n this.sessionKeepAliveInterval = setInterval(() => {\n this.validateSessionKeepAlive();\n }, this.SESSION_KEEP_ALIVE_INTERVAL);\n\n this.logger.debug('Session keep-alive started', this.buildLoggerExtra('startSessionKeepAlive', { interval_ms: this.SESSION_KEEP_ALIVE_INTERVAL }));\n }\n\n /**\n * Stop the session keep-alive mechanism\n */\n private stopSessionKeepAlive(): void {\n if (this.sessionKeepAliveInterval) {\n clearInterval(this.sessionKeepAliveInterval);\n this.sessionKeepAliveInterval = null;\n this.logger.debug('Session keep-alive stopped', this.buildLoggerExtra('stopSessionKeepAlive'));\n }\n }\n\n /**\n * Validate session for keep-alive purposes and handle automatic refresh\n */\n private async validateSessionKeepAlive(): Promise<void> {\n if (!this.sessionId || !(await this.isAuthenticated())) {\n this.logger.debug('Session keep-alive skipped - no active session', this.buildLoggerExtra('validateSessionKeepAlive'));\n return;\n }\n\n try {\n this.logger.debug('Validating session for keep-alive', this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n\n // Check if we need to refresh the session (at 16 hours)\n if (this.shouldRefreshSession()) {\n await this.refreshSessionAutomatically();\n return;\n }\n\n // Session keep-alive - assume session is active if we have a session ID\n this.logger.debug('Session keep-alive successful', this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n this.currentSessionState = 'active';\n } catch (error) {\n this.logger.exception('Session keep-alive error', error, this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n // Don't throw errors during keep-alive - just log them\n }\n }\n\n /**\n * Check if the session should be refreshed (after 16 hours)\n */\n private shouldRefreshSession(): boolean {\n if (!this.sessionStartTime) {\n return false;\n }\n\n const sessionAgeHours = (Date.now() - this.sessionStartTime) / (1000 * 60 * 60);\n const hoursUntilRefresh = this.SESSION_REFRESH_BUFFER_HOURS - sessionAgeHours;\n\n if (hoursUntilRefresh <= 0) {\n this.logger.info('Session age threshold exceeded - triggering refresh', this.buildLoggerExtra('shouldRefreshSession', {\n session_age_hours: Number(sessionAgeHours.toFixed(1)),\n }));\n return true;\n }\n\n // Log when refresh will occur (every 5 minutes during keep-alive)\n if (hoursUntilRefresh <= 1) {\n this.logger.debug('Session refresh scheduled', this.buildLoggerExtra('shouldRefreshSession', {\n hours_until_refresh: Number(hoursUntilRefresh.toFixed(1)),\n }));\n }\n\n return false;\n }\n\n /**\n * Automatically refresh the session to extend its lifetime\n */\n private async refreshSessionAutomatically(): Promise<void> {\n if (!this.sessionId) {\n this.logger.warn('Cannot refresh session - missing session ID', this.buildLoggerExtra('refreshSessionAutomatically'));\n return;\n }\n\n try {\n this.logger.info('Automatically refreshing session', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n const response = await this.apiClient.refreshSession();\n\n if (response.success) {\n this.logger.info('Session automatically refreshed successfully', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n status: response.response_data.status,\n expires_at: response.response_data.expires_at,\n }));\n this.currentSessionState = response.response_data.status;\n\n // Update session start time to prevent immediate re-refresh\n this.sessionStartTime = Date.now();\n } else {\n this.logger.warn('Automatic session refresh failed', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n }\n } catch (error) {\n this.logger.exception('Automatic session refresh error', error, this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n // Don't throw errors during automatic refresh - just log them\n }\n }\n\n /**\n * Handle session cleanup when page is unloading\n */\n private async handleSessionCleanup(): Promise<void> {\n this.stopSessionKeepAlive();\n if (this.sessionId) {\n await this.completeSession(this.sessionId);\n }\n }\n\n /**\n * Handle visibility change (mobile browsers)\n * Note: We don't complete sessions on visibility change for 24-hour sessions\n */\n private async handleVisibilityChange(): Promise<void> {\n // For 24-hour sessions, we don't want to complete sessions on visibility changes\n // This prevents sessions from being closed when users switch tabs or apps\n this.logger.debug('Page visibility changed', this.buildLoggerExtra('handleVisibilityChange', {\n visibility_state: document.visibilityState,\n }));\n\n // Only pause keep-alive when hidden, but don't complete the session\n if (document.visibilityState === 'hidden') {\n this.stopSessionKeepAlive();\n } else if (document.visibilityState === 'visible') {\n // Restart keep-alive when page becomes visible again\n this.startSessionKeepAlive();\n }\n }\n\n /**\n * Complete the session by calling the API\n * @param sessionId - The session ID to complete\n */\n private async completeSession(sessionId: string): Promise<void> {\n try {\n // Check if we're in mock mode (check if apiClient is a mock client)\n const isMockMode =\n this.apiClient &&\n typeof this.apiClient.isMockClient === 'function' &&\n this.apiClient.isMockClient();\n\n if (isMockMode) {\n // Mock the completion response\n this.logger.debug('Mock session completion', this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n return;\n }\n\n // Real API call\n const response = await fetch(`${this.baseUrl}/portal/${sessionId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (response.ok) {\n this.logger.info('Session completed successfully', this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n } else {\n this.logger.warn('Failed to complete session', this.buildLoggerExtra('completeSession', {\n session_id: sessionId,\n response_status: response.status,\n }));\n }\n } catch (error) {\n // Silent failure - don't throw errors during cleanup\n this.logger.exception('Session cleanup failed', error, this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n }\n }\n\n /**\n * Disconnect a company from a broker connection\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with disconnect response\n * @throws AuthenticationError if user is not authenticated\n */\n public async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n return this.apiClient.disconnectCompany(connectionId);\n }\n\n /**\n * Get order fills for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order fills response\n */\n public async getOrderFills(\n orderId: string,\n filter?: import('../../types/api/broker').OrderFillsFilter\n ): Promise<import('../../types/api/broker').OrderFill[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderFills(orderId, filter);\n return response.response_data;\n }\n\n /**\n * Get order events for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order events response\n */\n public async getOrderEvents(\n orderId: string,\n filter?: import('../../types/api/broker').OrderEventsFilter\n ): Promise<import('../../types/api/broker').OrderEvent[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderEvents(orderId, filter);\n return response.response_data;\n }\n\n /**\n * Get order groups\n * @param filter - Optional filter parameters\n * @returns Promise with order groups response\n */\n public async getOrderGroups(\n filter?: import('../../types/api/broker').OrderGroupsFilter\n ): Promise<import('../../types/api/broker').OrderGroup[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderGroups(filter);\n return response.response_data;\n }\n\n /**\n * Get position lots (tax lots for positions)\n * @param filter - Optional filter parameters\n * @returns Promise with position lots response\n */\n public async getPositionLots(\n filter?: import('../../types/api/broker').PositionLotsFilter\n ): Promise<import('../../types/api/broker').PositionLot[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getPositionLots(filter);\n return response.response_data;\n }\n\n /**\n * Get position lot fills for a specific lot\n * @param lotId - The position lot ID\n * @param filter - Optional filter parameters\n * @returns Promise with position lot fills response\n */\n public async getPositionLotFills(\n lotId: string,\n filter?: import('../../types/api/broker').PositionLotFillsFilter\n ): Promise<import('../../types/api/broker').PositionLotFill[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getPositionLotFills(lotId, filter);\n return response.response_data;\n }\n\n // Duplicate getBalances method removed - using the paginated version above\n\n}\n"],"names":["uuidv4"],"mappings":";;;;;AAEA,MAAM,eAAe,GAAgD;AACnE,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;CACT;AAED,MAAM,gBAAgB,GAAuD;AAC3E,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;CACf;AAED,MAAM,mBAAmB,GAAG,eAAe;AAE3C,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,QAAkB,KAAc;AACrE,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAc;IACzD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,OAAO,EAAE;AACjI,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,OAAO,QAAQ;AACjB,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,QAAsB,KAAkB;IAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC1D,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AAC9E,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,IAAI,OAAO,IAAI,CAAC,EAAE;AAChB,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,IAAI,OAAO,IAAI,CAAC,EAAE;AAChB,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,OAAO,OAAuB;AAChC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW,KAAwB;AACrD,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;AACzF,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,IAAI;;QAEF,MAAM,OAAO,GAAG,OAAO,qQAAW,KAAK,WAAW,GAAI,SAAuB,GAAG,SAAS;QACzF,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;AAC/C,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC;QACrB;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;AACrC,YAAA,MAAM,KAAK,GAAI,UAAsC,CAAC,GAAG,CAAC;AAC1D,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO,SAAS;AAClB,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,aAAwB,KAAc;IACpE,IAAI,aAAa,EAAE;AACjB,QAAA,OAAO,aAAa;IACtB;AAEA,IAAA,MAAM,QAAQ,GACZ,UAAU,CAAC,mBAAmB,CAAC;QAC/B,UAAU,CAAC,wBAAwB,CAAC;QACpC,UAAU,CAAC,+BAA+B,CAAC;QAC3C,UAAU,CAAC,wBAAwB,CAAC;QACpC,UAAU,CAAC,6BAA6B,CAAC;QACzC,UAAU,CAAC,+BAA+B,CAAC;QAC3C,UAAU,CAAC,sBAAsB,CAAC;IAEpC,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1C;AAEA,IAAA,OAAO,QAAQ;AACjB,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAmB;AAC1C,IAAA,MAAM,YAAY,GAChB,UAAU,CAAC,uBAAuB,CAAC;QACnC,UAAU,CAAC,4BAA4B,CAAC;QACxC,UAAU,CAAC,mCAAmC,CAAC;QAC/C,UAAU,CAAC,4BAA4B,CAAC;QACxC,UAAU,CAAC,iCAAiC,CAAC;QAC7C,UAAU,CAAC,mCAAmC,CAAC;QAC/C,UAAU,CAAC,0BAA0B,CAAC;IAExC,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC;AAEA,IAAA,OAAO,CAAC;AACV,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAqB;AAC/C,IAAA,MAAM,IAAI,GAAmB;AAC3B,QAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC;AAED,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,OAAQ,UAAqB,CAAC,QAAQ,KAAK,WAAW,EAAE;gBAC1D,IAAI,CAAC,IAAI,GAAI,UAAqB,CAAC,QAAQ,CAAC,QAAQ;YACtD;AACA,YAAA,IAAI,OAAQ,UAAqB,CAAC,SAAS,KAAK,WAAW,EAAE;gBAC3D,IAAI,CAAC,UAAU,GAAI,UAAqB,CAAC,SAAS,CAAC,SAAS;YAC9D;QACF;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG;QACxB;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO,IAAI;AACb,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,KAAyC;IAC7E,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,KAAK;SACxB;IACH;AAEA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,EAAE,GAAI,KAAiC,EAAE;IAClD;IAEA,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;KACvB;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,cAA2C,EAAE,YAAsB,KAAa;AACjG,IAAA,IAAI,YAAY,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;AAClD,IAAA,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;IAEtD,OAAO,cAAc,IAAI,YAAY;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,IAAY,EACZ,KAAkC,EAClC,OAAe,EACf,eAA2C,EAC3C,KAA8B,EAC9B,SAAuB,KACI;AAC3B,IAAA,MAAM,OAAO,GAA4B;AACvC,QAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;KACR;AAED,IAAA,IAAI,SAAS,IAAI,CAAC,IAAI,KAAK,EAAE;AAC3B,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAC/B;AACA,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;QACnC;IACF;AAEA,IAAA,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,KAAK,EAAE,WAAW,KAAK,SAAS,EAAE;AACpC,YAAA,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QACzC;AACA,QAAA,IAAI,KAAK,EAAE,KAAK,EAAE;AAChB,YAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;QAC7B;AACA,QAAA,IAAI,KAAK,EAAE,KAAK,EAAE;YAChB,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7C;IACF;AAEA,IAAA,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;AACnC,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI;AACnB,QAAA,MAAM,YAAY,GAAG,mBAAmB,EAAE;AAC1C,QAAA,MAAM,cAAc,GAAmB;AACrC,YAAA,GAAG,YAAY;AACf,YAAA,IAAI,eAAe,IAAI,EAAE,CAAC;AAC1B,YAAA,IAAI,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;SAC3B;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,YAAA,OAAO,CAAC,QAAQ,GAAG,cAAc;QACnC;IACF;AAEA,IAAA,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC;IACpF,IAAI,KAAK,EAAE;AACT,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE;AAClD,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;YACtB;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,OAAO;AAChB,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,YAA2B,EAC3B,IAAY,EACZ,KAAkC,EAClC,OAAe,EACf,OAAgC,KACxB;AACR,IAAA,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;QACjF;IACF;AAEA,IAAA,MAAM,MAAM,GAAG,CAAA,EAAG,KAAK,CAAC,WAAW,EAAE,CAAA,EAAA,EAAK,IAAI,CAAA,IAAA,EAAO,OAAO,CAAA,CAAE;IAC9D,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;AACxC,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,aAAqC,EAAE,KAAgB,EAAE,eAAgC,KAAY;AAC/H,IAAA,MAAM,OAAO,GACX,OAAO,aAAa,KAAK;AACvB,UAAE;AACE,YAAA,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,eAAe;AAChB;UACD,aAAa;AAEnB,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,mBAAmB;IACtD,IAAI,YAAY,GAAa,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC;AAClE,IAAA,MAAM,qBAAqB,GAAG,OAAO,CAAC,eAAe;AACrD,IAAA,MAAM,SAAS,GAAG,gBAAgB,EAAE;IAEpC,MAAM,GAAG,GAAG,CAAC,cAA2C,EAAE,OAAe,EAAE,KAAmB,KAAI;QAChG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE;YAC5C;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,CAAC;AAC1G,QAAA,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC;AAC9F,IAAA,CAAC;IAED,OAAO;AACL,QAAA,QAAQ,EAAE,MAAM,YAAY;AAC5B,QAAA,QAAQ,EAAE,CAAC,SAAmB,KAAI;YAChC,YAAY,GAAG,SAAS;QAC1B,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,OAAe,EAAE,KAAmB,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;AAC7E,QAAA,IAAI,EAAE,CAAC,OAAe,EAAE,KAAmB,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3E,QAAA,IAAI,EAAE,CAAC,OAAe,EAAE,KAAmB,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3E,QAAA,KAAK,EAAE,CAAC,OAAe,EAAE,KAAmB,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAC7E,SAAS,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,KAAmB,KAAI;AAClE,YAAA,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AACpB,gBAAA,GAAG,KAAK;gBACR,KAAK;AACL,gBAAA,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,WAAW;AACnC,aAAA,CAAC;QACJ,CAAC;KACF;AACH;MAEa,gBAAgB,GAAG,CAAC,QAAwB,MAAmB;IAC1E,QAAQ;AACT,CAAA;AAEM,MAAM,WAAW,GACtB,CAAC,MAAc,KACf,CAAqC,EAAuD,KAC5F,OAAO,GAAG,IAAU,KAAyB;AAC3C,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACxB,IAAA,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW;AAC3C,IAAA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAExF,IAAA,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QACnC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC1G,QAAA,OAAO,MAAM;IACf;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;AACnC,QAAA,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE;AACnC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,WAAW,EAAE,QAAQ;AACtB,SAAA,CAAC;AACF,QAAA,MAAM,KAAK;IACb;AACF;;AC1UF;;AAEG;AAIH,MAAM,gBAAgB,GAAG,WAAW,CAAC,6BAA6B,EAAE,SAAS,EAAE;AAC7E,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAE,QAAkC,MAAmB;AACvG,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChD,CAAA,CAAC;MAmBW,eAAe,CAAA;AAK1B,IAAA,WAAA,CACE,IAAO,EACP,cAAiC,EACjC,kBAAmF,EAAA;AAEnF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;QAC5C,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,cAAc,CAAC,QAAQ;YAChC,UAAU,EAAE,cAAc,CAAC,WAAW;YACtC,aAAa,EAAE,cAAc,CAAC,cAAc;YAC5C,KAAK,EAAE,cAAc,CAAC,KAAK;AAC3B,YAAA,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;YACjF,OAAO,EAAE,cAAc,CAAC,QAAQ;AAChC,YAAA,WAAW,EAAE,cAAc,CAAC,cAAc,GAAG,CAAC;SAC/C;IACH;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAC9B;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;IAClC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;IAClC;AAEA,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC7C,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrF;QAAE,OAAO,KAAK,EAAE;YACd,gBAAgB,CAAC,SAAS,CAAC,0BAA0B,EAAE,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE;AAC7F,gBAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AACrC,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,MAAM,YAAY,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACjD,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrF,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3E;QAAE,OAAO,KAAK,EAAE;YACd,gBAAgB,CAAC,SAAS,CAAC,8BAA8B,EAAE,KAAK,EAAE,oBAAoB,CAAC,cAAc,EAAE;AACrG,gBAAA,eAAe,EAAE,cAAc;AAC/B,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;IACF;IAEA,MAAM,QAAQ,CAAC,UAAkB,EAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,UAAU,GAAG,CAAC,EAAE;AAC9C,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;AACrD,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnE;QAAE,OAAO,KAAK,EAAE;YACd,gBAAgB,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE;AACxF,gBAAA,WAAW,EAAE,UAAU;gBACvB,MAAM;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC9D;QAAE,OAAO,KAAK,EAAE;YACd,gBAAgB,CAAC,SAAS,CAAC,2BAA2B,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE;AAC/F,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAwB,KAAiC;AAC/E,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B,QAAA,CAAC;AAED,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC;QAC7B;QAAE,OAAO,KAAK,EAAE;YACd,gBAAgB,CAAC,SAAS,CAAC,0BAA0B,EAAE,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE;AAC7F,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;IACF;IAEA,iBAAiB,GAAA;QACf,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,CAAA,EAAA,EAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA,CAAA,CAAG;IAC7H;AACD;;ACnKD;;AAEG;AA+FH,IAAY,YAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,YAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EANW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;ACjGlB,MAAO,SAAU,SAAQ,KAAK,CAAA;IAClC,WAAA,CACE,OAAe,EACC,IAAA,GAAe,eAAe,EAAA;QAE9C,KAAK,CAAC,OAAO,CAAC;QAFE,IAAA,CAAA,IAAI,GAAJ,IAAI;QAGpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI;IACnC;AACD;AAEK,MAAO,QAAS,SAAQ,SAAS,CAAA;AACrC,IAAA,WAAA,CACkB,MAAc,EAC9B,OAAe,EACC,OAA6B,EAAA;AAE7C,QAAA,KAAK,CAAC,OAAO,EAAE,aAAa,MAAM,CAAA,CAAE,CAAC;QAJrB,IAAA,CAAA,MAAM,GAAN,MAAM;QAEN,IAAA,CAAA,OAAO,GAAP,OAAO;AAGvB,QAAA,IAAI,CAAC,IAAI,GAAG,UAAU;IACxB;AACD;AAEK,MAAO,YAAa,SAAQ,QAAQ,CAAA;IACxC,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;IAC5B;AACD;AAEK,MAAO,mBAAoB,SAAQ,QAAQ,CAAA;IAC/C,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,qBAAqB;IACnC;AACD;AAEK,MAAO,kBAAmB,SAAQ,QAAQ,CAAA;IAC9C,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,oBAAoB;IAClC;AACD;AAEK,MAAO,cAAe,SAAQ,QAAQ,CAAA;IAC1C,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB;IAC9B;AACD;AAEK,MAAO,UAAW,SAAQ,SAAS,CAAA;AACvC,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;IAC1B;AACD;AAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;AAC5C,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAEK,MAAO,YAAa,SAAQ,SAAS,CAAA;AACzC,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;IAC5B;AACD;AAEK,MAAO,aAAc,SAAQ,SAAS,CAAA;AAC1C,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;IAC7B;AACD;AAEK,MAAO,kBAAmB,SAAQ,QAAQ,CAAA;IAC9C,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,oBAAoB;IAClC;AACD;AAEK,MAAO,UAAW,SAAQ,QAAQ,CAAA;IACtC,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;IAC1B;AACD;AAEK,MAAO,oBAAqB,SAAQ,QAAQ,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB;IACpC;AACD;AAEK,MAAO,sBAAuB,SAAQ,QAAQ,CAAA;IAClD,WAAA,CAAY,OAAe,EAAE,OAA6B,EAAA;AACxD,QAAA,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,wBAAwB;IACtC;AACD;;AC5CD;MAEa,SAAS,CAAA;IAgBZ,gBAAgB,CAAC,YAAoB,EAAE,QAAkC,EAAA;QAC/E,OAAO;AACL,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAChD;IACH;IAEA,WAAA,CAAY,OAAe,EAAE,UAAuB,EAAA;QArB1C,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACxC,IAAA,CAAA,cAAc,GAAmB,EAAE;;;QAKnC,IAAA,CAAA,SAAS,GAAkB,IAAI;QAC/B,IAAA,CAAA,SAAS,GAAkB,IAAI;AACtB,QAAA,IAAA,CAAA,MAAM,GAAG,WAAW,CAAC,4BAA4B,EAAE,SAAS,EAAE;AAC7E,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA,CAAC;AAWA,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;QAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;QAEzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,SAAS;QACzC;;IAGF;;AAIA;;AAEG;AACH,IAAA,iBAAiB,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAkB,EAAA;AACxE,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI;IACpC;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;;AAEvB,QAAA,OAAO,EAAE;IACX;;;AAMA;;AAEG;;AAGH;;AAEG;IACH,WAAW,GAAA;;IAEX;AAEA;;AAEG;IACH,YAAY,GAAA;;AAEV,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACO,IAAA,MAAM,OAAO,CACrB,IAAY,EACZ,OAKC,EAAA;;AAGD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,EAAE;AAC/D,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,cAAc,CAAA,CAAE,CAAC;AAEvD,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBACtD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,CAAC;QACJ;;AAGA,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;;AAGpD,QAAA,MAAM,oBAAoB,GAA2B;AACnD,YAAA,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;SACvC;;AAGD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,oBAAoB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AACrD,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE;AAC5C,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE;AAC5C,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE;AAC/C,aAAA,CAAC;QACJ;;AAGA,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAChE,YAAA,oBAAoB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB;AAC5D,YAAA,oBAAoB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,gBAAgB;QAC5D;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClD,YAAA,oBAAoB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS;QACvD;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClD,YAAA,oBAAoB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS;QACvD;;AAGA,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACvD,gBAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAChE,oBAAA,oBAAoB,CAAC,GAAG,CAAC,GAAG,KAAK;gBACnC;AACF,YAAA,CAAC,CAAC;QACJ;;;QAIA,MAAM,iBAAiB,GAA2B,EAAE;AACpD,QAAA,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YAC5D,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;AAEhC,gBAAA,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE;AAChC,gBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE;AACpC,gBAAA,iBAAiB,CAAC,aAAa,CAAC,GAAG,eAAe;YACpD;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAC5E,YAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,YAAA,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,SAAA,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9D,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAC1E,YAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACnC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;AACzD,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACrF,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,QAAQ;QAChB;AAEA,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;;AAGlC,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;;YAEnF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxD,IAAI,eAAe,EAAE;;AAEnB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YAC3B;AACA,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,IAAI,CAAC;AAChE,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gCAAgC,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACjG,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;AACnB,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;AAChC,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,QAAQ;QAChB;;AAGA,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;AACxF,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;AACzD,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACxF,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE,IAAI,CAAC,WAAW;AACzB,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,QAAQ;QAChB;;AAGA,QAAA,IACE,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;AACxB,YAAA,QAAQ,IAAI,IAAI;AAChB,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EACtB;AACA,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,IAAI,CAAC;AAChE,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,+BAA+B,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAChG,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;AACnB,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;AAChC,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,QAAQ;QAChB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;IACO,WAAW,CAAC,MAAc,EAAE,KAAU,EAAA;;QAE9C,IAAI,OAAO,GAAG,oBAAoB;AAElC,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;YAEtC,OAAO;AACL,gBAAA,KAAK,CAAC,OAAO;oBACb,KAAK,CAAC,MAAM,EAAE,OAAO;oBACrB,KAAK,CAAC,KAAK,EAAE,OAAO;AACpB,oBAAA,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO;AAC1B,qBAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACxD,oBAAA,oBAAoB;QACxB;;AAGA,QAAA,MAAM,YAAY,GAChB,KAAK,CAAC,aAAa;AACnB,YAAA,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;AAChC,YAAA,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC9B,YAAA,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC;AAC1D,YAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACzB,KAAK,CAAC,MAAM;AACX,gBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,gBAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,CAAC,CAAM,KACL,CAAC,CAAC,QAAQ,KAAK,eAAe;AAC9B,oBAAA,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;oBAC7B,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CACnD,CAAC;QAEN,IAAI,YAAY,EAAE;;AAEhB,YAAA,MAAM,iBAAiB,GACrB,MAAM,KAAK,GAAG;AACd,iBAAC,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC;AACzD,oBAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;qBACzB,KAAK,CAAC,MAAM;AACX,wBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,wBAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,CAAC,CAAM,KACL,CAAC,CAAC,QAAQ,KAAK,eAAe;AAC9B,4BAAA,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;4BAC7B,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CACnD,CAAC,CAAC;YAET,IAAI,iBAAiB,EAAE;AACrB,gBAAA,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC;YACjD;;AAGA,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;;gBAEtE,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;gBACtD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEjD,oBAAA,MAAM,aAAa,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvF,oBAAA,OAAO,GAAG,CAAA,cAAA,EAAiB,aAAa,CAAA,CAAE;gBAC5C;YACF;;AAGA,YAAA,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACvC;QAEA,QAAQ,MAAM;AACZ,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AACzC,YAAA,KAAK,GAAG;gBACN,OAAO,IAAI,mBAAmB,CAC5B,OAAO,IAAI,gDAAgD,EAC3D,KAAK,CACN;AACH,YAAA,KAAK,GAAG;gBACN,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,mBAAmB,EAAE;AAC9C,oBAAA,OAAO,IAAI,kBAAkB,CAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,8CAA8C,EACtE,KAAK,CAAC,MAAM,CACb;gBACH;gBACA,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,qBAAqB,EAAE;AAChD,oBAAA,OAAO,IAAI,sBAAsB,CAC/B,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,yCAAyC,EACjE,KAAK,CAAC,MAAM,CACb;gBACH;gBACA,OAAO,IAAI,kBAAkB,CAC3B,OAAO,IAAI,4CAA4C,EACvD,KAAK,CACN;AACH,YAAA,KAAK,GAAG;gBACN,OAAO,IAAI,QAAQ,CACjB,MAAM,EACN,OAAO,IAAI,8CAA8C,EACzD,KAAK,CACN;AACH,YAAA,KAAK,GAAG;gBACN,OAAO,IAAI,cAAc,CAAC,OAAO,IAAI,qBAAqB,EAAE,KAAK,CAAC;AACpE,YAAA,KAAK,GAAG;gBACN,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,uBAAuB,EAAE,KAAK,CAAC;AACxE,YAAA;gBACE,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,oBAAoB,EAAE,KAAK,CAAC;;IAEzE;;AAGA,IAAA,MAAM,YAAY,CAAC,KAAa,EAAE,MAAe,EAAA;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAkB,gBAAgB,EAAE;AACrE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,gBAAgB,EAAE,KAAK;AACvB,gBAAA,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;iBAChD,CAAC;AACH,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACF,SAAA,CAAC;;QAGF,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU;AAChD,QAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,MAAM;AAE9C,QAAA,OAAO,QAAQ;IACjB;;AAGA,IAAA,MAAM,UAAU,CAAC,SAAiB,EAAE,KAAa,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAqB,mBAAmB,EAAE;AAC3D,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;iBAChD,CAAC;AACH,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK;AACN,aAAA;AACF,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,SAAS,CAAC,SAAiB,EAAE,GAAW,EAAA;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoB,kBAAkB,EAAE;AACzE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;iBAChD,CAAC;AACH,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,GAAG;AACJ,aAAA;AACF,SAAA,CAAC;;QAGF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AAKvC,QAAA,OAAO,QAAQ;IACjB;;AAGA,IAAA,MAAM,oBAAoB,CACxB,SAAiB,EACjB,MAAc,EAAA;;QAGd,IAAI,IAAI,CAAC,mBAAmB,KAAK,YAAY,CAAC,MAAM,EAAE;AACpD,YAAA,MAAM,IAAI,YAAY,CAAC,iDAAiD,CAAC;QAC3E;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAA8B,uBAAuB,EAAE;AACxF,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;iBAChD,CAAC;AACH,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACF,SAAA,CAAC;;QAGF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AAIvC,QAAA,OAAO,QAAQ;IACjB;;AAGA;;;;;AAKG;IACI,MAAM,YAAY,CAAC,SAAiB,EAAA;QACzC,IAAI,IAAI,CAAC,mBAAmB,KAAK,YAAY,CAAC,MAAM,EAAE;AACpD,YAAA,MAAM,IAAI,YAAY,CAAC,mDAAmD,CAAC;QAC7E;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAoB,iBAAiB,EAAE;AACxD,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;AAC7C,oBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;iBAChD,CAAC;AACH,aAAA;AACF,SAAA,CAAC;IACJ;IAEA,MAAM,qBAAqB,CAAC,SAAiB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAoB,CAAA,QAAA,EAAW,SAAS,WAAW,EAAE;AACtE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AACF,SAAA,CAAC;IACJ;;AAIA,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAoB,sBAAsB,EAAE;AAC7D,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;AACF,SAAA,CAAC;IACJ;;IAGA,MAAM,gBAAgB,CACpB,MAMC,EACD,MAAA,GAAuB,EAAE,EACzB,aAAsB,EAAA;AAEtB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;;QAGpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;QAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa;QAE/E,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;QAC/E;QAEA,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC;QACxF;;AAGA,QAAA,MAAM,UAAU,GAAsB;YACpC,MAAM,EACH,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;AAI7C,gBAAA,CAAC,MAAK;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AAC/E,gBAAA,CAAC,GAAG;YACN,aAAa,EACX,MAAM,CAAC,aAAa;gBACpB,IAAI,CAAC,cAAc,CAAC,aAAa;AACjC,gBAAA,CAAC,MAAK;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC;AACxF,gBAAA,CAAC,GAAG;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;YACxC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC;;QAGlE,MAAM,WAAW,GAA2B,EAAE;QAC9C,IAAI,aAAa,EAAE;AACjB,YAAA,WAAW,CAAC,aAAa,GAAG,aAAa;QAC3C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAgB,iBAAiB,EAAE;AACpD,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACtC,gBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;AACzC,gBAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;gBAC3C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,aAAA;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,WAAW;AACpB,SAAA,CAAC;IACJ;IAEA,MAAM,iBAAiB,CACrB,OAAe,EACf,MAAqD,EACrD,MAAA,GAAc,EAAE,EAChB,aAAsB,EAAA;AAEtB,QAAoB,MAAM,IAAI,CAAC,mBAAmB;QAElD,MAAM,cAAc,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;QAC3D,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;QAC/E;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;;QAGvD,MAAM,WAAW,GAA2B,EAAE;;QAG9C,IAAI,aAAa,EAAE;AACjB,YAAA,WAAW,CAAC,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE;QACvD;QACA,IAAI,aAAa,EAAE;AACjB,YAAA,WAAW,CAAC,aAAa,GAAG,aAAa;QAC3C;;QAGA,IAAI,IAAI,GAAQ,SAAS;QACzB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,IAAI,GAAG;AACL,gBAAA,MAAM,EAAE,cAAc;AACtB,gBAAA,KAAK,EAAE;AACL,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,cAAc,EAAE,aAAa;AAC7B,oBAAA,GAAG,MAAM;AACV,iBAAA;aACF;QACH;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAgB,CAAA,gBAAA,EAAmB,OAAO,EAAE,EAAE;AAC/D,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;AACzC,gBAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;gBAC3C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,aAAA;YACD,IAAI;AACJ,YAAA,MAAM,EAAE,WAAW;AACpB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,iBAAiB,CACrB,OAAe,EACf,MAAkC,EAClC,MAAqD,EACrD,MAAA,GAAc,EAAE,EAChB,aAAsB,EAAA;AAEtB,QAAoB,MAAM,IAAI,CAAC,mBAAmB;QAElD,MAAM,cAAc,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;QAC3D,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;QAC/E;;AAGA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;;QAG/E,MAAM,WAAW,GAA2B,EAAE;QAC9C,IAAI,aAAa,EAAE;AACjB,YAAA,WAAW,CAAC,aAAa,GAAG,aAAa;QAC3C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAgB,CAAA,gBAAA,EAAmB,OAAO,EAAE,EAAE;AAC/D,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;AACzC,gBAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;gBAC3C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,aAAA;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,WAAW;AACpB,SAAA,CAAC;IACJ;;AAGA,IAAA,SAAS,CAAC,MAAoD,EAAA;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM;;AAEnC,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,SAAS;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS;IAC3C;IAEA,UAAU,CAAC,aAAqB,EAAE,SAAkB,EAAA;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,aAAa;AACjD,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS;IAC3C;;AAIA,IAAA,MAAM,qBAAqB,CACzB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EACzB,aAAsB,EAAA;QAEtB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,KAAK;YAClB,MAAM;YACN,aAAa;AACd,SAAA,EACD,MAAM,EACN,aAAa,CACd;IACH;IAEA,MAAM,oBAAoB,CACxB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EACzB,aAAsB,EAAA;QAEtB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,QAAQ;YACnB,KAAK;YACL,WAAW;YACX,MAAM;YACN,aAAa;AACd,SAAA,EACD,MAAM,EACN,aAAa,CACd;IACH;IAEA,MAAM,mBAAmB,CACvB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,SAAiB,EACjB,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EACzB,aAAsB,EAAA;QAEtB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,QAAQ;YACnB,SAAS;YACT,WAAW;YACX,MAAM;YACN,aAAa;AACd,SAAA,EACD,MAAM,EACN,aAAa,CACd;IACH;;AAGA,IAAA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,OAAA,GAA8B,EAAE,EAChC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,KAAK;YAClB,MAAM;YACN,aAAa;AACb,YAAA,GAAG,OAAO;SACX,EACD,MAAM,CACP;IACH;IAEA,MAAM,qBAAqB,CACzB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,cAA6B,KAAK,EAClC,UAA8B,EAAE,EAChC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,QAAQ;YACnB,KAAK;YACL,WAAW;YACX,MAAM;YACN,aAAa;AACb,YAAA,GAAG,OAAO;SACX,EACD,MAAM,CACP;IACH;;AAGA,IAAA,MAAM,uBAAuB,CAC3B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,OAA4B,EAC5B,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,WAAW,EAAE,KAAK;YAClB,MAAM;YACN,aAAa;AACb,YAAA,GAAG,OAAO;SACX,EACD,MAAM,CACP;IACH;IAEA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,OAA4B,EAC5B,cAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,eAAe;YAC1B,KAAK;YACL,WAAW;YACX,MAAM;YACN,aAAa;AACb,YAAA,GAAG,OAAO;SACX,EACD,MAAM,CACP;IACH;;AAGA,IAAA,MAAM,uBAAuB,CAC3B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,KAAK;YAClB,MAAM;YACN,aAAa;SACd,EACD,MAAM,CACP;IACH;AAEA,IAAA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,QAAQ;YACnB,KAAK;YACL,WAAW;YACX,MAAM;YACN,aAAa;SACd,EACD,MAAM,CACP;IACH;AAEQ,IAAA,qBAAqB,CAAC,MAAyB,EAAE,MAAA,GAAuB,EAAE,EAAA;AAChF,QAAA,MAAM,SAAS,GAAQ;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;AAED,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAAE,YAAA,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9D,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;AAAE,YAAA,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;AAG1E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAEpE,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,SAAS;AACZ,gBAAA,GAAG,YAAY;AAChB,aAAA;SACF;IACH;AAEQ,IAAA,sBAAsB,CAAC,MAAkC,EAAE,MAAW,EAAE,MAAc,EAAA;QAC5F,MAAM,KAAK,GAAQ,EAAE;AAErB,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACnE,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACtE,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACtE,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC7D,QAAA,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;AAC5E,QAAA,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;AAClF,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC7D,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACnE,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AAC1D,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;QAGtE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;QAE7D,OAAO;YACL,MAAM;AACN,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,GAAG,YAAY;AAChB,aAAA;SACF;IACH;IAEQ,mBAAmB,CAAC,MAAc,EAAE,MAAW,EAAA;;;AAGrD,QAAA,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,MAAM,GACV,MAAM,KAAK;kBACP,MAAM,CAAC;kBACP,MAAM,KAAK;sBACT,MAAM,CAAC;sBACP,MAAM,KAAK;0BACT,MAAM,CAAC;0BACP,SAAS;YACnB,IAAI,MAAM,EAAE;gBACV,MAAM,GAAG,MAAM;YACjB;QACF;QAEA,QAAQ,MAAM;AACZ,YAAA,KAAK,WAAW;gBACd,OAAO;AACL,oBAAA,GAAG,MAAM;oBACT,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,MAAM,EAAE,cAAc,IAAI,IAAI;oBACtE,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,eAAe;oBAC3E,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,UAAU,IAAI,YAAY;iBACnE;AACH,YAAA,KAAK,cAAc;gBACjB,OAAO;AACL,oBAAA,GAAG,MAAM;oBACT,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,EAAE;oBAC9D,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,IAAI;iBACjE;AACH,YAAA,KAAK,aAAa;gBAChB,OAAO;AACL,oBAAA,GAAG,MAAM;oBACT,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,MAAM,EAAE,gBAAgB,IAAI,IAAI;iBAC7E;AACH,YAAA;AACE,gBAAA,OAAO,MAAM;;IAEnB;IAEA,MAAM,YAAY,CAAC,SAAiB,EAAA;AAClC,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAY,CAAA,SAAA,EAAY,SAAS,OAAO,EAAE;AAC3D,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;AACF,SAAA,CAAC;IACJ;AAEA;;AAEG;IACH,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;IACjC;AAEA;;;AAGG;AACH,IAAA,MAAM,cAAc,GAAA;QAalB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7C,YAAA,MAAM,IAAI,YAAY,CAAC,8BAA8B,CAAC;QACxD;;;QAKA,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE;gBACb,UAAU,EAAE,IAAI,CAAC,gBAAgB;gBACjC,UAAU,EAAE,IAAI,CAAC,SAAS;AAC1B,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBAC/D,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,KAAK;AAClB,aAAA;AACD,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,WAAW,EAAE,GAAG;SACjB;IACH;;AAGA,IAAA,MAAM,aAAa,GAAA;;AASjB,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,WAAW,EAAE;AACd,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC;IACJ;IAEA,MAAM,iBAAiB,CAAC,OAA2B,EAAA;AAQjD,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AACxB,YAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,YAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAChC;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,wBAAwB,EAAE;AAC3B,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;IAEA,MAAM,eAAe,CAAC,OAA2B,EAAA;AAQ/C,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AACxB,YAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,YAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAChC;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,sBAAsB,EAAE;AACzB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;IAEA,MAAM,kBAAkB,CAAC,OAA2B,EAAA;AAQlD,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AACxB,YAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,YAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAChC;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,yBAAyB,EAAE;AAC5B,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;IAEA,MAAM,iBAAiB,CAAC,OAA2B,EAAA;AAQjD,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AACxB,YAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,YAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;QACxC;AACA,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAChC;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,wBAAwB,EAAE;AAC3B,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,oBAAoB,GAAA;AAQxB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,sBAAsB,EAAE;AACzB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;AACF,SAAA,CAAC;IACJ;IAEA,MAAM,WAAW,CAAC,OAAa,EAAA;AAQ7B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AACpD,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;QACpC,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;oBACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC;AACF,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE;AACrC,QAAA,MAAM,GAAG,GAAG,WAAW,GAAG,CAAA,uBAAA,EAA0B,WAAW,CAAA,CAAE,GAAG,wBAAwB;AAE5F,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,GAAG,EAAE;AACN,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;AACF,SAAA,CAAC;IACJ;;IAGA,MAAM,mBAAmB,CACvB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAsB,EAAA;AAEtB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACnC,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B;;QAGD,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,SAAS;AAAE,gBAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;YAC3D,IAAI,OAAO,CAAC,aAAa;AAAE,gBAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;YACvE,IAAI,OAAO,CAAC,UAAU;AAAE,gBAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAC9D,IAAI,OAAO,CAAC,MAAM;AAAE,gBAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAClD,IAAI,OAAO,CAAC,MAAM;AAAE,gBAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAClD,IAAI,OAAO,CAAC,IAAI;AAAE,gBAAA,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;YAC5C,IAAI,OAAO,CAAC,UAAU;AAAE,gBAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAC9D,IAAI,OAAO,CAAC,aAAa;AAAE,gBAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;YACvE,IAAI,OAAO,CAAC,cAAc;AAAE,gBAAA,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;QAC5E;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAA6B,sBAAsB,EAAE;AACtF,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;;QAGF,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC2B;AAC3C,YAAA,MAAM,SAAS,GAA2B;AACxC,gBAAA,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAA,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC7B;;YAGD,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,SAAS;AAAE,oBAAA,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;gBAC9D,IAAI,OAAO,CAAC,aAAa;AAAE,oBAAA,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1E,IAAI,OAAO,CAAC,UAAU;AAAE,oBAAA,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;gBACjE,IAAI,OAAO,CAAC,MAAM;AAAE,oBAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gBACrD,IAAI,OAAO,CAAC,MAAM;AAAE,oBAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gBACrD,IAAI,OAAO,CAAC,IAAI;AAAE,oBAAA,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;gBAC/C,IAAI,OAAO,CAAC,UAAU;AAAE,oBAAA,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;gBACjE,IAAI,OAAO,CAAC,aAAa;AAAE,oBAAA,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1E,IAAI,OAAO,CAAC,cAAc;AAAE,oBAAA,SAAS,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;YAC/E;YAEA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAA6B,sBAAsB,EAAE;AACzF,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,OAAO,EAAE;oBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,iBAAA;AACD,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CAAC;YAEF,OAAO,IAAI,eAAe,CACxB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,UAAU,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;QAED,OAAO,IAAI,eAAe,CACxB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,UAAU,IAAI;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,qBAAqB,CACzB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAwB,EAAA;AAExB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACnC,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B;;QAGD,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,SAAS;AAAE,gBAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;YAC3D,IAAI,OAAO,CAAC,aAAa;AAAE,gBAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;YACvE,IAAI,OAAO,CAAC,YAAY;AAAE,gBAAA,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;YACpE,IAAI,OAAO,CAAC,MAAM;AAAE,gBAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAClD,IAAI,OAAO,CAAC,QAAQ;AAAE,gBAAA,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAC1D;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAA+B,wBAAwB,EAAE;AAC1F,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;;QAGF,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC6B;AAC7C,YAAA,MAAM,SAAS,GAA2B;AACxC,gBAAA,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAA,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC7B;;YAGD,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,SAAS;AAAE,oBAAA,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;gBAC9D,IAAI,OAAO,CAAC,aAAa;AAAE,oBAAA,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1E,IAAI,OAAO,CAAC,YAAY;AAAE,oBAAA,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;gBACvE,IAAI,OAAO,CAAC,MAAM;AAAE,oBAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gBACrD,IAAI,OAAO,CAAC,QAAQ;AAAE,oBAAA,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;YAC7D;YAEA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CACpC,wBAAwB,EACxB;AACE,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,OAAO,EAAE;oBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,iBAAA;AACD,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CACF;YAED,OAAO,IAAI,eAAe,CACxB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,UAAU,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;QAED,OAAO,IAAI,eAAe,CACxB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,UAAU,IAAI;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,sBAAsB,CAC1B,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAyB,EAAA;AAEzB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACnC,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B;;QAGD,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,SAAS;AAAE,gBAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;YAC3D,IAAI,OAAO,CAAC,UAAU;AAAE,gBAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAC9D,IAAI,OAAO,CAAC,MAAM;AAAE,gBAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAClD,IAAI,OAAO,CAAC,eAAe;AAAE,gBAAA,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;YAC7E,IAAI,OAAO,CAAC,IAAI;AAAE,gBAAA,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;QAC9C;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC,yBAAyB,EAAE;AAC5F,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;;QAGF,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC8B;AAC9C,YAAA,MAAM,SAAS,GAA2B;AACxC,gBAAA,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAA,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC7B;;YAGD,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,SAAS;AAAE,oBAAA,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;gBAC9D,IAAI,OAAO,CAAC,UAAU;AAAE,oBAAA,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;gBACjE,IAAI,OAAO,CAAC,MAAM;AAAE,oBAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gBACrD,IAAI,OAAO,CAAC,eAAe;AAAE,oBAAA,SAAS,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;gBAChF,IAAI,OAAO,CAAC,IAAI;AAAE,oBAAA,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;YACjD;YAEA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CACpC,yBAAyB,EACzB;AACE,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,OAAO,EAAE;oBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,iBAAA;AACD,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CACF;YAED,OAAO,IAAI,eAAe,CACxB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,UAAU,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;QAED,OAAO,IAAI,eAAe,CACxB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,UAAU,IAAI;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,qBAAqB,CACzB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAwB,EAAA;AAExB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACnC,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B;;QAGD,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,SAAS;AAAE,gBAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;YAC3D,IAAI,OAAO,CAAC,aAAa;AAAE,gBAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;YACvE,IAAI,OAAO,CAAC,UAAU;AAAE,gBAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;AAC9D,YAAA,IAAI,OAAO,CAAC,sBAAsB,KAAK,SAAS;gBAC9C,MAAM,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE;YAC3E,IAAI,OAAO,CAAC,qBAAqB;AAC/B,gBAAA,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB;YAC9D,IAAI,OAAO,CAAC,sBAAsB;AAChC,gBAAA,MAAM,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB;AAChE,YAAA,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;gBACrC,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC3D;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAA+B,wBAAwB,EAAE;AAC1F,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;;QAGF,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC6B;AAC7C,YAAA,MAAM,SAAS,GAA2B;AACxC,gBAAA,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAA,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC7B;;YAGD,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,SAAS;AAAE,oBAAA,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;gBAC9D,IAAI,OAAO,CAAC,aAAa;AAAE,oBAAA,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;gBAC1E,IAAI,OAAO,CAAC,UAAU;AAAE,oBAAA,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;AACjE,gBAAA,IAAI,OAAO,CAAC,sBAAsB,KAAK,SAAS;oBAC9C,SAAS,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE;gBAC9E,IAAI,OAAO,CAAC,qBAAqB;AAC/B,oBAAA,SAAS,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB;gBACjE,IAAI,OAAO,CAAC,sBAAsB;AAChC,oBAAA,SAAS,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB;AACnE,gBAAA,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;oBACrC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC9D;YAEA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CACpC,wBAAwB,EACxB;AACE,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,OAAO,EAAE;oBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,iBAAA;AACD,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CACF;YAED,OAAO,IAAI,eAAe,CACxB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,UAAU,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;QAED,OAAO,IAAI,eAAe,CACxB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,UAAU,IAAI;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;;AAGA,IAAA,MAAM,WAAW,CACf,cAAkC,EAClC,aAA6E,EAAA;AAE7E,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzF;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,KAAK;IACd;AAEA;;;;AAIG;IACH,MAAM,iBAAiB,CAAC,YAAoB,EAAA;AAC1C,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,CAA4B,CAAA,oBAAA,EAAuB,YAAY,EAAE,EAAE;AACpF,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;AACF,SAAA,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,MAAM,aAAa,CACjB,OAAe,EACf,MAAyB,EAAA;AASzB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,CAAA,qBAAA,EAAwB,OAAO,QAAQ,EAAE;AAC1C,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,MAAM,cAAc,CAClB,OAAe,EACf,MAA0B,EAAA;AAS1B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,CAAA,qBAAA,EAAwB,OAAO,SAAS,EAAE;AAC3C,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AAEA;;;;AAIG;IACH,MAAM,cAAc,CAClB,MAA0B,EAAA;AAS1B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE;AACrB,YAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;QACrC;AACA,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1C;AACA,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,cAAc,EAAE;AAC1B,YAAA,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;QAC/C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,6BAA6B,EAAE;AAChC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AAEA;;;;AAIG;IACH,MAAM,eAAe,CACnB,MAA2B,EAAA;AAS3B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE;AACrB,YAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;QACrC;AACA,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,UAAU,EAAE;AACtB,YAAA,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;QACvC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;QAC/B;AACA,QAAA,IAAI,MAAM,EAAE,WAAW,EAAE;AACvB,YAAA,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;QACzC;AACA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,8BAA8B,EAAE;AACjC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,MAAM,mBAAmB,CACvB,KAAa,EACb,MAA+B,EAAA;AAS/B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACpD,MAAM,MAAM,GAA2B,EAAE;AAEzC,QAAA,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,YAAA,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;QAC7C;AACA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC;AACA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAOhB,CAAA,6BAAA,EAAgC,KAAK,QAAQ,EAAE;AAChD,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,WAAW,CAAA,CAAE;AACvC,aAAA;YACD,MAAM;AACP,SAAA,CAAC;IACJ;AACD;;AC/8DD,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,EAAE,SAAS,EAAE;AACrE,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;MAEW,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,MAAM,GAAoC,IAAI,GAAG,EAAE;IAwD7D;IAtDS,EAAE,CAAC,KAAa,EAAE,QAAuB,EAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC;QACnC;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;IACvC;IAEO,GAAG,CAAC,KAAa,EAAE,QAAuB,EAAA;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C;IACF;IAEO,IAAI,CAAC,KAAa,EAAE,QAAuB,EAAA;AAChD,QAAA,MAAM,YAAY,GAAG,CAAC,GAAG,IAAW,KAAI;AACtC,YAAA,QAAQ,CAAC,GAAG,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;AAC/B,QAAA,CAAC;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;IAC9B;AAEO,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,QAAQ,IAAG;AACzC,gBAAA,IAAI;AACF,oBAAA,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACnB;gBAAE,OAAO,KAAK,EAAE;AACd,oBAAA,YAAY,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,EAAE;AACtD,wBAAA,MAAM,EAAE,cAAc;AACtB,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,GAAG,gBAAgB,CAAC;AAClB,4BAAA,UAAU,EAAE,KAAK;yBAClB,CAAC;AACH,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;QACJ;IACF;AAEO,IAAA,kBAAkB,CAAC,KAAc,EAAA;QACtC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACrB;IACF;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;IAC1C;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACjD;AACD;;AC/DD,MAAM,YAAY,GAAG,WAAW,CAAC,2BAA2B,EAAE,SAAS,EAAE;AACvE,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;MAEW,QAAQ,CAAA;AAgBnB,IAAA,WAAA,CAAY,SAAiB,EAAA;QAfrB,IAAA,CAAA,MAAM,GAA6B,IAAI;QACvC,IAAA,CAAA,SAAS,GAA0B,IAAI;QACvC,IAAA,CAAA,cAAc,GAA2C,IAAI;QAC7D,IAAA,CAAA,SAAS,GAAkB,IAAI;QAC/B,IAAA,CAAA,YAAY,GAAkB,IAAI;QAOlC,IAAA,CAAA,iBAAiB,GAAkB,IAAI;QAE9B,IAAA,CAAA,MAAM,GAAG,YAAY;QAGpC,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,gBAAgB,CAAC,YAAoB,EAAE,QAAkC,EAAA;QAC/E,OAAO;AACL,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAChD;IACH;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACnG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;SAS1B;QAEL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;;AAE9C,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;;SAWvB;;QAGL,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,0DAA0D,CAAC;QAC/F,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,YAAY,CACtB,OAAO,EACP,0FAA0F,CAC3F;;QAGD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,yBAAyB,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CACf,SAAS,EACT;;;;;;;;AAQG,QAAA;AACA,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG;aACnB,IAAI,EAAE,CACV;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAEnD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACjH;AAEA;;AAEG;IACK,UAAU,GAAA;QAChB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE;;YAEpD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;;YAGpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;YACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;YACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAClC,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,OAAO,CAAA,EAAA,CAAI;AAEhD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpF;IACF;AAEA;;AAEG;IACK,YAAY,GAAA;AAClB,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;;YAEvF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB;;YAGpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;YACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;AAC5B,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAEjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACxF;IACF;AAEO,IAAA,IAAI,CACT,GAAW,EACX,SAAiB,EACjB,UAKI,EAAE,EAAA;QAEN,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnC,IAAI,CAAC,eAAe,EAAE;QACxB;;AAGA,QAAA,IAAI;YACF,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;QACzC;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAC1B;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AACvC,QAAA,IAAI,CAAC,MAAO,CAAC,GAAG,GAAG,GAAG;;QAGtB,IAAI,CAAC,UAAU,EAAE;;QAGjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;IACzD;IAEO,IAAI,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QACvC;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE;QACtB;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;AAC1D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;QAGrB,IAAI,CAAC,YAAY,EAAE;IACrB;AAEQ,IAAA,aAAa,CAAC,KAAmB,EAAA;;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;AAC5D,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;gBACnG,eAAe,EAAE,KAAK,CAAC,MAAM;AAC7B,gBAAA,eAAe,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;AAChD,aAAA,CAAC,CAAC;YACH;QACF;AAEA,QAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI;AACrF,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;AAClF,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;AACxB,SAAA,CAAC,CAAC;QAEH,QAAQ,IAAI;YACV,KAAK,gBAAgB,EAAE;;gBAErB,MAAM,aAAa,GAAG,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;AACrD,gBAAA,MAAM,MAAM,GAAG;oBACb,YAAY,EAAE,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;oBACzD,aAAa,EAAE,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa;iBAC5D;AACD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC;gBAC/C;YACF;YAEA,KAAK,cAAc,EAAE;;gBAEnB,MAAM,YAAY,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACpD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBACpC;YACF;AAEA,YAAA,KAAK,cAAc;gBACjB,IAAI,CAAC,iBAAiB,EAAE;gBACxB;AAEF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC7B;AAEF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzB;;AAGF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC1B;AAEF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AAEF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,EAAE;gBAClB;AAEF,YAAA;AACE,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;AACzF,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAC;;IAET;IAEQ,mBAAmB,CAAC,MAAc,EAAE,MAA0D,EAAA;QACpG,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;YAC3G;QACF;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE;AAC/F,YAAA,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;YAChC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,MAAM,EAAE,aAAa,CAAC;AACxE,SAAA,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,YAAY,IAAI,MAAM,EAAE,aAAa,EAAE;AACjD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE;AACzF,gBAAA,eAAe,EAAE,IAAI;AACtB,aAAA,CAAC,CAAC;QACL;;QAGA,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC;IAC3C;AAEQ,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;AACpF,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,sBAAsB,CAAC,CAAC;IACrE;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI;QACzB,IAAI,CAAC,IAAI,EAAE;IACb;AAEQ,IAAA,kBAAkB,CAAC,IAAS,EAAA;QAClC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;AAC1F,gBAAA,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B,aAAA,CAAC,CAAC;YACH;QACF;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;YACtF,UAAU,EAAE,IAAI,CAAC,IAAI;AACrB,YAAA,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,SAAA,CAAC,CAAC;;;AAIH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;QAC5C;IACF;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;QAClC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACvG;QACF;;QAGA,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;IACnC;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;AACtF,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;IAC9D;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI;QACzB,IAAI,CAAC,IAAI,EAAE;IACb;AAEQ,IAAA,YAAY,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACjF,MAAM;AACP,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;QAC1C;IACF;AACD;;AC9RD;;AAEG;MACU,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,SAAqB,EAAE,EAAA;AAH3B,QAAA,IAAA,CAAA,WAAW,GAAqB,IAAI,GAAG,EAAE;AACzC,QAAA,IAAA,CAAA,UAAU,GAA2B,IAAI,GAAG,EAAE;QAGpD,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC;AACnD,YAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;AACtC,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;SACpC;IACH;AAEA;;AAEG;IACK,cAAc,CAAC,GAAW,EAAE,GAAW,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;IAC1D;AAEA;;AAEG;AACH,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC;AAC/D,QAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1D;AAEA;;AAEG;IACK,iBAAiB,GAAA;QACvB,OAAO,CAAA,QAAA,EAAWA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,CAAE;IAChD;AAEA;;AAEG;IACK,cAAc,GAAA;AACpB,QAAA,OAAO,QAAQA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7D;AAEA;;AAEG;IACK,iBAAiB,GAAA;AACvB,QAAA,OAAO,WAAWA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChE;AAEA;;AAEG;AACK,IAAA,cAAc,CAAC,MAAc,EAAA;AACnC,QAAoB,CAAA,YAAA,EAAeA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7D,QAAqB,CAAA,aAAA,EAAgBA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAE/D,OAAO;AACL,YAAA,OAAO,EAAE,MAAM;;SAEhB;IACH;;AAIA,IAAA,MAAM,gBAAgB,CAAC,KAAa,EAAE,MAAe,EAAA;AACnD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC1C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAC1C,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAEpD,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,YAAY,CAAC,MAAM;AAC1B,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAC/D,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,UAAU,EAAE,KAAK;SAClB;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;QAE5C,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,OAAO,EAAE,8BAA8B;SACxC;IACH;AAEA,IAAA,MAAM,cAAc,CAAC,SAAiB,EAAE,KAAa,EAAA;AACnD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;QAE1B,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,IAAI,EAAE,IAAI;SACX;IACH;AAEA,IAAA,MAAM,aAAa,CAAC,SAAiB,EAAE,GAAW,EAAA;AAChD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;QAEnC,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,IAAI,EAAE;gBACJ,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,EAAE;AACjB,gBAAA,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,CAAC;AACb,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA;SACF;IACH;AAEA,IAAA,MAAM,wBAAwB,CAC5B,SAAiB,EACjB,MAAc,EAAA;AAEd,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;QAEnC,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,IAAI,EAAE;gBACJ,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,EAAE;AAClB,aAAA;SACF;IACH;IAEA,MAAM,gBAAgB,CAAC,SAAiB,EAAA;AACtC,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;YACxB,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,4CAA4C;AACrD,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;aACzB;QACH;AACA,QAAA,IAAI,QAAQ,KAAK,eAAe,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;QACzC;AACA,QAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;YAC7B,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;aACzB;QACH;AACA,QAAA,IAAI,QAAQ,KAAK,cAAc,EAAE;YAC/B,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;aACzB;QACH;;QAEA,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,mCAAmC;AAC5C,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE,mCAAmC;AAChD,aAAA;SACF;IACH;AAEA,IAAA,MAAM,yBAAyB,CAC7B,SAAiB,EACjB,SAAiB,EAAA;AAEjB,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;QAE1B,OAAO;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,WAAW,EAAE,YAAY;SAC1B;IACH;IAEA,MAAM,yBAAyB,CAAC,SAAiB,EAAA;AAC/C,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;QAE1B,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,uCAAuC;AAChD,YAAA,IAAI,EAAE;gBACJ,UAAU,EAAE,CAAA,oCAAA,EAAuC,SAAS,CAAA,CAAE;AAC/D,aAAA;SACF;IACH;IAEA,MAAM,gBAAgB,CAAC,YAAoB,EAAA;AACzC,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,cAAc,GAAG,CAAA,YAAA,EAAeA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;AAClE,QAAA,MAAM,eAAe,GAAG,CAAA,aAAA,EAAgBA,OAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAEpE,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE;AACb,gBAAA,YAAY,EAAE,cAAc;AAC5B,gBAAA,aAAa,EAAE,eAAe;AAC9B,gBAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAC5D,gBAAA,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACpC,gBAAA,YAAY,EAAE,cAAc;AAC5B,gBAAA,cAAc,EAAE,IAAI;AACrB,aAAA;AACD,YAAA,OAAO,EAAE,8BAA8B;SACxC;IACH;;AAIA,IAAA,MAAM,iBAAiB,GAAA;AAQrB,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,OAAO,GAAiB;AAC5B,YAAA;AACE,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,WAAW,EAAE,0CAA0C;AACvD,gBAAA,OAAO,EAAE,wBAAwB;gBACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,aAAa,CAAC;AAClE,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,WAAW,EAAE,2CAA2C;AACxD,gBAAA,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC;AAC9D,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,WAAW,EAAE,sCAAsC;AACnD,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1C,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,SAAS,EAAE,uBAAuB;AAClC,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,cAAc;AAClB,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,WAAW,EAAE,6CAA6C;AAC1D,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;AACzC,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,SAAS,EAAE,wBAAwB;AACnC,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;SACF;QAED,OAAO;YACL,GAAG,EAAEA,OAAM,EAAE;AACb,YAAA,aAAa,EAAE,OAAO;AACtB,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,IAAI;SACb;IACH;AAEA,IAAA,MAAM,qBAAqB,GAAA;AAQzB,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,QAAQ,GAAoB;AAChC,YAAA;gBACE,EAAE,EAAEA,OAAM,EAAE;gBACZ,yBAAyB,EAAEA,OAAM,EAAE;AACnC,gBAAA,0BAA0B,EAAE,WAAW;AACvC,gBAAA,YAAY,EAAE,oBAAoB;AAClC,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC7C,gBAAA,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC1C,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5C,kBAAkB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAClF,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5C,sBAAsB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACvF,aAAA;AACD,YAAA;gBACE,EAAE,EAAEA,OAAM,EAAE;gBACZ,yBAAyB,EAAEA,OAAM,EAAE;AACnC,gBAAA,0BAA0B,EAAE,WAAW;AACvC,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC7C,gBAAA,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC1C,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5C,kBAAkB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAClF,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5C,sBAAsB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACvF,aAAA;SACF;QAED,OAAO;YACL,GAAG,EAAEA,OAAM,EAAE;AACb,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,OAAO,EAAE,wCAAwC;AACjD,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,IAAI;SACb;IACH;AAEA,IAAA,MAAM,wBAAwB,GAAA;AAQ5B,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,WAAW,GAAuB;AACtC,YAAA;gBACE,EAAE,EAAEA,OAAM,EAAE;AACZ,gBAAA,SAAS,EAAE,WAAW;AACtB,gBAAA,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE;AAC9B,gBAAA,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACpC,gBAAA,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAC1E,gBAAA,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;AACD,gBAAA,YAAY,EAAE,KAAK;AACpB,aAAA;AACD,YAAA;gBACE,EAAE,EAAEA,OAAM,EAAE;AACZ,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE;AAC9B,gBAAA,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACpC,gBAAA,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAC1E,gBAAA,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,KAAK;AACb,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA;AACD,gBAAA,YAAY,EAAE,KAAK;AACpB,aAAA;SACF;QAED,OAAO;YACL,GAAG,EAAEA,OAAM,EAAE;AACb,YAAA,aAAa,EAAE,WAAW;AAC1B,YAAA,OAAO,EAAE,2CAA2C;AACpD,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,IAAI;SACb;IACH;;IAMA,MAAM,aAAa,CAAC,MAAqB,EAAA;AACvC,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;AAE1B,QAAA,MAAM,UAAU,GAAY;AAC1B,YAAA;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA;SACF;;QAGD,IAAI,cAAc,GAAG,UAAU;QAC/B,IAAI,MAAM,EAAE;YACV,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC;QAC7D;AAEA,QAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;IACjC;IAEA,MAAM,mBAAmB,CAAC,MAAqB,EAAA;AAC7C,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;;AAG1B,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;;QAGpC,MAAM,UAAU,GAAsB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;;QAGpE,IAAI,cAAc,GAAG,UAAU;QAC/B,IAAI,MAAM,EAAE;YACV,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC;QACnE;QAEA,OAAO;AACL,YAAA,IAAI,EAAE,cAAc;SACrB;IACH;IAEA,MAAM,sBAAsB,CAAC,MAAwB,EAAA;AACnD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;;AAG1B,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;;QAGpC,MAAM,aAAa,GAAyB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;;QAG7E,IAAI,iBAAiB,GAAG,aAAa;QACrC,IAAI,MAAM,EAAE;YACV,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5E;QAEA,OAAO;AACL,YAAA,IAAI,EAAE,iBAAiB;SACxB;IACH;IAEA,MAAM,qBAAqB,CAAC,MAAuB,EAAA;AACjD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;;AAG1B,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAoB,EAAE;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACjC,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AACtD,YAAA,MAAM,mBAAmB,GAAG,cAAc,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AACzE,YAAA,MAAM,aAAa,GAAG,mBAAmB,GAAG,GAAG,CAAC;AAChD,YAAA,MAAM,iBAAiB,GAAG,aAAa,GAAG,GAAG,CAAC;AAC9C,YAAA,MAAM,mBAAmB,GAAG,cAAc,GAAG,GAAG,CAAC;AACjD,YAAA,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC;AAEvD,YAAA,MAAM,OAAO,GAAkB;AAC7B,gBAAA,EAAE,EAAE,CAAA,QAAA,EAAW,CAAC,GAAG,CAAC,CAAA,CAAE;AACtB,gBAAA,UAAU,EAAE,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA,CAAE;AAC1D,gBAAA,gBAAgB,EAAE,cAAc;AAChC,gBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,kBAAkB,EAAE,iBAAiB;AACrC,gBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,gBAAA,kBAAkB,EAAE,gBAAgB;gBACpC,kBAAkB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAChG,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5C,sBAAsB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;AAC3C,gBAAA,WAAW,EAAE;AACX,oBAAA,oBAAoB,EAAE;wBACpB,YAAY,EAAE,mBAAmB,GAAG,aAAa;wBACjD,wBAAwB,EAAE,mBAAmB,GAAG,CAAC;wBACjD,sBAAsB,EAAE,mBAAmB,GAAG,CAAC;AAChD,qBAAA;AACF,iBAAA;gBACD,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACzF,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;AAED,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B;;QAGA,IAAI,gBAAgB,GAAG,YAAY;QACnC,IAAI,MAAM,EAAE;YACV,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC;QACzE;QAEA,OAAO;AACL,YAAA,IAAI,EAAE,gBAAgB;SACvB;IACH;IAEA,MAAM,yBAAyB,CAAC,MAAuB,EAAA;AACrD,QAAA,MAAM,IAAI,CAAC,aAAa,EAAE;;AAG1B,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;;QAGpC,MAAM,YAAY,GAAoB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;;QAGtE,IAAI,gBAAgB,GAAG,YAAY;QACnC,IAAI,MAAM,EAAE;YACV,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC;QACzE;QAEA,OAAO;AACL,YAAA,IAAI,EAAE,gBAAgB;SACvB;IACH;IAEA,MAAM,cAAc,CAAC,KAAwB,EAAA;;AAE3C,QAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;QAGtD,MAAM,OAAO,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;QAErF,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;AAC/B,aAAA;AACD,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,WAAW,EAAE,GAAG;SACjB;IACH;;AAIA;;AAEG;AACH,IAAA,cAAc,CAAC,SAAiB,EAAA;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;IACxC;AAEA;;AAEG;AACH,IAAA,YAAY,CAAC,SAAiB,EAAA;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;IACvC;AAEA;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACzB;AAEA;;AAEG;AACH,IAAA,YAAY,CAAC,MAA2B,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE;IAC7C;AAEA,IAAA,WAAW,CAAC,QAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ;IACjC;IACA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS;IAC1C;;IAGQ,iBAAiB,CAAC,MAAe,EAAE,MAAoB,EAAA;AAC7D,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAG;YAC3B,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;YACjE,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;AAAE,gBAAA,OAAO,KAAK;AAC3D,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;IAEQ,uBAAuB,CAC7B,MAAyB,EACzB,MAAoB,EAAA;AAEpB,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAG;YAC3B,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;AAAE,gBAAA,OAAO,KAAK;YAC1E,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK;YACtF,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;YAC7E,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;YACjE,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;YACjE,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;AAAE,gBAAA,OAAO,KAAK;YAC3D,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;AAC7E,YAAA,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACrF,gBAAA,OAAO,KAAK;AACd,YAAA,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AACvF,gBAAA,OAAO,KAAK;AACd,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;IAEQ,0BAA0B,CAChC,SAA+B,EAC/B,MAAuB,EAAA;AAEvB,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAG;YACjC,IAAI,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;AAAE,gBAAA,OAAO,KAAK;YAC7E,IAAI,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK;YACzF,IAAI,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;YAChF,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;YACpE,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;AAAE,gBAAA,OAAO,KAAK;YAC9D,IAAI,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;YAChF,IAAI,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe;AAC/E,gBAAA,OAAO,KAAK;AACd,YAAA,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACxF,gBAAA,OAAO,KAAK;AACd,YAAA,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AAC1F,gBAAA,OAAO,KAAK;AACd,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;IAEQ,yBAAyB,CAC/B,QAAyB,EACzB,MAAsB,EAAA;AAEtB,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAG;YAC/B,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,yBAAyB,KAAK,MAAM,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK;YAChG,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,yBAAyB,KAAK,MAAM,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK;YACpG,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;AAAE,gBAAA,OAAO,KAAK;YACrF,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;YACnE,IAAI,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;AAAE,gBAAA,OAAO,KAAK;AACzE,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;IAEQ,yBAAyB,CAC/B,QAAyB,EACzB,MAAsB,EAAA;AAEtB,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAG;YAC/B,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;AAC/E,YAAA,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,IAAI,OAAO,CAAC,sBAAsB,KAAK,MAAM,CAAC,sBAAsB;AAAE,gBAAA,OAAO,KAAK;YACjI,IAAI,MAAM,CAAC,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAAE,gBAAA,OAAO,KAAK;YAC7J,IAAI,MAAM,CAAC,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;AAAE,gBAAA,OAAO,KAAK;AAC/J,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACK,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACtC,MAAM,MAAM,GAAsB,EAAE;AACpC,QAAA,MAAM,OAAO,GAAG;YACd,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;SACN;QACD,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC;QACtE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAU;AACrE,QAAA,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU;AACtC,QAAA,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,CAAU;QAC5F,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;AAEnE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpE,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,kBAAkB;YACrE,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YACxF,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;YAE1E,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAEA,OAAM,EAAE;AACZ,gBAAA,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAEA,OAAM,EAAE;AACvB,gBAAA,UAAU,EAAE,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA,CAAE;AAC5D,gBAAA,QAAQ,EAAE,CAAA,MAAA,EAAS,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE;gBACnD,MAAM;AACN,gBAAA,UAAU,EAAE,SAAS;gBACrB,IAAI;gBACJ,QAAQ;gBACR,KAAK;gBACL,MAAM;AACN,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACzF,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,SAAS,EAAE,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,SAAS;AAC1D,gBAAA,eAAe,EAAE,cAAc;AAC/B,gBAAA,gBAAgB,EAAE,cAAc;AACjC,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,MAAM;IACf;AAEA;;AAEG;AACK,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACzC,MAAM,SAAS,GAAyB,EAAE;AAC1C,QAAA,MAAM,OAAO,GAAG;YACd,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;SACN;QACD,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC;AACtE,QAAA,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU;QACxC,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;AACnE,QAAA,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU;AAEpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,YAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC5F,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE;AAC7C,YAAA,MAAM,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AAChE,YAAA,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY;AAC3C,YAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY;AACzC,YAAA,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS;YAClD,MAAM,yBAAyB,GAAG,CAAC,kBAAkB,GAAG,SAAS,IAAI,GAAG;YAExE,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAEA,OAAM,EAAE;AACZ,gBAAA,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAEA,OAAM,EAAE;AACvB,gBAAA,UAAU,EAAE,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA,CAAE;gBAC5D,MAAM;AACN,gBAAA,UAAU,EAAE,SAAS;gBACrB,IAAI;gBACJ,QAAQ;AACR,gBAAA,aAAa,EAAE,YAAY;AAC3B,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,oBAAoB,EAAE,kBAAkB;AACxC,gBAAA,4BAA4B,EAAE,yBAAyB;AACvD,gBAAA,aAAa,EAAE,YAAY;AAC3B,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,qBAAqB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,gBAAA,eAAe,EAAE,cAAc;AAC/B,gBAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACzF,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACrC,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,SAAS;IAClB;AAEA;;AAEG;AACK,IAAA,oBAAoB,CAAC,KAAa,EAAA;QACxC,MAAM,QAAQ,GAAoB,EAAE;AAEpC,QAAA,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,CAAU;AAChF,QAAA,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU;QAChD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC/C,QAAA,MAAM,YAAY,GAAG;YACnB,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,oBAAoB;SACrB;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAE9B,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACjF,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpE,YAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC1E,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAEjF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;AACjD,YAAA,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YAE1D,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAEA,OAAM,EAAE;gBACZ,yBAAyB,EAAEA,OAAM,EAAE;AACnC,gBAAA,0BAA0B,EAAE,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA,CAAE;AAC5E,gBAAA,YAAY,EAAE,CAAA,EAAG,WAAW,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE;AACvC,gBAAA,YAAY,EAAE,WAAW;gBACzB,QAAQ;AACR,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;gBACzB,MAAM;AACN,gBAAA,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAC1F,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC7C,gBAAA,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC1C,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC5C,gBAAA,kBAAkB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AAClG,gBAAA,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC5C,gBAAA,sBAAsB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;AACvG,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;AAIG;IACH,MAAM,qBAAqB,CAAC,YAAoB,EAAA;;AAE9C,QAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;QAGtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;QAEhD,IAAI,oBAAoB,EAAE;YACxB,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,aAAa,EAAE;AACb,oBAAA,aAAa,EAAE,YAAY;AAC3B,oBAAA,MAAM,EAAE,oBAAoB;AAC5B,oBAAA,OAAO,EAAE,wEAAwE;AAClF,iBAAA;AACD,gBAAA,OAAO,EAAE,wEAAwE;AACjF,gBAAA,WAAW,EAAE,GAAG;aACjB;QACH;aAAO;YACL,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,aAAa,EAAE;AACb,oBAAA,aAAa,EAAE,YAAY;AAC3B,oBAAA,MAAM,EAAE,wBAAwB;AAChC,oBAAA,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AACtD,oBAAA,OAAO,EAAE,wCAAwC;AAClD,iBAAA;AACD,gBAAA,OAAO,EAAE,wCAAwC;AACjD,gBAAA,WAAW,EAAE,GAAG;aACjB;QACH;IACF;AACD;;ACt6BD,MAAM,aAAa,GAAG,WAAW,CAAC,gCAAgC,EAAE,SAAS,EAAE;AAC7E,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;AAEF;;;AAGG;MACU,aAAa,CAAA;IAqBhB,gBAAgB,CAAC,YAAoB,EAAE,QAAkC,EAAA;QAC/E,OAAO;AACL,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAChD;IACH;AAEA,IAAA,WAAA,CAAY,OAAe,EAAE,UAAuB,EAAE,UAAuB,EAAA;QA1BnE,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACxC,IAAA,CAAA,cAAc,GAAmB,EAAE;;QAGnC,IAAA,CAAA,SAAS,GAAqB,IAAI;QAClC,IAAA,CAAA,cAAc,GAA8B,IAAI;QACvC,IAAA,CAAA,sBAAsB,GAAG,CAAC;;QAGnC,IAAA,CAAA,SAAS,GAAkB,IAAI;QAC/B,IAAA,CAAA,SAAS,GAAkB,IAAI;QAKtB,IAAA,CAAA,MAAM,GAAG,aAAa;AAWrC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;QAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,KAAK;QACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC;;AAGxD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;AACrG,gBAAA,aAAa,EAAE,IAAI;AACpB,aAAA,CAAC,CAAC;QACL;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;AAC7E,gBAAA,aAAa,EAAE,KAAK;AACrB,aAAA,CAAC,CAAC;QACL;IACF;AAEA;;AAEG;AACH,IAAA,SAAS,CAAC,WAAmB,EAAE,YAAoB,EAAE,SAAiB,EAAE,MAAe,EAAA;QACrF,IAAI,CAAC,SAAS,GAAG;YACf,WAAW;YACX,YAAY;YACZ,SAAS;YACT,MAAM;SACP;IACH;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,IAAI,mBAAmB,CAAC,iDAAiD,CAAC;QAClF;;AAGA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,YAAA,MAAM,IAAI,CAAC,aAAa,EAAE;QAC5B;AAEA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW;IACnC;AAEA;;AAEG;IACK,cAAc,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI;AAEhC,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;AAC/D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,GAAG,EAAE,GAAG,IAAI;AAE1D,QAAA,OAAO,WAAW,IAAI,UAAU,GAAG,UAAU;IAC/C;AAEA;;AAEG;AACK,IAAA,MAAM,aAAa,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC;QAC9D;;AAGA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc;YACzB;QACF;;AAGA,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAEhD,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,cAAc;QAC3B;gBAAU;AACR,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;IACF;AAEA;;AAEG;AACK,IAAA,MAAM,mBAAmB,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC;QAC9D;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;YAG1F,IAAI,CAAC,SAAS,GAAG;AACf,gBAAA,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY;AAChD,gBAAA,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,aAAa;AAClD,gBAAA,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,UAAU;AAC5C,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;aAC9B;YAED,OAAO,IAAI,CAAC,SAAS;QACvB;QAAE,OAAO,KAAK,EAAE;;AAEd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,MAAM,IAAI,mBAAmB,CAC3B,+CAA+C,EAC/C,KAA4B,CAC7B;QACH;IACF;AAEA;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC5B;AAEA;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI;IACtD;AAEA;;AAEG;AACH,IAAA,iBAAiB,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAkB,EAAA;AACxE,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI;IACpC;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;AAEG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;;AAGA,IAAA,MAAM,YAAY,CAAC,KAAa,EAAE,MAAe,EAAA;AAC/C,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC;;QAG5E,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU;AAChD,QAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,MAAM;AAE9C,QAAA,OAAO,QAAQ;IACjB;;AAGA,IAAA,MAAM,UAAU,CAAC,SAAiB,EAAE,KAAa,EAAA;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC;IAC/D;AAEA,IAAA,MAAM,SAAS,CAAC,SAAiB,EAAE,GAAW,EAAA;AAC5C,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC;;QAG1E,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACtF,IAAI,CAAC,SAAS,CACZ,QAAQ,CAAC,IAAI,CAAC,YAAY,EAC1B,QAAQ,CAAC,IAAI,CAAC,aAAa,EAC3B,SAAS,EACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CACtB;QACH;AAEA,QAAA,OAAO,QAAQ;IACjB;;AAGA,IAAA,MAAM,oBAAoB,CACxB,SAAiB,EACjB,MAAc,EAAA;;QAGd,IAAI,IAAI,CAAC,mBAAmB,KAAK,YAAY,CAAC,MAAM,EAAE;AACpD,YAAA,MAAM,IAAI,YAAY,CAAC,iDAAiD,CAAC;QAC3E;AAEA,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC;;QAGxF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;;YAErC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACtE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC;QAC5F;AAEA,QAAA,OAAO,QAAQ;IACjB;;IAGA,MAAM,YAAY,CAAC,SAAiB,EAAA;QAClC,IAAI,IAAI,CAAC,mBAAmB,KAAK,YAAY,CAAC,MAAM,EAAE;AACpD,YAAA,MAAM,IAAI,YAAY,CAAC,mDAAmD,CAAC;QAC7E;;AAGA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,OAAO,EAAE,mCAAmC;AAC5C,gBAAA,IAAI,EAAE;AACJ,oBAAA,UAAU,EAAE,iCAAiC;AAC9C,iBAAA;aACF;QACH;QAEA,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC;IAC1D;AAEA,IAAA,MAAM,qBAAqB,CACzB,SAAiB,EACjB,SAAiB,EAAA;QAEjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9E;IAEA,MAAM,qBAAqB,CAAC,SAAiB,EAAA;QAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,SAAS,CAAC;IACnE;;IAIA,MAAM,SAAS,CAAC,MAAqB,EAAA;AACnC,QAAoB,MAAM,IAAI,CAAC,mBAAmB;QAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC;IACpD;IAEA,MAAM,UAAU,CAAC,KAAwB,EAAA;AACvC,QAAoB,MAAM,IAAI,CAAC,mBAAmB;QAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACnD;;IAGA,MAAM,gBAAgB,CACpB,MAMC,EACD,MAAA,GAAuB,EAAE,EACzB,aAAsB,EAAA;AAEtB,QAAoB,MAAM,IAAI,CAAC,mBAAmB;;AAGlD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;AACzF,YAAA,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YACzC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACvD,YAAA,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;YACjD,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAChE,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,UAAU,GAAsB;YACpC,MAAM,EACH,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;AAI7C,gBAAA,CAAC,MAAK;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AAC/E,gBAAA,CAAC,GAAG;YACN,aAAa,EACX,MAAM,CAAC,aAAa;gBACpB,IAAI,CAAC,cAAc,CAAC,aAAa;AACjC,gBAAA,CAAC,MAAK;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC;AACxF,gBAAA,CAAC,GAAG;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;YACxC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;YACpG,MAAM,EAAE,UAAU,CAAC,MAAM;AACzB,YAAA,sBAAsB,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;YACzD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU,EAAE,UAAU,CAAC,SAAS;YAChC,UAAU,EAAE,UAAU,CAAC,SAAS;AACjC,SAAA,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC;IACzD;IAEA,MAAM,iBAAiB,CACrB,OAAe,EACf,MAAqD,EACrD,MAAA,GAAc,EAAE,EAChB,aAAsB,EAAA;;QAGtB,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;AAC7C,aAAA;AACD,YAAA,OAAO,EAAE,8BAA8B;AACvC,YAAA,WAAW,EAAE,GAAG;SACjB;IACH;AAEA,IAAA,MAAM,iBAAiB,CACrB,OAAe,EACf,MAAkC,EAClC,MAAqD,EACrD,MAAA,GAAc,EAAE,EAChB,aAAsB,EAAA;;QAGtB,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;AAC5C,gBAAA,GAAG,MAAM;AACV,aAAA;AACD,YAAA,OAAO,EAAE,6BAA6B;AACtC,YAAA,WAAW,EAAE,GAAG;SACjB;IACH;;AAGA,IAAA,SAAS,CAAC,MAAoD,EAAA;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM;;AAEnC,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,SAAS;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS;IAC3C;IAEA,UAAU,CAAC,aAAqB,EAAE,SAAkB,EAAA;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAC1E,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC;YACtC,oBAAoB,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AACjE,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,aAAa;AACjD,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAClF,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YAClC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAClE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAC3D,SAAA,CAAC,CAAC;IACL;;AAIA,IAAA,MAAM,qBAAqB,CACzB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,KAAK;SACnB,EACD,MAAM,CACP;IACH;AAEA,IAAA,MAAM,oBAAoB,CACxB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,KAAK;SACN,EACD,MAAM,CACP;IACH;AAEA,IAAA,MAAM,mBAAmB,CACvB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,SAAiB,EACjB,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,SAAS;SACV,EACD,MAAM,CACP;IACH;;AAGA,IAAA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,OAAA,GAA8B,EAAE,EAChC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;AAEzB,QAAA,MAAM,WAAW,GAMb;YACF,MAAM;YACN,aAAa;YACb,MAAM;AACN,YAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;YACtC,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACjB,YAAA,SAAS,EAAE,QAAQ;YACrB,WAAW,EAAE,KAAK;SACnB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACnD;IAEA,MAAM,qBAAqB,CACzB,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,cAA6B,KAAK,EAClC,UAA8B,EAAE,EAChC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EAAA;AAEzB,QAAA,MAAM,WAAW,GAMb;YACF,MAAM;YACN,aAAa;YACb,MAAM;AACN,YAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;YACtC,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAChB,YAAA,SAAS,EAAE,QAAQ;YACrB,WAAW;YACX,KAAK;SACN;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACnD;;AAGA,IAAA,MAAM,uBAAuB,CAC3B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,OAA4B,EAC5B,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;AAEzB,QAAA,MAAM,WAAW,GAMb;YACF,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACjB,YAAA,SAAS,EAAE,eAAe;AAC5B,YAAA,WAAW,EAAE,KAAK;SACnB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACnD;IAEA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,OAA4B,EAC5B,cAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,MAAA,GAAuB,EAAE,EAAA;AAEzB,QAAA,MAAM,WAAW,GAMb;YACF,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAChB,YAAA,SAAS,EAAE,eAAe;YAC5B,WAAW;YACX,KAAK;SACN;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACnD;;AAGA,IAAA,MAAM,uBAAuB,CAC3B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,KAAK;SACnB,EACD,MAAM,CACP;IACH;AAEA,IAAA,MAAM,sBAAsB,CAC1B,MAAc,EACd,QAAgB,EAChB,MAAsB,EACtB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EACtB,SAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,MAAM;YACN,aAAa;YACb,MAAM;YACN,QAAQ;YACR,MAAM;AACN,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,KAAK;SACN,EACD,MAAM,CACP;IACH;IAEA,MAAM,YAAY,CAAC,SAAiB,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC;QACvD;AACA,QAAA,OAAO,KAAK;IACd;IAEA,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;IACjC;;AAGA,IAAA,MAAM,aAAa,GAAA;;AASjB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;IAClD;IAEA,MAAM,iBAAiB,CAAC,OAA2B,EAAA;AAQjD,QAAoB,MAAM,IAAI,CAAC,mBAAmB;AAClD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE;IACtD;IAEA,MAAM,eAAe,CAAC,OAA2B,EAAA;AAQ/C,QAAoB,MAAM,IAAI,CAAC,mBAAmB;;QAElD,OAAO;YACL,GAAG,EAAEA,OAAM,EAAE;AACb,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,IAAI;SACb;IACH;IAEA,MAAM,kBAAkB,CAAC,OAA2B,EAAA;AAQlD,QAAoB,MAAM,IAAI,CAAC,mBAAmB;;QAElD,OAAO;YACL,GAAG,EAAEA,OAAM,EAAE;AACb,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,OAAO,EAAE,yCAAyC;AAClD,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,IAAI;SACb;IACH;;IAGA,MAAM,yBAAyB,CAAC,MAAqB,EAAA;QACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,CAAC;IAC1D;IAEA,MAAM,4BAA4B,CAChC,MAAwB,EAAA;QAExB,OAAO,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,MAAM,CAAC;IAC7D;IAEA,MAAM,2BAA2B,CAAC,MAAuB,EAAA;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAC5D;IAEA,MAAM,+BAA+B,CACnC,MAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,MAAM,CAAC;IAChE;;IAGA,MAAM,mBAAmB,CACvB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAsB,EAAA;QAEtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC3E,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI;;QAG9B,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACvC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;QACrC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAE1D,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM;QACxC,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU;;QAGlD,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC+B;YAC/C,MAAM,aAAa,GAAG,SAAS;AAC/B,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ;YAC5C,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC;AACnE,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM;YAC9C,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa;AAE9D,YAAA,OAAO,IAAI,eAAe,CACxB,kBAAkB,EAClB;AACE,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;AAED,QAAA,OAAO,IAAI,eAAe,CACxB,eAAe,EACf;AACE,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,qBAAqB,CACzB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAwB,EAAA;QAExB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,CAAC;AACnF,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI;;QAGlC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACvC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;QACrC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAE9D,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM;QAC1C,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU;;QAGlD,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC6B;YAC7C,MAAM,aAAa,GAAG,SAAS;AAC/B,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ;YAC5C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC;AACvE,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM;YAChD,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa;AAE9D,YAAA,OAAO,IAAI,eAAe,CACxB,oBAAoB,EACpB;AACE,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;AAED,QAAA,OAAO,IAAI,eAAe,CACxB,iBAAiB,EACjB;AACE,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,sBAAsB,CAC1B,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAyB,EAAA;QAEzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC;AACjF,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI;;QAGpC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACvC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;QACrC,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAEhE,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,MAAM;QAC3C,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU;;QAGlD,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KACkC;YAClD,MAAM,aAAa,GAAG,SAAS;AAC/B,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ;YAC5C,MAAM,qBAAqB,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC;AACzE,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM;YACjD,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa;AAE9D,YAAA,OAAO,IAAI,eAAe,CACxB,qBAAqB,EACrB;AACE,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;AAED,QAAA,OAAO,IAAI,eAAe,CACxB,kBAAkB,EAClB;AACE,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;IAEA,MAAM,qBAAqB,CACzB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAAwB,EAAA;QAExB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAC/E,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI;;QAGlC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AACvC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;QACrC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAE9D,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM;QAC1C,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU;;QAGlD,MAAM,kBAAkB,GAAG,OACzB,SAAiB,EACjB,QAAgB,KAC6B;YAC7C,MAAM,aAAa,GAAG,SAAS;AAC/B,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ;YAC5C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC;AACvE,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM;YAChD,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa;AAE9D,YAAA,OAAO,IAAI,eAAe,CACxB,oBAAoB,EACpB;AACE,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,KAAK,EAAE,QAAQ;aAChB,EACD,kBAAkB,CACnB;AACH,QAAA,CAAC;AAED,QAAA,OAAO,IAAI,eAAe,CACxB,iBAAiB,EACjB;AACE,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,KAAK,EAAE,OAAO;SACf,EACD,kBAAkB,CACnB;IACH;AAEA,IAAA,MAAM,oBAAoB,GAAA;AAQxB,QAAoB,MAAM,IAAI,CAAC,mBAAmB;AAClD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE;IACzD;AAEA;;;;AAIG;IACH,MAAM,iBAAiB,CAAC,YAAoB,EAAA;AAC1C,QAAoB,MAAM,IAAI,CAAC,mBAAmB;QAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,YAAY,CAAC;IAClE;;IAGA,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;IACnC;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,IAAI;IACb;AACD;;ACjiCD;;AAEG;AAEH;AACA;AAEA;;;AAGG;SACa,cAAc,GAAA;;IAE5B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE,GAAG,EAAE;AAClD,QAAA,QACE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;AACxC,YAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,MAAM;IAExD;;AAGA,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;AAEjC,QAAA,IAAK,MAAc,CAAC,iBAAiB,KAAK,MAAM,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAK,MAAc,CAAC,6BAA6B,KAAK,MAAM,EAAE;AAC5D,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,MAAM;QAC7D;QAAE,OAAO,KAAK,EAAE;;AAEd,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,OAAO,KAAK;AACd;AA2BA;;AAEG;SACa,iBAAiB,GAAA;;IAE/B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE,GAAG,EAAE;AAClD,QAAA,QACE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;AAC5C,YAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,MAAM;IAE5D;;AAGA,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;AAEjC,QAAA,IAAK,MAAc,CAAC,qBAAqB,KAAK,MAAM,EAAE;AACpD,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAK,MAAc,CAAC,iCAAiC,KAAK,MAAM,EAAE;AAChE,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,MAAM;QACjE;QAAE,OAAO,KAAK,EAAE;;AAEd,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,OAAO,KAAK;AACd;AAEA;;AAEG;SACa,aAAa,GAAA;AAC3B,IAAA,MAAM,OAAO,GAAG,cAAc,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;AAEvC,IAAA,IAAI,KAAyB;;IAG7B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE;QACtE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACtD;;AAGA,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC9D,IAAI,WAAW,EAAE;AACf,gBAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC;QACF;QAAE,OAAO,KAAK,EAAE;;QAEhB;IACF;AAEA,IAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;AACxC;;AC9HA;;AAEG;MACU,WAAW,CAAA;AACtB;;;;;;AAMG;AACH,IAAA,OAAO,eAAe,CACpB,OAAe,EACf,UAAuB,EACvB,UAAuB,EAAA;AAEvB,QAAA,MAAM,QAAQ,GAAG,cAAc,EAAE;AACjC,QAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;AAEvC,QAAA,IAAI,QAAQ,IAAI,WAAW,EAAE;;AAE3B,YAAA,MAAM,SAAS,GAAG,aAAa,EAAE;AACjC,YAAA,MAAM,WAAW,GAAe;AAC9B,gBAAA,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,KAAK;AAC3C,gBAAA,QAAQ,EAAE,UAAU,EAAE,QAAQ,IAAI,SAAS;AAC3C,gBAAA,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE;gBACxC,WAAW,EAAE,WAAW;aACzB;YAED,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;QAC5D;aAAO;AACL,YAAA,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;QAC3C;IACF;AAEA;;;;;;AAMG;AACH,IAAA,OAAO,mBAAmB,CACxB,OAAe,EACf,UAAuB,EACvB,UAAuB,EAAA;QAEvB,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;IAC3D;AAEA;;;;;AAKG;AACH,IAAA,OAAO,mBAAmB,CAAC,OAAe,EAAE,UAAuB,EAAA;AACjE,QAAA,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;IAC3C;AAEA;;;AAGG;AACH,IAAA,OAAO,UAAU,GAAA;QACf,OAAO,cAAc,EAAE;IACzB;AAEA;;;AAGG;AACH,IAAA,OAAO,aAAa,GAAA;QAClB,OAAO,aAAa,EAAE;IACxB;AACD;;AC/ED;AACO,MAAM,SAAS,GAAsB;AAC1C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,KAAK,EAAE,2BAA2B;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,MAAM,EAAE,wBAAwB;AACjC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,wBAAwB;AACjC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,kEAAkE;AACxE,YAAA,SAAS,EAAE,uEAAuE;AAClF,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,KAAK,EAAE,uDAAuD;AAC/D,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,SAAS,EAAE,wBAAwB;AACpC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,UAAU,EAAE,yBAAyB;AACrC,QAAA,QAAQ,EAAE,yBAAyB;AACpC,KAAA;CACF;AAED;AACO,MAAM,UAAU,GAAsB;AAC3C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,KAAK,EAAE,qBAAqB;AAC7B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,MAAM,EAAE,wBAAwB;AACjC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,2BAA2B;AACvC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,wBAAwB;AACjC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,kEAAkE;AACxE,YAAA,SAAS,EAAE,uEAAuE;AAClF,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,KAAK,EAAE,uDAAuD;AAC/D,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,SAAS,EAAE,wBAAwB;AACpC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,UAAU,EAAE,yBAAyB;AACrC,QAAA,QAAQ,EAAE,yBAAyB;AACpC,KAAA;CACF;AAED;AACO,MAAM,kBAAkB,GAAsB;AACnD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,KAAK,EAAE,2BAA2B;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,yBAAyB;AAChC,gBAAA,MAAM,EAAE,yBAAyB;AAClC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,yBAAyB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,SAAS,EAAE,yEAAyE;AACpF,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,KAAK,EAAE,wDAAwD;AAChE,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,yBAAyB;AAClC,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,MAAM,EAAE,yBAAyB;AACjC,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,SAAS,EAAE,yBAAyB;AACrC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,0BAA0B;AACjC,QAAA,GAAG,EAAE,0BAA0B;AAC/B,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,QAAQ,EAAE,0BAA0B;AACrC,KAAA;CACF;AAED;AACO,MAAM,WAAW,GAAsB;AAC5C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,KAAK,EAAE,2BAA2B;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,yBAAyB;AAChC,gBAAA,MAAM,EAAE,yBAAyB;AAClC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,yBAAyB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,SAAS,EAAE,yEAAyE;AACpF,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,KAAK,EAAE,wDAAwD;AAChE,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,yBAAyB;AAClC,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,MAAM,EAAE,yBAAyB;AACjC,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,SAAS,EAAE,yBAAyB;AACrC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,0BAA0B;AACjC,QAAA,GAAG,EAAE,0BAA0B;AAC/B,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,QAAQ,EAAE,0BAA0B;AACrC,KAAA;CACF;AAED;AACO,MAAM,UAAU,GAAsB;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,KAAK,EAAE,2BAA2B;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,MAAM,EAAE,wBAAwB;AACjC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,wBAAwB;AACjC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,kEAAkE;AACxE,YAAA,SAAS,EAAE,uEAAuE;AAClF,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,KAAK,EAAE,uDAAuD;AAC/D,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,SAAS,EAAE,wBAAwB;AACpC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,UAAU,EAAE,yBAAyB;AACrC,QAAA,QAAQ,EAAE,yBAAyB;AACpC,KAAA;CACF;AAED;AACO,MAAM,WAAW,GAAsB;AAC5C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,KAAK,EAAE,2BAA2B;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,yBAAyB;AAChC,gBAAA,MAAM,EAAE,yBAAyB;AAClC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,SAAS,EAAE,gDAAgD;AAC5D,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,yBAAyB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,SAAS,EAAE,yEAAyE;AACpF,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,KAAK,EAAE,wDAAwD;AAChE,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,yBAAyB;AAClC,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,MAAM,EAAE,yBAAyB;AACjC,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,SAAS,EAAE,yBAAyB;AACrC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,0BAA0B;AACjC,QAAA,GAAG,EAAE,0BAA0B;AAC/B,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,QAAQ,EAAE,0BAA0B;AACrC,KAAA;CACF;AAED;AACO,MAAM,eAAe,GAAsB;IAChD,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE;YACV,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,yBAAyB;YACjC,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,MAAM,EAAE;YACN,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS;AACnB,SAAA;AACD,QAAA,MAAM,EAAE;YACN,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;AACvB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE;gBACP,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA,SAAS,EAAE;gBACT,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,SAAS;AAClB,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;YACV,OAAO,EAAE,6CAA6C;AACtD,YAAA,SAAS,EAAE,6CAA6C;AACzD,SAAA;AACD,QAAA,QAAQ,EAAE;YACR,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,SAAS;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACf,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE;YACZ,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,GAAG;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,OAAO;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;AACd,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,oBAAoB;AAC7B,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,MAAM,EAAE,wCAAwC;AACjD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;YACP,EAAE,EAAE,+BAA+B;AACnC,YAAA,EAAE,EAAE,+BAA+B;AACnC,YAAA,EAAE,EAAE,gCAAgC;AACpC,YAAA,EAAE,EAAE,gCAAgC;YACpC,IAAI,EAAE,6DAA6D;YACnE,SAAS,EAAE,6DAA6D;YACxE,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,kCAAkC;AAC1C,SAAA;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,yBAAyB;QAClC,YAAY,EAAE,SAAS;AACxB,KAAA;;AAGD,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,yBAAyB;AACpC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,SAAS,EAAE,aAAa;AACzB,KAAA;;AAGD,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,UAAU,EAAE,yBAAyB;AACrC,QAAA,QAAQ,EAAE,yBAAyB;AACpC,KAAA;CACF;AAED;AACO,MAAM,kBAAkB,GAAsC;AACnE,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,eAAe;;;ACrxC7B,MAAM,WAAW,GAAG,WAAW,CAAC,6BAA6B,EAAE,SAAS,EAAE;AACxE,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAE,QAAkC,MAAmB;AAClG,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChD,CAAA,CAAC;AAEF;;;;;AAKG;AACG,SAAU,sBAAsB,CAAC,OAAe,EAAE,KAAmB,EAAA;IACzE,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAE5B,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;YAEhB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QAC7C;AAAO,aAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;AAEvB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;YACvC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QACnD;AAEA,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;IACvB;IAAE,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,SAAS,CAAC,8BAA8B,EAAE,KAAK,EAAE,eAAe,CAAC,wBAAwB,EAAE;AACrG,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,OAAO;IAChB;AACF;AAEA;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,OAAe,EAAE,KAAmB,EAAA;IACnE,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAE5B,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;YAEhB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QAC7C;AAAO,aAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;AAEvB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;YACvC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QACnD;AAEA,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;IACvB;IAAE,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,EAAE,eAAe,CAAC,kBAAkB,EAAE;AAChG,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,OAAO;IAChB;AACF;AAEA;;;;AAIG;AACG,SAAU,cAAc,CAAC,MAAc,EAAA;AAC3C,IAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC;AACnC;AAEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,KAAwB,EAAA;AAC1D,IAAA,IAAI;;QAEF,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjE,YAAA,OAAO,KAAK;QACd;;AAGA,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;AAEhB,YAAA,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnF,YAAA,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;gBACnC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAoC,CAAC;AACvE,gBAAA,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AACpD,oBAAA,OAAO,KAAK;gBACd;YACF;QACF;;AAGA,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9E,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE;AAClF,gBAAA,OAAO,KAAK;YACd;QACF;;AAGA,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC5E,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACtE,gBAAA,OAAO,KAAK;YACd;QACF;AAEA,QAAA,OAAO,IAAI;IACb;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,WAAW,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAC9F,QAAA,OAAO,KAAK;IACd;AACF;AAEA;;;;;AAKG;AACG,SAAU,2BAA2B,CACzC,MAAc,EACd,aAAyC,EAAA;AAEzC,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,SAAS,EAAE;QACd,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,6BAA6B,EAAE;YACxF,MAAM;AACP,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI;IACb;IAEA,OAAO;AACL,QAAA,GAAG,SAAS;AACZ,QAAA,GAAG,aAAa;KACjB;AACH;;ACpKA;;AAEG;AAIH,MAAM,YAAY,GAAG,WAAW,CAAC,8BAA8B,EAAE,SAAS,EAAE;AAC1E,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAE,QAAkC,MAAmB;AACnG,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChD,CAAA,CAAC;AAEF;AACA,MAAM,iBAAiB,GAA2B;AAChD,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,WAAW;AACxB,IAAA,qBAAqB,EAAE,qBAAqB;CAC7C;AAED;;;;AAIG;AACG,SAAU,uBAAuB,CAAC,WAAqB,EAAA;IAI3D,MAAM,SAAS,GAAa,EAAE;IAC9B,MAAM,QAAQ,GAAa,EAAE;AAE7B,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,QAAQ,EAAE;AACZ,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1B;aAAO;AACL,YAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,UAAU,CAAA,uCAAA,EAA0C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;QAChI;IACF;AAEA,IAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;AAChC;AAEA;;;;;AAKG;AACG,SAAU,uBAAuB,CAAC,OAAe,EAAE,WAAsB,EAAA;IAC7E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC,WAAW,CAAC;;AAGpE,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IACtB,YAAY,CAAC,IAAI,CAAC,kCAAkC,EAAE,gBAAgB,CAAC,yBAAyB,EAAE;YAChG,OAAO;SACR,CAAC,CAAC,CACJ;;AAGD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC;QACjD;AAEA,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;IACvB;IAAE,OAAO,KAAK,EAAE;QACd,YAAY,CAAC,SAAS,CAAC,uCAAuC,EAAE,KAAK,EAAE,gBAAgB,CAAC,yBAAyB,EAAE;AACjH,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,aAAa,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACxC,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,OAAO;IAChB;AACF;;ACvDA,MAAM,oBAAoB,GAAG,WAAW,CAAC,iCAAiC,EAAE,SAAS,EAAE;AACrF,IAAA,QAAQ,EAAE,kBAAkB;AAC7B,CAAA,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAE,QAAkC,MAAmB;AAC1G,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChD,CAAA,CAAC;AASI,MAAO,cAAe,SAAQ,YAAY,CAAA;IAwBtC,gBAAgB,CAAC,YAAoB,EAAE,QAAkC,EAAA;QAC/E,OAAO;AACL,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,IAAI,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAChD;IACH;IAEA,WAAA,CAAY,OAA8B,EAAE,UAAuB,EAAA;AACjE,QAAA,KAAK,EAAE;QA5BD,IAAA,CAAA,SAAS,GAAqB,IAAI;QAClC,IAAA,CAAA,SAAS,GAAkB,IAAI;QAGtB,IAAA,CAAA,qBAAqB,GAAG,2BAA2B;QACnD,IAAA,CAAA,yBAAyB,GAAG,KAAK;QACjC,IAAA,CAAA,0BAA0B,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAE1D,IAAA,CAAA,mBAAmB,GAAkB,IAAI;;QAGzC,IAAA,CAAA,wBAAwB,GAA0C,IAAI;QAC7D,IAAA,CAAA,2BAA2B,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,4BAA4B,GAAG,EAAE,CAAC;QAC3C,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QAE7B,IAAA,CAAA,MAAM,GAAG,oBAAoB;AAY5C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,yBAAyB;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAG5B,QAAA,IAAI;;AAEF,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAClB,gBAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;YACvD;;YAGA,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU;gBACrC;qBAAO;AACL,oBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;gBAC7C;YACF;iBAAO;;;AAGL,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACtB;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5D;iBAAO;AACL,gBAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;YACzD;QACF;;AAGA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC1B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACxC;;QAGA,IAAI,CAAC,sBAAsB,EAAE;IAC/B;IAEQ,MAAM,iBAAiB,CAAC,MAAc,EAAA;AAC5C,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AACzG,gBAAA,OAAO,KAAK;YACd;;YAGA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE;AACrE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,SAAS;AAC1B,oBAAA,OAAO,EAAE,MAAM;AAChB,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;AAClD,oBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;wBAC5C,UAAU,EAAE,IAAI,CAAC,SAAS;AAC1B,wBAAA,OAAO,EAAE,MAAM;qBAChB,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,KAAK;AACtB,iBAAA,CAAC;AACF,gBAAA,OAAO,KAAK;YACd;YAEA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACpJ,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1J,YAAA,OAAO,KAAK;QACd;IACF;AAEA;;;AAGG;AACK,IAAA,WAAW,CAAC,MAAc,EAAA;;AAEhC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG;AACf,gBAAA,OAAO,EAAE,MAAM;aAChB;QACH;aAAO;;AAEL,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM;QACjC;;AAGA,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;IACnF;AAEA;;;AAGG;AACI,IAAA,MAAM,eAAe,GAAA;;AAE1B,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;IAClF;AAGA;;;;AAIG;IACI,MAAM,SAAS,CACpB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAA2B,EAC3B,OAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AAEA,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;;QAG/E,MAAM,eAAe,GAAG,MAAa;AACrC,QAAA,eAAe,CAAC,SAAS,GAAG,YAAW;AACrC,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACvE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC3C,QAAA,CAAC;AACD,QAAA,eAAe,CAAC,aAAa,GAAG,YAAW;AACzC,YAAA,IAAI,eAAe,CAAC,YAAY,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACvE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,OAAO,eAAe;IACxB;AAEA;;;;AAIG;IACI,MAAM,YAAY,CACvB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAA2B,EAC3B,OAAyB,EAAA;QAEzB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AAEA,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;;QAGlF,MAAM,eAAe,GAAG,MAAa;AACrC,QAAA,eAAe,CAAC,SAAS,GAAG,YAAW;AACrC,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YAC1E;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC3C,QAAA,CAAC;AACD,QAAA,eAAe,CAAC,aAAa,GAAG,YAAW;AACzC,YAAA,IAAI,eAAe,CAAC,YAAY,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YAC1E;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,OAAO,eAAe;IACxB;AAEA;;;;AAIG;IACI,MAAM,WAAW,CACtB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAA2B,EAC3B,OAAwB,EAAA;QAExB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AAEA,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;;QAGjF,MAAM,eAAe,GAAG,MAAa;AACrC,QAAA,eAAe,CAAC,SAAS,GAAG,YAAW;AACrC,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACzE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC3C,QAAA,CAAC;AACD,QAAA,eAAe,CAAC,aAAa,GAAG,YAAW;AACzC,YAAA,IAAI,eAAe,CAAC,YAAY,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACzE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,OAAO,eAAe;IACxB;AAEA;;;;AAIG;IACI,MAAM,WAAW,CACtB,IAAA,GAAe,CAAC,EAChB,OAAA,GAAkB,GAAG,EACrB,OAA2B,EAC3B,OAAwB,EAAA;QAExB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AAEA,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;;QAGjF,MAAM,eAAe,GAAG,MAAa;AACrC,QAAA,eAAe,CAAC,SAAS,GAAG,YAAW;AACrC,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACzE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC3C,QAAA,CAAC;AACD,QAAA,eAAe,CAAC,aAAa,GAAG,YAAW;AACzC,YAAA,IAAI,eAAe,CAAC,YAAY,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACzE;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,OAAO,eAAe;IACxB;AAEA;;;;;;AAMG;IACI,aAAa,IAAI,CACtB,KAAa,EACb,MAAkC,EAClC,OAA0C,EAAA;;;QAI1C,IAAI,cAAc,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE;YACjE,oBAAoB,CAAC,KAAK,CAAC,kDAAkD,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC/G,YAAA,cAAc,CAAC,QAAQ,GAAG,IAAI;QAChC;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC5B,YAAA,MAAM,cAAc,GAA0B;gBAC5C,KAAK;AACL,gBAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,yBAAyB;AACtD,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,OAAO,EAAE,SAAS;aACnB;;AAGD,YAAA,MAAM,UAAU,GAAe;gBAC7B,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,SAAS,CAAC,SAAS;gBAC/B,WAAW,EAAE,IAAI,CACf;AACE,oBAAA,SAAS,CAAC,SAAS;AACnB,oBAAA,SAAS,CAAC,QAAQ;AAClB,oBAAA,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE;AAC9B,oBAAA,MAAM,CAAC,KAAK;AACZ,oBAAA,MAAM,CAAC,MAAM;AACb,oBAAA,SAAS,CAAC,mBAAmB;;oBAE7B,SAAS,CAAC,YAAY,IAAI,SAAS;AACpC,iBAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ;aACF;YAED,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC;;AAGxE,YAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,SAAS,CAAC;AAC7C,YAAA,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CACxE,KAAK,EACL,gBAAgB,CACjB;YACD,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU;AACjE,YAAA,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;;YAGvE,cAAc,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;;AAGrD,YAAA,IACE,cAAc,CAAC,QAAQ,CAAC,SAAS;gBACjC,OAAO,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,KAAK,UAAU,EACzE;gBACA,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CACjD,cAAc,CAAC,QAAQ,CAAC,SAAS,EACjC,cAAc,CAAC,QAAQ,CAAC,SAAS,EACjC,aAAa,CAAC,IAAI,CAAC,UAAU;iBAC9B;YACH;;YAGA,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI;;oBAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;oBAChF,IAAI,MAAM,EAAE;;AAEV,wBAAA,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC;;wBAErD,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;oBAC3D;yBAAO;AACL,wBAAA,oBAAoB,CAAC,IAAI,CAAC,sDAAsD,EAAE,uBAAuB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBACnJ;gBACF;gBAAE,OAAO,KAAK,EAAE;oBACd,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AACrD,oBAAA,MAAM,KAAK;gBACb;YACF;QACF;QACA,OAAO,cAAc,CAAC,QAAQ;IAChC;AAEA;;;AAGG;IACI,MAAM,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACvC;AAEA;;;AAGG;IAEK,MAAM,kBAAkB,CAAC,MAAc,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC;YACnD;;YAGA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;;gBAE1I;YACF;;AAGA,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAExB,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAC9B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;AAIG;AACK,IAAA,MAAM,wBAAwB,CACpC,KAAyB,EACzB,OAIC,EAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC;;AAGtC,QAAA,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAChC;AAEA;;;AAGG;IACI,MAAM,UAAU,CAAC,OAAuB,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC;YACnD;;YAGA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;AAC5D,YAAA,IAAI,YAAY,KAAK,YAAY,CAAC,MAAM,EAAE;;AAExC,gBAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC3E,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU;gBAC9C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;;AAGpD,gBAAA,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,UAAU,EAAE;AAC5E,oBAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,aAAa,CAAC,IAAI,CAAC,UAAU;qBAC9B;gBACH;;AAGA,gBAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,MAAM;YAChD;;AAGA,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACxE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;YAC7C;;AAGA,YAAA,IAAI,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;;YAGtF,eAAe,GAAG,uBAAuB,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC;;AAG5E,YAAA,IAAI,OAAO,EAAE,KAAK,EAAE;AAClB,gBAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;gBACpC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;AAC5C,gBAAA,eAAe,GAAG,GAAG,CAAC,QAAQ,EAAE;YAClC;;AAGA,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AACpC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD;AACA,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD;AACA,YAAA,eAAe,GAAG,GAAG,CAAC,QAAQ,EAAE;;AAGhC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C;;AAGA,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE;AACxD,gBAAA,SAAS,EAAE,OAAO,MAAc,KAAI;AAClC,oBAAA,IAAI;AACF,wBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,4BAAA,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC;wBACnD;;AAGA,wBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;;wBAGxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;wBACnD,IAAI,CAAC,MAAM,EAAE;4BACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxJ;;AAGA,wBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;;AAGnC,wBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;AAC5B,wBAAA,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;oBAC9B;oBAAE,OAAO,KAAK,EAAE;AACd,wBAAA,IAAI,KAAK,YAAY,kBAAkB,EAAE;;4BAEvC,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC;wBACrD;6BAAO;AACL,4BAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,4BAAA,OAAO,EAAE,OAAO,GAAG,KAAc,CAAC;wBACpC;oBACF;gBACF,CAAC;AACD,gBAAA,OAAO,EAAE,CAAC,KAAY,KAAI;;AAExB,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;;AAGhC,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACzB,oBAAA,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;gBAC3B,CAAC;gBACD,OAAO,EAAE,MAAK;;AAEZ,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;;AAGzB,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAClB,oBAAA,OAAO,EAAE,OAAO,IAAI;gBACtB,CAAC;AACD,gBAAA,OAAO,EAAE,CAAC,IAAY,EAAE,IAAS,KAAI;AACnC,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;AACzC,wBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;AAC7C,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;yBAC/B,CAAC;AACF,wBAAA,KAAK,EAAE,cAAc;AACtB,qBAAA,CAAC;;oBAGF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;;oBAG9B,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;gBAChC,CAAC;AACF,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,kBAAkB,EAAE;;gBAEvC,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC;YACrD;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,gBAAA,OAAO,EAAE,OAAO,GAAG,KAAc,CAAC;YACpC;QACF;IACF;AAEA;;AAEG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpB;AAEA;;;AAGG;IACO,MAAM,YAAY,CAAC,YAAoB,EAAA;AAC/C,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;YAChE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK;;AAG9C,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,UAAU,EAAE;AAC5E,gBAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,QAAQ,CAAC,IAAI,CAAC,UAAU;iBACzB;YACH;;YAGA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE;;AAEhD,gBAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,MAAM;YAChD;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,YAAY,EAAE;gBACjC,MAAM,IAAI,mBAAmB,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC;YACzE;AACA,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;AAGG;AACI,IAAA,MAAM,UAAU,CAAC,KAAwB,EAAE,MAAqB,EAAA;QACrE,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;;AAEF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAC1C,KAAK,EACL,MAAM,IAAI,EAAE,EACZ,KAAK,CAAC,aAAa,CACpB;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;AAKG;AACI,IAAA,MAAM,WAAW,CACtB,OAAe,EACf,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;QACnF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;AAMG;IACI,MAAM,WAAW,CACtB,OAAe,EACf,aASE,EACF,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;;YAEF,MAAM,mBAAmB,GAA+B,EAAE;YAC1D,IAAI,aAAa,CAAC,MAAM;AAAE,gBAAA,mBAAmB,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;YAC3E,IAAI,aAAa,CAAC,QAAQ;AAAE,gBAAA,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;YACjF,IAAI,aAAa,CAAC,KAAK;AAAE,gBAAA,mBAAmB,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK;YACxE,IAAI,aAAa,CAAC,SAAS;AAAE,gBAAA,mBAAmB,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS;YACpF,IAAI,aAAa,CAAC,WAAW;AAC3B,gBAAA,mBAAmB,CAAC,WAAW,GAAG,aAAa,CAAC,WAKvC;YACX,IAAI,aAAa,CAAC,SAAS;AAAE,gBAAA,mBAAmB,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS;YACpF,IAAI,aAAa,CAAC,IAAI;AAAE,gBAAA,mBAAmB,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI;YACvE,IAAI,aAAa,CAAC,QAAQ;AAAE,gBAAA,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;AAEjF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC3C,OAAO,EACP,mBAAmB,EACnB,MAAM,EACN,EAAE,EACF,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAGA;;AAEG;IACI,MAAM,qBAAqB,CAChC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAC/C,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,oBAAoB,CAC/B,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAC9C,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,KAAK,EACL,WAAW,EACX,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,mBAAmB,CAC9B,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,SAAiB,EACjB,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAC7C,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,SAAS,EACT,WAAW,EACX,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;IACI,MAAM,sBAAsB,CACjC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,MAA0C,EAC1C,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAChD,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,qBAAqB,CAChC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAA0C,EAC1C,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAC/C,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,KAAK,EACL,WAAW,EACX,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;IACI,MAAM,uBAAuB,CAClC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACjD,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,sBAAsB,CACjC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAqD,EACrD,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAChD,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,KAAK,EACL,WAAW,EACX,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;IACI,MAAM,uBAAuB,CAClC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,MAAuC,EACvC,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACjD,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,sBAAsB,CACjC,MAAc,EACd,QAAgB,EAChB,IAAoB,EACpB,KAAa,EACb,WAAA,GAA6B,KAAK,EAClC,MAAuC,EACvC,aAAsB,EAAA;QAEtB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAChD,MAAM,EACN,QAAQ,EACR,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM,EAC/B,KAAK,EACL,WAAW,EACX,MAAM,EACN,aAAa,CACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC;AAClC,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;AAIG;AACI,IAAA,MAAM,SAAS,GAAA;QACpB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;IAC/B;AAEA;;;AAGG;AACI,IAAA,MAAM,aAAa,GAAA;;;;QAKxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;;QAGpD,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAkB,MAAM;AACzD,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,CAAA,EAAG,OAAO,CAAA,EAAG,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;AACnE,SAAA,CAAC,CAAC;IACL;AAEA;;;;AAIG;AACI,IAAA,MAAM,oBAAoB,GAAA;QAC/B,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AAC5D,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,GAAG,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,uCAAuC,CAAC;QAC9E;QACA,OAAO,QAAQ,CAAC,aAAa;IAC/B;;AAGA;;;AAGG;AACI,IAAA,MAAM,gBAAgB,GAAA;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1D;AAEA;;;AAGG;AACI,IAAA,MAAM,eAAe,GAAA;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChD;AAEA;;;AAGG;AACI,IAAA,MAAM,gBAAgB,GAAA;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACjD;AAEA;;;AAGG;AACI,IAAA,MAAM,iBAAiB,GAAA;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAClD;AAEA;;;;AAIG;IACI,MAAM,iBAAiB,CAAC,MAAc,EAAA;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC;AAEA;;;;AAIG;IACI,MAAM,oBAAoB,CAAC,MAAc,EAAA;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IACzC;AAEA;;;;AAIG;IACI,MAAM,iBAAiB,CAAC,QAAgB,EAAA;QAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACnD;AAEA;;;;AAIG;IACI,MAAM,oBAAoB,CAAC,QAAgB,EAAA;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtD;;AAUA;;;;AAIG;IACI,MAAM,YAAY,CAAC,MAAqB,EAAA;QAC7C,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QAEA,MAAM,OAAO,GAAsB,EAAE;AACrC,QAAA,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;QAE5E,OAAO,aAAa,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO;gBAAE;AAC5B,YAAA,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU;gBAAE;YACjB,aAAa,GAAG,UAAU;QAC5B;AAEA,QAAA,OAAO,OAAO;IAChB;AAEA;;;;AAIG;IACI,MAAM,eAAe,CAAC,MAAwB,EAAA;QACnD,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QAEA,MAAM,OAAO,GAAyB,EAAE;AACxC,QAAA,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;QAE/E,OAAO,aAAa,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO;gBAAE;AAC5B,YAAA,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU;gBAAE;YACjB,aAAa,GAAG,UAAU;QAC5B;AAEA,QAAA,OAAO,OAAO;IAChB;AAEA;;;;AAIG;IACI,MAAM,cAAc,CAAC,MAAuB,EAAA;QACjD,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QAEA,MAAM,OAAO,GAAwB,EAAE;AACvC,QAAA,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;QAE9E,OAAO,aAAa,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO;gBAAE;AAC5B,YAAA,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU;gBAAE;YACjB,aAAa,GAAG,UAAU;QAC5B;AAEA,QAAA,OAAO,OAAO;IAChB;IAEO,MAAM,cAAc,CAAC,MAAuB,EAAA;QACjD,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QAEA,MAAM,OAAO,GAAoB,EAAE;AACnC,QAAA,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;QAE9E,OAAO,aAAa,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO;gBAAE;AAC5B,YAAA,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU;gBAAE;YACjB,aAAa,GAAG,UAAU;QAC5B;AAEA,QAAA,OAAO,OAAO;IAChB;AAEA;;AAEG;IACK,sBAAsB,GAAA;;;AAG5B,QAAA,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAG7E,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QAGrF,IAAI,CAAC,qBAAqB,EAAE;IAC9B;AAEA;;AAEG;IACK,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC9C;AAEA,QAAA,IAAI,CAAC,wBAAwB,GAAG,WAAW,CAAC,MAAK;YAC/C,IAAI,CAAC,wBAAwB,EAAE;AACjC,QAAA,CAAC,EAAE,IAAI,CAAC,2BAA2B,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACpJ;AAEA;;AAEG;IACK,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC;AAC5C,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;QAChG;IACF;AAEA;;AAEG;AACK,IAAA,MAAM,wBAAwB,GAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;YACtH;QACF;AAEA,QAAA,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;;AAGzI,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC/B,gBAAA,MAAM,IAAI,CAAC,2BAA2B,EAAE;gBACxC;YACF;;YAGA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACrI,YAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ;QACrC;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;;QAE7I;IACF;AAEA;;AAEG;IACK,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,OAAO,KAAK;QACd;QAEA,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/E,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,4BAA4B,GAAG,eAAe;AAE7E,QAAA,IAAI,iBAAiB,IAAI,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE;gBACpH,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,iBAAiB,IAAI,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE;gBAC3F,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,aAAA,CAAC,CAAC;QACL;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;AAEG;AACK,IAAA,MAAM,2BAA2B,GAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;YACrH;QACF;AAEA,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,EAAE;gBACxG,UAAU,EAAE,IAAI,CAAC,SAAS;AAC3B,aAAA,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAEtD,YAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,EAAE;oBACpH,UAAU,EAAE,IAAI,CAAC,SAAS;AAC1B,oBAAA,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM;AACrC,oBAAA,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,UAAU;AAC9C,iBAAA,CAAC,CAAC;gBACH,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM;;AAGxD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;YACpC;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,EAAE;oBACxG,UAAU,EAAE,IAAI,CAAC,SAAS;AAC3B,iBAAA,CAAC,CAAC;YACL;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iCAAiC,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,EAAE;gBACnH,UAAU,EAAE,IAAI,CAAC,SAAS;AAC3B,aAAA,CAAC,CAAC;;QAEL;IACF;AAEA;;AAEG;AACK,IAAA,MAAM,oBAAoB,GAAA;QAChC,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5C;IACF;AAEA;;;AAGG;AACK,IAAA,MAAM,sBAAsB,GAAA;;;AAGlC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE;YAC3F,gBAAgB,EAAE,QAAQ,CAAC,eAAe;AAC3C,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;YACzC,IAAI,CAAC,oBAAoB,EAAE;QAC7B;AAAO,aAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;;YAEjD,IAAI,CAAC,qBAAqB,EAAE;QAC9B;IACF;AAEA;;;AAGG;IACK,MAAM,eAAe,CAAC,SAAiB,EAAA;AAC7C,QAAA,IAAI;;AAEF,YAAA,MAAM,UAAU,GACd,IAAI,CAAC,SAAS;AACd,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,UAAU;AACjD,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAE/B,IAAI,UAAU,EAAE;;gBAEd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;gBACjH;YACF;;AAGA,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,SAAS,CAAA,SAAA,CAAW,EAAE;AAC3E,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACzH;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;AACtF,oBAAA,UAAU,EAAE,SAAS;oBACrB,eAAe,EAAE,QAAQ,CAAC,MAAM;AACjC,iBAAA,CAAC,CAAC;YACL;QACF;QAAE,OAAO,KAAK,EAAE;;YAEd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7H;IACF;AAEA;;;;;AAKG;IACI,MAAM,iBAAiB,CAAC,YAAoB,EAAA;QACjD,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC;QAC5F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC;QACvF;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC;IACvD;AAEA;;;;;AAKG;AACI,IAAA,MAAM,aAAa,CACxB,OAAe,EACf,MAA0D,EAAA;QAE1D,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AACA,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC;QACpE,OAAO,QAAQ,CAAC,aAAa;IAC/B;AAEA;;;;;AAKG;AACI,IAAA,MAAM,cAAc,CACzB,OAAe,EACf,MAA2D,EAAA;QAE3D,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AACA,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;QACrE,OAAO,QAAQ,CAAC,aAAa;IAC/B;AAEA;;;;AAIG;IACI,MAAM,cAAc,CACzB,MAA2D,EAAA;QAE3D,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5D,OAAO,QAAQ,CAAC,aAAa;IAC/B;AAEA;;;;AAIG;IACI,MAAM,eAAe,CAC1B,MAA4D,EAAA;QAE5D,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC;QAC7D,OAAO,QAAQ,CAAC,aAAa;IAC/B;AAEA;;;;;AAKG;AACI,IAAA,MAAM,mBAAmB,CAC9B,KAAa,EACb,MAAgE,EAAA;QAEhE,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC;QAC5D;AACA,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC;QACxE,OAAO,QAAQ,CAAC,aAAa;IAC/B;;AAhhDe,cAAA,CAAA,QAAQ,GAA0B,IAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/generated/utils/request-id.ts","../src/generated/utils/retry.ts","../src/generated/utils/logger.ts","../src/generated/utils/error-handling.ts","../src/generated/utils/cache.ts","../src/generated/utils/interceptors.ts","../src/generated/utils/response-utils.ts","../src/generated/utils/enum-coercion.ts","../src/generated/utils/plain-object.ts","../src/generated/models/account-status.ts","../src/generated/models/broker-data-account-type-enum.ts","../src/generated/models/broker-data-asset-type-enum.ts","../src/generated/models/broker-data-order-side-enum.ts","../src/generated/models/broker-data-order-status-enum.ts","../src/generated/models/broker-data-position-status-enum.ts","../src/generated/models/fdxaccount-status.ts","../src/generated/models/fdxaccount-type.ts","../src/generated/models/fdxasset-type.ts","../src/generated/models/fdxbalance-type.ts","../src/generated/models/fdxorder-class.ts","../src/generated/models/fdxorder-event-type.ts","../src/generated/models/fdxorder-group-type.ts","../src/generated/models/fdxorder-side.ts","../src/generated/models/fdxorder-status.ts","../src/generated/models/fdxorder-type.ts","../src/generated/models/fdxposition-side.ts","../src/generated/models/fdxposition-status.ts","../src/generated/models/fdxsecurity-id-type.ts","../src/generated/models/fdxtime-in-force.ts","../src/generated/models/session-status.ts","../src/generated/wrappers/brokers.ts","../src/generated/wrappers/company.ts","../src/generated/wrappers/session.ts","../src/generated/utils/validation.ts","../src/generated/utils/url-utils.ts","../src/generated/utils/events.ts","../src/generated/config.ts","../src/generated/configuration.ts","../src/generated/portal/PortalUI.ts","../src/generated/base.ts","../src/generated/common.ts","../src/generated/api/session-api.ts","../src/generated/api/brokers-api.ts","../src/generated/api/company-api.ts","../src/generated/FinaticConnect.ts","../src/custom/FinaticConnect.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["AbortError","AccountStatus","BrokerDataAccountTypeEnum","BrokerDataAssetTypeEnum","BrokerDataOrderSideEnum","BrokerDataOrderStatusEnum","BrokerDataPositionStatusEnum","FDXAccountStatus","FDXAccountType","FDXAssetType","FDXBalanceType","FDXOrderClass","FDXOrderEventType","FDXOrderGroupType","FDXOrderSide","FDXOrderStatus","FDXOrderType","FDXPositionSide","FDXPositionStatus","FDXSecurityIdType","FDXTimeInForce","SessionStatus","z","_ValidationError","FinaticConnect","GeneratedFinaticConnect"],"mappings":"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"}
|