@opendatalabs/personal-server-ts-server 1.35.2 → 1.35.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +14 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/ui/ps-lite-debug.js +480 -35
- package/package.json +3 -3
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAM/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AA4BnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,2CAA2C,CAAC;AAEvG,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAOhG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAOnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAMlF,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -31,7 +31,7 @@ import { loadOrCreateServerAccount } from "./keys/server-account.js";
|
|
|
31
31
|
import { createRequestSigner, createServerSigner, } from "@opendatalabs/personal-server-ts-core/signing";
|
|
32
32
|
import { createGatewayLineageClient, } from "@opendatalabs/personal-server-ts-core/lineage";
|
|
33
33
|
import { createSyncCursor } from "./sync-cursor.js";
|
|
34
|
-
import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createScopeDeletionTracker, createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
34
|
+
import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createInventoryTombstoneFinality, createScopeDeletionTracker, createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
35
35
|
import { createVanaSyncStorageAdapter, resolveVanaStorageEndpoint, } from "@opendatalabs/personal-server-ts-core/storage/adapters";
|
|
36
36
|
import { createFilePendingBlobDeletionStore } from "./pending-blob-deletions.js";
|
|
37
37
|
import { createApp } from "./app.js";
|
|
@@ -581,10 +581,23 @@ export async function createServer(config, options) {
|
|
|
581
581
|
},
|
|
582
582
|
});
|
|
583
583
|
const pendingBlobDeletions = createFilePendingBlobDeletionStore(pendingBlobDeletionsPath);
|
|
584
|
+
// Blob deletes wait for the covering tombstone to be finalized, read from
|
|
585
|
+
// the signed version inventory (owner or registered-server signer).
|
|
586
|
+
const tombstoneFinality = deleteData && additionsInventorySigner
|
|
587
|
+
? createInventoryTombstoneFinality(createVersionInventoryClient({
|
|
588
|
+
gatewayUrl: config.gateway.url,
|
|
589
|
+
ownerAddress: serverOwner,
|
|
590
|
+
ownerSigner: additionsInventorySigner,
|
|
591
|
+
}))
|
|
592
|
+
: undefined;
|
|
593
|
+
if (deleteData && !tombstoneFinality) {
|
|
594
|
+
logger.warn("No version-inventory signer: storage blobs are deleted when a tombstone is queued, before it is final");
|
|
595
|
+
}
|
|
584
596
|
syncManager = createSyncManager(uploadDeps, downloadDeps, {
|
|
585
597
|
deleteData,
|
|
586
598
|
hydrateScopes: options?.hydrateScopes,
|
|
587
599
|
pendingBlobDeletions,
|
|
600
|
+
tombstoneFinality,
|
|
588
601
|
transferMode: isEnclave ? "download-only" : "upload-download",
|
|
589
602
|
async canSync() {
|
|
590
603
|
try {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AACvG,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,0BAA0B,GAE3B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,GAGlB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,EACtB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAE/B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iEAAiE,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,eAAe,EACf,uCAAuC,EACvC,yBAAyB,EACzB,wBAAwB,GAGzB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAwGhC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IACE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YACxB,MAAM,IAAI,CAAC;YACX,MAAM,IAAI,KAAK;YACf,MAAM,KAAK,UAAU,EACrB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;IACpC,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAoB,EACpB,OAA6B;IAE7B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC;IACjD,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,gEAAgE;IAChE,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,eAAe,CACjC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,SAAS,IAAI,iBAAiB,CAC7D,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,wBAAwB,GAAG,IAAI,CACnC,WAAW,EACX,6BAA6B,CAC9B,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACnE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,OAAO;gBAAE,MAAM;YAC9B,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAC9B,EAAE,CAAC;QACF,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACvE,MAAM,oBAAoB,GAAG,KAAK,IAAsB,EAAE;QACxD,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,KAAK,EAChC,IAAY,EACZ,OAAe,EACA,EAAE;QACjB,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,MAAM,oBAAoB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,IAAI,CAAC,mBAAmB,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;SAAM,IACL,CAAC,mBAAmB;QAClB,CAAC,MAAM,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,CAAC;QACrE,CAAC,MAAM,UAAU,CAAC,kBAAkB,CAAC,CAAC,EACtC,CAAC;QACD,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChC,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,qBAAqB,GAAG,KAAK,IAAmB,EAAE;QACtD,MAAM,SAAS,CAAC,qBAAqB,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;QACvD,MAAM,EAAE,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAAa,EAAoB,EAAE;QACrE,MAAM,WAAW,GAAG,IAAI,CACtB,kBAAkB,EAClB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACtE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,iBAAiB,CAAC;QACtB,WAAW;QACX,OAAO;QACP,UAAU;QACV,cAAc;QACd,UAAU;QACV,EAAE;QACF,MAAM;KACP,CAAC,CAAC;IACH,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,6BAA6B,GACjC,EAAE;SACC,OAAO,CACN,wFAAwF,CACzF;SACA,GAAG,EAAE,KAAK,SAAS,CAAC;IACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,EAAE;QAC1C,kBAAkB;QAClB,kBAAkB;QAClB,sEAAsE;QACtE,iEAAiE;QACjE,wBAAwB,EACtB,QAAQ,IAAI,CAAC,mBAAmB,IAAI,CAAC,6BAA6B;KACrE,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CACL,8EAA8E,CAC/E,CAAC;IACF,MAAM,gBAAgB,GAA4B,EAAE,OAAO,EAAE,CAAC;IAC9D,MAAM,0BAA0B,CAC9B,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAClC,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CACL,CAAC;IACF,MAAM,sBAAsB,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACnD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;YAC5B,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,iBAAiB,GAAG,IAAI,CAAC;YACzB,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,EAAE;SACpB,OAAO,CAAC,0CAA0C,CAAC;SACnD,GAAG,EAAuB,CAAC;IAC9B,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACnE,MAAM,qBAAqB,EAAE,CAAC;QAC9B,MAAM,sBAAsB,CAAC;YAC3B,YAAY;YACZ,gBAAgB;YAChB,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAC5C,aAAa;gBACb,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,cAAc,GAAG,qBAAqB,CAAC;QAC3C,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,EAAE;QACvD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kCAAkC,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,uCAAuC,CAAC;KAClE,CAAC,CAAC;IAEH,MAAM,aAAa,GACjB,OAAO,EAAE,aAAa,IAAI,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpE,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAED,6DAA6D;IAC7D,MAAM,kBAAkB,GACtB,OAAO,EAAE,cAAc;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAuD,CAAC;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBACT,CAAC;IAC5B,MAAM,iBAAiB,GAAG,eAAe;QACvC,CAAC,CAAC,mBAAmB,CACjB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAE,KAAK,eAAe,EAAoB,CAC9C;QACH,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,WAAsC,CAAC;IAE3C,IAAI,aAAwC,CAAC;IAC7C,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAkC,CAAC;IAEvC,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAC1E,WAAW,GAAG,oBAAoB,CAAC;QACnC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAC5E,IACE,iBAAiB;YACjB,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE;gBACrC,oBAAoB,CAAC,WAAW,EAAE,EACpC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC9C,aAAa;YACX,OAAO,EAAE,aAAa,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,EAC5D,uBAAuB,CACxB,CAAC;QAEF,YAAY,GAAG,kBAAkB,CAAC,aAAa,EAAE;YAC/C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;SACpC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,QAAQ,GAAG;YACT,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,IAAI,WAAW,GAAuB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAClE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,wFAAwF,EACxF;gBACE,OAAO,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE;gBACxC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CACF,CAAC;YACF,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,WAAW,GAAG,KAAK,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CACV,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACT,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE;gBACnD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,kDAAkD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,aAAa,GACjB,aAAa,IAAI,CAAC,SAAS;QACzB,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAAmC,aAAa;QAClE,CAAC,CAAC,0BAA0B,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YAC9B,aAAa;SACd,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,oBAAoB,GACxB,OAAO,EAAE,kBAAkB;QAC3B,CAAC,iBAAiB;YAClB,WAAW;YACX,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE;YACnE,CAAC,CAAC;gBACE,WAAW,EAAE,CAAC,MAAmD,EAAE,EAAE,CACnE,qBAAqB,CAAC;oBACpB,GAAG,MAAM;oBACT,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/B,iBAAiB,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;iBAC7C,CAAC;aACL;YACH,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C;;;;;;;;;;;OAWG;IACH,IAAI,gBAAgB,GAAwB,IAAI,CAAC;IACjD,MAAM,YAAY,GAAiB;QACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3B,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,gDAAgD;QAChD,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CACjC,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI;KAC3D,CAAC;IACF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,aAAa,GACjB,OAAO,EAAE,aAAa;QACtB,0BAA0B,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YAC9B,kBAAkB,EAAE,oBAAoB;SACzC,CAAC,CAAC;IACL,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,cAAc,GAAG,0BAA0B,CAAC;QAChD,IAAI,EAAE,aAAa;QACnB,WAAW;QACX,MAAM;QACN,eAAe,EAAE,WAAW;YAC1B,CAAC,CAAC,0BAA0B,CAAC,EAAE,EAAE,WAAW,CAAC;YAC7C,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IAEH,sDAAsD;IACtD,qEAAqE;IACrE,yEAAyE;IACzE,MAAM,aAAa,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,gBAAgB,GACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IAC7D,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS;QACtC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO;QACxC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,yEAAyE;IACzE,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IACpE,MAAM,iBAAiB,GACrB,OAAO,EAAE,iBAAiB;QAC1B,uCAAuC,CAAC;YACtC,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK;YAC5D,MAAM,EAAE,eAAe;YACvB,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,aAAa;gBACvB,CAAC,CAAC,yBAAyB,CAAC;oBACxB,OAAO,EAAE,gBAAgB;oBACzB,aAAa,EAAE,eAAe;oBAC9B,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAC7B,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAuB,wBAAwB,CAAC;QACvE,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,mBAAmB;QAChD,WAAW;QACX,MAAM;QACN,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CACtB,eAAe,CAAC,UAAU,EAAE;YAC1B,iEAAiE;YACjE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE;gBACjD,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC;YACJ,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,iBAAiB;YAC3B,WAAW;YACX,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;YAC/C,WAAW,EAAE;gBACX,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE;aAClD;YACD,cAAc;YACd,gBAAgB,EAAE;gBAChB,mBAAmB,EAAE,aAAa;gBAClC,aAAa,EAAE,aAAa;aAC7B;YACD,MAAM;SACP,CAAC;KACL,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,mBAAmB;KAC/B,CAAC;IAEF,MAAM,wBAAwB,GAC5B,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,IAAI,aAAa,CAAC;IAC7E,IAAI,SAA8C,CAAC;IACnD,IACE,wBAAwB;QACxB,CAAC,CAAC,SAAS,IAAI,OAAO,EAAE,eAAe,CAAC;QACxC,kBAAkB;QAClB,WAAW;QACX,aAAa;QACb,YAAY,EACZ,CAAC;QACD,SAAS,GAAG,sBAAsB,CAAC;YACjC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9B,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAChD,KAAK,CAAC,OAAO,CACd;YACH,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACjC,IAAI,CAAC,WAAW;oBACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,YAAY,EAAE,WAAW;YACzB,OAAO,EAAE,QAAQ,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;YAC/E,SAAS,EAAE,4BAA4B,CAAC;gBACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBAC9B,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,wBAAwB;aACtC,CAAC;YACF,cAAc,EACZ,OAAO,EAAE,eAAe,EAAE,cAAc;gBACxC,4BAA4B,CAAC;oBAC3B,MAAM;oBACN,WAAW;oBACX,aAAa;oBACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;iBACvC,CAAC;YACJ,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;YAC9C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,YAAY;YACxD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,IAAI,aAAa;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,IACE,MAAM,CAAC,IAAI,CAAC,OAAO;QACnB,kBAAkB;QAClB,WAAW;QACX,aAAa;QACb,YAAY,EACZ,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,4BAA4B,CAAC;YAClD,MAAM;YACN,WAAW;YACX,aAAa;YACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE;YAC9C,gBAAgB,EAAE,UAAU;SAC7B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;YACjB,SAAS;YACT,OAAO,EAAE,cAAc;YACvB,cAAc;YACd,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,YAAY;YACpB,SAAS;YACT,WAAW;YACX,MAAM;YACN,cAAc;YACd,aAAa;YACb,cAAc;SACf,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,cAAc;YACvB,cAAc;YACd,OAAO,EAAE,aAAa;YACtB,MAAM;YACN,SAAS;YACT,WAAW;YACX,MAAM;YACN,aAAa;YACb,cAAc;YACd,kBAAkB,EAAE,CAAC,KAGpB,EAAE,EAAE,CACH,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE;gBACjD,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC;YACJ,YAAY;SACb,CAAC;QAEF,kEAAkE;QAClE,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,UAAU,GAAG,SAAS;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,2BAA2B,CAAC;gBAC1B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBAC9B,aAAa;gBACb,gEAAgE;gBAChE,8DAA8D;gBAC9D,qEAAqE;gBACrE,YAAY,EAAE,aAAa;oBACzB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CACR,4BAA4B,CAAC;wBAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;wBAC9B,YAAY,EAAE,WAAW;wBACzB,WAAW,EAAE,aAAa;qBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBAClB,CAAC,CAAC,SAAS;gBACb,WAAW;gBACX,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE;oBACP,QAAQ,EAAE,0BAA0B,CAAC,MAAM,CAAC;oBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC;iBAC7D;aACF,CAAC,CAAC;QACP,MAAM,oBAAoB,GAAG,kCAAkC,CAC7D,wBAAwB,CACzB,CAAC;QAEF,WAAW,GAAG,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE;YACxD,UAAU;YACV,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,oBAAoB;YACpB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB;YAC7D,KAAK,CAAC,OAAO;gBACX,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;oBACF,QAAS,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;oBAC5C,IAAI,UAAU,EAAE,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;oBACxC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,cAAc;wBACtB,OAAO,EAAE,+CAA+C;qBACzD,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;oBACtE,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,2BAA2B;wBACnC,OAAO,EAAE,sDAAsD;qBAChE,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CACT,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEvD,qDAAqD;IACrD,MAAM,QAAQ,GACZ,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,2DAA2D;IAC3D,MAAM,UAAU,GAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;IACpD,MAAM,iBAAiB,GACrB,SAAS,IAAI,SAAS;QACpB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,4BAAgD,CAAC;IAErD,+DAA+D;IAC/D,IAAI,aAAwC,CAAC;IAE7C,oEAAoE;IACpE,yEAAyE;IACzE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,sBAAsB,GAAsC,GAAG,EAAE,GAAE,CAAC,CAAC;IACzE,IAAI,qBAAqB,GAAyC,IAAI,CAAC;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,YAAY,CAAC,qBAAqB,CAAC,CAAC;YACpC,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,EAAE,eAAe,CAAC;IAC9C,MAAM,cAAc,GAAG,WAAW,CAAC;IACnC,MAAM,SAAS,GACb,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,YAAY;QACvD,CAAC,CAAC,CAAC,QAA0C,EAAE,EAAE,CAC7C,UAAU,CAAC,QAAQ,EAAE;YACnB,WAAW;YACX,aAAa,EAAE,aAAa,CAAC,OAAO;YACpC,eAAe,EAAE,aAAa,CAAC,SAAS;YACxC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9D,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,OAAO,EAAE,WAAW;YACpB,KAAK;YACL,MAAM;YACN,eAAe;YACf,cAAc;YACd,YAAY,EAAE,cAAc;gBAC1B,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC,CAAC,SAAS;YACb,YAAY;SACb,CAAC;QACN,CAAC,CAAC,SAAS,CAAC;IAEhB,sEAAsE;IACtE,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;QACxC,MAAM;QACN,WAAW;QACX,MAAM;QACN,YAAY;QACZ,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;QACnC,WAAW;QACX,QAAQ;QACR,WAAW;QACX,UAAU;KACX,CAAC,CAAC;IAEH,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,WAAW,GAAG,kBAAkB,CACpC,EAAE,EACF,MAAM,CAAC,WAAW,CAAC,OAAO,EAC1B,MAAM,CACP,CAAC;IACF,uEAAuE;IACvE,kDAAkD;IAClD,MAAM,qBAAqB,GAAG,iCAAiC,CAAC,EAAE,EAAE;QAClE,SAAS,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI;QACxD,kBAAkB,EAAE,WAAW,CAAC,OAAO;KACxC,CAAC,CAAC;IACH,IAAI,qBAAqB,KAAK,eAAe;QAC3C,MAAM,CAAC,IAAI,CACT,EAAE,qBAAqB,EAAE,EACzB,wDAAwD,CACzD,CAAC;IAEJ,sEAAsE;IACtE,2EAA2E;IAC3E,oEAAoE;IACpE,8CAA8C;IAC9C,IAAI,eAA4C,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,eAAe;YACb,CAAC,SAAS;gBACV,kBAAkB;gBAClB,WAAW;gBACX,aAAa;gBACb,YAAY;gBACZ,QAAQ;gBACN,CAAC,CAAC,qBAAqB,CAAC;oBACpB,EAAE;oBACF,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,YAAY,EAAE,QAAQ,CAAC,oBAAoB;oBAC3C,aAAa;oBACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,6BAA6B,CAAC;wBAC5B,MAAM;wBACN,KAAK;wBACL,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;wBAC9C,OAAO,EAAE,4BAA4B,CAAC;4BACpC,MAAM;4BACN,WAAW;4BACX,aAAa;4BACb,KAAK,EAAE,QAAQ;yBAChB,CAAC;wBACF,OAAO,EAAE,aAAa;wBACtB,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,YAAY;qBACrB,CAAC;oBACJ,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;QACxE,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS;YACrC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,EAClC,+CAA+C,CAChD,CAAC;IACN,CAAC;IACD,MAAM,WAAW,GACf,eAAe,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAErE,IAAI,QAAQ,EAAE,CAAC;QACb,6BAA6B,CAAC;YAC5B,EAAE;YACF,WAAW;YACX,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,YAAY,EAAE,YAAY;iBACvB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;YACnC,MAAM;YACN,WAAW,EAAE,WAAW,CAAC,OAAO;SACjC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,6DAA6D;IAC7D,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,sBAAsB;IACtB,MAAM,WAAW,GAAG,qBAAqB,CAAC;QACxC,QAAQ;QACR,YAAY,EAAE,QAAQ,EAAE,oBAAoB,IAAI,EAAE;QAClD,EAAE;QACF,WAAW;QACX,QAAQ,EAAE,eAAe;QACzB,MAAM;QACN,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB;QAC9C,WAAW,EAAE,WAAW,CAAC,OAAO;QAChC,OAAO,EAAE,WAAW,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;YACE,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;YACrE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,6BAA6B,CAAC,QAAQ,CAAC;YAClE,cAAc,EAAE,WAAY;YAC5B,iBAAiB,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtD,iBAAiB,EACf,WAAW,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAoB;YAC/D,kBAAkB,EAAE,IAAI,GAAG,CACzB,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC5D;YACD,SAAS,EAAE,IAAI,GAAG,CAAC;gBACjB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBACpC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAClC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CACvC;aACF,CAAC;SACH;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,oEAAoE;IACpE,gBAAgB;QACd,sBAAsB,CAAC;YACrB,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,QAAQ,EAAE,oBAAoB,IAAI,EAAE;YAClD,SAAS,EAAE,QAAQ,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAE;YACnD,WAAW;YACX,MAAM;SACP,CAAC,IAAI,IAAI,CAAC;IAEb,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,QAAQ,GACZ,CAAC,SAAS,IAAI,kBAAkB;QAC9B,CAAC,CAAC,MAAM,iBAAiB,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;YACzC,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;YAC9C,MAAM;SACP,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,GAAG,GAAG,SAAS,CAAC;QACpB,QAAQ;QACR,oEAAoE;QACpE,qEAAqE;QACrE,+DAA+D;QAC/D,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,WAAW;QACX,gBAAgB,EAAE,QAAQ;YACxB,CAAC,CAAC;gBACE,QAAQ,EAAE,QAAQ,CAAC,mBAAmB;gBACtC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,aAAa,EAAE,WAAW;aAC3B;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,eAAe;QACf,sEAAsE;QACtE,yEAAyE;QACzE,uEAAuE;QACvE,YAAY;QACZ,gBAAgB,EACd,SAAS,IAAI,cAAc;YACzB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC;YAClD,CAAC,CAAC,SAAS;QACf,MAAM;QACN,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS;QACT,YAAY;QACZ,gBAAgB;QAChB,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;QACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,4BAA4B;QACvD,iBAAiB;QACjB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,WAAW;QACX,QAAQ;QACR,OAAO,EAAE,aAAa;QACtB,aAAa,EAAE,MAAM,CAAC,OAAO;QAC7B,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;QAC9B,cAAc;QACd,iBAAiB;QACjB,MAAM;QACN,eAAe;QACf,eAAe;QACf,uBAAuB,EAAE,OAAO,EAAE,uBAAuB;QACzD,WAAW;QACX,SAAS;QACT,sEAAsE;QACtE,+DAA+D;QAC/D,uEAAuE;QACvE,wEAAwE;QACxE,8CAA8C;QAC9C,eAAe,EAAE,qBAAqB,CAAC;YACrC,MAAM;YACN,SAAS,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,WAAW,IAAI,kBAAkB,CAAC,WAAW,CAAC;YACvD,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,YAAY,EAAE,WAAW,EAAE,YAAY;YACvC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC9B,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpD,YAAY,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/C,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC7B,IACE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EACvC,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,sBAAsB,CAAC,WAAW,EAAE,CAAC,KAAK,CAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAC7D,CAAC;YACJ,CAAC;YACD,kBAAkB,EAAE;gBAClB,eAAe,EAAE,aAAa,CAAC,iCAAiC,EAAE,GAAG,CAAC;gBACtE,aAAa,EAAE,aAAa,CAC1B,+BAA+B,EAC/B,GAAG,GAAG,IAAI,CACX;aACF;SACF,CAAC;QACF,cAAc;QACd,SAAS;QACT,QAAQ;QACR,cAAc,EAAE,kBAAkB;QAClC,eAAe;QACf,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QACX,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI;QACzD,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;QACjD,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;QAC/D,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;QAC/C,kBAAkB,EAAE,QAAQ,EAAE,WAAW;QACzC,0BAA0B,EAAE,QAAQ,EAAE,cAAc;QACpD,mBAAmB,EAAE,QAAQ,EAAE,OAAO;QACtC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,gBAAgB,GAAG,IAAI,CAAC;QACxB,qBAAqB,EAAE,CAAC;QACxB,wEAAwE;QACxE,IACE,WAAW;YACX,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAEhE,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACjE,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAkB;QAC7B,GAAG;QACH,MAAM;QACN,MAAM;QACN,SAAS;QACT,YAAY;QACZ,aAAa;QACb,eAAe;QACf,aAAa;QACb,YAAY;QACZ,WAAW;QACX,aAAa;QACb,SAAS,EAAE,SAAS;QACpB,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACrD,iBAAiB;QACjB,sBAAsB,EAAE,GAAG,EAAE,CAAC,4BAA4B;QAC1D,sBAAsB,EAAE,CAAC,MAAe,EAAE,EAAE;YAC1C,4BAA4B,GAAG,MAAM,CAAC;QACxC,CAAC;QACD,QAAQ;QACR,iBAAiB,EAAE,WAAW,CAAC,MAAM;QACrC,WAAW,EAAE,eAAe;QAC5B,qBAAqB;QACrB,uBAAuB,EAAE,KAAK,IAAI,EAAE;YAClC,4DAA4D;YAC5D,IAAI,CAAC,gBAAgB;gBAAE,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,iEAAiE;YACjE,iEAAiE;YACjE,oCAAoC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAED,uDAAuD;YACvD,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;oBACF,QAAQ,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,8CAA8C;gBAChD,CAAC;gBAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACT,4DAA4D,CAC7D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CACT;wBACE,aAAa,EAAE,aAAa,CAAC,OAAO;wBACpC,SAAS,EAAE,aAAa,CAAC,SAAS;qBACnC,EACD,wFAAwF,CACzF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IACE,CAAC,SAAS;gBACV,MAAM,CAAC,MAAM,CAAC,OAAO;gBACrB,WAAW;gBACX,aAAa;gBACb,cAAc,EACd,CAAC;gBACD,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/C,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBAEtC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;gBAE3B,IAAI,oBAAoB,GAAG,KAAK,CAAC;gBACjC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;oBAC/B,MAAM,OAAO,GAAG,aAAa,CAAC;oBAC9B,IAAI,CAAC,OAAO,IAAI,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;wBACzD,OAAO;oBACT,CAAC;oBACD,oBAAoB,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;wBACzC,IAAI,YAAY,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BACxC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,EACjD,oDAAoD,CACrD,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,8DAA8D,CAC/D,CAAC;wBACF,aAAa,GAAG,SAAS,CAAC;wBAC1B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;wBAClC,gEAAgE;wBAChE,8DAA8D;wBAC9D,mDAAmD;wBACnD,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;wBACvC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;oBAChC,CAAC;gBACH,CAAC,CAAC;gBAEF,+DAA+D;gBAC/D,oEAAoE;gBACpE,0CAA0C;gBAC1C,MAAM,wBAAwB,GAAG,GAAG,EAAE;oBACpC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;wBACtB,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC;4BACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;4BACF,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;gCACnB,IAAI,QAAQ,EAAE,CAAC;oCACb,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC;gCACpC,CAAC;gCACD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gCAC9D,MAAM,aAAa,EAAE,CAAC;gCACtB,OAAO;4BACT,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;wBACD,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO;wBACT,CAAC;wBACD,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC3D,qBAAqB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAChE,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;oBAClC,CAAC,CAAC;oBACF,qBAAqB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC7D,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE;oBACpC,IAAI,gBAAgB,EAAE,CAAC;wBACrB,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAC/B,CAAC;wBACD,iEAAiE;wBACjE,0DAA0D;wBAC1D,wCAAwC;wBACxC,qBAAqB,EAAE,CAAC;oBAC1B,CAAC;oBACD,KAAK,aAAa,EAAE,CAAC;gBACvB,CAAC,CAAC;gBAEF,IAAI,CAAC;oBACH,+DAA+D;oBAC/D,+DAA+D;oBAC/D,wDAAwD;oBACxD,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAC/B;wBACE,aAAa,EAAE,aAAa,CAAC,OAAO;wBACpC,YAAY,EAAE,WAAW;wBACzB,aAAa,EAAE,aAAa;wBAC5B,YAAY,EAAE,iBAAiB;4BAC7B,CAAC,CAAC;gCACE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CACvB,iBAAiB,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;6BAC7C;4BACH,CAAC,CAAC,SAAS;wBACb,KAAK;wBACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;wBACpC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;wBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;qBAC9B,EACD,cAAc,CACf,CAAC;oBACF,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;oBACxB,mEAAmE;oBACnE,6DAA6D;oBAC7D,sCAAsC;oBACtC,eAAe,GAAG,GAAG,CAAC;oBAEtB,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;wBACvB,MAAM,aAAa,EAAE,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,GAAG,EAAE,EAClB,8EAA8E,CAC/E,CAAC;wBACF,wBAAwB,EAAE,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,4DAA4D,CAC7D,CAAC;oBACF,aAAa,GAAG,SAAS,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,kFAAkF,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;KACR,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AACvG,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,0BAA0B,GAE3B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,iBAAiB,GAGlB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,EACtB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAE/B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iEAAiE,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,eAAe,EACf,uCAAuC,EACvC,yBAAyB,EACzB,wBAAwB,GAGzB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAwGhC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IACE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YACxB,MAAM,IAAI,CAAC;YACX,MAAM,IAAI,KAAK;YACf,MAAM,KAAK,UAAU,EACrB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;IACpC,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAoB,EACpB,OAA6B;IAE7B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC;IACjD,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,gEAAgE;IAChE,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,eAAe,CACjC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,SAAS,IAAI,iBAAiB,CAC7D,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,wBAAwB,GAAG,IAAI,CACnC,WAAW,EACX,6BAA6B,CAC9B,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACnE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,OAAO;gBAAE,MAAM;YAC9B,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAC9B,EAAE,CAAC;QACF,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACvE,MAAM,oBAAoB,GAAG,KAAK,IAAsB,EAAE;QACxD,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,KAAK,EAChC,IAAY,EACZ,OAAe,EACA,EAAE;QACjB,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,MAAM,oBAAoB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,IAAI,CAAC,mBAAmB,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;SAAM,IACL,CAAC,mBAAmB;QAClB,CAAC,MAAM,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,CAAC;QACrE,CAAC,MAAM,UAAU,CAAC,kBAAkB,CAAC,CAAC,EACtC,CAAC;QACD,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChC,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,qBAAqB,GAAG,KAAK,IAAmB,EAAE;QACtD,MAAM,SAAS,CAAC,qBAAqB,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;QACvD,MAAM,EAAE,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAAa,EAAoB,EAAE;QACrE,MAAM,WAAW,GAAG,IAAI,CACtB,kBAAkB,EAClB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACtE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,iBAAiB,CAAC;QACtB,WAAW;QACX,OAAO;QACP,UAAU;QACV,cAAc;QACd,UAAU;QACV,EAAE;QACF,MAAM;KACP,CAAC,CAAC;IACH,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,6BAA6B,GACjC,EAAE;SACC,OAAO,CACN,wFAAwF,CACzF;SACA,GAAG,EAAE,KAAK,SAAS,CAAC;IACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,EAAE;QAC1C,kBAAkB;QAClB,kBAAkB;QAClB,sEAAsE;QACtE,iEAAiE;QACjE,wBAAwB,EACtB,QAAQ,IAAI,CAAC,mBAAmB,IAAI,CAAC,6BAA6B;KACrE,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CACL,8EAA8E,CAC/E,CAAC;IACF,MAAM,gBAAgB,GAA4B,EAAE,OAAO,EAAE,CAAC;IAC9D,MAAM,0BAA0B,CAC9B,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAClC,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CACL,CAAC;IACF,MAAM,sBAAsB,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACnD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;YAC5B,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,iBAAiB,GAAG,IAAI,CAAC;YACzB,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,EAAE;SACpB,OAAO,CAAC,0CAA0C,CAAC;SACnD,GAAG,EAAuB,CAAC;IAC9B,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACnE,MAAM,qBAAqB,EAAE,CAAC;QAC9B,MAAM,sBAAsB,CAAC;YAC3B,YAAY;YACZ,gBAAgB;YAChB,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAC5C,aAAa;gBACb,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,cAAc,GAAG,qBAAqB,CAAC;QAC3C,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,EAAE;QACvD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kCAAkC,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,uCAAuC,CAAC;KAClE,CAAC,CAAC;IAEH,MAAM,aAAa,GACjB,OAAO,EAAE,aAAa,IAAI,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpE,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAED,6DAA6D;IAC7D,MAAM,kBAAkB,GACtB,OAAO,EAAE,cAAc;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAuD,CAAC;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBACT,CAAC;IAC5B,MAAM,iBAAiB,GAAG,eAAe;QACvC,CAAC,CAAC,mBAAmB,CACjB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAE,KAAK,eAAe,EAAoB,CAC9C;QACH,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,WAAsC,CAAC;IAE3C,IAAI,aAAwC,CAAC;IAC7C,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAkC,CAAC;IAEvC,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAC1E,WAAW,GAAG,oBAAoB,CAAC;QACnC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAC5E,IACE,iBAAiB;YACjB,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE;gBACrC,oBAAoB,CAAC,WAAW,EAAE,EACpC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC9C,aAAa;YACX,OAAO,EAAE,aAAa,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,EAC5D,uBAAuB,CACxB,CAAC;QAEF,YAAY,GAAG,kBAAkB,CAAC,aAAa,EAAE;YAC/C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;SACpC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,QAAQ,GAAG;YACT,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,IAAI,WAAW,GAAuB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAClE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,wFAAwF,EACxF;gBACE,OAAO,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE;gBACxC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CACF,CAAC;YACF,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,WAAW,GAAG,KAAK,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CACV,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACT,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE;gBACnD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,kDAAkD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,aAAa,GACjB,aAAa,IAAI,CAAC,SAAS;QACzB,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAAmC,aAAa;QAClE,CAAC,CAAC,0BAA0B,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YAC9B,aAAa;SACd,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,oBAAoB,GACxB,OAAO,EAAE,kBAAkB;QAC3B,CAAC,iBAAiB;YAClB,WAAW;YACX,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE;YACnE,CAAC,CAAC;gBACE,WAAW,EAAE,CAAC,MAAmD,EAAE,EAAE,CACnE,qBAAqB,CAAC;oBACpB,GAAG,MAAM;oBACT,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/B,iBAAiB,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;iBAC7C,CAAC;aACL;YACH,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C;;;;;;;;;;;OAWG;IACH,IAAI,gBAAgB,GAAwB,IAAI,CAAC;IACjD,MAAM,YAAY,GAAiB;QACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3B,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,gDAAgD;QAChD,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CACjC,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI;KAC3D,CAAC;IACF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,aAAa,GACjB,OAAO,EAAE,aAAa;QACtB,0BAA0B,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YAC9B,kBAAkB,EAAE,oBAAoB;SACzC,CAAC,CAAC;IACL,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,cAAc,GAAG,0BAA0B,CAAC;QAChD,IAAI,EAAE,aAAa;QACnB,WAAW;QACX,MAAM;QACN,eAAe,EAAE,WAAW;YAC1B,CAAC,CAAC,0BAA0B,CAAC,EAAE,EAAE,WAAW,CAAC;YAC7C,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IAEH,sDAAsD;IACtD,qEAAqE;IACrE,yEAAyE;IACzE,MAAM,aAAa,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,gBAAgB,GACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IAC7D,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS;QACtC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO;QACxC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,yEAAyE;IACzE,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IACpE,MAAM,iBAAiB,GACrB,OAAO,EAAE,iBAAiB;QAC1B,uCAAuC,CAAC;YACtC,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK;YAC5D,MAAM,EAAE,eAAe;YACvB,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,aAAa;gBACvB,CAAC,CAAC,yBAAyB,CAAC;oBACxB,OAAO,EAAE,gBAAgB;oBACzB,aAAa,EAAE,eAAe;oBAC9B,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAC7B,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAuB,wBAAwB,CAAC;QACvE,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,mBAAmB;QAChD,WAAW;QACX,MAAM;QACN,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CACtB,eAAe,CAAC,UAAU,EAAE;YAC1B,iEAAiE;YACjE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE;gBACjD,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC;YACJ,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,iBAAiB;YAC3B,WAAW;YACX,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;YAC/C,WAAW,EAAE;gBACX,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE;aAClD;YACD,cAAc;YACd,gBAAgB,EAAE;gBAChB,mBAAmB,EAAE,aAAa;gBAClC,aAAa,EAAE,aAAa;aAC7B;YACD,MAAM;SACP,CAAC;KACL,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,mBAAmB;KAC/B,CAAC;IAEF,MAAM,wBAAwB,GAC5B,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,IAAI,aAAa,CAAC;IAC7E,IAAI,SAA8C,CAAC;IACnD,IACE,wBAAwB;QACxB,CAAC,CAAC,SAAS,IAAI,OAAO,EAAE,eAAe,CAAC;QACxC,kBAAkB;QAClB,WAAW;QACX,aAAa;QACb,YAAY,EACZ,CAAC;QACD,SAAS,GAAG,sBAAsB,CAAC;YACjC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9B,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAChD,KAAK,CAAC,OAAO,CACd;YACH,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACjC,IAAI,CAAC,WAAW;oBACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,YAAY,EAAE,WAAW;YACzB,OAAO,EAAE,QAAQ,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;YAC/E,SAAS,EAAE,4BAA4B,CAAC;gBACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBAC9B,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,wBAAwB;aACtC,CAAC;YACF,cAAc,EACZ,OAAO,EAAE,eAAe,EAAE,cAAc;gBACxC,4BAA4B,CAAC;oBAC3B,MAAM;oBACN,WAAW;oBACX,aAAa;oBACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;iBACvC,CAAC;YACJ,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;YAC9C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,YAAY;YACxD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,IAAI,aAAa;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,IACE,MAAM,CAAC,IAAI,CAAC,OAAO;QACnB,kBAAkB;QAClB,WAAW;QACX,aAAa;QACb,YAAY,EACZ,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,4BAA4B,CAAC;YAClD,MAAM;YACN,WAAW;YACX,aAAa;YACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE;YAC9C,gBAAgB,EAAE,UAAU;SAC7B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;YACjB,SAAS;YACT,OAAO,EAAE,cAAc;YACvB,cAAc;YACd,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,YAAY;YACpB,SAAS;YACT,WAAW;YACX,MAAM;YACN,cAAc;YACd,aAAa;YACb,cAAc;SACf,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,cAAc;YACvB,cAAc;YACd,OAAO,EAAE,aAAa;YACtB,MAAM;YACN,SAAS;YACT,WAAW;YACX,MAAM;YACN,aAAa;YACb,cAAc;YACd,kBAAkB,EAAE,CAAC,KAGpB,EAAE,EAAE,CACH,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE;gBACjD,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC;YACJ,YAAY;SACb,CAAC;QAEF,kEAAkE;QAClE,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,UAAU,GAAG,SAAS;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,2BAA2B,CAAC;gBAC1B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBAC9B,aAAa;gBACb,gEAAgE;gBAChE,8DAA8D;gBAC9D,qEAAqE;gBACrE,YAAY,EAAE,aAAa;oBACzB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CACR,4BAA4B,CAAC;wBAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;wBAC9B,YAAY,EAAE,WAAW;wBACzB,WAAW,EAAE,aAAa;qBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBAClB,CAAC,CAAC,SAAS;gBACb,WAAW;gBACX,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE;oBACP,QAAQ,EAAE,0BAA0B,CAAC,MAAM,CAAC;oBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC;iBAC7D;aACF,CAAC,CAAC;QACP,MAAM,oBAAoB,GAAG,kCAAkC,CAC7D,wBAAwB,CACzB,CAAC;QACF,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,iBAAiB,GACrB,UAAU,IAAI,wBAAwB;YACpC,CAAC,CAAC,gCAAgC,CAC9B,4BAA4B,CAAC;gBAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;gBAC9B,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,wBAAwB;aACtC,CAAC,CACH;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,UAAU,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CACT,uGAAuG,CACxG,CAAC;QACJ,CAAC;QAED,WAAW,GAAG,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE;YACxD,UAAU;YACV,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,oBAAoB;YACpB,iBAAiB;YACjB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB;YAC7D,KAAK,CAAC,OAAO;gBACX,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;oBACF,QAAS,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;oBAC5C,IAAI,UAAU,EAAE,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;oBACxC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,cAAc;wBACtB,OAAO,EAAE,+CAA+C;qBACzD,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;oBACtE,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,2BAA2B;wBACnC,OAAO,EAAE,sDAAsD;qBAChE,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CACT,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEvD,qDAAqD;IACrD,MAAM,QAAQ,GACZ,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,2DAA2D;IAC3D,MAAM,UAAU,GAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;IACpD,MAAM,iBAAiB,GACrB,SAAS,IAAI,SAAS;QACpB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,4BAAgD,CAAC;IAErD,+DAA+D;IAC/D,IAAI,aAAwC,CAAC;IAE7C,oEAAoE;IACpE,yEAAyE;IACzE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,sBAAsB,GAAsC,GAAG,EAAE,GAAE,CAAC,CAAC;IACzE,IAAI,qBAAqB,GAAyC,IAAI,CAAC;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,YAAY,CAAC,qBAAqB,CAAC,CAAC;YACpC,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,EAAE,eAAe,CAAC;IAC9C,MAAM,cAAc,GAAG,WAAW,CAAC;IACnC,MAAM,SAAS,GACb,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,YAAY;QACvD,CAAC,CAAC,CAAC,QAA0C,EAAE,EAAE,CAC7C,UAAU,CAAC,QAAQ,EAAE;YACnB,WAAW;YACX,aAAa,EAAE,aAAa,CAAC,OAAO;YACpC,eAAe,EAAE,aAAa,CAAC,SAAS;YACxC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9D,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,OAAO,EAAE,WAAW;YACpB,KAAK;YACL,MAAM;YACN,eAAe;YACf,cAAc;YACd,YAAY,EAAE,cAAc;gBAC1B,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC,CAAC,SAAS;YACb,YAAY;SACb,CAAC;QACN,CAAC,CAAC,SAAS,CAAC;IAEhB,sEAAsE;IACtE,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;QACxC,MAAM;QACN,WAAW;QACX,MAAM;QACN,YAAY;QACZ,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;QACnC,WAAW;QACX,QAAQ;QACR,WAAW;QACX,UAAU;KACX,CAAC,CAAC;IAEH,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,WAAW,GAAG,kBAAkB,CACpC,EAAE,EACF,MAAM,CAAC,WAAW,CAAC,OAAO,EAC1B,MAAM,CACP,CAAC;IACF,uEAAuE;IACvE,kDAAkD;IAClD,MAAM,qBAAqB,GAAG,iCAAiC,CAAC,EAAE,EAAE;QAClE,SAAS,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI;QACxD,kBAAkB,EAAE,WAAW,CAAC,OAAO;KACxC,CAAC,CAAC;IACH,IAAI,qBAAqB,KAAK,eAAe;QAC3C,MAAM,CAAC,IAAI,CACT,EAAE,qBAAqB,EAAE,EACzB,wDAAwD,CACzD,CAAC;IAEJ,sEAAsE;IACtE,2EAA2E;IAC3E,oEAAoE;IACpE,8CAA8C;IAC9C,IAAI,eAA4C,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,eAAe;YACb,CAAC,SAAS;gBACV,kBAAkB;gBAClB,WAAW;gBACX,aAAa;gBACb,YAAY;gBACZ,QAAQ;gBACN,CAAC,CAAC,qBAAqB,CAAC;oBACpB,EAAE;oBACF,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,YAAY,EAAE,QAAQ,CAAC,oBAAoB;oBAC3C,aAAa;oBACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,6BAA6B,CAAC;wBAC5B,MAAM;wBACN,KAAK;wBACL,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;wBAC9C,OAAO,EAAE,4BAA4B,CAAC;4BACpC,MAAM;4BACN,WAAW;4BACX,aAAa;4BACb,KAAK,EAAE,QAAQ;yBAChB,CAAC;wBACF,OAAO,EAAE,aAAa;wBACtB,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,YAAY;qBACrB,CAAC;oBACJ,MAAM;iBACP,CAAC;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;QACxE,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS;YACrC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,EAClC,+CAA+C,CAChD,CAAC;IACN,CAAC;IACD,MAAM,WAAW,GACf,eAAe,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAErE,IAAI,QAAQ,EAAE,CAAC;QACb,6BAA6B,CAAC;YAC5B,EAAE;YACF,WAAW;YACX,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,YAAY,EAAE,YAAY;iBACvB,kBAAkB,EAAE;iBACpB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;YACnC,MAAM;YACN,WAAW,EAAE,WAAW,CAAC,OAAO;SACjC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,6DAA6D;IAC7D,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,sBAAsB;IACtB,MAAM,WAAW,GAAG,qBAAqB,CAAC;QACxC,QAAQ;QACR,YAAY,EAAE,QAAQ,EAAE,oBAAoB,IAAI,EAAE;QAClD,EAAE;QACF,WAAW;QACX,QAAQ,EAAE,eAAe;QACzB,MAAM;QACN,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB;QAC9C,WAAW,EAAE,WAAW,CAAC,OAAO;QAChC,OAAO,EAAE,WAAW,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;YACE,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;YACrE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,6BAA6B,CAAC,QAAQ,CAAC;YAClE,cAAc,EAAE,WAAY;YAC5B,iBAAiB,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtD,iBAAiB,EACf,WAAW,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAoB;YAC/D,kBAAkB,EAAE,IAAI,GAAG,CACzB,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC5D;YACD,SAAS,EAAE,IAAI,GAAG,CAAC;gBACjB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBACpC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAClC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CACvC;aACF,CAAC;SACH;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,oEAAoE;IACpE,gBAAgB;QACd,sBAAsB,CAAC;YACrB,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,QAAQ,EAAE,oBAAoB,IAAI,EAAE;YAClD,SAAS,EAAE,QAAQ,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAE;YACnD,WAAW;YACX,MAAM;SACP,CAAC,IAAI,IAAI,CAAC;IAEb,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,QAAQ,GACZ,CAAC,SAAS,IAAI,kBAAkB;QAC9B,CAAC,CAAC,MAAM,iBAAiB,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;YACzC,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC;YAC9C,MAAM;SACP,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,GAAG,GAAG,SAAS,CAAC;QACpB,QAAQ;QACR,oEAAoE;QACpE,qEAAqE;QACrE,+DAA+D;QAC/D,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,WAAW;QACX,gBAAgB,EAAE,QAAQ;YACxB,CAAC,CAAC;gBACE,QAAQ,EAAE,QAAQ,CAAC,mBAAmB;gBACtC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,aAAa,EAAE,WAAW;aAC3B;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,eAAe;QACf,sEAAsE;QACtE,yEAAyE;QACzE,uEAAuE;QACvE,YAAY;QACZ,gBAAgB,EACd,SAAS,IAAI,cAAc;YACzB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC;YAClD,CAAC,CAAC,SAAS;QACf,MAAM;QACN,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS;QACT,YAAY;QACZ,gBAAgB;QAChB,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;QACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,4BAA4B;QACvD,iBAAiB;QACjB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,WAAW;QACX,QAAQ;QACR,OAAO,EAAE,aAAa;QACtB,aAAa,EAAE,MAAM,CAAC,OAAO;QAC7B,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;QAC9B,cAAc;QACd,iBAAiB;QACjB,MAAM;QACN,eAAe;QACf,eAAe;QACf,uBAAuB,EAAE,OAAO,EAAE,uBAAuB;QACzD,WAAW;QACX,SAAS;QACT,sEAAsE;QACtE,+DAA+D;QAC/D,uEAAuE;QACvE,wEAAwE;QACxE,8CAA8C;QAC9C,eAAe,EAAE,qBAAqB,CAAC;YACrC,MAAM;YACN,SAAS,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,WAAW,IAAI,kBAAkB,CAAC,WAAW,CAAC;YACvD,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,YAAY,EAAE,WAAW,EAAE,YAAY;YACvC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC9B,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpD,YAAY,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/C,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC7B,IACE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EACvC,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,sBAAsB,CAAC,WAAW,EAAE,CAAC,KAAK,CAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAC7D,CAAC;YACJ,CAAC;YACD,kBAAkB,EAAE;gBAClB,eAAe,EAAE,aAAa,CAAC,iCAAiC,EAAE,GAAG,CAAC;gBACtE,aAAa,EAAE,aAAa,CAC1B,+BAA+B,EAC/B,GAAG,GAAG,IAAI,CACX;aACF;SACF,CAAC;QACF,cAAc;QACd,SAAS;QACT,QAAQ;QACR,cAAc,EAAE,kBAAkB;QAClC,eAAe;QACf,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QACX,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI;QACzD,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;QACjD,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;QAC/D,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;QAC/C,kBAAkB,EAAE,QAAQ,EAAE,WAAW;QACzC,0BAA0B,EAAE,QAAQ,EAAE,cAAc;QACpD,mBAAmB,EAAE,QAAQ,EAAE,OAAO;QACtC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,gBAAgB,GAAG,IAAI,CAAC;QACxB,qBAAqB,EAAE,CAAC;QACxB,wEAAwE;QACxE,IACE,WAAW;YACX,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAEhE,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACjE,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAkB;QAC7B,GAAG;QACH,MAAM;QACN,MAAM;QACN,SAAS;QACT,YAAY;QACZ,aAAa;QACb,eAAe;QACf,aAAa;QACb,YAAY;QACZ,WAAW;QACX,aAAa;QACb,SAAS,EAAE,SAAS;QACpB,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACrD,iBAAiB;QACjB,sBAAsB,EAAE,GAAG,EAAE,CAAC,4BAA4B;QAC1D,sBAAsB,EAAE,CAAC,MAAe,EAAE,EAAE;YAC1C,4BAA4B,GAAG,MAAM,CAAC;QACxC,CAAC;QACD,QAAQ;QACR,iBAAiB,EAAE,WAAW,CAAC,MAAM;QACrC,WAAW,EAAE,eAAe;QAC5B,qBAAqB;QACrB,uBAAuB,EAAE,KAAK,IAAI,EAAE;YAClC,4DAA4D;YAC5D,IAAI,CAAC,gBAAgB;gBAAE,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,iEAAiE;YACjE,iEAAiE;YACjE,oCAAoC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAED,uDAAuD;YACvD,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;oBACF,QAAQ,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,8CAA8C;gBAChD,CAAC;gBAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACT,4DAA4D,CAC7D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CACT;wBACE,aAAa,EAAE,aAAa,CAAC,OAAO;wBACpC,SAAS,EAAE,aAAa,CAAC,SAAS;qBACnC,EACD,wFAAwF,CACzF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IACE,CAAC,SAAS;gBACV,MAAM,CAAC,MAAM,CAAC,OAAO;gBACrB,WAAW;gBACX,aAAa;gBACb,cAAc,EACd,CAAC;gBACD,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/C,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBAEtC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;gBAE3B,IAAI,oBAAoB,GAAG,KAAK,CAAC;gBACjC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;oBAC/B,MAAM,OAAO,GAAG,aAAa,CAAC;oBAC9B,IAAI,CAAC,OAAO,IAAI,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;wBACzD,OAAO;oBACT,CAAC;oBACD,oBAAoB,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;wBACzC,IAAI,YAAY,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BACxC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,EACjD,oDAAoD,CACrD,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,8DAA8D,CAC/D,CAAC;wBACF,aAAa,GAAG,SAAS,CAAC;wBAC1B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;wBAClC,gEAAgE;wBAChE,8DAA8D;wBAC9D,mDAAmD;wBACnD,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;wBACvC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;oBAChC,CAAC;gBACH,CAAC,CAAC;gBAEF,+DAA+D;gBAC/D,oEAAoE;gBACpE,0CAA0C;gBAC1C,MAAM,wBAAwB,GAAG,GAAG,EAAE;oBACpC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;wBACtB,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC;4BACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAC9C,aAAa,CAAC,OAAO,CACtB,CAAC;4BACF,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;gCACnB,IAAI,QAAQ,EAAE,CAAC;oCACb,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC;gCACpC,CAAC;gCACD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gCAC9D,MAAM,aAAa,EAAE,CAAC;gCACtB,OAAO;4BACT,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;wBACD,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO;wBACT,CAAC;wBACD,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC3D,qBAAqB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAChE,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;oBAClC,CAAC,CAAC;oBACF,qBAAqB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC7D,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE;oBACpC,IAAI,gBAAgB,EAAE,CAAC;wBACrB,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAC/B,CAAC;wBACD,iEAAiE;wBACjE,0DAA0D;wBAC1D,wCAAwC;wBACxC,qBAAqB,EAAE,CAAC;oBAC1B,CAAC;oBACD,KAAK,aAAa,EAAE,CAAC;gBACvB,CAAC,CAAC;gBAEF,IAAI,CAAC;oBACH,+DAA+D;oBAC/D,+DAA+D;oBAC/D,wDAAwD;oBACxD,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAC/B;wBACE,aAAa,EAAE,aAAa,CAAC,OAAO;wBACpC,YAAY,EAAE,WAAW;wBACzB,aAAa,EAAE,aAAa;wBAC5B,YAAY,EAAE,iBAAiB;4BAC7B,CAAC,CAAC;gCACE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CACvB,iBAAiB,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;6BAC7C;4BACH,CAAC,CAAC,SAAS;wBACb,KAAK;wBACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;wBACpC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;wBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;qBAC9B,EACD,cAAc,CACf,CAAC;oBACF,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;oBACxB,mEAAmE;oBACnE,6DAA6D;oBAC7D,sCAAsC;oBACtC,eAAe,GAAG,GAAG,CAAC;oBAEtB,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;wBACvB,MAAM,aAAa,EAAE,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,GAAG,EAAE,EAClB,8EAA8E,CAC/E,CAAC;wBACF,wBAAwB,EAAE,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,4DAA4D,CAC7D,CAAC;oBACF,aAAa,GAAG,SAAS,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,kFAAkF,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;KACR,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/ui/ps-lite-debug.js
CHANGED
|
@@ -130378,7 +130378,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130378
130378
|
}
|
|
130379
130379
|
return {
|
|
130380
130380
|
...options.reservedHead ? { head: options.reservedHead } : {},
|
|
130381
|
-
async tombstone(scope) {
|
|
130381
|
+
async tombstone(scope, fence) {
|
|
130382
130382
|
const dataPointId = computeDataPointId(options.serverOwner, scope);
|
|
130383
130383
|
const current = await currentHead(scope);
|
|
130384
130384
|
if (current === null) {
|
|
@@ -130392,8 +130392,20 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130392
130392
|
deletedAt: current.deletedAt
|
|
130393
130393
|
};
|
|
130394
130394
|
}
|
|
130395
|
+
if (fence && (current.expectedVersion !== fence.head.expectedVersion || current.dataHash.toLowerCase() !== fence.head.dataHash.toLowerCase() || current.metadataHash.toLowerCase() !== fence.head.metadataHash.toLowerCase())) {
|
|
130396
|
+
throw new Error(`Scope head (v${current.expectedVersion}) is not the one the fenced delete saw (v${fence.head.expectedVersion})`);
|
|
130397
|
+
}
|
|
130398
|
+
let replaced = {
|
|
130399
|
+
expectedVersion: current.expectedVersion,
|
|
130400
|
+
dataHash: current.dataHash,
|
|
130401
|
+
metadataHash: current.metadataHash
|
|
130402
|
+
};
|
|
130395
130403
|
let version5 = BigInt(current.expectedVersion) + 1n;
|
|
130396
130404
|
let res = await sendTombstone(scope, dataPointId, version5);
|
|
130405
|
+
if (res.status === 409 && fence) {
|
|
130406
|
+
await res.body?.cancel();
|
|
130407
|
+
throw new Error(`Scope head is not the one the fenced delete saw (v${fence.head.expectedVersion}): another writer moved it`);
|
|
130408
|
+
}
|
|
130397
130409
|
if (res.status === 409) {
|
|
130398
130410
|
const body2 = await res.json().catch(() => null);
|
|
130399
130411
|
const conflict = unwrap4(body2);
|
|
@@ -130405,6 +130417,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130405
130417
|
throw new Error(`Gateway error: 409 ${detailFromBody(body2, res.statusText)}`);
|
|
130406
130418
|
}
|
|
130407
130419
|
version5 = next;
|
|
130420
|
+
replaced = null;
|
|
130408
130421
|
res = await sendTombstone(scope, dataPointId, version5);
|
|
130409
130422
|
}
|
|
130410
130423
|
if (res.status === 404) {
|
|
@@ -130438,6 +130451,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130438
130451
|
status: "tombstoned",
|
|
130439
130452
|
dataPointId: stringField2(row, "dataPointId") ?? dataPointId,
|
|
130440
130453
|
version: stringField2(row, "expectedVersion") ?? String(version5),
|
|
130454
|
+
replaced,
|
|
130441
130455
|
deletedAt: stringField2(row, "deletedAt")
|
|
130442
130456
|
};
|
|
130443
130457
|
},
|
|
@@ -130548,6 +130562,19 @@ function markerId(key) {
|
|
|
130548
130562
|
const range = key.range ? `${key.range.from}-${key.range.to}` : "";
|
|
130549
130563
|
return `${key.scope}\0${key.version ?? ""}\0${range}`;
|
|
130550
130564
|
}
|
|
130565
|
+
function normalizeHead(value) {
|
|
130566
|
+
if (typeof value !== "object" || value === null)
|
|
130567
|
+
return void 0;
|
|
130568
|
+
const { expectedVersion, dataHash, metadataHash } = value;
|
|
130569
|
+
if (typeof expectedVersion !== "string" || !/^\d+$/.test(expectedVersion) || typeof dataHash !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(dataHash) || typeof metadataHash !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(metadataHash)) {
|
|
130570
|
+
return void 0;
|
|
130571
|
+
}
|
|
130572
|
+
return {
|
|
130573
|
+
expectedVersion: BigInt(expectedVersion).toString(),
|
|
130574
|
+
dataHash: dataHash.toLowerCase(),
|
|
130575
|
+
metadataHash: metadataHash.toLowerCase()
|
|
130576
|
+
};
|
|
130577
|
+
}
|
|
130551
130578
|
function normalizeRange(value) {
|
|
130552
130579
|
if (typeof value !== "object" || value === null)
|
|
130553
130580
|
return void 0;
|
|
@@ -130567,10 +130594,14 @@ function normalizePendingBlobDeletions(stored) {
|
|
|
130567
130594
|
} else if (typeof item === "object" && item !== null && typeof item.scope === "string") {
|
|
130568
130595
|
const version5 = item.version;
|
|
130569
130596
|
const range = typeof version5 === "string" ? void 0 : normalizeRange(item.range);
|
|
130597
|
+
const gate = item.tombstoneVersion;
|
|
130598
|
+
const replacedHead = normalizeHead(item.replacedHead);
|
|
130570
130599
|
keys.push({
|
|
130571
130600
|
scope: item.scope,
|
|
130572
130601
|
version: typeof version5 === "string" ? version5 : null,
|
|
130573
|
-
...range ? { range } : {}
|
|
130602
|
+
...range ? { range } : {},
|
|
130603
|
+
...typeof gate === "string" && /^\d+$/.test(gate) ? { tombstoneVersion: BigInt(gate).toString() } : {},
|
|
130604
|
+
...replacedHead ? { replacedHead } : {}
|
|
130574
130605
|
});
|
|
130575
130606
|
}
|
|
130576
130607
|
}
|
|
@@ -130604,7 +130635,9 @@ function createPendingBlobDeletionStore(kv) {
|
|
|
130604
130635
|
next.push({
|
|
130605
130636
|
scope: key.scope,
|
|
130606
130637
|
version: key.version,
|
|
130607
|
-
...key.range ? { range: { ...key.range } } : {}
|
|
130638
|
+
...key.range ? { range: { ...key.range } } : {},
|
|
130639
|
+
...key.tombstoneVersion !== void 0 ? { tombstoneVersion: key.tombstoneVersion } : {},
|
|
130640
|
+
...key.replacedHead ? { replacedHead: { ...key.replacedHead } } : {}
|
|
130608
130641
|
});
|
|
130609
130642
|
}
|
|
130610
130643
|
return next;
|
|
@@ -130670,6 +130703,88 @@ function createMemoryPendingBlobDeletionStore() {
|
|
|
130670
130703
|
});
|
|
130671
130704
|
}
|
|
130672
130705
|
|
|
130706
|
+
// ../core/dist/sync/tombstone-resubmits.js
|
|
130707
|
+
var DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS = 5;
|
|
130708
|
+
var DEFAULT_TOMBSTONE_RESUBMIT_BASE_DELAY_MS = 6e4;
|
|
130709
|
+
function createTombstoneResubmitTracker(options = {}) {
|
|
130710
|
+
const maxAttempts = options.maxAttempts ?? DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS;
|
|
130711
|
+
const baseDelayMs = options.baseDelayMs ?? DEFAULT_TOMBSTONE_RESUBMIT_BASE_DELAY_MS;
|
|
130712
|
+
const now = options.now ?? Date.now;
|
|
130713
|
+
const states = /* @__PURE__ */ new Map();
|
|
130714
|
+
const view = (scope) => {
|
|
130715
|
+
const state = states.get(scope);
|
|
130716
|
+
return state ? {
|
|
130717
|
+
scope,
|
|
130718
|
+
attempts: state.attempts,
|
|
130719
|
+
tombstoneVersion: state.tombstoneVersion,
|
|
130720
|
+
lastAttemptAt: new Date(state.lastAttemptMs).toISOString(),
|
|
130721
|
+
...state.reason ? { reason: state.reason } : {}
|
|
130722
|
+
} : null;
|
|
130723
|
+
};
|
|
130724
|
+
return {
|
|
130725
|
+
due(scope) {
|
|
130726
|
+
const state = states.get(scope);
|
|
130727
|
+
if (!state)
|
|
130728
|
+
return true;
|
|
130729
|
+
if (state.failedAtMs !== null || state.attempts >= maxAttempts)
|
|
130730
|
+
return false;
|
|
130731
|
+
const wait3 = baseDelayMs * 2 ** (state.attempts - 1);
|
|
130732
|
+
return now() - state.lastAttemptMs >= wait3;
|
|
130733
|
+
},
|
|
130734
|
+
exhausted(scope) {
|
|
130735
|
+
return states.get(scope)?.failedAtMs != null;
|
|
130736
|
+
},
|
|
130737
|
+
outOfAttempts(scope) {
|
|
130738
|
+
const state = states.get(scope);
|
|
130739
|
+
return state !== void 0 && state.failedAtMs === null && state.attempts >= maxAttempts;
|
|
130740
|
+
},
|
|
130741
|
+
recordAttempt(scope, tombstoneVersion2) {
|
|
130742
|
+
const state = states.get(scope);
|
|
130743
|
+
const attempts = (state?.attempts ?? 0) + 1;
|
|
130744
|
+
states.set(scope, {
|
|
130745
|
+
attempts,
|
|
130746
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130747
|
+
lastAttemptMs: now(),
|
|
130748
|
+
failedAtMs: null
|
|
130749
|
+
});
|
|
130750
|
+
return attempts;
|
|
130751
|
+
},
|
|
130752
|
+
giveUp(scope, tombstoneVersion2, reason = "attempts-exhausted") {
|
|
130753
|
+
const state = states.get(scope) ?? {
|
|
130754
|
+
attempts: 0,
|
|
130755
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130756
|
+
lastAttemptMs: now(),
|
|
130757
|
+
failedAtMs: null
|
|
130758
|
+
};
|
|
130759
|
+
states.set(scope, {
|
|
130760
|
+
...state,
|
|
130761
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130762
|
+
failedAtMs: now(),
|
|
130763
|
+
reason
|
|
130764
|
+
});
|
|
130765
|
+
return view(scope);
|
|
130766
|
+
},
|
|
130767
|
+
reset(scope) {
|
|
130768
|
+
states.delete(scope);
|
|
130769
|
+
},
|
|
130770
|
+
snapshot() {
|
|
130771
|
+
const retrying = [];
|
|
130772
|
+
const failed = [];
|
|
130773
|
+
for (const [scope, state] of states) {
|
|
130774
|
+
const entry = view(scope);
|
|
130775
|
+
if (state.failedAtMs === null)
|
|
130776
|
+
retrying.push(entry);
|
|
130777
|
+
else
|
|
130778
|
+
failed.push({
|
|
130779
|
+
...entry,
|
|
130780
|
+
failedAt: new Date(state.failedAtMs).toISOString()
|
|
130781
|
+
});
|
|
130782
|
+
}
|
|
130783
|
+
return { retrying, failed };
|
|
130784
|
+
}
|
|
130785
|
+
};
|
|
130786
|
+
}
|
|
130787
|
+
|
|
130673
130788
|
// ../core/dist/sync/workers/delete.js
|
|
130674
130789
|
var BLOB_DELETE_BATCH_SIZE = 15;
|
|
130675
130790
|
function planBlobDeletions(storage, scope, tombstoneVersionValue) {
|
|
@@ -130735,12 +130850,13 @@ async function eraseCoveredEntries(storage, scope, fence) {
|
|
|
130735
130850
|
}
|
|
130736
130851
|
return erased;
|
|
130737
130852
|
}
|
|
130738
|
-
function takeFromRange(range, count) {
|
|
130853
|
+
function takeFromRange(range, count, cap = null) {
|
|
130739
130854
|
const from14 = BigInt(range.from);
|
|
130740
130855
|
const to3 = BigInt(range.to);
|
|
130856
|
+
const last2 = cap !== null && cap < to3 ? cap : to3;
|
|
130741
130857
|
const versions = [];
|
|
130742
130858
|
let cursor = from14;
|
|
130743
|
-
while (cursor <=
|
|
130859
|
+
while (cursor <= last2 && versions.length < count) {
|
|
130744
130860
|
versions.push(cursor.toString());
|
|
130745
130861
|
cursor += 1n;
|
|
130746
130862
|
}
|
|
@@ -130764,7 +130880,7 @@ function countPendingKeys(markers) {
|
|
|
130764
130880
|
}
|
|
130765
130881
|
return total > BigInt(Number.MAX_SAFE_INTEGER) ? Number.MAX_SAFE_INTEGER : Number(total);
|
|
130766
130882
|
}
|
|
130767
|
-
async function deleteScope(deps, scope) {
|
|
130883
|
+
async function deleteScope(deps, scope, options = {}) {
|
|
130768
130884
|
const { storage, deleteData, pendingBlobDeletions, scopeDeletions, logger } = deps;
|
|
130769
130885
|
const now = deps.now ?? (() => /* @__PURE__ */ new Date());
|
|
130770
130886
|
const dataPointId = deps.serverOwner ? computeDataPointId(deps.serverOwner, scope) : null;
|
|
@@ -130784,12 +130900,14 @@ async function deleteScope(deps, scope) {
|
|
|
130784
130900
|
if (deleteData) {
|
|
130785
130901
|
let tombstoneVersionValue = null;
|
|
130786
130902
|
let tombstoneKnown = false;
|
|
130903
|
+
let replacedHead = null;
|
|
130787
130904
|
try {
|
|
130788
|
-
|
|
130905
|
+
const tombstone = () => options.fence ? deleteData.tombstone(scope, options.fence) : deleteData.tombstone(scope);
|
|
130906
|
+
let outcome = await tombstone();
|
|
130789
130907
|
if (outcome.status === "not-registered") {
|
|
130790
130908
|
let registry2 = await registryState(deps, scope);
|
|
130791
130909
|
if (registry2.status === "live") {
|
|
130792
|
-
outcome = await
|
|
130910
|
+
outcome = await tombstone();
|
|
130793
130911
|
registry2 = await registryState(deps, scope);
|
|
130794
130912
|
}
|
|
130795
130913
|
if (outcome.status === "not-registered" && registry2.status !== "deleted-or-absent") {
|
|
@@ -130800,6 +130918,9 @@ async function deleteScope(deps, scope) {
|
|
|
130800
130918
|
result.steps.gateway = { status: "skipped", reason: "not-registered" };
|
|
130801
130919
|
} else {
|
|
130802
130920
|
tombstoneKnown = true;
|
|
130921
|
+
if (outcome.status === "tombstoned") {
|
|
130922
|
+
replacedHead = outcome.replaced ?? null;
|
|
130923
|
+
}
|
|
130803
130924
|
tombstoneVersionValue = outcome.version === null ? null : tombstoneVersion({ expectedVersion: outcome.version });
|
|
130804
130925
|
result.steps.gateway = {
|
|
130805
130926
|
status: "ok",
|
|
@@ -130813,6 +130934,7 @@ async function deleteScope(deps, scope) {
|
|
|
130813
130934
|
deletedAt: outcome.deletedAt ?? now().toISOString(),
|
|
130814
130935
|
version: outcome.version
|
|
130815
130936
|
}, "local-delete");
|
|
130937
|
+
deps.tombstoneFinality?.recheckNow?.(scope);
|
|
130816
130938
|
}
|
|
130817
130939
|
result.durable = true;
|
|
130818
130940
|
} catch (err2) {
|
|
@@ -130833,7 +130955,12 @@ async function deleteScope(deps, scope) {
|
|
|
130833
130955
|
}
|
|
130834
130956
|
}
|
|
130835
130957
|
const plan = planBlobDeletions(storage, scope, tombstoneVersionValue);
|
|
130836
|
-
const storageStep = await deleteScopeBlobs({
|
|
130958
|
+
const storageStep = await deleteScopeBlobs({
|
|
130959
|
+
deleteData,
|
|
130960
|
+
pendingBlobDeletions,
|
|
130961
|
+
tombstoneFinality: deps.tombstoneFinality,
|
|
130962
|
+
logger
|
|
130963
|
+
}, scope, plan, tombstoneKnown && tombstoneVersionValue === null, options.storagePass ?? true, replacedHead);
|
|
130837
130964
|
result.steps.storage = storageStep.step;
|
|
130838
130965
|
result.pendingBlobDeletion = storageStep.pending > 0;
|
|
130839
130966
|
}
|
|
@@ -130868,7 +130995,7 @@ async function resumePoint(store, scope, markers) {
|
|
|
130868
130995
|
}
|
|
130869
130996
|
return through;
|
|
130870
130997
|
}
|
|
130871
|
-
function unplannedWork(scope, plan, through) {
|
|
130998
|
+
function unplannedWork(scope, plan, through, replacedHead = null) {
|
|
130872
130999
|
const work = plan.keys.map((version5) => ({
|
|
130873
131000
|
scope,
|
|
130874
131001
|
version: version5
|
|
@@ -130881,7 +131008,8 @@ function unplannedWork(scope, plan, through) {
|
|
|
130881
131008
|
work.push({
|
|
130882
131009
|
scope,
|
|
130883
131010
|
version: null,
|
|
130884
|
-
range: { from: from14.toString(), to: plan.range.to }
|
|
131011
|
+
range: { from: from14.toString(), to: plan.range.to },
|
|
131012
|
+
...replacedHead ? { replacedHead } : {}
|
|
130885
131013
|
});
|
|
130886
131014
|
}
|
|
130887
131015
|
}
|
|
@@ -130893,11 +131021,80 @@ async function recordPlannedWork(store, scope, work, through) {
|
|
|
130893
131021
|
else
|
|
130894
131022
|
await store.add(work);
|
|
130895
131023
|
}
|
|
130896
|
-
|
|
131024
|
+
function sameHead(a10, b10) {
|
|
131025
|
+
return a10.expectedVersion === b10.expectedVersion && a10.dataHash.toLowerCase() === b10.dataHash.toLowerCase() && a10.metadataHash.toLowerCase() === b10.metadataHash.toLowerCase();
|
|
131026
|
+
}
|
|
131027
|
+
function markerGate(marker) {
|
|
131028
|
+
if (marker.tombstoneVersion !== void 0) {
|
|
131029
|
+
return marker.version !== null || marker.range ? BigInt(marker.tombstoneVersion) : null;
|
|
131030
|
+
}
|
|
131031
|
+
if (marker.version !== null)
|
|
131032
|
+
return BigInt(marker.version);
|
|
131033
|
+
if (marker.range)
|
|
131034
|
+
return BigInt(marker.range.to);
|
|
131035
|
+
return null;
|
|
131036
|
+
}
|
|
131037
|
+
async function releasableMarkers(finality, markers, logger) {
|
|
131038
|
+
const rolledBack = /* @__PURE__ */ new Map();
|
|
131039
|
+
const converged = /* @__PURE__ */ new Set();
|
|
131040
|
+
if (!finality) {
|
|
131041
|
+
return {
|
|
131042
|
+
released: markers.map((marker) => ({ marker, through: null })),
|
|
131043
|
+
rolledBack,
|
|
131044
|
+
converged
|
|
131045
|
+
};
|
|
131046
|
+
}
|
|
131047
|
+
const lowestGate = /* @__PURE__ */ new Map();
|
|
131048
|
+
for (const marker of markers) {
|
|
131049
|
+
const gate = markerGate(marker);
|
|
131050
|
+
if (gate === null)
|
|
131051
|
+
continue;
|
|
131052
|
+
const lowest = lowestGate.get(marker.scope);
|
|
131053
|
+
if (lowest === void 0 || gate < lowest) {
|
|
131054
|
+
lowestGate.set(marker.scope, gate);
|
|
131055
|
+
}
|
|
131056
|
+
}
|
|
131057
|
+
const finalized = /* @__PURE__ */ new Map();
|
|
131058
|
+
for (const [scope, lowest] of lowestGate) {
|
|
131059
|
+
try {
|
|
131060
|
+
const state = await finality.tombstoneState(scope, lowest.toString());
|
|
131061
|
+
finalized.set(scope, state.finalized === null ? null : BigInt(state.finalized));
|
|
131062
|
+
if (state.rolledBack !== null)
|
|
131063
|
+
rolledBack.set(scope, state.rolledBack);
|
|
131064
|
+
else if (state.finalized !== null && !state.settling)
|
|
131065
|
+
converged.add(scope);
|
|
131066
|
+
} catch (err2) {
|
|
131067
|
+
finalized.set(scope, null);
|
|
131068
|
+
logger.warn({ scope, error: errorMessage2(err2) }, "Could not read tombstone finality; blob deletions wait for a later pass");
|
|
131069
|
+
}
|
|
131070
|
+
}
|
|
131071
|
+
const released = [];
|
|
131072
|
+
const held = /* @__PURE__ */ new Map();
|
|
131073
|
+
for (const marker of markers) {
|
|
131074
|
+
const gate = markerGate(marker);
|
|
131075
|
+
if (gate === null)
|
|
131076
|
+
continue;
|
|
131077
|
+
const through = finalized.get(marker.scope) ?? null;
|
|
131078
|
+
const lowestKey = marker.version !== null ? BigInt(marker.version) : BigInt(marker.range.from);
|
|
131079
|
+
if (through !== null && lowestKey <= through) {
|
|
131080
|
+
released.push({ marker, through: marker.range ? through : null });
|
|
131081
|
+
}
|
|
131082
|
+
const highestKey = marker.version !== null ? BigInt(marker.version) : BigInt(marker.range.to);
|
|
131083
|
+
if (through === null || highestKey > through) {
|
|
131084
|
+
held.set(marker.scope, (held.get(marker.scope) ?? 0) + 1);
|
|
131085
|
+
}
|
|
131086
|
+
}
|
|
131087
|
+
for (const [scope, count] of held) {
|
|
131088
|
+
logger.info({ scope, markers: count }, "Blob deletions wait until the covering tombstone is finalized");
|
|
131089
|
+
}
|
|
131090
|
+
return { released, rolledBack, converged };
|
|
131091
|
+
}
|
|
131092
|
+
async function drainOnePass(deleteData, store, released) {
|
|
130897
131093
|
let budget = BLOB_DELETE_BATCH_SIZE;
|
|
130898
131094
|
const byScope = /* @__PURE__ */ new Map();
|
|
130899
131095
|
const queued = /* @__PURE__ */ new Set();
|
|
130900
131096
|
const exactOrigin = /* @__PURE__ */ new Set();
|
|
131097
|
+
const rangeGate = /* @__PURE__ */ new Map();
|
|
130901
131098
|
const advancedRanges = [];
|
|
130902
131099
|
const keyOf = (scope, version5) => `${scope}\0${version5}`;
|
|
130903
131100
|
const take = (scope, version5) => {
|
|
@@ -130910,7 +131107,7 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130910
131107
|
byScope.set(scope, versions);
|
|
130911
131108
|
return true;
|
|
130912
131109
|
};
|
|
130913
|
-
for (const marker of
|
|
131110
|
+
for (const { marker } of released) {
|
|
130914
131111
|
if (budget === 0)
|
|
130915
131112
|
break;
|
|
130916
131113
|
if (marker.version !== null) {
|
|
@@ -130919,18 +131116,27 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130919
131116
|
budget -= 1;
|
|
130920
131117
|
}
|
|
130921
131118
|
}
|
|
130922
|
-
for (const marker of
|
|
131119
|
+
for (const { marker, through } of released) {
|
|
130923
131120
|
if (budget === 0)
|
|
130924
131121
|
break;
|
|
130925
131122
|
if (marker.version === null && marker.range) {
|
|
130926
|
-
const taken = takeFromRange(marker.range, budget);
|
|
131123
|
+
const taken = takeFromRange(marker.range, budget, through);
|
|
131124
|
+
const gate = marker.tombstoneVersion ?? marker.range.to;
|
|
130927
131125
|
for (const version5 of taken.versions) {
|
|
130928
|
-
if (take(marker.scope, version5))
|
|
131126
|
+
if (take(marker.scope, version5)) {
|
|
130929
131127
|
budget -= 1;
|
|
131128
|
+
rangeGate.set(keyOf(marker.scope, version5), gate);
|
|
131129
|
+
}
|
|
130930
131130
|
}
|
|
130931
131131
|
advancedRanges.push({
|
|
130932
131132
|
old: marker,
|
|
130933
|
-
next: taken.rest ? {
|
|
131133
|
+
next: taken.rest ? {
|
|
131134
|
+
scope: marker.scope,
|
|
131135
|
+
version: null,
|
|
131136
|
+
range: taken.rest,
|
|
131137
|
+
...marker.tombstoneVersion !== void 0 ? { tombstoneVersion: marker.tombstoneVersion } : {},
|
|
131138
|
+
...marker.replacedHead ? { replacedHead: marker.replacedHead } : {}
|
|
131139
|
+
} : null
|
|
130934
131140
|
});
|
|
130935
131141
|
}
|
|
130936
131142
|
}
|
|
@@ -130951,7 +131157,14 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130951
131157
|
const completed = [...outcome.deleted, ...outcome.missing].filter((version5) => exactOrigin.has(keyOf(scope, version5))).map((version5) => ({ scope, version: version5 }));
|
|
130952
131158
|
if (completed.length > 0)
|
|
130953
131159
|
await store.remove(completed);
|
|
130954
|
-
const failedFromRange = outcome.failed.filter(({ version: version5 }) => !exactOrigin.has(keyOf(scope, version5))).map(({ version: version5 }) =>
|
|
131160
|
+
const failedFromRange = outcome.failed.filter(({ version: version5 }) => !exactOrigin.has(keyOf(scope, version5))).map(({ version: version5 }) => {
|
|
131161
|
+
const gate = rangeGate.get(keyOf(scope, version5));
|
|
131162
|
+
return {
|
|
131163
|
+
scope,
|
|
131164
|
+
version: version5,
|
|
131165
|
+
...gate !== void 0 ? { tombstoneVersion: gate } : {}
|
|
131166
|
+
};
|
|
131167
|
+
});
|
|
130955
131168
|
if (failedFromRange.length > 0)
|
|
130956
131169
|
await store.add(failedFromRange);
|
|
130957
131170
|
}
|
|
@@ -130962,10 +131175,10 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130962
131175
|
}
|
|
130963
131176
|
return outcomes;
|
|
130964
131177
|
}
|
|
130965
|
-
async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
131178
|
+
async function deleteScopeBlobs(deps, scope, plan, versionUnknown, storagePass, replacedHead) {
|
|
130966
131179
|
const { deleteData, logger } = deps;
|
|
130967
131180
|
const withUnknown = (work2) => versionUnknown ? [...work2, { scope, version: null }] : work2;
|
|
130968
|
-
let work = withUnknown(unplannedWork(scope, plan, null));
|
|
131181
|
+
let work = withUnknown(unplannedWork(scope, plan, null, replacedHead));
|
|
130969
131182
|
let store = deps.pendingBlobDeletions ?? null;
|
|
130970
131183
|
let queuedBefore = [];
|
|
130971
131184
|
if (store) {
|
|
@@ -130973,7 +131186,7 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
|
130973
131186
|
const markers = await store.list();
|
|
130974
131187
|
queuedBefore = markers.filter((m10) => m10.scope === scope);
|
|
130975
131188
|
const through = await resumePoint(store, scope, markers);
|
|
130976
|
-
work = withUnknown(unplannedWork(scope, plan, through));
|
|
131189
|
+
work = withUnknown(unplannedWork(scope, plan, through, replacedHead));
|
|
130977
131190
|
await recordPlannedWork(store, scope, work, plan.range?.to ?? null);
|
|
130978
131191
|
} catch (markerErr) {
|
|
130979
131192
|
logger.error({ scope, error: errorMessage2(markerErr), keys: countPendingKeys(work) }, "Could not record pending blob deletion markers");
|
|
@@ -130988,7 +131201,7 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
|
130988
131201
|
let outcome;
|
|
130989
131202
|
let remainingKeys;
|
|
130990
131203
|
try {
|
|
130991
|
-
const queued = (await passStore.list()).filter((m10) => m10.scope === scope);
|
|
131204
|
+
const { released: queued } = storagePass ? await releasableMarkers(deps.tombstoneFinality, (await passStore.list()).filter((m10) => m10.scope === scope), logger) : { released: [] };
|
|
130992
131205
|
outcome = (await drainOnePass(deleteData, passStore, queued)).get(scope) ?? { deleted: [], missing: [], failed: [] };
|
|
130993
131206
|
remainingKeys = countPendingKeys((await passStore.list()).filter((m10) => m10.scope === scope));
|
|
130994
131207
|
} catch (markerErr) {
|
|
@@ -131067,7 +131280,8 @@ async function retryPendingBlobDeletions(deps) {
|
|
|
131067
131280
|
await pendingBlobDeletions.remove([marker]);
|
|
131068
131281
|
}
|
|
131069
131282
|
markers = await pendingBlobDeletions.list();
|
|
131070
|
-
const
|
|
131283
|
+
const decision = await releasableMarkers(deps.tombstoneFinality, markers, logger);
|
|
131284
|
+
const outcomes = await drainOnePass(deleteData, pendingBlobDeletions, decision.released);
|
|
131071
131285
|
for (const [scope, outcome] of outcomes) {
|
|
131072
131286
|
result.completed.push(...[...outcome.deleted, ...outcome.missing].map((version5) => ({ scope, version: version5 })));
|
|
131073
131287
|
for (const failure of outcome.failed) {
|
|
@@ -131088,9 +131302,90 @@ async function retryPendingBlobDeletions(deps) {
|
|
|
131088
131302
|
}, "Pending blob deletion failed again");
|
|
131089
131303
|
}
|
|
131090
131304
|
}
|
|
131091
|
-
|
|
131305
|
+
for (const [scope, rollback] of decision.rolledBack) {
|
|
131306
|
+
await resubmitRolledBackDeletion(deps, scope, rollback, markers.filter((marker) => marker.scope === scope));
|
|
131307
|
+
}
|
|
131308
|
+
const left = await pendingBlobDeletions.list();
|
|
131309
|
+
if (deps.tombstoneResubmits) {
|
|
131310
|
+
const waiting = new Set(left.map((marker) => marker.scope));
|
|
131311
|
+
const tracked = deps.tombstoneResubmits.snapshot();
|
|
131312
|
+
for (const { scope } of [...tracked.retrying, ...tracked.failed]) {
|
|
131313
|
+
if (!waiting.has(scope) || decision.converged.has(scope)) {
|
|
131314
|
+
deps.tombstoneResubmits.reset(scope);
|
|
131315
|
+
}
|
|
131316
|
+
}
|
|
131317
|
+
}
|
|
131318
|
+
result.remaining = left.length;
|
|
131092
131319
|
return result;
|
|
131093
131320
|
}
|
|
131321
|
+
async function resubmitRolledBackDeletion(deps, scope, rollback, scopeMarkers) {
|
|
131322
|
+
const { logger, tombstoneResubmits: tracker } = deps;
|
|
131323
|
+
const failedVersion = rollback.tombstoneVersion;
|
|
131324
|
+
if (!deps.resubmitDeletion || !tracker) {
|
|
131325
|
+
logger.warn({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed and the scope is live again; its storage copies stay until the scope is deleted again");
|
|
131326
|
+
return;
|
|
131327
|
+
}
|
|
131328
|
+
const remembered = scopeMarkers.find((marker) => marker.version === null && marker.range && BigInt(marker.range.to) === BigInt(failedVersion) && marker.replacedHead)?.replacedHead;
|
|
131329
|
+
if (readdedLocally(deps.storage, scope, failedVersion)) {
|
|
131330
|
+
logger.info({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed, but the scope was re-added after the delete; not deleting it again");
|
|
131331
|
+
return;
|
|
131332
|
+
}
|
|
131333
|
+
if (tracker.exhausted(scope))
|
|
131334
|
+
return;
|
|
131335
|
+
if (!remembered || !sameHead(remembered, rollback.head)) {
|
|
131336
|
+
const state = tracker.giveUp(scope, failedVersion, "head-changed");
|
|
131337
|
+
logger.error({
|
|
131338
|
+
scope,
|
|
131339
|
+
tombstoneVersion: failedVersion,
|
|
131340
|
+
head: rollback.head.expectedVersion,
|
|
131341
|
+
remembered: remembered?.expectedVersion ?? null
|
|
131342
|
+
}, "Scope deletion did not complete: the gateway tombstone failed and the restored head is not the one the delete replaced, so it is not deleted again automatically. Delete it again to retry.");
|
|
131343
|
+
deps.onDeletionAbandoned?.(state);
|
|
131344
|
+
return;
|
|
131345
|
+
}
|
|
131346
|
+
if (tracker.outOfAttempts(scope)) {
|
|
131347
|
+
const state = tracker.giveUp(scope, failedVersion);
|
|
131348
|
+
logger.error({
|
|
131349
|
+
scope,
|
|
131350
|
+
attempts: state.attempts,
|
|
131351
|
+
tombstoneVersion: failedVersion
|
|
131352
|
+
}, "Scope deletion did not complete: every gateway tombstone failed and the scope is live again. Delete it again to retry.");
|
|
131353
|
+
deps.onDeletionAbandoned?.(state);
|
|
131354
|
+
return;
|
|
131355
|
+
}
|
|
131356
|
+
if (!tracker.due(scope))
|
|
131357
|
+
return;
|
|
131358
|
+
const attempt = tracker.recordAttempt(scope, failedVersion);
|
|
131359
|
+
logger.warn({ scope, tombstoneVersion: failedVersion, attempt }, "Scope tombstone failed and the scope is live again; re-submitting the user's delete");
|
|
131360
|
+
try {
|
|
131361
|
+
const outcome = await deps.resubmitDeletion(scope, {
|
|
131362
|
+
fence: { head: rollback.head },
|
|
131363
|
+
storagePass: false
|
|
131364
|
+
});
|
|
131365
|
+
if (outcome.steps.gateway.status === "failed") {
|
|
131366
|
+
logger.warn({ scope, attempt, error: outcome.steps.gateway.error }, "Re-submitted scope delete was refused by the gateway; will retry");
|
|
131367
|
+
}
|
|
131368
|
+
} catch (err2) {
|
|
131369
|
+
logger.warn({ scope, attempt, error: errorMessage2(err2) }, "Re-submitted scope delete failed; will retry");
|
|
131370
|
+
}
|
|
131371
|
+
}
|
|
131372
|
+
function readdedLocally(storage, scope, failedVersion) {
|
|
131373
|
+
if (!storage)
|
|
131374
|
+
return true;
|
|
131375
|
+
const failed = BigInt(failedVersion);
|
|
131376
|
+
const PAGE_SIZE = 500;
|
|
131377
|
+
for (let offset = 0; ; offset += PAGE_SIZE) {
|
|
131378
|
+
const entries = storage.listVersions(scope, { limit: PAGE_SIZE, offset });
|
|
131379
|
+
for (const entry of entries) {
|
|
131380
|
+
if (entry.dataPointId === null)
|
|
131381
|
+
return true;
|
|
131382
|
+
if (BigInt(entry.version) >= failed)
|
|
131383
|
+
return true;
|
|
131384
|
+
}
|
|
131385
|
+
if (entries.length < PAGE_SIZE)
|
|
131386
|
+
return false;
|
|
131387
|
+
}
|
|
131388
|
+
}
|
|
131094
131389
|
async function registryState(deps, scope) {
|
|
131095
131390
|
if (isGatewayReservedScope(scope) && deps.deleteData?.head && deps.serverOwner) {
|
|
131096
131391
|
let head;
|
|
@@ -131167,6 +131462,7 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131167
131462
|
let needsStartupHydration = startupHydrateScopes.length > 0;
|
|
131168
131463
|
const hydratedScopes = /* @__PURE__ */ new Set();
|
|
131169
131464
|
const downloadRetryMemory = createDownloadRetryMemory();
|
|
131465
|
+
const tombstoneResubmits = createTombstoneResubmitTracker();
|
|
131170
131466
|
const dataPointFeed = downloadDeps.dataPointFeed ?? uploadDeps.dataPointFeed;
|
|
131171
131467
|
const scopeDeletions = uploadDeps.scopeDeletions ?? downloadDeps.scopeDeletions;
|
|
131172
131468
|
const workerUploadDeps = {
|
|
@@ -131259,15 +131555,54 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131259
131555
|
cycleInFlight = null;
|
|
131260
131556
|
}
|
|
131261
131557
|
}
|
|
131558
|
+
function deleteScopeDeps() {
|
|
131559
|
+
return {
|
|
131560
|
+
storage: uploadDeps.storage,
|
|
131561
|
+
serverOwner: uploadDeps.serverOwner,
|
|
131562
|
+
deleteData: options?.deleteData,
|
|
131563
|
+
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131564
|
+
tombstoneFinality: options?.tombstoneFinality,
|
|
131565
|
+
scopeDeletions,
|
|
131566
|
+
dataPointFeed,
|
|
131567
|
+
logger: uploadDeps.logger
|
|
131568
|
+
};
|
|
131569
|
+
}
|
|
131570
|
+
function deleteAdditionsAfter(scope) {
|
|
131571
|
+
const additions = uploadDeps.additions;
|
|
131572
|
+
if (!additions)
|
|
131573
|
+
return;
|
|
131574
|
+
void mutationQueue.then(() => additions.deleteScope(scope)).catch((err2) => {
|
|
131575
|
+
uploadDeps.logger.warn({ scope, error: err2.message }, "Could not delete the additions ledger of a re-deleted scope");
|
|
131576
|
+
});
|
|
131577
|
+
}
|
|
131262
131578
|
async function runUploadCycle() {
|
|
131263
131579
|
try {
|
|
131264
131580
|
await retryPendingBlobDeletions({
|
|
131265
131581
|
deleteData: options?.deleteData,
|
|
131266
131582
|
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131583
|
+
tombstoneFinality: options?.tombstoneFinality,
|
|
131267
131584
|
dataPointFeed,
|
|
131268
131585
|
serverOwner: uploadDeps.serverOwner,
|
|
131269
131586
|
storage: uploadDeps.storage,
|
|
131270
|
-
logger: uploadDeps.logger
|
|
131587
|
+
logger: uploadDeps.logger,
|
|
131588
|
+
...options?.tombstoneFinality && options.deleteData ? {
|
|
131589
|
+
tombstoneResubmits,
|
|
131590
|
+
// Already inside the mutation queue: call the worker directly.
|
|
131591
|
+
async resubmitDeletion(scope, resubmit) {
|
|
131592
|
+
const result = await deleteScope(deleteScopeDeps(), scope, resubmit);
|
|
131593
|
+
if (result.durable)
|
|
131594
|
+
deleteAdditionsAfter(scope);
|
|
131595
|
+
return result;
|
|
131596
|
+
},
|
|
131597
|
+
onDeletionAbandoned(state) {
|
|
131598
|
+
pushError({
|
|
131599
|
+
fileId: null,
|
|
131600
|
+
scope: state.scope,
|
|
131601
|
+
message: state.reason === "head-changed" ? `Deletion of ${state.scope} did not complete: the gateway tombstone failed and the data is live again. Delete it again to retry.` : `Deletion of ${state.scope} did not complete: the gateway tombstone failed ${state.attempts + 1} times and the data is live again. Delete it again to retry.`,
|
|
131602
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
131603
|
+
});
|
|
131604
|
+
}
|
|
131605
|
+
} : {}
|
|
131271
131606
|
});
|
|
131272
131607
|
} catch (err2) {
|
|
131273
131608
|
uploadDeps.logger.warn({ error: err2.message }, "Pending blob deletion retry failed");
|
|
@@ -131372,7 +131707,8 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131372
131707
|
lastProcessedTimestamp,
|
|
131373
131708
|
pendingFiles,
|
|
131374
131709
|
hydratedScopes: [...hydratedScopes],
|
|
131375
|
-
errors: [...errors]
|
|
131710
|
+
errors: [...errors],
|
|
131711
|
+
deletions: tombstoneResubmits.snapshot()
|
|
131376
131712
|
};
|
|
131377
131713
|
},
|
|
131378
131714
|
hydrateScopes(scopes) {
|
|
@@ -131392,15 +131728,10 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131392
131728
|
scheduleNotifiedCycle();
|
|
131393
131729
|
},
|
|
131394
131730
|
async deleteScope(scope) {
|
|
131395
|
-
const result = await exclusive(() =>
|
|
131396
|
-
|
|
131397
|
-
|
|
131398
|
-
|
|
131399
|
-
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131400
|
-
scopeDeletions,
|
|
131401
|
-
dataPointFeed,
|
|
131402
|
-
logger: uploadDeps.logger
|
|
131403
|
-
}, scope));
|
|
131731
|
+
const result = await exclusive(() => {
|
|
131732
|
+
tombstoneResubmits.reset(scope);
|
|
131733
|
+
return deleteScope(deleteScopeDeps(), scope);
|
|
131734
|
+
});
|
|
131404
131735
|
if (result.durable && uploadDeps.additions)
|
|
131405
131736
|
await uploadDeps.additions.deleteScope(scope);
|
|
131406
131737
|
return result;
|
|
@@ -131409,6 +131740,107 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131409
131740
|
return manager;
|
|
131410
131741
|
}
|
|
131411
131742
|
|
|
131743
|
+
// ../core/dist/sync/tombstone-finality.js
|
|
131744
|
+
var PAGE_LIMIT = 1e3;
|
|
131745
|
+
var MAX_PAGES = 20;
|
|
131746
|
+
var SETTLED = /* @__PURE__ */ new Set(["finalized", "failed"]);
|
|
131747
|
+
function createInventoryTombstoneFinality(inventory, options = {}) {
|
|
131748
|
+
const now = options.now ?? Date.now;
|
|
131749
|
+
const minRecheck = options.minRecheckMs ?? 6e4;
|
|
131750
|
+
const maxRecheck = options.maxRecheckMs ?? 15 * 6e4;
|
|
131751
|
+
const recheck = /* @__PURE__ */ new Map();
|
|
131752
|
+
const idle = {
|
|
131753
|
+
finalized: null,
|
|
131754
|
+
settling: false,
|
|
131755
|
+
rolledBack: null
|
|
131756
|
+
};
|
|
131757
|
+
async function read(scope, from14) {
|
|
131758
|
+
let after = (from14 > 0n ? from14 - 1n : 0n).toString();
|
|
131759
|
+
let finalized = null;
|
|
131760
|
+
let settling = false;
|
|
131761
|
+
let top = null;
|
|
131762
|
+
let head = null;
|
|
131763
|
+
let complete = false;
|
|
131764
|
+
for (let count = 0; count < MAX_PAGES; count++) {
|
|
131765
|
+
const result = await inventory.page(scope, { after, limit: PAGE_LIMIT });
|
|
131766
|
+
head = result.data.head ?? null;
|
|
131767
|
+
for (const version5 of result.data.versions) {
|
|
131768
|
+
const value = BigInt(version5.expectedVersion);
|
|
131769
|
+
if (value < from14)
|
|
131770
|
+
continue;
|
|
131771
|
+
if (top === null || value > top.version) {
|
|
131772
|
+
top = {
|
|
131773
|
+
version: value,
|
|
131774
|
+
failedTombstone: version5.isTombstone && version5.status === "failed"
|
|
131775
|
+
};
|
|
131776
|
+
}
|
|
131777
|
+
if (!version5.isTombstone)
|
|
131778
|
+
continue;
|
|
131779
|
+
if (version5.status === "finalized") {
|
|
131780
|
+
if (finalized === null || value > finalized)
|
|
131781
|
+
finalized = value;
|
|
131782
|
+
} else if (!SETTLED.has(version5.status)) {
|
|
131783
|
+
settling = true;
|
|
131784
|
+
}
|
|
131785
|
+
}
|
|
131786
|
+
if (!result.pagination.hasMore) {
|
|
131787
|
+
complete = true;
|
|
131788
|
+
break;
|
|
131789
|
+
}
|
|
131790
|
+
const next = result.pagination.nextAfter;
|
|
131791
|
+
if (next === null)
|
|
131792
|
+
break;
|
|
131793
|
+
after = next;
|
|
131794
|
+
}
|
|
131795
|
+
if (head !== null && (head.deletedAt !== null || isTombstoneRecord(head))) {
|
|
131796
|
+
const value = BigInt(head.expectedVersion);
|
|
131797
|
+
if (head.status === "finalized") {
|
|
131798
|
+
if (finalized === null || value > finalized)
|
|
131799
|
+
finalized = value;
|
|
131800
|
+
} else if (!SETTLED.has(head.status)) {
|
|
131801
|
+
settling = true;
|
|
131802
|
+
}
|
|
131803
|
+
}
|
|
131804
|
+
let rolledBack = null;
|
|
131805
|
+
if (complete && !settling && top?.failedTombstone) {
|
|
131806
|
+
const restored = head !== null && head.deletedAt === null && !isTombstoneRecord(head) && BigInt(head.expectedVersion) < top.version ? head : null;
|
|
131807
|
+
if (restored) {
|
|
131808
|
+
rolledBack = {
|
|
131809
|
+
tombstoneVersion: top.version.toString(),
|
|
131810
|
+
head: {
|
|
131811
|
+
expectedVersion: restored.expectedVersion,
|
|
131812
|
+
dataHash: restored.dataHash,
|
|
131813
|
+
metadataHash: restored.metadataHash
|
|
131814
|
+
}
|
|
131815
|
+
};
|
|
131816
|
+
}
|
|
131817
|
+
}
|
|
131818
|
+
return {
|
|
131819
|
+
finalized: finalized === null ? null : finalized.toString(),
|
|
131820
|
+
settling,
|
|
131821
|
+
rolledBack
|
|
131822
|
+
};
|
|
131823
|
+
}
|
|
131824
|
+
return {
|
|
131825
|
+
async tombstoneState(scope, atOrAbove) {
|
|
131826
|
+
const waiting = recheck.get(scope);
|
|
131827
|
+
if (waiting && now() < waiting.at)
|
|
131828
|
+
return idle;
|
|
131829
|
+
const state = await read(scope, BigInt(atOrAbove));
|
|
131830
|
+
if (state.finalized !== null || state.settling) {
|
|
131831
|
+
recheck.delete(scope);
|
|
131832
|
+
return state;
|
|
131833
|
+
}
|
|
131834
|
+
const interval = waiting ? Math.min(waiting.interval * 2, maxRecheck) : minRecheck;
|
|
131835
|
+
recheck.set(scope, { at: now() + interval, interval });
|
|
131836
|
+
return state;
|
|
131837
|
+
},
|
|
131838
|
+
recheckNow(scope) {
|
|
131839
|
+
recheck.delete(scope);
|
|
131840
|
+
}
|
|
131841
|
+
};
|
|
131842
|
+
}
|
|
131843
|
+
|
|
131412
131844
|
// ../core/dist/replication/door.js
|
|
131413
131845
|
var ReplicationRefusedError = class extends Error {
|
|
131414
131846
|
reason;
|
|
@@ -138165,6 +138597,8 @@ function createVersionInventoryClient(options) {
|
|
|
138165
138597
|
const current = (await page(scope, { limit: 1, signal })).data.head;
|
|
138166
138598
|
return current ? {
|
|
138167
138599
|
expectedVersion: current.expectedVersion,
|
|
138600
|
+
dataHash: current.dataHash,
|
|
138601
|
+
metadataHash: current.metadataHash,
|
|
138168
138602
|
deletedAt: current.deletedAt
|
|
138169
138603
|
} : null;
|
|
138170
138604
|
}
|
|
@@ -172488,6 +172922,16 @@ async function createPsLiteSyncManager(options) {
|
|
|
172488
172922
|
}
|
|
172489
172923
|
});
|
|
172490
172924
|
const pendingBlobDeletions = createPsLitePendingBlobDeletionStore(options.stateStore);
|
|
172925
|
+
const tombstoneFinality = createInventoryTombstoneFinality(createVersionInventoryClient({
|
|
172926
|
+
gatewayUrl: options.config.gateway.url,
|
|
172927
|
+
ownerAddress: serverOwner,
|
|
172928
|
+
ownerSigner: ownerRequestSigner ?? {
|
|
172929
|
+
signRequest: (params) => buildWeb3SignedHeader({
|
|
172930
|
+
...params,
|
|
172931
|
+
signMessage: (message) => syncAccount.signMessage(message)
|
|
172932
|
+
})
|
|
172933
|
+
}
|
|
172934
|
+
}));
|
|
172491
172935
|
const downloadDiagnostics = options.diagnostics ? buildDownloadDiagnosticsHook(options.diagnostics) : void 0;
|
|
172492
172936
|
const syncManager = createSyncManager({
|
|
172493
172937
|
additions,
|
|
@@ -172516,6 +172960,7 @@ async function createPsLiteSyncManager(options) {
|
|
|
172516
172960
|
}, {
|
|
172517
172961
|
deleteData,
|
|
172518
172962
|
pendingBlobDeletions,
|
|
172963
|
+
tombstoneFinality,
|
|
172519
172964
|
async canSync() {
|
|
172520
172965
|
if (options.ownerSyncSigner)
|
|
172521
172966
|
return { ok: true };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/personal-server-ts-server",
|
|
3
|
-
"version": "1.35.
|
|
3
|
+
"version": "1.35.3",
|
|
4
4
|
"description": "Hono HTTP server for the Vana Personal Server — routes, middleware, composition root",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@hono/node-server": "^1.19.17",
|
|
58
|
-
"@opendatalabs/personal-server-ts-core": "1.35.
|
|
59
|
-
"@opendatalabs/personal-server-ts-lite": "1.35.
|
|
58
|
+
"@opendatalabs/personal-server-ts-core": "1.35.3",
|
|
59
|
+
"@opendatalabs/personal-server-ts-lite": "1.35.3",
|
|
60
60
|
"@opendatalabs/vana-sdk": "3.23.0-pr.211.36da1d8",
|
|
61
61
|
"ajv": "^8.20.0",
|
|
62
62
|
"better-sqlite3": "^12.11.1",
|