ysk-server-core 1.1.17 → 1.1.19

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 (59) hide show
  1. package/dist/hosting/validators/adapters/avax.d.ts +1 -0
  2. package/dist/hosting/validators/adapters/avax.d.ts.map +1 -1
  3. package/dist/hosting/validators/adapters/avax.js +22 -8
  4. package/dist/hosting/validators/adapters/avax.js.map +1 -1
  5. package/dist/hosting/validators/adapters/eth-clients.d.ts +2 -0
  6. package/dist/hosting/validators/adapters/eth-clients.d.ts.map +1 -1
  7. package/dist/hosting/validators/adapters/eth-clients.js +43 -11
  8. package/dist/hosting/validators/adapters/eth-clients.js.map +1 -1
  9. package/dist/hosting/validators/adapters/eth.d.ts.map +1 -1
  10. package/dist/hosting/validators/adapters/eth.js +5 -2
  11. package/dist/hosting/validators/adapters/eth.js.map +1 -1
  12. package/dist/hosting/validators/adapters/near.d.ts.map +1 -1
  13. package/dist/hosting/validators/adapters/near.js +11 -2
  14. package/dist/hosting/validators/adapters/near.js.map +1 -1
  15. package/dist/hosting/validators/adapters/p2p-public-ip.d.ts +6 -0
  16. package/dist/hosting/validators/adapters/p2p-public-ip.d.ts.map +1 -0
  17. package/dist/hosting/validators/adapters/p2p-public-ip.js +11 -0
  18. package/dist/hosting/validators/adapters/p2p-public-ip.js.map +1 -0
  19. package/dist/hosting/validators/adapters/phase2.d.ts +10 -0
  20. package/dist/hosting/validators/adapters/phase2.d.ts.map +1 -1
  21. package/dist/hosting/validators/adapters/phase2.js +126 -7
  22. package/dist/hosting/validators/adapters/phase2.js.map +1 -1
  23. package/dist/hosting/validators/compose-runner.d.ts +4 -0
  24. package/dist/hosting/validators/compose-runner.d.ts.map +1 -1
  25. package/dist/hosting/validators/compose-runner.js +32 -0
  26. package/dist/hosting/validators/compose-runner.js.map +1 -1
  27. package/dist/hosting/validators/disk.d.ts +2 -0
  28. package/dist/hosting/validators/disk.d.ts.map +1 -1
  29. package/dist/hosting/validators/disk.js +23 -0
  30. package/dist/hosting/validators/disk.js.map +1 -1
  31. package/dist/hosting/validators/extras.d.ts +33 -1
  32. package/dist/hosting/validators/extras.d.ts.map +1 -1
  33. package/dist/hosting/validators/extras.js +163 -2
  34. package/dist/hosting/validators/extras.js.map +1 -1
  35. package/dist/hosting/validators/manager.d.ts +10 -0
  36. package/dist/hosting/validators/manager.d.ts.map +1 -1
  37. package/dist/hosting/validators/manager.js +137 -8
  38. package/dist/hosting/validators/manager.js.map +1 -1
  39. package/dist/hosting/validators/ports.js +4 -4
  40. package/dist/hosting/validators/ports.js.map +1 -1
  41. package/dist/hosting/validators/registry.d.ts +7 -1
  42. package/dist/hosting/validators/registry.d.ts.map +1 -1
  43. package/dist/hosting/validators/registry.js +14 -3
  44. package/dist/hosting/validators/registry.js.map +1 -1
  45. package/dist/hosting/validators/releases.d.ts +56 -0
  46. package/dist/hosting/validators/releases.d.ts.map +1 -1
  47. package/dist/hosting/validators/releases.js +230 -21
  48. package/dist/hosting/validators/releases.js.map +1 -1
  49. package/dist/hosting/validators/runtime-status.js +2 -2
  50. package/dist/hosting/validators/runtime-status.js.map +1 -1
  51. package/dist/hosting/validators/software-catalog.d.ts +10 -1
  52. package/dist/hosting/validators/software-catalog.d.ts.map +1 -1
  53. package/dist/hosting/validators/software-catalog.js +84 -3
  54. package/dist/hosting/validators/software-catalog.js.map +1 -1
  55. package/dist/hosting/validators/upgrade.d.ts +18 -0
  56. package/dist/hosting/validators/upgrade.d.ts.map +1 -1
  57. package/dist/hosting/validators/upgrade.js +25 -4
  58. package/dist/hosting/validators/upgrade.js.map +1 -1
  59. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"extras.d.ts","sourceRoot":"","sources":["../../../src/hosting/validators/extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extras.d.ts","sourceRoot":"","sources":["../../../src/hosting/validators/extras.ts"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AA0BtB,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC,CAqDhD;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiD9B;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4D9B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAMjI;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,kBAAkB,CAarB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,kBAAkB,CAuBrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAC7D,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CASA;AAED,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2C9B;AAED,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAKF,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAgBD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAezD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CAAE,CAqCxE;AA4BD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAE/B;AA+CD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0BlF;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8BlD;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACrF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC,CAID;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAUlH;AAaD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACjE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAU1C;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAc7D"}
@@ -3,11 +3,12 @@
3
3
  */
4
4
  import { existsSync, readdirSync, readFileSync, rmSync, statSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { defaultValidatorMemoryLimit, isValidatorInstanceId, stakingPlaybookMeta, tl, } from 'ysk-server-shared';
6
+ import { defaultValidatorMemoryLimit, dockerNetIoRate, isValidatorInstanceId, parseDockerNetIo, stakingPlaybookMeta, tl, } from 'ysk-server-shared';
7
7
  import { getValidatorNetwork } from './registry.js';
8
8
  import { probeAvaxStakingIdentity } from './adapters/avax.js';
9
9
  import { appliedValidatorOp, blockedValidatorOp, failedValidatorOp, writtenValidatorOp, } from './honesty.js';
10
- import { composeFilePath, composeProjectName, composePsRunning, prepareValidatorDataDir, writeComposeFile, } from './compose-runner.js';
10
+ import { composeFilePath, composeProjectName, composePsRunning, prepareValidatorDataDir, validatorIdFromContainerName, writeComposeFile, } from './compose-runner.js';
11
+ import { parseJsonLines } from '../docker/parse.js';
11
12
  import { planInstallFor } from './adapters/index.js';
12
13
  import { deleteValidatorInstance, getValidatorInstance, instanceDir, listValidatorInstances, nextValidatorInstanceId, upsertValidatorInstance, } from './store.js';
13
14
  import { collectValidatorDisk } from './disk.js';
@@ -38,6 +39,10 @@ export async function summarizeValidatorInstances(input) {
38
39
  diskUsedBytes,
39
40
  lastError: st.lastError,
40
41
  upgrade: st.upgrade ?? null,
42
+ rxBytes: null,
43
+ txBytes: null,
44
+ rxRateBps: null,
45
+ txRateBps: null,
41
46
  };
42
47
  summaries.push(summary);
43
48
  upsertValidatorInstance(input.dataDir, {
@@ -53,6 +58,20 @@ export async function summarizeValidatorInstances(input) {
53
58
  },
54
59
  });
55
60
  }
61
+ const net = await collectValidatorNetIo({
62
+ host: input.host,
63
+ ids: summaries.map((s) => s.id),
64
+ });
65
+ const byId = new Map(net.map((n) => [n.id, n]));
66
+ for (const s of summaries) {
67
+ const n = byId.get(s.id);
68
+ if (!n)
69
+ continue;
70
+ s.rxBytes = n.rxBytes;
71
+ s.txBytes = n.txBytes;
72
+ s.rxRateBps = n.rxRateBps;
73
+ s.txRateBps = n.txRateBps;
74
+ }
56
75
  return { summaries };
57
76
  }
58
77
  export async function pruneValidatorInstance(input) {
@@ -279,6 +298,148 @@ export async function restoreValidatorSnapshot(input) {
279
298
  notes: offer.notes,
280
299
  });
281
300
  }
