@lodestar/beacon-node 1.16.0-dev.d6a7a3982b → 1.16.0-dev.d8b500add9

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.
@@ -5,7 +5,7 @@ import { GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTE
5
5
  import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
6
6
  import { ssz, ProducedBlockSource, isBlindedBeaconBlock, isBlockContents, } from "@lodestar/types";
7
7
  import { ExecutionStatus } from "@lodestar/fork-choice";
8
- import { toHex, racePromisesWithCutoff } from "@lodestar/utils";
8
+ import { toHex, resolveOrRacePromises, prettyWeiToEth } from "@lodestar/utils";
9
9
  import { AttestationError, AttestationErrorCode, GossipAction, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
10
10
  import { validateApiAggregateAndProof } from "../../../chain/validation/index.js";
11
11
  import { ZERO_HASH } from "../../../constants/index.js";
@@ -19,7 +19,7 @@ import { getValidatorStatus } from "../beacon/state/utils.js";
19
19
  import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
20
20
  import { SCHEDULER_LOOKAHEAD_FACTOR } from "../../../chain/prepareNextSlot.js";
21
21
  import { ChainEvent } from "../../../chain/index.js";
22
- import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices } from "./utils.js";
22
+ import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProductionSource } from "./utils.js";
23
23
  /**
24
24
  * If the node is within this many epochs from the head, we declare it to be synced regardless of
25
25
  * the network sync state.
@@ -118,6 +118,32 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
118
118
  function currentEpochWithDisparity() {
119
119
  return computeEpochAtSlot(getCurrentSlot(config, chain.genesisTime - MAX_API_CLOCK_DISPARITY_SEC));
120
120
  }
121
+ function getBlockValueLogInfo(block, source) {
122
+ const executionValue = block.executionPayloadValue;
123
+ const consensusValue = block.consensusBlockValue;
124
+ const totalValue = executionValue + consensusValue;
125
+ if (source == null) {
126
+ return {
127
+ executionPayloadValue: prettyWeiToEth(executionValue, true),
128
+ consensusBlockValue: prettyWeiToEth(consensusValue, true),
129
+ blockTotalValue: prettyWeiToEth(totalValue, true),
130
+ };
131
+ }
132
+ else if (source === ProducedBlockSource.builder) {
133
+ return {
134
+ builderExecutionPayloadValue: prettyWeiToEth(executionValue, true),
135
+ builderConsensusBlockValue: prettyWeiToEth(consensusValue, true),
136
+ builderBlockTotalValue: prettyWeiToEth(totalValue, true),
137
+ };
138
+ }
139
+ else {
140
+ return {
141
+ engineExecutionPayloadValue: prettyWeiToEth(executionValue, true),
142
+ engineConsensusBlockValue: prettyWeiToEth(consensusValue, true),
143
+ engineBlockTotalValue: prettyWeiToEth(totalValue, true),
144
+ };
145
+ }
146
+ }
121
147
  /**
122
148
  * This function is called 1s before next epoch, usually at that time PrepareNextSlotScheduler finishes
123
149
  * so we should have checkpoint state, otherwise wait for up to the slot 1 of epoch.
@@ -352,11 +378,24 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
352
378
  const isBuilderEnabled = ForkSeq[fork] >= ForkSeq.bellatrix &&
353
379
  chain.executionBuilder !== undefined &&
354
380
  builderSelection !== routes.validator.BuilderSelection.ExecutionOnly;
381
+ // At any point either the builder or execution or both flows should be active.
382
+ //
383
+ // Ideally such a scenario should be prevented on startup, but proposerSettingsFile or keymanager
384
+ // configurations could cause a validator pubkey to have builder disabled with builder selection builder only
385
+ // (TODO: independently make sure such an options update is not successful for a validator pubkey)
386
+ //
387
+ // So if builder is disabled ignore builder selection of builder only if caused by user mistake
388
+ // https://github.com/ChainSafe/lodestar/issues/6338
389
+ const isEngineEnabled = !isBuilderEnabled || builderSelection !== routes.validator.BuilderSelection.BuilderOnly;
390
+ if (!isEngineEnabled && !isBuilderEnabled) {
391
+ throw Error(`Internal Error: Neither builder nor execution proposal flow activated isBuilderEnabled=${isBuilderEnabled} builderSelection=${builderSelection}`);
392
+ }
355
393
  const loggerContext = {
356
394
  fork,
357
395
  builderSelection,
358
396
  slot,
359
397
  isBuilderEnabled,
398
+ isEngineEnabled,
360
399
  strictFeeRecipientCheck,
361
400
  // winston logger doesn't like bigint
362
401
  builderBoostFactor: `${builderBoostFactor}`,
@@ -368,176 +407,123 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
368
407
  graffiti: toGraffitiBuffer(graffiti || ""),
369
408
  });
370
409
  logger.debug("Produced common block body", loggerContext);
410
+ logger.verbose("Block production race (builder vs execution) starting", {
411
+ ...loggerContext,
412
+ cutoffMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
413
+ timeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
414
+ });
415
+ // use abort controller to stop waiting for both block sources
416
+ const controller = new AbortController();
371
417
  // Start calls for building execution and builder blocks
372
- const blindedBlockPromise = isBuilderEnabled
373
- ? // can't do fee recipient checks as builder bid doesn't return feeRecipient as of now
374
- produceBuilderBlindedBlock(slot, randaoReveal, graffiti, {
375
- feeRecipient,
376
- // skip checking and recomputing head in these individual produce calls
377
- skipHeadChecksAndUpdate: true,
378
- commonBlockBody,
379
- }).catch((e) => {
380
- logger.error("produceBuilderBlindedBlock failed to produce block", { slot }, e);
381
- return null;
382
- })
383
- : null;
384
- const fullBlockPromise =
385
- // At any point either the builder or execution or both flows should be active.
386
- //
387
- // Ideally such a scenario should be prevented on startup, but proposerSettingsFile or keymanager
388
- // configurations could cause a validator pubkey to have builder disabled with builder selection builder only
389
- // (TODO: independently make sure such an options update is not successful for a validator pubkey)
390
- //
391
- // So if builder is disabled ignore builder selection of builderonly if caused by user mistake
392
- !isBuilderEnabled || builderSelection !== routes.validator.BuilderSelection.BuilderOnly
393
- ? // TODO deneb: builderSelection needs to be figured out if to be done beacon side
394
- // || builderSelection !== BuilderSelection.BuilderOnly
395
- produceEngineFullBlockOrContents(slot, randaoReveal, graffiti, {
396
- feeRecipient,
397
- strictFeeRecipientCheck,
398
- // skip checking and recomputing head in these individual produce calls
399
- skipHeadChecksAndUpdate: true,
400
- commonBlockBody,
401
- }).catch((e) => {
402
- logger.error("produceEngineFullBlockOrContents failed to produce block", { slot }, e);
403
- return null;
404
- })
405
- : null;
406
- let blindedBlock, fullBlock;
407
- if (blindedBlockPromise !== null && fullBlockPromise !== null) {
408
- // reference index of promises in the race
409
- const promisesOrder = [ProducedBlockSource.builder, ProducedBlockSource.engine];
410
- [blindedBlock, fullBlock] = await racePromisesWithCutoff([blindedBlockPromise, fullBlockPromise], BLOCK_PRODUCTION_RACE_CUTOFF_MS, BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
411
- // Callback to log the race events for better debugging capability
412
- (event, delayMs, index) => {
413
- const eventRef = index !== undefined ? { source: promisesOrder[index] } : {};
414
- logger.verbose("Block production race (builder vs execution)", {
415
- event,
416
- ...eventRef,
417
- delayMs,
418
- cutoffMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
419
- timeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
420
- slot,
421
- });
422
- });
423
- if (blindedBlock instanceof Error) {
424
- // error here means race cutoff exceeded
425
- logger.error("Failed to produce builder block", { slot }, blindedBlock);
426
- blindedBlock = null;
427
- }
428
- if (fullBlock instanceof Error) {
429
- logger.error("Failed to produce execution block", { slot }, fullBlock);
430
- fullBlock = null;
431
- }
432
- }
433
- else if (blindedBlockPromise !== null && fullBlockPromise === null) {
434
- blindedBlock = await blindedBlockPromise;
435
- fullBlock = null;
436
- }
437
- else if (blindedBlockPromise === null && fullBlockPromise !== null) {
438
- blindedBlock = null;
439
- fullBlock = await fullBlockPromise;
440
- }
441
- else {
442
- throw Error(`Internal Error: Neither builder nor execution proposal flow activated isBuilderEnabled=${isBuilderEnabled} builderSelection=${builderSelection}`);
443
- }
444
- const builderPayloadValue = blindedBlock?.executionPayloadValue ?? BigInt(0);
445
- const enginePayloadValue = fullBlock?.executionPayloadValue ?? BigInt(0);
446
- const consensusBlockValueBuilder = blindedBlock?.consensusBlockValue ?? BigInt(0);
447
- const consensusBlockValueEngine = fullBlock?.consensusBlockValue ?? BigInt(0);
448
- const blockValueBuilder = builderPayloadValue + consensusBlockValueBuilder; // Total block value is in wei
449
- const blockValueEngine = enginePayloadValue + consensusBlockValueEngine; // Total block value is in wei
450
- let executionPayloadSource = null;
451
- const shouldOverrideBuilder = fullBlock?.shouldOverrideBuilder ?? false;
452
- // handle the builder override case separately
453
- if (shouldOverrideBuilder === true) {
454
- executionPayloadSource = ProducedBlockSource.engine;
455
- logger.info("Selected engine block as censorship suspected in builder blocks", {
456
- // winston logger doesn't like bigint
457
- enginePayloadValue: `${enginePayloadValue}`,
458
- consensusBlockValueEngine: `${consensusBlockValueEngine}`,
459
- blockValueEngine: `${blockValueEngine}`,
460
- shouldOverrideBuilder,
461
- slot,
418
+ const builderPromise = isBuilderEnabled
419
+ ? produceBuilderBlindedBlock(slot, randaoReveal, graffiti, {
420
+ feeRecipient,
421
+ // can't do fee recipient checks as builder bid doesn't return feeRecipient as of now
422
+ strictFeeRecipientCheck: false,
423
+ // skip checking and recomputing head in these individual produce calls
424
+ skipHeadChecksAndUpdate: true,
425
+ commonBlockBody,
426
+ })
427
+ : Promise.reject(new Error("Builder disabled"));
428
+ const enginePromise = isEngineEnabled
429
+ ? produceEngineFullBlockOrContents(slot, randaoReveal, graffiti, {
430
+ feeRecipient,
431
+ strictFeeRecipientCheck,
432
+ // skip checking and recomputing head in these individual produce calls
433
+ skipHeadChecksAndUpdate: true,
434
+ commonBlockBody,
435
+ }).then((engineBlock) => {
436
+ // Once the engine returns a block, in the event of either:
437
+ // - suspected builder censorship
438
+ // - builder boost factor set to 0 or builder selection `executionalways`
439
+ // we don't need to wait for builder block as engine block will always be selected
440
+ if (engineBlock.shouldOverrideBuilder ||
441
+ builderBoostFactor === BigInt(0) ||
442
+ builderSelection === routes.validator.BuilderSelection.ExecutionAlways) {
443
+ controller.abort();
444
+ }
445
+ return engineBlock;
446
+ })
447
+ : Promise.reject(new Error("Engine disabled"));
448
+ const [builder, engine] = await resolveOrRacePromises([builderPromise, enginePromise], {
449
+ resolveTimeoutMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
450
+ raceTimeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
451
+ signal: controller.signal,
452
+ });
453
+ if (builder.status === "pending" && engine.status === "pending") {
454
+ throw Error("Builder and engine both failed to produce the block within timeout");
455
+ }
456
+ if (builder.status === "rejected" && engine.status === "rejected") {
457
+ throw Error("Builder and engine both failed to produce the block");
458
+ }
459
+ if (engine.status === "rejected" && isEngineEnabled) {
460
+ logger.warn("Engine failed to produce the block", {
461
+ ...loggerContext,
462
+ durationMs: engine.durationMs,
463
+ }, engine.reason);
464
+ }
465
+ if (builder.status === "rejected" && isBuilderEnabled) {
466
+ logger.warn("Builder failed to produce the block", {
467
+ ...loggerContext,
468
+ durationMs: builder.durationMs,
469
+ }, builder.reason);
470
+ }
471
+ // handle shouldOverrideBuilder separately
472
+ if (engine.status === "fulfilled" && engine.value.shouldOverrideBuilder) {
473
+ logger.info("Selected engine block: censorship suspected in builder blocks", {
474
+ ...loggerContext,
475
+ durationMs: engine.durationMs,
476
+ shouldOverrideBuilder: engine.value.shouldOverrideBuilder,
477
+ ...getBlockValueLogInfo(engine.value),
462
478
  });
479
+ return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
463
480
  }
464
- else if (fullBlock && blindedBlock) {
465
- switch (builderSelection) {
466
- case routes.validator.BuilderSelection.MaxProfit: {
467
- if (
468
- // explicitly handle the two special values mentioned in spec for builder preferred / engine preferred
469
- builderBoostFactor !== MAX_BUILDER_BOOST_FACTOR &&
470
- (builderBoostFactor === BigInt(0) ||
471
- blockValueEngine >= (blockValueBuilder * builderBoostFactor) / BigInt(100))) {
472
- executionPayloadSource = ProducedBlockSource.engine;
473
- }
474
- else {
475
- executionPayloadSource = ProducedBlockSource.builder;
476
- }
477
- break;
478
- }
479
- case routes.validator.BuilderSelection.ExecutionOnly: {
480
- executionPayloadSource = ProducedBlockSource.engine;
481
- break;
482
- }
483
- // For everything else just select the builder
484
- default: {
485
- executionPayloadSource = ProducedBlockSource.builder;
486
- }
487
- }
488
- logger.info(`Selected executionPayloadSource=${executionPayloadSource} block`, {
489
- builderSelection,
490
- // winston logger doesn't like bigint
491
- builderBoostFactor: `${builderBoostFactor}`,
492
- enginePayloadValue: `${enginePayloadValue}`,
493
- builderPayloadValue: `${builderPayloadValue}`,
494
- consensusBlockValueEngine: `${consensusBlockValueEngine}`,
495
- consensusBlockValueBuilder: `${consensusBlockValueBuilder}`,
496
- blockValueEngine: `${blockValueEngine}`,
497
- blockValueBuilder: `${blockValueBuilder}`,
498
- shouldOverrideBuilder,
499
- slot,
481
+ if (builder.status === "fulfilled" && engine.status !== "fulfilled") {
482
+ logger.info("Selected builder block: no engine block produced", {
483
+ ...loggerContext,
484
+ durationMs: builder.durationMs,
485
+ ...getBlockValueLogInfo(builder.value),
500
486
  });
487
+ return { ...builder.value, executionPayloadBlinded: true, executionPayloadSource: ProducedBlockSource.builder };
501
488
  }
502
- else if (fullBlock && !blindedBlock) {
503
- executionPayloadSource = ProducedBlockSource.engine;
489
+ if (engine.status === "fulfilled" && builder.status !== "fulfilled") {
504
490
  logger.info("Selected engine block: no builder block produced", {
505
- // winston logger doesn't like bigint
506
- enginePayloadValue: `${enginePayloadValue}`,
507
- consensusBlockValueEngine: `${consensusBlockValueEngine}`,
508
- blockValueEngine: `${blockValueEngine}`,
509
- shouldOverrideBuilder,
510
- slot,
491
+ ...loggerContext,
492
+ durationMs: engine.durationMs,
493
+ ...getBlockValueLogInfo(engine.value),
511
494
  });
495
+ return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
512
496
  }
513
- else if (blindedBlock && !fullBlock) {
514
- executionPayloadSource = ProducedBlockSource.builder;
515
- logger.info("Selected builder block: no engine block produced", {
516
- // winston logger doesn't like bigint
517
- builderPayloadValue: `${builderPayloadValue}`,
518
- consensusBlockValueBuilder: `${consensusBlockValueBuilder}`,
519
- blockValueBuilder: `${blockValueBuilder}`,
520
- shouldOverrideBuilder,
521
- slot,
497
+ if (engine.status === "fulfilled" && builder.status === "fulfilled") {
498
+ const executionPayloadSource = selectBlockProductionSource({
499
+ builderBlockValue: builder.value.executionPayloadValue + builder.value.consensusBlockValue,
500
+ engineBlockValue: engine.value.executionPayloadValue + engine.value.consensusBlockValue,
501
+ builderBoostFactor,
502
+ builderSelection,
522
503
  });
504
+ logger.info(`Selected ${executionPayloadSource} block`, {
505
+ ...loggerContext,
506
+ engineDurationMs: engine.durationMs,
507
+ ...getBlockValueLogInfo(engine.value, ProducedBlockSource.engine),
508
+ builderDurationMs: builder.durationMs,
509
+ ...getBlockValueLogInfo(builder.value, ProducedBlockSource.builder),
510
+ });
511
+ if (executionPayloadSource === ProducedBlockSource.engine) {
512
+ return {
513
+ ...engine.value,
514
+ executionPayloadBlinded: false,
515
+ executionPayloadSource,
516
+ };
517
+ }
518
+ else {
519
+ return {
520
+ ...builder.value,
521
+ executionPayloadBlinded: true,
522
+ executionPayloadSource,
523
+ };
524
+ }
523
525
  }
524
- if (executionPayloadSource === null) {
525
- throw Error(`Failed to produce engine or builder block for slot=${slot}`);
526
- }
527
- if (executionPayloadSource === ProducedBlockSource.engine) {
528
- return {
529
- ...fullBlock,
530
- executionPayloadBlinded: false,
531
- executionPayloadSource,
532
- };
533
- }
534
- else {
535
- return {
536
- ...blindedBlock,
537
- executionPayloadBlinded: true,
538
- executionPayloadSource,
539
- };
540
- }
526
+ throw Error("Unreachable error occurred during the builder and execution block production");
541
527
  };
542
528
  const produceBlock = async function produceBlock(slot, randaoReveal, graffiti) {
543
529
  const producedData = await produceEngineFullBlockOrContents(slot, randaoReveal, graffiti);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAY,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAIL,GAAG,EAEH,mBAAmB,EAInB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAE,sBAAsB,EAAY,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACzE,OAAO,EAAC,+CAA+C,EAAC,MAAM,gEAAgE,CAAC;AAG/H,OAAO,EAAC,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,gCAAgC,EAAC,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAiC,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAC,gCAAgC,EAAE,oBAAoB,EAAC,MAAM,YAAY,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,+BAA+B,GAAG,IAAK,CAAC;AAC9C,8DAA8D;AAC9D,MAAM,gCAAgC,GAAG,KAAM,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,GACO;IACX,IAAI,gBAAgB,GAAgB,IAAI,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAC/E,MAAM,0BAA0B,GAAG,2BAA2B,GAAG,IAAI,CAAC;IAEtE,+CAA+C;IAC/C,KAAK,UAAU,mBAAmB,CAAC,KAAgC;QACjE,IAAI,CAAC,gBAAgB,EAAE;YACrB,oEAAoE;YACpE,IAAI,KAAK,CAAC,IAAI,GAAG,yBAAyB,EAAE;gBAC1C,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC5C;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,QAAQ,EAAE;gBACZ,gBAAgB,GAAG,MAAM;qBACtB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;qBACzC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnD;SACF;QAED,oFAAoF;QACpF,6GAA6G;QAC7G,OAAO,gBAAgB,IAAI,SAAS,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,WAAW,CAAC,IAAU;QACnC,IAAI,IAAI,IAAI,CAAC,EAAE;YACb,OAAO;SACR;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxE,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElD,IAAI,QAAQ,GAAG,0BAA0B,EAAE;YACzC,MAAM,KAAK,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,CAAC;SACxD;aAAM,IAAI,QAAQ,GAAG,CAAC,EAAE;YACvB,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACrC;QAED,qDAAqD;IACvD,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,uBAAuB;QACpC,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;QACtC,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,0BAA0B,EAAE;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;SACnE;IACH,CAAC;IAED;;OAEG;IACH,SAAS,aAAa;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9D,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;QACtE,OAAO,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,SAAS,yBAAyB;QAChC,OAAO,kBAAkB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,GAAG,2BAA2B,CAAC,CAAC,CAAC;IACrG,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,UAAU,sBAAsB,CAAC,KAAoB;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC;SAChB;QACD,MAAM,EAAE,GAAG;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;SACnC,CAAC;QACF,MAAM,KAAK,GAAG,uBAAuB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAChD,qEAAqE;QACrE,IAAI,QAAQ,GAAkD,IAAI,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACtC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC;gBACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAC;YACF,8EAA8E;YAC9E,8CAA8C;YAC9C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SACpD;QAED,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAClD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS,eAAe;QACtB,kDAAkD;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,gBAAgB,CAAC;YAChC,KAAK,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;gBACjD,IAAI,WAAW,GAAG,QAAQ,GAAG,qBAAqB,GAAG,eAAe,EAAE;oBACpE,MAAM,IAAI,aAAa,CAAC,YAAY,QAAQ,gBAAgB,WAAW,EAAE,CAAC,CAAC;iBAC5E;qBAAM;oBACL,OAAO;iBACR;aACF;YAED,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO;YAET,KAAK,SAAS,CAAC,OAAO;gBACpB,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAChD;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IAEH,SAAS,wBAAwB,CAAC,eAAqB;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SACpD;QAED,IAAI,gBAAgB,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO;YAC9D,MAAM,IAAI,aAAa,CACrB,0EAA0E,gBAAgB,CAAC,yBAAyB,WAAW,gBAAgB,CAAC,sBAAsB,EAAE,CACzK,CAAC;IACN,CAAC;IAED,MAAM,0BAA0B,GAAG,KAAK,UAAU,0BAA0B,CAC1E,IAAU,EACV,YAA0B,EAC1B,QAAgB;IAChB,oGAAoG;IACpG,EACE,uBAAuB,EACvB,eAAe,MAIb,EAAE;QAEN,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,KAAK,CAAC,gBAAgB,OAAO,iCAAiC,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC3C,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAE/C,qDAAqD;QACrD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC3C;QAED,IAAI,uBAAuB,KAAK,IAAI,EAAE;YACpC,eAAe,EAAE,CAAC;YAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,gFAAgF;YAChF,6EAA6E;YAC7E,kDAAkD;YAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;SACjC;QAED,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,EAAC,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC;gBAC1F,IAAI;gBACJ,YAAY;gBACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC1C,eAAe;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;gBACvC,IAAI;gBACJ,qBAAqB;gBACrB,mBAAmB;gBACnB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACpF,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACpC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;aAC1D;YAED,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,CAAC;SAC3E;gBAAS;YACR,IAAI,KAAK;gBAAE,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,gCAAgC,GAAG,KAAK,UAAU,gCAAgC,CACtF,IAAU,EACV,YAA0B,EAC1B,QAAgB,EAChB,EACE,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,MAIb,EAAE;QAEN,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC1C,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAE/C,IAAI,uBAAuB,KAAK,IAAI,EAAE;YACpC,eAAe,EAAE,CAAC;YAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,gFAAgF;YAChF,6EAA6E;YAC7E,kDAAkD;YAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;SACjC;QAED,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,EAAC,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;gBAC1G,IAAI;gBACJ,YAAY;gBACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC1C,YAAY;gBACZ,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,uBAAuB,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;gBACvE,MAAM,iBAAiB,GAAG,WAAW,CAAE,KAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC3G,IAAI,iBAAiB,KAAK,YAAY,EAAE;oBACtC,MAAM,KAAK,CAAC,qDAAqD,YAAY,WAAW,iBAAiB,EAAE,CAAC,CAAC;iBAC9G;aACF;YAED,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBACzC,IAAI;gBACJ,qBAAqB;gBACrB,mBAAmB;gBACnB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC7E,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACpC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;aACzD;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAG,KAAK,CAAE,KAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;iBAC1C;gBAED,OAAO;oBACL,IAAI,EAAE,EAAC,KAAK,EAAE,GAAG,QAAQ,EAA2B;oBACpD,OAAO;oBACP,qBAAqB;oBACrB,mBAAmB;oBACnB,qBAAqB;iBACtB,CAAC;aACH;iBAAM;gBACL,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,CAAC;aAClG;SACF;gBAAS;YACR,IAAI,KAAK;gBAAE,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAC/B,KAAK,UAAU,2BAA2B,CACxC,IAAI,EACJ,YAAY,EACZ,QAAQ;IACR,uCAAuC;IACvC,uBAAiC,EACjC,EACE,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,MACkB,EAAE;QAE7C,eAAe,EAAE,CAAC;QAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;QAE9E,gFAAgF;QAChF,6EAA6E;QAC7E,kDAAkD;QAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,yBAAyB;QACzB,2FAA2F;QAC3F,+FAA+F;QAC/F,gBAAgB,GAAG,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACnF,kBAAkB,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,kBAAkB,GAAG,wBAAwB,EAAE;YACjD,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,8BAA8B,kBAAkB,6BAA6B,CAAC,CAAC;SACxG;QAED,MAAM,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS;YAClC,KAAK,CAAC,gBAAgB,KAAK,SAAS;YACpC,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAEvE,MAAM,aAAa,GAAG;YACpB,IAAI;YACJ,gBAAgB;YAChB,IAAI;YACJ,gBAAgB;YAChB,uBAAuB;YACvB,qCAAqC;YACrC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;SAC5C,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;QACnF,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC;YACzD,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;QAE1D,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,gBAAgB;YAC1C,CAAC,CAAC,qFAAqF;gBACrF,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;oBACvD,YAAY;oBACZ,uEAAuE;oBACvE,uBAAuB,EAAE,IAAI;oBAC7B,eAAe;iBAChB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACb,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC;oBAC9E,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,gBAAgB;QACpB,+EAA+E;QAC/E,EAAE;QACF,iGAAiG;QACjG,6GAA6G;QAC7G,kGAAkG;QAClG,EAAE;QACF,8FAA8F;QAC9F,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW;YACrF,CAAC,CAAC,iFAAiF;gBACjF,uDAAuD;gBACvD,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC7D,YAAY;oBACZ,uBAAuB;oBACvB,uEAAuE;oBACvE,uBAAuB,EAAE,IAAI;oBAC7B,eAAe;iBAChB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACb,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC;oBACpF,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,YAAY,EAAE,SAAS,CAAC;QAC5B,IAAI,mBAAmB,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAC7D,0CAA0C;YAC1C,MAAM,aAAa,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAChF,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,MAAM,sBAAsB,CAMtD,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACvC,+BAA+B,EAC/B,gCAAgC;YAChC,kEAAkE;YAClE,CAAC,KAAgB,EAAE,OAAe,EAAE,KAAc,EAAE,EAAE;gBACpD,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,OAAO,CAAC,8CAA8C,EAAE;oBAC7D,KAAK;oBACL,GAAG,QAAQ;oBACX,OAAO;oBACP,QAAQ,EAAE,+BAA+B;oBACzC,SAAS,EAAE,gCAAgC;oBAC3C,IAAI;iBACL,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,IAAI,YAAY,YAAY,KAAK,EAAE;gBACjC,wCAAwC;gBACxC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAC,IAAI,EAAC,EAAE,YAAY,CAAC,CAAC;gBACtE,YAAY,GAAG,IAAI,CAAC;aACrB;YACD,IAAI,SAAS,YAAY,KAAK,EAAE;gBAC9B,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,CAAC;gBACrE,SAAS,GAAG,IAAI,CAAC;aAClB;SACF;aAAM,IAAI,mBAAmB,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;YACpE,YAAY,GAAG,MAAM,mBAAmB,CAAC;YACzC,SAAS,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,mBAAmB,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;YACpE,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS,GAAG,MAAM,gBAAgB,CAAC;SACpC;aAAM;YACL,MAAM,KAAK,CACT,0FAA0F,gBAAgB,qBAAqB,gBAAgB,EAAE,CAClJ,CAAC;SACH;QAED,MAAM,mBAAmB,GAAG,YAAY,EAAE,qBAAqB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,kBAAkB,GAAG,SAAS,EAAE,qBAAqB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,0BAA0B,GAAG,YAAY,EAAE,mBAAmB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,yBAAyB,GAAG,SAAS,EAAE,mBAAmB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,0BAA0B,CAAC,CAAC,8BAA8B;QAC1G,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,8BAA8B;QAEvG,IAAI,sBAAsB,GAA+B,IAAI,CAAC;QAC9D,MAAM,qBAAqB,GAAG,SAAS,EAAE,qBAAqB,IAAI,KAAK,CAAC;QAExE,8CAA8C;QAC9C,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,iEAAiE,EAAE;gBAC7E,qCAAqC;gBACrC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;gBAC3C,yBAAyB,EAAE,GAAG,yBAAyB,EAAE;gBACzD,gBAAgB,EAAE,GAAG,gBAAgB,EAAE;gBACvC,qBAAqB;gBACrB,IAAI;aACL,CAAC,CAAC;SACJ;aAAM,IAAI,SAAS,IAAI,YAAY,EAAE;YACpC,QAAQ,gBAAgB,EAAE;gBACxB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAChD;oBACE,sGAAsG;oBACtG,kBAAkB,KAAK,wBAAwB;wBAC/C,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC;4BAC/B,gBAAgB,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAC7E;wBACA,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC;qBACrD;yBAAM;wBACL,sBAAsB,GAAG,mBAAmB,CAAC,OAAO,CAAC;qBACtD;oBACD,MAAM;iBACP;gBAED,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;oBACpD,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC;oBACpD,MAAM;iBACP;gBAED,8CAA8C;gBAC9C,OAAO,CAAC,CAAC;oBACP,sBAAsB,GAAG,mBAAmB,CAAC,OAAO,CAAC;iBACtD;aACF;YACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,sBAAsB,QAAQ,EAAE;gBAC7E,gBAAgB;gBAChB,qCAAqC;gBACrC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;gBAC3C,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;gBAC3C,mBAAmB,EAAE,GAAG,mBAAmB,EAAE;gBAC7C,yBAAyB,EAAE,GAAG,yBAAyB,EAAE;gBACzD,0BAA0B,EAAE,GAAG,0BAA0B,EAAE;gBAC3D,gBAAgB,EAAE,GAAG,gBAAgB,EAAE;gBACvC,iBAAiB,EAAE,GAAG,iBAAiB,EAAE;gBACzC,qBAAqB;gBACrB,IAAI;aACL,CAAC,CAAC;SACJ;aAAM,IAAI,SAAS,IAAI,CAAC,YAAY,EAAE;YACrC,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;gBAC9D,qCAAqC;gBACrC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;gBAC3C,yBAAyB,EAAE,GAAG,yBAAyB,EAAE;gBACzD,gBAAgB,EAAE,GAAG,gBAAgB,EAAE;gBACvC,qBAAqB;gBACrB,IAAI;aACL,CAAC,CAAC;SACJ;aAAM,IAAI,YAAY,IAAI,CAAC,SAAS,EAAE;YACrC,sBAAsB,GAAG,mBAAmB,CAAC,OAAO,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;gBAC9D,qCAAqC;gBACrC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE;gBAC7C,0BAA0B,EAAE,GAAG,0BAA0B,EAAE;gBAC3D,iBAAiB,EAAE,GAAG,iBAAiB,EAAE;gBACzC,qBAAqB;gBACrB,IAAI;aACL,CAAC,CAAC;SACJ;QAED,IAAI,sBAAsB,KAAK,IAAI,EAAE;YACnC,MAAM,KAAK,CAAC,sDAAsD,IAAI,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,sBAAsB,KAAK,mBAAmB,CAAC,MAAM,EAAE;YACzD,OAAO;gBACL,GAAG,SAAS;gBACZ,uBAAuB,EAAE,KAAK;gBAC9B,sBAAsB;aAIvB,CAAC;SACH;aAAM;YACL,OAAO;gBACL,GAAG,YAAY;gBACf,uBAAuB,EAAE,IAAI;gBAC7B,sBAAsB;aAIvB,CAAC;SACH;IACH,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAoD,KAAK,UAAU,YAAY,CAC/F,IAAI,EACJ,YAAY,EACZ,QAAQ;QAER,MAAM,YAAY,GAAG,MAAM,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,KAAK,CAAC,gDAAgD,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;SACrF;aAAM;YACL,oEAAoE;YACpE,yFAAyF;YACzF,OAAO,YAA4C,CAAC;SACrD;IACH,CAAC,CAAC;IAEF,MAAM,kCAAkC,GACtC,KAAK,UAAU,kCAAkC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ;QAC5E,MAAM,EAAC,IAAI,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,OAAO,EAAC,GAAG,MAAM,2BAA2B,CACnG,IAAI,EACJ,YAAY,EACZ,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,KAAK,CAAC,gBAAgB,OAAO,yCAAyC,CAAC,CAAC;SAC/E;QACD,MAAM,uBAAuB,GAAG,IAAI,CAAC;QAErC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC;YACrB,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAkD,CAAC,CAAC;YACtG,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC3G;aAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC7F;aAAM;YACL,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAiD,CAAC,CAAC;YACrG,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC3G;IACH,CAAC,CAAC;IAEJ,MAAM,cAAc,GAAsD,KAAK,UAAU,cAAc,CACrG,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,sBAAgC,EAChC,OAA8C,EAAE;QAEhD,MAAM,8BAA8B,GAAG,MAAM,2BAA2B,CACtE,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,IAAI,CACL,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE;YACtG,IAAI,8BAA8B,CAAC,uBAAuB,EAAE;gBAC1D,OAAO,8BAA8B,CAAC;aACvC;iBAAM;gBACL,IAAI,eAAe,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE;oBACxD,MAAM,EAAC,KAAK,EAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC;oBACpD,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAkD,CAAC,CAAC;oBACtG,OAAO;wBACL,GAAG,8BAA8B;wBACjC,IAAI,EAAE,YAAY;wBAClB,uBAAuB,EAAE,IAAI;qBAI9B,CAAC;iBACH;qBAAM;oBACL,MAAM,YAAY,GAAG,oBAAoB,CACvC,MAAM,EACN,8BAA8B,CAAC,IAAiD,CACjF,CAAC;oBACF,OAAO;wBACL,GAAG,8BAA8B;wBACjC,IAAI,EAAE,YAAY;wBAClB,uBAAuB,EAAE,IAAI;qBAI9B,CAAC;iBACH;aACF;SACF;aAAM;YACL,OAAO,8BAA8B,CAAC;SACvC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,cAAc,EAAE,gCAAgC;QAChD,cAAc;QACd,mBAAmB,EAAE,kCAAkC;QAEvD,KAAK,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI;YAC/C,eAAe,EAAE,CAAC;YAElB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,wGAAwG;YACxG,mGAAmG;YACnG,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;YAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAEtD,MAAM,eAAe,GACnB,IAAI,IAAI,QAAQ;gBACd,CAAC,CAAC,8EAA8E;oBAC9E,aAAa;gBACf,CAAC,CAAC,gFAAgF;oBAChF,mEAAmE;oBACnE,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,UAAU,GACd,UAAU,IAAI,QAAQ;gBACpB,CAAC,CAAC,8FAA8F;oBAC9F,aAAa;gBACf,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEhD,+EAA+E;YAC/E,6EAA6E;YAC7E,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAErC,8FAA8F;YAC9F,kEAAkE;YAClE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAEpG,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI;oBACJ,KAAK,EAAE,cAAc;oBACrB,eAAe;oBACf,MAAM,EAAE,aAAa,CAAC,0BAA0B;oBAChD,MAAM,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC;iBAC5C;aACF,CAAC;QACJ,CAAC;QAED;;;;;;;;;;WAUG;QACH,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,EAAE,eAAe;YAC7E,wHAAwH;YACxH,qFAAqF;YACrF,wDAAwD;YACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC7C,OAAO,CAAC,qBAAqB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;gBACrD,qIAAqI;gBACrI,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACzC;YAED,qFAAqF;YACrF,wBAAwB,CAAC,eAAe,CAAC,CAAC;YAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YAC9G,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;YAExE,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC,OAAO,CAC9D,YAAY,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,MAAM,CACxD,CAAC;YAEF,OAAO,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,KAAK;YAC3B,eAAe,EAAE,CAAC;YAElB,gGAAgG;YAChG,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;YACnC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,SAAS,EAAE;gBACtE,MAAM,KAAK,CAAC,mBAAmB,KAAK,uBAAuB,YAAY,kBAAkB,SAAS,EAAE,CAAC,CAAC;aACvG;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,GAA0C,SAAS,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC9C,MAAM,0BAA0B,GAAG,MAAM,GAAG,0BAA0B,CAAC;YACvE,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;YACtC,2EAA2E;YAC3E,mEAAmE;YACnE,IAAI,KAAK,KAAK,SAAS,IAAI,aAAa,GAAG,0BAA0B,EAAE;gBACrE,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC/E,IAAI,OAAO,EAAE;oBACX,KAAK,GAAG,OAAO,CAAC;oBAChB,OAAO,EAAE,MAAM,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC;iBACzD;qBAAM;oBACL,OAAO,EAAE,MAAM,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC;iBAC1D;aACF;YAED,IAAI,CAAC,KAAK,EAAE;gBACV,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACvE;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,GAAqB,EAAE,CAAC;YAEnC,IAAI,KAAK,KAAK,UAAU,EAAE;gBACxB,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;aAC/C;iBAAM,IAAI,KAAK,KAAK,UAAU,GAAG,CAAC,EAAE;gBACnC,iGAAiG;gBACjG,oEAAoE;gBACpE,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,CAAC;aACxD;iBAAM;gBACL,8DAA8D;gBAC9D,MAAM,KAAK,CAAC,6BAA6B,KAAK,iCAAiC,UAAU,EAAE,CAAC,CAAC;aAC9F;YAED,+DAA+D;YAC/D,yFAAyF;YACzF,6FAA6F;YAC7F,iGAAiG;YACjG,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,MAAM,GAAoC,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;aACpF;YAED,4FAA4F;YAC5F,oFAAoF;YACpF,MAAM,aAAa,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjG,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;gBACnC,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB;YAC7C,eAAe,EAAE,CAAC;YAElB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;aAChE;YAED,gDAAgD;YAChD,MAAM,uBAAuB,EAAE,CAAC;YAEhC,mEAAmE;YACnE,uEAAuE;YACvE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;gBACxC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC;aAC5E;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE5E,yFAAyF;YACzF,oCAAoC;YACpC,EAAE;YACF,4FAA4F;YAC5F,0FAA0F;YAC1F,gCAAgC;YAEhC,6FAA6F;YAC7F,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACzE,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAoC,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAA8C,CAAC;gBACnG,IAAI,IAAI,EAAE;oBACR,wFAAwF;oBACxF,2CAA2C;oBAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;aACF;YAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAExG,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;gBACnC,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED;;;;;;;;;;;;WAYG;QACH,KAAK,CAAC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB;YAClD,eAAe,EAAE,CAAC;YAElB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;aAChE;YAED,gDAAgD;YAChD,MAAM,uBAAuB,EAAE,CAAC;YAEhC,4GAA4G;YAC5G,6FAA6F;YAC7F,gDAAgD;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAEnC,6FAA6F;YAC7F,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACzE,+GAA+G;YAC/G,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAChF,MAAM,8BAA8B,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;YAE5E,MAAM,MAAM,GAAgC,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,6BAA6B,GAAG,8BAA8B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACzF,IAAI,6BAA6B,EAAE;oBACjC,MAAM,CAAC,IAAI,CAAC;wBACV,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;wBAClB,cAAc;wBACd,6BAA6B;qBAC9B,CAAC,CAAC;iBACJ;aACF;YAED,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,IAAI;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAChF,OAAO,EAAE,UAAU,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAEhH,OAAO;gBACL,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,yBAAyB,CAAC,wBAAwB;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE/D,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE,EAAE;gBAChE,IAAI;oBACF,0BAA0B;oBAC1B,4EAA4E;oBAC5E,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC;oBAC5F,MAAM,EAAC,IAAI,EAAE,eAAe,EAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC/E,oHAAoH;oBACpH,4FAA4F;oBAC5F,wDAAwD;oBACxD,MAAM,EAAC,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAC,GAAG,MAAM,gCAAgC,CACnG,UAAU,EACV,OAAO,EACP,KAAK,EACL,IAAI,EACJ,eAAe,CAChB,CAAC;oBAEF,KAAK,CAAC,yBAAyB,CAAC,GAAG,CACjC,uBAAuB,CAAC,OAAO,CAAC,SAAS,EACzC,cAAc,EACd,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAC1C,gBAAgB,CACjB,CAAC;oBACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;oBACxF,OAAO,EAAE,iCAAiC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;iBAC7F;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,MAAM,GAAG;wBACb,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;wBACzD,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;qBAC5D,CAAC;oBAEF,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,wBAAwB,EAAE;wBAClG,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;wBAC/D,OAAO,CAAC,wCAAwC;qBACjD;oBAED,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAU,CAAC,CAAC;oBAC9E,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;wBACrE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,CAAC,CAAC;qBACzG;iBACF;YACH,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,KAAK,CAAC,gDAAgD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACzG;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;aACjB;QACH,CAAC;QAED;;;;;;WAMG;QACH,KAAK,CAAC,4BAA4B,CAAC,qBAAqB;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,MAAM,GAAY,EAAE,CAAC;YAE3B,MAAM,OAAO,CAAC,GAAG,CACf,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAI;oBACF,0BAA0B;oBAC1B,MAAM,EAAC,+BAA+B,EAAC,GAAG,MAAM,+CAA+C,CAC7F,KAAK,EACL,oBAAoB,EACpB,IAAI,CAAC,gCAAgC;qBACtC,CAAC;oBACF,KAAK,CAAC,4BAA4B,CAAC,GAAG,CACpC,oBAAoB,CAAC,OAAO,EAC5B,+BAA+B,CAAC,MAAM,CACvC,CAAC;oBACF,MAAM,OAAO,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;iBACjE;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,MAAM,GAAG;wBACb,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI;wBACpD,iBAAiB,EAAE,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB;qBAC/E,CAAC;oBAEF,IACE,CAAC,YAAY,kBAAkB;wBAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,uCAAuC,EAC9E;wBACA,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;wBAC5D,OAAO,CAAC,wCAAwC;qBACjD;oBAED,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,GAAG,EAAE,MAAM,EAAE,CAAU,CAAC,CAAC;oBACjF,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;wBACvE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;qBACzG;iBACF;YACH,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,KAAK,CAAC,mDAAmD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC5G;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;aACjB;QACH,CAAC;QAED,KAAK,CAAC,4BAA4B,CAAC,aAAa;YAC9C,eAAe,EAAE,CAAC;YAElB,MAAM,OAAO,CAAC,6BAA6B,CACzC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC7F,cAAc,EAAE,cAAc;gBAC9B,MAAM,EAAE,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC;gBAChF,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC,CACJ,CAAC;YAEF,QAAQ;YACR,wFAAwF;YACxF,oBAAoB;YAEpB,IAAI,OAAO,EAAE;gBACX,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;iBAC7D;aACF;QACH,CAAC;QAED;;;;;;;;;WASG;QACH,KAAK,CAAC,2BAA2B,CAAC,aAAa;YAC7C,eAAe,EAAE,CAAC;YAElB,2GAA2G;YAC3G,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC/B,KAAK,MAAM,cAAc,IAAI,GAAG,CAAC,oBAAoB,EAAE;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,0BAA0B,CAAC,CAAC;oBACvE,IAAI,CAAC,IAAI,CAAC;wBACR,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,MAAM,EAAE,MAAM;wBACd,mHAAmH;wBACnH,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;wBACjD,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;iBACJ;aACF;YAED,MAAM,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,OAAO,EAAE;gBACX,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,OAAO,CAAC,qCAAqC,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;iBACrG;aACF;QACH,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAC,SAAS;YACnC,MAAM,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,+BAA+B;YACnC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,6BAA6B;YACjC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB;YACvC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,OAAO;oBACL,IAAI,EAAE,EAAE;iBACT,CAAC;aACH;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YAC9C,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,EAAE;gBACxD,MAAM,IAAI,QAAQ,CAChB,GAAG,EACH,iBAAiB,KAAK,6DAA6D,YAAY,EAAE,CAClG,CAAC;aACH;YAED,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK;oBACL,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;iBACjD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACnC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAC9C;YAED,0DAA0D;YAC1D,6EAA6E;YAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YAE9C,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;gBAClE,MAAM,EAAC,MAAM,EAAC,GAAG,YAAY,CAAC,OAAO,CAAC;gBACtC,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnE,IAAI,cAAc,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBAE/C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC3D,OAAO,CACL,MAAM,KAAK,QAAQ;oBACnB,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,qBAAqB;oBAChC,MAAM,KAAK,gBAAgB,CAC5B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;YAEtE,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;gBACrE,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,qBAAqB,CAAC,MAAM;aACpC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAY,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAIL,GAAG,EAEH,mBAAmB,EAInB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACzE,OAAO,EAAC,+CAA+C,EAAC,MAAM,gEAAgE,CAAC;AAG/H,OAAO,EAAC,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,gCAAgC,EAAC,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAiC,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAC,gCAAgC,EAAE,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,YAAY,CAAC;AAE/G;;;;;;;;;;;;GAYG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,+BAA+B,GAAG,IAAK,CAAC;AAC9C,8DAA8D;AAC9D,MAAM,gCAAgC,GAAG,KAAM,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,GACO;IACX,IAAI,gBAAgB,GAAgB,IAAI,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAC/E,MAAM,0BAA0B,GAAG,2BAA2B,GAAG,IAAI,CAAC;IAEtE,+CAA+C;IAC/C,KAAK,UAAU,mBAAmB,CAAC,KAAgC;QACjE,IAAI,CAAC,gBAAgB,EAAE;YACrB,oEAAoE;YACpE,IAAI,KAAK,CAAC,IAAI,GAAG,yBAAyB,EAAE;gBAC1C,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC5C;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,QAAQ,EAAE;gBACZ,gBAAgB,GAAG,MAAM;qBACtB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;qBACzC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnD;SACF;QAED,oFAAoF;QACpF,6GAA6G;QAC7G,OAAO,gBAAgB,IAAI,SAAS,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,WAAW,CAAC,IAAU;QACnC,IAAI,IAAI,IAAI,CAAC,EAAE;YACb,OAAO;SACR;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxE,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElD,IAAI,QAAQ,GAAG,0BAA0B,EAAE;YACzC,MAAM,KAAK,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,CAAC;SACxD;aAAM,IAAI,QAAQ,GAAG,CAAC,EAAE;YACvB,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACrC;QAED,qDAAqD;IACvD,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,uBAAuB;QACpC,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;QACtC,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,0BAA0B,EAAE;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;SACnE;IACH,CAAC;IAED;;OAEG;IACH,SAAS,aAAa;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9D,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;QACtE,OAAO,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,SAAS,yBAAyB;QAChC,OAAO,kBAAkB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,GAAG,2BAA2B,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,SAAS,oBAAoB,CAC3B,KAAmE,EACnE,MAA4B;QAE5B,MAAM,cAAc,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACnD,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAAC;QACjD,MAAM,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;QAEnD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO;gBACL,qBAAqB,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBAC3D,mBAAmB,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBACzD,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;aAClD,CAAC;SACH;aAAM,IAAI,MAAM,KAAK,mBAAmB,CAAC,OAAO,EAAE;YACjD,OAAO;gBACL,4BAA4B,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBAClE,0BAA0B,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBAChE,sBAAsB,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;aACzD,CAAC;SACH;aAAM;YACL,OAAO;gBACL,2BAA2B,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBACjE,yBAAyB,EAAE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC;gBAC/D,qBAAqB,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;aACxD,CAAC;SACH;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,UAAU,sBAAsB,CAAC,KAAoB;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC;SAChB;QACD,MAAM,EAAE,GAAG;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;SACnC,CAAC;QACF,MAAM,KAAK,GAAG,uBAAuB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAChD,qEAAqE;QACrE,IAAI,QAAQ,GAAkD,IAAI,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACtC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC;gBACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAC;YACF,8EAA8E;YAC9E,8CAA8C;YAC9C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SACpD;QAED,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAClD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS,eAAe;QACtB,kDAAkD;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,gBAAgB,CAAC;YAChC,KAAK,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;gBACjD,IAAI,WAAW,GAAG,QAAQ,GAAG,qBAAqB,GAAG,eAAe,EAAE;oBACpE,MAAM,IAAI,aAAa,CAAC,YAAY,QAAQ,gBAAgB,WAAW,EAAE,CAAC,CAAC;iBAC5E;qBAAM;oBACL,OAAO;iBACR;aACF;YAED,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO;YAET,KAAK,SAAS,CAAC,OAAO;gBACpB,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAChD;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IAEH,SAAS,wBAAwB,CAAC,eAAqB;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SACpD;QAED,IAAI,gBAAgB,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO;YAC9D,MAAM,IAAI,aAAa,CACrB,0EAA0E,gBAAgB,CAAC,yBAAyB,WAAW,gBAAgB,CAAC,sBAAsB,EAAE,CACzK,CAAC;IACN,CAAC;IAED,MAAM,0BAA0B,GAAG,KAAK,UAAU,0BAA0B,CAC1E,IAAU,EACV,YAA0B,EAC1B,QAAgB;IAChB,oGAAoG;IACpG,EACE,uBAAuB,EACvB,eAAe,MAIb,EAAE;QAEN,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,KAAK,CAAC,gBAAgB,OAAO,iCAAiC,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC3C,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAE/C,qDAAqD;QACrD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC3C;QAED,IAAI,uBAAuB,KAAK,IAAI,EAAE;YACpC,eAAe,EAAE,CAAC;YAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,gFAAgF;YAChF,6EAA6E;YAC7E,kDAAkD;YAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;SACjC;QAED,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,EAAC,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC;gBAC1F,IAAI;gBACJ,YAAY;gBACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC1C,eAAe;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;gBACvC,IAAI;gBACJ,qBAAqB;gBACrB,mBAAmB;gBACnB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACpF,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACpC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;aAC1D;YAED,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,CAAC;SAC3E;gBAAS;YACR,IAAI,KAAK;gBAAE,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,gCAAgC,GAAG,KAAK,UAAU,gCAAgC,CACtF,IAAU,EACV,YAA0B,EAC1B,QAAgB,EAChB,EACE,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,MAIb,EAAE;QAEN,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC1C,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;QAE/C,IAAI,uBAAuB,KAAK,IAAI,EAAE;YACpC,eAAe,EAAE,CAAC;YAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,gFAAgF;YAChF,6EAA6E;YAC7E,kDAAkD;YAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;SACjC;QAED,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,EAAC,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;gBAC1G,IAAI;gBACJ,YAAY;gBACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC1C,YAAY;gBACZ,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,uBAAuB,IAAI,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;gBACvE,MAAM,iBAAiB,GAAG,WAAW,CAAE,KAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC3G,IAAI,iBAAiB,KAAK,YAAY,EAAE;oBACtC,MAAM,KAAK,CAAC,qDAAqD,YAAY,WAAW,iBAAiB,EAAE,CAAC,CAAC;iBAC9G;aACF;YAED,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBACzC,IAAI;gBACJ,qBAAqB;gBACrB,mBAAmB;gBACnB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC7E,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACpC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;aACzD;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAG,KAAK,CAAE,KAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;iBAC1C;gBAED,OAAO;oBACL,IAAI,EAAE,EAAC,KAAK,EAAE,GAAG,QAAQ,EAA2B;oBACpD,OAAO;oBACP,qBAAqB;oBACrB,mBAAmB;oBACnB,qBAAqB;iBACtB,CAAC;aACH;iBAAM;gBACL,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,CAAC;aAClG;SACF;gBAAS;YACR,IAAI,KAAK;gBAAE,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAC/B,KAAK,UAAU,2BAA2B,CACxC,IAAI,EACJ,YAAY,EACZ,QAAQ;IACR,uCAAuC;IACvC,uBAAiC,EACjC,EACE,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,MACkB,EAAE;QAE7C,eAAe,EAAE,CAAC;QAClB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;QAE9E,gFAAgF;QAChF,6EAA6E;QAC7E,kDAAkD;QAClD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,yBAAyB;QACzB,2FAA2F;QAC3F,+FAA+F;QAC/F,gBAAgB,GAAG,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACnF,kBAAkB,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,kBAAkB,GAAG,wBAAwB,EAAE;YACjD,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,8BAA8B,kBAAkB,6BAA6B,CAAC,CAAC;SACxG;QAED,MAAM,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS;YAClC,KAAK,CAAC,gBAAgB,KAAK,SAAS;YACpC,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAEvE,+EAA+E;QAC/E,EAAE;QACF,iGAAiG;QACjG,6GAA6G;QAC7G,kGAAkG;QAClG,EAAE;QACF,+FAA+F;QAC/F,oDAAoD;QACpD,MAAM,eAAe,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAEhH,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE;YACzC,MAAM,KAAK,CACT,0FAA0F,gBAAgB,qBAAqB,gBAAgB,EAAE,CAClJ,CAAC;SACH;QAED,MAAM,aAAa,GAAG;YACpB,IAAI;YACJ,gBAAgB;YAChB,IAAI;YACJ,gBAAgB;YAChB,eAAe;YACf,uBAAuB;YACvB,qCAAqC;YACrC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;SAC5C,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;QACnF,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC;YACzD,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;QAE1D,MAAM,CAAC,OAAO,CAAC,uDAAuD,EAAE;YACtE,GAAG,aAAa;YAChB,QAAQ,EAAE,+BAA+B;YACzC,SAAS,EAAE,gCAAgC;SAC5C,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,wDAAwD;QAExD,MAAM,cAAc,GAAG,gBAAgB;YACrC,CAAC,CAAC,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;gBACvD,YAAY;gBACZ,qFAAqF;gBACrF,uBAAuB,EAAE,KAAK;gBAC9B,uEAAuE;gBACvE,uBAAuB,EAAE,IAAI;gBAC7B,eAAe;aAChB,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAElD,MAAM,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;gBAC7D,YAAY;gBACZ,uBAAuB;gBACvB,uEAAuE;gBACvE,uBAAuB,EAAE,IAAI;gBAC7B,eAAe;aAChB,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;gBACtB,2DAA2D;gBAC3D,iCAAiC;gBACjC,yEAAyE;gBACzE,kFAAkF;gBAClF,IACE,WAAW,CAAC,qBAAqB;oBACjC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC;oBAChC,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,EACtE;oBACA,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;gBACD,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEjD,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE;YACrF,gBAAgB,EAAE,+BAA+B;YACjD,aAAa,EAAE,gCAAgC;YAC/C,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/D,MAAM,KAAK,CAAC,oEAAoE,CAAC,CAAC;SACnF;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;YACjE,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACpE;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,eAAe,EAAE;YACnD,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC;gBACE,GAAG,aAAa;gBAChB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,EACD,MAAM,CAAC,MAAM,CACd,CAAC;SACH;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,gBAAgB,EAAE;YACrD,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC;gBACE,GAAG,aAAa;gBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,EACD,OAAO,CAAC,MAAM,CACf,CAAC;SACH;QAED,0CAA0C;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACvE,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE;gBAC3E,GAAG,aAAa;gBAChB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB;gBACzD,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;aACtC,CAAC,CAAC;YAEH,OAAO,EAAC,GAAG,MAAM,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,MAAM,EAAC,CAAC;SAC9G;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE;YACnE,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;gBAC9D,GAAG,aAAa;gBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC;aACvC,CAAC,CAAC;YAEH,OAAO,EAAC,GAAG,OAAO,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,OAAO,EAAC,CAAC;SAC/G;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;YACnE,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;gBAC9D,GAAG,aAAa;gBAChB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;aACtC,CAAC,CAAC;YAEH,OAAO,EAAC,GAAG,MAAM,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,MAAM,EAAC,CAAC;SAC9G;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;YACnE,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;gBACzD,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB;gBAC1F,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB;gBACvF,kBAAkB;gBAClB,gBAAgB;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,YAAY,sBAAsB,QAAQ,EAAE;gBACtD,GAAG,aAAa;gBAChB,gBAAgB,EAAE,MAAM,CAAC,UAAU;gBACnC,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC;gBACjE,iBAAiB,EAAE,OAAO,CAAC,UAAU;gBACrC,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC;aACpE,CAAC,CAAC;YAEH,IAAI,sBAAsB,KAAK,mBAAmB,CAAC,MAAM,EAAE;gBACzD,OAAO;oBACL,GAAG,MAAM,CAAC,KAAK;oBACf,uBAAuB,EAAE,KAAK;oBAC9B,sBAAsB;iBACvB,CAAC;aACH;iBAAM;gBACL,OAAO;oBACL,GAAG,OAAO,CAAC,KAAK;oBAChB,uBAAuB,EAAE,IAAI;oBAC7B,sBAAsB;iBACvB,CAAC;aACH;SACF;QAED,MAAM,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAC9F,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAoD,KAAK,UAAU,YAAY,CAC/F,IAAI,EACJ,YAAY,EACZ,QAAQ;QAER,MAAM,YAAY,GAAG,MAAM,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,KAAK,CAAC,gDAAgD,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;SACrF;aAAM;YACL,oEAAoE;YACpE,yFAAyF;YACzF,OAAO,YAA4C,CAAC;SACrD;IACH,CAAC,CAAC;IAEF,MAAM,kCAAkC,GACtC,KAAK,UAAU,kCAAkC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ;QAC5E,MAAM,EAAC,IAAI,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,OAAO,EAAC,GAAG,MAAM,2BAA2B,CACnG,IAAI,EACJ,YAAY,EACZ,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,KAAK,CAAC,gBAAgB,OAAO,yCAAyC,CAAC,CAAC;SAC/E;QACD,MAAM,uBAAuB,GAAG,IAAI,CAAC;QAErC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC;YACrB,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAkD,CAAC,CAAC;YACtG,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC3G;aAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC7F;aAAM;YACL,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAiD,CAAC,CAAC;YACrG,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAC,CAAC;SAC3G;IACH,CAAC,CAAC;IAEJ,MAAM,cAAc,GAAsD,KAAK,UAAU,cAAc,CACrG,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,sBAAgC,EAChC,OAA8C,EAAE;QAEhD,MAAM,8BAA8B,GAAG,MAAM,2BAA2B,CACtE,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,IAAI,CACL,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE;YACtG,IAAI,8BAA8B,CAAC,uBAAuB,EAAE;gBAC1D,OAAO,8BAA8B,CAAC;aACvC;iBAAM;gBACL,IAAI,eAAe,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE;oBACxD,MAAM,EAAC,KAAK,EAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC;oBACpD,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAkD,CAAC,CAAC;oBACtG,OAAO;wBACL,GAAG,8BAA8B;wBACjC,IAAI,EAAE,YAAY;wBAClB,uBAAuB,EAAE,IAAI;qBAI9B,CAAC;iBACH;qBAAM;oBACL,MAAM,YAAY,GAAG,oBAAoB,CACvC,MAAM,EACN,8BAA8B,CAAC,IAAiD,CACjF,CAAC;oBACF,OAAO;wBACL,GAAG,8BAA8B;wBACjC,IAAI,EAAE,YAAY;wBAClB,uBAAuB,EAAE,IAAI;qBAI9B,CAAC;iBACH;aACF;SACF;aAAM;YACL,OAAO,8BAA8B,CAAC;SACvC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,cAAc,EAAE,gCAAgC;QAChD,cAAc;QACd,mBAAmB,EAAE,kCAAkC;QAEvD,KAAK,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI;YAC/C,eAAe,EAAE,CAAC;YAElB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,wGAAwG;YACxG,mGAAmG;YACnG,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;YAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAEtD,MAAM,eAAe,GACnB,IAAI,IAAI,QAAQ;gBACd,CAAC,CAAC,8EAA8E;oBAC9E,aAAa;gBACf,CAAC,CAAC,gFAAgF;oBAChF,mEAAmE;oBACnE,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,UAAU,GACd,UAAU,IAAI,QAAQ;gBACpB,CAAC,CAAC,8FAA8F;oBAC9F,aAAa;gBACf,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEhD,+EAA+E;YAC/E,6EAA6E;YAC7E,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAErC,8FAA8F;YAC9F,kEAAkE;YAClE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAEpG,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI;oBACJ,KAAK,EAAE,cAAc;oBACrB,eAAe;oBACf,MAAM,EAAE,aAAa,CAAC,0BAA0B;oBAChD,MAAM,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC;iBAC5C;aACF,CAAC;QACJ,CAAC;QAED;;;;;;;;;;WAUG;QACH,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,EAAE,eAAe;YAC7E,wHAAwH;YACxH,qFAAqF;YACrF,wDAAwD;YACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC7C,OAAO,CAAC,qBAAqB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;gBACrD,qIAAqI;gBACrI,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACzC;YAED,qFAAqF;YACrF,wBAAwB,CAAC,eAAe,CAAC,CAAC;YAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YAC9G,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;YAExE,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC,OAAO,CAC9D,YAAY,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,MAAM,CACxD,CAAC;YAEF,OAAO,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,KAAK;YAC3B,eAAe,EAAE,CAAC;YAElB,gGAAgG;YAChG,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;YACnC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,SAAS,EAAE;gBACtE,MAAM,KAAK,CAAC,mBAAmB,KAAK,uBAAuB,YAAY,kBAAkB,SAAS,EAAE,CAAC,CAAC;aACvG;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,GAA0C,SAAS,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC9C,MAAM,0BAA0B,GAAG,MAAM,GAAG,0BAA0B,CAAC;YACvE,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;YACtC,2EAA2E;YAC3E,mEAAmE;YACnE,IAAI,KAAK,KAAK,SAAS,IAAI,aAAa,GAAG,0BAA0B,EAAE;gBACrE,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC/E,IAAI,OAAO,EAAE;oBACX,KAAK,GAAG,OAAO,CAAC;oBAChB,OAAO,EAAE,MAAM,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC;iBACzD;qBAAM;oBACL,OAAO,EAAE,MAAM,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC;iBAC1D;aACF;YAED,IAAI,CAAC,KAAK,EAAE;gBACV,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACvE;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,GAAqB,EAAE,CAAC;YAEnC,IAAI,KAAK,KAAK,UAAU,EAAE;gBACxB,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;aAC/C;iBAAM,IAAI,KAAK,KAAK,UAAU,GAAG,CAAC,EAAE;gBACnC,iGAAiG;gBACjG,oEAAoE;gBACpE,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,CAAC;aACxD;iBAAM;gBACL,8DAA8D;gBAC9D,MAAM,KAAK,CAAC,6BAA6B,KAAK,iCAAiC,UAAU,EAAE,CAAC,CAAC;aAC9F;YAED,+DAA+D;YAC/D,yFAAyF;YACzF,6FAA6F;YAC7F,iGAAiG;YACjG,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,MAAM,GAAoC,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;aACpF;YAED,4FAA4F;YAC5F,oFAAoF;YACpF,MAAM,aAAa,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjG,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;gBACnC,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB;YAC7C,eAAe,EAAE,CAAC;YAElB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;aAChE;YAED,gDAAgD;YAChD,MAAM,uBAAuB,EAAE,CAAC;YAEhC,mEAAmE;YACnE,uEAAuE;YACvE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;gBACxC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC;aAC5E;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE5E,yFAAyF;YACzF,oCAAoC;YACpC,EAAE;YACF,4FAA4F;YAC5F,0FAA0F;YAC1F,gCAAgC;YAEhC,6FAA6F;YAC7F,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACzE,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAoC,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAA8C,CAAC;gBACnG,IAAI,IAAI,EAAE;oBACR,wFAAwF;oBACxF,2CAA2C;oBAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;aACF;YAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAExG,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;gBACnC,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED;;;;;;;;;;;;WAYG;QACH,KAAK,CAAC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB;YAClD,eAAe,EAAE,CAAC;YAElB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;aAChE;YAED,gDAAgD;YAChD,MAAM,uBAAuB,EAAE,CAAC;YAEhC,4GAA4G;YAC5G,6FAA6F;YAC7F,gDAAgD;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAEnC,6FAA6F;YAC7F,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACzE,+GAA+G;YAC/G,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAChF,MAAM,8BAA8B,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;YAE5E,MAAM,MAAM,GAAgC,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,6BAA6B,GAAG,8BAA8B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACzF,IAAI,6BAA6B,EAAE;oBACjC,MAAM,CAAC,IAAI,CAAC;wBACV,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;wBAClB,cAAc;wBACd,6BAA6B;qBAC9B,CAAC,CAAC;iBACJ;aACF;YAED,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,IAAI;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;YAE9E,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAChF,OAAO,EAAE,UAAU,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAEhH,OAAO;gBACL,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,yBAAyB,CAAC,wBAAwB;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE/D,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE,EAAE;gBAChE,IAAI;oBACF,0BAA0B;oBAC1B,4EAA4E;oBAC5E,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC;oBAC5F,MAAM,EAAC,IAAI,EAAE,eAAe,EAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC/E,oHAAoH;oBACpH,4FAA4F;oBAC5F,wDAAwD;oBACxD,MAAM,EAAC,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAC,GAAG,MAAM,gCAAgC,CACnG,UAAU,EACV,OAAO,EACP,KAAK,EACL,IAAI,EACJ,eAAe,CAChB,CAAC;oBAEF,KAAK,CAAC,yBAAyB,CAAC,GAAG,CACjC,uBAAuB,CAAC,OAAO,CAAC,SAAS,EACzC,cAAc,EACd,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAC1C,gBAAgB,CACjB,CAAC;oBACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;oBACxF,OAAO,EAAE,iCAAiC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;iBAC7F;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,MAAM,GAAG;wBACb,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;wBACzD,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;qBAC5D,CAAC;oBAEF,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,wBAAwB,EAAE;wBAClG,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;wBAC/D,OAAO,CAAC,wCAAwC;qBACjD;oBAED,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAU,CAAC,CAAC;oBAC9E,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;wBACrE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,CAAC,CAAC;qBACzG;iBACF;YACH,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,KAAK,CAAC,gDAAgD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACzG;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;aACjB;QACH,CAAC;QAED;;;;;;WAMG;QACH,KAAK,CAAC,4BAA4B,CAAC,qBAAqB;YACtD,eAAe,EAAE,CAAC;YAElB,MAAM,MAAM,GAAY,EAAE,CAAC;YAE3B,MAAM,OAAO,CAAC,GAAG,CACf,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAI;oBACF,0BAA0B;oBAC1B,MAAM,EAAC,+BAA+B,EAAC,GAAG,MAAM,+CAA+C,CAC7F,KAAK,EACL,oBAAoB,EACpB,IAAI,CAAC,gCAAgC;qBACtC,CAAC;oBACF,KAAK,CAAC,4BAA4B,CAAC,GAAG,CACpC,oBAAoB,CAAC,OAAO,EAC5B,+BAA+B,CAAC,MAAM,CACvC,CAAC;oBACF,MAAM,OAAO,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;iBACjE;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,MAAM,GAAG;wBACb,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI;wBACpD,iBAAiB,EAAE,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB;qBAC/E,CAAC;oBAEF,IACE,CAAC,YAAY,kBAAkB;wBAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,uCAAuC,EAC9E;wBACA,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;wBAC5D,OAAO,CAAC,wCAAwC;qBACjD;oBAED,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,GAAG,EAAE,MAAM,EAAE,CAAU,CAAC,CAAC;oBACjF,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;wBACvE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;qBACzG;iBACF;YACH,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,KAAK,CAAC,mDAAmD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC5G;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;aACjB;QACH,CAAC;QAED,KAAK,CAAC,4BAA4B,CAAC,aAAa;YAC9C,eAAe,EAAE,CAAC;YAElB,MAAM,OAAO,CAAC,6BAA6B,CACzC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC7F,cAAc,EAAE,cAAc;gBAC9B,MAAM,EAAE,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC;gBAChF,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC,CACJ,CAAC;YAEF,QAAQ;YACR,wFAAwF;YACxF,oBAAoB;YAEpB,IAAI,OAAO,EAAE;gBACX,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;iBAC7D;aACF;QACH,CAAC;QAED;;;;;;;;;WASG;QACH,KAAK,CAAC,2BAA2B,CAAC,aAAa;YAC7C,eAAe,EAAE,CAAC;YAElB,2GAA2G;YAC3G,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC/B,KAAK,MAAM,cAAc,IAAI,GAAG,CAAC,oBAAoB,EAAE;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,0BAA0B,CAAC,CAAC;oBACvE,IAAI,CAAC,IAAI,CAAC;wBACR,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,MAAM,EAAE,MAAM;wBACd,mHAAmH;wBACnH,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;wBACjD,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;iBACJ;aACF;YAED,MAAM,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,OAAO,EAAE;gBACX,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,OAAO,CAAC,qCAAqC,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;iBACrG;aACF;QACH,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAC,SAAS;YACnC,MAAM,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,+BAA+B;YACnC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,6BAA6B;YACjC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB;YACvC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,OAAO;oBACL,IAAI,EAAE,EAAE;iBACT,CAAC;aACH;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YAC9C,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,EAAE;gBACxD,MAAM,IAAI,QAAQ,CAChB,GAAG,EACH,iBAAiB,KAAK,6DAA6D,YAAY,EAAE,CAClG,CAAC;aACH;YAED,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK;oBACL,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;iBACjD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACnC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAC9C;YAED,0DAA0D;YAC1D,6EAA6E;YAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YAE9C,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;gBAClE,MAAM,EAAC,MAAM,EAAC,GAAG,YAAY,CAAC,OAAO,CAAC;gBACtC,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnE,IAAI,cAAc,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBAE/C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC3D,OAAO,CACL,MAAM,KAAK,QAAQ;oBACnB,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,gBAAgB;oBAC3B,MAAM,KAAK,qBAAqB;oBAChC,MAAM,KAAK,gBAAgB,CAC5B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;YAEtE,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;gBACrE,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,qBAAqB,CAAC,MAAM;aACpC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { BeaconStateAllForks } from "@lodestar/state-transition";
2
- import { BLSPubkey, CommitteeIndex, Slot, ValidatorIndex } from "@lodestar/types";
2
+ import { routes } from "@lodestar/api";
3
+ import { BLSPubkey, CommitteeIndex, ProducedBlockSource, Slot, ValidatorIndex } from "@lodestar/types";
3
4
  export declare function computeSubnetForCommitteesAtSlot(slot: Slot, committeesAtSlot: number, committeeIndex: CommitteeIndex): number;
4
5
  /**
5
6
  * Precompute all pubkeys for given `validatorIndices`. Ensures that all `validatorIndices` are known
@@ -11,4 +12,10 @@ export declare function computeSubnetForCommitteesAtSlot(slot: Slot, committeesA
11
12
  * See benchmark -> packages/beacon-node/test/perf/api/impl/validator/attester.test.ts
12
13
  */
