@lingxia/test 0.17.0 → 0.18.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.
package/dist/runtime.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AssertionError, expect, setAssertionSink } from "./expect.js";
2
- import { LiveFixture, TimeoutError, protocolStatus, toReportError } from "./fixture.js";
2
+ import { LiveFixture, TimeoutError, toReportError } from "./fixture.js";
3
3
  import { attachText, resolveHost, warnVersionSkew } from "./host.js";
4
4
  import { captureFrames, fileStem, resolveOrigin, slugTitle } from "./ids.js";
5
5
  import { renderJUnit } from "./junit.js";
@@ -7,6 +7,8 @@ import { clearInline, countStatuses, renderHtml } from "./report.js";
7
7
  import { DEFAULT_SPEC_TIMEOUT_MS, FORENSICS_BUDGET_MS, MAX_DEFER_BUDGET_MS, PACKAGE_NAME, VERSION, WEDGED_DEFER_BUDGET_MS, } from "./version.js";
8
8
  const specs = [];
9
9
  const hooks = [];
10
+ const afterHooks = [];
11
+ const resetHooks = [];
10
12
  const fileCounts = new Map();
11
13
  let forceRelaunchNext = false;
12
14
  let trackSurface = false;
@@ -33,6 +35,10 @@ function register(annotation, title, optionsOrBody, maybeBody) {
33
35
  throw new TypeError("spec() requires a non-empty title");
34
36
  }
35
37
  const { options, body } = parseArgs(optionsOrBody, maybeBody);
38
+ for (const [name, value] of Object.entries({ timeout: options.timeout, timeoutCleanup: options.timeoutCleanup })) {
39
+ if (value !== undefined && (!Number.isFinite(value) || value <= 0))
40
+ throw new TypeError(`${name} must be a positive finite number`);
41
+ }
36
42
  // The bundle map is installed after the modules run, so keep the raw frames;
37
43
  // the authored file is only knowable once the run starts. `frames[0]` is a
38
44
  // frame inside this package, identical for every caller, so it can order
