testchimp-runner-core 0.0.39 → 0.0.41

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.
Files changed (77) hide show
  1. package/dist/execution-service.d.ts.map +1 -1
  2. package/dist/execution-service.js +1 -3
  3. package/dist/execution-service.js.map +1 -1
  4. package/dist/index.d.ts +7 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/orchestrator/decision-parser.d.ts.map +1 -1
  9. package/dist/orchestrator/decision-parser.js +16 -0
  10. package/dist/orchestrator/decision-parser.js.map +1 -1
  11. package/dist/orchestrator/index.d.ts +3 -1
  12. package/dist/orchestrator/index.d.ts.map +1 -1
  13. package/dist/orchestrator/index.js +8 -1
  14. package/dist/orchestrator/index.js.map +1 -1
  15. package/dist/orchestrator/orchestrator-agent.d.ts +10 -4
  16. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -1
  17. package/dist/orchestrator/orchestrator-agent.js +347 -93
  18. package/dist/orchestrator/orchestrator-agent.js.map +1 -1
  19. package/dist/orchestrator/orchestrator-prompts.d.ts.map +1 -1
  20. package/dist/orchestrator/orchestrator-prompts.js +364 -415
  21. package/dist/orchestrator/orchestrator-prompts.js.map +1 -1
  22. package/dist/orchestrator/page-loading-utils.d.ts +15 -0
  23. package/dist/orchestrator/page-loading-utils.d.ts.map +1 -0
  24. package/dist/orchestrator/page-loading-utils.js +115 -0
  25. package/dist/orchestrator/page-loading-utils.js.map +1 -0
  26. package/dist/orchestrator/page-som-handler.d.ts +2 -1
  27. package/dist/orchestrator/page-som-handler.d.ts.map +1 -1
  28. package/dist/orchestrator/page-som-handler.js +250 -33
  29. package/dist/orchestrator/page-som-handler.js.map +1 -1
  30. package/dist/orchestrator/site-learnings-utils.d.ts +31 -0
  31. package/dist/orchestrator/site-learnings-utils.d.ts.map +1 -0
  32. package/dist/orchestrator/site-learnings-utils.js +175 -0
  33. package/dist/orchestrator/site-learnings-utils.js.map +1 -0
  34. package/dist/orchestrator/som-types.d.ts +2 -0
  35. package/dist/orchestrator/som-types.d.ts.map +1 -1
  36. package/dist/orchestrator/som-types.js.map +1 -1
  37. package/dist/orchestrator/tools/take-screenshot.d.ts.map +1 -1
  38. package/dist/orchestrator/tools/take-screenshot.js +10 -1
  39. package/dist/orchestrator/tools/take-screenshot.js.map +1 -1
  40. package/dist/orchestrator/types.d.ts +54 -9
  41. package/dist/orchestrator/types.d.ts.map +1 -1
  42. package/dist/orchestrator/types.js.map +1 -1
  43. package/dist/progress-reporter.d.ts +23 -2
  44. package/dist/progress-reporter.d.ts.map +1 -1
  45. package/dist/progress-reporter.js.map +1 -1
  46. package/dist/scenario-service.d.ts +3 -3
  47. package/dist/scenario-service.d.ts.map +1 -1
  48. package/dist/scenario-service.js +6 -5
  49. package/dist/scenario-service.js.map +1 -1
  50. package/dist/scenario-worker-class.d.ts +7 -3
  51. package/dist/scenario-worker-class.d.ts.map +1 -1
  52. package/dist/scenario-worker-class.js +62 -9
  53. package/dist/scenario-worker-class.js.map +1 -1
  54. package/dist/types.d.ts +4 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/testing/agent-tester.d.ts +0 -35
  59. package/dist/testing/agent-tester.d.ts.map +0 -1
  60. package/dist/testing/agent-tester.js +0 -84
  61. package/dist/testing/agent-tester.js.map +0 -1
  62. package/dist/testing/ref-translator-tester.d.ts +0 -44
  63. package/dist/testing/ref-translator-tester.d.ts.map +0 -1
  64. package/dist/testing/ref-translator-tester.js +0 -104
  65. package/dist/testing/ref-translator-tester.js.map +0 -1
  66. package/dist/utils/hierarchical-selector.d.ts +0 -47
  67. package/dist/utils/hierarchical-selector.d.ts.map +0 -1
  68. package/dist/utils/hierarchical-selector.js +0 -212
  69. package/dist/utils/hierarchical-selector.js.map +0 -1
  70. package/dist/utils/ref-attacher.d.ts +0 -21
  71. package/dist/utils/ref-attacher.d.ts.map +0 -1
  72. package/dist/utils/ref-attacher.js +0 -149
  73. package/dist/utils/ref-attacher.js.map +0 -1
  74. package/dist/utils/ref-translator.d.ts +0 -49
  75. package/dist/utils/ref-translator.d.ts.map +0 -1
  76. package/dist/utils/ref-translator.js +0 -276
  77. package/dist/utils/ref-translator.js.map +0 -1
