niceeval 0.13.4-canary.48 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INDEX.md +3 -3
- package/dist/experiment/host/operations.cjs +58 -0
- package/dist/experiment/host/operations.cjs.map +1 -1
- package/dist/inspection/overview.cjs +20 -9
- package/dist/inspection/overview.cjs.map +1 -1
- package/dist/inspection/overview.d.cts +5 -0
- package/dist/inspection/overview.d.mts +5 -0
- package/dist/inspection/overview.d.ts +5 -0
- package/dist/inspection/protocol.d.cts +238 -0
- package/dist/inspection/protocol.d.mts +238 -0
- package/dist/inspection/protocol.d.ts +238 -0
- package/dist/inspection/public.mjs +43 -19
- package/dist/inspection/results.cjs +11 -10
- package/dist/inspection/results.cjs.map +1 -1
- package/dist/inspection/results.d.cts +34 -0
- package/dist/inspection/results.d.mts +34 -0
- package/dist/inspection/results.d.ts +34 -0
- package/dist/record/attachment/protocol.cjs +10 -5
- package/dist/record/attachment/protocol.cjs.map +1 -1
- package/dist/record/attachment/protocol.d.cts +4 -0
- package/dist/record/attachment/protocol.d.mts +4 -0
- package/dist/record/attachment/protocol.d.ts +4 -0
- package/dist/record/family/source-receipt/index.cjs +16 -3
- package/dist/record/family/source-receipt/index.cjs.map +1 -1
- package/dist/record/family/source-receipt/index.d.cts +1 -0
- package/dist/record/family/source-receipt/index.d.mts +1 -0
- package/dist/record/family/source-receipt/index.d.ts +1 -0
- package/dist/record/family/source-receipt/index.js +2 -0
- package/dist/record/host/sqlite-host.cjs +3 -0
- package/dist/record/host/sqlite-host.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +3 -1
- package/dist/record/host/types.d.mts +3 -1
- package/dist/record/host/types.d.ts +3 -1
- package/dist/record/sqlite/storage.cjs +11 -8
- package/dist/record/sqlite/storage.cjs.map +1 -1
- package/dist/record/writer/current-attachment.cjs +18 -13
- package/dist/record/writer/current-attachment.cjs.map +1 -1
- package/dist/record/writer/errors.cjs +6 -1
- package/dist/record/writer/errors.cjs.map +1 -1
- package/dist/record/writer/errors.d.cts +7 -1
- package/dist/record/writer/errors.d.mts +7 -1
- package/dist/record/writer/errors.d.ts +7 -1
- package/dist/runner/adoption.cjs +1 -1
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/reuse-plan.cjs +1 -1
- package/dist/runner/reuse-plan.cjs.map +1 -1
- package/dist/runner/source-receipts/support.cjs +2 -1
- package/dist/runner/source-receipts/support.cjs.map +1 -1
- package/dist/runner/source-receipts/support.d.cts +1 -1
- package/dist/runner/source-receipts/support.d.mts +1 -1
- package/dist/runner/source-receipts/support.d.ts +1 -1
- package/dist/show/contribution.cjs +11 -2
- package/dist/show/contribution.cjs.map +1 -1
- package/dist/show/contribution.d.cts +7 -0
- package/dist/show/contribution.d.mts +7 -0
- package/dist/show/contribution.d.ts +7 -0
- package/dist/show/model.cjs +1 -0
- package/dist/show/model.cjs.map +1 -1
- package/dist/show/model.d.cts +2 -0
- package/dist/show/model.d.mts +2 -0
- package/dist/show/model.d.ts +2 -0
- package/dist/show/render.cjs +149 -81
- package/dist/show/render.cjs.map +1 -1
- package/dist/show/render.d.cts +3 -1
- package/dist/show/render.d.mts +3 -1
- package/dist/show/render.d.ts +3 -1
- package/dist/view/app-dist/.vite/manifest.json +18 -18
- package/dist/view/app-dist/assets/{AttemptDialog-DKEWcS7m.js → AttemptDialog-76dX1VQq.js} +1 -1
- package/dist/view/app-dist/assets/{AttemptRoute-DUs5kic4.js → AttemptRoute-DRHVh2JA.js} +1 -1
- package/dist/view/app-dist/assets/{ResultsPage-VlExJ6F0.js → ResultsPage-9CSI8dvZ.js} +2 -2
- package/dist/view/app-dist/assets/{RunPage-B9Bagswz.js → RunPage-BUF0REv7.js} +1 -1
- package/dist/view/app-dist/assets/{TableContentView-ZL9elUsA.js → TableContentView-_Sbg5wDr.js} +1 -1
- package/dist/view/app-dist/assets/index-BGr_6pGY.js +19 -0
- package/dist/view/app-dist/assets/{quality-cost-scatter-BqIAORD4.js → quality-cost-scatter-B5wDa_F1.js} +1 -1
- package/dist/view/app-dist/assets/useSuspenseQuery-D3W8Uy33.js +1 -0
- package/dist/view/app-dist/index.html +1 -1
- package/dist/view/function-runtime.mjs +68 -29
- package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
- package/docs-site/zh/examples/index.mdx +1 -3
- package/docs-site/zh/explanation/evals.mdx +1 -1
- package/docs-site/zh/explanation/experiment.mdx +3 -1
- package/docs-site/zh/explanation/overview.mdx +6 -4
- package/docs-site/zh/explanation/record.mdx +9 -5
- package/docs-site/zh/explanation/runner.mdx +3 -3
- package/docs-site/zh/index.mdx +4 -8
- package/docs-site/zh/introduction.mdx +2 -2
- package/docs-site/zh/reference/cli.mdx +8 -7
- package/docs-site/zh/troubleshooting/debug-sandbox.mdx +5 -5
- package/docs-site/zh/troubleshooting/debugging.mdx +8 -8
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -55
- package/docs-site/zh/tutorials/accept-results.mdx +4 -4
- package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
- package/docs-site/zh/tutorials/authoring.mdx +1 -1
- package/docs-site/zh/tutorials/compare-runs.mdx +3 -3
- package/docs-site/zh/tutorials/concurrency.mdx +6 -6
- package/docs-site/zh/tutorials/connect-your-agent.mdx +2 -2
- package/docs-site/zh/tutorials/docker-in-docker.mdx +1 -1
- package/docs-site/zh/tutorials/experiments.mdx +1 -1
- package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +1 -1
- package/docs-site/zh/tutorials/quickstart.mdx +2 -2
- package/docs-site/zh/tutorials/reporters.mdx +3 -3
- package/docs-site/zh/tutorials/sandbox-agent.mdx +2 -2
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +3 -3
- package/docs-site/zh/tutorials/viewing-results.mdx +10 -11
- package/package.json +1 -1
- package/dist/view/app-dist/assets/index-C1E4NkG0.js +0 -19
- package/dist/view/app-dist/assets/useSuspenseQuery-BlFuYKyI.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-host.js","sourceRoot":"","sources":["sqlite-host.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { Effect, Result, Exit, Option, Queue, Schema, Semaphore, Stream } from \"effect\";\nimport { encodeAttemptLocator } from \"../../attempt-locator.ts\";\nimport { RecordCoordination, type RecordCoordinationService } from \"../../coordination/record-leases.ts\";\nimport { makeRecordAttachmentCatalog, type AnyRecordAttachmentPersistence, type RecordAttachmentCatalog, type RecordAttachmentDefinition, type RecordAttachmentPersistence } from \"../attachment/index.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, isRecordAttachmentSchema, mintRecordAttachmentReference, recordAttachmentReferenceWire, resolveRecordAttachmentDefinition, RecordAttachmentReference } from \"../attachment/protocol.ts\";\nimport { isRecordTextContentHandle, mintRecordContentHandle, type RecordContentHandle, type RecordTextContentHandle } from \"../attachment/content.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, Sha256DigestSchema } from \"../codec/identifiers.ts\";\nimport { decodeAttemptDocument, decodeMemberDocument, decodeRecordDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRunDocument } from \"../codec/index.ts\";\nimport { canonicalizeRecordJson } from \"../definition/canonical.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport { NiceEvalRecordAttachmentPersistences } from \"../family/catalog.ts\";\nimport { attemptRecordAppendCommandRuntime, attemptRecordCollectionRuntime, recordContributionFromAttachmentPersistence, recordContributionRuntime, recordDefinitionAttachment, recordWriteCommandPayload, type AttemptRecordAppendCommand, type AttemptRecordCollectionDefinition, type AttemptRecordCollectionLimitation, type AttemptRecordCollectionRuntime, type RecordContribution, type RecordWriteCommand } from \"../authoring.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordDocument, RecordSlotIdentity, RunDocument } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext } from \"../model/run-context.ts\";\nimport { RECORD_FORMAT, compareCanonicalIdentity, type AttemptId, type RunId, type Sha256Digest, type SlotId } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RecordResourceLimitExceeded } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, type RecordEntropyService } from \"../platform/services.ts\";\nimport { FamilyDefinitionRequired, RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordIntegrityFailure, RecordMigrationPlanStale, RecordReaderClosed, RecordSealIncomplete, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError } from \"../reader/errors.ts\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns } from \"../maintenance/index.ts\";\nimport { ProjectStateDatabase, RECORD_SQLITE_CHUNK_BYTES, RECORD_SQLITE_MAX_PAGE_ROWS, RECORD_SQLITE_MAX_PUBLISH_BYTES, RECORD_SQLITE_MAX_PUBLISH_ROWS, RECORD_SQLITE_MAX_ROW_BYTES, SqliteRecordError, inspectProjectRecordDatabase, recordSqlitePath, type FinalizedAttachmentMetadata, type PersistedAttachmentReference, type PersistedCollectionItem, type PersistedContentChunk, type PersistedContentMetadata, type ProjectRecordDatabaseInspection, type SealedAttachmentMetadata, type SealedRunCore, type StorageWorkerClient } from \"../sqlite/index.ts\";\nimport { attachmentId, attachmentLogicalIdentity, collectionItemLogicalIdentity, compareCanonicalCodeUnits, contentId, hashCanonicalTuple } from \"../sqlite/seal.ts\";\nimport { prepareStreamingRecordAttachment, type AttachedContentError, type AttachedContentRequirements, type PreparedStreamingRecordAttachment, type RecordAttachmentSessionBuilder } from \"../writer/current-attachment.ts\";\nimport { recordAlreadyWritten, recordAppendCommandInvalid, recordAttachmentEncodeError, recordCollectionDefinitionInvalid, recordCollectionNotClosed, recordDraftStateError, recordOwnerDefinitionMismatch, recordWriterClosed } from \"../writer/errors.ts\";\nimport { encodeRecordJsonUtf8, RECORD_JSON_MAXIMUM_BYTES } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { AttemptRecordsWriter, AttemptWriteSession, CreateRunRequest, OwnerRecordsWriter, ReadableAttempt, ReadableRun, RecordAttachmentContentReader, RecordAttachmentRead, RecordCleanOperationPlan, RecordCleanOperationReceipt, RecordCompleteView, RecordHostSDK, RecordMaintenanceOperationFailure, RecordMaintenanceSession, RecordMigrateOperationPlan, RecordMigrateOperationReceipt, RecordMigrationPlan, RecordReadSession, RecordSealReceipt, RecordSelection, RecordSelectionProblem, RecordSelectionRequest, ReferenceRunWriteSession, RunCompletion, RunWriteSession, SelectedAttemptRef, SelectedOwnerRef, SelectedRunFacts, SelectedRunRef } from \"./types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand } from \"./types.ts\";\ntype AnyDefinition<Owner extends RecordAttachmentOwner = RecordAttachmentOwner> = RecordAttachmentDefinition<Owner, string, Schema.Top>;\ntype AnyPersistence = RecordAttachmentPersistence<AnyDefinition, number>;\nconst WRITE_DEADLINE_MS = 30000;\nconst MAILBOX_COMMANDS = 64;\nconst COLLECTION_READ_MAX_ROWS = 10000;\nconst WHOLE_VALUE_MAX_BYTES = 16 * 1024 * 1024;\nconst CONTENT_BATCH_CHUNKS = Math.min(4, Math.max(1, Math.floor(RECORD_SQLITE_MAX_PUBLISH_BYTES / RECORD_SQLITE_CHUNK_BYTES)));\nconst CONTENT_READ_PAGE_ROWS = Math.min(4, RECORD_SQLITE_MAX_PAGE_ROWS);\nconst canonicalLimits = Object.freeze({ maximumJsonBytes: RECORD_JSON_MAXIMUM_BYTES, maximumDepth: 64, maximumNodes: 100000, maximumObjectKeys: 10000, maximumArrayItems: 100000, maximumKeyUtf8Bytes: 16384, maximumStringUtf8Bytes: 1048576 });\nfunction digest(bytes: Uint8Array): Sha256Digest {\n const value = createHash(\"sha256\").update(bytes).digest(\"hex\");\n const decoded = Schema.decodeUnknownResult(Sha256DigestSchema)(value);\n if (Result.isFailure(decoded))\n throw new Error(\"invalid SHA-256\");\n return decoded.success;\n}\nfunction canonicalBytes(value: unknown): Uint8Array | undefined {\n const canonical = canonicalizeRecordJson(value, canonicalLimits);\n return Result.isFailure(canonical) ? undefined : encodeRecordJsonUtf8(canonical.success);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction invalidIssues(path: readonly string[] = []): NonEmptyRecordIssues { return nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\", path)])!; }\nfunction coreInvalid(): RecordCoreInvalid { return new RecordCoreInvalid({ code: \"record-core-invalid\", issues: invalidIssues([\"core\"]) }); }\nfunction deadline(): number { return Date.now() + WRITE_DEADLINE_MS; }\nfunction storageRoot(root: RecordRoot): string | undefined { return recordRootPaths(root)?.portableRoot; }\nfunction sameRoot(a: RecordRoot, b: RecordRoot): boolean { return storageRoot(a) !== undefined && storageRoot(a) === storageRoot(b); }\nfunction sqliteEffect<A>(operation: () => Promise<A>): Effect.Effect<A, SqliteRecordError> {\n return Effect.tryPromise({ try: operation, catch: (cause) => cause instanceof SqliteRecordError ? cause : new SqliteRecordError(\"record-sqlite-error\", \"record-host\", \"storage worker failed\", { cause }) });\n}\nfunction withWriteAdmission<A>(coordination: RecordCoordinationService, root: RecordRoot, operation: (deadlineEpochMs: number) => Promise<A>): Effect.Effect<A, RecordWriteError> {\n const deadlineEpochMs = deadline();\n return Effect.uninterruptibleMask((restore) => Effect.scoped(Effect.gen(function* () {\n yield* restore(coordination.enterRecordWriteBatch({\n root,\n deadlineEpochMs,\n }));\n // The storage worker owns the synchronous SQLite transaction. Once it has\n // admission, interruption waits for its Promise to settle so the scope\n // cannot release the writer owner before COMMIT or ROLLBACK.\n return yield* sqliteEffect(() => operation(deadlineEpochMs));\n })));\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor?.enumerable && \"value\" in descriptor ? descriptor.value : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean { return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.prototype.hasOwnProperty.call(value, key); }\ninterface StoredAttachment {\n readonly metadata: FinalizedAttachmentMetadata;\n readonly ownerKind: RecordAttachmentOwner;\n readonly ownerAttemptId?: AttemptId;\n readonly family: string;\n readonly revision: number;\n}\ninterface CollectionState {\n readonly authoring: AttemptRecordCollectionRuntime;\n readonly attachmentId: string;\n nextOrdinal: number;\n encodedBytes: number;\n readonly itemHash: ReturnType<typeof createHash>;\n completion?: {\n readonly state: \"complete\";\n } | {\n readonly state: \"partial\";\n readonly limitations: readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ];\n };\n}\ninterface AttemptRuntime {\n readonly run: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n outcome?: AttemptDocument[\"outcome\"];\n readonly families: Set<string>;\n readonly collections: Map<string, CollectionState>;\n pendingAppends: number;\n readonly appendAcks: Queue.Queue<void>;\n handle?: AttemptWriteSession;\n}\ninterface AppendCommand {\n readonly attempt: AttemptRuntime;\n readonly attachmentId: string;\n readonly bytes: number;\n readonly item: PersistedCollectionItem;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly coordination: RecordCoordinationService;\n readonly entropy: RecordEntropyService;\n readonly catalog: RecordAttachmentCatalog;\n readonly record: RecordDocument;\n readonly writerGeneration: string;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly lock: Semaphore.Semaphore;\n readonly queue: Queue.Queue<AppendCommand>;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly members: Map<SlotId, MemberDocument>;\n readonly reservations: Set<SlotId>;\n readonly families: Set<string>;\n readonly attachments: Map<string, StoredAttachment>;\n state: \"open\" | \"sealing\" | \"sealed\" | \"failed\";\n failure?: RecordWriteError;\n handle?: object;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ntype OwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly catalog: RecordAttachmentCatalog;\n readonly lifecycle: ReaderLifecycle;\n readonly runs: WeakMap<SelectedRunRef, RunId>;\n readonly attempts: WeakMap<SelectedAttemptRef, {\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n }>;\n readonly owners: WeakMap<SelectedOwnerRef, OwnerRuntime>;\n readonly selections: WeakSet<RecordSelection>;\n readonly coreCache: Map<RunId, SealedRunCore>;\n readonly runRefs: Map<RunId, SelectedRunRef>;\n readonly attemptRefs: Map<string, SelectedAttemptRef>;\n readonly content: WeakMap<RecordContentHandle, {\n readonly contentId: string;\n readonly logicalHandle: string;\n readonly byteLength: number;\n readonly digest: string;\n readonly chunkCount: number;\n }>;\n}\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<object, AttemptRuntime>();\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}>();\nexport function writerGenerationForRunSession(session: RunWriteSession | ReferenceRunWriteSession): string | undefined {\n return runSessions.get(session)?.writerGeneration;\n}\nexport function discardAttemptWriteSession(session: AttemptWriteSession): Effect.Effect<void, RecordWriteError> {\n const attempt = attemptSessions.get(session);\n if (attempt === undefined)\n return Effect.fail(recordWriterClosed());\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"failed\";\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.discardAttempt({\n runId: attempt.run.runId,\n writerGeneration: attempt.run.writerGeneration,\n attemptId: attempt.attemptId,\n deadlineEpochMs,\n }));\n attempt.run.attempts.delete(attempt.attemptId);\n attempt.run.reservations.delete(attempt.slotId);\n for (const [attachmentId, attachment] of attempt.run.attachments) {\n if (attachment.ownerKind === \"attempt\" && attachment.ownerAttemptId === attempt.attemptId) {\n attempt.run.attachments.delete(attachmentId);\n }\n }\n attemptSessions.delete(session);\n }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(attempt.run, error))));\n}\nfunction attachmentIdentity(owner: OwnerRuntime, family: string): string {\n return attachmentId({ runId: owner.runId, owner: owner.kind, ...(owner.kind === \"attempt\" ? { attemptId: owner.attemptId } : {}), family });\n}\nfunction contentIdentity(attachmentId: string, logicalHandle: string): string {\n return contentId(attachmentId, logicalHandle);\n}\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n if (left.byteLength !== right.byteLength)\n return false;\n for (let index = 0; index < left.byteLength; index += 1)\n if (left[index] !== right[index])\n return false;\n return true;\n}\nfunction attachmentMetadata(input: {\n readonly attachmentId: string;\n readonly payloadBytes: Uint8Array;\n readonly references: readonly PersistedAttachmentReference[];\n readonly contents: readonly PersistedContentMetadata[];\n readonly collection?: {\n readonly count: number;\n readonly byteLength: number;\n readonly digest: string;\n };\n}): FinalizedAttachmentMetadata {\n const canonicalDigest = digest(input.payloadBytes);\n const inventoryBytes = canonicalBytes({ references: input.references.map(({ ordinal, owner, family, referenceDigest }) => ({ ordinal, owner, family, digest: referenceDigest })), contents: input.contents, ...(input.collection === undefined ? {} : { collection: input.collection }) });\n if (inventoryBytes === undefined)\n throw new Error(\"invalid attachment inventory\");\n const inventoryDigest = digest(inventoryBytes);\n return Object.freeze({ attachmentId: input.attachmentId, logicalIdentity: attachmentLogicalIdentity(input.attachmentId, canonicalDigest, inventoryDigest), canonicalBytes: input.payloadBytes, canonicalDigest, logicalInventoryBytes: inventoryBytes, inventoryDigest, contents: Object.freeze([...input.contents]) });\n}\nfunction resolvePersistence(catalog: RecordAttachmentCatalog, definition: unknown, owner: RecordAttachmentOwner): Result.Result<AnyPersistence, RecordWriteError> {\n const attachment = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (attachment === undefined)\n return Result.fail(recordCollectionDefinitionInvalid());\n if (attachment.owner !== owner)\n return Result.fail(recordOwnerDefinitionMismatch({ expected: owner, actual: attachment.owner }));\n const persistence = catalog.persistence(attachment);\n return persistence === undefined ? Result.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner, family: attachment.family, revision: 1 })) : Result.succeed(persistence as AnyPersistence);\n}\nfunction poison(run: RunRuntime, error: RecordWriteError): void { if (run.failure === undefined)\n run.failure = error; run.state = \"failed\"; }\nfunction assertRunOpen(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n if (run.failure !== undefined)\n return Effect.fail(run.failure);\n return run.state === \"open\" ? Effect.void : Effect.fail(recordDraftStateError({ code: \"record-draft-state-invalid\", operation: \"record\", state: run.state === \"sealed\" ? \"published\" : run.state === \"failed\" ? \"failed\" : \"publishing\" }));\n}\nfunction makeBatches(commands: readonly AppendCommand[]): readonly (readonly AppendCommand[])[] {\n const result: AppendCommand[][] = [];\n let batch: AppendCommand[] = [];\n let bytes = 0;\n for (const command of commands) {\n if (batch.length > 0 && (command.attachmentId !== batch[0]!.attachmentId || batch.length >= RECORD_SQLITE_MAX_PUBLISH_ROWS || bytes + command.bytes > RECORD_SQLITE_MAX_PUBLISH_BYTES)) {\n result.push(batch);\n batch = [];\n bytes = 0;\n }\n batch.push(command);\n bytes += command.bytes;\n }\n if (batch.length > 0)\n result.push(batch);\n return result;\n}\nfunction collectionWorker(run: RunRuntime): Effect.Effect<never, never> {\n return Effect.forever(Effect.gen(function* () {\n const first = yield* Queue.take(run.queue);\n const tail = yield* Queue.clear(run.queue);\n for (const batch of makeBatches(Object.freeze([first, ...tail]))) {\n const exit = yield* Effect.exit(withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageCollectionItems({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId: batch[0]!.attachmentId, items: Object.freeze(batch.map(({ item }) => item)), deadlineEpochMs })));\n const attempt = batch[0]!.attempt;\n attempt.pendingAppends -= batch.length;\n yield* Queue.offer(attempt.appendAcks, undefined);\n if (Exit.isFailure(exit))\n yield* Effect.sync(() => poison(run, new SqliteRecordError(\"record-sqlite-error\", \"stage-collection-items\", \"collection batch failed\")));\n }\n })).pipe(Effect.catchCause(() => Effect.never));\n}\nfunction snapshotItem(authoring: AttemptRecordCollectionRuntime, item: unknown, ordinal: number): Result.Result<PersistedCollectionItem, RecordWriteError> {\n if (!isRecordAttachmentSchema(authoring.item))\n return Result.fail(recordAppendCommandInvalid());\n const encoded = Schema.encodeUnknownResult(authoring.item)(item);\n if (Result.isFailure(encoded))\n return Result.fail(recordAppendCommandInvalid());\n const bytes = canonicalBytes(encoded.success);\n if (bytes === undefined || bytes.byteLength > RECORD_SQLITE_MAX_ROW_BYTES)\n return Result.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: RECORD_SQLITE_MAX_ROW_BYTES, observedAtLeast: bytes?.byteLength ?? RECORD_SQLITE_MAX_ROW_BYTES + 1, path: authoring.attachment.family }));\n const canonicalDigest = digest(bytes);\n return Result.succeed(Object.freeze({ ordinal, logicalIdentity: collectionItemLogicalIdentity(ordinal, canonicalDigest), canonicalBytes: bytes, canonicalDigest }));\n}\nfunction admitCollection(run: RunRuntime, attempt: AttemptRuntime, authoring: AttemptRecordCollectionRuntime): Effect.Effect<CollectionState, RecordWriteError> {\n const current = attempt.collections.get(authoring.attachment.family);\n if (current !== undefined)\n return Effect.succeed(current);\n const attachmentId = attachmentIdentity({ kind: \"attempt\", runId: run.runId, attemptId: attempt.attemptId }, authoring.attachment.family);\n return Effect.gen(function* () {\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttachment({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId, ownerKind: \"attempt\", ownerRunId: run.runId, ownerAttemptId: attempt.attemptId, family: authoring.attachment.family, familyRevision: authoring.persistence.revision, deadlineEpochMs }));\n const state: CollectionState = { authoring, attachmentId, nextOrdinal: 0, encodedBytes: 0, itemHash: createHash(\"sha256\") };\n attempt.collections.set(authoring.attachment.family, state);\n attempt.families.add(authoring.attachment.family);\n return state;\n });\n}\nfunction appendCollectionBatch(attempt: AttemptRuntime, definition: unknown, items: readonly unknown[]): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n const run = attempt.run;\n return Effect.uninterruptibleMask(() => run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n const commands: AppendCommand[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const frozen = snapshotItem(authoring, items[index], collection.nextOrdinal + index);\n if (Result.isFailure(frozen))\n return yield* Effect.fail(frozen.failure);\n commands.push(Object.freeze({ attempt, attachmentId: collection.attachmentId, bytes: frozen.success.canonicalBytes.byteLength, item: frozen.success }));\n }\n attempt.pendingAppends += commands.length;\n // One bounded batch is offered atomically with respect to interruption;\n // the worker can always drain it without acquiring this lock.\n yield* Queue.offerAll(run.queue, commands);\n for (const command of commands) {\n collection.nextOrdinal += 1;\n collection.encodedBytes += command.bytes;\n collection.itemHash.update(command.item.canonicalBytes).update(\"\\n\");\n }\n return Object.freeze({ state: \"retained\" as const });\n })));\n}\nfunction appendCollection(attempt: AttemptRuntime, definition: unknown, item: unknown): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n return appendCollectionBatch(attempt, definition, [item]);\n}\nfunction closeCollection(attempt: AttemptRuntime, definition: unknown, completion: CollectionState[\"completion\"]): Effect.Effect<void, RecordWriteError> {\n return attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined || completion === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(attempt.run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n collection.completion = completion.state === \"complete\" ? Object.freeze({ state: \"complete\" as const }) : Object.freeze({ state: \"partial\" as const, limitations: Object.freeze(completion.limitations.map((value) => Object.freeze({ ...value }))) as readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ] });\n }));\n}\nfunction processContent<Error, Requirements>(input: {\n readonly run: RunRuntime;\n readonly attachmentId: string;\n readonly source: PreparedStreamingRecordAttachment<Error, Requirements>[\"contents\"][number];\n}): Effect.Effect<PersistedContentMetadata, RecordWriteError | Error, Requirements> {\n const contentId = contentIdentity(input.attachmentId, input.source.logicalHandle);\n return Effect.gen(function* () {\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitContent({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId: input.attachmentId, contentId, logicalHandle: input.source.logicalHandle, deadlineEpochMs }));\n const overall = createHash(\"sha256\");\n let ordinal = 0;\n let byteLength = 0;\n const available: Uint8Array[] = [];\n const takePending = (): Uint8Array => available.pop() ?? new Uint8Array(RECORD_SQLITE_CHUNK_BYTES);\n let pending = takePending();\n let pendingLength = 0;\n let batch: PersistedContentChunk[] = [];\n let batchBytes = 0;\n const flushBatch = (): Effect.Effect<void, RecordWriteError> => {\n if (batch.length === 0)\n return Effect.void;\n const frozen = Object.freeze(batch);\n batch = [];\n batchBytes = 0;\n return withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.appendContentChunks({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, contentId, chunks: frozen, deadlineEpochMs }))\n .pipe(Effect.map((returned) => { for (const value of returned)\n available.push(value); }));\n };\n const emit = (frozen: Uint8Array): Effect.Effect<void, RecordWriteError> => Effect.gen(function* () {\n overall.update(frozen);\n byteLength += frozen.byteLength;\n if (input.source.maximumBytes !== undefined && byteLength > input.source.maximumBytes)\n return yield* Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: input.source.maximumBytes, observedAtLeast: byteLength, path: input.source.logicalHandle }));\n batch.push(Object.freeze({ ordinal: ordinal++, bytes: frozen, chunkDigest: digest(frozen) }));\n batchBytes += frozen.byteLength;\n if (batch.length >= CONTENT_BATCH_CHUNKS || batchBytes >= RECORD_SQLITE_MAX_PUBLISH_BYTES)\n yield* flushBatch();\n });\n yield* Stream.runForEach(input.source.stream, (incoming) => Effect.gen(function* () {\n if (!(incoming instanceof Uint8Array))\n return yield* Effect.fail(recordAppendCommandInvalid());\n let offset = 0;\n while (offset < incoming.byteLength) {\n const take = Math.min(RECORD_SQLITE_CHUNK_BYTES - pendingLength, incoming.byteLength - offset);\n pending.set(incoming.subarray(offset, offset + take), pendingLength);\n pendingLength += take;\n offset += take;\n if (pendingLength === RECORD_SQLITE_CHUNK_BYTES) {\n yield* emit(pending);\n pending = takePending();\n pendingLength = 0;\n }\n }\n }));\n // A full pending buffer is uniquely owned here and can be transferred\n // directly. Only the final partial chunk needs an exact-size copy.\n if (pendingLength > 0)\n yield* emit(pending.slice(0, pendingLength));\n yield* flushBatch();\n return Object.freeze({ contentId, logicalHandle: input.source.logicalHandle, byteLength, digest: overall.digest(\"hex\"), chunkCount: ordinal });\n });\n}\nfunction writeAttachment<Owner extends RecordAttachmentOwner, Value>(input: {\n readonly run: RunRuntime;\n readonly owner: Owner;\n readonly attempt?: AttemptRuntime;\n readonly persistence: AnyPersistence;\n readonly value: Value | ((builder: RecordAttachmentSessionBuilder) => Value);\n}): Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>> {\n const targetFamilies = input.attempt?.families ?? input.run.families;\n const family = input.persistence.attachment.family;\n const ownerRuntime: OwnerRuntime = input.owner === \"run\" ? { kind: \"run\", runId: input.run.runId } : { kind: \"attempt\", runId: input.run.runId, attemptId: input.attempt!.attemptId };\n return Effect.gen(function* () {\n yield* input.run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(input.run); if (input.attempt !== undefined && input.attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed()); if (targetFamilies.has(family))\n return yield* Effect.fail(recordAlreadyWritten({ owner: input.owner, family })); targetFamilies.add(family); }));\n const prepared = yield* prepareStreamingRecordAttachment({ definition: input.persistence.attachment, value: input.value as never });\n const attachmentId = attachmentIdentity(ownerRuntime, family);\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitAttachment({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, ownerKind: input.owner, ownerRunId: input.run.runId, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, familyRevision: input.persistence.revision, deadlineEpochMs }));\n const contents = yield* Effect.forEach(prepared.contents, (source) => processContent({ run: input.run, attachmentId, source }), { concurrency: 1 });\n const references: PersistedAttachmentReference[] = prepared.references.map((reference, ordinal) => { const bytes = canonicalBytes(reference); if (bytes === undefined)\n throw new Error(\"invalid reference\"); return Object.freeze({ ordinal, owner: reference.owner, family: reference.family, canonicalBytes: bytes, referenceDigest: digest(bytes) }); });\n for (let offset = 0; offset < references.length; offset += RECORD_SQLITE_MAX_PUBLISH_ROWS) {\n const refs = Object.freeze(references.slice(offset, offset + RECORD_SQLITE_MAX_PUBLISH_ROWS));\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.stageAttachmentReferences({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, references: refs, deadlineEpochMs }));\n }\n const metadata = attachmentMetadata({ attachmentId, payloadBytes: prepared.payloadBytes, references, contents });\n input.run.attachments.set(attachmentId, Object.freeze({ metadata, ownerKind: input.owner, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, revision: input.persistence.revision }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(input.run, error as RecordWriteError)))) as Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>>;\n}\nfunction finishCollections(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n for (const collection of attempt.collections.values())\n if (collection.completion === undefined)\n return yield* Effect.fail(recordCollectionNotClosed(collection.authoring.attachment.family));\n while (attempt.pendingAppends > 0)\n yield* Queue.take(attempt.appendAcks);\n if (attempt.run.failure !== undefined)\n return yield* Effect.fail(attempt.run.failure);\n for (const collection of attempt.collections.values()) {\n const completion = collection.completion!;\n const shell = { collection: completion.state === \"complete\" ? { state: \"complete\" as const, limitations: [] as const } : { state: \"partial\" as const, limitations: completion.limitations }, items: [] as const };\n if (!isRecordAttachmentSchema(collection.authoring.attachment.schema))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const encoded = Schema.encodeUnknownResult(collection.authoring.attachment.schema)(shell);\n if (Result.isFailure(encoded))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const payloadBytes = canonicalBytes(encoded.success);\n if (payloadBytes === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const metadata = attachmentMetadata({ attachmentId: collection.attachmentId, payloadBytes, references: [], contents: [], collection: { count: collection.nextOrdinal, byteLength: collection.encodedBytes, digest: collection.itemHash.digest(\"hex\") } });\n attempt.run.attachments.set(collection.attachmentId, Object.freeze({ metadata, ownerKind: \"attempt\", ownerAttemptId: attempt.attemptId, family: collection.authoring.attachment.family, revision: collection.authoring.persistence.revision }));\n }\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"completing\";\n const unclosed = [...attempt.collections.values()].find(({ completion }) => completion === undefined);\n if (unclosed !== undefined) {\n attempt.state = \"failed\";\n return yield* Effect.fail(recordCollectionNotClosed(unclosed.authoring.attachment.family));\n }\n }));\n yield* finishCollections(attempt);\n const slot = attempt.run.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n attempt.outcome = outcome;\n attempt.run.members.set(attempt.slotId, Object.freeze({ slotId: attempt.slotId, action: \"executed\", attempt: Object.freeze({ originRunId: attempt.run.runId, attemptId: attempt.attemptId }) }));\n attempt.state = \"completed\";\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle);\n const metadata = buildRunMetadata(attempt.run, Date.now() as RunDocument[\"completedAt\"]);\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.stageRunPublicationMetadata({ ...metadata, deadlineEpochMs }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => { attempt.state = \"failed\"; poison(attempt.run, error); })));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(attempt.run.catalog, definition, \"attempt\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run: attempt.run, owner: \"attempt\", attempt, persistence: persistence.success, value }); };\n const record = Object.freeze({\n write<Value, Error, Requirements>(command: RecordWriteCommand<\"attempt\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"attempt\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); },\n start(definition: AttemptRecordCollectionDefinition<string, Schema.Top>) { const authoring = attemptRecordCollectionRuntime(definition); return authoring === undefined ? Effect.fail(recordCollectionDefinitionInvalid()) : admitCollection(attempt.run, attempt, authoring).pipe(Effect.asVoid); },\n append<Item>(command: AttemptRecordAppendCommand<Item>) { const runtime = attemptRecordAppendCommandRuntime(command); return runtime === undefined ? Effect.fail(recordAppendCommandInvalid()) : appendCollection(attempt, runtime.definition, runtime.item); },\n }) as AttemptWriteSession[\"record\"];\n const append: AttemptRecordsWriter[\"append\"] = (definition, item) => appendCollection(attempt, definition, item);\n const appendAll: AttemptRecordsWriter[\"appendAll\"] = <Definition extends AttemptRecordCollectionDefinition<string, Schema.Top>, Error, Requirements>(definition: Definition, items: Stream.Stream<Schema.Schema.Type<Definition[\"item\"]>, Error, Requirements>) => items.pipe(Stream.grouped(MAILBOX_COMMANDS), Stream.runForEach((group) => appendCollectionBatch(attempt, definition, group).pipe(Effect.asVoid)));\n const close: AttemptRecordsWriter[\"close\"] = (definition, completion) => closeCollection(attempt, definition, completion);\n const records: AttemptRecordsWriter = Object.freeze({ write: writeDefinition as AttemptRecordsWriter[\"write\"], append, appendAll, close });\n const session: AttemptWriteSession = Object.freeze({ attemptId: attempt.attemptId, slotId: attempt.slotId, [attemptWriteSessionBrand]: () => undefined, complete: (outcome: AttemptDocument[\"outcome\"]) => attemptSessions.get(session) === attempt ? completeAttempt(attempt, outcome) : Effect.fail(recordWriterClosed()), attach: writeDefinition as AttemptWriteSession[\"attach\"], record, records });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction mintId<A>(entropy: RecordEntropyService, schema: Schema.Codec<A, string>): Effect.Effect<A, RecordWriteError> {\n return Effect.flatMap(entropy.uuid, (raw) => { const decoded = Schema.decodeUnknownResult(schema)(raw); return Result.isFailure(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.success); });\n}\nfunction createAttempt(run: RunRuntime, slotId: SlotId): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid());\n const attemptId = yield* mintId(run.entropy, AttemptIdSchema);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttempt({ runId: run.runId, writerGeneration: run.writerGeneration, attemptId, attemptLocator: encodeAttemptLocator(attemptId), deadlineEpochMs }));\n const appendAcks = yield* Queue.unbounded<void>();\n const attempt: AttemptRuntime = { run, attemptId, slotId, state: \"open\", families: new Set(), collections: new Map(), pendingAppends: 0, appendAcks };\n run.attempts.set(attemptId, attempt);\n run.reservations.add(slotId);\n return makeAttemptSession(attempt);\n }));\n}\nfunction selectedReference(run: RunRuntime, ref: SelectedAttemptRef): boolean { const capability = selectedAttemptCapabilities.get(ref); return capability !== undefined && !capability.lifecycle.closed && sameRoot(capability.root, run.root); }\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!selectedReference(run, input.attempt))\n return yield* Effect.fail(new RecordReferenceInvalid({ code: \"record-reference-invalid\" })); if (!run.expectedBySlot.has(input.slotId) || run.reservations.has(input.slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(input.slotId, Object.freeze({ slotId: input.slotId, action: input.action, attempt: Object.freeze({ originRunId: input.attempt.originRunId, attemptId: input.attempt.attemptId }) })); run.reservations.add(input.slotId); }));\n}\nfunction terminalMember(run: RunRuntime, slotId: SlotId, action: \"not-dispatched\" | \"interrupted\", absenceReason: import(\"../../run/protocol.ts\").RunAbsenceReason): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(slotId, Object.freeze({ slotId, action, attempt: null, absenceReason })); run.reservations.add(slotId); }));\n}\nfunction encodeCore(value: unknown): {\n readonly bytes: Uint8Array;\n readonly digest: string;\n} | undefined { const bytes = canonicalBytes(value); return bytes === undefined ? undefined : Object.freeze({ bytes, digest: digest(bytes) }); }\nfunction buildRunMetadata(run: RunRuntime, completedAt: RunDocument[\"completedAt\"]) {\n const runDocument: RunDocument = Object.freeze({ runId: run.runId, experimentId: run.experimentId, context: run.context, startedAt: run.startedAt, completedAt, expectedSlots: run.expectedSlots });\n const recordEncoded = encodeRecordDocument(run.record), runEncoded = encodeRunDocument(runDocument);\n if (Result.isFailure(recordEncoded) || Result.isFailure(runEncoded))\n throw new Error(\"invalid run core\");\n const recordCore = encodeCore(recordEncoded.success), runCore = encodeCore(runEncoded.success);\n if (recordCore === undefined || runCore === undefined)\n throw new Error(\"invalid run core\");\n const slots = run.expectedSlots.map((slot, ordinal) => { const core = encodeCore(slot)!; return Object.freeze({ slotId: slot.slotId, ordinal, coreBytes: core.bytes, coreDigest: core.digest }); });\n const attempts = [...run.attempts.values()].filter((attempt) => attempt.state === \"completed\").sort((a, b) => compareCanonicalIdentity(a.attemptId, b.attemptId)).map((attempt) => { const slot = run.expectedBySlot.get(attempt.slotId)!; const encoded = encodeAttemptDocument(Object.freeze({ attemptId: attempt.attemptId, originRunId: run.runId, slotId: attempt.slotId, evalId: slot.evalId, executionIdentityDigest: slot.executionIdentityDigest, outcome: attempt.outcome! })); if (Result.isFailure(encoded))\n throw new Error(\"invalid attempt\"); const core = encodeCore(encoded.success)!; return Object.freeze({ attemptId: attempt.attemptId, attemptLocator: encodeAttemptLocator(attempt.attemptId), coreBytes: core.bytes, coreDigest: core.digest }); });\n const members = [...run.members.values()].sort((a, b) => compareCanonicalIdentity(a.slotId, b.slotId)).map((member) => { const encoded = encodeMemberDocument(member); if (Result.isFailure(encoded))\n throw new Error(\"invalid member\"); const core = encodeCore(encoded.success)!; return Object.freeze({ slotId: member.slotId, ...(member.attempt === null ? {} : { originRunId: member.attempt.originRunId, attemptId: member.attempt.attemptId }), action: member.action, coreBytes: core.bytes, coreDigest: core.digest }); });\n return Object.freeze({ runId: run.runId, writerGeneration: run.writerGeneration, startedAt: new Date(run.startedAt).toISOString(), recordCoreBytes: recordCore.bytes, recordCoreDigest: recordCore.digest, runCoreBytes: runCore.bytes, runCoreDigest: runCore.digest, slots: Object.freeze(slots), attempts: Object.freeze(attempts), members: Object.freeze(members), attachments: Object.freeze([...run.attachments.values()].map(({ metadata, ownerKind, ownerAttemptId, family, revision }) => Object.freeze({ ...metadata, ownerKind, ownerRunId: run.runId, ...(ownerAttemptId === undefined ? {} : { ownerAttemptId }), family, familyRevision: revision }))) });\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.gen(function* () {\n yield* run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if ([...run.attempts.values()].some(({ state }) => state !== \"completed\") || run.members.size !== run.expectedSlots.length)\n return yield* Effect.fail(coreInvalid()); run.state = \"sealing\"; }));\n const finalMetadata = buildRunMetadata(run, completion.completedAt);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageRunFinalMetadata({ ...finalMetadata, deadlineEpochMs }));\n // Full Content/collection closure verification is read-only and does not\n // monopolize the FIFO writer ticket. The following fence is one short txn.\n const prepared = yield* sqliteEffect(() => run.client.prepareRunFinalization({ runId: run.runId, writerGeneration: run.writerGeneration, deadlineEpochMs: deadline() }));\n const finalized = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.fenceRunFinalization({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n mutationSequence: prepared.mutationSequence,\n expectedLogicalSealIdentity: prepared.logicalSealIdentity,\n expectedSealEntryCount: prepared.sealEntryCount,\n deadlineEpochMs,\n }));\n let sealOrdinal: number | null = 0;\n while (sealOrdinal !== null) {\n const staged = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageSealEntries({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n expectedLogicalSealIdentity: finalized.logicalSealIdentity,\n startOrdinal: sealOrdinal!,\n maximumRows: 256,\n deadlineEpochMs,\n }));\n sealOrdinal = staged.nextOrdinal;\n }\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.publishRunSeal({ runId: run.runId, writerGeneration: run.writerGeneration, expectedLogicalSealIdentity: finalized.logicalSealIdentity, deadlineEpochMs }));\n run.state = \"sealed\";\n if (run.handle !== undefined)\n runSessions.delete(run.handle);\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(run, error))));\n}\nfunction makeRunSession(run: RunRuntime, referenceOnly: boolean): RunWriteSession | ReferenceRunWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(run.catalog, definition, \"run\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run, owner: \"run\", persistence: persistence.success, value }); };\n const record = Object.freeze({ write<Value, Error, Requirements>(command: RecordWriteCommand<\"run\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"run\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); } }) as RunWriteSession[\"record\"];\n const records: OwnerRecordsWriter<\"run\"> = Object.freeze({ write: writeDefinition as OwnerRecordsWriter<\"run\">[\"write\"] });\n let session: RunWriteSession | ReferenceRunWriteSession;\n const common = { runId: run.runId, [runWriteSessionBrand]: () => undefined, referenceAttempt: (input: Parameters<RunWriteSession[\"referenceAttempt\"]>[0]) => referenceAttempt(run, input), recordAcceptedMembership: (input: Parameters<RunWriteSession[\"recordAcceptedMembership\"]>[0]) => referenceAttempt(run, { ...input, action: \"accepted\" }), recordTerminalMember: (input: Parameters<RunWriteSession[\"recordTerminalMember\"]>[0]) => terminalMember(run, input.slotId, input.action, input.absenceReason), attach: writeDefinition as RunWriteSession[\"attach\"], record, records, seal: (completion: RunCompletion) => runSessions.get(session) === run ? sealRun(run, completion) : Effect.fail(recordWriterClosed()) };\n session = Object.freeze(referenceOnly ? common : { ...common, createAttempt: ({ slotId }: {\n readonly slotId: SlotId;\n }) => createAttempt(run, slotId) }) as RunWriteSession | ReferenceRunWriteSession;\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction deterministicRecord(root: RecordRoot): RecordDocument | undefined {\n const path = storageRoot(root);\n if (path === undefined)\n return undefined;\n const format = Schema.decodeUnknownResult(RecordFormatSchema)(RECORD_FORMAT);\n const id = Schema.decodeUnknownResult(RecordIdSchema)(`record-${createHash(\"sha256\").update(path).digest(\"hex\")}`);\n return Result.isFailure(format) || Result.isFailure(id) ? undefined : Object.freeze({ format: format.success, recordId: id.success });\n}\nfunction openNewRuntime(request: CreateRunRequest, catalog: RecordAttachmentCatalog, referenceOnly: boolean): Effect.Effect<RunWriteSession | ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordEntropy | RecordCoordination | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const expectedIssues = validateExpectedSlots(request.expectedSlots), context = canonicalizeRunContext(request.context);\n if (expectedIssues.length > 0 || Result.isFailure(context) || context.success.experimentId !== request.experimentId)\n return yield* Effect.fail(new RecordCoreInvalid({ code: \"record-core-invalid\", issues: nonEmptyRecordIssues(expectedIssues) ?? invalidIssues([\"context\"]) }));\n const rootPath = storageRoot(request.root), record = deterministicRecord(request.root);\n if (rootPath === undefined || record === undefined)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination, entropy = yield* RecordEntropy;\n const runId = yield* mintId(entropy, RunIdSchema);\n const writerGeneration = request.writerGeneration ?? (yield* entropy.uuid);\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n yield* withWriteAdmission(coordination, request.root, (deadlineEpochMs) => client.beginRun({ runId, writerGeneration, startedAt: new Date(request.startedAt).toISOString(), deadlineEpochMs }));\n const lock = yield* Semaphore.make(1), queue = yield* Queue.bounded<AppendCommand>(MAILBOX_COMMANDS);\n const run: RunRuntime = { root: request.root, client, coordination, entropy, catalog, record, writerGeneration, runId, experimentId: request.experimentId, context: context.success, startedAt: request.startedAt, expectedSlots: Object.freeze([...request.expectedSlots]), expectedBySlot: new Map(request.expectedSlots.map((slot) => [slot.slotId, slot])), lock, queue, attempts: new Map(), members: new Map(), reservations: new Set(), families: new Set(), attachments: new Map(), state: \"open\" };\n yield* Effect.forkScoped(collectionWorker(run));\n yield* Effect.addFinalizer(() => Effect.sync(() => { if (run.state !== \"sealed\")\n run.state = \"failed\"; if (run.handle !== undefined)\n runSessions.delete(run.handle); for (const attempt of run.attempts.values())\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle); }));\n return makeRunSession(run, referenceOnly);\n });\n}\nfunction decodeCore(core: SealedRunCore): {\n readonly record: RecordDocument;\n readonly run: RunDocument;\n readonly attempts: readonly AttemptDocument[];\n readonly members: readonly MemberDocument[];\n} | undefined {\n const rj = parseJson(core.recordCoreBytes), uj = parseJson(core.runCoreBytes);\n const record = rj === undefined ? undefined : decodeRecordDocument(rj), run = uj === undefined ? undefined : decodeRunDocument(uj);\n if (record === undefined || run === undefined || Result.isFailure(record) || Result.isFailure(run) || run.success.runId !== core.runId)\n return undefined;\n const attempts: AttemptDocument[] = [], members: MemberDocument[] = [];\n for (const value of core.attempts) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeAttemptDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n attempts.push(decoded.success);\n }\n for (const value of core.members) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeMemberDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n members.push(decoded.success);\n }\n return Object.freeze({ record: record.success, run: run.success, attempts: Object.freeze(attempts), members: Object.freeze(members) });\n}\nfunction readCore(runtime: ReaderRuntime, runId: RunId): Effect.Effect<SealedRunCore | undefined, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const cached = runtime.coreCache.get(runId);\n return cached === undefined ? sqliteEffect(() => runtime.client.readSealedRunCore(runId)).pipe(Effect.mapError((error) => error.code === \"record-database-invalid\" || error.code === \"record-seal-incomplete\"\n ? new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"publication-closure-invalid\" })\n : error), Effect.tap((core) => Effect.sync(() => { if (core !== undefined)\n runtime.coreCache.set(runId, core); }))) : Effect.succeed(cached);\n}\nfunction runRef(runtime: ReaderRuntime, runId: RunId): SelectedRunRef {\n const old = runtime.runRefs.get(runId);\n if (old !== undefined)\n return old;\n const ref: SelectedRunRef = Object.freeze({ runId, [selectedRunRefBrand]: () => undefined });\n runtime.runRefs.set(runId, ref);\n runtime.runs.set(ref, runId);\n return ref;\n}\nfunction attemptRef(runtime: ReaderRuntime, runId: RunId, attemptId: AttemptId, publicationIdentity?: SelectedAttemptRef[\"publicationIdentity\"]): SelectedAttemptRef {\n const key = hashCanonicalTuple(\"niceeval.record.attempt-ref/v1\", [runId, attemptId]), old = runtime.attemptRefs.get(key);\n if (old !== undefined)\n return old;\n const ref: SelectedAttemptRef = Object.freeze({ originRunId: runId, attemptId, ...(publicationIdentity === undefined ? {} : { publicationIdentity }), [selectedAttemptRefBrand]: () => undefined });\n runtime.attemptRefs.set(key, ref);\n runtime.attempts.set(ref, { runId, attemptId });\n selectedAttemptCapabilities.set(ref, { root: runtime.root, lifecycle: runtime.lifecycle });\n return ref;\n}\nfunction ownerRef<Owner extends \"run\" | \"attempt\">(runtime: ReaderRuntime, owner: Extract<OwnerRuntime, {\n readonly kind: Owner;\n}>): SelectedOwnerRef<Owner> { const ref: SelectedOwnerRef<Owner> = Object.freeze({ [selectedOwnerRefBrand]: () => undefined }); runtime.owners.set(ref, owner); return ref; }\nfunction readRun(runtime: ReaderRuntime, ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, runId), (core): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"run\", runId }), document: decoded.run, members: Object.freeze(decoded.members.map((document) => Object.freeze({ document, attempt: document.attempt === null ? null : attemptRef(runtime, document.attempt.originRunId, document.attempt.attemptId, core.members.find((member) => member.slotId === document.slotId)?.publicationIdentity) }))) }) }));\n });\n}\nfunction readAttempt(runtime: ReaderRuntime, ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const location = runtime.attempts.get(ref);\n if (location === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, location.runId), (core): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"core-invalid\" }));\n const document = decoded.attempts.find(({ attemptId }) => attemptId === location.attemptId);\n if (document === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"publication-closure-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"attempt\", runId: location.runId, attemptId: location.attemptId }), document, origin: Object.freeze({ owner: ownerRef(runtime, { kind: \"run\", runId: location.runId }), runId: location.runId, experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, context: decoded.run.context }) }) }));\n });\n}\nfunction findAttachment(core: SealedRunCore, owner: OwnerRuntime, family: string): SealedAttachmentMetadata | undefined { return core.attachments.find((a) => a.family === family && a.ownerKind === owner.kind && (owner.kind === \"run\" || a.ownerAttemptId === owner.attemptId)); }\nfunction contentStream(runtime: ReaderRuntime, handle: RecordContentHandle): Stream.Stream<Uint8Array, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const metadata = runtime.content.get(handle);\n if (metadata === undefined)\n return Stream.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type ContentReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<ContentReadState, Uint8Array, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readContentChunkPage(metadata.contentId, state.after, CONTENT_READ_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (page.chunks.length === 0) {\n return state.ordinal === metadata.chunkCount && state.byteLength === metadata.byteLength && hash.digest(\"hex\") === metadata.digest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: Uint8Array[] = [];\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== ordinal || digest(chunk.bytes) !== chunk.chunkDigest)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content chunk inventory is invalid\"));\n const bytes = chunk.bytes;\n hash.update(bytes);\n byteLength += bytes.byteLength;\n ordinal += 1;\n output.push(bytes);\n }\n const after = page.chunks[page.chunks.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\nfunction contentReader(runtime: ReaderRuntime): RecordAttachmentContentReader {\n const byteLength = (handle: RecordContentHandle): Effect.Effect<number, RecordReaderReadError> => { if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" })); const metadata = runtime.content.get(handle); return metadata === undefined ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.succeed(metadata.byteLength); };\n const bytes = (handle: RecordContentHandle): Effect.Effect<Uint8Array, RecordReaderReadError> => Effect.flatMap(byteLength(handle), (size) => size > WHOLE_VALUE_MAX_BYTES ? Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: size, path: \"content\" })) : Stream.runCollect(contentStream(runtime, handle)).pipe(Effect.map((chunks) => { const output = new Uint8Array(size); let offset = 0; for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n } return output; })));\n return Object.freeze({ byteLength, bytes, text: (handle: RecordTextContentHandle) => !isRecordTextContentHandle(handle) ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.flatMap(bytes(handle), (value) => Effect.try({ try: () => new TextDecoder(\"utf-8\", { fatal: true }).decode(value), catch: () => new RecordHandleInvalid({ code: \"record-handle-invalid\" }) })), stream: (handle: RecordContentHandle) => contentStream(runtime, handle) });\n}\nfunction hydrateAttachment(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, persistence: AnyPersistence): RecordAttachmentRead<unknown> {\n if (attachment.familyRevision !== persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n const payload = parseJson(attachment.canonicalBytes);\n if (payload === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\"]) });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\", \"digest\"]) });\n const byHandle = new Map(attachment.contents.map((content) => [content.logicalHandle, content])), used = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, payload, { content: (token, declaration) => { const logicalHandle = exactMarker(token, \"$niceeval.record.content\"); if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\"))\n return Result.succeed(undefined); const metadata = typeof logicalHandle === \"string\" ? byHandle.get(logicalHandle) : undefined; if (metadata === undefined || declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const }); const handle = mintRecordContentHandle(declaration.kind); runtime.content.set(handle, metadata); used.add(logicalHandle as string); return Result.succeed(handle); }, reference: (token, declaration) => { const marker = exactMarker(token, \"$niceeval.record.reference\"); if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\"))\n return Result.succeed(undefined); if (typeof marker !== \"object\" || marker === null || Array.isArray(marker))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); const value = marker as Record<string, unknown>; if (value.owner !== declaration.definition.owner || value.family !== declaration.definition.family || !(\"value\" in value))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value)); } });\n if (Result.isFailure(hydrated) || used.size !== attachment.contents.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const logicalReferences = new Map<string, {\n readonly owner: RecordAttachmentOwner;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\"]) });\n logicalReferences.set(hashCanonicalTuple(\"niceeval.record.reference-family/v1\", [wire.owner, wire.family]), Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const ordered = [...logicalReferences.values()].sort((left, right) => compareCanonicalCodeUnits(left.owner, right.owner) || compareCanonicalCodeUnits(left.family, right.family));\n if (ordered.length !== attachment.references.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", \"count\"]) });\n for (let ordinal = 0; ordinal < ordered.length; ordinal += 1) {\n const logical = ordered[ordinal]!, physical = attachment.references[ordinal]!, canonical = canonicalBytes(logical);\n if (canonical === undefined || physical.ordinal !== ordinal || physical.owner !== logical.owner || physical.family !== logical.family || !bytesEqual(physical.canonicalBytes, canonical) || digest(physical.canonicalBytes) !== physical.referenceDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", String(ordinal)]) });\n }\n return Object.freeze({ state: \"available\", value: hydrated.success, content: contentReader(runtime) });\n}\nfunction readFamily(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue);\n if (owner === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const resolved = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (resolved === undefined || resolved.owner !== owner.kind)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const persistence = runtime.catalog.persistence(resolved);\n if (persistence === undefined)\n return Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: owner.kind, family: resolved.family, revision: 1 }));\n return Effect.map(readCore(runtime, owner.runId), (core) => { if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" as const }); const attachment = findAttachment(core, owner, resolved.family); return attachment === undefined ? Object.freeze({ state: \"not-recorded\" as const }) : hydrateAttachment(runtime, attachment, persistence as AnyPersistence); });\n}\nfunction collectionStream(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, authoring: AttemptRecordCollectionRuntime, expectedDigest: string): Stream.Stream<unknown, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type CollectionReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<CollectionReadState, unknown, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readCollectionItemPage(attachment.attachmentId, state.after, RECORD_SQLITE_MAX_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (page.items.length === 0) {\n return state.ordinal === attachment.collectionItemCount && state.byteLength === attachment.collectionItemByteLength && hash.digest(\"hex\") === expectedDigest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: unknown[] = [];\n for (const item of page.items) {\n const value = parseJson(item.canonicalBytes), canonicalDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || canonicalDigest !== item.canonicalDigest || item.logicalIdentity !== collectionItemLogicalIdentity(ordinal, canonicalDigest) || value === undefined)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection item inventory is invalid\"));\n if (!isRecordAttachmentSchema(authoring.item))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const decoded = Schema.decodeUnknownResult(authoring.item)(value);\n if (Result.isFailure(decoded))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n hash.update(item.canonicalBytes).update(\"\\n\");\n byteLength += item.canonicalBytes.byteLength;\n ordinal += 1;\n output.push(decoded.success);\n }\n const after = page.items[page.items.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\ntype OpenCollectionResult = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly revision: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n} | {\n readonly state: \"available\";\n readonly collection: unknown;\n readonly logicalIdentity: string;\n readonly logicalSealIdentity: string;\n readonly count: number;\n readonly digest: string;\n readonly canonicalBytes: number;\n readonly items: Stream.Stream<unknown, RecordReaderReadError>;\n};\ntype PublicOpenCollectionResult = Exclude<OpenCollectionResult, {\n readonly state: \"available\";\n}> | Omit<Extract<OpenCollectionResult, {\n readonly state: \"available\";\n}>, \"canonicalBytes\">;\nfunction publicOpenCollectionResult(opened: OpenCollectionResult): PublicOpenCollectionResult {\n if (opened.state !== \"available\")\n return opened;\n return Object.freeze({\n state: \"available\",\n collection: opened.collection,\n logicalIdentity: opened.logicalIdentity,\n logicalSealIdentity: opened.logicalSealIdentity,\n count: opened.count,\n digest: opened.digest,\n items: opened.items,\n });\n}\nfunction openCollection(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<OpenCollectionResult, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue), authoring = attemptRecordCollectionRuntime(definition);\n if (owner === undefined || owner.kind !== \"attempt\" || authoring === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.map(readCore(runtime, owner.runId), (core) => {\n if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n const attachment = findAttachment(core, owner, authoring.attachment.family);\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n if (attachment.familyRevision !== authoring.persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\", \"digest\"]) });\n const payload = parseJson(attachment.canonicalBytes) as {\n readonly collection?: unknown;\n } | undefined;\n const inventory = parseJson(attachment.logicalInventoryBytes) as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n } | undefined;\n const collection = inventory?.collection;\n if (payload?.collection === undefined || collection === undefined || collection.count !== attachment.collectionItemCount || collection.byteLength !== attachment.collectionItemByteLength || typeof collection.digest !== \"string\")\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\"]) });\n return Object.freeze({ state: \"available\", collection: payload.collection, logicalIdentity: attachment.logicalIdentity, logicalSealIdentity: core.logicalSealIdentity, count: attachment.collectionItemCount, digest: collection.digest, canonicalBytes: attachment.collectionItemByteLength, items: collectionStream(runtime, attachment, authoring, collection.digest) });\n });\n}\nfunction readCollectionWhole(runtime: ReaderRuntime, owner: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n return Effect.flatMap(openCollection(runtime, owner, definition), (opened): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> => {\n if (opened.state !== \"available\")\n return Effect.succeed(opened);\n if (opened.count > COLLECTION_READ_MAX_ROWS || opened.canonicalBytes > WHOLE_VALUE_MAX_BYTES)\n return Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: opened.canonicalBytes, path: \"collection\" }));\n return Stream.runCollect(opened.items).pipe(Effect.map((items): RecordAttachmentRead<unknown> => Object.freeze({ state: \"available\", value: Object.freeze({ collection: opened.collection, items: Object.freeze(items) }), content: contentReader(runtime) })));\n });\n}\nfunction makeReadSession(runtime: ReaderRuntime): RecordReadSession {\n const selectRuns: RecordReadSession[\"selectRuns\"] = (request?: RecordSelectionRequest) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const requested = request?.runIds === undefined ? undefined : new Set(request.runIds);\n const cores: {\n readonly core: SealedRunCore;\n readonly decoded: NonNullable<ReturnType<typeof decodeCore>>;\n }[] = [];\n let after = \"\";\n while (true) {\n const page = yield* sqliteEffect(() => runtime.client.listSealedRunSummaries(after, 100));\n if (page.length === 0)\n break;\n for (const summary of page) {\n after = summary.runId;\n if (requested !== undefined && !requested.has(summary.runId as RunId))\n continue;\n const runId = summary.runId as RunId;\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n continue;\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return yield* Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n cores.push({ core, decoded });\n }\n if (page.length < 100)\n break;\n }\n const problems: RecordSelectionProblem[] = [];\n if (requested !== undefined)\n for (const id of requested)\n if (!cores.some(({ core }) => core.runId === id))\n problems.push(Object.freeze({ code: \"selection-run-missing\", runId: id }));\n const runRefs = cores.map(({ core }) => runRef(runtime, core.runId as RunId));\n const runFacts: SelectedRunFacts[] = cores.map(({ core, decoded }) => Object.freeze({ run: runRef(runtime, core.runId as RunId), experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, completedAt: decoded.run.completedAt, expectedSlots: decoded.run.expectedSlots }));\n for (const { core, decoded } of cores) {\n for (const attempt of decoded.attempts) {\n attemptRef(runtime, core.runId as RunId, attempt.attemptId, core.attempts.find((persisted) => persisted.attemptId === attempt.attemptId)?.publicationIdentity);\n }\n }\n const selection: RecordSelection = Object.freeze({ runRefs: Object.freeze(runRefs), runFacts: Object.freeze(runFacts), expectedSlots: Object.freeze(runFacts.flatMap(({ run, experimentId, expectedSlots }) => expectedSlots.map((slot) => Object.freeze({ run, experimentId, slot })))), problems: Object.freeze(problems), warnings: Object.freeze([]) as readonly RecordWarning[] });\n runtime.selections.add(selection);\n return selection;\n });\n const readRunEntry: RecordReadSession[\"readRun\"] = (ref: SelectedRunRef) => readRun(runtime, ref);\n const readAttemptEntry: RecordReadSession[\"readAttempt\"] = (ref: SelectedAttemptRef) => readAttempt(runtime, ref);\n const openCollectionEntry = ((owner: SelectedOwnerRef<\"attempt\">, definition: unknown) => Effect.map(openCollection(runtime, owner, definition), publicOpenCollectionResult)) as RecordReadSession[\"openCollection\"];\n const requireComplete: RecordReadSession[\"requireComplete\"] = (selection: RecordSelection) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n if (!runtime.selections.has(selection))\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n if (selection.problems.length > 0)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"selection-invalid\" }));\n for (const ref of selection.runRefs) {\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\" }));\n const attemptIds = new Set(core.attempts.map(({ attemptId }) => attemptId));\n for (const attachment of core.attachments) {\n if (attachment.ownerRunId !== core.runId || attachment.ownerKind === \"attempt\" && (attachment.ownerAttemptId === undefined || !attemptIds.has(attachment.ownerAttemptId)))\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\", family: attachment.family }));\n const persistence = runtime.catalog.get(attachment.ownerKind, attachment.family);\n if (persistence === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: attachment.ownerKind, family: attachment.family, revision: attachment.familyRevision }));\n for (const reference of attachment.references)\n if (runtime.catalog.get(reference.owner, reference.family) === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: reference.owner, family: reference.family, revision: 1 }));\n const hydrated = hydrateAttachment(runtime, attachment, persistence as AnyPersistence);\n if (hydrated.state !== \"available\")\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"attachment-invalid\", family: attachment.family }));\n }\n }\n return Object.freeze({ selection, attachments: runtime.catalog }) satisfies RecordCompleteView;\n });\n return Object.freeze({\n selectRuns,\n readRun: readRunEntry,\n readAttempt: readAttemptEntry,\n read: ((owner: SelectedOwnerRef, definition: unknown) => attemptRecordCollectionRuntime(definition) !== undefined ? readCollectionWhole(runtime, owner as SelectedOwnerRef<\"attempt\">, definition) : readFamily(runtime, owner, definition)) as RecordReadSession[\"read\"],\n openCollection: openCollectionEntry,\n requireComplete,\n });\n}\nfunction openRead(root: RecordRoot, catalog: RecordAttachmentCatalog): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const rootPath = storageRoot(root);\n if (rootPath === undefined)\n return yield* Effect.fail(new RecordBootstrapInvalid({ code: \"record-bootstrap-invalid\", reason: \"record-document-invalid\" }));\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const lifecycle: ReaderLifecycle = { closed: false };\n const runtime: ReaderRuntime = { root, client, catalog, lifecycle, runs: new WeakMap(), attempts: new WeakMap(), owners: new WeakMap(), selections: new WeakSet(), coreCache: new Map(), runRefs: new Map(), attemptRefs: new Map(), content: new WeakMap() };\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime);\n });\n}\nfunction closeMaintenanceFailure(error: {\n readonly code?: string;\n}): RecordMaintenanceOperationFailure { return Object.freeze({ _tag: \"RecordMaintenanceOperationFailed\", code: error.code ?? \"record-maintenance-failed\" }); }\nconst operationMigrationPlans = new WeakMap<object, RecordMigrationPlan>();\nfunction inspectMaintenanceDatabase(root: RecordRoot): Effect.Effect<ProjectRecordDatabaseInspection, SqliteRecordError> {\n const rootPath = storageRoot(root);\n if (rootPath === undefined) {\n return Effect.fail(new SqliteRecordError(\"record-database-invalid\", \"locate\", \"Record root is invalid\"));\n }\n return Effect.try({\n try: () => inspectProjectRecordDatabase(recordSqlitePath(rootPath)),\n catch: (cause) => cause instanceof SqliteRecordError\n ? cause\n : new SqliteRecordError(\"record-sqlite-error\", \"inspect-maintenance\", \"Record maintenance inspection failed\", { cause }),\n });\n}\nfunction publicFormatInspection(inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction migrationPlan(root: RecordRoot, inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction maintenanceSession(root: RecordRoot): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordCoordination> {\n return Effect.gen(function* () {\n const first = yield* inspectMaintenanceDatabase(root);\n if (first.state === \"current\" && first.exists) {\n const coordination = yield* RecordCoordination;\n yield* coordination.enterRecordMaintenance(root);\n }\n const inspect = () => inspectMaintenanceDatabase(root);\n return Object.freeze({\n inspect: () => Effect.map(inspect(), publicFormatInspection),\n planMigrate: () => Effect.map(inspect(), (inspection) => migrationPlan(root, inspection)),\n applyMigrate: (plan: RecordMigrationPlan) => Effect.gen(function* () {\n if (plan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: plan.format,\n }));\n }\n const current = yield* inspect();\n if (current.state === \"current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: current.state === \"unsupported\" ? current.format : \"foreign-sqlite\",\n }));\n }),\n });\n });\n}\nexport function makeRecordHost(input: {\n readonly records: readonly RecordContribution[];\n}): RecordHostSDK {\n const persistences = input.records.map((record) => { const runtime = recordContributionRuntime(record); if (runtime === undefined)\n throw new TypeError(\"invalid Record contribution\"); return runtime.persistence; });\n const composed = makeRecordAttachmentCatalog(persistences);\n if (Result.isFailure(composed))\n throw new TypeError(`invalid Record composition: ${composed.failure.code}`);\n const catalog = composed.success;\n const currentOpenRead: RecordHostSDK[\"current\"][\"openRead\"] = ({ root }) => openRead(root, catalog);\n const currentCreateRun: RecordHostSDK[\"current\"][\"createRun\"] = (request) => openNewRuntime(request, catalog, false) as ReturnType<RecordHostSDK[\"current\"][\"createRun\"]>;\n const currentCreateReferenceRun: RecordHostSDK[\"current\"][\"createReferenceRun\"] = (request) => openNewRuntime(request, catalog, true) as ReturnType<RecordHostSDK[\"current\"][\"createReferenceRun\"]>;\n const current: RecordHostSDK[\"current\"] = Object.freeze({ openRead: currentOpenRead, createRun: currentCreateRun, createReferenceRun: currentCreateReferenceRun });\n const normalize = (request: CreateRunRequest | {\n readonly root: RecordRoot;\n readonly core: Omit<CreateRunRequest, \"root\">;\n }): CreateRunRequest => \"core\" in request ? Object.freeze({ root: request.root, ...request.core }) : request;\n const createRunPublic: RecordHostSDK[\"createRun\"] = (request) => current.createRun(normalize(request));\n const createReferenceRunPublic: RecordHostSDK[\"createReferenceRun\"] = (request) => current.createReferenceRun(normalize(request));\n const planClean: RecordHostSDK[\"maintenance\"][\"planClean\"] = (request) => inspectIncompleteRuns(request).pipe(Effect.map((runs): RecordCleanOperationPlan => runs.length === 0 ? Object.freeze({ _tag: \"RecordCleanAlreadyClean\" }) : Object.freeze({ _tag: \"RecordCleanConfirmationRequired\", runIds: Object.freeze(runs.map(({ runId }) => runId)) })), Effect.mapError(closeMaintenanceFailure));\n const applyClean: RecordHostSDK[\"maintenance\"][\"applyClean\"] = ({ root, plan }) => cleanIncompleteRuns({ root, runIds: plan.runIds }).pipe(Effect.map((receipt): RecordCleanOperationReceipt => Object.freeze({ _tag: \"RecordCleanApplied\", ...receipt })), Effect.mapError(closeMaintenanceFailure));\n const planMigrate: RecordHostSDK[\"maintenance\"][\"planMigrate\"] = ({ root }) => Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.planMigrate())).pipe(Effect.map((plan): RecordMigrateOperationPlan => {\n if (plan.state === \"already-current\") {\n return Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return Object.freeze({ _tag: \"RecordMigrationUnsupported\", format: plan.format });\n }\n const operationPlan = Object.freeze({\n _tag: \"RecordMigrationReady\" as const,\n format: plan.format,\n sourceFormat: plan.sourceFormat,\n attachments: plan.attachments,\n pendingSeals: plan.pendingSeals,\n resumedSteps: plan.resumedSteps,\n });\n operationMigrationPlans.set(operationPlan, plan);\n return operationPlan;\n }), Effect.mapError(closeMaintenanceFailure));\n const applyMigrate: RecordHostSDK[\"maintenance\"][\"applyMigrate\"] = ({ root, plan }) => {\n const internal = operationMigrationPlans.get(plan);\n if (internal === undefined) {\n return Effect.fail(Object.freeze({\n _tag: \"RecordMigrationPlanStale\" as const,\n code: \"record-migration-plan-stale\" as const,\n }));\n }\n return Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.applyMigrate(internal))).pipe(Effect.map((receipt): RecordMigrateOperationReceipt => receipt.state === \"already-current\"\n ? Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT })\n : Object.freeze({\n _tag: \"RecordMigrationApplied\",\n format: receipt.format,\n attachments: receipt.attachments,\n committed: receipt.committed,\n skipped: receipt.skipped,\n failed: receipt.failed,\n rebuiltSeals: receipt.rebuiltSeals,\n })), Effect.mapError(closeMaintenanceFailure));\n };\n const openMaintenance: RecordHostSDK[\"maintenance\"][\"open\"] = ({ root }) => maintenanceSession(root);\n return Object.freeze({ openRead: current.openRead, createRun: createRunPublic, createReferenceRun: createReferenceRunPublic, current, maintenance: Object.freeze({ planClean, applyClean, planMigrate, applyMigrate, open: openMaintenance }) });\n}\nexport const recordHost: RecordHostSDK = makeRecordHost({ records: (NiceEvalRecordAttachmentPersistences as readonly AnyRecordAttachmentPersistence[]).map((persistence) => recordContributionFromAttachmentPersistence(persistence)) });\n"]}
|
|
1
|
+
{"version":3,"file":"sqlite-host.js","sourceRoot":"","sources":["sqlite-host.ts"],"names":[],"mappings":";;;AAoMA,sEAEC;AACD,gEA0BC;AAw7BD,wCA6DC;AAttCD,6CAAyC;AACzC,mCAAwF;AACxF,iEAAgE;AAChE,0EAAyG;AACzG,qDAA2M;AAC3M,2DAAmQ;AACnQ,yDAAsJ;AACtJ,4DAA+H;AAC/H,gDAA+M;AAC/M,6DAAoE;AACpE,iEAAqJ;AACrJ,qDAA4E;AAC5E,kDAA2a;AAE3a,4DAAkF;AAClF,4DAA8I;AAE9I,0DAA+D;AAC/D,qDAAoE;AACpE,iDAAuE;AACvE,yDAAmF;AACnF,mDAA0T;AAC1T,sDAAqF;AACrF,iDAAoiB;AACpiB,+CAAqK;AACrK,2EAA6N;AAC7N,mDAA4P;AAC5P,mDAAsF;AAGtF,yCAAiJ;AAGjJ,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,0CAA+B,GAAG,oCAAyB,CAAC,CAAC,CAAC,CAAC;AAC/H,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sCAA2B,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,qCAAyB,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AACjP,SAAS,MAAM,CAAC,KAAiB;IAC7B,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,mCAAkB,CAAC,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC;AACD,SAAS,cAAc,CAAC,KAAc;IAClC,MAAM,SAAS,GAAG,IAAA,qCAAsB,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACjE,OAAO,eAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAoB,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7F,CAAC;AACD,SAAS,SAAS,CAAC,KAAiB;IAChC,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAY,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,SAAS,aAAa,CAAC,OAA0B,EAAE,IAA0B,OAAO,IAAA,uCAAoB,EAAC,CAAC,IAAA,8BAAW,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;AAC1J,SAAS,WAAW,KAAwB,OAAO,IAAI,oCAAiB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7I,SAAS,QAAQ,KAAa,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACtE,SAAS,WAAW,CAAC,IAAgB,IAAwB,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1G,SAAS,QAAQ,CAAC,CAAa,EAAE,CAAa,IAAa,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtI,SAAS,YAAY,CAAI,SAA2B;IAChD,OAAO,eAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,4BAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjN,CAAC;AACD,SAAS,kBAAkB,CAAI,YAAuC,EAAE,IAAgB,EAAE,SAAkD;IACxI,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;IACnC,OAAO,eAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7E,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC;YAC9C,IAAI;YACJ,eAAe;SAClB,CAAC,CAAC,CAAC;QACJ,0EAA0E;QAC1E,uEAAuE;QACvE,6DAA6D;QAC7D,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,WAAW,CAAC,KAAc,EAAE,GAAW;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,OAAO,SAAS,CAAC;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QACpC,OAAO,SAAS,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,OAAO,UAAU,EAAE,UAAU,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,GAAW,IAAa,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAqGhM,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAC;AACtD,MAAM,eAAe,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC9D,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAG3C,CAAC;AACL,SAAgB,6BAA6B,CAAC,OAAmD;IAC7F,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;AACtD,CAAC;AACD,SAAgB,0BAA0B,CAAC,OAA4B;IACnE,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;IAC7C,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;YACzB,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;gBACzH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;gBACxB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe;aAClB,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC/D,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBACxF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAmB,EAAE,MAAc;IAC3D,OAAO,IAAA,sBAAY,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAChJ,CAAC;AACD,SAAS,eAAe,CAAC,YAAoB,EAAE,aAAqB;IAChE,OAAO,IAAA,mBAAS,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AACD,SAAS,UAAU,CAAC,IAAgB,EAAE,KAAiB;IACnD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QACpC,OAAO,KAAK,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;QACnD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;YAC5B,OAAO,KAAK,CAAC;IACrB,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,kBAAkB,CAAC,KAU3B;IACG,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3R,IAAI,cAAc,KAAK,SAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,IAAA,mCAAyB,EAAC,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5T,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAgC,EAAE,UAAmB,EAAE,KAA4B;IAC3G,MAAM,UAAU,GAAG,IAAA,yCAA0B,EAAC,UAAU,CAAC,IAAI,IAAA,+CAAiC,EAAC,UAAU,CAAC,CAAC;IAC3G,IAAI,UAAU,KAAK,SAAS;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK;QAC1B,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,yCAA6B,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,WAA6B,CAAC,CAAC;AACxN,CAAC;AACD,SAAS,MAAM,CAAC,GAAe,EAAE,KAAuB;IAAU,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QAC3F,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;AAAC,CAAC;AAChD,SAAS,aAAa,CAAC,GAAe;IAClC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,iCAAqB,EAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAChP,CAAC;AACD,SAAS,WAAW,CAAC,QAAkC;IACnD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,KAAK,GAAoB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,yCAA8B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,0CAA+B,CAAC,EAAE,CAAC;YACrL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAe;IACrC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YAChT,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;YAClC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;YACvC,KAAK,CAAC,CAAC,cAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,aAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACjJ,CAAC;IACL,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,YAAY,CAAC,SAAyC,EAAE,IAAa,EAAE,OAAe;IAC3F,IAAI,CAAC,IAAA,sCAAwB,EAAC,SAAS,CAAC,IAAI,CAAC;QACzC,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,GAAG,sCAA2B;QACrE,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,sCAA2B,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,IAAI,sCAA2B,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5Q,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAA,uCAA6B,EAAC,OAAO,EAAE,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AACxK,CAAC;AACD,SAAS,eAAe,CAAC,GAAe,EAAE,OAAuB,EAAE,SAAyC;IACxG,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1I,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACzW,MAAM,KAAK,GAAoB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5H,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,OAAuB,EAAE,UAAmB,EAAE,KAAyB;IAGlG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,OAAO,eAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChF,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS;YACvB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;YACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;YACrF,IAAI,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5J,CAAC;QACD,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC1C,wEAAwE;QACxE,8DAA8D;QAC9D,KAAK,CAAC,CAAC,cAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;YAC5B,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;YACzC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAuB,EAAE,UAAmB,EAAE,IAAa;IAGjF,OAAO,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,eAAe,CAAC,OAAuB,EAAE,UAAmB,EAAE,UAAyC;IAC5G,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YACnD,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;YACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAG7O,EAAE,CAAC,CAAC;IACb,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,cAAc,CAAsB,KAI5C;IACG,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACzS,MAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,GAAe,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,UAAU,CAAC,oCAAyB,CAAC,CAAC;QACnG,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAG,GAA0C,EAAE;YAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,OAAO,eAAM,CAAC,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG,EAAE,CAAC;YACX,UAAU,GAAG,CAAC,CAAC;YACf,OAAO,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7O,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAAG,KAAK,MAAM,KAAK,IAAI,QAAQ;oBAC7D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,MAAkB,EAAyC,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY;gBACjF,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACtO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9F,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,IAAI,UAAU,IAAI,0CAA+B;gBACrF,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5E,IAAI,CAAC,CAAC,QAAQ,YAAY,UAAU,CAAC;gBACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,oCAAyB,GAAG,aAAa,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;gBACrE,aAAa,IAAI,IAAI,CAAC;gBACtB,MAAM,IAAI,IAAI,CAAC;gBACf,IAAI,aAAa,KAAK,oCAAyB,EAAE,CAAC;oBAC9C,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,OAAO,GAAG,WAAW,EAAE,CAAC;oBACxB,aAAa,GAAG,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,aAAa,GAAG,CAAC;YACjB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACnJ,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAA6C,KAMpE;IACG,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;IACnD,MAAM,YAAY,GAAiB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,SAAS,EAAE,CAAC;IACtL,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAM,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM;gBAC7J,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YAAC,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC/E,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,gCAAoB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAA,wDAAgC,EAAC,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAc,EAAE,CAAC,CAAC;QACpI,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACha,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACpJ,MAAM,UAAU,GAAmC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAAG,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAAC,IAAI,KAAK,KAAK,SAAS;gBACjK,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC;QACzL,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,yCAA8B,EAAE,CAAC;YACxF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,yCAA8B,CAAC,CAAC,CAAC;YAC9F,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAClQ,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjH,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAyB,CAAC,CAAC,CAAC,CAA4G,CAAC;AACpN,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAuB;IAC9C,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;YACjD,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;gBACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,qCAAyB,EAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACrG,OAAO,OAAO,CAAC,cAAc,GAAG,CAAC;YAC7B,KAAK,CAAC,CAAC,cAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS;YACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAW,CAAC;YAC1C,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,WAAW,EAAE,EAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAW,EAAE,CAAC;YAClN,IAAI,CAAC,IAAA,sCAAwB,EAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBACjE,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1F,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,YAAY,KAAK,SAAS;gBAC1B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1P,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpP,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAAC,OAAuB,EAAE,OAAmC;IACjF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;YACtG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,qCAAyB,EAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/F,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjM,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAC5B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAgC,CAAC,CAAC;QACzF,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACjL,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAuB;IAC/C,MAAM,eAAe,GAAG,CAAC,UAAmB,EAAE,KAAc,EAAE,EAAE,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9U,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,KAAK,CAA6B,OAAkE,IAAI,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvS,KAAK,CAAC,UAAiE,IAAI,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpS,MAAM,CAAO,OAAyC,IAAI,MAAM,OAAO,GAAG,IAAA,gDAAiC,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAClQ,CAAkC,CAAC;IACpC,MAAM,MAAM,GAAmC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACjH,MAAM,SAAS,GAAsC,CAAgG,UAAsB,EAAE,KAAiF,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,eAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrZ,MAAM,KAAK,GAAkC,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1H,MAAM,OAAO,GAAyB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAgD,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3I,MAAM,OAAO,GAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,mCAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAmC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,EAAE,MAAM,EAAE,eAAgD,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1Y,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,MAAM,CAAI,OAA6B,EAAE,MAA+B;IAC7E,OAAO,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChN,CAAC;AACD,SAAS,aAAa,CAAC,GAAe,EAAE,MAAc;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/D,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAe,CAAC,CAAC;QAC9D,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,IAAA,yCAAoB,EAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAC/O,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,SAAS,EAAQ,CAAC;QAClD,MAAM,OAAO,GAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;QACtJ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAe,EAAE,GAAuB,IAAa,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClP,SAAS,gBAAgB,CAAC,GAAe,EAAE,KAI1C;IACG,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1H,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,yCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5K,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;AAChS,CAAC;AACD,SAAS,cAAc,CAAC,GAAe,EAAE,MAAc,EAAE,MAAwC,EAAE,aAA+D;IAC9J,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YACnJ,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;AAC9K,CAAC;AACD,SAAS,UAAU,CAAC,KAAc,IAGlB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChJ,SAAS,gBAAgB,CAAC,GAAe,EAAE,WAAuC;IAC9E,MAAM,WAAW,GAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;IACpM,MAAM,aAAa,GAAG,IAAA,+BAAoB,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAA,4BAAiB,EAAC,WAAW,CAAC,CAAC;IACpG,IAAI,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/F,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAE,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpM,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAAwB,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAAG,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;QAAC,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAQ,EAAE,CAAC,CAAC,CAAC;QAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACnf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,IAAA,yCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACvP,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAAwB,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,MAAM,CAAC,CAAC;QAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAChM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACnU,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7oB,CAAC;AACD,SAAS,OAAO,CAAC,GAAe,EAAE,UAAyB;IACvD,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,aAAa,CAAC,MAAM;gBAC1M,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACpE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACpJ,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACzK,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACzH,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;YACzD,sBAAsB,EAAE,QAAQ,CAAC,cAAc;YAC/C,eAAe;SAClB,CAAC,CAAC,CAAC;QACJ,IAAI,WAAW,GAAkB,CAAC,CAAC;QACnC,OAAO,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAClH,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,2BAA2B,EAAE,SAAS,CAAC,mBAAmB;gBAC1D,YAAY,EAAE,WAAY;gBAC1B,WAAW,EAAE,GAAG;gBAChB,eAAe;aAClB,CAAC,CAAC,CAAC;YACJ,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,SAAS,CAAC,mBAAmB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACjP,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AACD,SAAS,cAAc,CAAC,GAAe,EAAE,aAAsB;IAC3D,MAAM,eAAe,GAAG,CAAC,UAAmB,EAAE,KAAc,EAAE,EAAE,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxS,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAA6B,OAA8D,IAAI,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAA8B,CAAC;IAC/V,MAAM,OAAO,GAA8B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAqD,EAAE,CAAC,CAAC;IAC3H,IAAI,OAAmD,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,+BAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,KAAyD,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC,KAAiE,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,KAA6D,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,eAA4C,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAyB,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,EAAE,CAAC;IAClsB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAEjF,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAA+C,CAAC;IACtF,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACrB,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAgB;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAClB,OAAO,SAAS,CAAC;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,mBAAmB,CAAC,mCAAkB,CAAC,CAAC,8BAAa,CAAC,CAAC;IAC7E,MAAM,EAAE,GAAG,eAAM,CAAC,mBAAmB,CAAC,+BAAc,CAAC,CAAC,UAAU,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnH,OAAO,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1I,CAAC;AACD,SAAS,cAAc,CAAC,OAAyB,EAAE,OAAgC,EAAE,aAAsB;IACvG,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,cAAc,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;YAC/G,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAiB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAA,uCAAoB,EAAC,cAAc,CAAC,IAAI,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClK,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAC9C,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,qCAAkB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,2BAAa,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,4BAAW,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,+BAAoB,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAChM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,OAAO,CAAgB,gBAAgB,CAAC,CAAC;QACrG,MAAM,GAAG,GAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5e,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAAG,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;gBAC3E,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;YAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAClD,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAAC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;oBAC5B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,UAAU,CAAC,IAAmB;IAMnC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,EAAE,CAAC,CAAC;IACnI,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAClI,OAAO,SAAS,CAAC;IACrB,MAAM,QAAQ,GAAsB,EAAE,EAAE,OAAO,GAAqB,EAAE,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAqB,EAAC,IAAI,CAAC,CAAC;QAChH,IAAI,OAAO,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC;QAC/G,IAAI,OAAO,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3I,CAAC;AACD,SAAS,QAAQ,CAAC,OAAsB,EAAE,KAAY;IAClD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB;QACzM,CAAC,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;QAChH,CAAC,CAAC,KAAK,CAAC,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QAAG,IAAI,IAAI,KAAK,SAAS;YACzE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,MAAM,CAAC,OAAsB,EAAE,KAAY;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,CAAC;IACf,MAAM,GAAG,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,8BAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,UAAU,CAAC,OAAsB,EAAE,KAAY,EAAE,SAAoB,EAAE,mBAA+D;IAC3I,MAAM,GAAG,GAAG,IAAA,4BAAkB,EAAC,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzH,IAAI,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,CAAC;IACf,MAAM,GAAG,GAAuB,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,kCAAuB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACpM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAkC,OAAsB,EAAE,KAEzE,IAA6B,MAAM,GAAG,GAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,gCAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC9K,SAAS,OAAO,CAAC,OAAsB,EAAE,GAAmB;IACxD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAqE,EAAE;QACxH,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS;YACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxH,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnd,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAAC,OAAsB,EAAE,GAAuB;IAChE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAyE,EAAE;QACrI,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS;YACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxI,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;QACvJ,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3a,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,IAAmB,EAAE,KAAmB,EAAE,MAAc,IAA0C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrR,SAAS,aAAa,CAAC,OAAsB,EAAE,MAA2B;IACtE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QAMlC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAsD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAGjH,EAAE;YACxB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;gBACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAGvH,EAAE;gBACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM;wBAC9H,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,eAAM,CAAC,IAAI,EAAE,CAAU,CAAC;wBAC9C,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,cAAc,EAAE,gDAAgD,CAAC,CAAC,CAAC;gBACzI,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW;wBACtE,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,cAAc,EAAE,oCAAoC,CAAC,CAAC,CAAC;oBAC9H,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnB,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;oBAC/B,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC;gBAC3D,OAAO,eAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAU,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,aAAa,CAAC,OAAsB;IACzC,MAAM,UAAU,GAAG,CAAC,MAA2B,EAAgD,EAAE;QAAG,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YAC5H,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAC,CAAC,CAAC;IACjR,MAAM,KAAK,GAAG,CAAC,MAA2B,EAAoD,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAAC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACtgB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAC/B,CAAC;QAAC,OAAO,MAAM,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC,CAAC,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1d,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAsB,EAAE,UAAoC,EAAE,WAA2B;IAChH,IAAI,UAAU,CAAC,cAAc,KAAK,WAAW,CAAC,QAAQ;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACnH,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,UAAU,CAAC,eAAe;QAC3I,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3H,MAAM,QAAQ,GAAG,IAAA,4CAA8B,EAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAAG,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YAAC,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,0BAA0B,CAAC;gBACvQ,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAAC,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY;gBACtP,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAAsC,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,GAAG,IAAA,oCAAuB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC;YAAC,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAAG,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;YAAC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,4BAA4B,CAAC;gBACha,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5G,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAAC,MAAM,KAAK,GAAG,MAAiC,CAAC;YAAC,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;gBAClP,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAAC,OAAO,eAAM,CAAC,OAAO,CAAC,IAAA,2CAA6B,EAAC,uCAAyB,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC,EAAE,CAAC,CAAC;IACvO,IAAI,eAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAA,8CAAgC,EAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3F,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAG7B,CAAC;IACL,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAA,2CAA6B,EAAC,SAAS,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,iBAAiB,CAAC,GAAG,CAAC,IAAA,4BAAkB,EAAC,qCAAqC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3K,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAyB,EAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,IAAA,mCAAyB,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClL,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAE,EAAE,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAE,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACnH,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,eAAe;YACpP,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3G,CAAC;AACD,SAAS,UAAU,CAAC,OAAsB,EAAE,UAA4B,EAAE,UAAmB;IACzF,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAA,yCAA0B,EAAC,UAAU,CAAC,IAAI,IAAA,+CAAiC,EAAC,UAAU,CAAC,CAAC;IACzG,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;QACvD,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,WAAW,KAAK,SAAS;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtJ,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QAAG,IAAI,IAAI,KAAK,SAAS;YAChF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC;QAAC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,WAA6B,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;AACnS,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAsB,EAAE,UAAoC,EAAE,SAAyC,EAAE,cAAsB;IACrJ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QAMlC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAsD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAGjH,EAAE;YACxB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;gBACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,sCAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAGnI,EAAE;gBACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,mBAAmB,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc;wBACxJ,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,eAAM,CAAC,IAAI,EAAE,CAAU,CAAC;wBAC9C,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,mDAAmD,CAAC,CAAC,CAAC;gBAC/I,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAClC,MAAM,MAAM,GAAc,EAAE,CAAC;gBAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5F,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,IAAA,uCAA6B,EAAC,OAAO,EAAE,eAAe,CAAC,IAAI,KAAK,KAAK,SAAS;wBAC/K,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,sCAAsC,CAAC,CAAC,CAAC;oBACnI,IAAI,CAAC,IAAA,sCAAwB,EAAC,SAAS,CAAC,IAAI,CAAC;wBACzC,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBACnF,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBAClE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC9C,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC7C,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC;gBACzD,OAAO,eAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAU,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAyBD,SAAS,0BAA0B,CAAC,MAA4B;IAC5D,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;QAC5B,OAAO,MAAM,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,OAAsB,EAAE,UAAuC,EAAE,UAAmB;IACxG,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;IACrG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAC1E,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,UAAU,KAAK,SAAS;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,WAAW,CAAC,QAAQ;YAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACnH,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,UAAU,CAAC,eAAe;YAC3I,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,cAAc,CAEtC,CAAC;QACd,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAM/C,CAAC;QACd,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,CAAC;QACzC,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,mBAAmB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,wBAAwB,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ;YAC9N,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,CAAC,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,wBAAwB,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChX,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAsB,EAAE,KAAkC,EAAE,UAAmB;IACxG,OAAO,eAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAuE,EAAE;QAC9I,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;YAC5B,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,GAAG,wBAAwB,IAAI,MAAM,CAAC,cAAc,GAAG,qBAAqB;YACxF,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QACxN,OAAO,eAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAiC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpQ,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAAC,OAAsB;IAC3C,MAAM,UAAU,GAAoC,CAAC,OAAgC,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1G,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,KAAK,GAGL,EAAE,CAAC;QACT,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,MAAM;YACV,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAc,CAAC;oBACjE,SAAS;gBACb,IAAI,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC;oBACpD,OAAO,EAAE,sBAAsB,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;oBACnE,SAAS;gBACb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAc,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,IAAI,KAAK,SAAS;oBAClB,SAAS;gBACb,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,OAAO,KAAK,SAAS;oBACrB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC/H,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;gBACjB,MAAM;QACd,CAAC;QACD,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS;YACvB,KAAK,MAAM,EAAE,IAAI,SAAS;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC9R,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACnK,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAoB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAA6B,EAAE,CAAC,CAAC;QACxX,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAiC,CAAC,GAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAqC,CAAC,GAAuB,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClH,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAkC,EAAE,UAAmB,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,0BAA0B,CAAC,CAAwC,CAAC;IACrN,MAAM,eAAe,GAAyC,CAAC,SAA0B,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9G,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC1F,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACzH,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC1F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS;gBAClB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACzH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBACrK,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpJ,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACjF,IAAI,WAAW,KAAK,SAAS;oBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBACjM,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU;oBACzC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS;wBACpE,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvK,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,WAA6B,CAAC,CAAC;gBACvF,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW;oBAC9B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzJ,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,CAA8B,CAAC;IACnG,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,UAAU;QACV,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE,CAAC,CAAC,KAAuB,EAAE,UAAmB,EAAE,EAAE,CAAC,IAAA,6CAA8B,EAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAoC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAA8B;QACzQ,cAAc,EAAE,mBAAmB;QACnC,eAAe;KAClB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,QAAQ,CAAC,IAAgB,EAAE,OAAgC;IAChE,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACnI,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,+BAAoB,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACrD,MAAM,OAAO,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9P,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,uBAAuB,CAAC,KAEhC,IAAuC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9J,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAA+B,CAAC;AAC3E,SAAS,0BAA0B,CAAC,IAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,yBAAyB,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,eAAM,CAAC,GAAG,CAAC;QACd,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,uCAA4B,EAAC,IAAA,2BAAgB,EAAC,QAAQ,CAAC,CAAC;QACnE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,4BAAiB;YAChD,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC;KAC/H,CAAC,CAAC;AACP,CAAC;AACD,SAAS,sBAAsB,CAAC,UAA2C;IACvE,QAAQ,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QACvF,KAAK,aAAa;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AACD,SAAS,aAAa,CAAC,IAAgB,EAAE,UAA2C;IAChF,QAAQ,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QACvF,KAAK,aAAa;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAgB;IACxC,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,qCAAkB,CAAC;YAC/C,KAAK,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC;YAC5D,WAAW,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzF,YAAY,EAAE,CAAC,IAAyB,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC7D,IAAI,IAAI,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;oBACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,mCAAuB,CAAC;wBAClD,IAAI,EAAE,2BAA2B;wBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;qBACtB,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,mCAAuB,CAAC;oBAClD,IAAI,EAAE,2BAA2B;oBACjC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB;iBAC9E,CAAC,CAAC,CAAC;YACR,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,cAAc,CAAC,KAE9B;IACG,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,MAAM,CAAC,CAAC;QAAC,IAAI,OAAO,KAAK,SAAS;YAC7H,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAAC,OAAO,OAAO,CAAC,WAAW,CAAC;IAAC,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,IAAA,sCAA2B,EAAC,YAAY,CAAC,CAAC;IAC3D,IAAI,eAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,+BAA+B,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,eAAe,GAAyC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpG,MAAM,gBAAgB,GAA0C,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAsD,CAAC;IAC1K,MAAM,yBAAyB,GAAmD,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAA+D,CAAC;IACpM,MAAM,OAAO,GAA6B,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACnK,MAAM,SAAS,GAAG,CAAC,OAGlB,EAAoB,EAAE,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7G,MAAM,eAAe,GAA+B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvG,MAAM,wBAAwB,GAAwC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAClI,MAAM,SAAS,GAA8C,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACpY,MAAM,UAAU,GAA+C,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,8BAAmB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAA+B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtS,MAAM,WAAW,GAAgD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAA8B,EAAE;QAC5N,IAAI,IAAI,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,sBAA+B;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAiD,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAClF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,0BAAmC;gBACzC,IAAI,EAAE,6BAAsC;aAC/C,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAiC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,iBAAiB;YACvM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC;YACjF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;aACrC,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,eAAe,GAAyC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACrP,CAAC;AACY,QAAA,UAAU,GAAkB,cAAc,CAAC,EAAE,OAAO,EAAG,iDAAkF,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAA,0DAA2C,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { Effect, Result, Exit, Option, Queue, Schema, Semaphore, Stream } from \"effect\";\nimport { encodeAttemptLocator } from \"../../attempt-locator.ts\";\nimport { RecordCoordination, type RecordCoordinationService } from \"../../coordination/record-leases.ts\";\nimport { makeRecordAttachmentCatalog, type AnyRecordAttachmentPersistence, type RecordAttachmentCatalog, type RecordAttachmentDefinition, type RecordAttachmentPersistence } from \"../attachment/index.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, isRecordAttachmentSchema, mintRecordAttachmentReference, recordAttachmentReferenceWire, resolveRecordAttachmentDefinition, RecordAttachmentReference } from \"../attachment/protocol.ts\";\nimport { isRecordTextContentHandle, mintRecordContentHandle, type RecordContentHandle, type RecordTextContentHandle } from \"../attachment/content.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, Sha256DigestSchema } from \"../codec/identifiers.ts\";\nimport { decodeAttemptDocument, decodeMemberDocument, decodeRecordDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRunDocument } from \"../codec/index.ts\";\nimport { canonicalizeRecordJson } from \"../definition/canonical.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport { NiceEvalRecordAttachmentPersistences } from \"../family/catalog.ts\";\nimport { attemptRecordAppendCommandRuntime, attemptRecordCollectionRuntime, recordContributionFromAttachmentPersistence, recordContributionRuntime, recordDefinitionAttachment, recordWriteCommandPayload, type AttemptRecordAppendCommand, type AttemptRecordCollectionDefinition, type AttemptRecordCollectionLimitation, type AttemptRecordCollectionRuntime, type RecordContribution, type RecordWriteCommand } from \"../authoring.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordDocument, RecordSlotIdentity, RunDocument } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext } from \"../model/run-context.ts\";\nimport { RECORD_FORMAT, compareCanonicalIdentity, type AttemptId, type RunId, type Sha256Digest, type SlotId } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RecordResourceLimitExceeded } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, type RecordEntropyService } from \"../platform/services.ts\";\nimport { FamilyDefinitionRequired, RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordIntegrityFailure, RecordMigrationPlanStale, RecordReaderClosed, RecordSealIncomplete, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError } from \"../reader/errors.ts\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns } from \"../maintenance/index.ts\";\nimport { ProjectStateDatabase, RECORD_SQLITE_CHUNK_BYTES, RECORD_SQLITE_MAX_PAGE_ROWS, RECORD_SQLITE_MAX_PUBLISH_BYTES, RECORD_SQLITE_MAX_PUBLISH_ROWS, RECORD_SQLITE_MAX_ROW_BYTES, SqliteRecordError, inspectProjectRecordDatabase, recordSqlitePath, type FinalizedAttachmentMetadata, type PersistedAttachmentReference, type PersistedCollectionItem, type PersistedContentChunk, type PersistedContentMetadata, type ProjectRecordDatabaseInspection, type SealedAttachmentMetadata, type SealedRunCore, type StorageWorkerClient } from \"../sqlite/index.ts\";\nimport { attachmentId, attachmentLogicalIdentity, collectionItemLogicalIdentity, compareCanonicalCodeUnits, contentId, hashCanonicalTuple } from \"../sqlite/seal.ts\";\nimport { prepareStreamingRecordAttachment, type AttachedContentError, type AttachedContentRequirements, type PreparedStreamingRecordAttachment, type RecordAttachmentSessionBuilder } from \"../writer/current-attachment.ts\";\nimport { recordAlreadyWritten, recordAppendCommandInvalid, recordAttachmentEncodeError, recordCollectionDefinitionInvalid, recordCollectionNotClosed, recordDraftStateError, recordOwnerDefinitionMismatch, recordWriterClosed } from \"../writer/errors.ts\";\nimport { encodeRecordJsonUtf8, RECORD_JSON_MAXIMUM_BYTES } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { AttemptRecordsWriter, AttemptWriteSession, CreateRunRequest, OwnerRecordsWriter, ReadableAttempt, ReadableRun, RecordAttachmentContentReader, RecordAttachmentRead, RecordCleanOperationPlan, RecordCleanOperationReceipt, RecordCompleteView, RecordHostSDK, RecordMaintenanceOperationFailure, RecordMaintenanceSession, RecordMigrateOperationPlan, RecordMigrateOperationReceipt, RecordMigrationPlan, RecordReadSession, RecordSealReceipt, RecordSelection, RecordSelectionProblem, RecordSelectionRequest, ReferenceRunWriteSession, RunCompletion, RunWriteSession, SelectedAttemptRef, SelectedOwnerRef, SelectedRunFacts, SelectedRunRef } from \"./types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand } from \"./types.ts\";\ntype AnyDefinition<Owner extends RecordAttachmentOwner = RecordAttachmentOwner> = RecordAttachmentDefinition<Owner, string, Schema.Top>;\ntype AnyPersistence = RecordAttachmentPersistence<AnyDefinition, number>;\nconst WRITE_DEADLINE_MS = 30000;\nconst MAILBOX_COMMANDS = 64;\nconst COLLECTION_READ_MAX_ROWS = 10000;\nconst WHOLE_VALUE_MAX_BYTES = 16 * 1024 * 1024;\nconst CONTENT_BATCH_CHUNKS = Math.min(4, Math.max(1, Math.floor(RECORD_SQLITE_MAX_PUBLISH_BYTES / RECORD_SQLITE_CHUNK_BYTES)));\nconst CONTENT_READ_PAGE_ROWS = Math.min(4, RECORD_SQLITE_MAX_PAGE_ROWS);\nconst canonicalLimits = Object.freeze({ maximumJsonBytes: RECORD_JSON_MAXIMUM_BYTES, maximumDepth: 64, maximumNodes: 100000, maximumObjectKeys: 10000, maximumArrayItems: 100000, maximumKeyUtf8Bytes: 16384, maximumStringUtf8Bytes: 1048576 });\nfunction digest(bytes: Uint8Array): Sha256Digest {\n const value = createHash(\"sha256\").update(bytes).digest(\"hex\");\n const decoded = Schema.decodeUnknownResult(Sha256DigestSchema)(value);\n if (Result.isFailure(decoded))\n throw new Error(\"invalid SHA-256\");\n return decoded.success;\n}\nfunction canonicalBytes(value: unknown): Uint8Array | undefined {\n const canonical = canonicalizeRecordJson(value, canonicalLimits);\n return Result.isFailure(canonical) ? undefined : encodeRecordJsonUtf8(canonical.success);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction invalidIssues(path: readonly string[] = []): NonEmptyRecordIssues { return nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\", path)])!; }\nfunction coreInvalid(): RecordCoreInvalid { return new RecordCoreInvalid({ code: \"record-core-invalid\", issues: invalidIssues([\"core\"]) }); }\nfunction deadline(): number { return Date.now() + WRITE_DEADLINE_MS; }\nfunction storageRoot(root: RecordRoot): string | undefined { return recordRootPaths(root)?.portableRoot; }\nfunction sameRoot(a: RecordRoot, b: RecordRoot): boolean { return storageRoot(a) !== undefined && storageRoot(a) === storageRoot(b); }\nfunction sqliteEffect<A>(operation: () => Promise<A>): Effect.Effect<A, SqliteRecordError> {\n return Effect.tryPromise({ try: operation, catch: (cause) => cause instanceof SqliteRecordError ? cause : new SqliteRecordError(\"record-sqlite-error\", \"record-host\", \"storage worker failed\", { cause }) });\n}\nfunction withWriteAdmission<A>(coordination: RecordCoordinationService, root: RecordRoot, operation: (deadlineEpochMs: number) => Promise<A>): Effect.Effect<A, RecordWriteError> {\n const deadlineEpochMs = deadline();\n return Effect.uninterruptibleMask((restore) => Effect.scoped(Effect.gen(function* () {\n yield* restore(coordination.enterRecordWriteBatch({\n root,\n deadlineEpochMs,\n }));\n // The storage worker owns the synchronous SQLite transaction. Once it has\n // admission, interruption waits for its Promise to settle so the scope\n // cannot release the writer owner before COMMIT or ROLLBACK.\n return yield* sqliteEffect(() => operation(deadlineEpochMs));\n })));\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor?.enumerable && \"value\" in descriptor ? descriptor.value : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean { return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.prototype.hasOwnProperty.call(value, key); }\ninterface StoredAttachment {\n readonly metadata: FinalizedAttachmentMetadata;\n readonly ownerKind: RecordAttachmentOwner;\n readonly ownerAttemptId?: AttemptId;\n readonly family: string;\n readonly revision: number;\n}\ninterface CollectionState {\n readonly authoring: AttemptRecordCollectionRuntime;\n readonly attachmentId: string;\n nextOrdinal: number;\n encodedBytes: number;\n readonly itemHash: ReturnType<typeof createHash>;\n completion?: {\n readonly state: \"complete\";\n } | {\n readonly state: \"partial\";\n readonly limitations: readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ];\n };\n}\ninterface AttemptRuntime {\n readonly run: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n outcome?: AttemptDocument[\"outcome\"];\n readonly families: Set<string>;\n readonly collections: Map<string, CollectionState>;\n pendingAppends: number;\n readonly appendAcks: Queue.Queue<void>;\n handle?: AttemptWriteSession;\n}\ninterface AppendCommand {\n readonly attempt: AttemptRuntime;\n readonly attachmentId: string;\n readonly bytes: number;\n readonly item: PersistedCollectionItem;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly coordination: RecordCoordinationService;\n readonly entropy: RecordEntropyService;\n readonly catalog: RecordAttachmentCatalog;\n readonly record: RecordDocument;\n readonly writerGeneration: string;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly lock: Semaphore.Semaphore;\n readonly queue: Queue.Queue<AppendCommand>;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly members: Map<SlotId, MemberDocument>;\n readonly reservations: Set<SlotId>;\n readonly families: Set<string>;\n readonly attachments: Map<string, StoredAttachment>;\n state: \"open\" | \"sealing\" | \"sealed\" | \"failed\";\n failure?: RecordWriteError;\n handle?: object;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ntype OwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly catalog: RecordAttachmentCatalog;\n readonly lifecycle: ReaderLifecycle;\n readonly runs: WeakMap<SelectedRunRef, RunId>;\n readonly attempts: WeakMap<SelectedAttemptRef, {\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n }>;\n readonly owners: WeakMap<SelectedOwnerRef, OwnerRuntime>;\n readonly selections: WeakSet<RecordSelection>;\n readonly coreCache: Map<RunId, SealedRunCore>;\n readonly runRefs: Map<RunId, SelectedRunRef>;\n readonly attemptRefs: Map<string, SelectedAttemptRef>;\n readonly content: WeakMap<RecordContentHandle, {\n readonly contentId: string;\n readonly logicalHandle: string;\n readonly byteLength: number;\n readonly digest: string;\n readonly chunkCount: number;\n }>;\n}\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<object, AttemptRuntime>();\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}>();\nexport function writerGenerationForRunSession(session: RunWriteSession | ReferenceRunWriteSession): string | undefined {\n return runSessions.get(session)?.writerGeneration;\n}\nexport function discardAttemptWriteSession(session: AttemptWriteSession): Effect.Effect<void, RecordWriteError> {\n const attempt = attemptSessions.get(session);\n if (attempt === undefined)\n return Effect.fail(recordWriterClosed());\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"failed\";\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.discardAttempt({\n runId: attempt.run.runId,\n writerGeneration: attempt.run.writerGeneration,\n attemptId: attempt.attemptId,\n deadlineEpochMs,\n }));\n attempt.run.attempts.delete(attempt.attemptId);\n attempt.run.reservations.delete(attempt.slotId);\n for (const [attachmentId, attachment] of attempt.run.attachments) {\n if (attachment.ownerKind === \"attempt\" && attachment.ownerAttemptId === attempt.attemptId) {\n attempt.run.attachments.delete(attachmentId);\n }\n }\n attemptSessions.delete(session);\n }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(attempt.run, error))));\n}\nfunction attachmentIdentity(owner: OwnerRuntime, family: string): string {\n return attachmentId({ runId: owner.runId, owner: owner.kind, ...(owner.kind === \"attempt\" ? { attemptId: owner.attemptId } : {}), family });\n}\nfunction contentIdentity(attachmentId: string, logicalHandle: string): string {\n return contentId(attachmentId, logicalHandle);\n}\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n if (left.byteLength !== right.byteLength)\n return false;\n for (let index = 0; index < left.byteLength; index += 1)\n if (left[index] !== right[index])\n return false;\n return true;\n}\nfunction attachmentMetadata(input: {\n readonly attachmentId: string;\n readonly payloadBytes: Uint8Array;\n readonly references: readonly PersistedAttachmentReference[];\n readonly contents: readonly PersistedContentMetadata[];\n readonly collection?: {\n readonly count: number;\n readonly byteLength: number;\n readonly digest: string;\n };\n}): FinalizedAttachmentMetadata {\n const canonicalDigest = digest(input.payloadBytes);\n const inventoryBytes = canonicalBytes({ references: input.references.map(({ ordinal, owner, family, referenceDigest }) => ({ ordinal, owner, family, digest: referenceDigest })), contents: input.contents, ...(input.collection === undefined ? {} : { collection: input.collection }) });\n if (inventoryBytes === undefined)\n throw new Error(\"invalid attachment inventory\");\n const inventoryDigest = digest(inventoryBytes);\n return Object.freeze({ attachmentId: input.attachmentId, logicalIdentity: attachmentLogicalIdentity(input.attachmentId, canonicalDigest, inventoryDigest), canonicalBytes: input.payloadBytes, canonicalDigest, logicalInventoryBytes: inventoryBytes, inventoryDigest, contents: Object.freeze([...input.contents]) });\n}\nfunction resolvePersistence(catalog: RecordAttachmentCatalog, definition: unknown, owner: RecordAttachmentOwner): Result.Result<AnyPersistence, RecordWriteError> {\n const attachment = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (attachment === undefined)\n return Result.fail(recordCollectionDefinitionInvalid());\n if (attachment.owner !== owner)\n return Result.fail(recordOwnerDefinitionMismatch({ expected: owner, actual: attachment.owner }));\n const persistence = catalog.persistence(attachment);\n return persistence === undefined ? Result.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner, family: attachment.family, revision: 1 })) : Result.succeed(persistence as AnyPersistence);\n}\nfunction poison(run: RunRuntime, error: RecordWriteError): void { if (run.failure === undefined)\n run.failure = error; run.state = \"failed\"; }\nfunction assertRunOpen(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n if (run.failure !== undefined)\n return Effect.fail(run.failure);\n return run.state === \"open\" ? Effect.void : Effect.fail(recordDraftStateError({ code: \"record-draft-state-invalid\", operation: \"record\", state: run.state === \"sealed\" ? \"published\" : run.state === \"failed\" ? \"failed\" : \"publishing\" }));\n}\nfunction makeBatches(commands: readonly AppendCommand[]): readonly (readonly AppendCommand[])[] {\n const result: AppendCommand[][] = [];\n let batch: AppendCommand[] = [];\n let bytes = 0;\n for (const command of commands) {\n if (batch.length > 0 && (command.attachmentId !== batch[0]!.attachmentId || batch.length >= RECORD_SQLITE_MAX_PUBLISH_ROWS || bytes + command.bytes > RECORD_SQLITE_MAX_PUBLISH_BYTES)) {\n result.push(batch);\n batch = [];\n bytes = 0;\n }\n batch.push(command);\n bytes += command.bytes;\n }\n if (batch.length > 0)\n result.push(batch);\n return result;\n}\nfunction collectionWorker(run: RunRuntime): Effect.Effect<never, never> {\n return Effect.forever(Effect.gen(function* () {\n const first = yield* Queue.take(run.queue);\n const tail = yield* Queue.clear(run.queue);\n for (const batch of makeBatches(Object.freeze([first, ...tail]))) {\n const exit = yield* Effect.exit(withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageCollectionItems({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId: batch[0]!.attachmentId, items: Object.freeze(batch.map(({ item }) => item)), deadlineEpochMs })));\n const attempt = batch[0]!.attempt;\n attempt.pendingAppends -= batch.length;\n yield* Queue.offer(attempt.appendAcks, undefined);\n if (Exit.isFailure(exit))\n yield* Effect.sync(() => poison(run, new SqliteRecordError(\"record-sqlite-error\", \"stage-collection-items\", \"collection batch failed\")));\n }\n })).pipe(Effect.catchCause(() => Effect.never));\n}\nfunction snapshotItem(authoring: AttemptRecordCollectionRuntime, item: unknown, ordinal: number): Result.Result<PersistedCollectionItem, RecordWriteError> {\n if (!isRecordAttachmentSchema(authoring.item))\n return Result.fail(recordAppendCommandInvalid());\n const encoded = Schema.encodeUnknownResult(authoring.item)(item);\n if (Result.isFailure(encoded))\n return Result.fail(recordAppendCommandInvalid());\n const bytes = canonicalBytes(encoded.success);\n if (bytes === undefined || bytes.byteLength > RECORD_SQLITE_MAX_ROW_BYTES)\n return Result.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: RECORD_SQLITE_MAX_ROW_BYTES, observedAtLeast: bytes?.byteLength ?? RECORD_SQLITE_MAX_ROW_BYTES + 1, path: authoring.attachment.family }));\n const canonicalDigest = digest(bytes);\n return Result.succeed(Object.freeze({ ordinal, logicalIdentity: collectionItemLogicalIdentity(ordinal, canonicalDigest), canonicalBytes: bytes, canonicalDigest }));\n}\nfunction admitCollection(run: RunRuntime, attempt: AttemptRuntime, authoring: AttemptRecordCollectionRuntime): Effect.Effect<CollectionState, RecordWriteError> {\n const current = attempt.collections.get(authoring.attachment.family);\n if (current !== undefined)\n return Effect.succeed(current);\n const attachmentId = attachmentIdentity({ kind: \"attempt\", runId: run.runId, attemptId: attempt.attemptId }, authoring.attachment.family);\n return Effect.gen(function* () {\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttachment({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId, ownerKind: \"attempt\", ownerRunId: run.runId, ownerAttemptId: attempt.attemptId, family: authoring.attachment.family, familyRevision: authoring.persistence.revision, deadlineEpochMs }));\n const state: CollectionState = { authoring, attachmentId, nextOrdinal: 0, encodedBytes: 0, itemHash: createHash(\"sha256\") };\n attempt.collections.set(authoring.attachment.family, state);\n attempt.families.add(authoring.attachment.family);\n return state;\n });\n}\nfunction appendCollectionBatch(attempt: AttemptRuntime, definition: unknown, items: readonly unknown[]): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n const run = attempt.run;\n return Effect.uninterruptibleMask(() => run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n const commands: AppendCommand[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const frozen = snapshotItem(authoring, items[index], collection.nextOrdinal + index);\n if (Result.isFailure(frozen))\n return yield* Effect.fail(frozen.failure);\n commands.push(Object.freeze({ attempt, attachmentId: collection.attachmentId, bytes: frozen.success.canonicalBytes.byteLength, item: frozen.success }));\n }\n attempt.pendingAppends += commands.length;\n // One bounded batch is offered atomically with respect to interruption;\n // the worker can always drain it without acquiring this lock.\n yield* Queue.offerAll(run.queue, commands);\n for (const command of commands) {\n collection.nextOrdinal += 1;\n collection.encodedBytes += command.bytes;\n collection.itemHash.update(command.item.canonicalBytes).update(\"\\n\");\n }\n return Object.freeze({ state: \"retained\" as const });\n })));\n}\nfunction appendCollection(attempt: AttemptRuntime, definition: unknown, item: unknown): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n return appendCollectionBatch(attempt, definition, [item]);\n}\nfunction closeCollection(attempt: AttemptRuntime, definition: unknown, completion: CollectionState[\"completion\"]): Effect.Effect<void, RecordWriteError> {\n return attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined || completion === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(attempt.run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n collection.completion = completion.state === \"complete\" ? Object.freeze({ state: \"complete\" as const }) : Object.freeze({ state: \"partial\" as const, limitations: Object.freeze(completion.limitations.map((value) => Object.freeze({ ...value }))) as readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ] });\n }));\n}\nfunction processContent<Error, Requirements>(input: {\n readonly run: RunRuntime;\n readonly attachmentId: string;\n readonly source: PreparedStreamingRecordAttachment<Error, Requirements>[\"contents\"][number];\n}): Effect.Effect<PersistedContentMetadata, RecordWriteError | Error, Requirements> {\n const contentId = contentIdentity(input.attachmentId, input.source.logicalHandle);\n return Effect.gen(function* () {\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitContent({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId: input.attachmentId, contentId, logicalHandle: input.source.logicalHandle, deadlineEpochMs }));\n const overall = createHash(\"sha256\");\n let ordinal = 0;\n let byteLength = 0;\n const available: Uint8Array[] = [];\n const takePending = (): Uint8Array => available.pop() ?? new Uint8Array(RECORD_SQLITE_CHUNK_BYTES);\n let pending = takePending();\n let pendingLength = 0;\n let batch: PersistedContentChunk[] = [];\n let batchBytes = 0;\n const flushBatch = (): Effect.Effect<void, RecordWriteError> => {\n if (batch.length === 0)\n return Effect.void;\n const frozen = Object.freeze(batch);\n batch = [];\n batchBytes = 0;\n return withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.appendContentChunks({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, contentId, chunks: frozen, deadlineEpochMs }))\n .pipe(Effect.map((returned) => { for (const value of returned)\n available.push(value); }));\n };\n const emit = (frozen: Uint8Array): Effect.Effect<void, RecordWriteError> => Effect.gen(function* () {\n overall.update(frozen);\n byteLength += frozen.byteLength;\n if (input.source.maximumBytes !== undefined && byteLength > input.source.maximumBytes)\n return yield* Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: input.source.maximumBytes, observedAtLeast: byteLength, path: input.source.logicalHandle }));\n batch.push(Object.freeze({ ordinal: ordinal++, bytes: frozen, chunkDigest: digest(frozen) }));\n batchBytes += frozen.byteLength;\n if (batch.length >= CONTENT_BATCH_CHUNKS || batchBytes >= RECORD_SQLITE_MAX_PUBLISH_BYTES)\n yield* flushBatch();\n });\n yield* Stream.runForEach(input.source.stream, (incoming) => Effect.gen(function* () {\n if (!(incoming instanceof Uint8Array))\n return yield* Effect.fail(recordAppendCommandInvalid());\n let offset = 0;\n while (offset < incoming.byteLength) {\n const take = Math.min(RECORD_SQLITE_CHUNK_BYTES - pendingLength, incoming.byteLength - offset);\n pending.set(incoming.subarray(offset, offset + take), pendingLength);\n pendingLength += take;\n offset += take;\n if (pendingLength === RECORD_SQLITE_CHUNK_BYTES) {\n yield* emit(pending);\n pending = takePending();\n pendingLength = 0;\n }\n }\n }));\n // A full pending buffer is uniquely owned here and can be transferred\n // directly. Only the final partial chunk needs an exact-size copy.\n if (pendingLength > 0)\n yield* emit(pending.slice(0, pendingLength));\n yield* flushBatch();\n return Object.freeze({ contentId, logicalHandle: input.source.logicalHandle, byteLength, digest: overall.digest(\"hex\"), chunkCount: ordinal });\n });\n}\nfunction writeAttachment<Owner extends RecordAttachmentOwner, Value>(input: {\n readonly run: RunRuntime;\n readonly owner: Owner;\n readonly attempt?: AttemptRuntime;\n readonly persistence: AnyPersistence;\n readonly value: Value | ((builder: RecordAttachmentSessionBuilder) => Value);\n}): Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>> {\n const targetFamilies = input.attempt?.families ?? input.run.families;\n const family = input.persistence.attachment.family;\n const ownerRuntime: OwnerRuntime = input.owner === \"run\" ? { kind: \"run\", runId: input.run.runId } : { kind: \"attempt\", runId: input.run.runId, attemptId: input.attempt!.attemptId };\n return Effect.gen(function* () {\n yield* input.run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(input.run); if (input.attempt !== undefined && input.attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed()); if (targetFamilies.has(family))\n return yield* Effect.fail(recordAlreadyWritten({ owner: input.owner, family })); targetFamilies.add(family); }));\n const prepared = yield* prepareStreamingRecordAttachment({ definition: input.persistence.attachment, value: input.value as never });\n const attachmentId = attachmentIdentity(ownerRuntime, family);\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitAttachment({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, ownerKind: input.owner, ownerRunId: input.run.runId, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, familyRevision: input.persistence.revision, deadlineEpochMs }));\n const contents = yield* Effect.forEach(prepared.contents, (source) => processContent({ run: input.run, attachmentId, source }), { concurrency: 1 });\n const references: PersistedAttachmentReference[] = prepared.references.map((reference, ordinal) => { const bytes = canonicalBytes(reference); if (bytes === undefined)\n throw new Error(\"invalid reference\"); return Object.freeze({ ordinal, owner: reference.owner, family: reference.family, canonicalBytes: bytes, referenceDigest: digest(bytes) }); });\n for (let offset = 0; offset < references.length; offset += RECORD_SQLITE_MAX_PUBLISH_ROWS) {\n const refs = Object.freeze(references.slice(offset, offset + RECORD_SQLITE_MAX_PUBLISH_ROWS));\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.stageAttachmentReferences({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, references: refs, deadlineEpochMs }));\n }\n const metadata = attachmentMetadata({ attachmentId, payloadBytes: prepared.payloadBytes, references, contents });\n input.run.attachments.set(attachmentId, Object.freeze({ metadata, ownerKind: input.owner, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, revision: input.persistence.revision }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(input.run, error as RecordWriteError)))) as Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>>;\n}\nfunction finishCollections(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n for (const collection of attempt.collections.values())\n if (collection.completion === undefined)\n return yield* Effect.fail(recordCollectionNotClosed(collection.authoring.attachment.family));\n while (attempt.pendingAppends > 0)\n yield* Queue.take(attempt.appendAcks);\n if (attempt.run.failure !== undefined)\n return yield* Effect.fail(attempt.run.failure);\n for (const collection of attempt.collections.values()) {\n const completion = collection.completion!;\n const shell = { collection: completion.state === \"complete\" ? { state: \"complete\" as const, limitations: [] as const } : { state: \"partial\" as const, limitations: completion.limitations }, items: [] as const };\n if (!isRecordAttachmentSchema(collection.authoring.attachment.schema))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const encoded = Schema.encodeUnknownResult(collection.authoring.attachment.schema)(shell);\n if (Result.isFailure(encoded))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const payloadBytes = canonicalBytes(encoded.success);\n if (payloadBytes === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const metadata = attachmentMetadata({ attachmentId: collection.attachmentId, payloadBytes, references: [], contents: [], collection: { count: collection.nextOrdinal, byteLength: collection.encodedBytes, digest: collection.itemHash.digest(\"hex\") } });\n attempt.run.attachments.set(collection.attachmentId, Object.freeze({ metadata, ownerKind: \"attempt\", ownerAttemptId: attempt.attemptId, family: collection.authoring.attachment.family, revision: collection.authoring.persistence.revision }));\n }\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"completing\";\n const unclosed = [...attempt.collections.values()].find(({ completion }) => completion === undefined);\n if (unclosed !== undefined) {\n attempt.state = \"failed\";\n return yield* Effect.fail(recordCollectionNotClosed(unclosed.authoring.attachment.family));\n }\n }));\n yield* finishCollections(attempt);\n const slot = attempt.run.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n attempt.outcome = outcome;\n attempt.run.members.set(attempt.slotId, Object.freeze({ slotId: attempt.slotId, action: \"executed\", attempt: Object.freeze({ originRunId: attempt.run.runId, attemptId: attempt.attemptId }) }));\n attempt.state = \"completed\";\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle);\n const metadata = buildRunMetadata(attempt.run, Date.now() as RunDocument[\"completedAt\"]);\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.stageRunPublicationMetadata({ ...metadata, deadlineEpochMs }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => { attempt.state = \"failed\"; poison(attempt.run, error); })));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(attempt.run.catalog, definition, \"attempt\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run: attempt.run, owner: \"attempt\", attempt, persistence: persistence.success, value }); };\n const record = Object.freeze({\n write<Value, Error, Requirements>(command: RecordWriteCommand<\"attempt\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"attempt\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); },\n start(definition: AttemptRecordCollectionDefinition<string, Schema.Top>) { const authoring = attemptRecordCollectionRuntime(definition); return authoring === undefined ? Effect.fail(recordCollectionDefinitionInvalid()) : admitCollection(attempt.run, attempt, authoring).pipe(Effect.asVoid); },\n append<Item>(command: AttemptRecordAppendCommand<Item>) { const runtime = attemptRecordAppendCommandRuntime(command); return runtime === undefined ? Effect.fail(recordAppendCommandInvalid()) : appendCollection(attempt, runtime.definition, runtime.item); },\n }) as AttemptWriteSession[\"record\"];\n const append: AttemptRecordsWriter[\"append\"] = (definition, item) => appendCollection(attempt, definition, item);\n const appendAll: AttemptRecordsWriter[\"appendAll\"] = <Definition extends AttemptRecordCollectionDefinition<string, Schema.Top>, Error, Requirements>(definition: Definition, items: Stream.Stream<Schema.Schema.Type<Definition[\"item\"]>, Error, Requirements>) => items.pipe(Stream.grouped(MAILBOX_COMMANDS), Stream.runForEach((group) => appendCollectionBatch(attempt, definition, group).pipe(Effect.asVoid)));\n const close: AttemptRecordsWriter[\"close\"] = (definition, completion) => closeCollection(attempt, definition, completion);\n const records: AttemptRecordsWriter = Object.freeze({ write: writeDefinition as AttemptRecordsWriter[\"write\"], append, appendAll, close });\n const session: AttemptWriteSession = Object.freeze({ attemptId: attempt.attemptId, slotId: attempt.slotId, [attemptWriteSessionBrand]: () => undefined, complete: (outcome: AttemptDocument[\"outcome\"]) => attemptSessions.get(session) === attempt ? completeAttempt(attempt, outcome) : Effect.fail(recordWriterClosed()), attach: writeDefinition as AttemptWriteSession[\"attach\"], record, records });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction mintId<A>(entropy: RecordEntropyService, schema: Schema.Codec<A, string>): Effect.Effect<A, RecordWriteError> {\n return Effect.flatMap(entropy.uuid, (raw) => { const decoded = Schema.decodeUnknownResult(schema)(raw); return Result.isFailure(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.success); });\n}\nfunction createAttempt(run: RunRuntime, slotId: SlotId): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid());\n const attemptId = yield* mintId(run.entropy, AttemptIdSchema);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttempt({ runId: run.runId, writerGeneration: run.writerGeneration, attemptId, attemptLocator: encodeAttemptLocator(attemptId), deadlineEpochMs }));\n const appendAcks = yield* Queue.unbounded<void>();\n const attempt: AttemptRuntime = { run, attemptId, slotId, state: \"open\", families: new Set(), collections: new Map(), pendingAppends: 0, appendAcks };\n run.attempts.set(attemptId, attempt);\n run.reservations.add(slotId);\n return makeAttemptSession(attempt);\n }));\n}\nfunction selectedReference(run: RunRuntime, ref: SelectedAttemptRef): boolean { const capability = selectedAttemptCapabilities.get(ref); return capability !== undefined && !capability.lifecycle.closed && sameRoot(capability.root, run.root); }\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!selectedReference(run, input.attempt))\n return yield* Effect.fail(new RecordReferenceInvalid({ code: \"record-reference-invalid\" })); if (!run.expectedBySlot.has(input.slotId) || run.reservations.has(input.slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(input.slotId, Object.freeze({ slotId: input.slotId, action: input.action, attempt: Object.freeze({ originRunId: input.attempt.originRunId, attemptId: input.attempt.attemptId }) })); run.reservations.add(input.slotId); }));\n}\nfunction terminalMember(run: RunRuntime, slotId: SlotId, action: \"not-dispatched\" | \"interrupted\", absenceReason: import(\"../../run/protocol.ts\").RunAbsenceReason): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(slotId, Object.freeze({ slotId, action, attempt: null, absenceReason })); run.reservations.add(slotId); }));\n}\nfunction encodeCore(value: unknown): {\n readonly bytes: Uint8Array;\n readonly digest: string;\n} | undefined { const bytes = canonicalBytes(value); return bytes === undefined ? undefined : Object.freeze({ bytes, digest: digest(bytes) }); }\nfunction buildRunMetadata(run: RunRuntime, completedAt: RunDocument[\"completedAt\"]) {\n const runDocument: RunDocument = Object.freeze({ runId: run.runId, experimentId: run.experimentId, context: run.context, startedAt: run.startedAt, completedAt, expectedSlots: run.expectedSlots });\n const recordEncoded = encodeRecordDocument(run.record), runEncoded = encodeRunDocument(runDocument);\n if (Result.isFailure(recordEncoded) || Result.isFailure(runEncoded))\n throw new Error(\"invalid run core\");\n const recordCore = encodeCore(recordEncoded.success), runCore = encodeCore(runEncoded.success);\n if (recordCore === undefined || runCore === undefined)\n throw new Error(\"invalid run core\");\n const slots = run.expectedSlots.map((slot, ordinal) => { const core = encodeCore(slot)!; return Object.freeze({ slotId: slot.slotId, ordinal, coreBytes: core.bytes, coreDigest: core.digest }); });\n const attempts = [...run.attempts.values()].filter((attempt) => attempt.state === \"completed\").sort((a, b) => compareCanonicalIdentity(a.attemptId, b.attemptId)).map((attempt) => { const slot = run.expectedBySlot.get(attempt.slotId)!; const encoded = encodeAttemptDocument(Object.freeze({ attemptId: attempt.attemptId, originRunId: run.runId, slotId: attempt.slotId, evalId: slot.evalId, executionIdentityDigest: slot.executionIdentityDigest, outcome: attempt.outcome! })); if (Result.isFailure(encoded))\n throw new Error(\"invalid attempt\"); const core = encodeCore(encoded.success)!; return Object.freeze({ attemptId: attempt.attemptId, attemptLocator: encodeAttemptLocator(attempt.attemptId), coreBytes: core.bytes, coreDigest: core.digest }); });\n const members = [...run.members.values()].sort((a, b) => compareCanonicalIdentity(a.slotId, b.slotId)).map((member) => { const encoded = encodeMemberDocument(member); if (Result.isFailure(encoded))\n throw new Error(\"invalid member\"); const core = encodeCore(encoded.success)!; return Object.freeze({ slotId: member.slotId, ...(member.attempt === null ? {} : { originRunId: member.attempt.originRunId, attemptId: member.attempt.attemptId }), action: member.action, coreBytes: core.bytes, coreDigest: core.digest }); });\n return Object.freeze({ runId: run.runId, writerGeneration: run.writerGeneration, startedAt: new Date(run.startedAt).toISOString(), recordCoreBytes: recordCore.bytes, recordCoreDigest: recordCore.digest, runCoreBytes: runCore.bytes, runCoreDigest: runCore.digest, slots: Object.freeze(slots), attempts: Object.freeze(attempts), members: Object.freeze(members), attachments: Object.freeze([...run.attachments.values()].map(({ metadata, ownerKind, ownerAttemptId, family, revision }) => Object.freeze({ ...metadata, ownerKind, ownerRunId: run.runId, ...(ownerAttemptId === undefined ? {} : { ownerAttemptId }), family, familyRevision: revision }))) });\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.gen(function* () {\n yield* run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if ([...run.attempts.values()].some(({ state }) => state !== \"completed\") || run.members.size !== run.expectedSlots.length)\n return yield* Effect.fail(coreInvalid()); run.state = \"sealing\"; }));\n const finalMetadata = buildRunMetadata(run, completion.completedAt);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageRunFinalMetadata({ ...finalMetadata, deadlineEpochMs }));\n // Full Content/collection closure verification is read-only and does not\n // monopolize the FIFO writer ticket. The following fence is one short txn.\n const prepared = yield* sqliteEffect(() => run.client.prepareRunFinalization({ runId: run.runId, writerGeneration: run.writerGeneration, deadlineEpochMs: deadline() }));\n const finalized = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.fenceRunFinalization({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n mutationSequence: prepared.mutationSequence,\n expectedLogicalSealIdentity: prepared.logicalSealIdentity,\n expectedSealEntryCount: prepared.sealEntryCount,\n deadlineEpochMs,\n }));\n let sealOrdinal: number | null = 0;\n while (sealOrdinal !== null) {\n const staged = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageSealEntries({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n expectedLogicalSealIdentity: finalized.logicalSealIdentity,\n startOrdinal: sealOrdinal!,\n maximumRows: 256,\n deadlineEpochMs,\n }));\n sealOrdinal = staged.nextOrdinal;\n }\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.publishRunSeal({ runId: run.runId, writerGeneration: run.writerGeneration, expectedLogicalSealIdentity: finalized.logicalSealIdentity, deadlineEpochMs }));\n run.state = \"sealed\";\n if (run.handle !== undefined)\n runSessions.delete(run.handle);\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(run, error))));\n}\nfunction makeRunSession(run: RunRuntime, referenceOnly: boolean): RunWriteSession | ReferenceRunWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(run.catalog, definition, \"run\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run, owner: \"run\", persistence: persistence.success, value }); };\n const record = Object.freeze({ write<Value, Error, Requirements>(command: RecordWriteCommand<\"run\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"run\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); } }) as RunWriteSession[\"record\"];\n const records: OwnerRecordsWriter<\"run\"> = Object.freeze({ write: writeDefinition as OwnerRecordsWriter<\"run\">[\"write\"] });\n let session: RunWriteSession | ReferenceRunWriteSession;\n const common = { runId: run.runId, [runWriteSessionBrand]: () => undefined, referenceAttempt: (input: Parameters<RunWriteSession[\"referenceAttempt\"]>[0]) => referenceAttempt(run, input), recordAcceptedMembership: (input: Parameters<RunWriteSession[\"recordAcceptedMembership\"]>[0]) => referenceAttempt(run, { ...input, action: \"accepted\" }), recordTerminalMember: (input: Parameters<RunWriteSession[\"recordTerminalMember\"]>[0]) => terminalMember(run, input.slotId, input.action, input.absenceReason), attach: writeDefinition as RunWriteSession[\"attach\"], record, records, seal: (completion: RunCompletion) => runSessions.get(session) === run ? sealRun(run, completion) : Effect.fail(recordWriterClosed()) };\n session = Object.freeze(referenceOnly ? common : { ...common, createAttempt: ({ slotId }: {\n readonly slotId: SlotId;\n }) => createAttempt(run, slotId) }) as RunWriteSession | ReferenceRunWriteSession;\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction deterministicRecord(root: RecordRoot): RecordDocument | undefined {\n const path = storageRoot(root);\n if (path === undefined)\n return undefined;\n const format = Schema.decodeUnknownResult(RecordFormatSchema)(RECORD_FORMAT);\n const id = Schema.decodeUnknownResult(RecordIdSchema)(`record-${createHash(\"sha256\").update(path).digest(\"hex\")}`);\n return Result.isFailure(format) || Result.isFailure(id) ? undefined : Object.freeze({ format: format.success, recordId: id.success });\n}\nfunction openNewRuntime(request: CreateRunRequest, catalog: RecordAttachmentCatalog, referenceOnly: boolean): Effect.Effect<RunWriteSession | ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordEntropy | RecordCoordination | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const expectedIssues = validateExpectedSlots(request.expectedSlots), context = canonicalizeRunContext(request.context);\n if (expectedIssues.length > 0 || Result.isFailure(context) || context.success.experimentId !== request.experimentId)\n return yield* Effect.fail(new RecordCoreInvalid({ code: \"record-core-invalid\", issues: nonEmptyRecordIssues(expectedIssues) ?? invalidIssues([\"context\"]) }));\n const rootPath = storageRoot(request.root), record = deterministicRecord(request.root);\n if (rootPath === undefined || record === undefined)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination, entropy = yield* RecordEntropy;\n const runId = yield* mintId(entropy, RunIdSchema);\n const writerGeneration = request.writerGeneration ?? (yield* entropy.uuid);\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n yield* withWriteAdmission(coordination, request.root, (deadlineEpochMs) => client.beginRun({ runId, writerGeneration, startedAt: new Date(request.startedAt).toISOString(), deadlineEpochMs }));\n const lock = yield* Semaphore.make(1), queue = yield* Queue.bounded<AppendCommand>(MAILBOX_COMMANDS);\n const run: RunRuntime = { root: request.root, client, coordination, entropy, catalog, record, writerGeneration, runId, experimentId: request.experimentId, context: context.success, startedAt: request.startedAt, expectedSlots: Object.freeze([...request.expectedSlots]), expectedBySlot: new Map(request.expectedSlots.map((slot) => [slot.slotId, slot])), lock, queue, attempts: new Map(), members: new Map(), reservations: new Set(), families: new Set(), attachments: new Map(), state: \"open\" };\n yield* Effect.forkScoped(collectionWorker(run));\n yield* Effect.addFinalizer(() => Effect.sync(() => { if (run.state !== \"sealed\")\n run.state = \"failed\"; if (run.handle !== undefined)\n runSessions.delete(run.handle); for (const attempt of run.attempts.values())\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle); }));\n return makeRunSession(run, referenceOnly);\n });\n}\nfunction decodeCore(core: SealedRunCore): {\n readonly record: RecordDocument;\n readonly run: RunDocument;\n readonly attempts: readonly AttemptDocument[];\n readonly members: readonly MemberDocument[];\n} | undefined {\n const rj = parseJson(core.recordCoreBytes), uj = parseJson(core.runCoreBytes);\n const record = rj === undefined ? undefined : decodeRecordDocument(rj), run = uj === undefined ? undefined : decodeRunDocument(uj);\n if (record === undefined || run === undefined || Result.isFailure(record) || Result.isFailure(run) || run.success.runId !== core.runId)\n return undefined;\n const attempts: AttemptDocument[] = [], members: MemberDocument[] = [];\n for (const value of core.attempts) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeAttemptDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n attempts.push(decoded.success);\n }\n for (const value of core.members) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeMemberDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n members.push(decoded.success);\n }\n return Object.freeze({ record: record.success, run: run.success, attempts: Object.freeze(attempts), members: Object.freeze(members) });\n}\nfunction readCore(runtime: ReaderRuntime, runId: RunId): Effect.Effect<SealedRunCore | undefined, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const cached = runtime.coreCache.get(runId);\n return cached === undefined ? sqliteEffect(() => runtime.client.readSealedRunCore(runId)).pipe(Effect.mapError((error) => error.code === \"record-database-invalid\" || error.code === \"record-seal-incomplete\"\n ? new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"publication-closure-invalid\" })\n : error), Effect.tap((core) => Effect.sync(() => { if (core !== undefined)\n runtime.coreCache.set(runId, core); }))) : Effect.succeed(cached);\n}\nfunction runRef(runtime: ReaderRuntime, runId: RunId): SelectedRunRef {\n const old = runtime.runRefs.get(runId);\n if (old !== undefined)\n return old;\n const ref: SelectedRunRef = Object.freeze({ runId, [selectedRunRefBrand]: () => undefined });\n runtime.runRefs.set(runId, ref);\n runtime.runs.set(ref, runId);\n return ref;\n}\nfunction attemptRef(runtime: ReaderRuntime, runId: RunId, attemptId: AttemptId, publicationIdentity?: SelectedAttemptRef[\"publicationIdentity\"]): SelectedAttemptRef {\n const key = hashCanonicalTuple(\"niceeval.record.attempt-ref/v1\", [runId, attemptId]), old = runtime.attemptRefs.get(key);\n if (old !== undefined)\n return old;\n const ref: SelectedAttemptRef = Object.freeze({ originRunId: runId, attemptId, ...(publicationIdentity === undefined ? {} : { publicationIdentity }), [selectedAttemptRefBrand]: () => undefined });\n runtime.attemptRefs.set(key, ref);\n runtime.attempts.set(ref, { runId, attemptId });\n selectedAttemptCapabilities.set(ref, { root: runtime.root, lifecycle: runtime.lifecycle });\n return ref;\n}\nfunction ownerRef<Owner extends \"run\" | \"attempt\">(runtime: ReaderRuntime, owner: Extract<OwnerRuntime, {\n readonly kind: Owner;\n}>): SelectedOwnerRef<Owner> { const ref: SelectedOwnerRef<Owner> = Object.freeze({ [selectedOwnerRefBrand]: () => undefined }); runtime.owners.set(ref, owner); return ref; }\nfunction readRun(runtime: ReaderRuntime, ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, runId), (core): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"run\", runId }), document: decoded.run, members: Object.freeze(decoded.members.map((document) => Object.freeze({ document, attempt: document.attempt === null ? null : attemptRef(runtime, document.attempt.originRunId, document.attempt.attemptId, core.members.find((member) => member.slotId === document.slotId)?.publicationIdentity) }))) }) }));\n });\n}\nfunction readAttempt(runtime: ReaderRuntime, ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const location = runtime.attempts.get(ref);\n if (location === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, location.runId), (core): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"core-invalid\" }));\n const document = decoded.attempts.find(({ attemptId }) => attemptId === location.attemptId);\n if (document === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"publication-closure-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"attempt\", runId: location.runId, attemptId: location.attemptId }), document, origin: Object.freeze({ owner: ownerRef(runtime, { kind: \"run\", runId: location.runId }), runId: location.runId, experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, context: decoded.run.context }) }) }));\n });\n}\nfunction findAttachment(core: SealedRunCore, owner: OwnerRuntime, family: string): SealedAttachmentMetadata | undefined { return core.attachments.find((a) => a.family === family && a.ownerKind === owner.kind && (owner.kind === \"run\" || a.ownerAttemptId === owner.attemptId)); }\nfunction contentStream(runtime: ReaderRuntime, handle: RecordContentHandle): Stream.Stream<Uint8Array, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const metadata = runtime.content.get(handle);\n if (metadata === undefined)\n return Stream.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type ContentReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<ContentReadState, Uint8Array, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readContentChunkPage(metadata.contentId, state.after, CONTENT_READ_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (page.chunks.length === 0) {\n return state.ordinal === metadata.chunkCount && state.byteLength === metadata.byteLength && hash.digest(\"hex\") === metadata.digest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: Uint8Array[] = [];\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== ordinal || digest(chunk.bytes) !== chunk.chunkDigest)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content chunk inventory is invalid\"));\n const bytes = chunk.bytes;\n hash.update(bytes);\n byteLength += bytes.byteLength;\n ordinal += 1;\n output.push(bytes);\n }\n const after = page.chunks[page.chunks.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\nfunction contentReader(runtime: ReaderRuntime): RecordAttachmentContentReader {\n const byteLength = (handle: RecordContentHandle): Effect.Effect<number, RecordReaderReadError> => { if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" })); const metadata = runtime.content.get(handle); return metadata === undefined ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.succeed(metadata.byteLength); };\n const bytes = (handle: RecordContentHandle): Effect.Effect<Uint8Array, RecordReaderReadError> => Effect.flatMap(byteLength(handle), (size) => size > WHOLE_VALUE_MAX_BYTES ? Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: size, path: \"content\" })) : Stream.runCollect(contentStream(runtime, handle)).pipe(Effect.map((chunks) => { const output = new Uint8Array(size); let offset = 0; for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n } return output; })));\n return Object.freeze({ byteLength, bytes, text: (handle: RecordTextContentHandle) => !isRecordTextContentHandle(handle) ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.flatMap(bytes(handle), (value) => Effect.try({ try: () => new TextDecoder(\"utf-8\", { fatal: true }).decode(value), catch: () => new RecordHandleInvalid({ code: \"record-handle-invalid\" }) })), stream: (handle: RecordContentHandle) => contentStream(runtime, handle) });\n}\nfunction hydrateAttachment(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, persistence: AnyPersistence): RecordAttachmentRead<unknown> {\n if (attachment.familyRevision !== persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n const payload = parseJson(attachment.canonicalBytes);\n if (payload === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\"]) });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\", \"digest\"]) });\n const byHandle = new Map(attachment.contents.map((content) => [content.logicalHandle, content])), used = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, payload, { content: (token, declaration) => { const logicalHandle = exactMarker(token, \"$niceeval.record.content\"); if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\"))\n return Result.succeed(undefined); const metadata = typeof logicalHandle === \"string\" ? byHandle.get(logicalHandle) : undefined; if (metadata === undefined || declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const }); const handle = mintRecordContentHandle(declaration.kind); runtime.content.set(handle, metadata); used.add(logicalHandle as string); return Result.succeed(handle); }, reference: (token, declaration) => { const marker = exactMarker(token, \"$niceeval.record.reference\"); if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\"))\n return Result.succeed(undefined); if (typeof marker !== \"object\" || marker === null || Array.isArray(marker))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); const value = marker as Record<string, unknown>; if (value.owner !== declaration.definition.owner || value.family !== declaration.definition.family || !(\"value\" in value))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value)); } });\n if (Result.isFailure(hydrated) || used.size !== attachment.contents.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const logicalReferences = new Map<string, {\n readonly owner: RecordAttachmentOwner;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\"]) });\n logicalReferences.set(hashCanonicalTuple(\"niceeval.record.reference-family/v1\", [wire.owner, wire.family]), Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const ordered = [...logicalReferences.values()].sort((left, right) => compareCanonicalCodeUnits(left.owner, right.owner) || compareCanonicalCodeUnits(left.family, right.family));\n if (ordered.length !== attachment.references.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", \"count\"]) });\n for (let ordinal = 0; ordinal < ordered.length; ordinal += 1) {\n const logical = ordered[ordinal]!, physical = attachment.references[ordinal]!, canonical = canonicalBytes(logical);\n if (canonical === undefined || physical.ordinal !== ordinal || physical.owner !== logical.owner || physical.family !== logical.family || !bytesEqual(physical.canonicalBytes, canonical) || digest(physical.canonicalBytes) !== physical.referenceDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", String(ordinal)]) });\n }\n return Object.freeze({ state: \"available\", value: hydrated.success, content: contentReader(runtime) });\n}\nfunction readFamily(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue);\n if (owner === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const resolved = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (resolved === undefined || resolved.owner !== owner.kind)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const persistence = runtime.catalog.persistence(resolved);\n if (persistence === undefined)\n return Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: owner.kind, family: resolved.family, revision: 1 }));\n return Effect.map(readCore(runtime, owner.runId), (core) => { if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" as const }); const attachment = findAttachment(core, owner, resolved.family); return attachment === undefined ? Object.freeze({ state: \"not-recorded\" as const }) : hydrateAttachment(runtime, attachment, persistence as AnyPersistence); });\n}\nfunction collectionStream(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, authoring: AttemptRecordCollectionRuntime, expectedDigest: string): Stream.Stream<unknown, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type CollectionReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<CollectionReadState, unknown, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readCollectionItemPage(attachment.attachmentId, state.after, RECORD_SQLITE_MAX_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (page.items.length === 0) {\n return state.ordinal === attachment.collectionItemCount && state.byteLength === attachment.collectionItemByteLength && hash.digest(\"hex\") === expectedDigest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: unknown[] = [];\n for (const item of page.items) {\n const value = parseJson(item.canonicalBytes), canonicalDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || canonicalDigest !== item.canonicalDigest || item.logicalIdentity !== collectionItemLogicalIdentity(ordinal, canonicalDigest) || value === undefined)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection item inventory is invalid\"));\n if (!isRecordAttachmentSchema(authoring.item))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const decoded = Schema.decodeUnknownResult(authoring.item)(value);\n if (Result.isFailure(decoded))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n hash.update(item.canonicalBytes).update(\"\\n\");\n byteLength += item.canonicalBytes.byteLength;\n ordinal += 1;\n output.push(decoded.success);\n }\n const after = page.items[page.items.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\ntype OpenCollectionResult = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly revision: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n} | {\n readonly state: \"available\";\n readonly collection: unknown;\n readonly logicalIdentity: string;\n readonly logicalSealIdentity: string;\n readonly count: number;\n readonly digest: string;\n readonly canonicalBytes: number;\n readonly items: Stream.Stream<unknown, RecordReaderReadError>;\n};\ntype PublicOpenCollectionResult = Exclude<OpenCollectionResult, {\n readonly state: \"available\";\n}> | Omit<Extract<OpenCollectionResult, {\n readonly state: \"available\";\n}>, \"canonicalBytes\">;\nfunction publicOpenCollectionResult(opened: OpenCollectionResult): PublicOpenCollectionResult {\n if (opened.state !== \"available\")\n return opened;\n return Object.freeze({\n state: \"available\",\n collection: opened.collection,\n logicalIdentity: opened.logicalIdentity,\n logicalSealIdentity: opened.logicalSealIdentity,\n count: opened.count,\n digest: opened.digest,\n items: opened.items,\n });\n}\nfunction openCollection(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<OpenCollectionResult, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue), authoring = attemptRecordCollectionRuntime(definition);\n if (owner === undefined || owner.kind !== \"attempt\" || authoring === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.map(readCore(runtime, owner.runId), (core) => {\n if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n const attachment = findAttachment(core, owner, authoring.attachment.family);\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n if (attachment.familyRevision !== authoring.persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\", \"digest\"]) });\n const payload = parseJson(attachment.canonicalBytes) as {\n readonly collection?: unknown;\n } | undefined;\n const inventory = parseJson(attachment.logicalInventoryBytes) as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n } | undefined;\n const collection = inventory?.collection;\n if (payload?.collection === undefined || collection === undefined || collection.count !== attachment.collectionItemCount || collection.byteLength !== attachment.collectionItemByteLength || typeof collection.digest !== \"string\")\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\"]) });\n return Object.freeze({ state: \"available\", collection: payload.collection, logicalIdentity: attachment.logicalIdentity, logicalSealIdentity: core.logicalSealIdentity, count: attachment.collectionItemCount, digest: collection.digest, canonicalBytes: attachment.collectionItemByteLength, items: collectionStream(runtime, attachment, authoring, collection.digest) });\n });\n}\nfunction readCollectionWhole(runtime: ReaderRuntime, owner: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n return Effect.flatMap(openCollection(runtime, owner, definition), (opened): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> => {\n if (opened.state !== \"available\")\n return Effect.succeed(opened);\n if (opened.count > COLLECTION_READ_MAX_ROWS || opened.canonicalBytes > WHOLE_VALUE_MAX_BYTES)\n return Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: opened.canonicalBytes, path: \"collection\" }));\n return Stream.runCollect(opened.items).pipe(Effect.map((items): RecordAttachmentRead<unknown> => Object.freeze({ state: \"available\", value: Object.freeze({ collection: opened.collection, items: Object.freeze(items) }), content: contentReader(runtime) })));\n });\n}\nfunction makeReadSession(runtime: ReaderRuntime): RecordReadSession {\n const selectRuns: RecordReadSession[\"selectRuns\"] = (request?: RecordSelectionRequest) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const requested = request?.runIds === undefined ? undefined : new Set(request.runIds);\n const cores: {\n readonly core: SealedRunCore;\n readonly decoded: NonNullable<ReturnType<typeof decodeCore>>;\n }[] = [];\n let after = \"\";\n while (true) {\n const page = yield* sqliteEffect(() => runtime.client.listSealedRunSummaries(after, 100));\n if (page.length === 0)\n break;\n for (const summary of page) {\n after = summary.runId;\n if (requested !== undefined && !requested.has(summary.runId as RunId))\n continue;\n if (summary.logicalSealIdentity.startsWith(\"published:\") &&\n request?.includePublishedActive !== true && requested === undefined)\n continue;\n const runId = summary.runId as RunId;\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n continue;\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return yield* Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n cores.push({ core, decoded });\n }\n if (page.length < 100)\n break;\n }\n const problems: RecordSelectionProblem[] = [];\n if (requested !== undefined)\n for (const id of requested)\n if (!cores.some(({ core }) => core.runId === id))\n problems.push(Object.freeze({ code: \"selection-run-missing\", runId: id }));\n const runRefs = cores.map(({ core }) => runRef(runtime, core.runId as RunId));\n const runFacts: SelectedRunFacts[] = cores.map(({ core, decoded }) => Object.freeze({ run: runRef(runtime, core.runId as RunId), experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, completedAt: decoded.run.completedAt, expectedSlots: decoded.run.expectedSlots }));\n for (const { core, decoded } of cores) {\n for (const attempt of decoded.attempts) {\n attemptRef(runtime, core.runId as RunId, attempt.attemptId, core.attempts.find((persisted) => persisted.attemptId === attempt.attemptId)?.publicationIdentity);\n }\n }\n const selection: RecordSelection = Object.freeze({ runRefs: Object.freeze(runRefs), runFacts: Object.freeze(runFacts), expectedSlots: Object.freeze(runFacts.flatMap(({ run, experimentId, expectedSlots }) => expectedSlots.map((slot) => Object.freeze({ run, experimentId, slot })))), problems: Object.freeze(problems), warnings: Object.freeze([]) as readonly RecordWarning[] });\n runtime.selections.add(selection);\n return selection;\n });\n const readRunEntry: RecordReadSession[\"readRun\"] = (ref: SelectedRunRef) => readRun(runtime, ref);\n const readAttemptEntry: RecordReadSession[\"readAttempt\"] = (ref: SelectedAttemptRef) => readAttempt(runtime, ref);\n const openCollectionEntry = ((owner: SelectedOwnerRef<\"attempt\">, definition: unknown) => Effect.map(openCollection(runtime, owner, definition), publicOpenCollectionResult)) as RecordReadSession[\"openCollection\"];\n const requireComplete: RecordReadSession[\"requireComplete\"] = (selection: RecordSelection) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n if (!runtime.selections.has(selection))\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n if (selection.problems.length > 0)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"selection-invalid\" }));\n for (const ref of selection.runRefs) {\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\" }));\n const attemptIds = new Set(core.attempts.map(({ attemptId }) => attemptId));\n for (const attachment of core.attachments) {\n if (attachment.ownerRunId !== core.runId || attachment.ownerKind === \"attempt\" && (attachment.ownerAttemptId === undefined || !attemptIds.has(attachment.ownerAttemptId)))\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\", family: attachment.family }));\n const persistence = runtime.catalog.get(attachment.ownerKind, attachment.family);\n if (persistence === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: attachment.ownerKind, family: attachment.family, revision: attachment.familyRevision }));\n for (const reference of attachment.references)\n if (runtime.catalog.get(reference.owner, reference.family) === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: reference.owner, family: reference.family, revision: 1 }));\n const hydrated = hydrateAttachment(runtime, attachment, persistence as AnyPersistence);\n if (hydrated.state !== \"available\")\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"attachment-invalid\", family: attachment.family }));\n }\n }\n return Object.freeze({ selection, attachments: runtime.catalog }) satisfies RecordCompleteView;\n });\n return Object.freeze({\n selectRuns,\n readRun: readRunEntry,\n readAttempt: readAttemptEntry,\n read: ((owner: SelectedOwnerRef, definition: unknown) => attemptRecordCollectionRuntime(definition) !== undefined ? readCollectionWhole(runtime, owner as SelectedOwnerRef<\"attempt\">, definition) : readFamily(runtime, owner, definition)) as RecordReadSession[\"read\"],\n openCollection: openCollectionEntry,\n requireComplete,\n });\n}\nfunction openRead(root: RecordRoot, catalog: RecordAttachmentCatalog): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const rootPath = storageRoot(root);\n if (rootPath === undefined)\n return yield* Effect.fail(new RecordBootstrapInvalid({ code: \"record-bootstrap-invalid\", reason: \"record-document-invalid\" }));\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const lifecycle: ReaderLifecycle = { closed: false };\n const runtime: ReaderRuntime = { root, client, catalog, lifecycle, runs: new WeakMap(), attempts: new WeakMap(), owners: new WeakMap(), selections: new WeakSet(), coreCache: new Map(), runRefs: new Map(), attemptRefs: new Map(), content: new WeakMap() };\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime);\n });\n}\nfunction closeMaintenanceFailure(error: {\n readonly code?: string;\n}): RecordMaintenanceOperationFailure { return Object.freeze({ _tag: \"RecordMaintenanceOperationFailed\", code: error.code ?? \"record-maintenance-failed\" }); }\nconst operationMigrationPlans = new WeakMap<object, RecordMigrationPlan>();\nfunction inspectMaintenanceDatabase(root: RecordRoot): Effect.Effect<ProjectRecordDatabaseInspection, SqliteRecordError> {\n const rootPath = storageRoot(root);\n if (rootPath === undefined) {\n return Effect.fail(new SqliteRecordError(\"record-database-invalid\", \"locate\", \"Record root is invalid\"));\n }\n return Effect.try({\n try: () => inspectProjectRecordDatabase(recordSqlitePath(rootPath)),\n catch: (cause) => cause instanceof SqliteRecordError\n ? cause\n : new SqliteRecordError(\"record-sqlite-error\", \"inspect-maintenance\", \"Record maintenance inspection failed\", { cause }),\n });\n}\nfunction publicFormatInspection(inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction migrationPlan(root: RecordRoot, inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction maintenanceSession(root: RecordRoot): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordCoordination> {\n return Effect.gen(function* () {\n const first = yield* inspectMaintenanceDatabase(root);\n if (first.state === \"current\" && first.exists) {\n const coordination = yield* RecordCoordination;\n yield* coordination.enterRecordMaintenance(root);\n }\n const inspect = () => inspectMaintenanceDatabase(root);\n return Object.freeze({\n inspect: () => Effect.map(inspect(), publicFormatInspection),\n planMigrate: () => Effect.map(inspect(), (inspection) => migrationPlan(root, inspection)),\n applyMigrate: (plan: RecordMigrationPlan) => Effect.gen(function* () {\n if (plan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: plan.format,\n }));\n }\n const current = yield* inspect();\n if (current.state === \"current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: current.state === \"unsupported\" ? current.format : \"foreign-sqlite\",\n }));\n }),\n });\n });\n}\nexport function makeRecordHost(input: {\n readonly records: readonly RecordContribution[];\n}): RecordHostSDK {\n const persistences = input.records.map((record) => { const runtime = recordContributionRuntime(record); if (runtime === undefined)\n throw new TypeError(\"invalid Record contribution\"); return runtime.persistence; });\n const composed = makeRecordAttachmentCatalog(persistences);\n if (Result.isFailure(composed))\n throw new TypeError(`invalid Record composition: ${composed.failure.code}`);\n const catalog = composed.success;\n const currentOpenRead: RecordHostSDK[\"current\"][\"openRead\"] = ({ root }) => openRead(root, catalog);\n const currentCreateRun: RecordHostSDK[\"current\"][\"createRun\"] = (request) => openNewRuntime(request, catalog, false) as ReturnType<RecordHostSDK[\"current\"][\"createRun\"]>;\n const currentCreateReferenceRun: RecordHostSDK[\"current\"][\"createReferenceRun\"] = (request) => openNewRuntime(request, catalog, true) as ReturnType<RecordHostSDK[\"current\"][\"createReferenceRun\"]>;\n const current: RecordHostSDK[\"current\"] = Object.freeze({ openRead: currentOpenRead, createRun: currentCreateRun, createReferenceRun: currentCreateReferenceRun });\n const normalize = (request: CreateRunRequest | {\n readonly root: RecordRoot;\n readonly core: Omit<CreateRunRequest, \"root\">;\n }): CreateRunRequest => \"core\" in request ? Object.freeze({ root: request.root, ...request.core }) : request;\n const createRunPublic: RecordHostSDK[\"createRun\"] = (request) => current.createRun(normalize(request));\n const createReferenceRunPublic: RecordHostSDK[\"createReferenceRun\"] = (request) => current.createReferenceRun(normalize(request));\n const planClean: RecordHostSDK[\"maintenance\"][\"planClean\"] = (request) => inspectIncompleteRuns(request).pipe(Effect.map((runs): RecordCleanOperationPlan => runs.length === 0 ? Object.freeze({ _tag: \"RecordCleanAlreadyClean\" }) : Object.freeze({ _tag: \"RecordCleanConfirmationRequired\", runIds: Object.freeze(runs.map(({ runId }) => runId)) })), Effect.mapError(closeMaintenanceFailure));\n const applyClean: RecordHostSDK[\"maintenance\"][\"applyClean\"] = ({ root, plan }) => cleanIncompleteRuns({ root, runIds: plan.runIds }).pipe(Effect.map((receipt): RecordCleanOperationReceipt => Object.freeze({ _tag: \"RecordCleanApplied\", ...receipt })), Effect.mapError(closeMaintenanceFailure));\n const planMigrate: RecordHostSDK[\"maintenance\"][\"planMigrate\"] = ({ root }) => Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.planMigrate())).pipe(Effect.map((plan): RecordMigrateOperationPlan => {\n if (plan.state === \"already-current\") {\n return Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return Object.freeze({ _tag: \"RecordMigrationUnsupported\", format: plan.format });\n }\n const operationPlan = Object.freeze({\n _tag: \"RecordMigrationReady\" as const,\n format: plan.format,\n sourceFormat: plan.sourceFormat,\n attachments: plan.attachments,\n pendingSeals: plan.pendingSeals,\n resumedSteps: plan.resumedSteps,\n });\n operationMigrationPlans.set(operationPlan, plan);\n return operationPlan;\n }), Effect.mapError(closeMaintenanceFailure));\n const applyMigrate: RecordHostSDK[\"maintenance\"][\"applyMigrate\"] = ({ root, plan }) => {\n const internal = operationMigrationPlans.get(plan);\n if (internal === undefined) {\n return Effect.fail(Object.freeze({\n _tag: \"RecordMigrationPlanStale\" as const,\n code: \"record-migration-plan-stale\" as const,\n }));\n }\n return Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.applyMigrate(internal))).pipe(Effect.map((receipt): RecordMigrateOperationReceipt => receipt.state === \"already-current\"\n ? Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT })\n : Object.freeze({\n _tag: \"RecordMigrationApplied\",\n format: receipt.format,\n attachments: receipt.attachments,\n committed: receipt.committed,\n skipped: receipt.skipped,\n failed: receipt.failed,\n rebuiltSeals: receipt.rebuiltSeals,\n })), Effect.mapError(closeMaintenanceFailure));\n };\n const openMaintenance: RecordHostSDK[\"maintenance\"][\"open\"] = ({ root }) => maintenanceSession(root);\n return Object.freeze({ openRead: current.openRead, createRun: createRunPublic, createReferenceRun: createReferenceRunPublic, current, maintenance: Object.freeze({ planClean, applyClean, planMigrate, applyMigrate, open: openMaintenance }) });\n}\nexport const recordHost: RecordHostSDK = makeRecordHost({ records: (NiceEvalRecordAttachmentPersistences as readonly AnyRecordAttachmentPersistence[]).map((persistence) => recordContributionFromAttachmentPersistence(persistence)) });\n"]}
|