@@ -45,6 +51,7 @@ function register(annotation, title, optionsOrBody, maybeBody) {
45
51
  id: options.id,
46
52
  covers: [...(options.covers ?? [])],
47
53
  timeout: options.timeout ?? DEFAULT_SPEC_TIMEOUT_MS,
54
+ timeoutCleanup: options.timeoutCleanup,
48
55
  fresh: options.fresh === true,
49
56
  app: options.app,
50
57
  forensics: options.forensics !== false,
@@ -74,6 +81,16 @@ const spec = Object.assign(function specFn(title, optionsOrBody, maybeBody) {
74
81
  fail(title, optionsOrBody, maybeBody) {
75
82
  register("fail", title, optionsOrBody, maybeBody);
76
83
  },
84
+ reset(fn) {
85
+ if (typeof fn !== "function")
86
+ throw new TypeError("spec.reset() requires a function");
87
+ resetHooks.push({ frames: captureFrames(), fn });
88
+ },
89
+ afterEach(fn) {
90
+ if (typeof fn !== "function")
91
+ throw new TypeError("spec.afterEach() requires a function");
92
+ afterHooks.push({ frames: captureFrames(), fn });
93
+ },
77
94
  beforeEach(fn) {
78
95
  if (typeof fn !== "function")
79
96
  throw new TypeError("spec.beforeEach() requires a function");
@@ -116,6 +133,7 @@ async function relaunchHome(app) {
116
133
  await app.nav.relaunch({ page: home });
117
134
  }
118
135
  async function run() {
136
+ var _a;
119
137
  warnVersionSkew();
120
138
  const host = resolveHost();
121
139
  const started = Date.now();
@@ -130,32 +148,57 @@ async function run() {
130
148
  ids.set(id, item.title);
131
149
  }
132
150
  const grep = host.args.grep;
151
+ const pattern = grep ? new RegExp(grep) : undefined;
133
152
  const forbidOnly = host.args.forbidOnly === "1" || host.args["forbid-only"] === "1";
134
153
  const hasOnly = specs.some((item) => item.annotation === "only");
135
154
  if (hasOnly && forbidOnly) {
136
155
  throw new Error("spec.only is registered; lxdev test --forbid-only refuses to run");
137
156
  }
157
+ const retries = Number(host.args.retries ?? 0);
158
+ if (!Number.isInteger(retries) || retries < 0 || retries > 10)
159
+ throw new Error("retries must be between 0 and 10");
160
+ const selectedIds = host.args.ids ? JSON.parse(host.args.ids) : undefined;
161
+ const shard = host.args.shard?.split("/").map(Number);
162
+ if (shard && (shard.length !== 2 || shard.some(n => !Number.isInteger(n) || n < 1) || shard[0] > shard[1]))
163
+ throw new Error("shard must be INDEX/TOTAL (1-based)");
138
164
  const selected = specs.filter((item) => {
139
165
  if (hasOnly && item.annotation !== "only")
140
166
  return false;
167
+ if (selectedIds && !selectedIds.includes(resolvedId(item)))
168
+ return false;
169
+ if (shard && stableHash(resolvedId(item)) % shard[1] !== shard[0] - 1)
170
+ return false;
171
+ if (host.args.id && resolvedId(item) !== host.args.id)
172
+ return false;
141
173
  if (!grep)
142
174
  return true;
143
175
  const id = resolvedId(item);
144
- try {
145
- const pattern = new RegExp(grep);
146
- return pattern.test(item.title) || pattern.test(id);
147
- }
148
- catch {
149
- return item.title.includes(grep) || id.includes(grep);
150
- }
176
+ return pattern.test(item.title) || pattern.test(id);
151
177
  });
178
+ if (selected.length === 0 && host.args.passWithNoTests !== "1") {
179
+ throw new Error("No tests matched this selection. Check the entry and filters, or use --pass-with-no-tests.");
180
+ }
181
+ await host.emit({ type: "run_started", schema_version: 1, total: selected.length,
182
+ cases: selected.map(item => ({ id: resolvedId(item), title: item.title, name: item.title,
183
+ full_name: item.id ? `${item.id} | ${item.title}` : item.title, ...sourceOf(item),
184
+ suite: suiteOf(sourceOf(item).file), timeout_ms: item.timeout, covers: item.covers })) });
152
185
  // Resolve each hook's authored file once, so a `beforeEach` stays scoped to
153
186
  // the file that declared it rather than running for every spec in the run.
154
- const hookFiles = new Map(hooks.map((hook) => [hook, resolveOrigin(hook.frames).file]));
187
+ const hookFiles = new Map([...hooks, ...afterHooks, ...resetHooks].map((hook) => [hook, resolveOrigin(hook.frames).file]));
188
+ if (retries > 0) {
189
+ for (const item of selected.filter(item => !["skip", "fixme"].includes(item.annotation))) {
190
+ if (!resetHooks.some(hook => hookFiles.get(hook) === sourceOf(item).file)) {
191
+ throw new Error(`Retries require spec.reset() in ${sourceOf(item).file}; relaunching a page does not reset app state.`);
192
+ }
193
+ }
194
+ }
155
195
  const subject = await describeSubject();
156
196
  const cases = [];
157
197
  forceRelaunchNext = false;
158
- for (const item of selected) {
198
+ let contaminated = false;
199
+ const queue = [...selected];
200
+ const attempts = new Map();
201
+ for (const item of queue) {
159
202
  const id = resolvedId(item);
160
203
  const timeout = item.timeout;
161
204
  const source = sourceOf(item);
@@ -174,24 +217,29 @@ async function run() {
174
217
  assertions: [],
175
218
  attachments: [],
176
219
  timeout_ms: timeout,
220
+ attempt: attempts.get(id)?.length ?? 0,
177
221
  reason: item.reason,
178
222
  };
179
223
  await host.emit({
180
224
  type: "case_started",
225
+ id, file: source.file, line: source.line,
181
226
  name: record.name,
182
227
  full_name: record.full_name,
183
228
  timeout_ms: timeout,
229
+ watchdog_timeout_ms: timeout + (item.timeoutCleanup ?? MAX_DEFER_BUDGET_MS) + FORENSICS_BUDGET_MS + WEDGED_DEFER_BUDGET_MS,
184
230
  covers: record.covers,
185
231
  });
186
232
  const caseStarted = Date.now();
187
- if (item.annotation === "skip" || item.annotation === "fixme") {
233
+ if (contaminated || item.annotation === "skip" || item.annotation === "fixme") {
234
+ if (contaminated)
235
+ record.reason = "Not run: a previous spec left asynchronous work pending; restart the run.";
188
236
  record.status = "skipped";
189
237
  record.duration_ms = Date.now() - caseStarted;
190
238
  cases.push(record);
191
239
  await finishCase(host, record);
192
240
  continue;
193
241
  }
194
- const fixture = new LiveFixture(id, pinApp(item.app), host, host.args, automationRoot(), timeout);
242
+ const fixture = new LiveFixture(`${encodeURIComponent(id)}/attempt-${record.attempt}`, pinApp(item.app), host, host.args, automationRoot(), timeout);
195
243
  let status = "passed";
196
244
  let error;
197
245
  let phase = "body";
@@ -201,6 +249,10 @@ async function run() {
201
249
  if (shouldRelaunch)
202
250
  await relaunchHome(fixture.raw);
203
251
  phase = "beforeEach";
252
+ for (const hook of resetHooks) {
253
+ if (hookFiles.get(hook) === source.file)
254
+ await hook.fn(fixture);
255
+ }
204
256
  for (const hook of hooks) {
205
257
  if (hookFiles.get(hook) === source.file)
206
258
  await hook.fn(fixture);
@@ -211,6 +263,8 @@ async function run() {
211
263
  const bodyResult = bodyPromise.then(() => ({ ok: true }), (err) => ({ ok: false, err }));
212
264
  const timeoutError = new TimeoutError(`spec timed out after ${timeout}ms`);
213
265
  let timedOut = false;
266
+ let bodySettled = false;
267
+ void bodyResult.then(() => { bodySettled = true; });
214
268
  let timerHandle;
215
269
  const timer = new Promise((resolve) => {
216
270
  timerHandle = setTimeout(() => {
@@ -226,12 +280,12 @@ async function run() {
226
280
  error = timeoutError;
227
281
  phase = "timeout";
228
282
  forceRelaunchNext = true;
229
- await Promise.race([
230
- bodyResult,
231
- new Promise((resolve) => {
232
- setTimeout(resolve, WEDGED_DEFER_BUDGET_MS);
233
- }),
234
- ]);
283
+ try {
284
+ await within(bodyResult, WEDGED_DEFER_BUDGET_MS, "body did not settle after timeout");
285
+ }
286
+ catch {
287
+ contaminated = true;
288
+ }
235
289
  }
236
290
  else if (!winner.ok) {
237
291
  if (timedOut || fixture.aborted) {
@@ -251,45 +305,59 @@ async function run() {
251
305
  if (timerHandle !== undefined)
252
306
  clearTimeout(timerHandle);
253
307
  }
254
- if (status !== "passed" && item.forensics) {
255
- phase = "forensics";
308
+ let evidenceCollected = false;
309
+ const collectEvidence = async () => {
310
+ if (evidenceCollected || !item.forensics)
311
+ return;
312
+ evidenceCollected = true;
256
313
  try {
257
314
  // The whole point of the timeout path is that a wedged app does not
258
315
  // stall the run, and these calls bypass `guard` on the raw driver.
259
- await Promise.race([
260
- captureForensics(fixture),
261
- new Promise((resolve) => {
262
- setTimeout(resolve, FORENSICS_BUDGET_MS);
263
- }),
264
- ]);
316
+ await within(captureForensics(fixture), FORENSICS_BUDGET_MS, "failure evidence timed out");
265
317
  }
266
318
  catch (forensicsError) {
267
- if (status !== "timeout") {
268
- status = "failed";
269
- error = forensicsError;
270
- fixture.failurePhase = "forensics";
271
- }
319
+ // Evidence failures must never replace the product failure.
320
+ if (forensicsError instanceof TimeoutError)
321
+ contaminated = true;
322
+ await host.emit({ type: "diagnostic", phase: "forensics", message: String(forensicsError) });
272
323
  }
273
- }
324
+ };
325
+ if (status !== "passed")
326
+ await collectEvidence();
274
327
  phase = "defer";
275
328
  const deferErrors = [];
276
- // A wedged app must not stall the run, but a healthy one deserves the time
277
- // its cleanup actually needs — a relaunch plus a page wait routinely
278
- // outruns the post-timeout budget, and a cut-short cleanup leaks the
279
- // fixture's state into every spec that follows.
280
- if (fixture.defers.length > 0) {
281
- // Cleanup is not spent from the spec's budget: a 3s spec whose defer
282
- // relaunches a page would otherwise be failed for its own tidying.
283
- fixture.allowCleanup(status === "timeout" ? WEDGED_DEFER_BUDGET_MS : MAX_DEFER_BUDGET_MS);
329
+ const cleanupBudget = item.timeoutCleanup ?? (status === "timeout" ? WEDGED_DEFER_BUDGET_MS : MAX_DEFER_BUDGET_MS);
330
+ const afterEach = afterHooks.filter(hook => hookFiles.get(hook) === source.file);
331
+ const hasCleanup = afterEach.length > 0 || fixture.defers.length > 0;
332
+ function* cleanupTasks() {
333
+ for (const hook of afterEach)
334
+ yield () => hook.fn(fixture);
335
+ while (fixture.defers.length > 0)
336
+ yield fixture.defers.pop();
284
337
  }
285
- for (let index = fixture.defers.length - 1; index >= 0; index -= 1) {
286
- try {
287
- await fixture.defers[index]();
288
- }
289
- catch (deferError) {
290
- deferErrors.push(deferError);
338
+ // Never reopen a timed-out fixture while its body can still issue commands.
339
+ if (hasCleanup && bodySettled) {
340
+ fixture.allowCleanup(cleanupBudget);
341
+ const deadline = Date.now() + cleanupBudget;
342
+ for (const cleanup of cleanupTasks()) {
343
+ let settled = false;
344
+ const task = Promise.resolve().then(cleanup).finally(() => { settled = true; });
345
+ try {
346
+ await within(task, Math.max(0, deadline - Date.now()), "fixture cleanup budget exceeded");
347
+ }
348
+ catch (err) {
349
+ deferErrors.push(err);
350
+ }
351
+ if (!settled) {
352
+ contaminated = true;
353
+ break;
354
+ }
291
355
  }
292
356
  }
357
+ else if (hasCleanup) {
358
+ deferErrors.push(new Error("Cleanup skipped because the timed-out body is still running"));
359
+ }
360
+ fixture.endCleanup();
293
361
  if (item.annotation === "fail") {
294
362
  const bodyAssertion = status === "failed" &&
295
363
  fixture.failurePhase === "body" &&
@@ -300,10 +368,9 @@ async function run() {
300
368
  else if (status === "passed") {
301
369
  status = "xpass";
302
370
  error = new Error("spec.fail passed (xpass)");
371
+ fixture.failurePhase = "body";
303
372
  }
304
373
  }
305
- if (fixture.defers.length > 0)
306
- fixture.endCleanup();
307
374
  if (deferErrors.length > 0) {
308
375
  // A spec that hung is reported as a timeout; cleanup that could not
309
376
  // finish afterwards is a consequence of the hang, not a different
@@ -322,6 +389,9 @@ async function run() {
322
389
  error = new Error(`t.defer failed:\n${cleanupText}`);
323
390
  }
324
391
  }
392
+ if (status !== "passed")
393
+ await collectEvidence();
394
+ fixture.close();
325
395
  record.status = status;
326
396
  record.duration_ms = Date.now() - caseStarted;
327
397
  record.steps = fixture.steps;
@@ -330,18 +400,32 @@ async function run() {
330
400
  record.observed = [...fixture.observed].sort();
331
401
  record.attachments = fixture.attachments;
332
402
  setAssertionSink();
333
- if (error && status !== "xfail") {
403
+ if (error)
334
404
  record.error = toReportError(error, fixture.currentStepPath());
405
+ if (record.error) {
406
+ record.error.phase = status === "timeout" ? "timeout" : fixture.failurePhase ?? phase;
407
+ // JSC tail calls can omit the authored assertion frame.
408
+ (_a = record.error).location ?? (_a.location = `${source.file}:${source.line}:1`);
335
409
  }
336
- else if (status === "xfail" && error) {
337
- record.error = toReportError(error, fixture.currentStepPath());
410
+ const history = attempts.get(id) ?? [];
411
+ history.push(record);
412
+ attempts.set(id, history);
413
+ const finished = { ...record, attempts: history.length > 1 ? history.map(attempt => ({ ...attempt })) : undefined,
414
+ flaky: record.status === "passed" && history.length > 1 };
415
+ const previous = cases.findIndex(item => item.id === id);
416
+ if (previous >= 0)
417
+ cases[previous] = finished;
418
+ else
419
+ cases.push(finished);
420
+ await finishCase(host, finished);
421
+ if (!contaminated && (status === "failed" || status === "timeout") && history.length <= retries) {
422
+ queue.splice(queue.indexOf(item) + 1, 0, { ...item });
338
423
  }
339
- cases.push(record);
340
- await finishCase(host, record);
341
424
  }
342
425
  const counts = countStatuses(cases);
343
426
  const duration_ms = Date.now() - started;
344
427
  const json = {
428
+ schema_version: 1,
345
429
  framework: { name: PACKAGE_NAME, version: VERSION },
346
430
  meta: {
347
431
  started_at: new Date(started).toISOString(),
@@ -352,8 +436,8 @@ async function run() {
352
436
  subject,
353
437
  surface_coverage: trackSurface,
354
438
  },
355
- partial: false,
356
- filtered: Boolean(grep) || hasOnly,
439
+ partial: contaminated,
440
+ filtered: Boolean(grep || host.args.id || host.args.ids || shard) || hasOnly,
357
441
  duration_ms,
358
442
  ...counts,
359
443
  cases,
@@ -361,39 +445,18 @@ async function run() {
361
445
  await attachText(host, "report.json", JSON.stringify(json, null, 2), "application/json");
362
446
  await attachText(host, "report.html", renderHtml(json), "text/html; charset=utf-8");
363
447
  await attachText(host, "junit.xml", renderJUnit(json), "application/xml; charset=utf-8");
364
- const protocol = {
365
- total: cases.length,
366
- passed: cases.filter((item) => protocolStatus(item.status) === "passed").length,
367
- failed: cases.filter((item) => protocolStatus(item.status) === "failed").length,
368
- skipped: cases.filter((item) => protocolStatus(item.status) === "skipped").length,
369
- duration_ms: json.duration_ms,
370
- cases: cases.map((item) => ({
371
- name: item.name,
372
- full_name: item.full_name,
373
- status: protocolStatus(item.status),
374
- duration_ms: item.duration_ms,
375
- error: item.error && protocolStatus(item.status) === "failed"
376
- ? {
377
- name: item.error.name,
378
- message: item.error.message,
379
- stack: item.error.stack,
380
- causes: [],
381
- }
382
- : undefined,
383
- })),
384
- };
385
- return protocol;
448
+ return json;
386
449
  }
387
450
  async function finishCase(host, record) {
388
451
  await host.emit({
389
452
  type: "case_finished",
390
453
  name: record.name,
391
454
  full_name: record.full_name,
392
- status: protocolStatus(record.status),
455
+ status: record.status,
456
+ id: record.id,
393
457
  duration_ms: record.duration_ms,
394
- error: record.error && protocolStatus(record.status) === "failed"
395
- ? record.error
396
- : undefined,
458
+ error: record.error,
459
+ record,
397
460
  });
398
461
  }
399
462
  /** Best-effort: a run against an unreachable app still reports its cases. */
@@ -466,6 +529,8 @@ function encodeScreenshot(shot) {
466
529
  function reset() {
467
530
  specs.length = 0;
468
531
  hooks.length = 0;
532
+ afterHooks.length = 0;
533
+ resetHooks.length = 0;
469
534
  trackSurface = false;
470
535
  fileCounts.clear();
471
536
  forceRelaunchNext = false;
@@ -486,4 +551,22 @@ if (!globalThis.__LINGXIA_TEST__) {
486
551
  });
487
552
  }
488
553
  export { spec, expect, run, reset, resolvedId, trackPublicSurface };
554
+ async function within(task, ms, message) {
555
+ let handle;
556
+ try {
557
+ return await Promise.race([task, new Promise((_, reject) => {
558
+ handle = setTimeout(() => reject(new TimeoutError(message)), ms);
559
+ })]);
560
+ }
561
+ finally {
562
+ if (handle !== undefined)
563
+ clearTimeout(handle);
564
+ }
565
+ }
566
+ function stableHash(value) {
567
+ let hash = 2166136261;
568
+ for (let i = 0; i < value.length; i++)
569
+ hash = Math.imul(hash ^ value.charCodeAt(i), 16777619);
570
+ return hash >>> 0;
571
+ }
489
572
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ export interface SpecApi {
10
10
  fixme(title: string, options: SpecOptions, body?: SpecBody): void;
11
11
  fail(title: string, body: SpecBody): void;
12
12
  fail(title: string, options: SpecOptions, body: SpecBody): void;
13
+ /** Restore product state before every attempt; required for retries. */
14
+ reset(fn: SpecBody): void;
13
15
  beforeEach(fn: SpecBody): void;
16
+ afterEach(fn: SpecBody): void;
14
17
  }
15
18
  //# sourceMappingURL=spec-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-api.d.ts","sourceRoot":"","sources":["../src/spec-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"spec-api.d.ts","sourceRoot":"","sources":["../src/spec-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChE,wEAAwE;IACxE,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC/B"}