@@ -1,212 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hierarchical Selector Generator
4
- * Generates Playwright selectors using ARIA tree hierarchy for uniqueness
5
- * Mimics Playwright's own selector generation strategy
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.HierarchicalSelectorGenerator = void 0;
9
- class HierarchicalSelectorGenerator {
10
- constructor(logger) {
11
- this.logger = logger;
12
- }
13
- /**
14
- * Generate Playwright selectors for a ref using ARIA tree hierarchy
15
- * Returns selectors in priority order, considering parent context for uniqueness
16
- */
17
- generateSelectorsForRef(ref, refMap, ariaTree) {
18
- const element = refMap.get(ref);
19
- if (!element) {
20
- this.logger?.(`[HierarchicalSelector] Ref '${ref}' not found in refMap`, 'warn');
21
- return [];
22
- }
23
- // Get ARIA tree path to understand hierarchy
24
- const path = this.getAriaTreePath(ariaTree, ref);
25
- const selectors = [];
26
- // Strategy 1: BEST - Unique attribute (name, id, data-testid)
27
- selectors.push(...this.generateUniqueAttributeSelectors(element));
28
- // Strategy 2: GOOD - Parent-scoped semantic selectors
29
- if (path) {
30
- selectors.push(...this.generateParentScopedSelectors(element, path));
31
- }
32
- // Strategy 3: FALLBACK - nth-match based on sibling position
33
- if (path) {
34
- selectors.push(...this.generateNthMatchSelectors(element, path, ref));
35
- }
36
- // Strategy 4: LAST RESORT - Generic selectors with first()
37
- selectors.push(...this.generateGenericFallbacks(element));
38
- return selectors;
39
- }
40
- /**
41
- * Strategy 1: Unique attributes (most reliable)
42
- */
43
- generateUniqueAttributeSelectors(element) {
44
- const selectors = [];
45
- const { tag, name, id, ariaLabel, placeholder, type } = element;
46
- // name attribute (best for forms)
47
- if (name && (tag === 'input' || tag === 'textarea' || tag === 'select')) {
48
- selectors.push(`${tag}[name="${name}"]`);
49
- }
50
- // data-testid
51
- if (element.dataTestId) {
52
- selectors.push(`[data-testid="${element.dataTestId}"]`);
53
- }
54
- // ID (only if stable - avoid auto-generated)
55
- if (id && !id.match(/^(rc_|:r[0-9]+:|__|«)/)) {
56
- selectors.push(`#${id}`);
57
- }
58
- // aria-label (semantic)
59
- if (ariaLabel && ariaLabel.length > 0 && ariaLabel.length < 50) {
60
- selectors.push(`[aria-label="${this.escape(ariaLabel)}"]`);
61
- }
62
- // placeholder
63
- if (placeholder && placeholder.length > 0) {
64
- selectors.push(`[placeholder="${this.escape(placeholder)}"]`);
65
- }
66
- return selectors;
67
- }
68
- /**
69
- * Strategy 2: Parent-scoped selectors (uses hierarchy for uniqueness)
70
- */
71
- generateParentScopedSelectors(element, path) {
72
- const selectors = [];
73
- const { role, text, tag } = element;
74
- const nodes = path.nodes;
75
- if (nodes.length < 2)
76
- return selectors; // Need at least parent + target
77
- // Get parent and grandparent for context
78
- const parent = nodes[nodes.length - 2];
79
- const grandparent = nodes.length >= 3 ? nodes[nodes.length - 3] : null;
80
- // Parent has text content - use it for scoping
81
- if (parent.name && parent.name.length > 0 && parent.name.length < 50) {
82
- // Approach 1: Scope by parent text, then find by role
83
- if (role) {
84
- selectors.push(`text=${parent.name} >> [role="${role}"]`);
85
- }
86
- // Approach 2: Scope by parent text, then find by tag
87
- if (tag) {
88
- selectors.push(`text=${parent.name} >> ${tag}`);
89
- }
90
- // Approach 3: Use getByText parent chaining (Playwright style)
91
- if (text && text.length > 0) {
92
- selectors.push(`text=${parent.name} >> text=${text}`);
93
- }
94
- }
95
- // Grandparent scoping (for nested structures)
96
- if (grandparent && grandparent.name && grandparent.name.length > 0) {
97
- if (role) {
98
- selectors.push(`text=${grandparent.name} >> [role="${role}"]`);
99
- }
100
- }
101
- // Text content with role (if element has visible text)
102
- if (text && text.length > 0 && text.length < 30 && role) {
103
- selectors.push(`[role="${role}"][aria-label*="${this.escape(text)}"]`);
104
- }
105
- return selectors;
106
- }
107
- /**
108
- * Strategy 3: nth-match based on sibling position in ARIA tree
109
- */
110
- generateNthMatchSelectors(element, path, ref) {
111
- const selectors = [];
112
- const { role, tag, text } = element;
113
- const nodes = path.nodes;
114
- if (nodes.length < 2)
115
- return selectors;
116
- const parent = nodes[nodes.length - 2];
117
- // Find position among siblings with same role
118
- const siblingsWithSameRole = (parent.children || []).filter((child) => child.role === role);
119
- const position = siblingsWithSameRole.findIndex((child) => child.ref === ref);
120
- if (position >= 0) {
121
- // nth-match by role
122
- if (role) {
123
- selectors.push(`[role="${role}"] >> nth=${position}`);
124
- // Playwright's getByRole with nth
125
- selectors.push(`getByRole('${role}').nth(${position})`);
126
- }
127
- // nth-match by tag
128
- if (tag) {
129
- selectors.push(`${tag} >> nth=${position}`);
130
- selectors.push(`locator('${tag}').nth(${position})`);
131
- }
132
- // Special case: first or last
133
- if (position === 0) {
134
- if (role)
135
- selectors.push(`[role="${role}"] >> first`);
136
- if (tag)
137
- selectors.push(`${tag} >> first`);
138
- }
139
- else if (position === siblingsWithSameRole.length - 1) {
140
- if (role)
141
- selectors.push(`[role="${role}"] >> last`);
142
- if (tag)
143
- selectors.push(`${tag} >> last`);
144
- }
145
- }
146
- return selectors;
147
- }
148
- /**
149
- * Strategy 4: Generic fallbacks (last resort)
150
- */
151
- generateGenericFallbacks(element) {
152
- const selectors = [];
153
- const { tag, role, text, type } = element;
154
- // Text content
155
- if (text && text.length > 0 && text.length < 30) {
156
- selectors.push(`text=${this.escape(text)}`);
157
- selectors.push(`getByText('${this.escape(text)}')`);
158
- }
159
- // Role only (use first())
160
- if (role) {
161
- selectors.push(`[role="${role}"] >> first`);
162
- selectors.push(`getByRole('${role}').first()`);
163
- }
164
- // Type selector
165
- if (type) {
166
- selectors.push(`${tag}[type="${type}"] >> first`);
167
- }
168
- // Ultimate fallback
169
- selectors.push(`${tag} >> first`);
170
- return selectors;
171
- }
172
- /**
173
- * Walk ARIA tree to find path from root to target ref
174
- */
175
- getAriaTreePath(tree, targetRef) {
176
- const path = [];
177
- const found = this.walkTree(tree, targetRef, path);
178
- if (found) {
179
- return {
180
- nodes: path,
181
- targetIndex: path.length - 1
182
- };
183
- }
184
- return null;
185
- }
186
- walkTree(node, targetRef, path) {
187
- if (!node)
188
- return false;
189
- // Add current node to path
190
- path.push(node);
191
- // Found it!
192
- if (node.ref === targetRef) {
193
- return true;
194
- }
195
- // Search children
196
- if (node.children && Array.isArray(node.children)) {
197
- for (const child of node.children) {
198
- if (this.walkTree(child, targetRef, path)) {
199
- return true; // Found in this subtree
200
- }
201
- }
202
- }
203
- // Not found in this subtree - backtrack
204
- path.pop();
205
- return false;
206
- }
207
- escape(str) {
208
- return str.replace(/'/g, "\\'").replace(/"/g, '\\"');
209
- }
210
- }
211
- exports.HierarchicalSelectorGenerator = HierarchicalSelectorGenerator;
212
- //# sourceMappingURL=hierarchical-selector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hierarchical-selector.js","sourceRoot":"","sources":["../../src/utils/hierarchical-selector.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Ref Attacher - Injects stable refs as data-tc-id attributes into the DOM
3
- * This makes refs stable across agent invocations and translations
4
- */
5
- import { PageInfo } from './page-info-utils';
6
- export interface RefAttacherResult {
7
- success: boolean;
8
- refsAttached: number;
9
- pageInfo: PageInfo;
10
- }
11
- /**
12
- * Attach refs from ARIA tree as data-tc-id attributes in the DOM
13
- * This ensures refs are stable and can be used by both agent and translator
14
- */
15
- export declare function attachRefsToDOM(page: any): Promise<RefAttacherResult>;
16
- /**
17
- * Get page info using existing data-tc-id attributes
18
- * This allows using stable refs without regenerating them
19
- */
20
- export declare function getPageInfoFromAttachedRefs(page: any): Promise<PageInfo>;
21
- //# sourceMappingURL=ref-attacher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ref-attacher.d.ts","sourceRoot":"","sources":["../../src/utils/ref-attacher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkH3E;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0C9E"}
@@ -1,149 +0,0 @@
1
- "use strict";
2
- /**
3
- * Ref Attacher - Injects stable refs as data-tc-id attributes into the DOM
4
- * This makes refs stable across agent invocations and translations
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.attachRefsToDOM = attachRefsToDOM;
8
- exports.getPageInfoFromAttachedRefs = getPageInfoFromAttachedRefs;
9
- const page_info_utils_1 = require("./page-info-utils");
10
- /**
11
- * Attach refs from ARIA tree as data-tc-id attributes in the DOM
12
- * This ensures refs are stable and can be used by both agent and translator
13
- */
14
- async function attachRefsToDOM(page) {
15
- try {
16
- // 1. Get page info with refs generated
17
- const pageInfo = await (0, page_info_utils_1.getEnhancedPageInfo)(page);
18
- if (!pageInfo.refMap || pageInfo.refMap.size === 0) {
19
- return {
20
- success: false,
21
- refsAttached: 0,
22
- pageInfo
23
- };
24
- }
25
- // 2. Build a mapping of element characteristics to refs
26
- const refMappings = [];
27
- pageInfo.refMap.forEach((element, ref) => {
28
- refMappings.push({
29
- ref,
30
- tag: element.tag,
31
- role: element.role,
32
- text: element.text || '',
33
- name: element.name || '',
34
- placeholder: element.placeholder || '',
35
- type: element.type || '',
36
- ariaLabel: element.ariaLabel || ''
37
- });
38
- });
39
- // 3. Inject refs into DOM as data-tc-id attributes
40
- const refsAttached = await page.evaluate((mappings) => {
41
- let attached = 0;
42
- const doc = globalThis.document;
43
- // Get all elements
44
- const allElements = Array.from(doc.querySelectorAll('*'));
45
- for (const mapping of mappings) {
46
- // Try to find matching element in DOM
47
- let matchedElement = null;
48
- // Strategy 1: Match by name attribute (most reliable for inputs)
49
- if (mapping.name) {
50
- matchedElement = doc.querySelector(`${mapping.tag}[name="${mapping.name}"]`);
51
- }
52
- // Strategy 2: Match by placeholder
53
- if (!matchedElement && mapping.placeholder) {
54
- matchedElement = doc.querySelector(`${mapping.tag}[placeholder="${mapping.placeholder}"]`);
55
- }
56
- // Strategy 3: Match by aria-label
57
- if (!matchedElement && mapping.ariaLabel) {
58
- matchedElement = doc.querySelector(`${mapping.tag}[aria-label="${mapping.ariaLabel}"]`);
59
- }
60
- // Strategy 4: Match by text content (for buttons, labels, etc.)
61
- if (!matchedElement && mapping.text && mapping.text.length > 0 && mapping.text.length < 100) {
62
- for (const el of allElements) {
63
- const element = el;
64
- if (element.tagName.toLowerCase() === mapping.tag &&
65
- element.textContent?.trim() === mapping.text.trim()) {
66
- matchedElement = el;
67
- break;
68
- }
69
- }
70
- }
71
- // Strategy 5: Match by role and index (fallback)
72
- if (!matchedElement && mapping.role) {
73
- const roleElements = Array.from(doc.querySelectorAll(`[role="${mapping.role}"]`));
74
- if (roleElements.length > 0) {
75
- // Use first matching role element that doesn't have a ref yet
76
- for (const el of roleElements) {
77
- const element = el;
78
- if (!element.hasAttribute('data-tc-id')) {
79
- matchedElement = el;
80
- break;
81
- }
82
- }
83
- }
84
- }
85
- // Attach ref as data-tc-id
86
- if (matchedElement && !matchedElement.hasAttribute('data-tc-id')) {
87
- matchedElement.setAttribute('data-tc-id', mapping.ref);
88
- attached++;
89
- }
90
- }
91
- return attached;
92
- }, refMappings);
93
- console.log(`[RefAttacher] ✓ Attached ${refsAttached} refs to DOM as data-tc-id`);
94
- return {
95
- success: true,
96
- refsAttached,
97
- pageInfo
98
- };
99
- }
100
- catch (error) {
101
- console.error(`[RefAttacher] ✗ Failed to attach refs: ${error.message}`);
102
- throw error;
103
- }
104
- }
105
- /**
106
- * Get page info using existing data-tc-id attributes
107
- * This allows using stable refs without regenerating them
108
- */
109
- async function getPageInfoFromAttachedRefs(page) {
110
- // Get base page info
111
- const pageInfo = await (0, page_info_utils_1.getEnhancedPageInfo)(page);
112
- // Extract refs from data-tc-id attributes
113
- const domRefs = await page.evaluate(() => {
114
- const doc = globalThis.document;
115
- const elementsWithRefs = Array.from(doc.querySelectorAll('[data-tc-id]'));
116
- return elementsWithRefs.map((el) => ({
117
- ref: el.getAttribute('data-tc-id'),
118
- tag: el.tagName.toLowerCase(),
119
- role: el.getAttribute('role') || '',
120
- text: el.textContent?.trim().substring(0, 100) || '',
121
- name: el.getAttribute('name') || '',
122
- placeholder: el.getAttribute('placeholder') || '',
123
- type: el.getAttribute('type') || '',
124
- ariaLabel: el.getAttribute('aria-label') || ''
125
- }));
126
- });
127
- // Merge DOM refs into refMap
128
- const updatedRefMap = new Map(pageInfo.refMap);
129
- domRefs.forEach((item) => {
130
- if (item.ref && !updatedRefMap.has(item.ref)) {
131
- updatedRefMap.set(item.ref, {
132
- tag: item.tag,
133
- role: item.role,
134
- text: item.text,
135
- name: item.name,
136
- placeholder: item.placeholder,
137
- type: item.type,
138
- ariaLabel: item.ariaLabel,
139
- id: null,
140
- selectors: []
141
- });
142
- }
143
- });
144
- return {
145
- ...pageInfo,
146
- refMap: updatedRefMap
147
- };
148
- }
149
- //# sourceMappingURL=ref-attacher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ref-attacher.js","sourceRoot":"","sources":["../../src/utils/ref-attacher.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Ref Translation Utility
3
- * Converts structured ref commands to Playwright commands with fallback alternatives
4
- * Uses hierarchical ARIA tree context for robust selector generation
5
- */
6
- import { RefCommand } from '../orchestrator/types';
7
- export declare class RefTranslator {
8
- private logger?;
9
- private hierarchicalGenerator;
10
- constructor(logger?: (message: string, level?: 'log' | 'error' | 'warn') => void);
11
- /**
12
- * LEGACY: Translate string commands (supports regex getByRef pattern)
13
- * Use translateRefCommands() instead for new code
14
- */
15
- translateStringCommands(commands: string[], page: any, refMap?: Map<string, any>, ariaTree?: any): Promise<Array<{
16
- original: string;
17
- alternatives: string[];
18
- successful?: string;
19
- }>>;
20
- /**
21
- * Translation layer: Convert ref commands to actual Playwright commands
22
- * Tries multiple selector alternatives until one succeeds
23
- *
24
- * Agent outputs:
25
- * { ref: 'e22', operation: 'fill', value: 'test@test.com' }
26
- * This generates and tries multiple Playwright alternatives using hierarchical context
27
- * Returns: The command that worked (for script storage)
28
- */
29
- translateRefCommands(refCommands: RefCommand[], page: any, refMap?: Map<string, any>, ariaTree?: any): Promise<Array<{
30
- original: RefCommand;
31
- alternatives: string[];
32
- successful?: string;
33
- }>>;
34
- /**
35
- * Generate drag commands with coordinates
36
- */
37
- private generateDragCommands;
38
- /**
39
- * Convert selectors to full Playwright commands with action
40
- */
41
- private convertSelectorsToCommands;
42
- /**
43
- * Convert selector string to locator chain for building commands
44
- */
45
- private selectorToLocatorChain;
46
- private getActionCode;
47
- private escape;
48
- }
49
- //# sourceMappingURL=ref-translator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ref-translator.d.ts","sourceRoot":"","sources":["../../src/utils/ref-translator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,CAA8D;IAC7E,OAAO,CAAC,qBAAqB,CAAgC;gBAEjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI;IAKhF;;;OAGG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,GAAG,EACT,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuCpF;;;;;;;;OAQG;IACG,oBAAoB,CACxB,WAAW,EAAE,UAAU,EAAE,EACzB,IAAI,EAAE,GAAG,EACT,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsFxF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAyClC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,MAAM;CAGf"}