13
14
  export declare function getPubkeysForIndices(validators: BeaconStateAllForks["validators"], indexes: ValidatorIndex[]): BLSPubkey[];
15
+ export declare function selectBlockProductionSource({ builderSelection, engineBlockValue, builderBlockValue, builderBoostFactor, }: {
16
+ builderSelection: routes.validator.BuilderSelection;
17
+ engineBlockValue: bigint;
18
+ builderBlockValue: bigint;
19
+ builderBoostFactor: bigint;
20
+ }): ProducedBlockSource;
14
21
  //# sourceMappingURL=utils.d.ts.map
@@ -1,5 +1,8 @@
1
1
  import { computeSlotsSinceEpochStart } from "@lodestar/state-transition";
2
2
  import { ATTESTATION_SUBNET_COUNT } from "@lodestar/params";
3
+ import { routes } from "@lodestar/api";
4
+ import { ProducedBlockSource } from "@lodestar/types";
5
+ import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
3
6
  export function computeSubnetForCommitteesAtSlot(slot, committeesAtSlot, committeeIndex) {
4
7
  const slotsSinceEpochStart = computeSlotsSinceEpochStart(slot);
5
8
  const committeesSinceEpochStart = committeesAtSlot * slotsSinceEpochStart;
@@ -28,4 +31,19 @@ export function getPubkeysForIndices(validators, indexes) {
28
31
  }
29
32
  return pubkeys;
30
33
  }
