@roxybrowser/openapi 1.0.3 → 1.0.4-beta.0

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.
@@ -3,19 +3,19 @@
3
3
  *
4
4
  * HTTP client for RoxyBrowser REST API with authentication and error handling
5
5
  */
6
- import { RoxyApiError, ConfigError, } from './types.js';
6
+ import { RoxyApiError, ConfigError, } from "./types.js";
7
7
  export class RoxyClient {
8
8
  config;
9
9
  constructor(config) {
10
10
  // Validate required configuration
11
11
  if (!config.apiKey?.trim()) {
12
- throw new ConfigError('API key is required');
12
+ throw new ConfigError("API key is required");
13
13
  }
14
14
  if (!config.apiHost?.trim()) {
15
- throw new ConfigError('API host is required');
15
+ throw new ConfigError("API host is required");
16
16
  }
17
17
  this.config = {
18
- apiHost: config.apiHost.replace(/\/$/, ''), // Remove trailing slash
18
+ apiHost: config.apiHost.replace(/\/$/, ""), // Remove trailing slash
19
19
  apiKey: config.apiKey,
20
20
  timeout: config.timeout ?? 30000,
21
21
  };
@@ -31,20 +31,25 @@ export class RoxyClient {
31
31
  const response = await fetch(url, {
32
32
  ...options,
33
33
  headers: {
34
- 'Content-Type': 'application/json',
35
- 'token': this.config.apiKey, // RoxyBrowser uses 'token' header
34
+ "Content-Type": "application/json",
35
+ token: this.config.apiKey, // RoxyBrowser uses 'token' header
36
36
  ...options.headers,
37
37
  },
38
38
  signal: controller.signal,
39
39
  });
40
40
  clearTimeout(timeoutId);
41
41
  if (!response.ok) {
42
- throw new RoxyApiError(`HTTP ${response.status}: ${response.statusText}`, response.status, await response.text().catch(() => 'Unknown error'));
42
+ const responseText = await response.text().catch(() => "Unknown error");
43
+ throw new RoxyApiError(`HTTP ${response.status}: ${response.statusText}`, response.status, responseText, undefined // originalError
44
+ );
43
45
  }
44
46
  const data = await response.json();
45
47
  // Check API response code
46
48
  if (data.code !== 0) {
47
- throw new RoxyApiError(data.msg || 'API request failed', data.code, data);
49
+ // Enhanced error message with both Chinese and English
50
+ const errorMessage = data.msg || "API request failed";
51
+ throw new RoxyApiError(errorMessage, data.code, data, undefined // originalError
52
+ );
48
53
  }
49
54
  return data.data;
50
55
  }
@@ -54,12 +59,15 @@ export class RoxyClient {
54
59
  throw error;
55
60
  }
56
61
  if (error instanceof Error) {
57
- if (error.name === 'AbortError') {
58
- throw new RoxyApiError(`Request timeout after ${this.config.timeout}ms`, 408);
62
+ if (error.name === "AbortError") {
63
+ throw new RoxyApiError(`Request timeout after ${this.config.timeout}ms`, 408, undefined, error // originalError
64
+ );
59
65
  }
60
- throw new RoxyApiError(`Network error: ${error.message}`, 0, error);
66
+ // Enhanced network error handling with pattern detection
67
+ throw new RoxyApiError(`Network error: ${error.message}`, 0, undefined, error // originalError for pattern analysis
68
+ );
61
69
  }
62
- throw new RoxyApiError('Unknown error occurred', 0, error);
70
+ throw new RoxyApiError("Unknown error occurred", 0, error, error instanceof Error ? error : undefined);
63
71
  }
64
72
  }
65
73
  /**
@@ -71,7 +79,7 @@ export class RoxyClient {
71
79
  page_size: pageSize.toString(),
72
80
  });
73
81
  return this.makeRequest(`/browser/workspace?${params}`, {
74
- method: 'GET',
82
+ method: "GET",
75
83
  });
76
84
  }
77
85
  /**
@@ -79,68 +87,101 @@ export class RoxyClient {
79
87
  */
80
88
  async getBrowsers(params) {
81
89
  const searchParams = new URLSearchParams();
82
- searchParams.append('workspaceId', params.workspaceId.toString());
90
+ searchParams.append("workspaceId", params.workspaceId.toString());
83
91
  if (params.dirIds)
84
- searchParams.append('dirIds', params.dirIds);
92
+ searchParams.append("dirIds", params.dirIds);
85
93
  if (params.windowName)
86
- searchParams.append('windowName', params.windowName);
94
+ searchParams.append("windowName", params.windowName);
87
95
  if (params.sortNums)
88
- searchParams.append('sortNums', params.sortNums);
96
+ searchParams.append("sortNums", params.sortNums);
89
97
  if (params.os)
90
- searchParams.append('os', params.os);
98
+ searchParams.append("os", params.os);
91
99
  if (params.projectIds)
92
- searchParams.append('projectIds', params.projectIds);
100
+ searchParams.append("projectIds", params.projectIds);
93
101
  if (params.windowRemark)
94
- searchParams.append('windowRemark', params.windowRemark);
102
+ searchParams.append("windowRemark", params.windowRemark);
95
103
  if (params.page_index)
96
- searchParams.append('page_index', params.page_index.toString());
104
+ searchParams.append("page_index", params.page_index.toString());
97
105
  if (params.page_size)
98
- searchParams.append('page_size', params.page_size.toString());
106
+ searchParams.append("page_size", params.page_size.toString());
99
107
  return this.makeRequest(`/browser/list_v3?${searchParams}`, {
100
- method: 'GET',
108
+ method: "GET",
101
109
  });
102
110
  }
103
111
  /**
104
112
  * Open a single browser
105
113
  */
106
114
  async openBrowser(params) {
107
- return this.makeRequest('/browser/open', {
108
- method: 'POST',
115
+ return this.makeRequest("/browser/open", {
116
+ method: "POST",
109
117
  body: JSON.stringify(params),
110
118
  });
111
119
  }
112
120
  /**
113
- * Open multiple browsers in batch
121
+ * Open multiple browsers in batch with enhanced error handling and retry logic
114
122
  */
115
- async openBrowsers(workspaceId, dirIds, args) {
123
+ async openBrowsers(workspaceId, dirIds, args, options = {}) {
124
+ const { maxRetries = 2, retryDelay = 1000 } = options;
116
125
  const results = [];
117
- const errors = [];
126
+ const allErrors = [];
118
127
  // Open browsers in parallel with reasonable concurrency
119
128
  const BATCH_SIZE = 5;
120
129
  for (let i = 0; i < dirIds.length; i += BATCH_SIZE) {
121
130
  const batch = dirIds.slice(i, i + BATCH_SIZE);
122
131
  const batchPromises = batch.map(async (dirId) => {
123
- try {
124
- const result = await this.openBrowser({ workspaceId, dirId, args });
125
- return { dirId, result };
126
- }
127
- catch (error) {
128
- const errorMsg = error instanceof Error ? error.message : 'Unknown error';
129
- return { dirId, error: errorMsg };
132
+ let lastError = null;
133
+ // Retry logic for each browser
134
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
135
+ try {
136
+ const result = await this.openBrowser({ workspaceId, dirId, args });
137
+ return { dirId, result };
138
+ }
139
+ catch (error) {
140
+ lastError =
141
+ error instanceof Error ? error : new Error("Unknown error");
142
+ // Check if error is retryable
143
+ if (error instanceof RoxyApiError && !error.isRetryable()) {
144
+ break; // Don't retry non-retryable errors
145
+ }
146
+ // Don't wait after the last attempt
147
+ if (attempt < maxRetries) {
148
+ await new Promise((resolve) => setTimeout(resolve, retryDelay * (attempt + 1)));
149
+ }
150
+ }
130
151
  }
152
+ // All attempts failed
153
+ const isRetryable = lastError instanceof RoxyApiError ? lastError.isRetryable() : true;
154
+ return {
155
+ dirId,
156
+ error: lastError?.message || "Unknown error",
157
+ retryable: isRetryable,
158
+ };
131
159
  });
132
160
  const batchResults = await Promise.all(batchPromises);
133
161
  for (const item of batchResults) {
134
- if ('result' in item && item.result) {
162
+ if ("result" in item && item.result) {
135
163
  results.push(item.result);
136
164
  }
137
- else if ('error' in item) {
138
- errors.push({ dirId: item.dirId, error: item.error });
165
+ else if ("error" in item) {
166
+ allErrors.push({
167
+ dirId: item.dirId,
168
+ error: item.error,
169
+ retryable: "retryable" in item ? item.retryable : true,
170
+ });
139
171
  }
140
172
  }
141
173
  }
142
- if (errors.length > 0) {
143
- console.warn('Some browsers failed to open:', errors);
174
+ // Enhanced error reporting
175
+ if (allErrors.length > 0) {
176
+ const retryableErrors = allErrors.filter((e) => e.retryable);
177
+ const nonRetryableErrors = allErrors.filter((e) => !e.retryable);
178
+ console.warn(`Browser opening completed with ${allErrors.length} errors:`);
179
+ if (retryableErrors.length > 0) {
180
+ console.warn(` - ${retryableErrors.length} retryable errors (could retry later)`);
181
+ }
182
+ if (nonRetryableErrors.length > 0) {
183
+ console.warn(` - ${nonRetryableErrors.length} non-retryable errors (require intervention)`);
184
+ }
144
185
  }
145
186
  return results;
146
187
  }
@@ -148,8 +189,8 @@ export class RoxyClient {
148
189
  * Close a single browser
149
190
  */
150
191
  async closeBrowser(params) {
151
- await this.makeRequest('/browser/close', {
152
- method: 'POST',
192
+ await this.makeRequest("/browser/close", {
193
+ method: "POST",
153
194
  body: JSON.stringify(params),
154
195
  });
155
196
  }
@@ -165,7 +206,7 @@ export class RoxyClient {
165
206
  return { dirId, success: true };
166
207
  }
167
208
  catch (error) {
168
- const errorMsg = error instanceof Error ? error.message : 'Unknown error';
209
+ const errorMsg = error instanceof Error ? error.message : "Unknown error";
169
210
  return { dirId, success: false, error: errorMsg };
170
211
  }
171
212
  });
@@ -177,8 +218,8 @@ export class RoxyClient {
177
218
  * Create a single browser
178
219
  */
179
220
  async createBrowser(config) {
180
- return this.makeRequest('/browser/create', {
181
- method: 'POST',
221
+ return this.makeRequest("/browser/create", {
222
+ method: "POST",
182
223
  body: JSON.stringify(config),
183
224
  });
184
225
  }
@@ -202,10 +243,10 @@ export class RoxyClient {
202
243
  };
203
244
  }
204
245
  catch (error) {
205
- const errorMsg = error instanceof Error ? error.message : 'Unknown error';
246
+ const errorMsg = error instanceof Error ? error.message : "Unknown error";
206
247
  errors.push({ config, error: errorMsg });
207
248
  return {
208
- dirId: '',
249
+ dirId: "",
209
250
  windowName: config.windowName || `Browser-${i + batchIndex + 1}`,
210
251
  success: false,
211
252
  error: errorMsg,
@@ -216,11 +257,11 @@ export class RoxyClient {
216
257
  results.push(...batchResults);
217
258
  // Add small delay between batches to avoid overwhelming the API
218
259
  if (i + BATCH_SIZE < configs.length) {
219
- await new Promise(resolve => setTimeout(resolve, 1000));
260
+ await new Promise((resolve) => setTimeout(resolve, 1000));
220
261
  }
221
262
  }
222
- const successCount = results.filter(r => r.success).length;
223
- const failureCount = results.filter(r => !r.success).length;
263
+ const successCount = results.filter((r) => r.success).length;
264
+ const failureCount = results.filter((r) => !r.success).length;
224
265
  // If there were errors and some successes, log warnings
225
266
  if (errors.length > 0) {
226
267
  console.warn(`${errors.length} browser creation(s) failed:`, errors);
@@ -241,15 +282,15 @@ export class RoxyClient {
241
282
  dirId,
242
283
  });
243
284
  return this.makeRequest(`/browser/detail?${params}`, {
244
- method: 'GET',
285
+ method: "GET",
245
286
  });
246
287
  }
247
288
  /**
248
289
  * Update/modify existing browser
249
290
  */
250
291
  async updateBrowser(config) {
251
- await this.makeRequest('/browser/mdf', {
252
- method: 'POST',
292
+ await this.makeRequest("/browser/mdf", {
293
+ method: "POST",
253
294
  body: JSON.stringify(config),
254
295
  });
255
296
  }
@@ -257,8 +298,8 @@ export class RoxyClient {
257
298
  * Delete browsers
258
299
  */
259
300
  async deleteBrowsers(workspaceId, dirIds) {
260
- await this.makeRequest('/browser/delete', {
261
- method: 'POST',
301
+ await this.makeRequest("/browser/delete", {
302
+ method: "POST",
262
303
  body: JSON.stringify({ workspaceId, dirIds }),
263
304
  });
264
305
  }
@@ -266,8 +307,8 @@ export class RoxyClient {
266
307
  * Random fingerprint for browser
267
308
  */
268
309
  async randomBrowserFingerprint(workspaceId, dirId) {
269
- await this.makeRequest('/browser/random_env', {
270
- method: 'POST',
310
+ await this.makeRequest("/browser/random_env", {
311
+ method: "POST",
271
312
  body: JSON.stringify({ workspaceId, dirId }),
272
313
  });
273
314
  }
@@ -275,8 +316,8 @@ export class RoxyClient {
275
316
  * Clear browser local cache
276
317
  */
277
318
  async clearBrowserLocalCache(dirIds) {
278
- await this.makeRequest('/browser/clear_local_cache', {
279
- method: 'POST',
319
+ await this.makeRequest("/browser/clear_local_cache", {
320
+ method: "POST",
280
321
  body: JSON.stringify({ dirIds }),
281
322
  });
282
323
  }
@@ -284,23 +325,126 @@ export class RoxyClient {
284
325
  * Clear browser server cache
285
326
  */
286
327
  async clearBrowserServerCache(workspaceId, dirIds) {
287
- await this.makeRequest('/browser/clear_server_cache', {
288
- method: 'POST',
328
+ await this.makeRequest("/browser/clear_server_cache", {
329
+ method: "POST",
289
330
  body: JSON.stringify({ workspaceId, dirIds }),
290
331
  });
291
332
  }
292
333
  /**
293
- * Test API connectivity
334
+ * Get account list
335
+ */
336
+ async getAccounts(params) {
337
+ const searchParams = new URLSearchParams();
338
+ searchParams.append("workspaceId", params.workspaceId.toString());
339
+ if (params.accountId)
340
+ searchParams.append("accountId", params.accountId.toString());
341
+ if (params.page_index)
342
+ searchParams.append("page_index", params.page_index.toString());
343
+ if (params.page_size)
344
+ searchParams.append("page_size", params.page_size.toString());
345
+ return this.makeRequest(`/browser/account?${searchParams}`, {
346
+ method: "GET",
347
+ });
348
+ }
349
+ /**
350
+ * Get label list
351
+ */
352
+ async getLabels(workspaceId) {
353
+ const params = new URLSearchParams({
354
+ workspaceId: workspaceId.toString(),
355
+ });
356
+ return this.makeRequest(`/browser/label?${params}`, {
357
+ method: "GET",
358
+ });
359
+ }
360
+ /**
361
+ * Get connection info for opened browsers
362
+ */
363
+ async getConnectionInfo(dirIds) {
364
+ const params = new URLSearchParams();
365
+ if (dirIds && dirIds.length > 0) {
366
+ params.append("dirIds", dirIds.join(","));
367
+ }
368
+ const queryString = params.toString();
369
+ const endpoint = queryString
370
+ ? `/browser/connection_info?${queryString}`
371
+ : "/browser/connection_info";
372
+ return this.makeRequest(endpoint, {
373
+ method: "GET",
374
+ });
375
+ }
376
+ /**
377
+ * Test API connectivity with detailed diagnostics
294
378
  */
295
379
  async testConnection() {
296
380
  try {
297
- await this.makeRequest('/health');
381
+ await this.makeRequest("/health");
298
382
  return true;
299
383
  }
300
384
  catch (error) {
301
- console.error('Connection test failed:', error);
385
+ console.error("Connection test failed:", error);
302
386
  return false;
303
387
  }
304
388
  }
389
+ /**
390
+ * Perform comprehensive API diagnostics
391
+ */
392
+ async performDiagnostics() {
393
+ const result = {
394
+ connected: false,
395
+ authentication: false,
396
+ workspaceAccess: false,
397
+ errors: [],
398
+ recommendations: [],
399
+ };
400
+ // Test 1: Basic connectivity
401
+ try {
402
+ await this.makeRequest("/health");
403
+ result.connected = true;
404
+ }
405
+ catch (error) {
406
+ result.connected = false;
407
+ if (error instanceof RoxyApiError) {
408
+ result.errors.push(`Connection failed: ${error.getExplanation()}`);
409
+ result.recommendations.push(...error.getTroubleshootingSteps());
410
+ }
411
+ else {
412
+ result.errors.push(`Network error: ${error instanceof Error ? error.message : "Unknown error"}`);
413
+ result.recommendations.push("Check if RoxyBrowser is running", "Verify API host configuration", "Check network connectivity");
414
+ }
415
+ }
416
+ // Test 2: Authentication (if connected)
417
+ if (result.connected) {
418
+ try {
419
+ await this.getWorkspaces(1, 1);
420
+ result.authentication = true;
421
+ result.workspaceAccess = true;
422
+ }
423
+ catch (error) {
424
+ if (error instanceof RoxyApiError) {
425
+ if (error.code === 401) {
426
+ result.authentication = false;
427
+ result.errors.push("Authentication failed: Invalid API key");
428
+ result.recommendations.push("Check ROXY_API_KEY environment variable", "Verify API key in RoxyBrowser settings", "Ensure API is enabled in RoxyBrowser");
429
+ }
430
+ else if (error.code === 403) {
431
+ result.authentication = true;
432
+ result.workspaceAccess = false;
433
+ result.errors.push("Access denied: Insufficient permissions");
434
+ result.recommendations.push("Check API key permissions", "Verify workspace access rights");
435
+ }
436
+ else {
437
+ result.authentication = true;
438
+ result.errors.push(`API error: ${error.getExplanation()}`);
439
+ result.recommendations.push(...error.getTroubleshootingSteps());
440
+ }
441
+ }
442
+ else {
443
+ result.errors.push(`Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`);
444
+ }
445
+ }
446
+ }
447
+ return result;
448
+ }
305
449
  }
306
450
  //# sourceMappingURL=roxy-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"roxy-client.js","sourceRoot":"","sources":["../src/roxy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roxy-client.js","sourceRoot":"","sources":["../src/roxy-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAYL,YAAY,EACZ,WAAW,GAUZ,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,UAAU;IACL,MAAM,CAA6B;IAEnD,YAAY,MAAwB;QAClC,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,wBAAwB;YACpE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,QAAgB,EAChB,UAAuB,EAAE;QAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QAEhD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,kCAAkC;oBAC7D,GAAG,OAAO,CAAC,OAAO;iBACnB;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;gBACxE,MAAM,IAAI,YAAY,CACpB,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EACjD,QAAQ,CAAC,MAAM,EACf,YAAY,EACZ,SAAS,CAAC,gBAAgB;iBAC3B,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEvD,0BAA0B;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,uDAAuD;gBACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC;gBACtD,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,SAAS,CAAC,gBAAgB;iBAC3B,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,IAAS,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,MAAM,IAAI,YAAY,CACpB,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAChD,GAAG,EACH,SAAS,EACT,KAAK,CAAC,gBAAgB;qBACvB,CAAC;gBACJ,CAAC;gBAED,yDAAyD;gBACzD,MAAM,IAAI,YAAY,CACpB,kBAAkB,KAAK,CAAC,OAAO,EAAE,EACjC,CAAC,EACD,SAAS,EACT,KAAK,CAAC,qCAAqC;iBAC5C,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,CAAC,EACD,KAAK,EACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,SAAS,GAAG,CAAC,EACb,QAAQ,GAAG,EAAE;QAEb,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE;YAChC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;SAC/B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CACrB,sBAAsB,MAAM,EAAE,EAC9B;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,MAAM;YAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,UAAU;YAAE,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,QAAQ;YAAE,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,EAAE;YAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,UAAU;YAAE,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,YAAY;YACrB,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,UAAU;YACnB,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS;YAClB,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,WAAW,CACrB,oBAAoB,YAAY,EAAE,EAClC;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAoB,eAAe,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,MAAgB,EAChB,IAAe,EACf,UAAwD,EAAE;QAE1D,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,SAAS,GAIV,EAAE,CAAC;QAER,wDAAwD;QACxD,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YAE9C,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9C,IAAI,SAAS,GAAiB,IAAI,CAAC;gBAEnC,+BAA+B;gBAC/B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;oBACvD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,SAAS;4BACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;wBAE9D,8BAA8B;wBAC9B,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;4BAC1D,MAAM,CAAC,mCAAmC;wBAC5C,CAAC;wBAED,oCAAoC;wBACpC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;4BACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAChD,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,sBAAsB;gBACtB,MAAM,WAAW,GACf,SAAS,YAAY,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrE,OAAO;oBACL,KAAK;oBACL,KAAK,EAAE,SAAS,EAAE,OAAO,IAAI,eAAe;oBAC5C,SAAS,EAAE,WAAW;iBACvB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEtD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEjE,OAAO,CAAC,IAAI,CACV,kCAAkC,SAAS,CAAC,MAAM,UAAU,CAC7D,CAAC;YACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CACV,OAAO,eAAe,CAAC,MAAM,uCAAuC,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CACV,OAAO,kBAAkB,CAAC,MAAM,8CAA8C,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAO,gBAAgB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAAgB;QAEhB,MAAM,OAAO,GACX,EAAE,CAAC;QAEL,6BAA6B;QAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAoB,iBAAiB,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAA8B;QAE9B,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,MAAM,GAA0D,EAAE,CAAC;QAEzE,0DAA0D;QAC1D,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YAE/C,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC3D,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAChD,OAAO;wBACL,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;wBAChE,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACzC,OAAO;wBACL,KAAK,EAAE,EAAE;wBACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;wBAChE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,QAAQ;qBAChB,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAE9B,gEAAgE;YAChE,IAAI,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAE9D,wDAAwD;QACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,8BAA8B,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QAED,OAAO;YACL,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAa;QACvD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;YACnC,KAAK;SACN,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAM,mBAAmB,MAAM,EAAE,EAAE;YACxD,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAA+C;QAE/C,MAAM,IAAI,CAAC,WAAW,CAAO,cAAc,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,MAAgB;QACxD,MAAM,IAAI,CAAC,WAAW,CAAO,iBAAiB,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB,CAC5B,WAAmB,EACnB,KAAa;QAEb,MAAM,IAAI,CAAC,WAAW,CAAO,qBAAqB,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAgB;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAO,4BAA4B,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAmB,EACnB,MAAgB;QAEhB,MAAM,IAAI,CAAC,WAAW,CAAO,6BAA6B,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS;YAClB,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,UAAU;YACnB,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS;YAClB,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,WAAW,CACrB,oBAAoB,YAAY,EAAE,EAClC;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAc,kBAAkB,MAAM,EAAE,EAAE;YAC/D,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAiB;QACvC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,4BAA4B,WAAW,EAAE;YAC3C,CAAC,CAAC,0BAA0B,CAAC;QAE/B,OAAO,IAAI,CAAC,WAAW,CAAuB,QAAQ,EAAE;YACtD,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAS,SAAS,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QAQtB,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,EAAc;YACtB,eAAe,EAAE,EAAc;SAChC,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAS,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,kBACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;gBACF,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,iCAAiC,EACjC,+BAA+B,EAC/B,4BAA4B,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC7B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBACvB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;wBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;wBAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,yCAAyC,EACzC,wCAAwC,EACxC,sCAAsC,CACvC,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBAC9B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC7B,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;wBAC9D,MAAM,CAAC,eAAe,CAAC,IAAI,CACzB,2BAA2B,EAC3B,gCAAgC,CACjC,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;wBAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,qBACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}