alchemy 2.0.0-beta.23 → 2.0.0-beta.25
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/bin/alchemy.js +12574 -2451
- package/bin/alchemy.js.map +1 -1
- package/bin/alchemy.ts +2 -0
- package/bin/cli.js +18 -0
- package/bin/commands/bootstrap.ts +88 -4
- package/bin/commands/deploy.ts +54 -20
- package/bin/commands/dev.ts +45 -0
- package/bin/exec.ts +22 -0
- package/lib/AdoptPolicy.d.ts +2 -2
- package/lib/AdoptPolicy.d.ts.map +1 -1
- package/lib/AdoptPolicy.js.map +1 -1
- package/lib/AlchemyContext.d.ts +1 -0
- package/lib/AlchemyContext.d.ts.map +1 -1
- package/lib/AlchemyContext.js +1 -0
- package/lib/AlchemyContext.js.map +1 -1
- package/lib/Build/Command.d.ts.map +1 -1
- package/lib/Build/Command.js +8 -1
- package/lib/Build/Command.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts +21 -9
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +29 -15
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Cloudflare/Local/Sidecar.d.ts +27 -0
- package/lib/Cloudflare/Local/Sidecar.d.ts.map +1 -0
- package/lib/Cloudflare/Local/Sidecar.js +24 -0
- package/lib/Cloudflare/Local/Sidecar.js.map +1 -0
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts +5 -0
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -0
- package/lib/Cloudflare/Local/SidecarHandlers.js +119 -0
- package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -0
- package/lib/Cloudflare/Local/SidecarServer.d.ts +2 -0
- package/lib/Cloudflare/Local/SidecarServer.d.ts.map +1 -0
- package/lib/Cloudflare/Local/SidecarServer.js +27 -0
- package/lib/Cloudflare/Local/SidecarServer.js.map +1 -0
- package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.js +55 -7
- package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretsStore.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretsStore.js +35 -11
- package/lib/Cloudflare/SecretsStore/SecretsStore.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +35 -0
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +187 -45
- package/lib/Cloudflare/StateStore/State.js.map +1 -1
- package/lib/Cloudflare/StateStore/index.d.ts +1 -1
- package/lib/Cloudflare/StateStore/index.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/index.js +1 -1
- package/lib/Cloudflare/StateStore/index.js.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.d.ts +6 -0
- package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/Compatibility.js +10 -0
- package/lib/Cloudflare/Workers/Compatibility.js.map +1 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +81 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -0
- package/lib/Cloudflare/Workers/Worker.d.ts +3 -1
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +89 -31
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts +31 -0
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBundle.js +174 -0
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerName.d.ts +3 -0
- package/lib/Cloudflare/Workers/WorkerName.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerName.js +9 -0
- package/lib/Cloudflare/Workers/WorkerName.js.map +1 -0
- package/lib/Cloudflare/Workers/index.d.ts +1 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +1 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Platform.d.ts +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Sidecar/Lock.d.ts +24 -0
- package/lib/Sidecar/Lock.d.ts.map +1 -0
- package/lib/Sidecar/Lock.js +102 -0
- package/lib/Sidecar/Lock.js.map +1 -0
- package/lib/Sidecar/RpcClient.d.ts +15 -0
- package/lib/Sidecar/RpcClient.d.ts.map +1 -0
- package/lib/Sidecar/RpcClient.js +75 -0
- package/lib/Sidecar/RpcClient.js.map +1 -0
- package/lib/Sidecar/RpcHandler.d.ts +48 -0
- package/lib/Sidecar/RpcHandler.d.ts.map +1 -0
- package/lib/Sidecar/RpcHandler.js +64 -0
- package/lib/Sidecar/RpcHandler.js.map +1 -0
- package/lib/Sidecar/RpcPaths.d.ts +14 -0
- package/lib/Sidecar/RpcPaths.d.ts.map +1 -0
- package/lib/Sidecar/RpcPaths.js +22 -0
- package/lib/Sidecar/RpcPaths.js.map +1 -0
- package/lib/Sidecar/RpcServer.d.ts +10 -0
- package/lib/Sidecar/RpcServer.d.ts.map +1 -0
- package/lib/Sidecar/RpcServer.js +50 -0
- package/lib/Sidecar/RpcServer.js.map +1 -0
- package/lib/Sidecar/RpcTransport.d.ts +22 -0
- package/lib/Sidecar/RpcTransport.d.ts.map +1 -0
- package/lib/Sidecar/RpcTransport.js +81 -0
- package/lib/Sidecar/RpcTransport.js.map +1 -0
- package/lib/Telemetry/Metrics.d.ts +15 -0
- package/lib/Telemetry/Metrics.d.ts.map +1 -1
- package/lib/Telemetry/Metrics.js +20 -0
- package/lib/Telemetry/Metrics.js.map +1 -1
- package/lib/Util/PlatformServices.d.ts +3 -0
- package/lib/Util/PlatformServices.d.ts.map +1 -1
- package/lib/Util/PlatformServices.js +13 -0
- package/lib/Util/PlatformServices.js.map +1 -1
- package/lib/Util/layer-scoped.d.ts +16 -0
- package/lib/Util/layer-scoped.d.ts.map +1 -0
- package/lib/Util/layer-scoped.js +14 -0
- package/lib/Util/layer-scoped.js.map +1 -0
- package/package.json +4 -2
- package/src/AdoptPolicy.ts +9 -9
- package/src/AlchemyContext.ts +2 -0
- package/src/Build/Command.ts +8 -1
- package/src/Bundle/Bundle.ts +65 -25
- package/src/Cloudflare/Local/Sidecar.ts +44 -0
- package/src/Cloudflare/Local/SidecarHandlers.ts +182 -0
- package/src/Cloudflare/Local/SidecarServer.ts +57 -0
- package/src/Cloudflare/SecretsStore/Secret.ts +78 -7
- package/src/Cloudflare/SecretsStore/SecretsStore.ts +47 -12
- package/src/Cloudflare/StateStore/State.ts +281 -64
- package/src/Cloudflare/StateStore/index.ts +1 -1
- package/src/Cloudflare/Workers/Compatibility.ts +12 -0
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +93 -0
- package/src/Cloudflare/Workers/Worker.ts +151 -55
- package/src/Cloudflare/Workers/WorkerBundle.ts +234 -0
- package/src/Cloudflare/Workers/WorkerName.ts +10 -0
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Platform.ts +1 -1
- package/src/Sidecar/Lock.ts +190 -0
- package/src/Sidecar/RpcClient.ts +141 -0
- package/src/Sidecar/RpcHandler.ts +169 -0
- package/src/Sidecar/RpcPaths.ts +29 -0
- package/src/Sidecar/RpcServer.ts +80 -0
- package/src/Sidecar/RpcTransport.ts +85 -0
- package/src/Telemetry/Metrics.ts +38 -0
- package/src/Util/PlatformServices.ts +19 -0
- package/src/Util/layer-scoped.ts +25 -0
|
@@ -26,6 +26,7 @@ import { createRequire } from "node:module";
|
|
|
26
26
|
import path from "node:path";
|
|
27
27
|
import { pathToFileURL } from "node:url";
|
|
28
28
|
import Sonda from "sonda/rolldown";
|
|
29
|
+
import { AlchemyContext } from "../../AlchemyContext.js";
|
|
29
30
|
import * as Artifacts from "../../Artifacts.js";
|
|
30
31
|
import * as Binding from "../../Binding.js";
|
|
31
32
|
import { isArtifacts as isArtifactsBinding, } from "../Artifacts/Artifacts.js";
|
|
@@ -44,11 +45,13 @@ import { Stack } from "../../Stack.js";
|
|
|
44
45
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
45
46
|
import { D1Database } from "../D1/D1Database.js";
|
|
46
47
|
import { fromCloudflareFetcher } from "../Fetcher.js";
|
|
48
|
+
import { SidecarLive } from "../Local/Sidecar.js";
|
|
47
49
|
import { CloudflareLogs } from "../Logs.js";
|
|
48
50
|
import { isAssets, readAssets, uploadAssets, } from "./Assets.js";
|
|
49
51
|
import cloudflare_workers from "./cloudflare_workers.js";
|
|
50
52
|
import { isDurableObjectExport, isDurableObjectNamespaceLike, } from "./DurableObjectNamespace.js";
|
|
51
53
|
import { workersHttpHandler } from "./HttpServer.js";
|
|
54
|
+
import { LocalWorkerProvider } from "./LocalWorkerProvider.js";
|
|
52
55
|
import { Request } from "./Request.js";
|
|
53
56
|
import { makeRpcStub } from "./Rpc.js";
|
|
54
57
|
import { isWorkflowExport } from "./Workflow.js";
|
|
@@ -620,7 +623,12 @@ function getDurableObjectTagMap(tags) {
|
|
|
620
623
|
return logicalId && className ? [[logicalId, className]] : [];
|
|
621
624
|
}));
|
|
622
625
|
}
|
|
623
|
-
|
|
626
|
+
const selectLayer = (input) => Layer.unwrap(AlchemyContext.useSync((context) => context.dev ? input.dev() : input.live()));
|
|
627
|
+
export const WorkerProvider = () => selectLayer({
|
|
628
|
+
live: LiveWorkerProvider,
|
|
629
|
+
dev: () => Layer.provide(LocalWorkerProvider(), SidecarLive),
|
|
630
|
+
});
|
|
631
|
+
export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
|
|
624
632
|
const fs = yield* FileSystem.FileSystem;
|
|
625
633
|
const path = yield* Path.Path;
|
|
626
634
|
const { accountId } = yield* CloudflareEnvironment;
|
|
@@ -699,14 +707,61 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
|
|
|
699
707
|
return yield* Effect.die(`Could not infer Cloudflare Zone for hostname "${hostname}". ` +
|
|
700
708
|
"Ensure the parent zone exists in this account.");
|
|
701
709
|
});
|
|
702
|
-
const reconcileDomains = (scriptName, desired,
|
|
710
|
+
const reconcileDomains = (scriptName, desired, _previous) => Effect.gen(function* () {
|
|
711
|
+
// Always query the live state of domains attached to *this*
|
|
712
|
+
// Worker rather than trusting `_previous` from local state.
|
|
713
|
+
// State may have been wiped, populated by another machine, or
|
|
714
|
+
// simply be out of date. Without this we PUT domains that are
|
|
715
|
+
// already registered to this same Worker and Cloudflare
|
|
716
|
+
// returns a confusing "hostname already in use" error.
|
|
717
|
+
const liveAll = yield* listDomains({
|
|
718
|
+
accountId,
|
|
719
|
+
service: scriptName,
|
|
720
|
+
}).pipe(Effect.map((r) => (r.result ?? []).flatMap((d) => d.id && d.hostname && d.zoneId
|
|
721
|
+
? [
|
|
722
|
+
{
|
|
723
|
+
id: d.id,
|
|
724
|
+
hostname: d.hostname,
|
|
725
|
+
zoneId: d.zoneId,
|
|
726
|
+
service: d.service ?? undefined,
|
|
727
|
+
},
|
|
728
|
+
]
|
|
729
|
+
: [])), Effect.catch(() => Effect.succeed([])));
|
|
703
730
|
const desiredSet = new Set(desired);
|
|
704
|
-
const
|
|
731
|
+
const liveByHostname = new Map(liveAll.map((d) => [d.hostname, d]));
|
|
732
|
+
// Detach what's no longer wanted. Use the live list so we
|
|
733
|
+
// don't try to delete domains we no longer track.
|
|
734
|
+
const toRemove = liveAll.filter((d) => !desiredSet.has(d.hostname));
|
|
705
735
|
yield* Effect.all(toRemove.map((d) => deleteDomain({ accountId, domainId: d.id }).pipe(Effect.catchTag("DomainNotFound", () => Effect.void))), { concurrency: "unbounded" });
|
|
706
736
|
if (desired.length === 0)
|
|
707
737
|
return [];
|
|
708
738
|
const zoneCache = new Map();
|
|
709
|
-
|
|
739
|
+
// Attach `hostname` to this Worker. Skip the PUT entirely if
|
|
740
|
+
// the hostname is already attached to *this* Worker — that's a
|
|
741
|
+
// no-op for Cloudflare and avoids the "already in use" 409.
|
|
742
|
+
// If it's attached to a *different* Worker, refuse with a
|
|
743
|
+
// clear message rather than silently re-routing traffic.
|
|
744
|
+
const attachDomain = Effect.fnUntraced(function* (hostname) {
|
|
745
|
+
const live = liveByHostname.get(hostname);
|
|
746
|
+
if (live) {
|
|
747
|
+
return {
|
|
748
|
+
hostname: live.hostname,
|
|
749
|
+
id: live.id,
|
|
750
|
+
zoneId: live.zoneId,
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
// Not attached to this Worker — but it could still belong
|
|
754
|
+
// to another Worker. Check before we try to PUT so we can
|
|
755
|
+
// emit a helpful error instead of the raw 409.
|
|
756
|
+
const otherOwner = yield* listDomains({
|
|
757
|
+
accountId,
|
|
758
|
+
hostname,
|
|
759
|
+
}).pipe(Effect.map((r) => (r.result ?? []).find((d) => d.hostname === hostname && d.service !== scriptName)), Effect.catch(() => Effect.succeed(undefined)));
|
|
760
|
+
if (otherOwner?.id) {
|
|
761
|
+
return yield* Effect.die(new Error(`Cannot attach hostname '${hostname}' to Worker '${scriptName}': ` +
|
|
762
|
+
`it is already attached to Worker '${otherOwner.service ?? "<unknown>"}'. ` +
|
|
763
|
+
`Detach it from that Worker first, or pick a different hostname.`));
|
|
764
|
+
}
|
|
710
765
|
const zoneId = yield* inferZoneIdForHostname(hostname, zoneCache);
|
|
711
766
|
const res = yield* putDomain({
|
|
712
767
|
accountId,
|
|
@@ -719,7 +774,8 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
|
|
|
719
774
|
id: res.id ?? "",
|
|
720
775
|
zoneId: res.zoneId ?? zoneId,
|
|
721
776
|
};
|
|
722
|
-
})
|
|
777
|
+
});
|
|
778
|
+
const applied = yield* Effect.all(desired.map(attachDomain), { concurrency: "unbounded" });
|
|
723
779
|
return applied;
|
|
724
780
|
});
|
|
725
781
|
const createAlchemyWorkerTags = (id) => [
|
|
@@ -768,19 +824,13 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
|
|
|
768
824
|
if (!assets) {
|
|
769
825
|
return undefined;
|
|
770
826
|
}
|
|
771
|
-
// Handle AssetsWithHash (from Build resource)
|
|
772
|
-
// Props are resolved by Plan, so Input<string> values are already strings at runtime
|
|
773
827
|
if (typeof assets === "object" &&
|
|
774
828
|
"path" in assets &&
|
|
775
829
|
"hash" in assets) {
|
|
776
|
-
|
|
830
|
+
return yield* readAssets({
|
|
777
831
|
directory: assets.path,
|
|
778
832
|
config: assets.config,
|
|
779
833
|
});
|
|
780
|
-
return {
|
|
781
|
-
...result,
|
|
782
|
-
hash: assets.hash,
|
|
783
|
-
};
|
|
784
834
|
}
|
|
785
835
|
// Handle string path or AssetsProps
|
|
786
836
|
return yield* readAssets(typeof assets === "string" ? { directory: assets } : assets);
|
|
@@ -1046,23 +1096,23 @@ ${[
|
|
|
1046
1096
|
const metadataBindings = bindings.flatMap((b) => b.data.bindings ?? []);
|
|
1047
1097
|
const expectedDurableObjectClassNames = getExpectedDurableObjectClassNames(metadataBindings);
|
|
1048
1098
|
let metadataAssets;
|
|
1049
|
-
|
|
1099
|
+
const keepAssets = false;
|
|
1050
1100
|
if (assets) {
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
}
|
|
1101
|
+
// Always upload assets on every deploy. The "skip if hash
|
|
1102
|
+
// unchanged" optimization was the source of subtle bundle/
|
|
1103
|
+
// asset desync bugs (deploy succeeds but worker serves 404s
|
|
1104
|
+
// because the bundle references hashed asset filenames that
|
|
1105
|
+
// aren't in the still-on-Cloudflare manifest). The upload
|
|
1106
|
+
// session is content-addressed on Cloudflare's side — only
|
|
1107
|
+
// genuinely-new asset bytes are PUT; unchanged assets cost
|
|
1108
|
+
// a manifest check and nothing else, so the optimization
|
|
1109
|
+
// wasn't worth the failure mode.
|
|
1110
|
+
yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: uploading assets for ${name}`);
|
|
1111
|
+
const { jwt } = yield* uploadAssets(accountId, name, assets, session);
|
|
1112
|
+
metadataAssets = {
|
|
1113
|
+
jwt,
|
|
1114
|
+
config: assets.config,
|
|
1115
|
+
};
|
|
1066
1116
|
metadataBindings.push({
|
|
1067
1117
|
type: "assets",
|
|
1068
1118
|
name: "ASSETS",
|
|
@@ -1288,10 +1338,18 @@ ${[
|
|
|
1288
1338
|
const input = yield* hashDirectory(props.vite);
|
|
1289
1339
|
return input !== output.hash?.input;
|
|
1290
1340
|
}
|
|
1341
|
+
// Always recompute both hashes by walking `dist/` (assets) and
|
|
1342
|
+
// re-bundling the worker. The previous short-circuit
|
|
1343
|
+
// (`Effect.succeed(output.hash.assets)`) compared the cached
|
|
1344
|
+
// hash to itself and could never detect drift, and the
|
|
1345
|
+
// `props.assets.hash` form is the *input* (source) hash which
|
|
1346
|
+
// misses non-deterministic build output (e.g. Astro/Vite
|
|
1347
|
+
// shuffling content-hashed filenames between builds). The
|
|
1348
|
+
// result of either shortcut was deploying a new bundle on top
|
|
1349
|
+
// of stale assets and 404'ing in production. Re-walking is the
|
|
1350
|
+
// only correct comparison.
|
|
1291
1351
|
const [assetsHash, bundleHash] = yield* Effect.all([
|
|
1292
|
-
|
|
1293
|
-
? Effect.succeed(output.hash.assets)
|
|
1294
|
-
: prepareAssets(props.assets).pipe(Effect.map((a) => a?.hash)),
|
|
1352
|
+
prepareAssets(props.assets).pipe(Effect.map((a) => a?.hash)),
|
|
1295
1353
|
prepareBundle(id, props).pipe(Effect.map((b) => b.hash)),
|
|
1296
1354
|
], { concurrency: "unbounded" });
|
|
1297
1355
|
return (assetsHash !== output.hash?.assets ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Worker.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Worker.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAC7E,OAAO,cAAc,MAAM,yCAAyC,CAAC;AACrE,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAC;AAE3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,MAAM,gBAAgB,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,WAAW,IAAI,kBAAkB,GAElC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,QAAQ,GAIT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAwB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,GAIb,MAAM,aAAa,CAAC;AACrB,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAE7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAGzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAuB,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACf,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AAE9B,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,OAAO,EAGnD,CAAC,sCAAsC,CAAC;CAAG;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAC/C,iBAAiB,EACjB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAClD,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,OAAO,EAGlD,CAAC,qCAAqC,CAAC;CAAG;AAe7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAU,EAAwB,EAAE,CAChE,KAAK,EAAE,IAAI,KAAK,gCAAgC,CAAC;AAgDnD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO;IACP,MAAM;IACN,OAAO;IACP,YAAY;IACZ,WAAW;IACX,MAAM;IACN,OAAO;IACP,OAAO;CACwC,CAAC;AA4IlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoUG;AACH,MAAM,CAAC,MAAM,MAAM,GAyBf,QAAQ,CAAC,YAAY,EAAE;IACzB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnC,QAAgB,EAChB,KAAkD;QAElD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzC,mBAAmB;gBACnB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAEP,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACzC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU;oBACnB,CAAC,CAAC,UAAU,CAAC;gBAEf,MAAM,WAAW,GAA0C,QAAQ,CACjE,OAAO,CACR;oBACC,CAAC,CAAC;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,WAAW;qBAClB;oBACH,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;wBAC3B,CAAC,CAAE;4BACC,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,OAAO,CAAC,SAAS;yBACrB;wBACX,CAAC,CAAC,4BAA4B,CAAC,OAAO,CAAC;4BACrC,CAAC,CAAC;gCACE,IAAI,EAAE,0BAA0B;gCAChC,IAAI,EAAE,WAAW;gCACjB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI;6BAC7C;4BACH,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,uBAAuB;gCACxC,CAAC,CAAC;oCACE,IAAI,EAAE,IAAI;oCACV,EAAE,EAAE,OAAO,CAAC,UAAU;oCACtB,IAAI,EAAE,WAAW;iCAClB;gCACH,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB;oCACtC,CAAC,CAAC;wCACE,IAAI,EAAE,WAAW;wCACjB,IAAI,EAAE,WAAW;wCACjB,UAAU,EAAE,OAAO,CAAC,UAAU;wCAC9B,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC1B,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CACtD,CACF;qCACF;oCACH,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,wBAAwB;wCACzC,CAAC,CAAC;4CACE,IAAI,EAAE,cAAc;4CACpB,IAAI,EAAE,WAAW;4CACjB,WAAW,EAAE,OAAO,CAAC,WAAW;yCACjC;wCACH,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,kBAAkB;4CACnC,CAAC,CAAC;gDACE,IAAI,EAAE,OAAO;gDACb,IAAI,EAAE,WAAW;gDACjB,SAAS,EAAE,OAAO,CAAC,SAAS;6CAC7B;4CACH,CAAC,CAAC,2BAA2B;gDAC3B,SAAS,CAAC;gBAE1B,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA,GAAG,WAAW,EAAE,CAAC;wBACnC,QAAQ,EAAE,CAAC,WAAW,CAAC;qBACxB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,sBAAsB,EAAE,CAAC,EAAU,EAA0B,EAAE;QAC7D,MAAM,SAAS,GAAiD,EAAE,CAAC;QACnE,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,YAAY;YAClB,EAAE;YACF,GAAG;YACH,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CACnB,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EACjC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,GAAG;gBACD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAC9C,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK;gBACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,GAAG,aAAa,CAAC,CAC1D,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC/B,+CAA+C;oBAC/C,yDAAyD;oBACzD,yDAAyD;oBACzD,2DAA2D;oBAC3D,sDAAsD;oBACtD,qBAAqB;oBACrB,IACE,KAAK,KAAK,IAAI;wBACd,OAAO,KAAK,KAAK,QAAQ;wBACxB,KAA4B,CAAC,IAAI,KAAK,UAAU;wBACjD,OAAO,IAAK,KAAgB,EAC5B,CAAC;wBACD,OAAO,QAAQ,CAAC,IAAI,CAAE,KAA4B,CAAC,KAAK,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CACI;YACV,GAAG,EAAE,CAAC,EAAU,EAAE,MAAqB,EAAE,EAAE,CACzC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAChD,gEAAgE;gBAChE,iEAAiE;gBACjE,kEAAkE;gBAClE,kEAAkE;gBAClE,kEAAkE;gBAClE,4CAA4C;gBAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CACpB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;qBAC7B,CAAC,CACH;oBACH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAC1B,CACF,CAAC;gBACF,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;YACJ,KAAK,EAAE,CACL,OAAyD,EACzD,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,EAAE,CAAC,CACP,OAE8C,EAC9C,EAAE,CACF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACf,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC5C,CAAgD;YACnD,MAAM,EAAE,CAAC,IAAY,EAAE,KAAU,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC5C,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM,MAAM,GACV,CAAC,IAAyB,EAAE,EAAE,CAC9B,CAAC,OAAY,EAAE,GAAY,EAAE,OAA4B,EAAE,EAAE;oBAC3D,MAAM,KAAK,GAAgB;wBACzB,IAAI,EAAE,gCAAgC;wBACtC,IAAI;wBACJ,KAAK,EAAE,OAAO;wBACd,GAAG;wBACH,OAAO;qBACR,CAAC;oBACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;wBAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACzB,OAAO,GAAG,CAAC,IAAI,CACb,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EACxD,MAAM,CAAC,UAAU,CAClB,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAC7D,CAAC,CAAC;gBACJ,OAAO;oBACL,GAAG,OAAO;oBACV,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,sBAAsB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACjE;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnD,SAEkD;IAElD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,GAAG,MAAM,EAAE,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,OAAO,EAAE,MAAM,CAAC,UAAU;aAC3B;SACF;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CACrD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAC3C,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACtE,iFAAiF;IACjF,OAAO,WAAW,CAAQ,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,MAAM,EAGjD,CAAC,wBAAwB,CAAC;CAAG;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAChE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAc;IACvC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,GAAG,MAAM,EAAE,CAAC;YAC1B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM,CAAC,SAAS;oBACtB,OAAO,EAAE,MAAM,CAAC,UAAU;iBAC3B;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,IAAI,GAAG,CAAC,CACtE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,8BAA+B,SAAQ,IAAI,CAAC,WAAW,CAC3D,gCAAgC,CAIhC;CAAG;AAEL,SAAS,uBAAuB,CAC9B,MAA0B;IAE1B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAClC,OAAO,YAAY,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAwC,EACxC,UAAkB;IAElB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAClC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE,CAC5D,IAAI,CAAC,IAAI,KAAK,0BAA0B;QACxC,WAAW,IAAI,IAAI;QACnB,IAAI,CAAC,SAAS;QACd,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;YACtB,CAAC,IAAI,CAAC,UAAU;YAChB,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;QAC/B,CAAC,CAAC;YACE;gBACE,SAAS,EAAE,OAAO,CAAC,GAAG;gBACtB,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B;SACF;QACH,CAAC,CAAC,EAAE,CACP,CACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA2B;IACzD,OAAO,MAAM,CAAC,WAAW,CACvB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAGlB,KAGD,EAIC,EAAE,CACF,KAAK,CAAC,MAAM,CACV,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CACzC,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CACjC,WAAW,CAAC;IACV,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC;CAC7D,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,QAAQ,CAAC,MAAM,CACb,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC;IACnD,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC;IAE3B,MAAM,qBAAqB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACnE,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACjD,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACzD,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;IAC1E,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IACxC,8DAA8D;IAC9D,MAAM,wBAAwB,GAAG,YAAY,CAAC;IAC9C,+DAA+D;IAC/D,6CAA6C;IAC7C,kEAAkE;IAClE,KAAK;IAEL,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAChD,YAAY,CAAC;QACX,SAAS;KACV,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE,CAC5D,qBAAqB,CAAC;QACpB,SAAS;QACT,UAAU,EAAE,IAAI;QAChB,OAAO;KACR,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,IAAwB,EAAE,EAAE,CAChE,IAAI;QACF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,kBAAkB,CAAC;YACjB,EAAE;YACF,SAAS,EAAE,EAAE;SACd,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAExD,oEAAoE;IACpE,wEAAwE;IACxE,gFAAgF;IAChF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE;QAC9C,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,MAAqC,EAC3B,EAAE,CACZ,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAC5D,CACF,CAAC;IAER;;;;OAIG;IACH,MAAM,sBAAsB,GAAG,CAC7B,QAAgB,EAChB,SAA8B,EAC9B,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAChD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClC,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,iDAAiD,QAAQ,KAAK;YAC5D,gDAAgD,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,CACvB,UAAkB,EAClB,OAAiB,EACjB,SAA0C,EAC1C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,4DAA4D;QAC5D,4DAA4D;QAC5D,8DAA8D;QAC9D,8DAA8D;QAC9D,wDAAwD;QACxD,uDAAuD;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;YACjC,SAAS;YACT,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;YAC5B,CAAC,CAAC;gBACE;oBACE,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;iBAChC;aACF;YACH,CAAC,CAAC,EAAE,CACP,CACF,EACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACvC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,0DAA0D;QAC1D,kDAAkD;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CACnC,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACrD,CACF,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,6DAA6D;QAC7D,+DAA+D;QAC/D,4DAA4D;QAC5D,0DAA0D;QAC1D,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAgB;YAChE,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YACJ,CAAC;YAED,0DAA0D;YAC1D,0DAA0D;YAC1D,+CAA+C;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;gBACpC,SAAS;gBACT,QAAQ;aACT,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,CAC3D,CACF,EACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAC9C,CAAC;YACF,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CACP,2BAA2B,QAAQ,gBAAgB,UAAU,KAAK;oBAChE,qCAAqC,UAAU,CAAC,OAAO,IAAI,WAAW,KAAK;oBAC3E,iEAAiE,CACpE,CACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;gBAC3B,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,UAAU;gBACnB,MAAM;aACP,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EACzB,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC;QAC9C,iBAAiB,KAAK,CAAC,IAAI,EAAE;QAC7B,iBAAiB,KAAK,CAAC,KAAK,EAAE;QAC9B,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAC3B,EAAU,EACV,IAAmC,EACnC,EAAE;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,CACjC,QAA6D,EAC7D,EAAE;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,IAAI,KAAK,0BAA0B;YAC3C,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,WAAW;YACjB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC,CAAC,EAAE,CACP,CACF,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,kCAAkC,GAAG,CACzC,QAA8C,EAC9C,EAAE,CACF,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CACL,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,OAAO,CAAC,IAAI,KAAK,0BAA0B,IAAI,OAAO,CAAC,SAAS;QAC9D,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,EAAE,CACP,IAAI,EAAE,CACR,CACF,CAAC;IAEJ,MAAM,mCAAmC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EACrE,UAAkB,EAClB,kBAAqC;QAErC,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAAC;YAC9B,SAAS;YACT,UAAU;SACX,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CACvC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CACtC,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,8BAA8B,CAAC;oBACjC,UAAU;oBACV,QAAQ,EAAE,OAAO;iBAClB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC;gBACpB,QAAQ;gBACR,uBAAuB,EAAE,UAAU;aACpC,CAAC,CAAC;QACL,CAAC,CAAC,EACF,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,CAAC;YACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAgC;YACjE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CACtC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CACnC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC/C,MAA6B;QAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,IAAI,MAAM;YAChB,MAAM,IAAI,MAAM,EAChB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC;gBACvB,SAAS,EAAE,MAAM,CAAC,IAAc;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,OAAO,KAAK,CAAC,CAAC,UAAU,CACtB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,KAAkB,EAAE,EAAE,CAAC,CAAC;QAChD,iBAAiB,EACf,KAAK,CAAC,aAAa,EAAE,IAAI,IAAI,wBAAwB;QACvD,kBAAkB,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK;YAC5C,CAAC,CAAC;gBACE,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK;gBAC5B,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;aAC/C,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;YACjE,CAAC,CAAC,KAAK,CAAC,UAAU;gBAChB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,eAAe,CAAC;KACxB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,KAAkB,EAAE,EAAE,CACvD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAC7C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,OAAuC,EAAE,EAAE,CAC9D,MAAM,CAAC,KAAK,CACV;YACE,KAAK,EAAE,IAAI;YACX,GAAG;YACH,OAAO,EAAE;gBACP,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;gBAC7D,OAAO;gBACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D;YACD,MAAM,EAAE;gBACN,iEAAiE;gBACjE,gBAAgB,EAAE,KAAK;aACxB;SACF,EACD;YACE,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,oBAAoB,EAAE,EAAE;SAC9B,EACD,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAC5B,CAAC;QAEJ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QACnE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAClD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CACzB,CAAC;QACF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;6BAWpB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;;;qDAIlB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;qBAE1E,UAAU;;+BAEA,IAAI,CAAC,GAAG;;;;;;;;;;;;;;;;aAgB1B,KAAK,CAAC,IAAI;cACT,KAAK,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDvB;YACA,GAAG,CAAC,YAAY;gBACd,CAAC,CAAC;oBACE,gFAAgF;oBAChF,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,OAAO,CACrE;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,YAAY;gBACd,CAAC,CAAC;oBACE,6EAA6E;oBAC7E,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,OAAO,CAClE;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,IAAI,CAAC,IAAI,CAAC;CACX,CAAC;QAEQ,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAkB;QAC/D,IAAI,eAAmC,CAAC;QACxC,IAAI,YAAoD,CAAC;QACzD,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAC7C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACtC;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO;gBACzB,qDAAqD;gBACrD,oDAAoD;gBACpD,6CAA6C;gBAC7C,YAAY,EAAE;oBACZ,GAAG,EAAE;wBACH,KAAK,EAAE;4BACL,+CAA+C;4BAC/C,mDAAmD;4BACnD,WAAW,EAAE,KAAK;yBACnB;qBACF;iBACF;gBACD,OAAO,EAAE;oBACP,iBAAiB,EAAE,IAAI;iBACxB;gBACD,OAAO,EAAE;oBACP,cAAc,CAAC;wBACb,iBAAiB;wBACjB,kBAAkB;qBACnB,CAAC;oBACF;wBACE,IAAI,EAAE,YAAY;wBAClB,kBAAkB,CAAC,WAAW;4BAC5B,OAAO,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC;wBACpC,CAAC;wBACD,cAAc,CAAC,cAAc,EAAE,MAAM;4BACnC,YAAY,GAAG,MAAM,CAAC;wBACxB,CAAC;qBACF;oBACD;wBACE,IAAI,EAAE,eAAe;wBACrB,kBAAkB,CAAC,WAAW;4BAC5B,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;wBACvC,CAAC;wBACD,cAAc,CAAC,aAAa;4BAC1B,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC;wBACtC,CAAC;qBACF;iBACF;aACF;YACD,uFAAuF;YACvF,sFAAsF;YACtF,kHAAkH;YAClH,IAAI,CACL,CAAC;YACF,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACxC;YACE,eAAe;gBACb,CAAC,CAAC,UAAU,CAAC;oBACT,SAAS,EAAE,eAAe;oBAC1B,MAAM,EACJ,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM;wBAC1D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;wBACrB,CAAC,CAAC,SAAS;iBAChB,CAAC;gBACJ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAC7B,YAAY;gBACV,CAAC,CAAC,MAAM,CAAC,oCAAoC,CAAC,YAAY,CAAC;gBAC3D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,CAAC,EAAU,EAAE,KAAkB,EAAE,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACnD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAC7C,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACxC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EACvD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM;QACN,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3B,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CACtB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAmB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC9C,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxD,CAAC,CACL;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,EAAE,IAAI;YACpB,MAAM,EAAE,MAAM,EAAE,IAAI;YACpB,KAAK;SACiC;KACzC,CAAC,CAAC,CACJ,CAAC;IAEJ,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C,EAAU,EACV,IAAiB,EACjB,QAA8C,EAC9C,IAA6B,EAC7B,MAAwC,EACxC,OAAgC,EAChC,gBAAmE;QAEnE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,qBAAqB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,0BAA0B,IAAI,EAAE,CAChF,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAC5D,EAAE,EACF,IAAI,CACL,CAAC;QACF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,+BAA+B,GACnC,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,cAES,CAAC;QACd,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,0DAA0D;YAC1D,2DAA2D;YAC3D,4DAA4D;YAC5D,4DAA4D;YAC5D,0DAA0D;YAC1D,2DAA2D;YAC3D,2DAA2D;YAC3D,yDAAyD;YACzD,iCAAiC;YACjC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,qBAAqB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,0BAA0B,IAAI,EAAE,CAChF,CAAC;YACF,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CACjC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,OAAO,CACR,CAAC;YACF,cAAc,GAAG;gBACf,GAAG;gBACH,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YACF,gBAAgB,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,CAAC,IAAI,CACnB;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,EACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,KAAK,CAAC,KAAK;SAClB,CACF,CAAC;QACF,iDAAiD;QACjD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,IAAI,KAAK,IAAI,IAAI;oBAAE,SAAS;gBAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,gBAAgB,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;qBAC5B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,qBAAqB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,0BAA0B,IAAI,EAAE,CAChF,CAAC;QACF,MAAM,IAAI,GACR,MAAM,CAAC,KAAK;YACV,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9F,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,UAAU,OAAO,CAAC,CAAC;QAE5D,uDAAuD;QACvD,MAAM,WAAW,GACf,gBAAgB;YAChB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;gBACxB,SAAS;gBACT,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAyB,CAAC,EAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAC9C,CAAC,CAAC;QAEL,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;QAEhD,gDAAgD;QAChD,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,6BAA6B,GAAG,MAAM,CAAC,WAAW,CACtD,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACjC,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;SAClB,CAAC,CACH,CAAC;QAEF,wCAAwC;QACxC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,EAAE,CACP,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,eAAe,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;QAEjE,0BAA0B;QAC1B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CACjD,yBAAyB,CAC1B,EAAE,CAAC;YACF,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,uBAAuB;QACvB,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,IACE,UAAU,CAAC,IAAI,KAAK,0BAA0B;oBAC9C,WAAW,IAAI,UAAU;oBACzB,UAAU,CAAC,SAAS;oBACpB,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC;wBAC5B,CAAC,UAAU,CAAC,UAAU;wBACtB,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC;oBACjC,CAAC,iBAAiB,CAAC,IAAI,CACrB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,CACrD,EACD,CAAC;oBACD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAClD,CACF,CAAC;QAEF,kCAAkC;QAClC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,cAAc,GAAmC,EAAE,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,MAAM,iBAAiB,GACrB,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,+DAA+D;gBAC/D,6DAA6D;gBAC7D,8BAA8B;gBAC9B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,iBAAiB,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,iBAAiB;oBACvB,EAAE,EAAE,OAAO,CAAC,SAAS;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,wDAAwD,IAAI,CAAC,SAAS,CACpE;YACE,yBAAyB;YACzB,6BAA6B;YAC7B,cAAc;YACd,cAAc;YACd,gBAAgB;SACjB,CACF,EAAE,CACJ,CAAC;QAEF,oEAAoE;QACpE,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,aAAa,CAAC,IAAI,CAChB,cAAc,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC;YACN,GAAG,uBAAuB,CAAC,EAAE,CAAC;YAC9B,GAAG,aAAa;YAChB,GAAG,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,yBAAyB,eAAe,EAAE,CAAC;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;SACrB,CAAC,CACH,CAAC;QAEF,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,eAAe;YACvB,UAAU;YACV,cAAc;YACd,cAAc;YACd,kBAAkB,EAAE,EAAoC;YACxD,gBAAgB;SACjB,CAAC;QAEF,MAAM,kBAAkB,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,CACrD,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACd,SAAS;SACV,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,SAAS;YACnB,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACzB,UAAU,EACR,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;YAChE,UAAU;YACV,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI;gBACnC,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI;oBACb,cAAc,EAAE,IAAI;iBACrB;aACF;YACD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,SAAS;SACtB,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;YAC9B,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,kEAAkE;YAClE,+DAA+D;YAC/D,gEAAgE;YAChE,8DAA8D;YAC9D,sBAAsB;YACtB,MAAM,GAAG,GAAG,MAAM,CAChB,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,IAAI,GAAG;gBACzD,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,GAAG,CACR,CAAC;YACF,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAC3B,yCAAyC,CAC1C,EAAE,CAAC,CAAC,CAAC,CAAC;YACP,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAC;oBACf,SAAS;oBACT,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE;wBACR,GAAG,QAAQ;wBACX,UAAU,EAAE;4BACV,GAAG,UAAU;4BACb,MAAM,EAAE,WAAW;4BACnB,MAAM,EAAE,uBAAuB,CAAC,WAAW,CAAC;yBAC7C;qBACF;oBACD,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GACzC,KAAK,CAAC,CAAC,mCAAmC,CACxC,IAAI,EACJ,+BAA+B,CAChC,CAAC;QACJ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;YAClC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CACjB,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,2BAA2B,CAChE,CAAC;YACF,KAAK,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAC9C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CACjB,+BAA+B,cAAc,CAAC,MAAM,OAAO,CAC5D,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,gBAAgB,CACrC,IAAI,EACJ,cAAc,EACd,eAAe,CAChB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;YAC3B,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;YACpC,GAAG,EACD,IAAI,CAAC,GAAG,KAAK,KAAK;gBAChB,CAAC,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,cAAc;gBACxE,CAAC,CAAC,SAAS;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;YACpC,uBAAuB;YACvB,SAAS;YACT,OAAO;YACP,IAAI;SAC0B,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5C,EAAU,EACV,KAAkB,EAClB,MAA4B;QAE5B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;QACtC,CAAC;QACD,+DAA+D;QAC/D,qDAAqD;QACrD,6DAA6D;QAC7D,uDAAuD;QACvD,8DAA8D;QAC9D,yDAAyD;QACzD,0DAA0D;QAC1D,8DAA8D;QAC9D,+DAA+D;QAC/D,2BAA2B;QAC3B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD;YACE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACzD,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,OAAO,CACL,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM;YAClC,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;QACnC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,aAAa,GAAG,MAAM,EAAE,UAAU;gBACtC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACtB,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAClB,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;gBACvC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC5D,OAAO;oBACL,MAAM,EAAE,QAAQ;oBAChB,OAAO,EACL,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACF,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YAClE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC1C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;iBAClE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACnB,SAAS;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC,CAAC;YACN,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CACtC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAC3B,cAAc,SAAS,IAAI,SAAS,EAAE,CACzC,CAAC;YACF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,IAAI,GAAG,CAAC;gBACN,GAAG,uBAAuB,CAAC,EAAE,CAAC;gBAC9B,GAAG,aAAa;gBAChB,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;aACrB,CAAC,CACH,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,yCAAyC,IAAI,EAAE,CAChD,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,gDAAgD,IAAI,CAAC,SAAS,CAC5D,cAAc,CACf,EAAE,CACJ,CAAC;YACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;gBAChD,SAAS;gBACT,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACnE,CAAC;YACF,IAAI,uBAAuB,GAAG,0BAA0B,CACtD,gBAAgB,EAAE,QAAQ,CAC3B,CAAC;YAEF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC3D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,WAAW,IAAI,gEAAgE,CAChF,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,kDAAkD,IAAI,qCAAqC,CAC5F,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,SAAS,CAAC;gBAC7B,MAAM,iBAAiB,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,EAAE,+FAA+F,SAAS;qBACvN,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,gBAAgB,SAAS,2BAA2B,CACvD;qBACA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB,KAAK,CAAC,CAAC,SAAS,CAAC;oBACf,SAAS;oBACT,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE;wBACR,UAAU;wBACV,QAAQ,EACN,SAAS,CAAC,MAAM,GAAG,CAAC;4BAClB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAC5B,IAAI,EAAE,0BAAmC;gCACzC,IAAI,EAAE,SAAS;gCACf,SAAS;6BACV,CAAC,CAAC;4BACL,CAAC,CAAC,SAAS;wBACf,GAAG,gBAAgB,CAAC,IAAI,CAAC;wBACzB,UAAU;wBACV,UAAU,EACR,SAAS,CAAC,MAAM,GAAG,CAAC;4BAClB,CAAC,CAAC;gCACE,MAAM,EAAE,SAAS;gCACjB,MAAM,EAAE,SAAS;gCACjB,UAAU,EAAE,EAAE;gCACd,cAAc,EAAE,EAAE;gCAClB,cAAc,EAAE,EAAE;gCAClB,kBAAkB,EAAE,EAAE;gCACtB,gBAAgB,EAAE,SAAS;6BAC5B;4BACH,CAAC,CAAC,SAAS;wBACf,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI;4BACnC,OAAO,EAAE,IAAI;4BACb,IAAI,EAAE;gCACJ,OAAO,EAAE,IAAI;gCACb,cAAc,EAAE,IAAI;6BACrB;yBACF;wBACD,IAAI;qBACL;oBACD,KAAK,EAAE;wBACL,IAAI,IAAI,CAAC,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE;4BACxC,IAAI,EAAE,+BAA+B;yBACtC,CAAC;qBACH;iBACF,CAAC,CAAC;gBACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,CAAC,EAAE,uBAAuB,EAAE;wBAC1B,KAAK,CAAC,CAAC,mCAAmC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,CAAC,EAAE,uBAAuB,EAAE;oBAC1B,KAAK,CAAC,CAAC,mCAAmC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,SAAS;gBAC/C,GAAG,EAAE,SAAS;gBACd,IAAI,EAAE,gBAAgB,EAAE,IAAI,IAAI,IAAI;gBACpC,uBAAuB;gBACvB,SAAS;gBACT,OAAO,EAAE,EAAE;aACmB,CAAC;QACnC,CAAC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,UAAU,CACrB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAC7B,MAAM,UAAU,GACd,MAAM,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,oCAAoC,UAAU,EAAE,CACjD,CAAC;YACF,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,GAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAChB,WAAW,CAAC;oBACV,SAAS;iBACV,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,CAC1D,CACF;gBACD,kBAAkB,CAAC;oBACjB,SAAS;oBACT,UAAU,EAAE,UAAU;iBACvB,CAAC;gBACF,iBAAiB,CAAC;oBAChB,SAAS;oBACT,UAAU,EAAE,UAAU;iBACvB,CAAC;gBACF,WAAW,CAAC;oBACV,SAAS;oBACT,OAAO,EAAE,UAAU;iBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;aAC3C,CAAC,CAAC;YACL,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,2BAA2B,UAAU,2BAA2B,CACjE,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,iCAAiC,UAAU,EAAE,CAC9C,CAAC;YACF,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,UAAU;gBACjC,UAAU;gBACV,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;gBACpC,GAAG,EAAE,SAAS,CAAC,OAAO;oBACpB,CAAC,CAAC,WAAW,UAAU,IAAI,KAAK,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,cAAc;oBAC9E,CAAC,CAAC,SAAS;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;gBAChC,uBAAuB,EAAE,0BAA0B,CACjD,QAAQ,CAAC,QAAQ,CAClB;gBACD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;oBAC5B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBACxD,CAAC,CAAC,EAAE,CACP;aAC6B,CAAC;QACnC,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CACrC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAC1B,CACF,CACJ;QACD,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EACnC,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR;YACC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CACjE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7B,SAAS;gBACT,SAAS;aACV,CAAC,CACH,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;YACpE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,6CAA6C,IAAI,CAAC,SAAS,CACzD,cAAc,CACf,EAAE,CACJ,CAAC;YACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;gBAChD,SAAS;gBACT,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACnE,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,0DAA0D,IAAI,CAAC,SAAS,CACtE,CAAC,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5C,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9B,CACF,EAAE,CACJ,CAAC;YACF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,6BAA6B,IAAI,iBAAiB,CACnD,CAAC;gBACF,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC3D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,WAAW,IAAI,gEAAgE,CAChF,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,+CAA+C,IAAI,qCAAqC,CACzF,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,gBAAgB,CACjB,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EACnC,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,OAAO,GACR;YACC,MAAM,cAAc,GAAG,wBAAwB,CAC7C,QAAQ,EACR,MAAM,CAAC,UAAU,CAClB,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnC,SAAS;gBACT,SAAS;aACV,CAAC,CAAC,CAAC;YACJ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,sCAAsC,MAAM,CAAC,UAAU,EAAE,CAC1D,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,6CAA6C,IAAI,CAAC,SAAS,CACzD,cAAc,CACf,EAAE,CACJ,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,0DAA0D,IAAI,CAAC,SAAS,CACtE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9B,CACF,EAAE,CACJ,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;YAC7C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,sCAAsC,MAAM,CAAC,UAAU,EAAE,CAC1D,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,YAAY,CAAC;oBACX,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE;iBACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC9D,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,CAAC,YAAY,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACzC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;oBAClD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;iBACtB,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE;oBAC9C,SAAS,EAAE,CAAC,UAAU,CAAC;iBACxB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAuB,CAAC;gBAEvD,KAAK,CAAC,CAAC,MAAM;qBACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;oBACd,MAAM,IAAI,GACR,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChE,MAAM,IAAI,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAE5D,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC5B,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;4BACrB,IAAI,CAAC;gCACH,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;4BAChD,CAAC;4BAAC,MAAM,CAAC;gCACP,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;4BAC9B,CAAC;wBACH,CAAC,CAAC,EAAE,CAAC;wBACL,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC;wBAChD,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;4BACvB,SAAS,EAAE,OAAO;4BAClB,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,MAAM,MAAM,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;yBACzI,CAAC,CAAC;oBACL,CAAC;oBAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAClC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;4BACvB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;4BAClC,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE;yBAC5D,CAAC,CAAC;oBACL,CAAC;oBAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;4BACvB,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;4BACxC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,KAAK,EAAE;yBACtE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC;qBACD,IAAI,CACH,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,GAAG,CAAC;oBACT,gBAAgB,CAAC;wBACf,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,EAAE,EAAE,MAAM;wBACV,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACtB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;iBACjB,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAAE,CACnB,CAAC;gBAEJ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5B,SAAS,CAAC,SAAS,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE;gBACP;oBACE,GAAG,EAAE,qBAAqB;oBAC1B,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,MAAM,CAAC,UAAU;iBACzB;aACF;YACD,OAAO;SACR,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AA6BJ,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACrD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,kBAAkB,CAAC;QAC5B,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,0BAA0B,CAAC;QACpC,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,+BAA+B,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,wBAAwB,CAAC;QAClC,KAAK,MAAM;YACT,OAAO,wBAAwB,CAAC;QAClC;YACE,OAAO,0BAA0B,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAGF,IAAI,WAAW,GAAsB,IAAI,CAAC;AAE1C;;;GAGG;AACH,KAAK,UAAU,QAAQ;IACrB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,QAAgB,CAAC;IAErB,IAAI,CAAC;QACH,mEAAmE;QACnE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QACtE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;QAChF,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,kCAAC,kBAAkB,CAAC,OAAO,EAAC,CAAe,CAAC;IACtE,WAAW,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as FileSystem from "effect/FileSystem";
|
|
3
|
+
import type * as Path from "effect/Path";
|
|
4
|
+
import * as Stream from "effect/Stream";
|
|
5
|
+
import * as Artifacts from "../../Artifacts.ts";
|
|
6
|
+
import * as Bundle from "../../Bundle/Bundle.ts";
|
|
7
|
+
import { type DurableObjectExport } from "./DurableObjectNamespace.ts";
|
|
8
|
+
import { type WorkflowExport } from "./Workflow.ts";
|
|
9
|
+
export interface WorkerBundleOptions {
|
|
10
|
+
id: string;
|
|
11
|
+
main: string;
|
|
12
|
+
compatibility: {
|
|
13
|
+
date: string;
|
|
14
|
+
flags: string[];
|
|
15
|
+
};
|
|
16
|
+
entry: {
|
|
17
|
+
kind: "external";
|
|
18
|
+
} | {
|
|
19
|
+
kind: "effect";
|
|
20
|
+
exports: Record<string, DurableObjectExport | WorkflowExport>;
|
|
21
|
+
};
|
|
22
|
+
stack: {
|
|
23
|
+
name: string;
|
|
24
|
+
stage: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare const WorkerBundle: Effect.Effect<{
|
|
28
|
+
build: (options: WorkerBundleOptions) => Effect.Effect<Bundle.BundleOutput, Bundle.BundleError, Artifacts.Artifacts>;
|
|
29
|
+
watch: (options: WorkerBundleOptions) => Stream.Stream<Bundle.BundleWatchEvent, Bundle.BundleError, never>;
|
|
30
|
+
}, never, Path.Path | FileSystem.FileSystem>;
|
|
31
|
+
//# sourceMappingURL=WorkerBundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QACE,IAAI,EAAE,UAAU,CAAC;KAClB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;KAC/D,CAAC;IACN,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,eAAO,MAAM,YAAY;;;4CAuEvB,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import cloudflareRolldown from "@distilled.cloud/cloudflare-rolldown-plugin";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as FileSystem from "effect/FileSystem";
|
|
4
|
+
import { flow } from "effect/Function";
|
|
5
|
+
import * as Stream from "effect/Stream";
|
|
6
|
+
import * as Artifacts from "../../Artifacts.js";
|
|
7
|
+
import * as Bundle from "../../Bundle/Bundle.js";
|
|
8
|
+
import { findCwdForBundle } from "../../Bundle/TempRoot.js";
|
|
9
|
+
import { Self } from "../../Self.js";
|
|
10
|
+
import { isDurableObjectExport, } from "./DurableObjectNamespace.js";
|
|
11
|
+
import { isWorkflowExport } from "./Workflow.js";
|
|
12
|
+
export const WorkerBundle = Effect.gen(function* () {
|
|
13
|
+
const fs = yield* FileSystem.FileSystem;
|
|
14
|
+
const context = yield* Effect.context();
|
|
15
|
+
const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
|
|
16
|
+
const makeOptions = Effect.fnUntraced(function* (options) {
|
|
17
|
+
const realMain = yield* fs.realPath(options.main).pipe(Effect.mapError((cause) => new Bundle.BundleError({
|
|
18
|
+
message: `Failed to find real path for bundle: ${options.main}`,
|
|
19
|
+
cause,
|
|
20
|
+
})));
|
|
21
|
+
const inputOptions = {
|
|
22
|
+
input: realMain,
|
|
23
|
+
cwd: yield* findCwdForBundle(realMain).pipe(Effect.mapError((cause) => new Bundle.BundleError({
|
|
24
|
+
message: `Failed to find cwd for bundle: ${realMain}`,
|
|
25
|
+
cause,
|
|
26
|
+
})), Effect.provide(context)),
|
|
27
|
+
plugins: [
|
|
28
|
+
cloudflareRolldown({
|
|
29
|
+
compatibilityDate: options.compatibility.date,
|
|
30
|
+
compatibilityFlags: options.compatibility.flags,
|
|
31
|
+
}),
|
|
32
|
+
options.entry.kind === "effect"
|
|
33
|
+
? virtualEntryPlugin(makeEffectVirtualEntry(options.entry.exports, options.stack))
|
|
34
|
+
: undefined,
|
|
35
|
+
],
|
|
36
|
+
checks: {
|
|
37
|
+
// Suppress unresolved import warnings for unrelated AWS packages
|
|
38
|
+
unresolvedImport: false,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const outputOptions = {
|
|
42
|
+
format: "esm",
|
|
43
|
+
sourcemap: "hidden",
|
|
44
|
+
minify: true,
|
|
45
|
+
keepNames: true,
|
|
46
|
+
dir: `.alchemy/bundles/${options.id}`,
|
|
47
|
+
};
|
|
48
|
+
return { inputOptions, outputOptions };
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
build: flow(makeOptions, Effect.flatMap((resolved) => Bundle.build(resolved.inputOptions, resolved.outputOptions)), Artifacts.cached("build")),
|
|
52
|
+
watch: flow(makeOptions, Stream.fromEffect, Stream.flatMap((resolved) => Bundle.watch(resolved.inputOptions, resolved.outputOptions))),
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
const makeEffectVirtualEntry = (exports, stack) => {
|
|
56
|
+
const durableObjectClasses = [];
|
|
57
|
+
const workflowClasses = [];
|
|
58
|
+
for (const [className, entry] of Object.entries(exports)) {
|
|
59
|
+
if (isDurableObjectExport(entry)) {
|
|
60
|
+
durableObjectClasses.push(className);
|
|
61
|
+
}
|
|
62
|
+
else if (isWorkflowExport(entry)) {
|
|
63
|
+
workflowClasses.push(className);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return (importPath) => `import * as Config from "effect/Config";
|
|
67
|
+
import * as ConfigProvider from "effect/ConfigProvider";
|
|
68
|
+
import * as Console from "effect/Console";
|
|
69
|
+
import * as Effect from "effect/Effect";
|
|
70
|
+
import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
|
|
71
|
+
import * as Layer from "effect/Layer";
|
|
72
|
+
import * as Logger from "effect/Logger";
|
|
73
|
+
import * as Context from "effect/Context";
|
|
74
|
+
import * as Stream from "effect/Stream";
|
|
75
|
+
|
|
76
|
+
import { env, DurableObject${workflowClasses.length > 0 ? ", WorkflowEntrypoint" : ""} } from "cloudflare:workers";
|
|
77
|
+
import { MinimumLogLevel } from "effect/References";
|
|
78
|
+
import { NodeServices } from "@effect/platform-node";
|
|
79
|
+
import { Stack } from "alchemy/Stack";
|
|
80
|
+
import { WorkerEnvironment, makeDurableObjectBridge${workflowClasses.length > 0 ? ", makeWorkflowBridge" : ""}, ExportedHandlerMethods } from "alchemy/Cloudflare";
|
|
81
|
+
|
|
82
|
+
import entry from "${importPath}";
|
|
83
|
+
|
|
84
|
+
const tag = Context.Service("${Self.key}")
|
|
85
|
+
const layer =
|
|
86
|
+
typeof entry?.build === "function"
|
|
87
|
+
? entry
|
|
88
|
+
: Layer.effect(tag, typeof entry?.asEffect === "function" ? entry.asEffect() : entry);
|
|
89
|
+
|
|
90
|
+
const platform = Layer.mergeAll(
|
|
91
|
+
NodeServices.layer,
|
|
92
|
+
FetchHttpClient.layer,
|
|
93
|
+
// TODO(sam): wire this up to telemetry more directly
|
|
94
|
+
Logger.layer([Logger.consolePretty()]),
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const stack = Layer.succeed(
|
|
98
|
+
Stack,
|
|
99
|
+
{
|
|
100
|
+
name: "${stack.name}",
|
|
101
|
+
stage: "${stack.stage}",
|
|
102
|
+
bindings: {},
|
|
103
|
+
resources: {}
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const exportsEffect = tag.asEffect().pipe(
|
|
108
|
+
Effect.flatMap(func => func.ExecutionContext.exports),
|
|
109
|
+
Effect.map(exports => exports),
|
|
110
|
+
Effect.provide(
|
|
111
|
+
layer.pipe(
|
|
112
|
+
Layer.provideMerge(stack),
|
|
113
|
+
// TODO(sam): additional credentials?
|
|
114
|
+
Layer.provideMerge(platform),
|
|
115
|
+
Layer.provideMerge(
|
|
116
|
+
Layer.succeed(
|
|
117
|
+
ConfigProvider.ConfigProvider,
|
|
118
|
+
ConfigProvider.orElse(
|
|
119
|
+
ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }),
|
|
120
|
+
ConfigProvider.fromUnknown(env),
|
|
121
|
+
),
|
|
122
|
+
)
|
|
123
|
+
),
|
|
124
|
+
Layer.provideMerge(
|
|
125
|
+
Layer.succeed(
|
|
126
|
+
WorkerEnvironment,
|
|
127
|
+
env,
|
|
128
|
+
)
|
|
129
|
+
),
|
|
130
|
+
Layer.provideMerge(
|
|
131
|
+
Layer.succeed(
|
|
132
|
+
MinimumLogLevel,
|
|
133
|
+
env.DEBUG ? "Debug" : "Info",
|
|
134
|
+
)
|
|
135
|
+
),
|
|
136
|
+
)
|
|
137
|
+
),
|
|
138
|
+
Effect.scoped
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
// TODO(sam): we could kick this off during module init, but any I/O will break deploy
|
|
142
|
+
// let exportsPromise = Effect.runPromise(exportsEffect);
|
|
143
|
+
|
|
144
|
+
// for now, we delay initializing the worker until the first request
|
|
145
|
+
let exportsPromise;
|
|
146
|
+
|
|
147
|
+
// don't initialize the workerEffect during module init because Cloudflare does not allow I/O during module init
|
|
148
|
+
// we cache it synchronously (??=) to guarnatee only one initialization ever happens
|
|
149
|
+
const getExports = () => (exportsPromise ??= Effect.runPromise(exportsEffect))
|
|
150
|
+
const getExport = (name) => getExports().then(exports => exports[name]?.make)
|
|
151
|
+
const worker = () => getExports().then(exports => exports.default)
|
|
152
|
+
|
|
153
|
+
export default Object.fromEntries(ExportedHandlerMethods.map(
|
|
154
|
+
method => [method, async (...args) => (await worker())[method](...args)])
|
|
155
|
+
) satisfies Required<cf.ExportedHandler>;
|
|
156
|
+
|
|
157
|
+
// export class proxy stubs for Durable Objects and Workflows
|
|
158
|
+
${[
|
|
159
|
+
...(durableObjectClasses.length > 0
|
|
160
|
+
? [
|
|
161
|
+
"const DurableObjectBridge = makeDurableObjectBridge(DurableObject, getExport);",
|
|
162
|
+
...durableObjectClasses.map((id) => `export class ${id} extends DurableObjectBridge("${id}") {}`),
|
|
163
|
+
]
|
|
164
|
+
: []),
|
|
165
|
+
...(workflowClasses.length > 0
|
|
166
|
+
? [
|
|
167
|
+
"const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint, getExport);",
|
|
168
|
+
...workflowClasses.map((id) => `export class ${id} extends WorkflowBridgeFn("${id}") {}`),
|
|
169
|
+
]
|
|
170
|
+
: []),
|
|
171
|
+
].join("\n")}
|
|
172
|
+
`;
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=WorkerBundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"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"}
|