34
+ export function selectBlockProductionSource({ builderSelection, engineBlockValue, builderBlockValue, builderBoostFactor, }) {
35
+ switch (builderSelection) {
36
+ case routes.validator.BuilderSelection.ExecutionAlways:
37
+ case routes.validator.BuilderSelection.ExecutionOnly:
38
+ return ProducedBlockSource.engine;
39
+ case routes.validator.BuilderSelection.MaxProfit:
40
+ return builderBoostFactor !== MAX_BUILDER_BOOST_FACTOR &&
41
+ (builderBoostFactor === BigInt(0) || engineBlockValue >= (builderBlockValue * builderBoostFactor) / BigInt(100))
42
+ ? ProducedBlockSource.engine
43
+ : ProducedBlockSource.builder;
44
+ case routes.validator.BuilderSelection.BuilderAlways:
45
+ case routes.validator.BuilderSelection.BuilderOnly:
46
+ return ProducedBlockSource.builder;
47
+ }
48
+ }
31
49
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAG1D,MAAM,UAAU,gCAAgC,CAC9C,IAAU,EACV,gBAAwB,EACxB,cAA8B;IAE9B,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;IAC1E,OAAO,CAAC,yBAAyB,GAAG,cAAc,CAAC,GAAG,wBAAwB,CAAC;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA6C,EAC7C,OAAyB;IAEzB,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,2BAA2B;IAEpE,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,IAAI,aAAa,EAAE;YAC1B,MAAM,KAAK,CAAC,kBAAkB,KAAK,sCAAsC,aAAa,EAAE,CAAC,CAAC;SAC3F;QAED,0FAA0F;QAC1F,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAA4B,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,MAAM,UAAU,gCAAgC,CAC9C,IAAU,EACV,gBAAwB,EACxB,cAA8B;IAE9B,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;IAC1E,OAAO,CAAC,yBAAyB,GAAG,cAAc,CAAC,GAAG,wBAAwB,CAAC;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA6C,EAC7C,OAAyB;IAEzB,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,2BAA2B;IAEpE,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,IAAI,aAAa,EAAE;YAC1B,MAAM,KAAK,CAAC,kBAAkB,KAAK,sCAAsC,aAAa,EAAE,CAAC,CAAC;SAC3F;QAED,0FAA0F;QAC1F,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GAMnB;IACC,QAAQ,gBAAgB,EAAE;QACxB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC;QACvD,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa;YAClD,OAAO,mBAAmB,CAAC,MAAM,CAAC;QAEpC,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS;YAC9C,OAAO,kBAAkB,KAAK,wBAAwB;gBACpD,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChH,CAAC,CAAC,mBAAmB,CAAC,MAAM;gBAC5B,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAElC,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACrD,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW;YAChD,OAAO,mBAAmB,CAAC,OAAO,CAAC;KACtC;AACH,CAAC"}
@@ -2,7 +2,12 @@ import { phase0, Epoch, Slot, ValidatorIndex, RootHex } from "@lodestar/types";
2
2
  import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
