@seed-ship/mcp-ui-solid 2.2.6 → 2.2.7
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/dist/services/validation.cjs +12 -1
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +12 -1
- package/dist/services/validation.js.map +1 -1
- package/package.json +1 -1
- package/src/services/validation.ts +12 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -112,7 +112,18 @@ const DEFAULT_IFRAME_DOMAINS = [
|
|
|
112
112
|
"amazon.co.jp",
|
|
113
113
|
"images-amazon.com",
|
|
114
114
|
"media-amazon.com",
|
|
115
|
-
"ws-na.amazon-adsystem.com"
|
|
115
|
+
"ws-na.amazon-adsystem.com",
|
|
116
|
+
// MCP Connectors — embed-capable services (v2.2.7)
|
|
117
|
+
"gamma.app",
|
|
118
|
+
"www.gamma.app",
|
|
119
|
+
"app.hubspot.com",
|
|
120
|
+
"share.hubspot.com",
|
|
121
|
+
"www.data.gouv.fr",
|
|
122
|
+
"data.gouv.fr",
|
|
123
|
+
"clinicaltrials.gov",
|
|
124
|
+
"www.clinicaltrials.gov",
|
|
125
|
+
"linear.app",
|
|
126
|
+
"www.linear.app"
|
|
116
127
|
];
|
|
117
128
|
function validateGridPosition(position) {
|
|
118
129
|
const errors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.cjs","sources":["../../src/services/validation.ts"],"sourcesContent":["/**\n * Component Validation Service\n * Phase 0: Resource Limits & Schema Validation\n *\n * Validates LLM-generated components against:\n * - JSON schema\n * - Resource limits (data points, payload size, grid bounds)\n * - Security constraints (domain whitelist, XSS prevention)\n */\n\nimport type {\n UIComponent,\n UILayout,\n ValidationResult,\n ResourceLimits,\n ChartComponentParams,\n TableComponentParams,\n FormFieldParams,\n IframePolicy,\n ValidationOptions,\n ComponentType,\n} from '../types'\n\n/**\n * All known ComponentType values — used to distinguish known-but-unvalidated\n * types (pass through) from truly unknown strings (reject).\n */\nconst KNOWN_COMPONENT_TYPES: Set<string> = new Set<ComponentType>([\n 'chart', 'table', 'metric', 'text', 'grid', 'iframe', 'image', 'link',\n 'action', 'footer', 'carousel', 'artifact', 'form', 'modal',\n 'action-group', 'image-gallery', 'video', 'code', 'map',\n])\n\n/**\n * Default resource limits (configurable via env)\n */\nexport const DEFAULT_RESOURCE_LIMITS: ResourceLimits = {\n maxDataPoints: 1000,\n maxTableRows: 100,\n maxPayloadSize: 50 * 1024, // 50KB\n renderTimeout: 5000, // 5 seconds\n}\n\n/**\n * Default allowed iframe domains (whitelist)\n * Must match CSP frame-src directive\n * Updated Sprint 7: Added code, design, docs, and map providers\n *\n * This list is exported for transparency and can be extended via ValidationOptions\n */\nexport const DEFAULT_IFRAME_DOMAINS = [\n // Charts\n 'quickchart.io',\n 'www.quickchart.io',\n\n // Deposium\n 'deposium.com',\n 'deposium.vip',\n 'deposium.ai',\n\n // Development\n 'localhost',\n\n // Video providers (Sprint 5)\n 'youtube.com',\n 'www.youtube.com',\n 'youtube-nocookie.com',\n 'www.youtube-nocookie.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n\n // Code playgrounds (Sprint 7)\n 'codepen.io',\n 'codesandbox.io',\n 'stackblitz.com',\n 'jsfiddle.net',\n\n // Design tools (Sprint 7)\n 'figma.com',\n 'www.figma.com',\n 'miro.com',\n\n // Google services (Sprint 7)\n 'docs.google.com',\n 'drive.google.com',\n 'sheets.google.com',\n 'slides.google.com',\n 'maps.google.com',\n 'www.google.com',\n 'datastudio.google.com',\n 'lookerstudio.google.com',\n\n // Productivity (Sprint 7)\n 'airtable.com',\n 'notion.so',\n 'www.notion.so',\n\n // Maps (Sprint 7)\n 'openstreetmap.org',\n 'www.openstreetmap.org',\n\n // Analytics/Dashboards (Sprint 7)\n 'public.tableau.com',\n 'app.powerbi.com',\n 'observablehq.com',\n\n // Diagrams & Whiteboards (v2.0.0)\n 'mermaid.live',\n 'excalidraw.com',\n 'lucidchart.com',\n 'lucid.app',\n\n // Video - Business (v2.0.0)\n 'loom.com',\n 'www.loom.com',\n 'cloudflarestream.com',\n 'streamable.com',\n\n // Code repositories (v2.0.0)\n 'github.com',\n 'gist.github.com',\n 'gitlab.com',\n 'replit.com',\n 'glitch.com',\n\n // Business tools (v2.0.0)\n 'calendly.com',\n 'typeform.com',\n 'cal.com',\n\n // Design (v2.0.0)\n 'canva.com',\n\n // Deploy previews (v2.0.0)\n 'vercel.app',\n 'netlify.app',\n\n // E-commerce (v2.0.0)\n 'amazon.com',\n 'amazon.fr',\n 'amazon.de',\n 'amazon.co.uk',\n 'amazon.es',\n 'amazon.it',\n 'amazon.ca',\n 'amazon.co.jp',\n 'images-amazon.com',\n 'media-amazon.com',\n 'ws-na.amazon-adsystem.com',\n]\n\n/**\n * Validate grid position bounds (1-12 columns)\n */\nexport function validateGridPosition(position: UIComponent['position']): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // ✅ PHASE 3 FIX: Defensive check for undefined position\n if (!position) {\n return {\n valid: false,\n errors: [\n {\n path: 'position',\n message: 'Position is required',\n code: 'MISSING_POSITION',\n },\n ],\n }\n }\n\n if (position.colStart < 1 || position.colStart > 12) {\n errors.push({\n path: 'position.colStart',\n message: 'Column start must be between 1 and 12',\n code: 'INVALID_GRID_COL_START',\n })\n }\n\n if (position.colSpan < 1 || position.colSpan > 12) {\n errors.push({\n path: 'position.colSpan',\n message: 'Column span must be between 1 and 12',\n code: 'INVALID_GRID_COL_SPAN',\n })\n }\n\n if (position.colStart + position.colSpan - 1 > 12) {\n errors.push({\n path: 'position',\n message: 'Column start + span exceeds grid width (12)',\n code: 'GRID_OVERFLOW',\n })\n }\n\n if (position.rowStart !== undefined && position.rowStart < 1) {\n errors.push({\n path: 'position.rowStart',\n message: 'Row start must be >= 1',\n code: 'INVALID_GRID_ROW_START',\n })\n }\n\n if (position.rowSpan !== undefined && position.rowSpan < 1) {\n errors.push({\n path: 'position.rowSpan',\n message: 'Row span must be >= 1',\n code: 'INVALID_GRID_ROW_SPAN',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate chart component against resource limits\n */\nexport function validateChartComponent(\n params: ChartComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate data points count\n const totalDataPoints = params.data.datasets.reduce(\n (sum, dataset) => sum + dataset.data.length,\n 0\n )\n\n if (totalDataPoints > limits.maxDataPoints) {\n errors.push({\n path: 'params.data',\n message: `Chart exceeds max data points: ${totalDataPoints} > ${limits.maxDataPoints}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate labels match dataset length\n const expectedLength = params.data.labels.length\n for (const [index, dataset] of params.data.datasets.entries()) {\n if (dataset.data.length !== expectedLength) {\n errors.push({\n path: `params.data.datasets[${index}]`,\n message: `Dataset length mismatch: expected ${expectedLength}, got ${dataset.data.length}`,\n code: 'DATA_LENGTH_MISMATCH',\n })\n }\n }\n\n // Validate numeric data\n for (const [index, dataset] of params.data.datasets.entries()) {\n for (const [dataIndex, value] of dataset.data.entries()) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n errors.push({\n path: `params.data.datasets[${index}].data[${dataIndex}]`,\n message: `Invalid data value: ${value} (must be finite number)`,\n code: 'INVALID_DATA_TYPE',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate table component against resource limits\n */\nexport function validateTableComponent(\n params: TableComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate row count\n if (params.rows.length > limits.maxTableRows) {\n errors.push({\n path: 'params.rows',\n message: `Table exceeds max rows: ${params.rows.length} > ${limits.maxTableRows}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate columns\n if (params.columns.length === 0) {\n errors.push({\n path: 'params.columns',\n message: 'Table must have at least one column',\n code: 'EMPTY_COLUMNS',\n })\n }\n\n // Validate column keys are unique\n const columnKeys = new Set<string>()\n for (const [index, column] of params.columns.entries()) {\n if (columnKeys.has(column.key)) {\n errors.push({\n path: `params.columns[${index}]`,\n message: `Duplicate column key: ${column.key}`,\n code: 'DUPLICATE_COLUMN_KEY',\n })\n }\n columnKeys.add(column.key)\n }\n\n // Validate rows have valid data for defined columns\n for (const [rowIndex, row] of params.rows.entries()) {\n for (const column of params.columns) {\n if (!(column.key in row)) {\n errors.push({\n path: `params.rows[${rowIndex}]`,\n message: `Missing column key: ${column.key}`,\n code: 'MISSING_COLUMN_DATA',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate payload size\n */\nexport function validatePayloadSize(\n component: UIComponent,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const payloadSize = JSON.stringify(component).length\n\n if (payloadSize > limits.maxPayloadSize) {\n return {\n valid: false,\n errors: [\n {\n path: 'component',\n message: `Payload size exceeds limit: ${payloadSize} > ${limits.maxPayloadSize} bytes`,\n code: 'PAYLOAD_TOO_LARGE',\n },\n ],\n }\n }\n\n return { valid: true }\n}\n\n/**\n * Sanitize string to prevent XSS\n * Basic implementation - DOMPurify used at render time\n */\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/javascript:/gi, '')\n}\n\n/**\n * Validate iframe domain against whitelist\n *\n * @param url - The URL to validate\n * @param options - Optional validation options\n * @param options.policy - 'strict' (default), 'extend', or 'allow-all'\n * @param options.customDomains - Additional domains when policy is 'extend'\n */\nexport function validateIframeDomain(\n url: string,\n options?: { policy?: IframePolicy; customDomains?: string[] }\n): ValidationResult {\n // If allow-all, skip validation\n if (options?.policy === 'allow-all') {\n return { valid: true }\n }\n\n try {\n const parsedUrl = new URL(url)\n const domain = parsedUrl.hostname\n\n // Build effective whitelist\n let effectiveWhitelist = DEFAULT_IFRAME_DOMAINS\n if (options?.policy === 'extend' && options.customDomains) {\n effectiveWhitelist = [...DEFAULT_IFRAME_DOMAINS, ...options.customDomains]\n }\n\n const isAllowed = effectiveWhitelist.some(\n (allowed) => domain === allowed || domain.endsWith(`.${allowed}`) || allowed === 'localhost'\n )\n\n if (!isAllowed) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: `Domain not whitelisted: ${domain}`,\n code: 'DOMAIN_NOT_WHITELISTED',\n },\n ],\n }\n }\n\n return { valid: true }\n } catch (error) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: 'Invalid URL format',\n code: 'INVALID_URL',\n },\n ],\n }\n }\n}\n\n/**\n * Validate entire component\n *\n * @param component - The component to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateComponent(\n component: UIComponent,\n options?: ValidationOptions\n): ValidationResult {\n const limits = options?.limits ?? DEFAULT_RESOURCE_LIMITS\n const errors: ValidationResult['errors'] = []\n\n // Validate grid position\n const gridResult = validateGridPosition(component.position)\n if (!gridResult.valid) {\n errors.push(...(gridResult.errors || []))\n }\n\n // Validate payload size\n const sizeResult = validatePayloadSize(component, limits)\n if (!sizeResult.valid) {\n errors.push(...(sizeResult.errors || []))\n }\n\n // Type-specific validation\n switch (component.type) {\n case 'chart': {\n const chartResult = validateChartComponent(component.params as ChartComponentParams, limits)\n if (!chartResult.valid) {\n errors.push(...(chartResult.errors || []))\n }\n break\n }\n\n case 'table': {\n const tableResult = validateTableComponent(component.params as TableComponentParams, limits)\n if (!tableResult.valid) {\n errors.push(...(tableResult.errors || []))\n }\n break\n }\n\n case 'metric': {\n // Basic validation for metrics\n const metricParams = component.params as any\n if (!metricParams.title || !metricParams.value) {\n errors.push({\n path: 'params',\n message: 'Metric must have title and value',\n code: 'INVALID_METRIC',\n })\n }\n break\n }\n\n case 'text': {\n // Basic validation for text\n const textParams = component.params as any\n if (!textParams.content) {\n errors.push({\n path: 'params',\n message: 'Text component must have content',\n code: 'INVALID_TEXT',\n })\n }\n break\n }\n\n case 'iframe': {\n // Basic validation for iframe\n const iframeParams = component.params as any\n if (!iframeParams.url) {\n errors.push({\n path: 'params',\n message: 'Iframe component must have url',\n code: 'INVALID_IFRAME',\n })\n } else {\n // Validate iframe domain against whitelist\n const iframeResult = validateIframeDomain(iframeParams.url, {\n policy: options?.iframePolicy,\n customDomains: options?.customIframeDomains,\n })\n if (!iframeResult.valid) {\n errors.push(...(iframeResult.errors || []))\n }\n }\n break\n }\n\n case 'image': {\n // Basic validation for image\n const imageParams = component.params as any\n if (!imageParams.url) {\n errors.push({\n path: 'params',\n message: 'Image component must have url',\n code: 'INVALID_IMAGE',\n })\n }\n break\n }\n\n case 'link': {\n // Basic validation for link\n const linkParams = component.params as any\n if (!linkParams.url) {\n errors.push({\n path: 'params',\n message: 'Link component must have url',\n code: 'INVALID_LINK',\n })\n }\n break\n }\n\n case 'action': {\n // Basic validation for action\n const actionParams = component.params as any\n if (!actionParams.label) {\n errors.push({\n path: 'params',\n message: 'Action component must have label',\n code: 'INVALID_ACTION',\n })\n }\n break\n }\n\n default:\n // Known types without specific validation pass through — renderer handles errors\n // Truly unknown types (e.g. typos in streamed JSON) are rejected\n if (!KNOWN_COMPONENT_TYPES.has(component.type)) {\n errors.push({\n path: 'type',\n message: `Unknown component type: ${component.type}`,\n code: 'UNKNOWN_COMPONENT_TYPE',\n })\n }\n break\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate entire layout\n *\n * @param layout - The layout to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateLayout(\n layout: UILayout,\n options?: ValidationOptions\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate component count\n if (layout.components.length === 0) {\n errors.push({\n path: 'components',\n message: 'Layout must have at least one component',\n code: 'EMPTY_LAYOUT',\n })\n }\n\n if (layout.components.length > 12) {\n errors.push({\n path: 'components',\n message: `Layout exceeds max components: ${layout.components.length} > 12`,\n code: 'TOO_MANY_COMPONENTS',\n })\n }\n\n // Validate each component\n for (const [index, component] of layout.components.entries()) {\n const result = validateComponent(component, options)\n if (!result.valid) {\n errors.push(\n ...(result.errors?.map((error) => ({\n ...error,\n path: `components[${index}].${error.path}`,\n })) || [])\n )\n }\n }\n\n // Validate grid configuration\n if (layout.grid.columns !== 12) {\n errors.push({\n path: 'grid.columns',\n message: 'Grid must have 12 columns (Bootstrap-like)',\n code: 'INVALID_GRID_COLUMNS',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate a single form field value against field rules\n */\nexport function validateFieldValue(\n value: any,\n field: FormFieldParams\n): { valid: boolean; error?: string } {\n // Required check\n if (field.required) {\n if (value === undefined || value === null || value === '') {\n return { valid: false, error: `${field.label || field.name} is required` }\n }\n if (field.type === 'checkbox' && value !== true) {\n return { valid: false, error: `${field.label || field.name} must be checked` }\n }\n }\n\n // Skip further validation if value is empty and not required\n if (value === undefined || value === null || value === '') {\n return { valid: true }\n }\n\n // Type-specific validation\n switch (field.type) {\n case 'text':\n case 'textarea':\n case 'password':\n if (field.minLength && String(value).length < field.minLength) {\n return { valid: false, error: `Minimum ${field.minLength} characters required` }\n }\n if (field.maxLength && String(value).length > field.maxLength) {\n return { valid: false, error: `Maximum ${field.maxLength} characters allowed` }\n }\n if (field.pattern && !new RegExp(field.pattern).test(String(value))) {\n return { valid: false, error: 'Invalid format' }\n }\n break\n\n case 'email':\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value))) {\n return { valid: false, error: 'Invalid email address' }\n }\n break\n\n case 'number': {\n const numValue = Number(value)\n if (isNaN(numValue)) {\n return { valid: false, error: 'Must be a valid number' }\n }\n if (field.min !== undefined && numValue < field.min) {\n return { valid: false, error: `Minimum value is ${field.min}` }\n }\n if (field.max !== undefined && numValue > field.max) {\n return { valid: false, error: `Maximum value is ${field.max}` }\n }\n break\n }\n\n case 'date':\n if (field.minDate && value < field.minDate) {\n return { valid: false, error: `Date must be after ${field.minDate}` }\n }\n if (field.maxDate && value > field.maxDate) {\n return { valid: false, error: `Date must be before ${field.maxDate}` }\n }\n break\n\n case 'select':\n case 'radio':\n // Validate that value is one of the options\n if (field.options && field.options.length > 0) {\n const validValues = field.options.map((opt) => opt.value)\n if (!validValues.includes(String(value))) {\n return { valid: false, error: 'Please select a valid option' }\n }\n }\n break\n }\n\n return { valid: true }\n}\n\n/**\n * Validate entire form data against field definitions\n */\nexport function validateFormData(\n data: Record<string, any>,\n fields: FormFieldParams[]\n): { valid: boolean; errors: Record<string, string> } {\n const errors: Record<string, string> = {}\n\n for (const field of fields) {\n const result = validateFieldValue(data[field.name], field)\n if (!result.valid && result.error) {\n errors[field.name] = result.error\n }\n }\n\n return {\n valid: Object.keys(errors).length === 0,\n errors,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.cjs","sources":["../../src/services/validation.ts"],"sourcesContent":["/**\n * Component Validation Service\n * Phase 0: Resource Limits & Schema Validation\n *\n * Validates LLM-generated components against:\n * - JSON schema\n * - Resource limits (data points, payload size, grid bounds)\n * - Security constraints (domain whitelist, XSS prevention)\n */\n\nimport type {\n UIComponent,\n UILayout,\n ValidationResult,\n ResourceLimits,\n ChartComponentParams,\n TableComponentParams,\n FormFieldParams,\n IframePolicy,\n ValidationOptions,\n ComponentType,\n} from '../types'\n\n/**\n * All known ComponentType values — used to distinguish known-but-unvalidated\n * types (pass through) from truly unknown strings (reject).\n */\nconst KNOWN_COMPONENT_TYPES: Set<string> = new Set<ComponentType>([\n 'chart', 'table', 'metric', 'text', 'grid', 'iframe', 'image', 'link',\n 'action', 'footer', 'carousel', 'artifact', 'form', 'modal',\n 'action-group', 'image-gallery', 'video', 'code', 'map',\n])\n\n/**\n * Default resource limits (configurable via env)\n */\nexport const DEFAULT_RESOURCE_LIMITS: ResourceLimits = {\n maxDataPoints: 1000,\n maxTableRows: 100,\n maxPayloadSize: 50 * 1024, // 50KB\n renderTimeout: 5000, // 5 seconds\n}\n\n/**\n * Default allowed iframe domains (whitelist)\n * Must match CSP frame-src directive\n * Updated Sprint 7: Added code, design, docs, and map providers\n *\n * This list is exported for transparency and can be extended via ValidationOptions\n */\nexport const DEFAULT_IFRAME_DOMAINS = [\n // Charts\n 'quickchart.io',\n 'www.quickchart.io',\n\n // Deposium\n 'deposium.com',\n 'deposium.vip',\n 'deposium.ai',\n\n // Development\n 'localhost',\n\n // Video providers (Sprint 5)\n 'youtube.com',\n 'www.youtube.com',\n 'youtube-nocookie.com',\n 'www.youtube-nocookie.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n\n // Code playgrounds (Sprint 7)\n 'codepen.io',\n 'codesandbox.io',\n 'stackblitz.com',\n 'jsfiddle.net',\n\n // Design tools (Sprint 7)\n 'figma.com',\n 'www.figma.com',\n 'miro.com',\n\n // Google services (Sprint 7)\n 'docs.google.com',\n 'drive.google.com',\n 'sheets.google.com',\n 'slides.google.com',\n 'maps.google.com',\n 'www.google.com',\n 'datastudio.google.com',\n 'lookerstudio.google.com',\n\n // Productivity (Sprint 7)\n 'airtable.com',\n 'notion.so',\n 'www.notion.so',\n\n // Maps (Sprint 7)\n 'openstreetmap.org',\n 'www.openstreetmap.org',\n\n // Analytics/Dashboards (Sprint 7)\n 'public.tableau.com',\n 'app.powerbi.com',\n 'observablehq.com',\n\n // Diagrams & Whiteboards (v2.0.0)\n 'mermaid.live',\n 'excalidraw.com',\n 'lucidchart.com',\n 'lucid.app',\n\n // Video - Business (v2.0.0)\n 'loom.com',\n 'www.loom.com',\n 'cloudflarestream.com',\n 'streamable.com',\n\n // Code repositories (v2.0.0)\n 'github.com',\n 'gist.github.com',\n 'gitlab.com',\n 'replit.com',\n 'glitch.com',\n\n // Business tools (v2.0.0)\n 'calendly.com',\n 'typeform.com',\n 'cal.com',\n\n // Design (v2.0.0)\n 'canva.com',\n\n // Deploy previews (v2.0.0)\n 'vercel.app',\n 'netlify.app',\n\n // E-commerce (v2.0.0)\n 'amazon.com',\n 'amazon.fr',\n 'amazon.de',\n 'amazon.co.uk',\n 'amazon.es',\n 'amazon.it',\n 'amazon.ca',\n 'amazon.co.jp',\n 'images-amazon.com',\n 'media-amazon.com',\n 'ws-na.amazon-adsystem.com',\n\n // MCP Connectors — embed-capable services (v2.2.7)\n 'gamma.app',\n 'www.gamma.app',\n 'app.hubspot.com',\n 'share.hubspot.com',\n 'www.data.gouv.fr',\n 'data.gouv.fr',\n 'clinicaltrials.gov',\n 'www.clinicaltrials.gov',\n 'linear.app',\n 'www.linear.app',\n]\n\n/**\n * Validate grid position bounds (1-12 columns)\n */\nexport function validateGridPosition(position: UIComponent['position']): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // ✅ PHASE 3 FIX: Defensive check for undefined position\n if (!position) {\n return {\n valid: false,\n errors: [\n {\n path: 'position',\n message: 'Position is required',\n code: 'MISSING_POSITION',\n },\n ],\n }\n }\n\n if (position.colStart < 1 || position.colStart > 12) {\n errors.push({\n path: 'position.colStart',\n message: 'Column start must be between 1 and 12',\n code: 'INVALID_GRID_COL_START',\n })\n }\n\n if (position.colSpan < 1 || position.colSpan > 12) {\n errors.push({\n path: 'position.colSpan',\n message: 'Column span must be between 1 and 12',\n code: 'INVALID_GRID_COL_SPAN',\n })\n }\n\n if (position.colStart + position.colSpan - 1 > 12) {\n errors.push({\n path: 'position',\n message: 'Column start + span exceeds grid width (12)',\n code: 'GRID_OVERFLOW',\n })\n }\n\n if (position.rowStart !== undefined && position.rowStart < 1) {\n errors.push({\n path: 'position.rowStart',\n message: 'Row start must be >= 1',\n code: 'INVALID_GRID_ROW_START',\n })\n }\n\n if (position.rowSpan !== undefined && position.rowSpan < 1) {\n errors.push({\n path: 'position.rowSpan',\n message: 'Row span must be >= 1',\n code: 'INVALID_GRID_ROW_SPAN',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate chart component against resource limits\n */\nexport function validateChartComponent(\n params: ChartComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate data points count\n const totalDataPoints = params.data.datasets.reduce(\n (sum, dataset) => sum + dataset.data.length,\n 0\n )\n\n if (totalDataPoints > limits.maxDataPoints) {\n errors.push({\n path: 'params.data',\n message: `Chart exceeds max data points: ${totalDataPoints} > ${limits.maxDataPoints}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate labels match dataset length\n const expectedLength = params.data.labels.length\n for (const [index, dataset] of params.data.datasets.entries()) {\n if (dataset.data.length !== expectedLength) {\n errors.push({\n path: `params.data.datasets[${index}]`,\n message: `Dataset length mismatch: expected ${expectedLength}, got ${dataset.data.length}`,\n code: 'DATA_LENGTH_MISMATCH',\n })\n }\n }\n\n // Validate numeric data\n for (const [index, dataset] of params.data.datasets.entries()) {\n for (const [dataIndex, value] of dataset.data.entries()) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n errors.push({\n path: `params.data.datasets[${index}].data[${dataIndex}]`,\n message: `Invalid data value: ${value} (must be finite number)`,\n code: 'INVALID_DATA_TYPE',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate table component against resource limits\n */\nexport function validateTableComponent(\n params: TableComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate row count\n if (params.rows.length > limits.maxTableRows) {\n errors.push({\n path: 'params.rows',\n message: `Table exceeds max rows: ${params.rows.length} > ${limits.maxTableRows}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate columns\n if (params.columns.length === 0) {\n errors.push({\n path: 'params.columns',\n message: 'Table must have at least one column',\n code: 'EMPTY_COLUMNS',\n })\n }\n\n // Validate column keys are unique\n const columnKeys = new Set<string>()\n for (const [index, column] of params.columns.entries()) {\n if (columnKeys.has(column.key)) {\n errors.push({\n path: `params.columns[${index}]`,\n message: `Duplicate column key: ${column.key}`,\n code: 'DUPLICATE_COLUMN_KEY',\n })\n }\n columnKeys.add(column.key)\n }\n\n // Validate rows have valid data for defined columns\n for (const [rowIndex, row] of params.rows.entries()) {\n for (const column of params.columns) {\n if (!(column.key in row)) {\n errors.push({\n path: `params.rows[${rowIndex}]`,\n message: `Missing column key: ${column.key}`,\n code: 'MISSING_COLUMN_DATA',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate payload size\n */\nexport function validatePayloadSize(\n component: UIComponent,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const payloadSize = JSON.stringify(component).length\n\n if (payloadSize > limits.maxPayloadSize) {\n return {\n valid: false,\n errors: [\n {\n path: 'component',\n message: `Payload size exceeds limit: ${payloadSize} > ${limits.maxPayloadSize} bytes`,\n code: 'PAYLOAD_TOO_LARGE',\n },\n ],\n }\n }\n\n return { valid: true }\n}\n\n/**\n * Sanitize string to prevent XSS\n * Basic implementation - DOMPurify used at render time\n */\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/javascript:/gi, '')\n}\n\n/**\n * Validate iframe domain against whitelist\n *\n * @param url - The URL to validate\n * @param options - Optional validation options\n * @param options.policy - 'strict' (default), 'extend', or 'allow-all'\n * @param options.customDomains - Additional domains when policy is 'extend'\n */\nexport function validateIframeDomain(\n url: string,\n options?: { policy?: IframePolicy; customDomains?: string[] }\n): ValidationResult {\n // If allow-all, skip validation\n if (options?.policy === 'allow-all') {\n return { valid: true }\n }\n\n try {\n const parsedUrl = new URL(url)\n const domain = parsedUrl.hostname\n\n // Build effective whitelist\n let effectiveWhitelist = DEFAULT_IFRAME_DOMAINS\n if (options?.policy === 'extend' && options.customDomains) {\n effectiveWhitelist = [...DEFAULT_IFRAME_DOMAINS, ...options.customDomains]\n }\n\n const isAllowed = effectiveWhitelist.some(\n (allowed) => domain === allowed || domain.endsWith(`.${allowed}`) || allowed === 'localhost'\n )\n\n if (!isAllowed) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: `Domain not whitelisted: ${domain}`,\n code: 'DOMAIN_NOT_WHITELISTED',\n },\n ],\n }\n }\n\n return { valid: true }\n } catch (error) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: 'Invalid URL format',\n code: 'INVALID_URL',\n },\n ],\n }\n }\n}\n\n/**\n * Validate entire component\n *\n * @param component - The component to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateComponent(\n component: UIComponent,\n options?: ValidationOptions\n): ValidationResult {\n const limits = options?.limits ?? DEFAULT_RESOURCE_LIMITS\n const errors: ValidationResult['errors'] = []\n\n // Validate grid position\n const gridResult = validateGridPosition(component.position)\n if (!gridResult.valid) {\n errors.push(...(gridResult.errors || []))\n }\n\n // Validate payload size\n const sizeResult = validatePayloadSize(component, limits)\n if (!sizeResult.valid) {\n errors.push(...(sizeResult.errors || []))\n }\n\n // Type-specific validation\n switch (component.type) {\n case 'chart': {\n const chartResult = validateChartComponent(component.params as ChartComponentParams, limits)\n if (!chartResult.valid) {\n errors.push(...(chartResult.errors || []))\n }\n break\n }\n\n case 'table': {\n const tableResult = validateTableComponent(component.params as TableComponentParams, limits)\n if (!tableResult.valid) {\n errors.push(...(tableResult.errors || []))\n }\n break\n }\n\n case 'metric': {\n // Basic validation for metrics\n const metricParams = component.params as any\n if (!metricParams.title || !metricParams.value) {\n errors.push({\n path: 'params',\n message: 'Metric must have title and value',\n code: 'INVALID_METRIC',\n })\n }\n break\n }\n\n case 'text': {\n // Basic validation for text\n const textParams = component.params as any\n if (!textParams.content) {\n errors.push({\n path: 'params',\n message: 'Text component must have content',\n code: 'INVALID_TEXT',\n })\n }\n break\n }\n\n case 'iframe': {\n // Basic validation for iframe\n const iframeParams = component.params as any\n if (!iframeParams.url) {\n errors.push({\n path: 'params',\n message: 'Iframe component must have url',\n code: 'INVALID_IFRAME',\n })\n } else {\n // Validate iframe domain against whitelist\n const iframeResult = validateIframeDomain(iframeParams.url, {\n policy: options?.iframePolicy,\n customDomains: options?.customIframeDomains,\n })\n if (!iframeResult.valid) {\n errors.push(...(iframeResult.errors || []))\n }\n }\n break\n }\n\n case 'image': {\n // Basic validation for image\n const imageParams = component.params as any\n if (!imageParams.url) {\n errors.push({\n path: 'params',\n message: 'Image component must have url',\n code: 'INVALID_IMAGE',\n })\n }\n break\n }\n\n case 'link': {\n // Basic validation for link\n const linkParams = component.params as any\n if (!linkParams.url) {\n errors.push({\n path: 'params',\n message: 'Link component must have url',\n code: 'INVALID_LINK',\n })\n }\n break\n }\n\n case 'action': {\n // Basic validation for action\n const actionParams = component.params as any\n if (!actionParams.label) {\n errors.push({\n path: 'params',\n message: 'Action component must have label',\n code: 'INVALID_ACTION',\n })\n }\n break\n }\n\n default:\n // Known types without specific validation pass through — renderer handles errors\n // Truly unknown types (e.g. typos in streamed JSON) are rejected\n if (!KNOWN_COMPONENT_TYPES.has(component.type)) {\n errors.push({\n path: 'type',\n message: `Unknown component type: ${component.type}`,\n code: 'UNKNOWN_COMPONENT_TYPE',\n })\n }\n break\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate entire layout\n *\n * @param layout - The layout to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateLayout(\n layout: UILayout,\n options?: ValidationOptions\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate component count\n if (layout.components.length === 0) {\n errors.push({\n path: 'components',\n message: 'Layout must have at least one component',\n code: 'EMPTY_LAYOUT',\n })\n }\n\n if (layout.components.length > 12) {\n errors.push({\n path: 'components',\n message: `Layout exceeds max components: ${layout.components.length} > 12`,\n code: 'TOO_MANY_COMPONENTS',\n })\n }\n\n // Validate each component\n for (const [index, component] of layout.components.entries()) {\n const result = validateComponent(component, options)\n if (!result.valid) {\n errors.push(\n ...(result.errors?.map((error) => ({\n ...error,\n path: `components[${index}].${error.path}`,\n })) || [])\n )\n }\n }\n\n // Validate grid configuration\n if (layout.grid.columns !== 12) {\n errors.push({\n path: 'grid.columns',\n message: 'Grid must have 12 columns (Bootstrap-like)',\n code: 'INVALID_GRID_COLUMNS',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate a single form field value against field rules\n */\nexport function validateFieldValue(\n value: any,\n field: FormFieldParams\n): { valid: boolean; error?: string } {\n // Required check\n if (field.required) {\n if (value === undefined || value === null || value === '') {\n return { valid: false, error: `${field.label || field.name} is required` }\n }\n if (field.type === 'checkbox' && value !== true) {\n return { valid: false, error: `${field.label || field.name} must be checked` }\n }\n }\n\n // Skip further validation if value is empty and not required\n if (value === undefined || value === null || value === '') {\n return { valid: true }\n }\n\n // Type-specific validation\n switch (field.type) {\n case 'text':\n case 'textarea':\n case 'password':\n if (field.minLength && String(value).length < field.minLength) {\n return { valid: false, error: `Minimum ${field.minLength} characters required` }\n }\n if (field.maxLength && String(value).length > field.maxLength) {\n return { valid: false, error: `Maximum ${field.maxLength} characters allowed` }\n }\n if (field.pattern && !new RegExp(field.pattern).test(String(value))) {\n return { valid: false, error: 'Invalid format' }\n }\n break\n\n case 'email':\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value))) {\n return { valid: false, error: 'Invalid email address' }\n }\n break\n\n case 'number': {\n const numValue = Number(value)\n if (isNaN(numValue)) {\n return { valid: false, error: 'Must be a valid number' }\n }\n if (field.min !== undefined && numValue < field.min) {\n return { valid: false, error: `Minimum value is ${field.min}` }\n }\n if (field.max !== undefined && numValue > field.max) {\n return { valid: false, error: `Maximum value is ${field.max}` }\n }\n break\n }\n\n case 'date':\n if (field.minDate && value < field.minDate) {\n return { valid: false, error: `Date must be after ${field.minDate}` }\n }\n if (field.maxDate && value > field.maxDate) {\n return { valid: false, error: `Date must be before ${field.maxDate}` }\n }\n break\n\n case 'select':\n case 'radio':\n // Validate that value is one of the options\n if (field.options && field.options.length > 0) {\n const validValues = field.options.map((opt) => opt.value)\n if (!validValues.includes(String(value))) {\n return { valid: false, error: 'Please select a valid option' }\n }\n }\n break\n }\n\n return { valid: true }\n}\n\n/**\n * Validate entire form data against field definitions\n */\nexport function validateFormData(\n data: Record<string, any>,\n fields: FormFieldParams[]\n): { valid: boolean; errors: Record<string, string> } {\n const errors: Record<string, string> = {}\n\n for (const field of fields) {\n const result = validateFieldValue(data[field.name], field)\n if (!result.valid && result.error) {\n errors[field.name] = result.error\n }\n }\n\n return {\n valid: Object.keys(errors).length === 0,\n errors,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/services/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EAElB,MAAM,UAAU,CAAA;AAYjB;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/services/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EAElB,MAAM,UAAU,CAAA;AAYjB;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,UAgHlC,CAAA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,gBAAgB,CA6DxF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,GAAE,cAAwC,GAC/C,gBAAgB,CA8ClB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,GAAE,cAAwC,GAC/C,gBAAgB,CAmDlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,WAAW,EACtB,MAAM,GAAE,cAAwC,GAC/C,gBAAgB,CAiBlB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC5D,gBAAgB,CA8ClB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CA0IlB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CA8ClB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,eAAe,GACrB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA0EpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,MAAM,EAAE,eAAe,EAAE,GACxB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAcpD"}
|
|
@@ -110,7 +110,18 @@ const DEFAULT_IFRAME_DOMAINS = [
|
|
|
110
110
|
"amazon.co.jp",
|
|
111
111
|
"images-amazon.com",
|
|
112
112
|
"media-amazon.com",
|
|
113
|
-
"ws-na.amazon-adsystem.com"
|
|
113
|
+
"ws-na.amazon-adsystem.com",
|
|
114
|
+
// MCP Connectors — embed-capable services (v2.2.7)
|
|
115
|
+
"gamma.app",
|
|
116
|
+
"www.gamma.app",
|
|
117
|
+
"app.hubspot.com",
|
|
118
|
+
"share.hubspot.com",
|
|
119
|
+
"www.data.gouv.fr",
|
|
120
|
+
"data.gouv.fr",
|
|
121
|
+
"clinicaltrials.gov",
|
|
122
|
+
"www.clinicaltrials.gov",
|
|
123
|
+
"linear.app",
|
|
124
|
+
"www.linear.app"
|
|
114
125
|
];
|
|
115
126
|
function validateGridPosition(position) {
|
|
116
127
|
const errors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sources":["../../src/services/validation.ts"],"sourcesContent":["/**\n * Component Validation Service\n * Phase 0: Resource Limits & Schema Validation\n *\n * Validates LLM-generated components against:\n * - JSON schema\n * - Resource limits (data points, payload size, grid bounds)\n * - Security constraints (domain whitelist, XSS prevention)\n */\n\nimport type {\n UIComponent,\n UILayout,\n ValidationResult,\n ResourceLimits,\n ChartComponentParams,\n TableComponentParams,\n FormFieldParams,\n IframePolicy,\n ValidationOptions,\n ComponentType,\n} from '../types'\n\n/**\n * All known ComponentType values — used to distinguish known-but-unvalidated\n * types (pass through) from truly unknown strings (reject).\n */\nconst KNOWN_COMPONENT_TYPES: Set<string> = new Set<ComponentType>([\n 'chart', 'table', 'metric', 'text', 'grid', 'iframe', 'image', 'link',\n 'action', 'footer', 'carousel', 'artifact', 'form', 'modal',\n 'action-group', 'image-gallery', 'video', 'code', 'map',\n])\n\n/**\n * Default resource limits (configurable via env)\n */\nexport const DEFAULT_RESOURCE_LIMITS: ResourceLimits = {\n maxDataPoints: 1000,\n maxTableRows: 100,\n maxPayloadSize: 50 * 1024, // 50KB\n renderTimeout: 5000, // 5 seconds\n}\n\n/**\n * Default allowed iframe domains (whitelist)\n * Must match CSP frame-src directive\n * Updated Sprint 7: Added code, design, docs, and map providers\n *\n * This list is exported for transparency and can be extended via ValidationOptions\n */\nexport const DEFAULT_IFRAME_DOMAINS = [\n // Charts\n 'quickchart.io',\n 'www.quickchart.io',\n\n // Deposium\n 'deposium.com',\n 'deposium.vip',\n 'deposium.ai',\n\n // Development\n 'localhost',\n\n // Video providers (Sprint 5)\n 'youtube.com',\n 'www.youtube.com',\n 'youtube-nocookie.com',\n 'www.youtube-nocookie.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n\n // Code playgrounds (Sprint 7)\n 'codepen.io',\n 'codesandbox.io',\n 'stackblitz.com',\n 'jsfiddle.net',\n\n // Design tools (Sprint 7)\n 'figma.com',\n 'www.figma.com',\n 'miro.com',\n\n // Google services (Sprint 7)\n 'docs.google.com',\n 'drive.google.com',\n 'sheets.google.com',\n 'slides.google.com',\n 'maps.google.com',\n 'www.google.com',\n 'datastudio.google.com',\n 'lookerstudio.google.com',\n\n // Productivity (Sprint 7)\n 'airtable.com',\n 'notion.so',\n 'www.notion.so',\n\n // Maps (Sprint 7)\n 'openstreetmap.org',\n 'www.openstreetmap.org',\n\n // Analytics/Dashboards (Sprint 7)\n 'public.tableau.com',\n 'app.powerbi.com',\n 'observablehq.com',\n\n // Diagrams & Whiteboards (v2.0.0)\n 'mermaid.live',\n 'excalidraw.com',\n 'lucidchart.com',\n 'lucid.app',\n\n // Video - Business (v2.0.0)\n 'loom.com',\n 'www.loom.com',\n 'cloudflarestream.com',\n 'streamable.com',\n\n // Code repositories (v2.0.0)\n 'github.com',\n 'gist.github.com',\n 'gitlab.com',\n 'replit.com',\n 'glitch.com',\n\n // Business tools (v2.0.0)\n 'calendly.com',\n 'typeform.com',\n 'cal.com',\n\n // Design (v2.0.0)\n 'canva.com',\n\n // Deploy previews (v2.0.0)\n 'vercel.app',\n 'netlify.app',\n\n // E-commerce (v2.0.0)\n 'amazon.com',\n 'amazon.fr',\n 'amazon.de',\n 'amazon.co.uk',\n 'amazon.es',\n 'amazon.it',\n 'amazon.ca',\n 'amazon.co.jp',\n 'images-amazon.com',\n 'media-amazon.com',\n 'ws-na.amazon-adsystem.com',\n]\n\n/**\n * Validate grid position bounds (1-12 columns)\n */\nexport function validateGridPosition(position: UIComponent['position']): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // ✅ PHASE 3 FIX: Defensive check for undefined position\n if (!position) {\n return {\n valid: false,\n errors: [\n {\n path: 'position',\n message: 'Position is required',\n code: 'MISSING_POSITION',\n },\n ],\n }\n }\n\n if (position.colStart < 1 || position.colStart > 12) {\n errors.push({\n path: 'position.colStart',\n message: 'Column start must be between 1 and 12',\n code: 'INVALID_GRID_COL_START',\n })\n }\n\n if (position.colSpan < 1 || position.colSpan > 12) {\n errors.push({\n path: 'position.colSpan',\n message: 'Column span must be between 1 and 12',\n code: 'INVALID_GRID_COL_SPAN',\n })\n }\n\n if (position.colStart + position.colSpan - 1 > 12) {\n errors.push({\n path: 'position',\n message: 'Column start + span exceeds grid width (12)',\n code: 'GRID_OVERFLOW',\n })\n }\n\n if (position.rowStart !== undefined && position.rowStart < 1) {\n errors.push({\n path: 'position.rowStart',\n message: 'Row start must be >= 1',\n code: 'INVALID_GRID_ROW_START',\n })\n }\n\n if (position.rowSpan !== undefined && position.rowSpan < 1) {\n errors.push({\n path: 'position.rowSpan',\n message: 'Row span must be >= 1',\n code: 'INVALID_GRID_ROW_SPAN',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate chart component against resource limits\n */\nexport function validateChartComponent(\n params: ChartComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate data points count\n const totalDataPoints = params.data.datasets.reduce(\n (sum, dataset) => sum + dataset.data.length,\n 0\n )\n\n if (totalDataPoints > limits.maxDataPoints) {\n errors.push({\n path: 'params.data',\n message: `Chart exceeds max data points: ${totalDataPoints} > ${limits.maxDataPoints}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate labels match dataset length\n const expectedLength = params.data.labels.length\n for (const [index, dataset] of params.data.datasets.entries()) {\n if (dataset.data.length !== expectedLength) {\n errors.push({\n path: `params.data.datasets[${index}]`,\n message: `Dataset length mismatch: expected ${expectedLength}, got ${dataset.data.length}`,\n code: 'DATA_LENGTH_MISMATCH',\n })\n }\n }\n\n // Validate numeric data\n for (const [index, dataset] of params.data.datasets.entries()) {\n for (const [dataIndex, value] of dataset.data.entries()) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n errors.push({\n path: `params.data.datasets[${index}].data[${dataIndex}]`,\n message: `Invalid data value: ${value} (must be finite number)`,\n code: 'INVALID_DATA_TYPE',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate table component against resource limits\n */\nexport function validateTableComponent(\n params: TableComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate row count\n if (params.rows.length > limits.maxTableRows) {\n errors.push({\n path: 'params.rows',\n message: `Table exceeds max rows: ${params.rows.length} > ${limits.maxTableRows}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate columns\n if (params.columns.length === 0) {\n errors.push({\n path: 'params.columns',\n message: 'Table must have at least one column',\n code: 'EMPTY_COLUMNS',\n })\n }\n\n // Validate column keys are unique\n const columnKeys = new Set<string>()\n for (const [index, column] of params.columns.entries()) {\n if (columnKeys.has(column.key)) {\n errors.push({\n path: `params.columns[${index}]`,\n message: `Duplicate column key: ${column.key}`,\n code: 'DUPLICATE_COLUMN_KEY',\n })\n }\n columnKeys.add(column.key)\n }\n\n // Validate rows have valid data for defined columns\n for (const [rowIndex, row] of params.rows.entries()) {\n for (const column of params.columns) {\n if (!(column.key in row)) {\n errors.push({\n path: `params.rows[${rowIndex}]`,\n message: `Missing column key: ${column.key}`,\n code: 'MISSING_COLUMN_DATA',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate payload size\n */\nexport function validatePayloadSize(\n component: UIComponent,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const payloadSize = JSON.stringify(component).length\n\n if (payloadSize > limits.maxPayloadSize) {\n return {\n valid: false,\n errors: [\n {\n path: 'component',\n message: `Payload size exceeds limit: ${payloadSize} > ${limits.maxPayloadSize} bytes`,\n code: 'PAYLOAD_TOO_LARGE',\n },\n ],\n }\n }\n\n return { valid: true }\n}\n\n/**\n * Sanitize string to prevent XSS\n * Basic implementation - DOMPurify used at render time\n */\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/javascript:/gi, '')\n}\n\n/**\n * Validate iframe domain against whitelist\n *\n * @param url - The URL to validate\n * @param options - Optional validation options\n * @param options.policy - 'strict' (default), 'extend', or 'allow-all'\n * @param options.customDomains - Additional domains when policy is 'extend'\n */\nexport function validateIframeDomain(\n url: string,\n options?: { policy?: IframePolicy; customDomains?: string[] }\n): ValidationResult {\n // If allow-all, skip validation\n if (options?.policy === 'allow-all') {\n return { valid: true }\n }\n\n try {\n const parsedUrl = new URL(url)\n const domain = parsedUrl.hostname\n\n // Build effective whitelist\n let effectiveWhitelist = DEFAULT_IFRAME_DOMAINS\n if (options?.policy === 'extend' && options.customDomains) {\n effectiveWhitelist = [...DEFAULT_IFRAME_DOMAINS, ...options.customDomains]\n }\n\n const isAllowed = effectiveWhitelist.some(\n (allowed) => domain === allowed || domain.endsWith(`.${allowed}`) || allowed === 'localhost'\n )\n\n if (!isAllowed) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: `Domain not whitelisted: ${domain}`,\n code: 'DOMAIN_NOT_WHITELISTED',\n },\n ],\n }\n }\n\n return { valid: true }\n } catch (error) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: 'Invalid URL format',\n code: 'INVALID_URL',\n },\n ],\n }\n }\n}\n\n/**\n * Validate entire component\n *\n * @param component - The component to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateComponent(\n component: UIComponent,\n options?: ValidationOptions\n): ValidationResult {\n const limits = options?.limits ?? DEFAULT_RESOURCE_LIMITS\n const errors: ValidationResult['errors'] = []\n\n // Validate grid position\n const gridResult = validateGridPosition(component.position)\n if (!gridResult.valid) {\n errors.push(...(gridResult.errors || []))\n }\n\n // Validate payload size\n const sizeResult = validatePayloadSize(component, limits)\n if (!sizeResult.valid) {\n errors.push(...(sizeResult.errors || []))\n }\n\n // Type-specific validation\n switch (component.type) {\n case 'chart': {\n const chartResult = validateChartComponent(component.params as ChartComponentParams, limits)\n if (!chartResult.valid) {\n errors.push(...(chartResult.errors || []))\n }\n break\n }\n\n case 'table': {\n const tableResult = validateTableComponent(component.params as TableComponentParams, limits)\n if (!tableResult.valid) {\n errors.push(...(tableResult.errors || []))\n }\n break\n }\n\n case 'metric': {\n // Basic validation for metrics\n const metricParams = component.params as any\n if (!metricParams.title || !metricParams.value) {\n errors.push({\n path: 'params',\n message: 'Metric must have title and value',\n code: 'INVALID_METRIC',\n })\n }\n break\n }\n\n case 'text': {\n // Basic validation for text\n const textParams = component.params as any\n if (!textParams.content) {\n errors.push({\n path: 'params',\n message: 'Text component must have content',\n code: 'INVALID_TEXT',\n })\n }\n break\n }\n\n case 'iframe': {\n // Basic validation for iframe\n const iframeParams = component.params as any\n if (!iframeParams.url) {\n errors.push({\n path: 'params',\n message: 'Iframe component must have url',\n code: 'INVALID_IFRAME',\n })\n } else {\n // Validate iframe domain against whitelist\n const iframeResult = validateIframeDomain(iframeParams.url, {\n policy: options?.iframePolicy,\n customDomains: options?.customIframeDomains,\n })\n if (!iframeResult.valid) {\n errors.push(...(iframeResult.errors || []))\n }\n }\n break\n }\n\n case 'image': {\n // Basic validation for image\n const imageParams = component.params as any\n if (!imageParams.url) {\n errors.push({\n path: 'params',\n message: 'Image component must have url',\n code: 'INVALID_IMAGE',\n })\n }\n break\n }\n\n case 'link': {\n // Basic validation for link\n const linkParams = component.params as any\n if (!linkParams.url) {\n errors.push({\n path: 'params',\n message: 'Link component must have url',\n code: 'INVALID_LINK',\n })\n }\n break\n }\n\n case 'action': {\n // Basic validation for action\n const actionParams = component.params as any\n if (!actionParams.label) {\n errors.push({\n path: 'params',\n message: 'Action component must have label',\n code: 'INVALID_ACTION',\n })\n }\n break\n }\n\n default:\n // Known types without specific validation pass through — renderer handles errors\n // Truly unknown types (e.g. typos in streamed JSON) are rejected\n if (!KNOWN_COMPONENT_TYPES.has(component.type)) {\n errors.push({\n path: 'type',\n message: `Unknown component type: ${component.type}`,\n code: 'UNKNOWN_COMPONENT_TYPE',\n })\n }\n break\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate entire layout\n *\n * @param layout - The layout to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateLayout(\n layout: UILayout,\n options?: ValidationOptions\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate component count\n if (layout.components.length === 0) {\n errors.push({\n path: 'components',\n message: 'Layout must have at least one component',\n code: 'EMPTY_LAYOUT',\n })\n }\n\n if (layout.components.length > 12) {\n errors.push({\n path: 'components',\n message: `Layout exceeds max components: ${layout.components.length} > 12`,\n code: 'TOO_MANY_COMPONENTS',\n })\n }\n\n // Validate each component\n for (const [index, component] of layout.components.entries()) {\n const result = validateComponent(component, options)\n if (!result.valid) {\n errors.push(\n ...(result.errors?.map((error) => ({\n ...error,\n path: `components[${index}].${error.path}`,\n })) || [])\n )\n }\n }\n\n // Validate grid configuration\n if (layout.grid.columns !== 12) {\n errors.push({\n path: 'grid.columns',\n message: 'Grid must have 12 columns (Bootstrap-like)',\n code: 'INVALID_GRID_COLUMNS',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate a single form field value against field rules\n */\nexport function validateFieldValue(\n value: any,\n field: FormFieldParams\n): { valid: boolean; error?: string } {\n // Required check\n if (field.required) {\n if (value === undefined || value === null || value === '') {\n return { valid: false, error: `${field.label || field.name} is required` }\n }\n if (field.type === 'checkbox' && value !== true) {\n return { valid: false, error: `${field.label || field.name} must be checked` }\n }\n }\n\n // Skip further validation if value is empty and not required\n if (value === undefined || value === null || value === '') {\n return { valid: true }\n }\n\n // Type-specific validation\n switch (field.type) {\n case 'text':\n case 'textarea':\n case 'password':\n if (field.minLength && String(value).length < field.minLength) {\n return { valid: false, error: `Minimum ${field.minLength} characters required` }\n }\n if (field.maxLength && String(value).length > field.maxLength) {\n return { valid: false, error: `Maximum ${field.maxLength} characters allowed` }\n }\n if (field.pattern && !new RegExp(field.pattern).test(String(value))) {\n return { valid: false, error: 'Invalid format' }\n }\n break\n\n case 'email':\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value))) {\n return { valid: false, error: 'Invalid email address' }\n }\n break\n\n case 'number': {\n const numValue = Number(value)\n if (isNaN(numValue)) {\n return { valid: false, error: 'Must be a valid number' }\n }\n if (field.min !== undefined && numValue < field.min) {\n return { valid: false, error: `Minimum value is ${field.min}` }\n }\n if (field.max !== undefined && numValue > field.max) {\n return { valid: false, error: `Maximum value is ${field.max}` }\n }\n break\n }\n\n case 'date':\n if (field.minDate && value < field.minDate) {\n return { valid: false, error: `Date must be after ${field.minDate}` }\n }\n if (field.maxDate && value > field.maxDate) {\n return { valid: false, error: `Date must be before ${field.maxDate}` }\n }\n break\n\n case 'select':\n case 'radio':\n // Validate that value is one of the options\n if (field.options && field.options.length > 0) {\n const validValues = field.options.map((opt) => opt.value)\n if (!validValues.includes(String(value))) {\n return { valid: false, error: 'Please select a valid option' }\n }\n }\n break\n }\n\n return { valid: true }\n}\n\n/**\n * Validate entire form data against field definitions\n */\nexport function validateFormData(\n data: Record<string, any>,\n fields: FormFieldParams[]\n): { valid: boolean; errors: Record<string, string> } {\n const errors: Record<string, string> = {}\n\n for (const field of fields) {\n const result = validateFieldValue(data[field.name], field)\n if (!result.valid && result.error) {\n errors[field.name] = result.error\n }\n }\n\n return {\n valid: Object.keys(errors).length === 0,\n errors,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sources":["../../src/services/validation.ts"],"sourcesContent":["/**\n * Component Validation Service\n * Phase 0: Resource Limits & Schema Validation\n *\n * Validates LLM-generated components against:\n * - JSON schema\n * - Resource limits (data points, payload size, grid bounds)\n * - Security constraints (domain whitelist, XSS prevention)\n */\n\nimport type {\n UIComponent,\n UILayout,\n ValidationResult,\n ResourceLimits,\n ChartComponentParams,\n TableComponentParams,\n FormFieldParams,\n IframePolicy,\n ValidationOptions,\n ComponentType,\n} from '../types'\n\n/**\n * All known ComponentType values — used to distinguish known-but-unvalidated\n * types (pass through) from truly unknown strings (reject).\n */\nconst KNOWN_COMPONENT_TYPES: Set<string> = new Set<ComponentType>([\n 'chart', 'table', 'metric', 'text', 'grid', 'iframe', 'image', 'link',\n 'action', 'footer', 'carousel', 'artifact', 'form', 'modal',\n 'action-group', 'image-gallery', 'video', 'code', 'map',\n])\n\n/**\n * Default resource limits (configurable via env)\n */\nexport const DEFAULT_RESOURCE_LIMITS: ResourceLimits = {\n maxDataPoints: 1000,\n maxTableRows: 100,\n maxPayloadSize: 50 * 1024, // 50KB\n renderTimeout: 5000, // 5 seconds\n}\n\n/**\n * Default allowed iframe domains (whitelist)\n * Must match CSP frame-src directive\n * Updated Sprint 7: Added code, design, docs, and map providers\n *\n * This list is exported for transparency and can be extended via ValidationOptions\n */\nexport const DEFAULT_IFRAME_DOMAINS = [\n // Charts\n 'quickchart.io',\n 'www.quickchart.io',\n\n // Deposium\n 'deposium.com',\n 'deposium.vip',\n 'deposium.ai',\n\n // Development\n 'localhost',\n\n // Video providers (Sprint 5)\n 'youtube.com',\n 'www.youtube.com',\n 'youtube-nocookie.com',\n 'www.youtube-nocookie.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n\n // Code playgrounds (Sprint 7)\n 'codepen.io',\n 'codesandbox.io',\n 'stackblitz.com',\n 'jsfiddle.net',\n\n // Design tools (Sprint 7)\n 'figma.com',\n 'www.figma.com',\n 'miro.com',\n\n // Google services (Sprint 7)\n 'docs.google.com',\n 'drive.google.com',\n 'sheets.google.com',\n 'slides.google.com',\n 'maps.google.com',\n 'www.google.com',\n 'datastudio.google.com',\n 'lookerstudio.google.com',\n\n // Productivity (Sprint 7)\n 'airtable.com',\n 'notion.so',\n 'www.notion.so',\n\n // Maps (Sprint 7)\n 'openstreetmap.org',\n 'www.openstreetmap.org',\n\n // Analytics/Dashboards (Sprint 7)\n 'public.tableau.com',\n 'app.powerbi.com',\n 'observablehq.com',\n\n // Diagrams & Whiteboards (v2.0.0)\n 'mermaid.live',\n 'excalidraw.com',\n 'lucidchart.com',\n 'lucid.app',\n\n // Video - Business (v2.0.0)\n 'loom.com',\n 'www.loom.com',\n 'cloudflarestream.com',\n 'streamable.com',\n\n // Code repositories (v2.0.0)\n 'github.com',\n 'gist.github.com',\n 'gitlab.com',\n 'replit.com',\n 'glitch.com',\n\n // Business tools (v2.0.0)\n 'calendly.com',\n 'typeform.com',\n 'cal.com',\n\n // Design (v2.0.0)\n 'canva.com',\n\n // Deploy previews (v2.0.0)\n 'vercel.app',\n 'netlify.app',\n\n // E-commerce (v2.0.0)\n 'amazon.com',\n 'amazon.fr',\n 'amazon.de',\n 'amazon.co.uk',\n 'amazon.es',\n 'amazon.it',\n 'amazon.ca',\n 'amazon.co.jp',\n 'images-amazon.com',\n 'media-amazon.com',\n 'ws-na.amazon-adsystem.com',\n\n // MCP Connectors — embed-capable services (v2.2.7)\n 'gamma.app',\n 'www.gamma.app',\n 'app.hubspot.com',\n 'share.hubspot.com',\n 'www.data.gouv.fr',\n 'data.gouv.fr',\n 'clinicaltrials.gov',\n 'www.clinicaltrials.gov',\n 'linear.app',\n 'www.linear.app',\n]\n\n/**\n * Validate grid position bounds (1-12 columns)\n */\nexport function validateGridPosition(position: UIComponent['position']): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // ✅ PHASE 3 FIX: Defensive check for undefined position\n if (!position) {\n return {\n valid: false,\n errors: [\n {\n path: 'position',\n message: 'Position is required',\n code: 'MISSING_POSITION',\n },\n ],\n }\n }\n\n if (position.colStart < 1 || position.colStart > 12) {\n errors.push({\n path: 'position.colStart',\n message: 'Column start must be between 1 and 12',\n code: 'INVALID_GRID_COL_START',\n })\n }\n\n if (position.colSpan < 1 || position.colSpan > 12) {\n errors.push({\n path: 'position.colSpan',\n message: 'Column span must be between 1 and 12',\n code: 'INVALID_GRID_COL_SPAN',\n })\n }\n\n if (position.colStart + position.colSpan - 1 > 12) {\n errors.push({\n path: 'position',\n message: 'Column start + span exceeds grid width (12)',\n code: 'GRID_OVERFLOW',\n })\n }\n\n if (position.rowStart !== undefined && position.rowStart < 1) {\n errors.push({\n path: 'position.rowStart',\n message: 'Row start must be >= 1',\n code: 'INVALID_GRID_ROW_START',\n })\n }\n\n if (position.rowSpan !== undefined && position.rowSpan < 1) {\n errors.push({\n path: 'position.rowSpan',\n message: 'Row span must be >= 1',\n code: 'INVALID_GRID_ROW_SPAN',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate chart component against resource limits\n */\nexport function validateChartComponent(\n params: ChartComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate data points count\n const totalDataPoints = params.data.datasets.reduce(\n (sum, dataset) => sum + dataset.data.length,\n 0\n )\n\n if (totalDataPoints > limits.maxDataPoints) {\n errors.push({\n path: 'params.data',\n message: `Chart exceeds max data points: ${totalDataPoints} > ${limits.maxDataPoints}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate labels match dataset length\n const expectedLength = params.data.labels.length\n for (const [index, dataset] of params.data.datasets.entries()) {\n if (dataset.data.length !== expectedLength) {\n errors.push({\n path: `params.data.datasets[${index}]`,\n message: `Dataset length mismatch: expected ${expectedLength}, got ${dataset.data.length}`,\n code: 'DATA_LENGTH_MISMATCH',\n })\n }\n }\n\n // Validate numeric data\n for (const [index, dataset] of params.data.datasets.entries()) {\n for (const [dataIndex, value] of dataset.data.entries()) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n errors.push({\n path: `params.data.datasets[${index}].data[${dataIndex}]`,\n message: `Invalid data value: ${value} (must be finite number)`,\n code: 'INVALID_DATA_TYPE',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate table component against resource limits\n */\nexport function validateTableComponent(\n params: TableComponentParams,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate row count\n if (params.rows.length > limits.maxTableRows) {\n errors.push({\n path: 'params.rows',\n message: `Table exceeds max rows: ${params.rows.length} > ${limits.maxTableRows}`,\n code: 'RESOURCE_LIMIT_EXCEEDED',\n })\n }\n\n // Validate columns\n if (params.columns.length === 0) {\n errors.push({\n path: 'params.columns',\n message: 'Table must have at least one column',\n code: 'EMPTY_COLUMNS',\n })\n }\n\n // Validate column keys are unique\n const columnKeys = new Set<string>()\n for (const [index, column] of params.columns.entries()) {\n if (columnKeys.has(column.key)) {\n errors.push({\n path: `params.columns[${index}]`,\n message: `Duplicate column key: ${column.key}`,\n code: 'DUPLICATE_COLUMN_KEY',\n })\n }\n columnKeys.add(column.key)\n }\n\n // Validate rows have valid data for defined columns\n for (const [rowIndex, row] of params.rows.entries()) {\n for (const column of params.columns) {\n if (!(column.key in row)) {\n errors.push({\n path: `params.rows[${rowIndex}]`,\n message: `Missing column key: ${column.key}`,\n code: 'MISSING_COLUMN_DATA',\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate payload size\n */\nexport function validatePayloadSize(\n component: UIComponent,\n limits: ResourceLimits = DEFAULT_RESOURCE_LIMITS\n): ValidationResult {\n const payloadSize = JSON.stringify(component).length\n\n if (payloadSize > limits.maxPayloadSize) {\n return {\n valid: false,\n errors: [\n {\n path: 'component',\n message: `Payload size exceeds limit: ${payloadSize} > ${limits.maxPayloadSize} bytes`,\n code: 'PAYLOAD_TOO_LARGE',\n },\n ],\n }\n }\n\n return { valid: true }\n}\n\n/**\n * Sanitize string to prevent XSS\n * Basic implementation - DOMPurify used at render time\n */\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/javascript:/gi, '')\n}\n\n/**\n * Validate iframe domain against whitelist\n *\n * @param url - The URL to validate\n * @param options - Optional validation options\n * @param options.policy - 'strict' (default), 'extend', or 'allow-all'\n * @param options.customDomains - Additional domains when policy is 'extend'\n */\nexport function validateIframeDomain(\n url: string,\n options?: { policy?: IframePolicy; customDomains?: string[] }\n): ValidationResult {\n // If allow-all, skip validation\n if (options?.policy === 'allow-all') {\n return { valid: true }\n }\n\n try {\n const parsedUrl = new URL(url)\n const domain = parsedUrl.hostname\n\n // Build effective whitelist\n let effectiveWhitelist = DEFAULT_IFRAME_DOMAINS\n if (options?.policy === 'extend' && options.customDomains) {\n effectiveWhitelist = [...DEFAULT_IFRAME_DOMAINS, ...options.customDomains]\n }\n\n const isAllowed = effectiveWhitelist.some(\n (allowed) => domain === allowed || domain.endsWith(`.${allowed}`) || allowed === 'localhost'\n )\n\n if (!isAllowed) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: `Domain not whitelisted: ${domain}`,\n code: 'DOMAIN_NOT_WHITELISTED',\n },\n ],\n }\n }\n\n return { valid: true }\n } catch (error) {\n return {\n valid: false,\n errors: [\n {\n path: 'url',\n message: 'Invalid URL format',\n code: 'INVALID_URL',\n },\n ],\n }\n }\n}\n\n/**\n * Validate entire component\n *\n * @param component - The component to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateComponent(\n component: UIComponent,\n options?: ValidationOptions\n): ValidationResult {\n const limits = options?.limits ?? DEFAULT_RESOURCE_LIMITS\n const errors: ValidationResult['errors'] = []\n\n // Validate grid position\n const gridResult = validateGridPosition(component.position)\n if (!gridResult.valid) {\n errors.push(...(gridResult.errors || []))\n }\n\n // Validate payload size\n const sizeResult = validatePayloadSize(component, limits)\n if (!sizeResult.valid) {\n errors.push(...(sizeResult.errors || []))\n }\n\n // Type-specific validation\n switch (component.type) {\n case 'chart': {\n const chartResult = validateChartComponent(component.params as ChartComponentParams, limits)\n if (!chartResult.valid) {\n errors.push(...(chartResult.errors || []))\n }\n break\n }\n\n case 'table': {\n const tableResult = validateTableComponent(component.params as TableComponentParams, limits)\n if (!tableResult.valid) {\n errors.push(...(tableResult.errors || []))\n }\n break\n }\n\n case 'metric': {\n // Basic validation for metrics\n const metricParams = component.params as any\n if (!metricParams.title || !metricParams.value) {\n errors.push({\n path: 'params',\n message: 'Metric must have title and value',\n code: 'INVALID_METRIC',\n })\n }\n break\n }\n\n case 'text': {\n // Basic validation for text\n const textParams = component.params as any\n if (!textParams.content) {\n errors.push({\n path: 'params',\n message: 'Text component must have content',\n code: 'INVALID_TEXT',\n })\n }\n break\n }\n\n case 'iframe': {\n // Basic validation for iframe\n const iframeParams = component.params as any\n if (!iframeParams.url) {\n errors.push({\n path: 'params',\n message: 'Iframe component must have url',\n code: 'INVALID_IFRAME',\n })\n } else {\n // Validate iframe domain against whitelist\n const iframeResult = validateIframeDomain(iframeParams.url, {\n policy: options?.iframePolicy,\n customDomains: options?.customIframeDomains,\n })\n if (!iframeResult.valid) {\n errors.push(...(iframeResult.errors || []))\n }\n }\n break\n }\n\n case 'image': {\n // Basic validation for image\n const imageParams = component.params as any\n if (!imageParams.url) {\n errors.push({\n path: 'params',\n message: 'Image component must have url',\n code: 'INVALID_IMAGE',\n })\n }\n break\n }\n\n case 'link': {\n // Basic validation for link\n const linkParams = component.params as any\n if (!linkParams.url) {\n errors.push({\n path: 'params',\n message: 'Link component must have url',\n code: 'INVALID_LINK',\n })\n }\n break\n }\n\n case 'action': {\n // Basic validation for action\n const actionParams = component.params as any\n if (!actionParams.label) {\n errors.push({\n path: 'params',\n message: 'Action component must have label',\n code: 'INVALID_ACTION',\n })\n }\n break\n }\n\n default:\n // Known types without specific validation pass through — renderer handles errors\n // Truly unknown types (e.g. typos in streamed JSON) are rejected\n if (!KNOWN_COMPONENT_TYPES.has(component.type)) {\n errors.push({\n path: 'type',\n message: `Unknown component type: ${component.type}`,\n code: 'UNKNOWN_COMPONENT_TYPE',\n })\n }\n break\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate entire layout\n *\n * @param layout - The layout to validate\n * @param options - Optional validation options (limits, iframePolicy, customIframeDomains)\n */\nexport function validateLayout(\n layout: UILayout,\n options?: ValidationOptions\n): ValidationResult {\n const errors: ValidationResult['errors'] = []\n\n // Validate component count\n if (layout.components.length === 0) {\n errors.push({\n path: 'components',\n message: 'Layout must have at least one component',\n code: 'EMPTY_LAYOUT',\n })\n }\n\n if (layout.components.length > 12) {\n errors.push({\n path: 'components',\n message: `Layout exceeds max components: ${layout.components.length} > 12`,\n code: 'TOO_MANY_COMPONENTS',\n })\n }\n\n // Validate each component\n for (const [index, component] of layout.components.entries()) {\n const result = validateComponent(component, options)\n if (!result.valid) {\n errors.push(\n ...(result.errors?.map((error) => ({\n ...error,\n path: `components[${index}].${error.path}`,\n })) || [])\n )\n }\n }\n\n // Validate grid configuration\n if (layout.grid.columns !== 12) {\n errors.push({\n path: 'grid.columns',\n message: 'Grid must have 12 columns (Bootstrap-like)',\n code: 'INVALID_GRID_COLUMNS',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n }\n}\n\n/**\n * Validate a single form field value against field rules\n */\nexport function validateFieldValue(\n value: any,\n field: FormFieldParams\n): { valid: boolean; error?: string } {\n // Required check\n if (field.required) {\n if (value === undefined || value === null || value === '') {\n return { valid: false, error: `${field.label || field.name} is required` }\n }\n if (field.type === 'checkbox' && value !== true) {\n return { valid: false, error: `${field.label || field.name} must be checked` }\n }\n }\n\n // Skip further validation if value is empty and not required\n if (value === undefined || value === null || value === '') {\n return { valid: true }\n }\n\n // Type-specific validation\n switch (field.type) {\n case 'text':\n case 'textarea':\n case 'password':\n if (field.minLength && String(value).length < field.minLength) {\n return { valid: false, error: `Minimum ${field.minLength} characters required` }\n }\n if (field.maxLength && String(value).length > field.maxLength) {\n return { valid: false, error: `Maximum ${field.maxLength} characters allowed` }\n }\n if (field.pattern && !new RegExp(field.pattern).test(String(value))) {\n return { valid: false, error: 'Invalid format' }\n }\n break\n\n case 'email':\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value))) {\n return { valid: false, error: 'Invalid email address' }\n }\n break\n\n case 'number': {\n const numValue = Number(value)\n if (isNaN(numValue)) {\n return { valid: false, error: 'Must be a valid number' }\n }\n if (field.min !== undefined && numValue < field.min) {\n return { valid: false, error: `Minimum value is ${field.min}` }\n }\n if (field.max !== undefined && numValue > field.max) {\n return { valid: false, error: `Maximum value is ${field.max}` }\n }\n break\n }\n\n case 'date':\n if (field.minDate && value < field.minDate) {\n return { valid: false, error: `Date must be after ${field.minDate}` }\n }\n if (field.maxDate && value > field.maxDate) {\n return { valid: false, error: `Date must be before ${field.maxDate}` }\n }\n break\n\n case 'select':\n case 'radio':\n // Validate that value is one of the options\n if (field.options && field.options.length > 0) {\n const validValues = field.options.map((opt) => opt.value)\n if (!validValues.includes(String(value))) {\n return { valid: false, error: 'Please select a valid option' }\n }\n }\n break\n }\n\n return { valid: true }\n}\n\n/**\n * Validate entire form data against field definitions\n */\nexport function validateFormData(\n data: Record<string, any>,\n fields: FormFieldParams[]\n): { valid: boolean; errors: Record<string, string> } {\n const errors: Record<string, string> = {}\n\n for (const field of fields) {\n const result = validateFieldValue(data[field.name], field)\n if (!result.valid && result.error) {\n errors[field.name] = result.error\n }\n }\n\n return {\n valid: Object.keys(errors).length === 0,\n errors,\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -148,6 +148,18 @@ export const DEFAULT_IFRAME_DOMAINS = [
|
|
|
148
148
|
'images-amazon.com',
|
|
149
149
|
'media-amazon.com',
|
|
150
150
|
'ws-na.amazon-adsystem.com',
|
|
151
|
+
|
|
152
|
+
// MCP Connectors — embed-capable services (v2.2.7)
|
|
153
|
+
'gamma.app',
|
|
154
|
+
'www.gamma.app',
|
|
155
|
+
'app.hubspot.com',
|
|
156
|
+
'share.hubspot.com',
|
|
157
|
+
'www.data.gouv.fr',
|
|
158
|
+
'data.gouv.fr',
|
|
159
|
+
'clinicaltrials.gov',
|
|
160
|
+
'www.clinicaltrials.gov',
|
|
161
|
+
'linear.app',
|
|
162
|
+
'www.linear.app',
|
|
151
163
|
]
|
|
152
164
|
|
|
153
165
|
/**
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/csstype@3.2.1/node_modules/csstype/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/jsx.d.ts","../node_modules/.pnpm/@types+trusted-types@2.0.7/node_modules/@types/trusted-types/lib/index.d.ts","../node_modules/.pnpm/dompurify@3.3.3/node_modules/dompurify/dist/purify.es.d.mts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/scheduler.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/component.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/flow.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/Suspense.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/hydration.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/signal.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/observable.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/array.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/jsx.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/client.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/server-mock.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/index.d.ts","./src/types/index.ts","./src/services/validation.ts","./src/utils/logger.ts","./src/components/GenerativeUIErrorBoundary.tsx","./src/components/RenderContext.tsx","./src/components/GridRenderer.tsx","./src/components/FooterRenderer.tsx","./src/components/CarouselRenderer.tsx","./src/components/ArtifactRenderer.tsx","./src/hooks/useConditionalField.ts","./src/components/FormFieldRenderer.tsx","./src/context/MCPActionContext.tsx","./src/hooks/useAction.ts","./src/hooks/useFormPersistence.ts","./src/components/FormRenderer.tsx","./src/components/ModalRenderer.tsx","./src/components/ActionGroupRenderer.tsx","./src/components/ExpandableWrapper.tsx","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.config.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/utils.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/basic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.adapters.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/geometric.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/animation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.element.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.point.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.easing.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/color.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/layout.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.colors.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.arc.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.plugins.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.defaults.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.typedRegistry.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.scale.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.registry.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.controller.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.datasetController.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.bar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.bubble.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.doughnut.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.line.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.polarArea.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.pie.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.radar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.scatter.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animations.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animator.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.interaction.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.layouts.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.ticks.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.segment.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.line.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.bar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.base.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.basic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.dom.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.decimation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.filler/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.legend.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.subtitle.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.title.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.core.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.tooltip.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.category.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.linearbase.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.linear.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.logarithmic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.radialLinear.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.time.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.timeseries.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/auto/auto.d.ts","./src/components/ChartJSRenderer.tsx","./src/components/LightboxOverlay.tsx","./src/components/ImageGalleryRenderer.tsx","./src/components/VideoRenderer.tsx","../node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/types/index.d.ts","./src/components/CodeBlockRenderer.tsx","../node_modules/.pnpm/@types+geojson@7946.0.16/node_modules/@types/geojson/index.d.ts","../node_modules/.pnpm/@types+leaflet@1.9.21/node_modules/@types/leaflet/index.d.ts","../node_modules/.pnpm/@types+leaflet.markercluster@1.5.6/node_modules/@types/leaflet.markercluster/index.d.ts","./src/components/MapRenderer.tsx","../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.d.ts","../node_modules/.pnpm/@tanstack+virtual-core@3.13.18/node_modules/@tanstack/virtual-core/dist/esm/utils.d.ts","../node_modules/.pnpm/@tanstack+virtual-core@3.13.18/node_modules/@tanstack/virtual-core/dist/esm/index.d.ts","../node_modules/.pnpm/@tanstack+solid-virtual@3.13.18_solid-js@1.9.11/node_modules/@tanstack/solid-virtual/dist/esm/index.d.ts","./src/components/UIResourceRenderer.tsx","./src/hooks/useStreamingUI.ts","./src/components/StreamingUIRenderer.tsx","./src/components/ActionRenderer.tsx","./src/components/index.ts","./src/components/ResizeHandle.tsx","./src/components/DraggableGridItem.tsx","./src/hooks/useDragDrop.ts","./src/hooks/useResize.ts","./src/components/EditableUIResourceRenderer.tsx","./src/components/ComponentToolbar.tsx","./src/components/GhostText.tsx","./src/components/AutocompleteDropdown.tsx","./src/context/AutocompleteContext.tsx","./src/hooks/useAutocomplete.ts","./src/components/AutocompleteFormField.tsx","./src/hooks/useModal.ts","./src/hooks/index.ts","./src/context/index.ts","./src/plugins/groq.ts","./src/plugins/supabase.ts","./src/plugins/rest.ts","./src/plugins/index.ts","./src/services/component-registry.ts","./src/services/index.ts","./src/index.ts","../node_modules/.pnpm/@vitest+pretty-format@4.0.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/display.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/types.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/timers.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/index.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/hooks.d-C0RE9A6t.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/diff.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/types.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/index.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/hmrPayload.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/customEvent.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/hot.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/dist/node/module-runner.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/config.d.BTfZNUu9.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/worker.d.ZGohxCEd.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/browser.d.DnU_kh8a.d.ts","../node_modules/.pnpm/@vitest+spy@4.0.9/node_modules/@vitest/spy/dist/index.d.ts","../node_modules/.pnpm/tinyrainbow@3.0.3/node_modules/tinyrainbow/dist/index.d.ts","../node_modules/.pnpm/@standard-schema+spec@1.0.0/node_modules/@standard-schema/spec/dist/index.d.ts","../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../node_modules/.pnpm/@vitest+expect@4.0.9/node_modules/@vitest/expect/dist/index.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/global.d.BQDgW9Pr.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/types.d-B8CCKmHt.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/index.d-C-sLYZi-.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/mocker.d.BE_2ls6u.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/suite.d.BJWk38HB.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/utils.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/overloads.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/branding.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/messages.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/index.d.ts","./src/test-setup.ts","./src/types-export.ts","./src/validation.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/importGlob.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/importMeta.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/client.d.ts","./src/vite-env.d.ts","./src/components/GenerativeUIErrorBoundary.default.ts","./src/components/UIResourceRenderer.default.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/config.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/tokens.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/log.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/status.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/constants.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/encoding.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/byte-buffer.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/builder.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/types.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/utils.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/flatbuffers.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/body-compression-method.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/compression-type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/body-compression.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/field-node.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/record-batch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-batch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/endianness.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-kind.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-encoding.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/key-value.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/bool.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/date-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/date.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/decimal.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/time-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/duration.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/fixed-size-binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/fixed-size-list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/precision.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/floating-point.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/interval-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/interval.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/null.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/run-end-encoded.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/struct-.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/time.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/timestamp.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/union-mode.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/union.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/field.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/schema.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-matrix-compressed-axis.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-matrix-index-csx.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index-coo.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index-csf.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/tensor-dim.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/tensor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/message-header.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/metadata-version.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/enum.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/schema.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/row/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/row/struct.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/index.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/globals.typedarray.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/buffer.buffer.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/events.d.ts","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/storage.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/inspector.generated.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/sqlite.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/node/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/whatwg/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/bool.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/null.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/date.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/decimal.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/dictionary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/fixedsizebinary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/float.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/time.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/timestamp.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/interval.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/duration.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/largeutf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/largebinary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/fixedsizelist.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/struct.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/union.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/interfaces.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/vector.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/data.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/recordbatch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/table.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/visitor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/factories.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/interfaces.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/stream.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/block.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/file.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/json.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/message.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/file.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/message.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/reader.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/writer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/serialization.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/bn.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/bit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/visitor/typecomparator.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/Arrow.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/Arrow.dom.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/json_typedef.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/insert_options.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/file_stats.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/duckdb_module.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/udf_function.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/runtime.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/web_file.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/progress.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/bindings_interface.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/connection.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/bindings_base.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/index.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/worker_request.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_bindings_interface.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_bindings.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_connection.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/worker_dispatcher.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/index.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/platform.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/version.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/worker.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/targets/duckdb.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/duckdb-browser.d.ts","./src/plugins/duckdb.ts"],"fileIdsList":[[61,73,78,90,325,374,391,392],[61,73,325,374,391,392],[61,73,78,325,374,391,392],[61,73,78,87,185,186,187,188,325,374,391,392],[61,73,77,78,82,325,374,391,392],[61,73,78,95,159,325,374,391,392],[61,73,77,78,95,164,250,325,374,391,392],[61,73,78,179,325,374,391,392],[61,73,78,174,180,181,182,325,374,391,392],[61,73,77,325,374,391,392],[61,73,78,87,325,374,391,392],[61,73,78,79,87,88,90,91,325,374,391,392],[61,81,325,374,391,392],[61,73,77,78,80,325,374,391,392],[61,73,78,82,325,374,391,392],[61,73,78,161,325,374,391,392],[61,73,77,78,325,374,391,392],[61,73,77,78,167,168,250,325,374,391,392],[61,73,78,79,81,175,325,374,391,392],[61,174,325,374,391,392],[61,63,73,77,78,79,81,82,83,84,85,86,90,92,93,94,95,160,162,163,165,169,170,173,325,374,391,392],[61,81,82,83,84,85,86,88,92,93,94,160,161,162,163,165,169,174,176,177,325,374,391,392],[61,89,325,374,391,392],[61,87,90,91,175,181,182,188,190,325,374,391,392],[61,73,78,89,325,374,391,392],[61,73,77,78,187,325,374,391,392],[61,73,78,80,325,374,391,392],[61,78,95,178,179,180,183,184,185,186,187,189,191,192,196,198,325,374,391,392],[61,78,251,325,374,391,392],[61,78,325,374,391,392],[61,193,194,195,325,374,391,392],[61,78,79,325,374,391,392],[61,79,197,325,374,391,392],[61,244,325,374,391,392],[61,325,374,391,392],[250,325,374,391,392],[325,374,391,392,497],[254,255,256,325,374,391,392,475,477,478,479,481,482,483,484,485],[255,325,374,391,392,475,477,482,487],[325,374,391,392],[325,374,391,392,475,477,484],[254,255,325,374,391,392,477,478,479,481,482,483,484,485,486],[325,374,391,392,475,476],[325,374,391,392,479,480],[325,374,391,392,481],[325,374,391,392,475],[254,255,256,325,374,391,392,477,478,482,483,487,488,489,491],[256,325,374,391,392,477,487],[325,374,391,392,475,477,490],[325,374,391,392,488,489,490,491,492],[256,325,374,391,392,483,487,488],[254,255,256,325,374,391,392,477,478,482,483,487],[254,255,256,257,325,374,391,392,487,493,494,495,496],[172,325,374,391,392],[171,325,374,391,392],[226,227,325,374,391,392],[167,168,325,374,391,392],[166,325,374,391,392],[325,371,372,374,391,392],[325,373,374,391,392],[374,391,392],[325,374,379,391,392,409],[325,374,375,380,385,391,392,394,406,417],[325,374,375,376,385,391,392,394],[320,321,322,325,374,391,392],[325,374,377,391,392,418],[325,374,378,379,386,391,392,395],[325,374,379,391,392,406,414],[325,374,380,382,385,391,392,394],[325,373,374,381,391,392],[325,374,382,383,391,392],[325,374,384,385,391,392],[325,373,374,385,391,392],[325,374,385,386,387,391,392,406,417],[325,374,385,386,387,391,392,401,406,409],[325,367,374,382,385,388,391,392,394,406,417],[325,374,385,386,388,389,391,392,394,406,414,417],[325,374,388,390,391,392,406,414,417],[323,324,325,326,327,328,329,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423],[325,374,385,391,392],[325,374,391,392,393,417],[325,374,382,385,391,392,394,406],[325,374,391,392,395],[325,374,391,392,396],[325,373,374,391,392,397],[325,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423],[325,374,391,392,399],[325,374,391,392,400],[325,374,385,391,392,401,402],[325,374,391,392,401,403,418,420],[325,374,386,391,392],[325,374,385,391,392,406,407,409],[325,374,391,392,408,409],[325,374,391,392,406,407],[325,374,391,392,409],[325,374,391,392,410],[325,371,374,391,392,406,411,417],[325,374,385,391,392,412,413],[325,374,391,392,412,413],[325,374,379,391,392,394,406,414],[325,374,391,392,415],[325,374,391,392,394,416],[325,374,388,391,392,400,417],[325,374,379,391,392,418],[325,374,391,392,406,419],[325,374,391,392,393,420],[325,374,391,392,421],[325,367,374,391,392],[325,367,374,385,387,391,392,397,406,409,417,419,420,422],[325,374,391,392,406,423],[201,205,208,223,224,225,228,325,374,391,392],[234,325,374,391,392],[234,235,325,374,391,392],[205,325,374,391,392],[205,206,208,209,325,374,391,392],[205,206,208,325,374,391,392],[205,206,325,374,391,392],[200,216,217,325,374,391,392],[200,216,325,374,391,392],[200,207,325,374,391,392],[200,325,374,391,392],[202,325,374,391,392],[200,201,202,203,204,325,374,391,392],[314,316,317,318,319,325,374,391,392,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,464,466,467,468,469,470,471,472,473],[325,374,391,392,474],[325,374,391,392,406,424,425,426,427,451,452,453],[325,374,391,392,428,451],[325,374,391,392,450,451],[325,374,391,392,428,433,451,452,453],[325,374,391,392,425,428,451],[316,325,374,391,392,451,452],[279,282,286,288,300,314,315,325,374,391,392],[325,374,391,392,428,450,451,452,453,455],[264,325,374,391,392],[264,265,266,325,374,391,392],[264,279,325,374,391,392],[264,270,325,374,391,392],[264,273,274,325,374,391,392],[264,282,325,374,391,392],[264,275,276,303,325,374,391,392],[264,286,325,374,391,392],[264,288,325,374,391,392],[270,271,305,312,313,325,374,391,392],[264,267,268,269,325,374,391,392],[264,272,276,304,325,374,391,392],[264,268,274,306,325,374,391,392],[264,268,274,325,374,391,392],[307,308,309,325,374,391,392],[264,268,303,310,311,325,374,391,392],[264,268,303,311,325,374,391,392],[274,277,278,280,281,283,284,285,287,289,290,291,292,293,294,295,296,297,298,299,301,302,325,374,391,392],[264,300,325,374,391,392],[316,325,374,391,392,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,451],[325,374,391,392,424,458,459,460],[325,374,387,391,392,406,424],[325,374,391,392,406,424,428,451],[325,374,391,392,424,458,459],[325,374,391,392,428,451,452],[316,317,325,374,391,392,424,458,459,460,464],[264,316,317,325,374,391,392,459,461,464],[317,325,374,391,392,451,464],[264,268,269,270,271,304,305,316,317,325,374,391,392,451,459,463,464],[316,317,325,374,391,392,406,424,451,452,453,454,458,459,460,462,464,465,466],[325,374,391,392,451,455,467],[316,317,325,374,391,392,406,424,451,452,453,454,455,458,459,460,462,464],[317,325,374,391,392,451,452,453,455,464,474],[325,374,391,392,451,452,453],[325,374,391,392,451,453],[316,325,374,391,392,451],[317,325,374,391,392,450,451,452,453,454,464],[316,317,318,319,325,374,391,392,450,452,464],[325,374,391,392,450,459],[264,325,374,391,392,450],[325,374,391,392,450,451,453],[316,325,374,391,392],[317,325,374,391,392,451,452,453,456,464],[158,325,374,391,392],[116,325,374,391,392],[115,116,325,374,391,392],[119,325,374,391,392],[117,118,119,120,121,122,123,124,325,374,391,392],[98,109,325,374,391,392],[115,126,325,374,391,392],[96,109,110,111,114,325,374,391,392],[113,115,325,374,391,392],[98,100,101,325,374,391,392],[102,109,115,325,374,391,392],[115,325,374,391,392],[109,115,325,374,391,392],[102,112,113,116,325,374,391,392],[98,102,109,158,325,374,391,392],[111,325,374,391,392],[99,102,110,111,113,114,115,116,126,127,128,129,130,131,325,374,391,392],[102,109,325,374,391,392],[98,102,325,374,391,392],[98,102,103,133,325,374,391,392],[103,108,134,135,325,374,391,392],[103,134,325,374,391,392],[125,132,136,140,148,156,325,374,391,392],[137,138,139,325,374,391,392],[96,115,325,374,391,392],[137,325,374,391,392],[115,137,325,374,391,392],[107,141,142,143,144,145,147,325,374,391,392],[98,102,109,325,374,391,392],[98,102,158,325,374,391,392],[98,102,109,115,127,129,137,146,325,374,391,392],[149,151,152,153,154,155,325,374,391,392],[113,325,374,391,392],[150,325,374,391,392],[150,158,325,374,391,392],[99,113,325,374,391,392],[154,325,374,391,392],[109,157,325,374,391,392],[97,98,99,100,101,102,103,104,105,106,107,108,325,374,391,392],[100,325,374,391,392],[62,325,374,391,392],[239,240,325,374,391,392],[239,240,241,242,325,374,391,392],[239,241,325,374,391,392],[239,325,374,391,392],[260,262,325,374,391,392],[259,262,325,374,391,392],[258,259,260,261,262,263,325,374,391,392],[260,261,325,374,391,392],[164,325,374,391,392],[61,64,69,70,71,72,325,374,391,392],[60,325,374,391,392],[70,325,374,391,392],[61,64,69,325,374,391,392],[61,70,325,374,391,392],[65,66,67,68,325,374,391,392],[74,325,374,391,392],[73,75,76,325,374,391,392],[325,339,343,374,391,392,417],[325,339,374,391,392,406,417],[325,334,374,391,392],[325,336,339,374,391,392,414,417],[325,374,391,392,394,414],[325,374,391,392,424],[325,334,374,391,392,424],[325,336,339,374,391,392,394,417],[325,331,332,335,338,374,385,391,392,406,417],[325,339,346,374,391,392],[325,331,337,374,391,392],[325,339,360,361,374,391,392],[325,335,339,374,391,392,409,417,424],[325,360,374,391,392,424],[325,333,334,374,391,392,424],[325,339,374,391,392],[325,333,334,335,336,337,338,339,340,341,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,361,362,363,364,365,366,374,391,392],[325,339,354,374,391,392],[325,339,346,347,374,391,392],[325,337,339,347,348,374,391,392],[325,338,374,391,392],[325,331,334,339,374,391,392],[325,339,343,347,348,374,391,392],[325,343,374,391,392],[325,337,339,342,374,391,392,417],[325,331,336,339,346,374,391,392],[325,374,391,392,406],[325,334,339,360,374,391,392,422,424],[249,325,374,391,392],[211,212,213,214,325,374,391,392],[211,325,374,391,392],[212,325,374,391,392],[213,248,325,374,391,392],[210,230,231,233,325,374,391,392],[210,221,233,325,374,391,392],[200,208,210,218,233,325,374,391,392],[200,210,218,221,229,232,233,325,374,391,392],[236,325,374,391,392],[210,230,231,232,233,325,374,391,392],[210,215,218,219,220,233,325,374,391,392],[200,205,208,210,215,218,219,220,221,222,223,229,230,231,232,233,236,237,238,243,325,374,391,392]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3da4cd58ec690f79203a86d5e973d9e73fc67d113c1f7dd06049839f89782995","impliedFormat":1},{"version":"5ad3e58181b335ff8794bcc3161a1506dbe8cebbce71a15b3dc7bfe56f076679","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"70bf585bdacf3b20d843740b27b0359c9256c817a818bf7d18e74762be6bea91","impliedFormat":99},{"version":"a6d2eb77f390448a229ca63b4adadbcc549d203b8c038f1f7627a118f732969d","impliedFormat":99},{"version":"b886cc0d907b31ae7484a85da375bc8ac42f9986ec1e49c9c7c854956b0a928b","impliedFormat":99},{"version":"46b432f55912daaf98d11b81c5d06f8b78231c9ef101306ca5b3ef2cc7b6e9f0","impliedFormat":99},{"version":"8ab288ca80e5f2a9dab19955fcd9e81a244432cd7d256fdb5ea198ed5a44f0a4","impliedFormat":99},{"version":"0caadd121b8965f24d5c647a2ed01f5fc352772e4cea4bbca2ab78adedfdd921","impliedFormat":99},{"version":"b642b6a4b9b670338bc50281a6dd192fb7cc0b2f9d63d38c250bb1f02e828bbc","impliedFormat":99},{"version":"8e6b36766cbd3eed84e874fa9d1205f7b5e987fdf90d2574436be65040b2db91","impliedFormat":99},{"version":"c2e65a549ac9d227a9002d077af67bb1c77557a72bf39a85c4354831879078ed","affectsGlobalScope":true,"impliedFormat":99},{"version":"38f11ad59dfc38750b789f9f250742d0ce0da44e28f790a032cd15665b70f239","impliedFormat":99},{"version":"6e70da1429948b2ca8201ccc248bd2cb77cd6bbc4cf33f639c4b0f8f6a35cbd1","affectsGlobalScope":true,"impliedFormat":99},{"version":"601520abcca03c5fa2dc578075b1c0b560d6de0859832aabb7a567118034969d","impliedFormat":99},{"version":"91fce4c8d9954d0e9a48303e925541d8954bd468f532945d546eaf3654fdedb9","impliedFormat":99},{"version":"1da0ad9df4532256d79263966e73b04981e8563533142afbd214647a7bc14ec4","impliedFormat":99},{"version":"f8db03cdd070621b978744c04d42fc50232317bdfb114c2d1815bd5c8aef7386","impliedFormat":99},"a0a65dd55df71598f89c632b79098ec89eff91d95cb182ef8c26ee282421b371","def7627aa5c4463c08b7b9227df731f137643d22bb196d679671bdcbc44e3855","1c60d5e6dbc713c4c8da52c42379367161869dfc8b32f4d1853406a4e0e4e1ee","f3a22460605e91603885243e069d775bc64ea2291334f2b5d74c871d1034d9fe","340ee3d9802829226a0bab2fd4633c104983f4d2933429ef03407c00d7ab034f","80b2c53cf82a27fce4fd29af835c45a92b7c4d0c04b27c5798d836e4349917dd","dc279a3f5102d8c836169ac99203f3945f574a4e39b0554bccfcbbb61f67b7c1","1396e113ba156edc03437ad104787cf9e4165bc0b2a4db90dbbaa7859e69200e","73bef279ca5d043ef109dc2328130dc3f180293c8ee741d245e4305ce479ae1c","e1838da73b9573d958db21581b67c1353d290b2f8e91b5d5d03fa85ee26d5978","47e78edd01754b5481185c7dc8005729765cb2fa3ecb9a37dbb0ef4ca9d00e52","09147c9c441e231496066a1dde3465ac83365dd78479ce30b5c720c158fe197e","2a5979db1eb0691cb4974febd30cf73ac7da4215ec6af90046c5443089413913","5a134199466414dfc79d48000c2068e810055c9866dd5462a046f2c873bdac7c","5959af7f0c8885439ed8e2b4257070dc826379556a869857321b5cb48c1d0683","cf19706c68b0664e887233ceba16ce1c1d72219c5e3eee375bd09119fd0db0fa","73758751f336eb90d1658e98ba8eab3d4d8a60dd4a2612d9b2d920e0d7ecdfaa","6904696aae347cff621c0703a3e4510f518c71d8a6d802b7db82e9dd016643c5",{"version":"63f6312a4be1ec344baa7c5cdb831587ed5f737f35df2baa2d3db1d180b983ec","impliedFormat":99},{"version":"74c3a57d874889e2f042b89b9688716af704cb2366d757ead586988f6cc9a625","impliedFormat":99},{"version":"5ebf4476be92f000f00cb9fb79d69babe6f6ac2a39efdb04a8f370e110003e19","impliedFormat":99},{"version":"39bc8c363900ffa799f98eb2e4c7ddd52e09cfb9392082128ebe49379f999aa5","impliedFormat":99},{"version":"7eb24daa7a3d9f33fb9f23ab1665fa25103a171048956e29b8e8ffb31e5dc14d","impliedFormat":99},{"version":"392b17a6ba3f687f19ba207f17841c99306701cc2882f3615a3b426686d854e6","impliedFormat":99},{"version":"2a9f82af6c7cf1e002d17153e10d758f685d085864f6c5f7d2b775ebcd6b2fc9","impliedFormat":99},{"version":"f65b6f12e264b6e22dcf888bc0c239aab27c1d1fa6560af64bcd450f864abab7","impliedFormat":99},{"version":"ecbac26c0c765e1da3e748a35ededfa4c7ed87f48399919cd952ae8bc32a1339","impliedFormat":99},{"version":"9c88eebb75b82b4ccb9412c7e3035e40e188ea3d7dcb010ff87986b7ff629555","impliedFormat":99},{"version":"154f87edab104ff00f36e95b36d01e014a4d74ac4fc219e124e2bf2627099267","impliedFormat":99},{"version":"30844ce073bb46b6908f55273063915629cd795bf7d83638bcb71e1507a494bb","impliedFormat":99},{"version":"0b616ee0814b25c7b231a73b57ad93a558a6b8cb5d3642776b92dca8e361dd9d","impliedFormat":99},{"version":"e87c70e28847174af0cf4448544b9826d810188394999d17ef38c344cb902276","impliedFormat":99},{"version":"bb9ee1f44b437ea1f42f552ccd05e789fff8108c65687ba3d9279e23e26263e9","impliedFormat":99},{"version":"ebd09f4071c53a42a09a20feb0b144b1f485f10a7d6190aba91c1714977d689f","impliedFormat":99},{"version":"345bf134b7c00954c1db3e011f029c066877a32256569c9d91b6ceb5bcca054c","impliedFormat":99},{"version":"2a1f7be668e3a95cdb683c6f755631bf19de9705c6d6c1c9e4ebc67e9db916d7","impliedFormat":99},{"version":"357acfb6822f15161214eb9e1848c767182750b67f9c2c6ac0fab52ce300ddbb","impliedFormat":99},{"version":"895ed044afb790fa06b64467688cb28436d87f46dcdc526a163915a962d55dca","impliedFormat":99},{"version":"646d66c423da6f036ecfda81da6f7d60a4748ddb0c58c85d261bb5c8e541cef2","impliedFormat":99},{"version":"93acb73e975b4fd741faf2e8fb2a5705aadcf8ca2df8fe354c9edb0b07622252","impliedFormat":99},{"version":"24bf4c3ab312b32e6f114adc2f4ce858a8a28af76abcbdc46a4a40655933f152","impliedFormat":99},{"version":"3b355d5bc20b716079980a0ed2d400180a15368db05888b3b858f90ae3ceac14","impliedFormat":99},{"version":"ff2c4a40bbde08390837443555b9ae201af54b527baf151555310782bd7bb8ef","impliedFormat":99},{"version":"0e9998684ca02c028170441f4c006e1caf425f9a9c3814cf8765a0002773fe30","impliedFormat":99},{"version":"1e647f80259d61974c8d0a89d9e3fd22416975c257d76f4f32d6ff38b9157f21","impliedFormat":99},{"version":"31e9f9b81179cdce4ee1cd1d6a427dc0c5fd15064307df8cad58237b0d96385b","impliedFormat":99},{"version":"7ba73e6476144ac4587b18bcc70349d2a8e7cede4e780815b53a057ca71f764d","impliedFormat":99},{"version":"fba690fc44b5c1db29fb472830df4cea1374642935a02c6302730bff37752498","impliedFormat":99},{"version":"2515daf0e2b05ec5a90349ea839cc1fad8e67135665747cd5f72b7b3d2ad49c3","impliedFormat":99},{"version":"7b4a756bb59248aeb831709239014a9850837727c2d6ec053f54eeaee95dda39","impliedFormat":99},{"version":"cde91ca23d14021aca53adba5977bebf7f72e4f18bbdcd2c6a689482c77dba07","impliedFormat":99},{"version":"191878041be6dae0b75974d1d28d55ae82a2896d5eb5004eb039e964e8140c00","impliedFormat":99},{"version":"7f4272fd567d065c1f5614ae3bed61b3dee47845267be0e41dd24f901985bf0f","impliedFormat":99},{"version":"0fe6cb0ec82fea8bb694d8335f8d470c8843600a277cf02d7dbfb84002666e8a","impliedFormat":99},{"version":"e43159089587768cc9e4b325488c546cec950602173b04a4f6cb9a615c4fc3b9","impliedFormat":99},{"version":"f3ebf0a71fb9e0d708c607d6448edae7a7893162532b560b3f361f48bacdbfca","impliedFormat":99},{"version":"053ed027d6ab656c53ee8dfc3fe842beff2a831831591f7f446c0ea1632f606e","impliedFormat":99},{"version":"79c5c3441a6786ce4804528aa560836e45cf855af4f25d6ca40f598cd6f1979a","impliedFormat":99},{"version":"bf235a40a595fe4c1c72ff72b50a9881a7279c4063029fc88e49237542797935","impliedFormat":99},{"version":"25627620692594a49b01a7192416e59a0fd94717c4f5c2800a3cdde58e28b39f","impliedFormat":99},{"version":"00f9b95c0741094ef69f8befa268077fb5dae5192149d99af5c7abf4cd20d5e5","impliedFormat":99},{"version":"89536ffee2ff5d49cd4c898a854a92a3d0812394f4ab6e1d48f9fb658f4abe48","impliedFormat":99},{"version":"0085bc39713819715d49b27bb64767dff1829179b0914ef0d4e1a852770f0136","impliedFormat":99},{"version":"9c6c451215eae6ae4ee0ebf8433f9d90494df7dba87718478c050bf5551da18f","impliedFormat":99},{"version":"a12d1a8f1b6e34597b9aef2757fdf4505362189c75b7f15266604a80bcffb42e","impliedFormat":99},{"version":"193f77fd99a5798127915516363958d227df9cb82e23f5890aa668409c1e6360","impliedFormat":99},{"version":"d8dc0c576c79c5069f4e87b0a15088e952043cb3df0ec487f81e6b98b174e503","impliedFormat":99},{"version":"84b69e8d4be7b1736536d1ab8c72c48318bbe6c677dab53a2d51058f9e68df71","impliedFormat":99},{"version":"97d3c4bd2a49a56f2cb63bb76c5880afe5c76098dcbb5598cd14e96bf572cb86","impliedFormat":99},{"version":"a493cd942f29c45c9befb1cf2f3e9a757300e1fa6b5a20cf939bf563c31f46a1","impliedFormat":99},{"version":"5300527e32de6eab286e5b70c3cca475380320a142ad54f234a34daadfc7bb1c","impliedFormat":99},{"version":"7476dbc814b46489fff760fd1f3d64248aedbf17e86fda8883c9bd0482d8bf73","impliedFormat":99},{"version":"8520b3f4c2c698bcef9c71d418a11c7cbe90d7b6d7deaed251a97ee5ef6b2068","impliedFormat":99},{"version":"8afc3d51f8ace0b6b9e89a2f7d8a6dffaca41d91733d235dea7c28364a3081a1","impliedFormat":99},{"version":"01cd58f2842ffec94a7cd86881fb5595df4b08399b99e817d2c25c2fb973fe09","impliedFormat":99},{"version":"d49f5458be59a10cc60ad003bebafa22eb37e15492020b2be9ca07055b6c8b10","impliedFormat":99},{"version":"0aa491d56a8011fcf95247f81cc4e09b40cfd5a96e80221038347da3931e8ba6","impliedFormat":99},{"version":"814971944c21b19105949c552a7dd5b35235a17a2eb8092b809e2fcaa54ea4e4","impliedFormat":99},{"version":"70f1528dd7d2131386fdcf6223ac1c56f2d7726c7977bd5eddcdfd22cd24f7f6","impliedFormat":99},{"version":"87f41340a0cac5b54e499b3ea6e6d0cb2e7abb9abf5feaedc6c4cc608cdfdc54","impliedFormat":99},{"version":"d0a8b3701edaddb7db2935bb134439272b46201384579eb0b53d66e4ac83bbfc","impliedFormat":99},{"version":"7849c2e4caee1cb71890ceab95b767c68f7110eae9e3e976dac8248702276218","impliedFormat":99},"90c59e0d909db03a00e54bd1f6ea3ce221cc86959b51162dbff13f4329f1612e","afbc7e265d1ef8578997b3f5a2ede01df33eca53972f3d3f3f4dc0b2cc7fd584","6c94a0e2409392e495717efd273a2f6a6ca909c2517dab49a18f2f88f4f71244","732a3dad7b77018c70ac5e974e50106810febd6b08eb04c5ca998fbf2e5e7950",{"version":"6bd987ccf12886137d96b81e48f65a7a6fa940085753c4e212c91f51555f13e5","impliedFormat":1},"dc1ef0825921b8ea06aba6670abae5ada4114596908c7a6c9d28a46df2107e2f",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"c27f6293397e2ea1131b49a4d3a6f9bca9c8023b9d1ddef0f677c61386fa1728","impliedFormat":1},"f67137dabfa1c1ec50ccdaaca7e41055670f81e96ce18c9812cf3d7dea2e3b54",{"version":"7dcb8433fd192c5f9612bd13252c5390b25417e22d6a7c18039976b24603331e","impliedFormat":99},{"version":"04ab252427e951ddd506f29c20148dcc4917c678f357dc765f79705ceb5c0a78","impliedFormat":99},{"version":"d1913435f47711c4974c5894f07f13a0b0b9d54fa39a1933f4a908c1a7b36882","impliedFormat":99},{"version":"f6cb9ee3ff8dd47760f39de28782c8806aa5b8e05a4a74d96e8981e5a6409502","impliedFormat":99},"cd3d8edc3490373f4fbb69c426244f0a7e10716f5e84faa3b7bb8ab1130d697b","fbdd0174718447914f2839482656ba344336339787b964096d6f71762cbf879c","29fda32f8c7bdeace48162b8619ea00b466d8eb1909e6fc627bc6c4df235cf6c","87a8feb7e574d0b5b856649433ea407ae11605bdf8fcc5ac82111833873c924b","685ecf0bc9904bc2b5b79e6e067f56f9ccf84a1d3abf394f6c426bfc588c6e54","63d3df0377427ec5ab27e92d451024da500355fd31d3a01713a1f170b2cbf349","30e57d6188cf382691f61a925f13b49b854728aa946f7b0c2ffa80a9b4037c51","987764a2d9c0ba1ca51c57a574cf465669e5f2f4b47b914edaec89be24d624c2","cd2be69a9776801b30bc1b04d74d27ba7df9ee5e4715a42736d67a0d64353b46","e5cb6ee9dfba2a7c3184d73fe082529c032d086feb33e271c37da2d1c77337a0","d413a1df5998b6ff24e9132be334868d31b17b9522f7e6988331bce4c2db1a1c","457baaff76b066cf7255396aebe7434c9516e7995c411445b951f5cefa93cb25","8005a56fda338f2b74c1fc96ce265ae68e209884e06dceb3269c4357a8b61894","93f288472f2e9f849511bd3b0cdc612ae748b92f5ccd9d7096e16444ab96d502","82b81b88c453bbe200d88844d7762687186d65b443624d76e7b71375c95b048a","dd62459674095ba40cce311c3f8dfb55f8e86e44c52cd0944f6baf0a41711a0b","43bd2b256e830a75acfc6aff79d5976b12f2bf11eba0031cc54beadf719be134","ccfdcce02c8ccd83da19116f024430e31965d4193628750810912e56247d0034","d04d565022e0096b35ba071eb2d53f758f3f94e81c5e1d52524ada0a83582b46","7513cd196bb51de3c4d027bb5930cc85e391991d83d1e881d997ac994da5212e","47e7859f3a8d9c8a5bc6c35eb073725e453fa79a4bcef2e617f14e15c887b914","109eba3ebc90a4e76c04785ad9e8315da661f68d7c5ea1d10231610931f9ffec","9ecdaedfd7617246ecb5c1a0fea5ec12f8f23d8abe7b9f45cbe9ea2541779fe7","49186bb9fd69d30c812cf3e00cdfc7b6684de824afac3c5c020d3305ecc9cb27","d97a699f3aa4d35acf78db62b457966e9964c5985d063694727d2af0f29d4259","2d53fc391cef86c557df6bb9b573b089a75cb0bc409b06f34ae67520c3f43995",{"version":"acfb723d81eda39156251aed414c553294870bf53062429ebfcfba8a68cb4753","impliedFormat":99},{"version":"542843bf5a39a528acaff79ea0255ed2912c541c442541b0547e29ac945e9823","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"57e9e1b0911874c62d743af24b5d56032759846533641d550b12a45ff404bf07","impliedFormat":99},{"version":"9f54d7adce0db4df8f6c11e20f3e7a66e55c510f196b074d0bca3370259a19fc","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"426041a8287038c60355059aa77aed3c154f93dcb6dac1522cd7fa56b908a7fe","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"2d9fecdb0c3559cf557bbe02c609c468afd71f5c7a745d457d40945e16576279","impliedFormat":99},{"version":"0f050859f31d35e3e0c0c8cc264dba86ac18f09ab1795c3121391c7b99145bc7","impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"c35b8117804c639c53c87f2c23e0c786df61d552e513bd5179f5b88e29964838","impliedFormat":99},{"version":"1615bcd6d7171eba0f9fd7b43ac975bc613cdcb0ffe6662604aa879286776d79","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"04d66aa50d15ef11db3d14b1ac5646aa78acc95e6f912a68ce4b3e18008f2a89","impliedFormat":99},{"version":"231a89c411ba2f45ff9d2e1a243af6924db5725e2d49c8b4a6e50c9705db049e","impliedFormat":99},{"version":"31fd7c12f6e27154efb52a916b872509a771880f3b20f2dfd045785c13aa813f","impliedFormat":99},{"version":"b481de4ab5379bd481ca12fc0b255cdc47341629a22c240a89cdb4e209522be2","impliedFormat":99},{"version":"76af14c3cce62da183aaf30375e3a4613109d16c7f16d30702f16d625a95e62c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"9b62957d57b26091b394fae7bde141a961c1b030303cb25cc300df6db7402ed4","affectsGlobalScope":true,"impliedFormat":99},{"version":"2f793c9a8e876aaf52504b129058a1ea13e05638284b4bb01060da8c38809d27","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"61f3a5216d8a635584211662b7868ad51b217249191b1987d7bb405c0ec55dee","impliedFormat":99},{"version":"213a00d511892898e9dad3c98efe3b1de230f171b9e91496faca3e40e27ef6a7","impliedFormat":99},{"version":"62486ec77ac020b82d5a65a270096bb7f2a1fd0627a89f29c5a5d3cbd6bd1f59","impliedFormat":99},{"version":"c637a793905f02d354b640fae41a6ae79395ed0d77fbb87c36d9664ecbd95ac1","impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"ddf569d04470a4d629090d43a16735185001f3fcf0ae036ead99f2ceab62be48","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"4c8ca51077f382498f47074cf304d654aba5d362416d4f809dfdd5d4f6b3aaca","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"ed9f6672a4211d2d304dca5fa59c04403bd99cf1deed027c1811478a4448e1b6","impliedFormat":99},"749e6dcd93ca7baa04ab36975d7b95f73acb28a7288f6a5455d64f565759615f","53431ed95a601d2e4e181ac666cedae641f18de7074809f0bbd2206ad56014c6","2eab445d025e2322370f372b4650a8b269d24292a626e17597d46f00ff6079b2",{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"19efad8495a7a6b064483fccd1d2b427403dd84e67819f86d1c6ee3d7abf749c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eef826bc4a19de22155487984e345a34c9cd511dd1170edc7a447cb8231dd4a","affectsGlobalScope":true,"impliedFormat":99},{"version":"db774edca980dd8a9602eb7ad0f4ee8d235aa5cbc720ef9a2ac4554678e6e33e","affectsGlobalScope":true},"c9ea8df6588b403b74084c7e4ffa754d272c5c2d119f14096e44ec0810aca9fb","9bd2c48b4cb4244f04b22adcc5d63b743512c8cb5aebeceebdd0465dee8fd7a0",{"version":"59ef8e3c15d7566380095696286c7cd08cb4c62d124646781fbcaf665e95017c","impliedFormat":1},{"version":"ef7155bff762b3e1d41af25f3482c1878d0e4e393ea12de6fe229649f8dc4b7f","impliedFormat":1},{"version":"f6c159b58450a4428006adc3d5eb73685d7d34b8c854980926ec78b7e4931b18","impliedFormat":1},{"version":"f5ce29a2dc1ef02f30ce6ca87b56209153ebe23a452d9f83c6aa4506066dce91","impliedFormat":1},{"version":"05adb45e3dde250b6ae4a50b9dd26457489cbe6bb5de36468aea83df2324e3b8","impliedFormat":1},{"version":"b71da9f22a46322f03f5900108c7bc23fe598e2dcd3955d94df0bf9b03adc9ef","impliedFormat":1},{"version":"15d54b1dc36761e843f740e13d896928b5bcb76c9cca250faded032e552ff447","impliedFormat":1},{"version":"9cdc4ef56cd1fcd4f6e5d06b222a1c36872660393e33d138d953a41f19c5db20","impliedFormat":1},{"version":"a6ce2450e3b08abb086b77e0408b4717322b370715b77f0b9f185619e2523b8c","impliedFormat":1},{"version":"5bcefd704c479b68d8050f61beeb84911739d7db5ce22b50c2c8396a7f8a973e","impliedFormat":1},{"version":"1bf22eff6631acc2d999b72cb87f26781fe2d449000beab70e5becba665237aa","impliedFormat":1},{"version":"cb31fbd38e527e01368c338daa15c472c9dacb72a0a6e483d7f338d2a2b88d92","impliedFormat":1},{"version":"9a056e9b9acc76b8320976d9fe6cd87c53bc1f4e2919613bcceebcff6b539cfa","impliedFormat":1},{"version":"a8f09ab4bfbaf32009c5ceb09f267c45d3e9fad63a9640c3dfc824480522eb1c","impliedFormat":1},{"version":"8d6da1d6d75e21fc322882a7a6cce39c4a85279582c0652fad76ae658f1fa4d8","impliedFormat":1},{"version":"2dcb4881af7d254e20cef0d36e33ef63025cea48ac9b739e310ac8dfb6a4d4d1","impliedFormat":1},{"version":"0e8c1b7ce40dab54106b02db1b529a9d1d34b0bec61bdd3af9c27dfc5041b8d5","impliedFormat":1},{"version":"fdd8e8b914f1d8c32363f45e37f9577be9f65e9171833a4c8c117afde983df3b","impliedFormat":1},{"version":"9fa2d338f2c6e4fb5a2cf20bc83f24102f177c9996a9550ab9cb295afc443322","impliedFormat":1},{"version":"b6b354bd57b44849015d119134a2adf6136dd459fb38f3625fbb35c844343362","impliedFormat":1},{"version":"831e08bc1e0e0fed9f34180a42bcffa15437283b3a90c453f98fd82f639784c0","impliedFormat":1},{"version":"576d3ac930288e7fe44873f24dd8ba11873ab8c536c5f67464e9acdbdbf5f0be","impliedFormat":1},{"version":"6210058f2ce3e9052681f3d2df475d6bda1cee4584dd3a5ef1ef0e60959522d7","impliedFormat":1},{"version":"7a04ce0e85d6db683f63ec9f2699fac3e2d9fdd6a9313dda42e25761a3c83a2c","impliedFormat":1},{"version":"2b9c4aed45c33a93dc6de1e5894094090363aaee045921a0e6ef245657c5315d","impliedFormat":1},{"version":"b9c7f144f9051934bba76cb051d806377a0676ed488ae5764daa9bf7a198fbad","impliedFormat":1},{"version":"dd36b72841bc2a5edbe39640abc5d0175f06b9de32d6b767615c62c460330382","impliedFormat":1},{"version":"de06c3051539ddd64044947bf5a804005e98b09613699b19de1c09ef8e8df95f","impliedFormat":1},{"version":"681c8a82369365bef1360957b467844e8bb3e9626df2162d904c8bbfc92863f8","impliedFormat":1},{"version":"8585b7a7cc1cb48171fd9e168ca0126a921189c6643cc4dd5dac43de6d3b61e4","impliedFormat":1},{"version":"7eb739af12059b8c368641641776937254b381ba298e43820b78696d4e12d3c9","impliedFormat":1},{"version":"f85ef2b6b6243d398b2146de3186f12c825a18295d3913aee1d7ad237856c6c3","impliedFormat":1},{"version":"e83218020bb0bc9a527cf10bca9f3afe489900c60dee03e8398fe135054c81ae","impliedFormat":1},{"version":"d30f3ae4c835c4006e1676170181461e7e97b4e1d2fa0c96a4d0a355cd97fd8f","impliedFormat":1},{"version":"989b02e98599537eccb0e89c3c737b75159fc64299bcee5ecf495535a4096efd","impliedFormat":1},{"version":"b0cfe92f5a41d98256df17702e2e30afbcbc5d33fcde330b20dcac2df26b393e","impliedFormat":1},{"version":"7de22e2447797056c5bbf57153d8e7d7106bab19b2bb8111cf9c9776935b81e9","impliedFormat":1},{"version":"74ecda5bfdd35b1b365b3069acb0224303c20b458e92dbacf6954eef4d9f30db","impliedFormat":1},{"version":"7e1862fcb5a27f449515e7ad569afb738896183889a3dfbf09f125d2ad1effaa","impliedFormat":1},{"version":"c3bc001ab25d65e716b576b0c607d413802122e85fedf847629227fdbf73298e","impliedFormat":1},{"version":"e0644b2e6e5f5709fd5b0377e801ae12fbd1a9d612312ed86b823159421e29fd","impliedFormat":1},{"version":"1dfa53faf0395d8e6714329b001659009171d5268f7231ad05fefeb19b7dd0a2","impliedFormat":1},{"version":"baf281afcc69097878a9f76190ec1139cdcb6d39adb1e0685644789fe99769ed","impliedFormat":1},{"version":"6d0e0c26cd26694ef8f4776443fdd846add0a327244424b5be1eb3320a770486","impliedFormat":1},{"version":"77df8e8553d35e13728f6d0a37ca982520046645694ec1edab9df2df4e905dc2","impliedFormat":1},{"version":"2996e46b71dadb93d38b47e420444d91ce3685f7ff0f0314bcc6503c6018c00d","impliedFormat":1},{"version":"03c9cee66774b18d3c20119b5fd25b3a94f95757aa82cb5bfe9cf7cb91400bd9","impliedFormat":1},{"version":"0c7aadf8379300a1dba35b087663c682f440aa5923ea96a8ff9ff483b891766c","impliedFormat":1},{"version":"70f8da676faa53028982803fb3b389b98119fb0b41df9020a3130b008ac6dc74","impliedFormat":1},{"version":"2409017257471ec5e3bf053cb4a0e0a5f3a7f11901a247118c1654980d7e1fe7","impliedFormat":1},{"version":"8b729a1d9b4f457b23b790a07111742b5c2714b614da768550e0a7309350e438","impliedFormat":1},{"version":"07ae8276b1ded724db7342f1271258bdf7d897ad47affecde328f89543fbef71","impliedFormat":1},{"version":"959e21dddaa3d50c7a9573c033371f8a8eb75e1da2e4f0d2ffc2e44862a7939f","impliedFormat":1},{"version":"5c5150c7774dcedeaf599b1372b8158b3f8a0e665d602a35e34470822da59f59","impliedFormat":1},{"version":"fbe77f3f07a47c30835cb7b88d1aeaf605052884b819f0669977a9977bbd4a8f","impliedFormat":1},{"version":"07cf01ae7f286d5c1390bec1fc2cad285c2cd96b3778b61eddfadd2305786040","impliedFormat":1},{"version":"d07829c9a6e7288abc6d1df2d0e3ffd31a2418b38e7bf3d374437042844ed17f","impliedFormat":1},{"version":"7299ae6e1cd70af673d26872a2c7616ea6fa287021669473bdd7842c94094f61","impliedFormat":1},{"version":"820567b6f3633584ecd3e57c8cc192a6a18f2803edfe730fd1531d9cb6fed891","impliedFormat":1},{"version":"2ae462dea06b9d0a202c1c034ae686d225169038c33242052f4edf93db00b254","impliedFormat":1},{"version":"5ffe14c99d9130074d6bbc1edeabe4b4ef9168a05986ac7aff84ac5735c4d77b","impliedFormat":1},{"version":"86241fb7f3594bade8e6589a5426d72a23dc6426703d43e1c8dea0570d78fd14","impliedFormat":1},{"version":"555913cb6d865e6207ab7f82f3391013cc48423ee120550246ea252d8685be6e","impliedFormat":1},{"version":"b0765a00e3e002773a6af233b937dfebf23fce20a9a7abcabb44ad6b7532e6ff","impliedFormat":1},{"version":"39ae6f648b10326364bae3e24c5735d12ade5ef4ba6ae6cf17e6b57dfc7d736e","impliedFormat":1},{"version":"fdcd57d2575b4e00c4c92b1a2fa15c791365aa763c4d4c901c3f3a362acd27d5","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"f949f7f6c7802a338039cfc2156d1fe285cdd1e092c64437ebe15ae8edc854e0","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2bc7425ef40526650d6db7e072c1ff4a51101c3ac2cc4b666623b19496a6e27","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"0dba70b3fb0dcd713fda33c2df64fa6751fff6460e536971cee917260fb17882","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"860d8f412e586be2009ba1806760f46f0501aea96880436a53956915295ba847","impliedFormat":1},{"version":"0a02b0f5641d72d688128db3e2608d927612131c11eb4ef6ee28c880b8577019","impliedFormat":1},{"version":"dd1f84835041fb21fbcb6d213290cfdb07fbd7551c5b9340db3f5a8906d403c9","impliedFormat":1},{"version":"9a7e14707830dbb4968c875b9f8ab510f531f11d3162c64d4188fab2ab0b671c","impliedFormat":1},{"version":"fd2d5cc8041746b1cc71ab247163982c68b4fad0522b2a8f555368d57f1aa134","impliedFormat":1},{"version":"7f56883fceba869ca2e3bab049cf33272bac1a6937c235c652e0bbd9aef67624","impliedFormat":1},{"version":"af1f132f95a4a56d9304f8dfe68f116d2324b0368411574932c55cbe2fafa214","impliedFormat":1},{"version":"4e0a5de3811fcb44426b7f6bea3458d1c794591d0b4a715c51c3ad5d70f08ab4","impliedFormat":1},{"version":"68b735874e866f37d072bf674535a9f33965132ed9e1e4164a6fbc494d590604","impliedFormat":1},{"version":"9cec0cc895584e0e42d5c97c4a16ebd25a4fa60730c186edf0d28df0a5bc3702","impliedFormat":1},{"version":"94d41a754d3dda0f2517d49d181f1ba1d812b85e7bc2c822c40be945328edc33","impliedFormat":1},{"version":"842ffda229092b37ce0bc6748b09a38aaedc8490a69b3a10ec48ebf47baa3224","impliedFormat":1},{"version":"0449afb9de90d153878437b4004c6c5ce1e2f8f33e93ace383d387b683bac845","impliedFormat":1},{"version":"358999876ec96fa23597d354ed2fe6ae495d7c654e720ab3be349179133ed14d","impliedFormat":1},{"version":"8daf1c92a5955e61e5f82160f1d3db34beb4b60657a20ed91e450b32c4d09350","impliedFormat":1},{"version":"4f84447ecedf492742cf058a1dc4a3cba63b932778463c858112e4072c79208c","impliedFormat":1},{"version":"74e3a9065b290394d3ee7fb111bb4523d846663d898aa21bb76c8e9af979ffa2","impliedFormat":1},{"version":"c50e1748196272f55890a55bb1cda5173fa615e4a07b3f741cf4f24eaeef838a","impliedFormat":1},{"version":"e19b2a73885f75f29b2adcf1077c8dde7d69137af24c065b5ae7d7fa9bd3b820","impliedFormat":1},{"version":"03770bdff8a4fb0c206e60d6139aa924b5c0bbf94e924d6625f553f59a6a27fa","impliedFormat":1},{"version":"2e54730070d00c443dbb388a356667bceb0a4c7ac5711c0cfc6355964cc7ab2e","impliedFormat":1},{"version":"207e465a5c27537cd6c987739a0ccdd2bd0b13dc69511d11bfe979e19fcbbbbd","impliedFormat":1},{"version":"7008aa856c52cc0af5aa6c755abfba94dbc5e0a9dac3f9a985eb5ed52e6d535d","impliedFormat":1},{"version":"27551a71453552cdb14453753b2808fb405e6b1495f53b1de318953ac4ac73b5","impliedFormat":1},{"version":"0bb991b7c106b013ccd1b236bca252a34d8cfd2a61387409c1c407e8e07acada","impliedFormat":1},{"version":"402ae4d5631349281bfb5f4a49c939bd56cc263f63fcb2e4e730ee8b4b113639","impliedFormat":1},{"version":"48c7beca038d3139a3ebf59969479e307c79ef99340f9a21711dbecedc539b13","impliedFormat":1},{"version":"8a3ba8887f57d779b22773c0a7d988654bfc4ae2c7c3dfb497b8e7d0414f082e","impliedFormat":1},{"version":"b63cd507f90ae6676915db153a40ce7d6a4c2796d4eb9d607a6739f4017b04e2","impliedFormat":1},{"version":"360816468e738d7f3a96116575347aa1b1d3d470a35be1c3953c50cf6d50268e","impliedFormat":1},{"version":"8e9f6de6a56197fdf0b0a75ae16f95d3b067607ec1ea389b2ed97f4a9d83eeff","impliedFormat":1},{"version":"73ea32389e9e86b206d30bf4a2d277c754c239f87fe978face2d40defc1d05e6","impliedFormat":1},{"version":"51c9f201ce3da119ca046f465c131ec8bf1e4dba44cb21fc7d3b83f2b75069c0","impliedFormat":1},{"version":"5d9197cb5cad259f081c941443fd9af29d03ce800b1e3d5e0ae5df36eaaaf658","impliedFormat":1},{"version":"c9669ad57d4d681e791d740727686eb96379128c6f66448b3233c477247199f5","impliedFormat":1},{"version":"dd01829a1232dc969066f1a1f478a25ee453a4e76f4e033080e279520b4460ba","impliedFormat":1},{"version":"d6bf6f2a8f1bf3fdc6ad05035672d8c38a04f72f39c5a55db9f1844689eec144","impliedFormat":1},{"version":"ec1e72c665317467b85ad4d27f5c106e6a888116f8757d883c8600e5f299192e","impliedFormat":1},{"version":"414e31d3a66f5c79cb49e82c3960a6983f1c031df82de1008bd255bf7aee58ae","impliedFormat":1},{"version":"8f8bf05a356229bd24edef8696f586bed7fa3d5dd5dffa6b1bb6899323699fc6","impliedFormat":1},{"version":"0881bbb944fc4d723c4ac7dbd4bccec7a5bad8f1cbcb677d12126e88a92dacaa","impliedFormat":1},{"version":"5b022572fb0abf915827636c7d318a067ccf6d9836f020f2350e7c6b01268695","impliedFormat":1},{"version":"72cf65c6ebe12b6d48445747b791c7354237546b752f1aec64d281df4bc25111","impliedFormat":1},{"version":"f8080b135a218967c1c3266f732b92b1dbf0007331c6f31f19057d4784fbfe14","impliedFormat":1},{"version":"27496861e0db6ede90b48607bccd9ea9a18aeac897b463cfadead98abe105ccc","impliedFormat":1},{"version":"16a535be43c022b2b40c0fb4365841633beebf3d6f55f808f4999d830883e9d4","impliedFormat":1},{"version":"87fd703309f6f640f2a0a6ce79c0b14c02cbbfdbd3913d6af601be883ab8cf18","impliedFormat":1},{"version":"9bb021b1303e52cdc159ad2a254e449c68b9b5157ae26b9d918f19e2c8d94223","impliedFormat":1},{"version":"3532bb2f755c7050cb5e0f346874ced87f3159a6ae1fcfd90eac8909d7335dd2","impliedFormat":1},{"version":"6f4c302094e64feb442e3bf734812b134ac42eb20fb1935ae0d49aa0e54d9e0f","impliedFormat":1},{"version":"939272dfb746346da9b080fd93950c8d96a227ba046341e88bc8ce4f1464ca69","impliedFormat":1},{"version":"76c8bad0b5624cd4a8b0b4f93e2bae9ca70de86ded9989b762584f80d6b8b45c","impliedFormat":1},{"version":"f50c7f861954be4eb976d47bdb5c4f06ad75a65df7ece9c66ecd6f340a181f95","impliedFormat":1},{"version":"3240d61dbfa7973313591b64128090aebba26d8bd50d3a5e7f8261a260c55444","impliedFormat":1},{"version":"ea29f4f85f69237b0dcdbe213fa01eff34c3ece92d32b2b6bb4b79d537721b2c","impliedFormat":1},{"version":"a4cb672e87b50e55ac22740bbb9a5eda426b94f2b1647415eabe1e20af6a27c3","impliedFormat":1},{"version":"05e2821682a1e07b1d4ed3fd6a8d203d83ac419cb016192e01f606d0e88157cd","impliedFormat":1},{"version":"7ba4c2777f22260483a0f2110d73a5c8a8539675b20fb24e8a339bd0061c5afe","impliedFormat":1},{"version":"4fb5a7cadbd14898aefc703a06b06107ca0079e0a3f8b256da3f9dd153d384b3","impliedFormat":1},{"version":"eff95d49df811c1da2972389d0d799c8b9e9830373ced11946f4d3b3dde22da1","impliedFormat":1},{"version":"4a5fef1ef362b78824b1a822c4d07fd201848797a309ee9ceb2926f0ef7a68eb","impliedFormat":1},{"version":"0a03cf87c7fcbb7e51fa816f8315aab5dd298d9f42d09ef6b20b03fc146ffc19","affectsGlobalScope":true,"impliedFormat":1},{"version":"16de867f01c3469cf2a8e039dae54b274ef80d9b027e90a21cd6a8b7a2b36644","impliedFormat":1},{"version":"2def019f197f6fd7927f4b2e982df57fad487451b6582ef8c6c66f00db62f7f8","impliedFormat":1},{"version":"bffdb56d023e2176c5d1b815515b087b225d97fcce293918a40a8f3cee3d9986","impliedFormat":1},{"version":"f6c801a9c2a6b15c89b6fd0d871d743441da0888b1040047a675709fd696f3e3","impliedFormat":1},{"version":"b0364c2c877eac15e910cfee217fa42f783bf1659ec83396130d22c70c717f0f","impliedFormat":1},{"version":"aa216412bdec7f09473bff6257675c5ff4d863a29e763f9dc8a6345c4e142031","impliedFormat":1},{"version":"709af03d532363cfcf0c52bfd893ec7798870bb8ff944c46a4bf747ed83e705e","impliedFormat":1},{"version":"376a96e6304baf7ae09a25b239a8e8b7460f09d92627d30c97b2c3b162e1724a","impliedFormat":1},{"version":"21eacbbe4649341bac7f86862fb068d8734c91b888f20647f0818e0b872eddc2","impliedFormat":1},{"version":"c62ff5c5ed3bd1d8d54997cbb545029f550973e87b5d24c92dbfe5430d28ce90","impliedFormat":1},{"version":"706a9619d0412b0a7f9efbd85f52adba12f7b3ac173523edf4f609d0a7b1ec4d","impliedFormat":1},{"version":"ee6a16475f55b27106d1749a823cc5f167c1e7c76883dfaa7ab6d462d753b66b","impliedFormat":1},"2516ce35f835b1cb70f31c97c59c49858fdcb6291b229903bfa41dca06e059f5"],"root":[[78,95],[160,163],165,169,[174,199],[245,247],[251,253],499],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"solid-js","module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[94,1],[177,2],[86,2],[186,3],[189,4],[85,5],[160,6],[165,7],[184,2],[180,8],[183,9],[95,10],[84,2],[88,11],[92,12],[252,13],[81,14],[185,2],[83,15],[162,16],[161,17],[169,18],[93,17],[82,3],[179,2],[176,19],[253,20],[174,21],[163,3],[178,22],[187,3],[89,2],[192,23],[191,24],[90,25],[188,26],[87,3],[181,3],[91,2],[190,2],[182,17],[175,27],[199,28],[499,29],[193,30],[196,31],[195,30],[194,30],[197,32],[198,33],[79,30],[245,34],[246,30],[78,35],[80,35],[247,32],[251,36],[498,37],[486,38],[484,39],[254,40],[485,41],[479,40],[478,40],[487,42],[477,43],[483,40],[481,44],[255,40],[480,43],[482,45],[476,46],[256,40],[490,47],[489,48],[491,49],[493,50],[492,51],[488,52],[494,40],[257,40],[497,53],[495,40],[496,40],[225,40],[173,54],[172,55],[171,40],[228,56],[226,40],[166,40],[168,57],[167,58],[371,59],[372,59],[373,60],[325,61],[374,62],[375,63],[376,64],[320,40],[323,65],[321,40],[322,40],[377,66],[378,67],[379,68],[380,69],[381,70],[382,71],[383,71],[384,72],[385,73],[386,74],[387,75],[326,40],[324,40],[388,76],[389,77],[390,78],[424,79],[391,80],[392,40],[393,81],[394,82],[395,83],[396,84],[397,85],[398,86],[399,87],[400,88],[401,89],[402,89],[403,90],[404,40],[405,91],[406,92],[408,93],[407,94],[409,95],[410,96],[411,97],[412,98],[413,99],[414,100],[415,101],[416,102],[417,103],[418,104],[419,105],[420,106],[421,107],[327,40],[328,40],[329,40],[368,108],[369,40],[370,40],[422,109],[423,110],[62,40],[229,111],[235,112],[236,113],[234,40],[200,40],[206,114],[210,115],[209,116],[230,117],[216,40],[218,118],[217,119],[223,40],[208,120],[201,121],[203,122],[205,123],[204,40],[207,121],[202,40],[474,124],[475,125],[428,126],[443,127],[429,127],[425,128],[431,127],[432,127],[434,129],[440,127],[435,127],[446,127],[436,127],[433,127],[439,127],[444,127],[442,127],[445,130],[447,127],[430,127],[448,127],[437,127],[438,127],[449,130],[441,127],[453,131],[316,132],[457,133],[277,134],[461,134],[265,40],[267,135],[278,134],[268,134],[266,40],[279,40],[280,136],[281,134],[271,137],[275,138],[273,40],[283,139],[272,40],[269,134],[304,140],[284,134],[285,134],[287,141],[274,134],[288,40],[289,142],[276,134],[290,134],[291,134],[292,134],[293,134],[294,134],[314,143],[315,40],[295,134],[286,40],[270,144],[296,134],[305,145],[306,40],[307,146],[308,147],[309,147],[310,148],[312,149],[297,134],[311,134],[313,150],[282,40],[298,139],[299,139],[303,151],[300,40],[301,152],[302,134],[450,153],[465,154],[458,155],[426,156],[460,157],[427,158],[466,159],[462,160],[463,161],[464,162],[467,163],[469,164],[468,165],[454,166],[318,167],[319,168],[317,169],[455,170],[451,171],[472,40],[470,172],[459,173],[471,40],[452,174],[456,175],[473,176],[227,40],[330,40],[159,177],[117,178],[118,178],[119,179],[120,178],[122,180],[121,178],[123,178],[124,178],[125,181],[99,182],[126,40],[127,40],[128,183],[96,40],[115,184],[116,185],[111,40],[102,186],[129,187],[130,188],[110,189],[114,190],[113,191],[131,40],[112,192],[132,193],[108,194],[135,195],[134,196],[103,194],[136,197],[146,182],[104,40],[133,198],[157,199],[140,200],[137,201],[138,202],[139,203],[148,204],[107,177],[141,40],[142,40],[143,205],[144,40],[145,206],[147,207],[156,208],[149,209],[151,210],[150,209],[152,209],[153,211],[154,212],[155,213],[158,214],[101,182],[98,40],[105,40],[100,40],[109,215],[106,216],[97,40],[60,40],[63,217],[241,218],[243,219],[242,220],[240,221],[239,40],[261,222],[260,223],[258,40],[259,40],[264,224],[262,225],[263,40],[164,226],[170,40],[73,227],[61,228],[72,229],[71,229],[64,40],[70,230],[67,35],[65,35],[66,231],[68,229],[69,232],[75,233],[77,234],[74,35],[76,40],[231,40],[224,40],[58,40],[59,40],[10,40],[11,40],[13,40],[12,40],[2,40],[14,40],[15,40],[16,40],[17,40],[18,40],[19,40],[20,40],[21,40],[3,40],[22,40],[23,40],[4,40],[24,40],[28,40],[25,40],[26,40],[27,40],[29,40],[30,40],[31,40],[5,40],[32,40],[33,40],[34,40],[35,40],[6,40],[39,40],[36,40],[37,40],[38,40],[40,40],[7,40],[41,40],[46,40],[47,40],[42,40],[43,40],[44,40],[45,40],[8,40],[51,40],[48,40],[49,40],[50,40],[52,40],[9,40],[53,40],[54,40],[55,40],[57,40],[56,40],[1,40],[346,235],[356,236],[345,235],[366,237],[337,238],[336,239],[365,240],[359,241],[364,242],[339,243],[353,244],[338,245],[362,246],[334,247],[333,240],[363,248],[335,249],[340,250],[341,40],[344,250],[331,40],[367,251],[357,252],[348,253],[349,254],[351,255],[347,256],[350,257],[360,240],[342,258],[343,259],[352,260],[332,261],[355,252],[354,250],[358,40],[361,262],[250,263],[215,264],[214,265],[212,265],[211,40],[213,266],[248,40],[249,267],[232,268],[222,269],[219,270],[220,114],[233,271],[237,272],[238,273],[221,274],[244,275]],"affectedFilesPendingEmit":[[94,51],[177,51],[86,51],[186,51],[189,51],[85,51],[160,51],[165,51],[184,51],[180,51],[183,51],[95,51],[84,51],[88,51],[92,51],[252,51],[81,51],[185,51],[83,51],[162,51],[161,51],[169,51],[93,51],[82,51],[179,51],[176,51],[253,51],[174,51],[163,51],[178,51],[187,51],[89,51],[192,51],[191,51],[90,51],[188,51],[87,51],[181,51],[91,51],[190,51],[182,51],[175,51],[199,51],[499,51],[193,51],[196,51],[195,51],[194,51],[197,51],[198,51],[79,51],[245,51],[246,51],[78,51],[80,51],[247,51]],"emitSignatures":[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,160,161,162,163,165,169,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,245,246,247,252,253,499],"version":"5.9.3"}
|
|
1
|
+
{"fileNames":["../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/csstype@3.2.1/node_modules/csstype/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/jsx.d.ts","../node_modules/.pnpm/@types+trusted-types@2.0.7/node_modules/@types/trusted-types/lib/index.d.ts","../node_modules/.pnpm/dompurify@3.3.3/node_modules/dompurify/dist/purify.es.d.mts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/scheduler.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/component.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/flow.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/Suspense.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/hydration.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/render/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/signal.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/observable.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/reactive/array.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/types/index.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/jsx.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/client.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/server-mock.d.ts","../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/types/index.d.ts","./src/types/index.ts","./src/services/validation.ts","./src/utils/logger.ts","./src/components/GenerativeUIErrorBoundary.tsx","./src/components/RenderContext.tsx","./src/components/GridRenderer.tsx","./src/components/FooterRenderer.tsx","./src/components/CarouselRenderer.tsx","./src/components/ArtifactRenderer.tsx","./src/hooks/useConditionalField.ts","./src/components/FormFieldRenderer.tsx","./src/context/MCPActionContext.tsx","./src/hooks/useAction.ts","./src/hooks/useFormPersistence.ts","./src/components/FormRenderer.tsx","./src/components/ModalRenderer.tsx","./src/components/ActionGroupRenderer.tsx","./src/components/ExpandableWrapper.tsx","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.config.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/utils.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/basic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.adapters.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/geometric.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/animation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.element.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.point.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.easing.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/color.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/layout.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.colors.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.arc.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.plugins.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.defaults.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.typedRegistry.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.scale.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.registry.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.controller.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.datasetController.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.bar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.bubble.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.doughnut.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.line.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.polarArea.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.pie.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.radar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/controller.scatter.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/controllers/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animations.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.animator.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.interaction.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.layouts.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/core.ticks.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/core/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.segment.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.line.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/element.bar.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/elements/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.base.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.basic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/platform.dom.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/platform/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.decimation.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.filler/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.legend.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.subtitle.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.title.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/helpers/helpers.core.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/plugin.tooltip.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/plugins/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.category.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.linearbase.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.linear.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.logarithmic.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.radialLinear.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.time.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/scale.timeseries.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/scales/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/index.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/types.d.ts","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/auto/auto.d.ts","./src/components/ChartJSRenderer.tsx","./src/components/LightboxOverlay.tsx","./src/components/ImageGalleryRenderer.tsx","./src/components/VideoRenderer.tsx","../node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/types/index.d.ts","./src/components/CodeBlockRenderer.tsx","../node_modules/.pnpm/@types+geojson@7946.0.16/node_modules/@types/geojson/index.d.ts","../node_modules/.pnpm/@types+leaflet@1.9.21/node_modules/@types/leaflet/index.d.ts","../node_modules/.pnpm/@types+leaflet.markercluster@1.5.6/node_modules/@types/leaflet.markercluster/index.d.ts","./src/components/MapRenderer.tsx","../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.d.ts","../node_modules/.pnpm/@tanstack+virtual-core@3.13.18/node_modules/@tanstack/virtual-core/dist/esm/utils.d.ts","../node_modules/.pnpm/@tanstack+virtual-core@3.13.18/node_modules/@tanstack/virtual-core/dist/esm/index.d.ts","../node_modules/.pnpm/@tanstack+solid-virtual@3.13.18_solid-js@1.9.11/node_modules/@tanstack/solid-virtual/dist/esm/index.d.ts","./src/components/UIResourceRenderer.tsx","./src/hooks/useStreamingUI.ts","./src/components/StreamingUIRenderer.tsx","./src/components/ActionRenderer.tsx","./src/components/index.ts","./src/components/ResizeHandle.tsx","./src/components/DraggableGridItem.tsx","./src/hooks/useDragDrop.ts","./src/hooks/useResize.ts","./src/components/EditableUIResourceRenderer.tsx","./src/components/ComponentToolbar.tsx","./src/components/GhostText.tsx","./src/components/AutocompleteDropdown.tsx","./src/context/AutocompleteContext.tsx","./src/hooks/useAutocomplete.ts","./src/components/AutocompleteFormField.tsx","./src/hooks/useModal.ts","./src/hooks/index.ts","./src/context/index.ts","./src/plugins/groq.ts","./src/plugins/supabase.ts","./src/plugins/rest.ts","./src/plugins/index.ts","./src/services/component-registry.ts","./src/services/index.ts","./src/index.ts","../node_modules/.pnpm/@vitest+pretty-format@4.0.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/display.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/types.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/timers.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/index.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/hooks.d-C0RE9A6t.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../node_modules/.pnpm/@vitest+utils@4.0.9/node_modules/@vitest/utils/dist/diff.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/types.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/index.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/hmrPayload.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/customEvent.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/hot.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/dist/node/module-runner.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts","../node_modules/.pnpm/@vitest+snapshot@4.0.9/node_modules/@vitest/snapshot/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/config.d.BTfZNUu9.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/worker.d.ZGohxCEd.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/browser.d.DnU_kh8a.d.ts","../node_modules/.pnpm/@vitest+spy@4.0.9/node_modules/@vitest/spy/dist/index.d.ts","../node_modules/.pnpm/tinyrainbow@3.0.3/node_modules/tinyrainbow/dist/index.d.ts","../node_modules/.pnpm/@standard-schema+spec@1.0.0/node_modules/@standard-schema/spec/dist/index.d.ts","../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../node_modules/.pnpm/@vitest+expect@4.0.9/node_modules/@vitest/expect/dist/index.d.ts","../node_modules/.pnpm/@vitest+runner@4.0.9/node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/global.d.BQDgW9Pr.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/types.d-B8CCKmHt.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/index.d-C-sLYZi-.d.ts","../node_modules/.pnpm/@vitest+mocker@4.0.9_vite@6.4.1/node_modules/@vitest/mocker/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/mocker.d.BE_2ls6u.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/chunks/suite.d.BJWk38HB.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/utils.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/overloads.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/branding.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/messages.d.ts","../node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/index.d.ts","../node_modules/.pnpm/vitest@4.0.9_@types+node@22.19.11_@vitest+ui@4.0.9_jsdom@27.2.0/node_modules/vitest/dist/index.d.ts","./src/test-setup.ts","./src/types-export.ts","./src/validation.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/importGlob.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/types/importMeta.d.ts","../node_modules/.pnpm/vite@6.4.1_@types+node@22.19.11/node_modules/vite/client.d.ts","./src/vite-env.d.ts","./src/components/GenerativeUIErrorBoundary.default.ts","./src/components/UIResourceRenderer.default.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/config.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/tokens.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/log.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/status.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/constants.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/encoding.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/byte-buffer.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/builder.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/types.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/utils.d.ts","../node_modules/.pnpm/flatbuffers@24.12.23/node_modules/flatbuffers/js/flatbuffers.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/body-compression-method.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/compression-type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/body-compression.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/field-node.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/record-batch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-batch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/endianness.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-kind.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/dictionary-encoding.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/key-value.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/bool.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/date-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/date.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/decimal.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/time-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/duration.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/fixed-size-binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/fixed-size-list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/precision.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/floating-point.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/interval-unit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/interval.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/large-utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/null.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/run-end-encoded.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/struct-.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/time.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/timestamp.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/union-mode.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/union.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/field.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/schema.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-matrix-compressed-axis.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-matrix-index-csx.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index-coo.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index-csf.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor-index.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/tensor-dim.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/sparse-tensor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/tensor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/message-header.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/metadata-version.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/enum.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/schema.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/row/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/row/struct.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/compatibility/index.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/globals.typedarray.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/buffer.buffer.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/events.d.ts","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/web-globals/storage.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/inspector.generated.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/sqlite.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/node/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/whatwg/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/bool.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/null.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/date.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/decimal.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/dictionary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/fixedsizebinary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/float.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/time.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/timestamp.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/interval.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/duration.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/utf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/largeutf8.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/binary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/largebinary.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/list.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/fixedsizelist.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/map.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/struct.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/builder/union.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/interfaces.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/type.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/vector.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/data.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/recordbatch.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/table.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/visitor.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/factories.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/interfaces.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/buffer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/stream.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/fb/block.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/file.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/json.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/metadata/message.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/io/file.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/message.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/reader.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/writer.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/ipc/serialization.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/bn.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/int.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/util/bit.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/visitor/typecomparator.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/Arrow.d.ts","../node_modules/.pnpm/apache-arrow@17.0.0/node_modules/apache-arrow/Arrow.dom.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/json_typedef.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/insert_options.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/file_stats.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/duckdb_module.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/udf_function.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/runtime.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/web_file.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/progress.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/bindings_interface.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/connection.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/bindings_base.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/bindings/index.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/worker_request.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_bindings_interface.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_bindings.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/async_connection.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/worker_dispatcher.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/parallel/index.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/platform.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/version.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/worker.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/types/src/targets/duckdb.d.ts","../node_modules/.pnpm/@duckdb+duckdb-wasm@1.32.0/node_modules/@duckdb/duckdb-wasm/dist/duckdb-browser.d.ts","./src/plugins/duckdb.ts"],"fileIdsList":[[61,73,78,90,325,374,391,392],[61,73,325,374,391,392],[61,73,78,325,374,391,392],[61,73,78,87,185,186,187,188,325,374,391,392],[61,73,77,78,82,325,374,391,392],[61,73,78,95,159,325,374,391,392],[61,73,77,78,95,164,250,325,374,391,392],[61,73,78,179,325,374,391,392],[61,73,78,174,180,181,182,325,374,391,392],[61,73,77,325,374,391,392],[61,73,78,87,325,374,391,392],[61,73,78,79,87,88,90,91,325,374,391,392],[61,81,325,374,391,392],[61,73,77,78,80,325,374,391,392],[61,73,78,82,325,374,391,392],[61,73,78,161,325,374,391,392],[61,73,77,78,325,374,391,392],[61,73,77,78,167,168,250,325,374,391,392],[61,73,78,79,81,175,325,374,391,392],[61,174,325,374,391,392],[61,63,73,77,78,79,81,82,83,84,85,86,90,92,93,94,95,160,162,163,165,169,170,173,325,374,391,392],[61,81,82,83,84,85,86,88,92,93,94,160,161,162,163,165,169,174,176,177,325,374,391,392],[61,89,325,374,391,392],[61,87,90,91,175,181,182,188,190,325,374,391,392],[61,73,78,89,325,374,391,392],[61,73,77,78,187,325,374,391,392],[61,73,78,80,325,374,391,392],[61,78,95,178,179,180,183,184,185,186,187,189,191,192,196,198,325,374,391,392],[61,78,251,325,374,391,392],[61,78,325,374,391,392],[61,193,194,195,325,374,391,392],[61,78,79,325,374,391,392],[61,79,197,325,374,391,392],[61,244,325,374,391,392],[61,325,374,391,392],[250,325,374,391,392],[325,374,391,392,497],[254,255,256,325,374,391,392,475,477,478,479,481,482,483,484,485],[255,325,374,391,392,475,477,482,487],[325,374,391,392],[325,374,391,392,475,477,484],[254,255,325,374,391,392,477,478,479,481,482,483,484,485,486],[325,374,391,392,475,476],[325,374,391,392,479,480],[325,374,391,392,481],[325,374,391,392,475],[254,255,256,325,374,391,392,477,478,482,483,487,488,489,491],[256,325,374,391,392,477,487],[325,374,391,392,475,477,490],[325,374,391,392,488,489,490,491,492],[256,325,374,391,392,483,487,488],[254,255,256,325,374,391,392,477,478,482,483,487],[254,255,256,257,325,374,391,392,487,493,494,495,496],[172,325,374,391,392],[171,325,374,391,392],[226,227,325,374,391,392],[167,168,325,374,391,392],[166,325,374,391,392],[325,371,372,374,391,392],[325,373,374,391,392],[374,391,392],[325,374,379,391,392,409],[325,374,375,380,385,391,392,394,406,417],[325,374,375,376,385,391,392,394],[320,321,322,325,374,391,392],[325,374,377,391,392,418],[325,374,378,379,386,391,392,395],[325,374,379,391,392,406,414],[325,374,380,382,385,391,392,394],[325,373,374,381,391,392],[325,374,382,383,391,392],[325,374,384,385,391,392],[325,373,374,385,391,392],[325,374,385,386,387,391,392,406,417],[325,374,385,386,387,391,392,401,406,409],[325,367,374,382,385,388,391,392,394,406,417],[325,374,385,386,388,389,391,392,394,406,414,417],[325,374,388,390,391,392,406,414,417],[323,324,325,326,327,328,329,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423],[325,374,385,391,392],[325,374,391,392,393,417],[325,374,382,385,391,392,394,406],[325,374,391,392,395],[325,374,391,392,396],[325,373,374,391,392,397],[325,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423],[325,374,391,392,399],[325,374,391,392,400],[325,374,385,391,392,401,402],[325,374,391,392,401,403,418,420],[325,374,386,391,392],[325,374,385,391,392,406,407,409],[325,374,391,392,408,409],[325,374,391,392,406,407],[325,374,391,392,409],[325,374,391,392,410],[325,371,374,391,392,406,411,417],[325,374,385,391,392,412,413],[325,374,391,392,412,413],[325,374,379,391,392,394,406,414],[325,374,391,392,415],[325,374,391,392,394,416],[325,374,388,391,392,400,417],[325,374,379,391,392,418],[325,374,391,392,406,419],[325,374,391,392,393,420],[325,374,391,392,421],[325,367,374,391,392],[325,367,374,385,387,391,392,397,406,409,417,419,420,422],[325,374,391,392,406,423],[201,205,208,223,224,225,228,325,374,391,392],[234,325,374,391,392],[234,235,325,374,391,392],[205,325,374,391,392],[205,206,208,209,325,374,391,392],[205,206,208,325,374,391,392],[205,206,325,374,391,392],[200,216,217,325,374,391,392],[200,216,325,374,391,392],[200,207,325,374,391,392],[200,325,374,391,392],[202,325,374,391,392],[200,201,202,203,204,325,374,391,392],[314,316,317,318,319,325,374,391,392,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,464,466,467,468,469,470,471,472,473],[325,374,391,392,474],[325,374,391,392,406,424,425,426,427,451,452,453],[325,374,391,392,428,451],[325,374,391,392,450,451],[325,374,391,392,428,433,451,452,453],[325,374,391,392,425,428,451],[316,325,374,391,392,451,452],[279,282,286,288,300,314,315,325,374,391,392],[325,374,391,392,428,450,451,452,453,455],[264,325,374,391,392],[264,265,266,325,374,391,392],[264,279,325,374,391,392],[264,270,325,374,391,392],[264,273,274,325,374,391,392],[264,282,325,374,391,392],[264,275,276,303,325,374,391,392],[264,286,325,374,391,392],[264,288,325,374,391,392],[270,271,305,312,313,325,374,391,392],[264,267,268,269,325,374,391,392],[264,272,276,304,325,374,391,392],[264,268,274,306,325,374,391,392],[264,268,274,325,374,391,392],[307,308,309,325,374,391,392],[264,268,303,310,311,325,374,391,392],[264,268,303,311,325,374,391,392],[274,277,278,280,281,283,284,285,287,289,290,291,292,293,294,295,296,297,298,299,301,302,325,374,391,392],[264,300,325,374,391,392],[316,325,374,391,392,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,451],[325,374,391,392,424,458,459,460],[325,374,387,391,392,406,424],[325,374,391,392,406,424,428,451],[325,374,391,392,424,458,459],[325,374,391,392,428,451,452],[316,317,325,374,391,392,424,458,459,460,464],[264,316,317,325,374,391,392,459,461,464],[317,325,374,391,392,451,464],[264,268,269,270,271,304,305,316,317,325,374,391,392,451,459,463,464],[316,317,325,374,391,392,406,424,451,452,453,454,458,459,460,462,464,465,466],[325,374,391,392,451,455,467],[316,317,325,374,391,392,406,424,451,452,453,454,455,458,459,460,462,464],[317,325,374,391,392,451,452,453,455,464,474],[325,374,391,392,451,452,453],[325,374,391,392,451,453],[316,325,374,391,392,451],[317,325,374,391,392,450,451,452,453,454,464],[316,317,318,319,325,374,391,392,450,452,464],[325,374,391,392,450,459],[264,325,374,391,392,450],[325,374,391,392,450,451,453],[316,325,374,391,392],[317,325,374,391,392,451,452,453,456,464],[158,325,374,391,392],[116,325,374,391,392],[115,116,325,374,391,392],[119,325,374,391,392],[117,118,119,120,121,122,123,124,325,374,391,392],[98,109,325,374,391,392],[115,126,325,374,391,392],[96,109,110,111,114,325,374,391,392],[113,115,325,374,391,392],[98,100,101,325,374,391,392],[102,109,115,325,374,391,392],[115,325,374,391,392],[109,115,325,374,391,392],[102,112,113,116,325,374,391,392],[98,102,109,158,325,374,391,392],[111,325,374,391,392],[99,102,110,111,113,114,115,116,126,127,128,129,130,131,325,374,391,392],[102,109,325,374,391,392],[98,102,325,374,391,392],[98,102,103,133,325,374,391,392],[103,108,134,135,325,374,391,392],[103,134,325,374,391,392],[125,132,136,140,148,156,325,374,391,392],[137,138,139,325,374,391,392],[96,115,325,374,391,392],[137,325,374,391,392],[115,137,325,374,391,392],[107,141,142,143,144,145,147,325,374,391,392],[98,102,109,325,374,391,392],[98,102,158,325,374,391,392],[98,102,109,115,127,129,137,146,325,374,391,392],[149,151,152,153,154,155,325,374,391,392],[113,325,374,391,392],[150,325,374,391,392],[150,158,325,374,391,392],[99,113,325,374,391,392],[154,325,374,391,392],[109,157,325,374,391,392],[97,98,99,100,101,102,103,104,105,106,107,108,325,374,391,392],[100,325,374,391,392],[62,325,374,391,392],[239,240,325,374,391,392],[239,240,241,242,325,374,391,392],[239,241,325,374,391,392],[239,325,374,391,392],[260,262,325,374,391,392],[259,262,325,374,391,392],[258,259,260,261,262,263,325,374,391,392],[260,261,325,374,391,392],[164,325,374,391,392],[61,64,69,70,71,72,325,374,391,392],[60,325,374,391,392],[70,325,374,391,392],[61,64,69,325,374,391,392],[61,70,325,374,391,392],[65,66,67,68,325,374,391,392],[74,325,374,391,392],[73,75,76,325,374,391,392],[325,339,343,374,391,392,417],[325,339,374,391,392,406,417],[325,334,374,391,392],[325,336,339,374,391,392,414,417],[325,374,391,392,394,414],[325,374,391,392,424],[325,334,374,391,392,424],[325,336,339,374,391,392,394,417],[325,331,332,335,338,374,385,391,392,406,417],[325,339,346,374,391,392],[325,331,337,374,391,392],[325,339,360,361,374,391,392],[325,335,339,374,391,392,409,417,424],[325,360,374,391,392,424],[325,333,334,374,391,392,424],[325,339,374,391,392],[325,333,334,335,336,337,338,339,340,341,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,361,362,363,364,365,366,374,391,392],[325,339,354,374,391,392],[325,339,346,347,374,391,392],[325,337,339,347,348,374,391,392],[325,338,374,391,392],[325,331,334,339,374,391,392],[325,339,343,347,348,374,391,392],[325,343,374,391,392],[325,337,339,342,374,391,392,417],[325,331,336,339,346,374,391,392],[325,374,391,392,406],[325,334,339,360,374,391,392,422,424],[249,325,374,391,392],[211,212,213,214,325,374,391,392],[211,325,374,391,392],[212,325,374,391,392],[213,248,325,374,391,392],[210,230,231,233,325,374,391,392],[210,221,233,325,374,391,392],[200,208,210,218,233,325,374,391,392],[200,210,218,221,229,232,233,325,374,391,392],[236,325,374,391,392],[210,230,231,232,233,325,374,391,392],[210,215,218,219,220,233,325,374,391,392],[200,205,208,210,215,218,219,220,221,222,223,229,230,231,232,233,236,237,238,243,325,374,391,392]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3da4cd58ec690f79203a86d5e973d9e73fc67d113c1f7dd06049839f89782995","impliedFormat":1},{"version":"5ad3e58181b335ff8794bcc3161a1506dbe8cebbce71a15b3dc7bfe56f076679","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"70bf585bdacf3b20d843740b27b0359c9256c817a818bf7d18e74762be6bea91","impliedFormat":99},{"version":"a6d2eb77f390448a229ca63b4adadbcc549d203b8c038f1f7627a118f732969d","impliedFormat":99},{"version":"b886cc0d907b31ae7484a85da375bc8ac42f9986ec1e49c9c7c854956b0a928b","impliedFormat":99},{"version":"46b432f55912daaf98d11b81c5d06f8b78231c9ef101306ca5b3ef2cc7b6e9f0","impliedFormat":99},{"version":"8ab288ca80e5f2a9dab19955fcd9e81a244432cd7d256fdb5ea198ed5a44f0a4","impliedFormat":99},{"version":"0caadd121b8965f24d5c647a2ed01f5fc352772e4cea4bbca2ab78adedfdd921","impliedFormat":99},{"version":"b642b6a4b9b670338bc50281a6dd192fb7cc0b2f9d63d38c250bb1f02e828bbc","impliedFormat":99},{"version":"8e6b36766cbd3eed84e874fa9d1205f7b5e987fdf90d2574436be65040b2db91","impliedFormat":99},{"version":"c2e65a549ac9d227a9002d077af67bb1c77557a72bf39a85c4354831879078ed","affectsGlobalScope":true,"impliedFormat":99},{"version":"38f11ad59dfc38750b789f9f250742d0ce0da44e28f790a032cd15665b70f239","impliedFormat":99},{"version":"6e70da1429948b2ca8201ccc248bd2cb77cd6bbc4cf33f639c4b0f8f6a35cbd1","affectsGlobalScope":true,"impliedFormat":99},{"version":"601520abcca03c5fa2dc578075b1c0b560d6de0859832aabb7a567118034969d","impliedFormat":99},{"version":"91fce4c8d9954d0e9a48303e925541d8954bd468f532945d546eaf3654fdedb9","impliedFormat":99},{"version":"1da0ad9df4532256d79263966e73b04981e8563533142afbd214647a7bc14ec4","impliedFormat":99},{"version":"f8db03cdd070621b978744c04d42fc50232317bdfb114c2d1815bd5c8aef7386","impliedFormat":99},"a0a65dd55df71598f89c632b79098ec89eff91d95cb182ef8c26ee282421b371","e0dcde95aa37036207e7651ec2e68bf12af4e820cdc30eab19cf76cf47c9c9e9","1c60d5e6dbc713c4c8da52c42379367161869dfc8b32f4d1853406a4e0e4e1ee","f3a22460605e91603885243e069d775bc64ea2291334f2b5d74c871d1034d9fe","340ee3d9802829226a0bab2fd4633c104983f4d2933429ef03407c00d7ab034f","80b2c53cf82a27fce4fd29af835c45a92b7c4d0c04b27c5798d836e4349917dd","dc279a3f5102d8c836169ac99203f3945f574a4e39b0554bccfcbbb61f67b7c1","1396e113ba156edc03437ad104787cf9e4165bc0b2a4db90dbbaa7859e69200e","73bef279ca5d043ef109dc2328130dc3f180293c8ee741d245e4305ce479ae1c","e1838da73b9573d958db21581b67c1353d290b2f8e91b5d5d03fa85ee26d5978","47e78edd01754b5481185c7dc8005729765cb2fa3ecb9a37dbb0ef4ca9d00e52","09147c9c441e231496066a1dde3465ac83365dd78479ce30b5c720c158fe197e","2a5979db1eb0691cb4974febd30cf73ac7da4215ec6af90046c5443089413913","5a134199466414dfc79d48000c2068e810055c9866dd5462a046f2c873bdac7c","5959af7f0c8885439ed8e2b4257070dc826379556a869857321b5cb48c1d0683","cf19706c68b0664e887233ceba16ce1c1d72219c5e3eee375bd09119fd0db0fa","73758751f336eb90d1658e98ba8eab3d4d8a60dd4a2612d9b2d920e0d7ecdfaa","6904696aae347cff621c0703a3e4510f518c71d8a6d802b7db82e9dd016643c5",{"version":"63f6312a4be1ec344baa7c5cdb831587ed5f737f35df2baa2d3db1d180b983ec","impliedFormat":99},{"version":"74c3a57d874889e2f042b89b9688716af704cb2366d757ead586988f6cc9a625","impliedFormat":99},{"version":"5ebf4476be92f000f00cb9fb79d69babe6f6ac2a39efdb04a8f370e110003e19","impliedFormat":99},{"version":"39bc8c363900ffa799f98eb2e4c7ddd52e09cfb9392082128ebe49379f999aa5","impliedFormat":99},{"version":"7eb24daa7a3d9f33fb9f23ab1665fa25103a171048956e29b8e8ffb31e5dc14d","impliedFormat":99},{"version":"392b17a6ba3f687f19ba207f17841c99306701cc2882f3615a3b426686d854e6","impliedFormat":99},{"version":"2a9f82af6c7cf1e002d17153e10d758f685d085864f6c5f7d2b775ebcd6b2fc9","impliedFormat":99},{"version":"f65b6f12e264b6e22dcf888bc0c239aab27c1d1fa6560af64bcd450f864abab7","impliedFormat":99},{"version":"ecbac26c0c765e1da3e748a35ededfa4c7ed87f48399919cd952ae8bc32a1339","impliedFormat":99},{"version":"9c88eebb75b82b4ccb9412c7e3035e40e188ea3d7dcb010ff87986b7ff629555","impliedFormat":99},{"version":"154f87edab104ff00f36e95b36d01e014a4d74ac4fc219e124e2bf2627099267","impliedFormat":99},{"version":"30844ce073bb46b6908f55273063915629cd795bf7d83638bcb71e1507a494bb","impliedFormat":99},{"version":"0b616ee0814b25c7b231a73b57ad93a558a6b8cb5d3642776b92dca8e361dd9d","impliedFormat":99},{"version":"e87c70e28847174af0cf4448544b9826d810188394999d17ef38c344cb902276","impliedFormat":99},{"version":"bb9ee1f44b437ea1f42f552ccd05e789fff8108c65687ba3d9279e23e26263e9","impliedFormat":99},{"version":"ebd09f4071c53a42a09a20feb0b144b1f485f10a7d6190aba91c1714977d689f","impliedFormat":99},{"version":"345bf134b7c00954c1db3e011f029c066877a32256569c9d91b6ceb5bcca054c","impliedFormat":99},{"version":"2a1f7be668e3a95cdb683c6f755631bf19de9705c6d6c1c9e4ebc67e9db916d7","impliedFormat":99},{"version":"357acfb6822f15161214eb9e1848c767182750b67f9c2c6ac0fab52ce300ddbb","impliedFormat":99},{"version":"895ed044afb790fa06b64467688cb28436d87f46dcdc526a163915a962d55dca","impliedFormat":99},{"version":"646d66c423da6f036ecfda81da6f7d60a4748ddb0c58c85d261bb5c8e541cef2","impliedFormat":99},{"version":"93acb73e975b4fd741faf2e8fb2a5705aadcf8ca2df8fe354c9edb0b07622252","impliedFormat":99},{"version":"24bf4c3ab312b32e6f114adc2f4ce858a8a28af76abcbdc46a4a40655933f152","impliedFormat":99},{"version":"3b355d5bc20b716079980a0ed2d400180a15368db05888b3b858f90ae3ceac14","impliedFormat":99},{"version":"ff2c4a40bbde08390837443555b9ae201af54b527baf151555310782bd7bb8ef","impliedFormat":99},{"version":"0e9998684ca02c028170441f4c006e1caf425f9a9c3814cf8765a0002773fe30","impliedFormat":99},{"version":"1e647f80259d61974c8d0a89d9e3fd22416975c257d76f4f32d6ff38b9157f21","impliedFormat":99},{"version":"31e9f9b81179cdce4ee1cd1d6a427dc0c5fd15064307df8cad58237b0d96385b","impliedFormat":99},{"version":"7ba73e6476144ac4587b18bcc70349d2a8e7cede4e780815b53a057ca71f764d","impliedFormat":99},{"version":"fba690fc44b5c1db29fb472830df4cea1374642935a02c6302730bff37752498","impliedFormat":99},{"version":"2515daf0e2b05ec5a90349ea839cc1fad8e67135665747cd5f72b7b3d2ad49c3","impliedFormat":99},{"version":"7b4a756bb59248aeb831709239014a9850837727c2d6ec053f54eeaee95dda39","impliedFormat":99},{"version":"cde91ca23d14021aca53adba5977bebf7f72e4f18bbdcd2c6a689482c77dba07","impliedFormat":99},{"version":"191878041be6dae0b75974d1d28d55ae82a2896d5eb5004eb039e964e8140c00","impliedFormat":99},{"version":"7f4272fd567d065c1f5614ae3bed61b3dee47845267be0e41dd24f901985bf0f","impliedFormat":99},{"version":"0fe6cb0ec82fea8bb694d8335f8d470c8843600a277cf02d7dbfb84002666e8a","impliedFormat":99},{"version":"e43159089587768cc9e4b325488c546cec950602173b04a4f6cb9a615c4fc3b9","impliedFormat":99},{"version":"f3ebf0a71fb9e0d708c607d6448edae7a7893162532b560b3f361f48bacdbfca","impliedFormat":99},{"version":"053ed027d6ab656c53ee8dfc3fe842beff2a831831591f7f446c0ea1632f606e","impliedFormat":99},{"version":"79c5c3441a6786ce4804528aa560836e45cf855af4f25d6ca40f598cd6f1979a","impliedFormat":99},{"version":"bf235a40a595fe4c1c72ff72b50a9881a7279c4063029fc88e49237542797935","impliedFormat":99},{"version":"25627620692594a49b01a7192416e59a0fd94717c4f5c2800a3cdde58e28b39f","impliedFormat":99},{"version":"00f9b95c0741094ef69f8befa268077fb5dae5192149d99af5c7abf4cd20d5e5","impliedFormat":99},{"version":"89536ffee2ff5d49cd4c898a854a92a3d0812394f4ab6e1d48f9fb658f4abe48","impliedFormat":99},{"version":"0085bc39713819715d49b27bb64767dff1829179b0914ef0d4e1a852770f0136","impliedFormat":99},{"version":"9c6c451215eae6ae4ee0ebf8433f9d90494df7dba87718478c050bf5551da18f","impliedFormat":99},{"version":"a12d1a8f1b6e34597b9aef2757fdf4505362189c75b7f15266604a80bcffb42e","impliedFormat":99},{"version":"193f77fd99a5798127915516363958d227df9cb82e23f5890aa668409c1e6360","impliedFormat":99},{"version":"d8dc0c576c79c5069f4e87b0a15088e952043cb3df0ec487f81e6b98b174e503","impliedFormat":99},{"version":"84b69e8d4be7b1736536d1ab8c72c48318bbe6c677dab53a2d51058f9e68df71","impliedFormat":99},{"version":"97d3c4bd2a49a56f2cb63bb76c5880afe5c76098dcbb5598cd14e96bf572cb86","impliedFormat":99},{"version":"a493cd942f29c45c9befb1cf2f3e9a757300e1fa6b5a20cf939bf563c31f46a1","impliedFormat":99},{"version":"5300527e32de6eab286e5b70c3cca475380320a142ad54f234a34daadfc7bb1c","impliedFormat":99},{"version":"7476dbc814b46489fff760fd1f3d64248aedbf17e86fda8883c9bd0482d8bf73","impliedFormat":99},{"version":"8520b3f4c2c698bcef9c71d418a11c7cbe90d7b6d7deaed251a97ee5ef6b2068","impliedFormat":99},{"version":"8afc3d51f8ace0b6b9e89a2f7d8a6dffaca41d91733d235dea7c28364a3081a1","impliedFormat":99},{"version":"01cd58f2842ffec94a7cd86881fb5595df4b08399b99e817d2c25c2fb973fe09","impliedFormat":99},{"version":"d49f5458be59a10cc60ad003bebafa22eb37e15492020b2be9ca07055b6c8b10","impliedFormat":99},{"version":"0aa491d56a8011fcf95247f81cc4e09b40cfd5a96e80221038347da3931e8ba6","impliedFormat":99},{"version":"814971944c21b19105949c552a7dd5b35235a17a2eb8092b809e2fcaa54ea4e4","impliedFormat":99},{"version":"70f1528dd7d2131386fdcf6223ac1c56f2d7726c7977bd5eddcdfd22cd24f7f6","impliedFormat":99},{"version":"87f41340a0cac5b54e499b3ea6e6d0cb2e7abb9abf5feaedc6c4cc608cdfdc54","impliedFormat":99},{"version":"d0a8b3701edaddb7db2935bb134439272b46201384579eb0b53d66e4ac83bbfc","impliedFormat":99},{"version":"7849c2e4caee1cb71890ceab95b767c68f7110eae9e3e976dac8248702276218","impliedFormat":99},"90c59e0d909db03a00e54bd1f6ea3ce221cc86959b51162dbff13f4329f1612e","afbc7e265d1ef8578997b3f5a2ede01df33eca53972f3d3f3f4dc0b2cc7fd584","6c94a0e2409392e495717efd273a2f6a6ca909c2517dab49a18f2f88f4f71244","732a3dad7b77018c70ac5e974e50106810febd6b08eb04c5ca998fbf2e5e7950",{"version":"6bd987ccf12886137d96b81e48f65a7a6fa940085753c4e212c91f51555f13e5","impliedFormat":1},"dc1ef0825921b8ea06aba6670abae5ada4114596908c7a6c9d28a46df2107e2f",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"c27f6293397e2ea1131b49a4d3a6f9bca9c8023b9d1ddef0f677c61386fa1728","impliedFormat":1},"f67137dabfa1c1ec50ccdaaca7e41055670f81e96ce18c9812cf3d7dea2e3b54",{"version":"7dcb8433fd192c5f9612bd13252c5390b25417e22d6a7c18039976b24603331e","impliedFormat":99},{"version":"04ab252427e951ddd506f29c20148dcc4917c678f357dc765f79705ceb5c0a78","impliedFormat":99},{"version":"d1913435f47711c4974c5894f07f13a0b0b9d54fa39a1933f4a908c1a7b36882","impliedFormat":99},{"version":"f6cb9ee3ff8dd47760f39de28782c8806aa5b8e05a4a74d96e8981e5a6409502","impliedFormat":99},"cd3d8edc3490373f4fbb69c426244f0a7e10716f5e84faa3b7bb8ab1130d697b","fbdd0174718447914f2839482656ba344336339787b964096d6f71762cbf879c","29fda32f8c7bdeace48162b8619ea00b466d8eb1909e6fc627bc6c4df235cf6c","87a8feb7e574d0b5b856649433ea407ae11605bdf8fcc5ac82111833873c924b","685ecf0bc9904bc2b5b79e6e067f56f9ccf84a1d3abf394f6c426bfc588c6e54","63d3df0377427ec5ab27e92d451024da500355fd31d3a01713a1f170b2cbf349","30e57d6188cf382691f61a925f13b49b854728aa946f7b0c2ffa80a9b4037c51","987764a2d9c0ba1ca51c57a574cf465669e5f2f4b47b914edaec89be24d624c2","cd2be69a9776801b30bc1b04d74d27ba7df9ee5e4715a42736d67a0d64353b46","e5cb6ee9dfba2a7c3184d73fe082529c032d086feb33e271c37da2d1c77337a0","d413a1df5998b6ff24e9132be334868d31b17b9522f7e6988331bce4c2db1a1c","457baaff76b066cf7255396aebe7434c9516e7995c411445b951f5cefa93cb25","8005a56fda338f2b74c1fc96ce265ae68e209884e06dceb3269c4357a8b61894","93f288472f2e9f849511bd3b0cdc612ae748b92f5ccd9d7096e16444ab96d502","82b81b88c453bbe200d88844d7762687186d65b443624d76e7b71375c95b048a","dd62459674095ba40cce311c3f8dfb55f8e86e44c52cd0944f6baf0a41711a0b","43bd2b256e830a75acfc6aff79d5976b12f2bf11eba0031cc54beadf719be134","ccfdcce02c8ccd83da19116f024430e31965d4193628750810912e56247d0034","d04d565022e0096b35ba071eb2d53f758f3f94e81c5e1d52524ada0a83582b46","7513cd196bb51de3c4d027bb5930cc85e391991d83d1e881d997ac994da5212e","47e7859f3a8d9c8a5bc6c35eb073725e453fa79a4bcef2e617f14e15c887b914","109eba3ebc90a4e76c04785ad9e8315da661f68d7c5ea1d10231610931f9ffec","9ecdaedfd7617246ecb5c1a0fea5ec12f8f23d8abe7b9f45cbe9ea2541779fe7","49186bb9fd69d30c812cf3e00cdfc7b6684de824afac3c5c020d3305ecc9cb27","d97a699f3aa4d35acf78db62b457966e9964c5985d063694727d2af0f29d4259","2d53fc391cef86c557df6bb9b573b089a75cb0bc409b06f34ae67520c3f43995",{"version":"acfb723d81eda39156251aed414c553294870bf53062429ebfcfba8a68cb4753","impliedFormat":99},{"version":"542843bf5a39a528acaff79ea0255ed2912c541c442541b0547e29ac945e9823","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"57e9e1b0911874c62d743af24b5d56032759846533641d550b12a45ff404bf07","impliedFormat":99},{"version":"9f54d7adce0db4df8f6c11e20f3e7a66e55c510f196b074d0bca3370259a19fc","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"426041a8287038c60355059aa77aed3c154f93dcb6dac1522cd7fa56b908a7fe","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"2d9fecdb0c3559cf557bbe02c609c468afd71f5c7a745d457d40945e16576279","impliedFormat":99},{"version":"0f050859f31d35e3e0c0c8cc264dba86ac18f09ab1795c3121391c7b99145bc7","impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"c35b8117804c639c53c87f2c23e0c786df61d552e513bd5179f5b88e29964838","impliedFormat":99},{"version":"1615bcd6d7171eba0f9fd7b43ac975bc613cdcb0ffe6662604aa879286776d79","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"04d66aa50d15ef11db3d14b1ac5646aa78acc95e6f912a68ce4b3e18008f2a89","impliedFormat":99},{"version":"231a89c411ba2f45ff9d2e1a243af6924db5725e2d49c8b4a6e50c9705db049e","impliedFormat":99},{"version":"31fd7c12f6e27154efb52a916b872509a771880f3b20f2dfd045785c13aa813f","impliedFormat":99},{"version":"b481de4ab5379bd481ca12fc0b255cdc47341629a22c240a89cdb4e209522be2","impliedFormat":99},{"version":"76af14c3cce62da183aaf30375e3a4613109d16c7f16d30702f16d625a95e62c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"9b62957d57b26091b394fae7bde141a961c1b030303cb25cc300df6db7402ed4","affectsGlobalScope":true,"impliedFormat":99},{"version":"2f793c9a8e876aaf52504b129058a1ea13e05638284b4bb01060da8c38809d27","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"61f3a5216d8a635584211662b7868ad51b217249191b1987d7bb405c0ec55dee","impliedFormat":99},{"version":"213a00d511892898e9dad3c98efe3b1de230f171b9e91496faca3e40e27ef6a7","impliedFormat":99},{"version":"62486ec77ac020b82d5a65a270096bb7f2a1fd0627a89f29c5a5d3cbd6bd1f59","impliedFormat":99},{"version":"c637a793905f02d354b640fae41a6ae79395ed0d77fbb87c36d9664ecbd95ac1","impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"ddf569d04470a4d629090d43a16735185001f3fcf0ae036ead99f2ceab62be48","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"4c8ca51077f382498f47074cf304d654aba5d362416d4f809dfdd5d4f6b3aaca","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"ed9f6672a4211d2d304dca5fa59c04403bd99cf1deed027c1811478a4448e1b6","impliedFormat":99},"749e6dcd93ca7baa04ab36975d7b95f73acb28a7288f6a5455d64f565759615f","53431ed95a601d2e4e181ac666cedae641f18de7074809f0bbd2206ad56014c6","2eab445d025e2322370f372b4650a8b269d24292a626e17597d46f00ff6079b2",{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"19efad8495a7a6b064483fccd1d2b427403dd84e67819f86d1c6ee3d7abf749c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eef826bc4a19de22155487984e345a34c9cd511dd1170edc7a447cb8231dd4a","affectsGlobalScope":true,"impliedFormat":99},{"version":"db774edca980dd8a9602eb7ad0f4ee8d235aa5cbc720ef9a2ac4554678e6e33e","affectsGlobalScope":true},"c9ea8df6588b403b74084c7e4ffa754d272c5c2d119f14096e44ec0810aca9fb","9bd2c48b4cb4244f04b22adcc5d63b743512c8cb5aebeceebdd0465dee8fd7a0",{"version":"59ef8e3c15d7566380095696286c7cd08cb4c62d124646781fbcaf665e95017c","impliedFormat":1},{"version":"ef7155bff762b3e1d41af25f3482c1878d0e4e393ea12de6fe229649f8dc4b7f","impliedFormat":1},{"version":"f6c159b58450a4428006adc3d5eb73685d7d34b8c854980926ec78b7e4931b18","impliedFormat":1},{"version":"f5ce29a2dc1ef02f30ce6ca87b56209153ebe23a452d9f83c6aa4506066dce91","impliedFormat":1},{"version":"05adb45e3dde250b6ae4a50b9dd26457489cbe6bb5de36468aea83df2324e3b8","impliedFormat":1},{"version":"b71da9f22a46322f03f5900108c7bc23fe598e2dcd3955d94df0bf9b03adc9ef","impliedFormat":1},{"version":"15d54b1dc36761e843f740e13d896928b5bcb76c9cca250faded032e552ff447","impliedFormat":1},{"version":"9cdc4ef56cd1fcd4f6e5d06b222a1c36872660393e33d138d953a41f19c5db20","impliedFormat":1},{"version":"a6ce2450e3b08abb086b77e0408b4717322b370715b77f0b9f185619e2523b8c","impliedFormat":1},{"version":"5bcefd704c479b68d8050f61beeb84911739d7db5ce22b50c2c8396a7f8a973e","impliedFormat":1},{"version":"1bf22eff6631acc2d999b72cb87f26781fe2d449000beab70e5becba665237aa","impliedFormat":1},{"version":"cb31fbd38e527e01368c338daa15c472c9dacb72a0a6e483d7f338d2a2b88d92","impliedFormat":1},{"version":"9a056e9b9acc76b8320976d9fe6cd87c53bc1f4e2919613bcceebcff6b539cfa","impliedFormat":1},{"version":"a8f09ab4bfbaf32009c5ceb09f267c45d3e9fad63a9640c3dfc824480522eb1c","impliedFormat":1},{"version":"8d6da1d6d75e21fc322882a7a6cce39c4a85279582c0652fad76ae658f1fa4d8","impliedFormat":1},{"version":"2dcb4881af7d254e20cef0d36e33ef63025cea48ac9b739e310ac8dfb6a4d4d1","impliedFormat":1},{"version":"0e8c1b7ce40dab54106b02db1b529a9d1d34b0bec61bdd3af9c27dfc5041b8d5","impliedFormat":1},{"version":"fdd8e8b914f1d8c32363f45e37f9577be9f65e9171833a4c8c117afde983df3b","impliedFormat":1},{"version":"9fa2d338f2c6e4fb5a2cf20bc83f24102f177c9996a9550ab9cb295afc443322","impliedFormat":1},{"version":"b6b354bd57b44849015d119134a2adf6136dd459fb38f3625fbb35c844343362","impliedFormat":1},{"version":"831e08bc1e0e0fed9f34180a42bcffa15437283b3a90c453f98fd82f639784c0","impliedFormat":1},{"version":"576d3ac930288e7fe44873f24dd8ba11873ab8c536c5f67464e9acdbdbf5f0be","impliedFormat":1},{"version":"6210058f2ce3e9052681f3d2df475d6bda1cee4584dd3a5ef1ef0e60959522d7","impliedFormat":1},{"version":"7a04ce0e85d6db683f63ec9f2699fac3e2d9fdd6a9313dda42e25761a3c83a2c","impliedFormat":1},{"version":"2b9c4aed45c33a93dc6de1e5894094090363aaee045921a0e6ef245657c5315d","impliedFormat":1},{"version":"b9c7f144f9051934bba76cb051d806377a0676ed488ae5764daa9bf7a198fbad","impliedFormat":1},{"version":"dd36b72841bc2a5edbe39640abc5d0175f06b9de32d6b767615c62c460330382","impliedFormat":1},{"version":"de06c3051539ddd64044947bf5a804005e98b09613699b19de1c09ef8e8df95f","impliedFormat":1},{"version":"681c8a82369365bef1360957b467844e8bb3e9626df2162d904c8bbfc92863f8","impliedFormat":1},{"version":"8585b7a7cc1cb48171fd9e168ca0126a921189c6643cc4dd5dac43de6d3b61e4","impliedFormat":1},{"version":"7eb739af12059b8c368641641776937254b381ba298e43820b78696d4e12d3c9","impliedFormat":1},{"version":"f85ef2b6b6243d398b2146de3186f12c825a18295d3913aee1d7ad237856c6c3","impliedFormat":1},{"version":"e83218020bb0bc9a527cf10bca9f3afe489900c60dee03e8398fe135054c81ae","impliedFormat":1},{"version":"d30f3ae4c835c4006e1676170181461e7e97b4e1d2fa0c96a4d0a355cd97fd8f","impliedFormat":1},{"version":"989b02e98599537eccb0e89c3c737b75159fc64299bcee5ecf495535a4096efd","impliedFormat":1},{"version":"b0cfe92f5a41d98256df17702e2e30afbcbc5d33fcde330b20dcac2df26b393e","impliedFormat":1},{"version":"7de22e2447797056c5bbf57153d8e7d7106bab19b2bb8111cf9c9776935b81e9","impliedFormat":1},{"version":"74ecda5bfdd35b1b365b3069acb0224303c20b458e92dbacf6954eef4d9f30db","impliedFormat":1},{"version":"7e1862fcb5a27f449515e7ad569afb738896183889a3dfbf09f125d2ad1effaa","impliedFormat":1},{"version":"c3bc001ab25d65e716b576b0c607d413802122e85fedf847629227fdbf73298e","impliedFormat":1},{"version":"e0644b2e6e5f5709fd5b0377e801ae12fbd1a9d612312ed86b823159421e29fd","impliedFormat":1},{"version":"1dfa53faf0395d8e6714329b001659009171d5268f7231ad05fefeb19b7dd0a2","impliedFormat":1},{"version":"baf281afcc69097878a9f76190ec1139cdcb6d39adb1e0685644789fe99769ed","impliedFormat":1},{"version":"6d0e0c26cd26694ef8f4776443fdd846add0a327244424b5be1eb3320a770486","impliedFormat":1},{"version":"77df8e8553d35e13728f6d0a37ca982520046645694ec1edab9df2df4e905dc2","impliedFormat":1},{"version":"2996e46b71dadb93d38b47e420444d91ce3685f7ff0f0314bcc6503c6018c00d","impliedFormat":1},{"version":"03c9cee66774b18d3c20119b5fd25b3a94f95757aa82cb5bfe9cf7cb91400bd9","impliedFormat":1},{"version":"0c7aadf8379300a1dba35b087663c682f440aa5923ea96a8ff9ff483b891766c","impliedFormat":1},{"version":"70f8da676faa53028982803fb3b389b98119fb0b41df9020a3130b008ac6dc74","impliedFormat":1},{"version":"2409017257471ec5e3bf053cb4a0e0a5f3a7f11901a247118c1654980d7e1fe7","impliedFormat":1},{"version":"8b729a1d9b4f457b23b790a07111742b5c2714b614da768550e0a7309350e438","impliedFormat":1},{"version":"07ae8276b1ded724db7342f1271258bdf7d897ad47affecde328f89543fbef71","impliedFormat":1},{"version":"959e21dddaa3d50c7a9573c033371f8a8eb75e1da2e4f0d2ffc2e44862a7939f","impliedFormat":1},{"version":"5c5150c7774dcedeaf599b1372b8158b3f8a0e665d602a35e34470822da59f59","impliedFormat":1},{"version":"fbe77f3f07a47c30835cb7b88d1aeaf605052884b819f0669977a9977bbd4a8f","impliedFormat":1},{"version":"07cf01ae7f286d5c1390bec1fc2cad285c2cd96b3778b61eddfadd2305786040","impliedFormat":1},{"version":"d07829c9a6e7288abc6d1df2d0e3ffd31a2418b38e7bf3d374437042844ed17f","impliedFormat":1},{"version":"7299ae6e1cd70af673d26872a2c7616ea6fa287021669473bdd7842c94094f61","impliedFormat":1},{"version":"820567b6f3633584ecd3e57c8cc192a6a18f2803edfe730fd1531d9cb6fed891","impliedFormat":1},{"version":"2ae462dea06b9d0a202c1c034ae686d225169038c33242052f4edf93db00b254","impliedFormat":1},{"version":"5ffe14c99d9130074d6bbc1edeabe4b4ef9168a05986ac7aff84ac5735c4d77b","impliedFormat":1},{"version":"86241fb7f3594bade8e6589a5426d72a23dc6426703d43e1c8dea0570d78fd14","impliedFormat":1},{"version":"555913cb6d865e6207ab7f82f3391013cc48423ee120550246ea252d8685be6e","impliedFormat":1},{"version":"b0765a00e3e002773a6af233b937dfebf23fce20a9a7abcabb44ad6b7532e6ff","impliedFormat":1},{"version":"39ae6f648b10326364bae3e24c5735d12ade5ef4ba6ae6cf17e6b57dfc7d736e","impliedFormat":1},{"version":"fdcd57d2575b4e00c4c92b1a2fa15c791365aa763c4d4c901c3f3a362acd27d5","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"f949f7f6c7802a338039cfc2156d1fe285cdd1e092c64437ebe15ae8edc854e0","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2bc7425ef40526650d6db7e072c1ff4a51101c3ac2cc4b666623b19496a6e27","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"0dba70b3fb0dcd713fda33c2df64fa6751fff6460e536971cee917260fb17882","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"860d8f412e586be2009ba1806760f46f0501aea96880436a53956915295ba847","impliedFormat":1},{"version":"0a02b0f5641d72d688128db3e2608d927612131c11eb4ef6ee28c880b8577019","impliedFormat":1},{"version":"dd1f84835041fb21fbcb6d213290cfdb07fbd7551c5b9340db3f5a8906d403c9","impliedFormat":1},{"version":"9a7e14707830dbb4968c875b9f8ab510f531f11d3162c64d4188fab2ab0b671c","impliedFormat":1},{"version":"fd2d5cc8041746b1cc71ab247163982c68b4fad0522b2a8f555368d57f1aa134","impliedFormat":1},{"version":"7f56883fceba869ca2e3bab049cf33272bac1a6937c235c652e0bbd9aef67624","impliedFormat":1},{"version":"af1f132f95a4a56d9304f8dfe68f116d2324b0368411574932c55cbe2fafa214","impliedFormat":1},{"version":"4e0a5de3811fcb44426b7f6bea3458d1c794591d0b4a715c51c3ad5d70f08ab4","impliedFormat":1},{"version":"68b735874e866f37d072bf674535a9f33965132ed9e1e4164a6fbc494d590604","impliedFormat":1},{"version":"9cec0cc895584e0e42d5c97c4a16ebd25a4fa60730c186edf0d28df0a5bc3702","impliedFormat":1},{"version":"94d41a754d3dda0f2517d49d181f1ba1d812b85e7bc2c822c40be945328edc33","impliedFormat":1},{"version":"842ffda229092b37ce0bc6748b09a38aaedc8490a69b3a10ec48ebf47baa3224","impliedFormat":1},{"version":"0449afb9de90d153878437b4004c6c5ce1e2f8f33e93ace383d387b683bac845","impliedFormat":1},{"version":"358999876ec96fa23597d354ed2fe6ae495d7c654e720ab3be349179133ed14d","impliedFormat":1},{"version":"8daf1c92a5955e61e5f82160f1d3db34beb4b60657a20ed91e450b32c4d09350","impliedFormat":1},{"version":"4f84447ecedf492742cf058a1dc4a3cba63b932778463c858112e4072c79208c","impliedFormat":1},{"version":"74e3a9065b290394d3ee7fb111bb4523d846663d898aa21bb76c8e9af979ffa2","impliedFormat":1},{"version":"c50e1748196272f55890a55bb1cda5173fa615e4a07b3f741cf4f24eaeef838a","impliedFormat":1},{"version":"e19b2a73885f75f29b2adcf1077c8dde7d69137af24c065b5ae7d7fa9bd3b820","impliedFormat":1},{"version":"03770bdff8a4fb0c206e60d6139aa924b5c0bbf94e924d6625f553f59a6a27fa","impliedFormat":1},{"version":"2e54730070d00c443dbb388a356667bceb0a4c7ac5711c0cfc6355964cc7ab2e","impliedFormat":1},{"version":"207e465a5c27537cd6c987739a0ccdd2bd0b13dc69511d11bfe979e19fcbbbbd","impliedFormat":1},{"version":"7008aa856c52cc0af5aa6c755abfba94dbc5e0a9dac3f9a985eb5ed52e6d535d","impliedFormat":1},{"version":"27551a71453552cdb14453753b2808fb405e6b1495f53b1de318953ac4ac73b5","impliedFormat":1},{"version":"0bb991b7c106b013ccd1b236bca252a34d8cfd2a61387409c1c407e8e07acada","impliedFormat":1},{"version":"402ae4d5631349281bfb5f4a49c939bd56cc263f63fcb2e4e730ee8b4b113639","impliedFormat":1},{"version":"48c7beca038d3139a3ebf59969479e307c79ef99340f9a21711dbecedc539b13","impliedFormat":1},{"version":"8a3ba8887f57d779b22773c0a7d988654bfc4ae2c7c3dfb497b8e7d0414f082e","impliedFormat":1},{"version":"b63cd507f90ae6676915db153a40ce7d6a4c2796d4eb9d607a6739f4017b04e2","impliedFormat":1},{"version":"360816468e738d7f3a96116575347aa1b1d3d470a35be1c3953c50cf6d50268e","impliedFormat":1},{"version":"8e9f6de6a56197fdf0b0a75ae16f95d3b067607ec1ea389b2ed97f4a9d83eeff","impliedFormat":1},{"version":"73ea32389e9e86b206d30bf4a2d277c754c239f87fe978face2d40defc1d05e6","impliedFormat":1},{"version":"51c9f201ce3da119ca046f465c131ec8bf1e4dba44cb21fc7d3b83f2b75069c0","impliedFormat":1},{"version":"5d9197cb5cad259f081c941443fd9af29d03ce800b1e3d5e0ae5df36eaaaf658","impliedFormat":1},{"version":"c9669ad57d4d681e791d740727686eb96379128c6f66448b3233c477247199f5","impliedFormat":1},{"version":"dd01829a1232dc969066f1a1f478a25ee453a4e76f4e033080e279520b4460ba","impliedFormat":1},{"version":"d6bf6f2a8f1bf3fdc6ad05035672d8c38a04f72f39c5a55db9f1844689eec144","impliedFormat":1},{"version":"ec1e72c665317467b85ad4d27f5c106e6a888116f8757d883c8600e5f299192e","impliedFormat":1},{"version":"414e31d3a66f5c79cb49e82c3960a6983f1c031df82de1008bd255bf7aee58ae","impliedFormat":1},{"version":"8f8bf05a356229bd24edef8696f586bed7fa3d5dd5dffa6b1bb6899323699fc6","impliedFormat":1},{"version":"0881bbb944fc4d723c4ac7dbd4bccec7a5bad8f1cbcb677d12126e88a92dacaa","impliedFormat":1},{"version":"5b022572fb0abf915827636c7d318a067ccf6d9836f020f2350e7c6b01268695","impliedFormat":1},{"version":"72cf65c6ebe12b6d48445747b791c7354237546b752f1aec64d281df4bc25111","impliedFormat":1},{"version":"f8080b135a218967c1c3266f732b92b1dbf0007331c6f31f19057d4784fbfe14","impliedFormat":1},{"version":"27496861e0db6ede90b48607bccd9ea9a18aeac897b463cfadead98abe105ccc","impliedFormat":1},{"version":"16a535be43c022b2b40c0fb4365841633beebf3d6f55f808f4999d830883e9d4","impliedFormat":1},{"version":"87fd703309f6f640f2a0a6ce79c0b14c02cbbfdbd3913d6af601be883ab8cf18","impliedFormat":1},{"version":"9bb021b1303e52cdc159ad2a254e449c68b9b5157ae26b9d918f19e2c8d94223","impliedFormat":1},{"version":"3532bb2f755c7050cb5e0f346874ced87f3159a6ae1fcfd90eac8909d7335dd2","impliedFormat":1},{"version":"6f4c302094e64feb442e3bf734812b134ac42eb20fb1935ae0d49aa0e54d9e0f","impliedFormat":1},{"version":"939272dfb746346da9b080fd93950c8d96a227ba046341e88bc8ce4f1464ca69","impliedFormat":1},{"version":"76c8bad0b5624cd4a8b0b4f93e2bae9ca70de86ded9989b762584f80d6b8b45c","impliedFormat":1},{"version":"f50c7f861954be4eb976d47bdb5c4f06ad75a65df7ece9c66ecd6f340a181f95","impliedFormat":1},{"version":"3240d61dbfa7973313591b64128090aebba26d8bd50d3a5e7f8261a260c55444","impliedFormat":1},{"version":"ea29f4f85f69237b0dcdbe213fa01eff34c3ece92d32b2b6bb4b79d537721b2c","impliedFormat":1},{"version":"a4cb672e87b50e55ac22740bbb9a5eda426b94f2b1647415eabe1e20af6a27c3","impliedFormat":1},{"version":"05e2821682a1e07b1d4ed3fd6a8d203d83ac419cb016192e01f606d0e88157cd","impliedFormat":1},{"version":"7ba4c2777f22260483a0f2110d73a5c8a8539675b20fb24e8a339bd0061c5afe","impliedFormat":1},{"version":"4fb5a7cadbd14898aefc703a06b06107ca0079e0a3f8b256da3f9dd153d384b3","impliedFormat":1},{"version":"eff95d49df811c1da2972389d0d799c8b9e9830373ced11946f4d3b3dde22da1","impliedFormat":1},{"version":"4a5fef1ef362b78824b1a822c4d07fd201848797a309ee9ceb2926f0ef7a68eb","impliedFormat":1},{"version":"0a03cf87c7fcbb7e51fa816f8315aab5dd298d9f42d09ef6b20b03fc146ffc19","affectsGlobalScope":true,"impliedFormat":1},{"version":"16de867f01c3469cf2a8e039dae54b274ef80d9b027e90a21cd6a8b7a2b36644","impliedFormat":1},{"version":"2def019f197f6fd7927f4b2e982df57fad487451b6582ef8c6c66f00db62f7f8","impliedFormat":1},{"version":"bffdb56d023e2176c5d1b815515b087b225d97fcce293918a40a8f3cee3d9986","impliedFormat":1},{"version":"f6c801a9c2a6b15c89b6fd0d871d743441da0888b1040047a675709fd696f3e3","impliedFormat":1},{"version":"b0364c2c877eac15e910cfee217fa42f783bf1659ec83396130d22c70c717f0f","impliedFormat":1},{"version":"aa216412bdec7f09473bff6257675c5ff4d863a29e763f9dc8a6345c4e142031","impliedFormat":1},{"version":"709af03d532363cfcf0c52bfd893ec7798870bb8ff944c46a4bf747ed83e705e","impliedFormat":1},{"version":"376a96e6304baf7ae09a25b239a8e8b7460f09d92627d30c97b2c3b162e1724a","impliedFormat":1},{"version":"21eacbbe4649341bac7f86862fb068d8734c91b888f20647f0818e0b872eddc2","impliedFormat":1},{"version":"c62ff5c5ed3bd1d8d54997cbb545029f550973e87b5d24c92dbfe5430d28ce90","impliedFormat":1},{"version":"706a9619d0412b0a7f9efbd85f52adba12f7b3ac173523edf4f609d0a7b1ec4d","impliedFormat":1},{"version":"ee6a16475f55b27106d1749a823cc5f167c1e7c76883dfaa7ab6d462d753b66b","impliedFormat":1},"2516ce35f835b1cb70f31c97c59c49858fdcb6291b229903bfa41dca06e059f5"],"root":[[78,95],[160,163],165,169,[174,199],[245,247],[251,253],499],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"solid-js","module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[94,1],[177,2],[86,2],[186,3],[189,4],[85,5],[160,6],[165,7],[184,2],[180,8],[183,9],[95,10],[84,2],[88,11],[92,12],[252,13],[81,14],[185,2],[83,15],[162,16],[161,17],[169,18],[93,17],[82,3],[179,2],[176,19],[253,20],[174,21],[163,3],[178,22],[187,3],[89,2],[192,23],[191,24],[90,25],[188,26],[87,3],[181,3],[91,2],[190,2],[182,17],[175,27],[199,28],[499,29],[193,30],[196,31],[195,30],[194,30],[197,32],[198,33],[79,30],[245,34],[246,30],[78,35],[80,35],[247,32],[251,36],[498,37],[486,38],[484,39],[254,40],[485,41],[479,40],[478,40],[487,42],[477,43],[483,40],[481,44],[255,40],[480,43],[482,45],[476,46],[256,40],[490,47],[489,48],[491,49],[493,50],[492,51],[488,52],[494,40],[257,40],[497,53],[495,40],[496,40],[225,40],[173,54],[172,55],[171,40],[228,56],[226,40],[166,40],[168,57],[167,58],[371,59],[372,59],[373,60],[325,61],[374,62],[375,63],[376,64],[320,40],[323,65],[321,40],[322,40],[377,66],[378,67],[379,68],[380,69],[381,70],[382,71],[383,71],[384,72],[385,73],[386,74],[387,75],[326,40],[324,40],[388,76],[389,77],[390,78],[424,79],[391,80],[392,40],[393,81],[394,82],[395,83],[396,84],[397,85],[398,86],[399,87],[400,88],[401,89],[402,89],[403,90],[404,40],[405,91],[406,92],[408,93],[407,94],[409,95],[410,96],[411,97],[412,98],[413,99],[414,100],[415,101],[416,102],[417,103],[418,104],[419,105],[420,106],[421,107],[327,40],[328,40],[329,40],[368,108],[369,40],[370,40],[422,109],[423,110],[62,40],[229,111],[235,112],[236,113],[234,40],[200,40],[206,114],[210,115],[209,116],[230,117],[216,40],[218,118],[217,119],[223,40],[208,120],[201,121],[203,122],[205,123],[204,40],[207,121],[202,40],[474,124],[475,125],[428,126],[443,127],[429,127],[425,128],[431,127],[432,127],[434,129],[440,127],[435,127],[446,127],[436,127],[433,127],[439,127],[444,127],[442,127],[445,130],[447,127],[430,127],[448,127],[437,127],[438,127],[449,130],[441,127],[453,131],[316,132],[457,133],[277,134],[461,134],[265,40],[267,135],[278,134],[268,134],[266,40],[279,40],[280,136],[281,134],[271,137],[275,138],[273,40],[283,139],[272,40],[269,134],[304,140],[284,134],[285,134],[287,141],[274,134],[288,40],[289,142],[276,134],[290,134],[291,134],[292,134],[293,134],[294,134],[314,143],[315,40],[295,134],[286,40],[270,144],[296,134],[305,145],[306,40],[307,146],[308,147],[309,147],[310,148],[312,149],[297,134],[311,134],[313,150],[282,40],[298,139],[299,139],[303,151],[300,40],[301,152],[302,134],[450,153],[465,154],[458,155],[426,156],[460,157],[427,158],[466,159],[462,160],[463,161],[464,162],[467,163],[469,164],[468,165],[454,166],[318,167],[319,168],[317,169],[455,170],[451,171],[472,40],[470,172],[459,173],[471,40],[452,174],[456,175],[473,176],[227,40],[330,40],[159,177],[117,178],[118,178],[119,179],[120,178],[122,180],[121,178],[123,178],[124,178],[125,181],[99,182],[126,40],[127,40],[128,183],[96,40],[115,184],[116,185],[111,40],[102,186],[129,187],[130,188],[110,189],[114,190],[113,191],[131,40],[112,192],[132,193],[108,194],[135,195],[134,196],[103,194],[136,197],[146,182],[104,40],[133,198],[157,199],[140,200],[137,201],[138,202],[139,203],[148,204],[107,177],[141,40],[142,40],[143,205],[144,40],[145,206],[147,207],[156,208],[149,209],[151,210],[150,209],[152,209],[153,211],[154,212],[155,213],[158,214],[101,182],[98,40],[105,40],[100,40],[109,215],[106,216],[97,40],[60,40],[63,217],[241,218],[243,219],[242,220],[240,221],[239,40],[261,222],[260,223],[258,40],[259,40],[264,224],[262,225],[263,40],[164,226],[170,40],[73,227],[61,228],[72,229],[71,229],[64,40],[70,230],[67,35],[65,35],[66,231],[68,229],[69,232],[75,233],[77,234],[74,35],[76,40],[231,40],[224,40],[58,40],[59,40],[10,40],[11,40],[13,40],[12,40],[2,40],[14,40],[15,40],[16,40],[17,40],[18,40],[19,40],[20,40],[21,40],[3,40],[22,40],[23,40],[4,40],[24,40],[28,40],[25,40],[26,40],[27,40],[29,40],[30,40],[31,40],[5,40],[32,40],[33,40],[34,40],[35,40],[6,40],[39,40],[36,40],[37,40],[38,40],[40,40],[7,40],[41,40],[46,40],[47,40],[42,40],[43,40],[44,40],[45,40],[8,40],[51,40],[48,40],[49,40],[50,40],[52,40],[9,40],[53,40],[54,40],[55,40],[57,40],[56,40],[1,40],[346,235],[356,236],[345,235],[366,237],[337,238],[336,239],[365,240],[359,241],[364,242],[339,243],[353,244],[338,245],[362,246],[334,247],[333,240],[363,248],[335,249],[340,250],[341,40],[344,250],[331,40],[367,251],[357,252],[348,253],[349,254],[351,255],[347,256],[350,257],[360,240],[342,258],[343,259],[352,260],[332,261],[355,252],[354,250],[358,40],[361,262],[250,263],[215,264],[214,265],[212,265],[211,40],[213,266],[248,40],[249,267],[232,268],[222,269],[219,270],[220,114],[233,271],[237,272],[238,273],[221,274],[244,275]],"affectedFilesPendingEmit":[[94,51],[177,51],[86,51],[186,51],[189,51],[85,51],[160,51],[165,51],[184,51],[180,51],[183,51],[95,51],[84,51],[88,51],[92,51],[252,51],[81,51],[185,51],[83,51],[162,51],[161,51],[169,51],[93,51],[82,51],[179,51],[176,51],[253,51],[174,51],[163,51],[178,51],[187,51],[89,51],[192,51],[191,51],[90,51],[188,51],[87,51],[181,51],[91,51],[190,51],[182,51],[175,51],[199,51],[499,51],[193,51],[196,51],[195,51],[194,51],[197,51],[198,51],[79,51],[245,51],[246,51],[78,51],[80,51],[247,51]],"emitSignatures":[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,160,161,162,163,165,169,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,245,246,247,252,253,499],"version":"5.9.3"}
|