301
+ const validatorNetIoPrev = new Map();
302
+ let validatorNetIoLock = Promise.resolve();
303
+ export function resetValidatorNetIoCache() {
304
+ validatorNetIoPrev.clear();
305
+ }
306
+ async function withValidatorNetIoLock(fn) {
307
+ let release;
308
+ const prev = validatorNetIoLock;
309
+ validatorNetIoLock = new Promise((resolve) => {
310
+ release = resolve;
311
+ });
312
+ await prev;
313
+ try {
314
+ return await fn();
315
+ }
316
+ finally {
317
+ release();
318
+ }
319
+ }
320
+ export function parseValidatorDockerStatsStdout(stdout, ids) {
321
+ const totals = new Map();
322
+ for (const row of parseJsonLines(stdout)) {
323
+ const name = String(row.Name ?? row.Container ?? row.Names ?? '');
324
+ const id = validatorIdFromContainerName(name, ids);
325
+ if (!id)
326
+ continue;
327
+ const io = parseDockerNetIo(String(row.NetIO ?? ''));
328
+ if (!io)
329
+ continue;
330
+ const prev = totals.get(id) ?? { rxBytes: 0, txBytes: 0 };
331
+ totals.set(id, {
332
+ rxBytes: prev.rxBytes + io.rxBytes,
333
+ txBytes: prev.txBytes + io.txBytes,
334
+ });
335
+ }
336
+ return [...totals.entries()].map(([id, v]) => ({ id, ...v }));
337
+ }
338
+ export function mergeValidatorNetIo(input) {
339
+ const byId = new Map(input.samples.map((s) => [s.id, s]));
340
+ const next = new Map();
341
+ const items = input.ids.map((id) => {
342
+ const s = byId.get(id);
343
+ if (!s) {
344
+ return { id, rxBytes: null, txBytes: null, rxRateBps: null, txRateBps: null };
345
+ }
346
+ const prev = input.prev.get(id);
347
+ const rate = prev
348
+ ? dockerNetIoRate({
349
+ prevRx: prev.rxBytes,
350
+ prevTx: prev.txBytes,
351
+ prevAt: prev.at,
352
+ rx: s.rxBytes,
353
+ tx: s.txBytes,
354
+ at: input.at,
355
+ })
356
+ : null;
357
+ const rxRateBps = rate?.rxRateBps ?? null;
358
+ const txRateBps = rate?.txRateBps ?? null;
359
+ next.set(id, {
360
+ rxBytes: s.rxBytes,
361
+ txBytes: s.txBytes,
362
+ at: input.at,
363
+ rxRateBps,
364
+ txRateBps,
365
+ });
366
+ return {
367
+ id,
368
+ rxBytes: s.rxBytes,
369
+ txBytes: s.txBytes,
370
+ rxRateBps,
371
+ txRateBps,
372
+ };
373
+ });
374
+ return { items, next };
375
+ }
376
+ function emptyValidatorNetIo(ids) {
377
+ return ids.map((id) => ({
378
+ id,
379
+ rxBytes: null,
380
+ txBytes: null,
381
+ rxRateBps: null,
382
+ txRateBps: null,
383
+ }));
384
+ }
385
+ function cachedValidatorNetIo(ids) {
386
+ return ids.map((id) => {
387
+ const prev = validatorNetIoPrev.get(id);
388
+ if (!prev) {
389
+ return { id, rxBytes: null, txBytes: null, rxRateBps: null, txRateBps: null };
390
+ }
391
+ return {
392
+ id,
393
+ rxBytes: prev.rxBytes,
394
+ txBytes: prev.txBytes,
395
+ rxRateBps: prev.rxRateBps,
396
+ txRateBps: prev.txRateBps,
397
+ };
398
+ });
399
+ }
400
+ export async function collectValidatorNetIo(input) {
401
+ return withValidatorNetIoLock(() => collectValidatorNetIoUnlocked(input));
402
+ }
403
+ async function collectValidatorNetIoUnlocked(input) {
404
+ const ids = input.ids ??
405
+ (input.dataDir ? listValidatorInstances(input.dataDir).map((i) => i.id) : []);
406
+ if (!ids.length) {
407
+ validatorNetIoPrev.clear();
408
+ return [];
409
+ }
410
+ try {
411
+ const ps = await input.host.runCommand(['docker', 'ps', '-q', '--filter', 'name=yskval-'], {
412
+ timeoutMs: 15_000,
413
+ });
414
+ const cids = ps.stdout
415
+ .trim()
416
+ .split(/\s+/)
417
+ .filter((id) => /^[a-f0-9]{12,64}$/i.test(id));
418
+ if (ps.exitCode !== 0)
419
+ return cachedValidatorNetIo(ids);
420
+ if (!cids.length) {
421
+ validatorNetIoPrev.clear();
422
+ return emptyValidatorNetIo(ids);
423
+ }
424
+ const st = await input.host.runCommand(['docker', 'stats', '--no-stream', '--format', '{{json .}}', ...cids], { timeoutMs: 20_000 });
425
+ if (st.exitCode !== 0)
426
+ return cachedValidatorNetIo(ids);
427
+ const samples = parseValidatorDockerStatsStdout(st.stdout, ids);
428
+ const { items, next } = mergeValidatorNetIo({
429
+ ids,
430
+ samples,
431
+ prev: validatorNetIoPrev,
432
+ at: Date.now(),
433
+ });
434
+ validatorNetIoPrev.clear();
435
+ for (const [k, v] of next)
436
+ validatorNetIoPrev.set(k, v);
437
+ return items;
438
+ }
439
+ catch {
440
+ return cachedValidatorNetIo(ids);
441
+ }
442
+ }
282
443
  export async function validatorContainerStats(input) {
283
444
  const inst = getValidatorInstance(input.dataDir, input.id);
284
445
  if (!inst)
@@ -1 +1 @@
1
- {"version":3,"file":"extras.js","sourceRoot":"","sources":["../../../src/hosting/validators/extras.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,EAAE,GAGH,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAiB,MAAM,eAAe,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAGjD;IACC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,uBAAuB,CAAC;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC;QAC5D,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,aAAa;YACb,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI;SAC5B,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE;YACrC,GAAG,IAAI;YACP,UAAU,EAAE;gBACV,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAO5C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oCAAoC,OAAO,EAAE,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACnD,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,EAAE,CAAC,2BAA2B,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACd,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;QACzD,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;KAC5F,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChE,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAC5F,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,iBAAiB,CAAC;oBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;iBAC7E,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAO5C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;KACrC,CAAC,CAAC;IACH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC;YACxB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QACvF,OAAO,kBAAkB,CAAC;YACxB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACnD,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAChF,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;QAC/C,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,IAAI,GAAyB;QACjC,GAAG,IAAI;QACP,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1D,YAAY,EAAE,SAAS;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,KAAK,EAAE,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;KAChF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,EAAU;IAC9D,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC;IAChH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAKrC;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAI1C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM;QAChC,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACxE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAe;IAI1D,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC;IAC5F,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACvF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACxF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAS9C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAO,kBAAkB,CAAC;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAI7C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAC5D,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,EACpE,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA2B,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAG3C;IACC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,gCAAgC,CACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAC9F,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,CAAC,GAAG,MAAM,sBAAsB,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;QACpC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,EAAE;KACnB,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAA0B;IAO1E,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GACT,KAAK,KAAK,KAAK;QACb,CAAC,CAAC,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC;QACxC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAClG,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAA8C;IAClF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,uBAAuB,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM;QACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAkE;IAElE,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,GAAG,MAAM,CAAC;QAC9C,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"extras.js","sourceRoot":"","sources":["../../../src/hosting/validators/extras.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,EAAE,GAIH,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAiB,MAAM,eAAe,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAGjD;IACC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,uBAAuB,CAAC;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC;QAC5D,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,aAAa;YACb,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI;YAC3B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE;YACrC,GAAG,IAAI;YACP,UAAU,EAAE;gBACV,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC;QACtC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACtB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAO5C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oCAAoC,OAAO,EAAE,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACnD,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,EAAE,CAAC,2BAA2B,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACd,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;QACzD,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;KAC5F,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChE,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAC5F,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,iBAAiB,CAAC;oBACvB,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;iBAC7E,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAO5C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;KACrC,CAAC,CAAC;IACH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC;YACxB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QACvF,OAAO,kBAAkB,CAAC;YACxB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACnD,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAChF,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;QAC/C,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,IAAI,GAAyB;QACjC,GAAG,IAAI;QACP,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1D,YAAY,EAAE,SAAS;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,KAAK,EAAE,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;KAChF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,EAAU;IAC9D,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC;IAChH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAKrC;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAI1C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM;QAChC,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACxE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAe;IAI1D,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC;IAC5F,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACvF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IACxF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAS9C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAO,kBAAkB,CAAC;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;AACjE,IAAI,kBAAkB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAE1D,MAAM,UAAU,wBAAwB;IACtC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAI,EAAoB;IAC3D,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAChC,kBAAkB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC;IACX,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAc,EACd,GAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgD,CAAC;IACvE,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YACb,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO;SACnC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAKnC;IACC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,MAAM,KAAK,GAAwB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChF,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI;YACf,CAAC,CAAC,eAAe,CAAC;gBACd,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,EAAE,EAAE,CAAC,CAAC,OAAO;gBACb,EAAE,EAAE,CAAC,CAAC,OAAO;gBACb,EAAE,EAAE,KAAK,CAAC,EAAE;aACb,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QACH,OAAO;YACL,EAAE;YACF,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS;YACT,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAsB;IACjD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtB,EAAE;QACF,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAsB;IAClD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChF,CAAC;QACD,OAAO;YACL,EAAE;YACF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAI3C;IACC,OAAO,sBAAsB,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,KAI5C;IACC,MAAM,GAAG,GACP,KAAK,CAAC,GAAG;QACT,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE;YACzF,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM;aACnB,IAAI,EAAE;aACN,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,EACrE,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;QACF,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,+BAA+B,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC;YAC1C,GAAG;YACH,OAAO;YACP,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC,CAAC;QACH,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;YAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAI7C;IACC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAC5D,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,EACpE,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA2B,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAG3C;IACC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,gCAAgC,CACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAC9F,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,CAAC,GAAG,MAAM,sBAAsB,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;QACpC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,EAAE;KACnB,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAA0B;IAO1E,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GACT,KAAK,KAAK,KAAK;QACb,CAAC,CAAC,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC;QACxC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAClG,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAA8C;IAClF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,uBAAuB,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM;QACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAkE;IAElE,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,GAAG,MAAM,CAAC;QAC9C,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -20,6 +20,9 @@ export declare function createValidatorInstance(input: ValidatorMutateOpts & {
20
20
  slug?: string;
21
21
  el?: string;
22
22
  cl?: string;
23
+ elTag?: string;
24
+ clTag?: string;
25
+ nodeTag?: string;
23
26
  mithril?: boolean;
24
27
  dataPath?: string;
25
28
  memory?: string;
@@ -69,6 +72,13 @@ export declare function setValidatorPolicy(dataDir: string, id: string, policy:
69
72
  instance?: ValidatorInstanceDto;
70
73
  notes: string[];
71
74
  };
75
+ export declare function setValidatorClientVersion(input: ValidatorMutateOpts & {
76
+ id: string;
77
+ clientId: string;
78
+ tag: string;
79
+ confirm: string;
80
+ acceptMainnet?: boolean;
81
+ }): Promise<ValidatorOpsResult>;
72
82
  export declare function upgradeValidatorInstance(input: ValidatorMutateOpts & {
73
83
  id: string;
74
84
  }): Promise<ValidatorOpsResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/hosting/validators/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/hosting/validators/manager.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@
4
4
  import { chmodSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
6
  import { randomBytes } from 'node:crypto';
7
- import { defaultValidatorMemoryLimit, isSafeValidatorDataPath, isSafeValidatorLimitCpus, isSafeValidatorLimitMemory, isValidatorChainId, isValidatorInstanceId, isValidatorProfileId, isValidatorUpgradePolicy, tl, } from 'ysk-server-shared';
7
+ import { defaultValidatorMemoryLimit, parseValidatorMemoryBytes, VALIDATOR_MEMORY_HEADROOM_BYTES, isSafeValidatorDataPath, isSafeValidatorLimitCpus, isSafeValidatorLimitMemory, isValidatorChainId, isValidatorInstanceId, isValidatorProfileId, isValidatorUpgradePolicy, tl, } from 'ysk-server-shared';
8
8
  import { collectValidatorDisk } from './disk.js';
9
9
  import { appliedValidatorOp, blockedValidatorOp, failedValidatorOp, writtenValidatorOp, } from './honesty.js';
10
- import { composeDown, composeFilePath, composeLogs, composeProjectName, composePsInfo, composePsRunning, composeUp, prepareValidatorDataDir, probeDockerCompose, writeComposeFile, } from './compose-runner.js';
10
+ import { composeDown, composeFilePath, composeLogs, composeProjectName, composePsInfo, composePsRunning, composeStayWaits, composeUp, prepareValidatorDataDir, probeDockerCompose, writeComposeFile, } from './compose-runner.js';
11
11
  import { getValidatorChain, getValidatorNetwork, minFreeBytesFor, resolveValidatorClients, SUI_NODE_IMAGE, suiNodeTag, } from './registry.js';
12
12
  import { buildValidatorInstance, deleteValidatorInstance, getValidatorInstance, instanceDir, upsertValidatorInstance, } from './store.js';
13
13
  import { planInstallFor } from './adapters/index.js';
@@ -15,15 +15,42 @@ import { probeEthStatus } from './adapters/eth.js';
15
15
  import { ensureAvaxChainConfig, probeAvaxStatus } from './adapters/avax.js';
16
16
  import { probeNearStatus } from './adapters/near.js';
17
17
  import { probeAdaStatus } from './adapters/ada.js';
18
- import { ensureAptosFullnodeFiles, ensureCosmosGenesisFile, ensureSuiFullnodeFiles, probeAptosStatus, probeBtcStatus, probeCosmosStatus, probeDotStatus, probeSolStatus, probeSuiStatus, } from './adapters/phase2.js';
18
+ import { ensureAptosFullnodeFiles, ensureCosmosNodeFiles, ensureSuiFullnodeFiles, probeAptosStatus, probeBtcStatus, probeCosmosStatus, probeDotStatus, probeSolStatus, probeSuiStatus, } from './adapters/phase2.js';
19
19
  import { allocateValidatorPorts, parseSsListenPortSet, usedValidatorPorts } from './ports.js';
20
20
  import { syncServiceExposure } from '../service-exposure/sync.js';
21
- import { applyValidatorUpgrade, detectUpgradeForInstance } from './upgrade.js';
21
+ import { applyValidatorClientTag, applyValidatorUpgrade, detectUpgradeForInstance } from './upgrade.js';
22
+ import { isAllowedClientTag } from './software-catalog.js';
22
23
  import { deriveValidatorRuntimeStatus, isValidatorNofileHint, isValidatorOomHint, pickValidatorContainerHint, } from './runtime-status.js';
23
24
  /** State-sync for pruned/minimal/validator-ready. Full rpc keeps the full state. */
24
25
  export function specProfileStateSync(profile) {
25
26
  return profile !== 'rpc';
26
27
  }
28
+ function applyRequestedClientTags(clients, input) {
29
+ const jobs = [
30
+ { key: 'el', tag: input.elTag },
31
+ { key: 'cl', tag: input.clTag },
32
+ { key: 'node', tag: input.nodeTag },
33
+ ];
34
+ for (const job of jobs) {
35
+ const tag = job.tag?.trim();
36
+ if (!tag)
37
+ continue;
38
+ const cur = clients[job.key];
39
+ if (!cur)
40
+ return job.key;
41
+ if (!isAllowedClientTag({
42
+ clientId: cur.id,
43
+ tag,
44
+ dataDir: input.dataDir,
45
+ extraTags: [cur.tag],
46
+ network: input.network,
47
+ })) {
48
+ return `${cur.id}:${tag}`;
49
+ }
50
+ clients[job.key] = { ...cur, tag };
51
+ }
52
+ return null;
53
+ }
27
54
  export async function createValidatorInstance(input) {
28
55
  if (!isValidatorChainId(input.chain)) {
29
56
  return blockedValidatorOp({ reason: 'validation', notes: [tl('validators.errors.invalidId')] });
@@ -66,6 +93,20 @@ export async function createValidatorInstance(input) {
66
93
  if (input.cpus && !isSafeValidatorLimitCpus(input.cpus)) {
67
94
  return blockedValidatorOp({ reason: 'validation', notes: [tl('validators.errors.invalidId')] });
68
95
  }
96
+ const memory = input.memory || defaultValidatorMemoryLimit(chain);
97
+ const memNeed = parseValidatorMemoryBytes(memory);
98
+ if (memNeed &&
99
+ disk.memAvailableBytes != null &&
100
+ disk.memAvailableBytes < memNeed + VALIDATOR_MEMORY_HEADROOM_BYTES) {
101
+ return blockedValidatorOp({
102
+ reason: 'validation',
103
+ notes: [
104
+ tl('validators.errors.memLow'),
105
+ `need>=${memNeed}`,
106
+ `avail=${disk.memAvailableBytes}`,
107
+ ],
108
+ });
109
+ }
69
110
  const clients = resolveValidatorClients(chain, {
70
111
  el: input.el,
71
112
  cl: input.cl,
@@ -73,6 +114,16 @@ export async function createValidatorInstance(input) {
73
114
  if (chain === 'sui' && clients.node) {
74
115
  clients.node = { ...clients.node, image: SUI_NODE_IMAGE, tag: suiNodeTag(input.network) };
75
116
  }
117
+ const tagErr = applyRequestedClientTags(clients, {
118
+ dataDir: input.dataDir,
119
+ network: input.network,
120
+ elTag: input.elTag,
121
+ clTag: input.clTag,
122
+ nodeTag: input.nodeTag,
123
+ });
124
+ if (tagErr) {
125
+ return blockedValidatorOp({ reason: 'validation', notes: [tl('validators.errors.badTag'), tagErr] });
126
+ }
76
127
  const extraUsed = new Set();
77
128
  try {
78
129
  const ss = await input.host.runCommand(['ss', '-lnt'], { timeoutMs: 3_000 });
@@ -95,7 +146,6 @@ export async function createValidatorInstance(input) {
95
146
  }
96
147
  ports.rpc = n;
97
148
  }
98
- const memory = input.memory || defaultValidatorMemoryLimit(chain);
99
149
  const limits = memory || input.cpus
100
150
  ? { memory, cpus: input.cpus }
101
151
  : undefined;
@@ -144,7 +194,7 @@ export async function createValidatorInstance(input) {
144
194
  await ensureAptosFullnodeFiles(inst.dataPath, inst.network);
145
195
  }
146
196
  if (inst.chain === 'cosmos') {
147
- const cosmos = await ensureCosmosGenesisFile(inst.dataPath, inst.network);
197
+ const cosmos = await ensureCosmosNodeFiles(inst.dataPath, inst.network);
148
198
  if (!cosmos.ok && input.execute) {
149
199
  return failedValidatorOp({
150
200
  instanceId: inst.id,
@@ -212,6 +262,7 @@ export async function createValidatorInstance(input) {
212
262
  host: input.host,
213
263
  file: composePath,
214
264
  project: composeProjectName(inst.id),
265
+ waits: composeStayWaits(inst.chain),
215
266
  });
216
267
  if (!live.ok) {
217
268
  return failedValidatorOp({
@@ -250,7 +301,7 @@ export async function createValidatorInstance(input) {
250
301
  });
251
302
  }
252
303
  async function verifyComposeStayedUp(input) {
253
- const waits = [2_000, 3_000, 5_000];
304
+ const waits = input.waits ?? [2_000, 3_000, 5_000];
254
305
  for (const ms of waits) {
255
306
  await new Promise((r) => setTimeout(r, ms));
256
307
  const ps = await composePsInfo(input);
@@ -297,7 +348,7 @@ export async function startValidatorInstance(input) {
297
348
  if (inst.chain === 'aptos')
298
349
  await ensureAptosFullnodeFiles(inst.dataPath, inst.network);
299
350
  if (inst.chain === 'cosmos') {
300
- const cosmos = await ensureCosmosGenesisFile(inst.dataPath, inst.network);
351
+ const cosmos = await ensureCosmosNodeFiles(inst.dataPath, inst.network);
301
352
  if (!cosmos.ok) {
302
353
  return failedValidatorOp({
303
354
  instanceId: inst.id,
@@ -330,6 +381,7 @@ export async function startValidatorInstance(input) {
330
381
  host: input.host,
331
382
  file: composePath,
332
383
  project: composeProjectName(inst.id),
384
+ waits: composeStayWaits(inst.chain),
333
385
  });
334
386
  if (!live.ok) {
335
387
  return failedValidatorOp({
@@ -572,6 +624,83 @@ export function setValidatorPolicy(dataDir, id, policy) {
572
624
  const next = upsertValidatorInstance(dataDir, { ...inst, upgradePolicy: policy });
573
625
  return { ok: true, instance: next, notes: [] };
574
626
  }
627
+ export async function setValidatorClientVersion(input) {
628
+ return withInstance(input, async (inst) => {
629
+ const tag = String(input.tag ?? '').trim();
630
+ const clientId = String(input.clientId ?? '').trim();
631
+ if (!clientId || !tag) {
632
+ return blockedValidatorOp({
633
+ reason: 'validation',
634
+ instanceId: inst.id,
635
+ notes: [tl('validators.errors.badTag')],
636
+ });
637
+ }
638
+ const have = Object.values(inst.clients).find((c) => c.id === clientId);
639
+ if (!have) {
640
+ return blockedValidatorOp({
641
+ reason: 'validation',
642
+ instanceId: inst.id,
643
+ notes: [tl('validators.errors.badTag')],
644
+ });
645
+ }
646
+ if (input.confirm !== inst.id) {
647
+ return blockedValidatorOp({
648
+ reason: 'validation',
649
+ instanceId: inst.id,
650
+ notes: [tl('validators.errors.needVersionConfirm')],
651
+ });
652
+ }
653
+ const kind = getValidatorNetwork(inst.chain, inst.network)?.kind;
654
+ if (kind === 'mainnet' && !input.acceptMainnet) {
655
+ return blockedValidatorOp({
656
+ reason: 'validation',
657
+ instanceId: inst.id,
658
+ notes: [tl('validators.errors.needMainnetVersionAck')],
659
+ });
660
+ }
661
+ if (!isAllowedClientTag({
662
+ clientId,
663
+ tag,
664
+ dataDir: input.dataDir,
665
+ extraTags: [have.tag],
666
+ network: inst.network,
667
+ })) {
668
+ return blockedValidatorOp({
669
+ reason: 'validation',
670
+ instanceId: inst.id,
671
+ notes: [tl('validators.errors.badTag')],
672
+ });
673
+ }
674
+ if (!input.execute || !input.host.executeEnabled()) {
675
+ const dry = await applyValidatorClientTag({
676
+ dataDir: input.dataDir,
677
+ host: input.host,
678
+ spec: inst,
679
+ clientId,
680
+ nextTag: tag,
681
+ execute: false,
682
+ });
683
+ return writtenValidatorOp({
684
+ instanceId: inst.id,
685
+ written: [],
686
+ notes: dry.notes,
687
+ });
688
+ }
689
+ const r = await applyValidatorClientTag({
690
+ dataDir: input.dataDir,
691
+ host: input.host,
692
+ spec: inst,
693
+ clientId,
694
+ nextTag: tag,
695
+ execute: true,
696
+ onLog: input.onLog,
697
+ signal: input.signal,
698
+ });
699
+ if (!r.ok)
700
+ return failedValidatorOp({ instanceId: inst.id, notes: r.notes });
701
+ return appliedValidatorOp({ instanceId: inst.id, notes: r.notes });
702
+ });
703
+ }
575
704
  export async function upgradeValidatorInstance(input) {
576
705
  return withInstance(input, async (inst) => {
577
706
  if (!input.execute || !input.host.executeEnabled()) {