3
3
  import { IForkChoice } from "@lodestar/fork-choice";
4
4
  import { InsertOutcome } from "./types.js";
5
- type GetParticipationFn = (epoch: Epoch, committee: number[]) => Set<number> | null;
5
+ /**
6
+ * This function returns not seen participation for a given epoch and committee.
7
+ * Return null if all validators are seen or no info to check.
8
+ */
9
+ type GetNotSeenValidatorsFn = (epoch: Epoch, committee: number[]) => Set<number> | null;
10
+ type ValidateAttestationDataFn = (attData: phase0.AttestationData) => boolean;
6
11
  /**
7
12
  * Maintain a pool of aggregated attestations. Attestations can be retrieved for inclusion in a block
8
13
  * or api. The returned attestations are aggregated to maximise the number of validators that can be
@@ -10,7 +15,7 @@ type GetParticipationFn = (epoch: Epoch, committee: number[]) => Set<number> | n
10
15
  * Note that we want to remove attestations with attesters that were included in the chain.
11
16
  */
12
17
  export declare class AggregatedAttestationPool {
13
- private readonly attestationGroupByDataHashBySlot;
18
+ private readonly attestationGroupByDataHashByIndexBySlot;
14
19
  private lowestPermissibleSlot;
15
20
  /** For metrics to track size of the pool */
16
21
  getAttestationCount(): {
@@ -57,7 +62,12 @@ export declare class MatchingDataAttestationGroup {
57
62
  * If it's a superset of an existing attestation, remove the existing attestation and add new.
58
63
  */
59
64
  add(attestation: AttestationWithIndex): InsertOutcome;
60
- getAttestationsForBlock(seenAttestingIndices: Set<ValidatorIndex>): AttestationNonParticipant[];
65
+ /**
66
+ * Get AttestationNonParticipant for this groups of same attestation data.
67
+ * @param notSeenAttestingIndices not seen attestting indices, i.e. indices in the same committee
68
+ * @returns an array of AttestationNonParticipant
69
+ */
70
+ getAttestationsForBlock(notSeenAttestingIndices: Set<number>): AttestationNonParticipant[];
61
71
  /** Get attestations for API. */
62
72
  getAttestations(): phase0.Attestation[];
63
73
  }
@@ -66,10 +76,21 @@ export declare function aggregateInto(attestation1: AttestationWithIndex, attest
66
76
  * Pre-compute participation from a CachedBeaconStateAllForks, for use to check if an attestation's committee
67
77
  * has already attested or not.
68
78
  */
69
- export declare function getParticipationFn(state: CachedBeaconStateAllForks): GetParticipationFn;
70
- export declare function extractParticipation(attestations: phase0.PendingAttestation[], state: CachedBeaconStateAllForks): Set<ValidatorIndex>;
79
+ export declare function getNotSeenValidatorsFn(state: CachedBeaconStateAllForks): GetNotSeenValidatorsFn;
80
+ export declare function extractParticipationPhase0(attestations: phase0.PendingAttestation[], state: CachedBeaconStateAllForks): Set<ValidatorIndex>;
81
+ /**
82
+ * This returns a function to validate if an attestation data is compatible to a state,
83
+ * it's an optimized version of isValidAttestationData().
84
+ * Atttestation data is validated by:
85
+ * - Validate the source checkpoint
86
+ * - Validate shuffling using beacon block root and target epoch
87
+ *
88
+ * Here we always validate the source checkpoint, and cache beacon block root + target epoch
89
+ * to avoid running the same shuffling validation multiple times.
90
+ */
91
+ export declare function getValidateAttestationDataFn(forkChoice: IForkChoice, state: CachedBeaconStateAllForks): ValidateAttestationDataFn;
71
92
  /**
72
- * Do those validations:
93
+ * A straight forward version to validate attestation data. We don't use it, but keep it here for reference.
73
94
  * - Validate the source checkpoint
74
95
  * - Since we validated attestation's signature in gossip validation function,
75
96
  * we only need to validate the shuffling of attestation
@@ -1,6 +1,6 @@
1
1
  import bls from "@chainsafe/bls";
2
2
  import { toHexString } from "@chainsafe/ssz";
3
- import { ForkName, MAX_ATTESTATIONS, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH, TIMELY_SOURCE_FLAG_INDEX, } from "@lodestar/params";
3
+ import { ForkName, MAX_ATTESTATIONS, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH } from "@lodestar/params";
4
4
  import { ssz } from "@lodestar/types";
5
5
  import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockRootAtSlot, } from "@lodestar/state-transition";
6
6
  import { EpochDifference } from "@lodestar/fork-choice";
@@ -16,12 +16,13 @@ import { InsertOutcome } from "./types.js";
16
16
  */
17
17
  const MAX_RETAINED_ATTESTATIONS_PER_GROUP = 4;
18
18
  /**
19
- * On mainnet, each slot has 64 committees, and each block has 128 attestations max so we don't
20
- * want to store more than 2 per group.
19
+ * On mainnet, each slot has 64 committees, and each block has 128 attestations max so in average
20
+ * we get 2 attestation per groups.
21
+ * Starting from Jan 2024, we have a performance issue getting attestations for a block. Based on the
22
+ * fact that lot of groups will have only 1 attestation since it's full of participation increase this number
23
+ * a bit higher than average. This also help decrease number of slots to search for attestations.
21
24
  */
22
- const MAX_ATTESTATIONS_PER_GROUP = 2;
23
- /** Same to https://github.com/ethereum/eth2.0-specs/blob/v1.1.0-alpha.5/specs/altair/beacon-chain.md#has_flag */
24
- const TIMELY_SOURCE = 1 << TIMELY_SOURCE_FLAG_INDEX;
25
+ const MAX_ATTESTATIONS_PER_GROUP = 3;
25
26
  /**
26
27
  * Maintain a pool of aggregated attestations. Attestations can be retrieved for inclusion in a block
27
28
  * or api. The returned attestations are aggregated to maximise the number of validators that can be
@@ -30,17 +31,19 @@ const TIMELY_SOURCE = 1 << TIMELY_SOURCE_FLAG_INDEX;
30
31
  */
31
32
  export class AggregatedAttestationPool {
32
33
  constructor() {
33
- this.attestationGroupByDataHashBySlot = new MapDef(() => new Map());
34
+ this.attestationGroupByDataHashByIndexBySlot = new MapDef(() => new Map());
34
35
  this.lowestPermissibleSlot = 0;
35
36
  }
36
37
  /** For metrics to track size of the pool */
37
38
  getAttestationCount() {
38
39
  let attestationCount = 0;
39
40
  let attestationDataCount = 0;
40
- for (const attestationGroupByData of this.attestationGroupByDataHashBySlot.values()) {
41
- attestationDataCount += attestationGroupByData.size;
42
- for (const attestationGroup of attestationGroupByData.values()) {
43
- attestationCount += attestationGroup.getAttestationCount();
41
+ for (const attestationGroupByDataByIndex of this.attestationGroupByDataHashByIndexBySlot.values()) {
42
+ for (const attestationGroupByData of attestationGroupByDataByIndex.values()) {
43
+ attestationDataCount += attestationGroupByData.size;
44
+ for (const attestationGroup of attestationGroupByData.values()) {
45
+ attestationCount += attestationGroup.getAttestationCount();
46
+ }
44
47
  }
45
48
  }
46
49
  return { attestationCount, attestationDataCount };
@@ -52,7 +55,12 @@ export class AggregatedAttestationPool {
52
55
  if (slot < lowestPermissibleSlot) {
53
56
  return InsertOutcome.Old;
54
57
  }
55
- const attestationGroupByDataHash = this.attestationGroupByDataHashBySlot.getOrDefault(slot);
58
+ const attestationGroupByDataHashByIndex = this.attestationGroupByDataHashByIndexBySlot.getOrDefault(slot);
59
+ let attestationGroupByDataHash = attestationGroupByDataHashByIndex.get(attestation.data.index);
60
+ if (!attestationGroupByDataHash) {
61
+ attestationGroupByDataHash = new Map();
62
+ attestationGroupByDataHashByIndex.set(attestation.data.index, attestationGroupByDataHash);
63
+ }
56
64
  let attestationGroup = attestationGroupByDataHash.get(dataRootHex);
57
65
  if (!attestationGroup) {
58
66
  attestationGroup = new MatchingDataAttestationGroup(committee, attestation.data);
@@ -66,7 +74,7 @@ export class AggregatedAttestationPool {
66
74
  /** Remove attestations which are too old to be included in a block. */
67
75
  prune(clockSlot) {
68
76
  // Only retain SLOTS_PER_EPOCH slots
69
- pruneBySlot(this.attestationGroupByDataHashBySlot, clockSlot, SLOTS_PER_EPOCH);
77
+ pruneBySlot(this.attestationGroupByDataHashByIndexBySlot, clockSlot, SLOTS_PER_EPOCH);
70
78
  this.lowestPermissibleSlot = Math.max(clockSlot - SLOTS_PER_EPOCH, 0);
71
79
  }
72
80
  /**
@@ -76,13 +84,17 @@ export class AggregatedAttestationPool {
76
84
  const stateSlot = state.slot;
77
85
  const stateEpoch = state.epochCtx.epoch;
78
86
  const statePrevEpoch = stateEpoch - 1;
79
- const getParticipation = getParticipationFn(state);
87
+ const notSeenValidatorsFn = getNotSeenValidatorsFn(state);
88
+ const validateAttestationDataFn = getValidateAttestationDataFn(forkChoice, state);
80
89
  const attestationsByScore = [];
81
- const slots = Array.from(this.attestationGroupByDataHashBySlot.keys()).sort((a, b) => b - a);
90
+ const slots = Array.from(this.attestationGroupByDataHashByIndexBySlot.keys()).sort((a, b) => b - a);
91
+ let minScore = Number.MAX_SAFE_INTEGER;
92
+ let slotCount = 0;
82
93
  slot: for (const slot of slots) {
83
- const attestationGroupByDataHash = this.attestationGroupByDataHashBySlot.get(slot);
94
+ slotCount++;
95
+ const attestationGroupByDataHashByIndex = this.attestationGroupByDataHashByIndexBySlot.get(slot);
84
96
  // should not happen
85
- if (!attestationGroupByDataHash) {
97
+ if (!attestationGroupByDataHashByIndex) {
86
98
  throw Error(`No aggregated attestation pool for slot=${slot}`);
87
99
  }
88
100
  const epoch = computeEpochAtSlot(slot);
@@ -94,29 +106,55 @@ export class AggregatedAttestationPool {
94
106
  if (!(slot + MIN_ATTESTATION_INCLUSION_DELAY <= stateSlot && stateSlot <= slot + SLOTS_PER_EPOCH)) {
95
107
  continue; // Invalid attestations
96
108
  }
97
- const attestationGroups = Array.from(attestationGroupByDataHash.values());
98
- for (const attestationGroup of attestationGroups) {
99
- if (!isValidAttestationData(forkChoice, state, attestationGroup.data)) {
109
+ const slotDelta = stateSlot - slot;
110
+ const shuffling = state.epochCtx.getShufflingAtEpoch(epoch);
111
+ const slotCommittees = shuffling.committees[slot % SLOTS_PER_EPOCH];
112
+ for (const [committeeIndex, attestationGroupByData] of attestationGroupByDataHashByIndex.entries()) {
113
+ // all attestations will be validated against the state in next step so we can get committee from the state
114
+ // this is an improvement to save the notSeenValidatorsFn call for the same slot/index instead of the same attestation data
115
+ if (committeeIndex > slotCommittees.length) {
116
+ // invalid index, should not happen
100
117
  continue;
101
118
  }
102
- const participation = getParticipation(epoch, attestationGroup.committee);
103
- if (participation === null) {
119
+ const committee = slotCommittees[committeeIndex];
120
+ const notSeenAttestingIndices = notSeenValidatorsFn(epoch, committee);
121
+ if (notSeenAttestingIndices === null || notSeenAttestingIndices.size === 0) {
104
122
  continue;
105
123
  }
106
- // TODO: Is it necessary to validateAttestation for:
107
- // - Attestation committee index not within current committee count
108
- // - Attestation aggregation bits length does not match committee length
109
- //
110
- // These properties should not change after being validate in gossip
111
- // IF they have to be validated, do it only with one attestation per group since same data
112
- // The committeeCountPerSlot can be precomputed once per slot
113
- attestationsByScore.push(...attestationGroup.getAttestationsForBlock(participation).map((attestation) => ({
114
- attestation: attestation.attestation,
115
- score: attestation.notSeenAttesterCount / (stateSlot - slot),
116
- })));
117
- // Stop accumulating attestations there are enough that may have good scoring
118
- if (attestationsByScore.length > MAX_ATTESTATIONS * 2) {
119
- break slot;
124
+ if (slotCount > 2 &&
125
+ attestationsByScore.length >= MAX_ATTESTATIONS &&
126
+ notSeenAttestingIndices.size / slotDelta < minScore) {
127
+ // after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS attestations and break the for loop early
128
+ // if not, we may have to scan all slots in the pool
129
+ // if we have enough attestations and the max possible score is lower than scores of `attestationsByScore`, we should skip
130
+ // otherwise it takes time to check attestation, add it and remove it later after the sort by score
131
+ continue;
132
+ }
133
+ for (const attestationGroup of attestationGroupByData.values()) {
134
+ if (!validateAttestationDataFn(attestationGroup.data)) {
135
+ continue;
136
+ }
137
+ // TODO: Is it necessary to validateAttestation for:
138
+ // - Attestation committee index not within current committee count
139
+ // - Attestation aggregation bits length does not match committee length
140
+ //
141
+ // These properties should not change after being validate in gossip
142
+ // IF they have to be validated, do it only with one attestation per group since same data
143
+ // The committeeCountPerSlot can be precomputed once per slot
144
+ for (const { attestation, notSeenAttesterCount } of attestationGroup.getAttestationsForBlock(notSeenAttestingIndices)) {
145
+ const score = notSeenAttesterCount / slotDelta;
146
+ if (score < minScore) {
147
+ minScore = score;
148
+ }
149
+ attestationsByScore.push({
150
+ attestation,
151
+ score,
152
+ });
153
+ }
154
+ // Stop accumulating attestations there are enough that may have good scoring
155
+ if (attestationsByScore.length >= MAX_ATTESTATIONS * 2) {
156
+ break slot;
157
+ }
120
158
  }
121
159
  }
122
160
  }
@@ -138,13 +176,13 @@ export class AggregatedAttestationPool {
138
176
  getAll(bySlot) {
139
177
  let attestationGroupsArr;
140
178
  if (bySlot === undefined) {
141
- attestationGroupsArr = Array.from(this.attestationGroupByDataHashBySlot.values());
179
+ attestationGroupsArr = Array.from(this.attestationGroupByDataHashByIndexBySlot.values()).flatMap((byIndex) => Array.from(byIndex.values()));
142
180
  }
143
181
  else {
144
- const attestationGroups = this.attestationGroupByDataHashBySlot.get(bySlot);
145
- if (!attestationGroups)
182
+ const attestationGroupsByIndex = this.attestationGroupByDataHashByIndexBySlot.get(bySlot);
183
+ if (!attestationGroupsByIndex)
146
184
  throw Error(`No attestations for slot ${bySlot}`);
147
- attestationGroupsArr = [attestationGroups];
185
+ attestationGroupsArr = Array.from(attestationGroupsByIndex.values());
148
186
  }
149
187
  const attestations = [];
150
188
  for (const attestationGroups of attestationGroupsArr) {
@@ -162,7 +200,9 @@ export class AggregatedAttestationPool {
162
200
  * Use committee instead of aggregationBits to improve performance.
163
201
  */
164
202
  export class MatchingDataAttestationGroup {
165
- constructor(committee, data) {
203
+ constructor(
204
+ // TODO: no need committee here
205
+ committee, data) {
166
206
  this.committee = committee;
167
207
  this.data = data;
168
208
  this.attestations = [];
@@ -209,20 +249,18 @@ export class MatchingDataAttestationGroup {
209
249
  }
210
250
  return InsertOutcome.NewData;
211
251
  }
212
- getAttestationsForBlock(seenAttestingIndices) {
252
+ /**
253
+ * Get AttestationNonParticipant for this groups of same attestation data.
254
+ * @param notSeenAttestingIndices not seen attestting indices, i.e. indices in the same committee
255
+ * @returns an array of AttestationNonParticipant
256
+ */
257
+ getAttestationsForBlock(notSeenAttestingIndices) {
213
258
  const attestations = [];
214
- const committeeLen = this.committee.length;
215
- const committeeSeenAttesting = new Array(committeeLen);
216
- // Intersect committee with participation only once for all attestations
217
- for (let i = 0; i < committeeLen; i++) {
218
- committeeSeenAttesting[i] = seenAttestingIndices.has(this.committee[i]);
219
- }
220
259
  for (const { attestation } of this.attestations) {
221
- const { aggregationBits } = attestation;
222
260
  let notSeenAttesterCount = 0;
223
- for (let i = 0; i < committeeLen; i++) {
224
- // TODO: Optimize aggregationBits.get() in bulk for the entire BitArray
225
- if (!committeeSeenAttesting[i] && aggregationBits.get(i)) {
261
+ const { aggregationBits } = attestation;
262
+ for (const notSeenIndex of notSeenAttestingIndices) {
263
+ if (aggregationBits.get(notSeenIndex)) {
226
264
  notSeenAttesterCount++;
227
265
  }
228
266
  }
@@ -230,9 +268,14 @@ export class MatchingDataAttestationGroup {
230
268
  attestations.push({ attestation, notSeenAttesterCount });
231
269
  }
232
270
  }
233
- return attestations
234
- .sort((a, b) => b.notSeenAttesterCount - a.notSeenAttesterCount)
235
- .slice(0, MAX_ATTESTATIONS_PER_GROUP);
271
+ if (attestations.length <= MAX_ATTESTATIONS_PER_GROUP) {
272
+ return attestations;
273
+ }
274
+ else {
275
+ return attestations
276
+ .sort((a, b) => b.notSeenAttesterCount - a.notSeenAttesterCount)
277
+ .slice(0, MAX_ATTESTATIONS_PER_GROUP);
278
+ }
236
279
  }
237
280
  /** Get attestations for API. */
238
281
  getAttestations() {
@@ -250,7 +293,7 @@ export function aggregateInto(attestation1, attestation2) {
250
293
  * Pre-compute participation from a CachedBeaconStateAllForks, for use to check if an attestation's committee
251
294
  * has already attested or not.
252
295
  */
253
- export function getParticipationFn(state) {
296
+ export function getNotSeenValidatorsFn(state) {
254
297
  if (state.config.getForkName(state.slot) === ForkName.phase0) {
255
298
  // Get attestations to be included in a phase0 block.
256
299
  // As we are close to altair, this is not really important, it's mainly for e2e.
@@ -258,14 +301,20 @@ export function getParticipationFn(state) {
258
301
  // check for phase0 block already
259
302
  const phase0State = state;
260
303
  const stateEpoch = computeEpochAtSlot(state.slot);
261
- const previousEpochParticipants = extractParticipation(phase0State.previousEpochAttestations.getAllReadonly(), state);
262
- const currentEpochParticipants = extractParticipation(phase0State.currentEpochAttestations.getAllReadonly(), state);
263
- return (epoch) => {
264
- return epoch === stateEpoch
265
- ? currentEpochParticipants
266
- : epoch === stateEpoch - 1
267
- ? previousEpochParticipants
268
- : null;
304
+ const previousEpochParticipants = extractParticipationPhase0(phase0State.previousEpochAttestations.getAllReadonly(), state);
305
+ const currentEpochParticipants = extractParticipationPhase0(phase0State.currentEpochAttestations.getAllReadonly(), state);
306
+ return (epoch, committee) => {
307
+ const participants = epoch === stateEpoch ? currentEpochParticipants : epoch === stateEpoch - 1 ? previousEpochParticipants : null;
308
+ if (participants === null) {
309
+ return null;
310
+ }
311
+ const notSeenAttestingIndices = new Set();
312
+ for (const [i, validatorIndex] of committee.entries()) {
313
+ if (!participants.has(validatorIndex)) {
314
+ notSeenAttestingIndices.add(i);
315
+ }
316
+ }
317
+ return notSeenAttestingIndices.size === 0 ? null : notSeenAttestingIndices;
269
318
  };
270
319
  }
271
320
  // altair and future forks
@@ -280,19 +329,22 @@ export function getParticipationFn(state) {
280
329
  const stateEpoch = computeEpochAtSlot(state.slot);
281
330
  return (epoch, committee) => {
282
331
  const participationStatus = epoch === stateEpoch ? currentParticipation : epoch === stateEpoch - 1 ? previousParticipation : null;
283
- if (participationStatus === null)
332
+ if (participationStatus === null) {
284
333
  return null;
285
- const seenValidatorIndices = new Set();
286
- for (const validatorIndex of committee) {
287
- if (flagIsTimelySource(participationStatus[validatorIndex])) {
288
- seenValidatorIndices.add(validatorIndex);
334
+ }
335
+ const notSeenAttestingIndices = new Set();
336
+ for (const [i, validatorIndex] of committee.entries()) {
337
+ // no need to check flagIsTimelySource as if validator is not seen, it's participation status is 0
338
+ if (participationStatus[validatorIndex] === 0) {
339
+ notSeenAttestingIndices.add(i);
289
340
  }
290
341
  }
291
- return seenValidatorIndices;
342
+ // if all validators are seen then return null, we don't need to check for any attestations of same committee again
343
+ return notSeenAttestingIndices.size === 0 ? null : notSeenAttestingIndices;
292
344
  };
293
345
  }
294
346
  }
295
- export function extractParticipation(attestations, state) {
347
+ export function extractParticipationPhase0(attestations, state) {
296
348
  const { epochCtx } = state;
297
349
  const allParticipants = new Set();
298
350
  for (const att of attestations) {
@@ -309,7 +361,52 @@ export function extractParticipation(attestations, state) {
309
361
  return allParticipants;
310
362
  }
311
363
  /**
312
- * Do those validations:
364
+ * This returns a function to validate if an attestation data is compatible to a state,
365
+ * it's an optimized version of isValidAttestationData().
366
+ * Atttestation data is validated by:
367
+ * - Validate the source checkpoint
368
+ * - Validate shuffling using beacon block root and target epoch
369
+ *
370
+ * Here we always validate the source checkpoint, and cache beacon block root + target epoch
371
+ * to avoid running the same shuffling validation multiple times.
372
+ */
373
+ export function getValidateAttestationDataFn(forkChoice, state) {
374
+ const cachedValidatedAttestationData = new Map();
375
+ const { previousJustifiedCheckpoint, currentJustifiedCheckpoint } = state;
376
+ const stateEpoch = state.epochCtx.epoch;
377
+ return (attData) => {
378
+ const targetEpoch = attData.target.epoch;
379
+ let justifiedCheckpoint;
380
+ // simple check first
381
+ if (targetEpoch === stateEpoch) {
382
+ justifiedCheckpoint = currentJustifiedCheckpoint;
383
+ }
384
+ else if (targetEpoch === stateEpoch - 1) {
385
+ justifiedCheckpoint = previousJustifiedCheckpoint;
386
+ }
387
+ else {
388
+ return false;
389
+ }
390
+ if (!ssz.phase0.Checkpoint.equals(attData.source, justifiedCheckpoint))
391
+ return false;
392
+ // Shuffling can't have changed if we're in the first few epochs
393
+ // Also we can't look back 2 epochs if target epoch is 1 or less
394
+ if (stateEpoch < 2 || targetEpoch < 2) {
395
+ return true;
396
+ }
397
+ // the isValidAttestationData does not depend on slot and index
398
+ const beaconBlockRootHex = toHex(attData.beaconBlockRoot);
399
+ const cacheKey = beaconBlockRootHex + targetEpoch;
400
+ let isValid = cachedValidatedAttestationData.get(cacheKey);
401
+ if (isValid === undefined) {
402
+ isValid = isValidShuffling(forkChoice, state, beaconBlockRootHex, targetEpoch);
403
+ cachedValidatedAttestationData.set(cacheKey, isValid);
404
+ }
405
+ return isValid;
406
+ };
407
+ }
408
+ /**
409
+ * A straight forward version to validate attestation data. We don't use it, but keep it here for reference.
313
410
  * - Validate the source checkpoint
314
411
  * - Since we validated attestation's signature in gossip validation function,
315
412
  * we only need to validate the shuffling of attestation
@@ -338,6 +435,10 @@ export function isValidAttestationData(forkChoice, state, data) {
338
435
  if (stateEpoch < 2 || targetEpoch < 2) {
339
436
  return true;
340
437
  }
438
+ const beaconBlockRootHex = toHex(data.beaconBlockRoot);
439
+ return isValidShuffling(forkChoice, state, beaconBlockRootHex, targetEpoch);
440
+ }
441
+ function isValidShuffling(forkChoice, state, blockRootHex, targetEpoch) {
341
442
  // Otherwise the shuffling is determined by the block at the end of the target epoch
342
443
  // minus the shuffling lookahead (usually 2). We call this the "pivot".
343
444
  const pivotSlot = computeStartSlotAtEpoch(targetEpoch - 1) - 1;
@@ -346,7 +447,7 @@ export function isValidAttestationData(forkChoice, state, data) {
346
447
  // pivot block is the same as the current state's pivot block. If it is, then the
347
448
  // attestation's shuffling is the same as the current state's.
348
449
  // To account for skipped slots, find the first block at *or before* the pivot slot.
349
- const beaconBlockRootHex = toHex(data.beaconBlockRoot);
450
+ const beaconBlockRootHex = blockRootHex;
350
451
  const beaconBlock = forkChoice.getBlockHex(beaconBlockRootHex);
351
452
  if (!beaconBlock) {
352
453
  throw Error(`Attestation data.beaconBlockRoot ${beaconBlockRootHex} not found in forkchoice`);
@@ -363,7 +464,4 @@ export function isValidAttestationData(forkChoice, state, data) {
363
464
  }
364
465
  return attestationDependentRoot === stateDependentRoot;
365
466
  }
366
- function flagIsTimelySource(flag) {
367
- return (flag & TIMELY_SOURCE) === TIMELY_SOURCE;
368
- }
369
467
  //# sourceMappingURL=aggregatedAttestationPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ENR } from "@chainsafe/enr";
2
- import { identify } from "@libp2p/identify";
2
+ // TODO: We should use this fork until https://github.com/libp2p/js-libp2p/pull/2387
3
+ import { identify } from "@chainsafe/libp2p-identify";
3
4
  import { bootstrap } from "@libp2p/bootstrap";
4
5
  import { mdns } from "@libp2p/mdns";
5
6
  import { createLibp2p } from "libp2p";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/libp2p/index.ts"],"names":[],"mappings":"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"}
@@ -129,7 +129,7 @@ export class PeerManager {
129
129
  peerData.agentClient = getKnownClientFromAgentVersion(agentVersion);
130
130
  }
131
131
  }, { retries: 3, retryDelay: 1000 }).catch((err) => {
132
- this.logger.error("Error setting agentVersion for the peer", { peerId: peerData.peerId.toString() }, err);
132
+ this.logger.debug("Error setting agentVersion for the peer", { peerId: peerData.peerId.toString() }, err);
133
133
  });
134
134
  };
135
135
  /**
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.16.0-dev.d6a7a3982b",
14
+ "version": "1.16.0-dev.d8b500add9",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -79,28 +79,29 @@
79
79
  "test:unit:minimal": "vitest --run --segfaultRetry 3 --dir test/unit/",
80
80
  "test:unit:mainnet": "LODESTAR_PRESET=mainnet vitest --run --dir test/unit-mainnet",
81
81
  "test:unit": "wrapper() { yarn test:unit:minimal $@ && yarn test:unit:mainnet $@; }; wrapper",
82
- "test:e2e": "LODESTAR_PRESET=minimal vitest --run --segfaultRetry 3 --config vitest.config.e2e.ts --dir test/e2e",
82
+ "test:e2e": "LODESTAR_PRESET=minimal vitest --run --segfaultRetry 3 --config vitest.e2e.config.ts --dir test/e2e",
83
83
  "test:sim": "vitest --run test/sim/**/*.test.ts",
84
84
  "test:sim:merge-interop": "vitest --run test/sim/merge-interop.test.ts",
85
85
  "test:sim:mergemock": "vitest --run test/sim/mergemock.test.ts",
86
86
  "test:sim:withdrawals": "vitest --run test/sim/withdrawal-interop.test.ts",
87
87
  "test:sim:blobs": "vitest --run test/sim/4844-interop.test.ts",
88
88
  "download-spec-tests": "node --loader=ts-node/esm test/spec/downloadTests.ts",
89
- "test:spec:bls": "vitest --run --config vitest.config.spec.ts --dir test/spec/bls/",
90
- "test:spec:general": "vitest --run --config vitest.config.spec.ts --dir test/spec/general/",
91
- "test:spec:minimal": "LODESTAR_PRESET=minimal vitest --run --config vitest.config.spec.ts --dir test/spec/presets/",
92
- "test:spec:mainnet": "LODESTAR_PRESET=mainnet vitest --run --config vitest.config.spec.ts --dir test/spec/presets/",
89
+ "test:spec:bls": "vitest --run --config vitest.spec.config.ts --dir test/spec/bls/",
90
+ "test:spec:general": "vitest --run --config vitest.spec.config.ts --dir test/spec/general/",
91
+ "test:spec:minimal": "LODESTAR_PRESET=minimal vitest --run --config vitest.spec.config.ts --dir test/spec/presets/",
92
+ "test:spec:mainnet": "LODESTAR_PRESET=mainnet vitest --run --config vitest.spec.config.ts --dir test/spec/presets/",
93
93
  "test:spec": "yarn test:spec:bls && yarn test:spec:general && yarn test:spec:minimal && yarn test:spec:mainnet",
94
94
  "check-readme": "typescript-docs-verifier"
95
95
  },
96
96
  "dependencies": {
97
97
  "@chainsafe/as-chacha20poly1305": "^0.1.0",
98
- "@chainsafe/as-sha256": "^0.3.1",
98
+ "@chainsafe/as-sha256": "^0.4.1",
99
99
  "@chainsafe/bls": "7.1.1",
100
100
  "@chainsafe/blst": "^0.2.9",
101
- "@chainsafe/discv5": "^7.1.0",
102
- "@chainsafe/enr": "^2.0.2",
103
- "@chainsafe/libp2p-gossipsub": "^11.1.0",
101
+ "@chainsafe/discv5": "^9.0.0",
102
+ "@chainsafe/enr": "^3.0.0",
103
+ "@chainsafe/libp2p-gossipsub": "^11.2.0",
104
+ "@chainsafe/libp2p-identify": "^1.0.0",
104
105
  "@chainsafe/libp2p-noise": "^14.1.0",
105
106
  "@chainsafe/persistent-merkle-tree": "^0.6.1",
106
107
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
@@ -120,18 +121,18 @@
120
121
  "@libp2p/peer-id-factory": "^4.0.3",
121
122
  "@libp2p/prometheus-metrics": "^3.0.10",
122
123
  "@libp2p/tcp": "9.0.10",
123
- "@lodestar/api": "1.16.0-dev.d6a7a3982b",
124
- "@lodestar/config": "1.16.0-dev.d6a7a3982b",
125
- "@lodestar/db": "1.16.0-dev.d6a7a3982b",
126
- "@lodestar/fork-choice": "1.16.0-dev.d6a7a3982b",
127
- "@lodestar/light-client": "1.16.0-dev.d6a7a3982b",
128
- "@lodestar/logger": "1.16.0-dev.d6a7a3982b",
129
- "@lodestar/params": "1.16.0-dev.d6a7a3982b",
130
- "@lodestar/reqresp": "1.16.0-dev.d6a7a3982b",
131
- "@lodestar/state-transition": "1.16.0-dev.d6a7a3982b",
132
- "@lodestar/types": "1.16.0-dev.d6a7a3982b",
133
- "@lodestar/utils": "1.16.0-dev.d6a7a3982b",
134
- "@lodestar/validator": "1.16.0-dev.d6a7a3982b",
124
+ "@lodestar/api": "1.16.0-dev.d8b500add9",
125
+ "@lodestar/config": "1.16.0-dev.d8b500add9",
126
+ "@lodestar/db": "1.16.0-dev.d8b500add9",
127
+ "@lodestar/fork-choice": "1.16.0-dev.d8b500add9",
128
+ "@lodestar/light-client": "1.16.0-dev.d8b500add9",
129
+ "@lodestar/logger": "1.16.0-dev.d8b500add9",
130
+ "@lodestar/params": "1.16.0-dev.d8b500add9",
131
+ "@lodestar/reqresp": "1.16.0-dev.d8b500add9",
132
+ "@lodestar/state-transition": "1.16.0-dev.d8b500add9",
133
+ "@lodestar/types": "1.16.0-dev.d8b500add9",
134
+ "@lodestar/utils": "1.16.0-dev.d8b500add9",
135
+ "@lodestar/validator": "1.16.0-dev.d8b500add9",
135
136
  "@multiformats/multiaddr": "^12.1.3",
136
137
  "@types/datastore-level": "^3.0.0",
137
138
  "buffer-xor": "^2.0.2",
@@ -153,7 +154,7 @@
153
154
  "systeminformation": "^5.17.12",
154
155
  "uint8-varint": "^2.0.2",
155
156
  "uint8arraylist": "^2.4.7",
156
- "uint8arrays": "^4.0.9",
157
+ "uint8arrays": "^5.0.1",
157
158
  "xxhash-wasm": "1.0.2"
158
159
  },
159
160
  "devDependencies": {
@@ -176,5 +177,5 @@
176
177
  "beacon",
177
178
  "blockchain"
178
179
  ],
179
- "gitHead": "807422dde0a8b6e0d7fa6db72fe5c314ddec2418"
180
+ "gitHead": "4756882d8a4b10b1f22d5f75d5a148a329f02d0e"
180
181
  }