@gonvex/client 0.5.2-staging.2 → 0.5.2-staging.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +68 -2
  2. package/dist/browser-upgrades.d.ts +19 -0
  3. package/dist/browser-upgrades.js +157 -0
  4. package/dist/browser-upgrades.js.map +1 -0
  5. package/dist/client-upgrades.d.ts +26 -0
  6. package/dist/client-upgrades.js +41 -0
  7. package/dist/client-upgrades.js.map +1 -0
  8. package/dist/control.d.ts +2 -0
  9. package/dist/control.js +1 -0
  10. package/dist/control.js.map +1 -1
  11. package/dist/index.d.ts +348 -9
  12. package/dist/index.js +1576 -192
  13. package/dist/index.js.map +1 -1
  14. package/dist/indexeddb-read-view.d.ts +24 -0
  15. package/dist/indexeddb-read-view.js +164 -0
  16. package/dist/indexeddb-read-view.js.map +1 -0
  17. package/dist/indexeddb-replica.d.ts +41 -3
  18. package/dist/indexeddb-replica.js +405 -111
  19. package/dist/indexeddb-replica.js.map +1 -1
  20. package/dist/local-replica.d.ts +127 -4
  21. package/dist/local-replica.js +836 -85
  22. package/dist/local-replica.js.map +1 -1
  23. package/dist/outbox.d.ts +118 -10
  24. package/dist/outbox.js +391 -89
  25. package/dist/outbox.js.map +1 -1
  26. package/dist/paged-read-view.d.ts +13 -0
  27. package/dist/paged-read-view.js +60 -0
  28. package/dist/paged-read-view.js.map +1 -0
  29. package/dist/query-expression.d.ts +39 -2
  30. package/dist/query-expression.js +106 -5
  31. package/dist/query-expression.js.map +1 -1
  32. package/dist/replica-integrity.d.ts +2 -0
  33. package/dist/replica-integrity.js +10 -0
  34. package/dist/replica-integrity.js.map +1 -1
  35. package/dist/replica-record.d.ts +14 -0
  36. package/dist/replica-record.js +46 -0
  37. package/dist/replica-record.js.map +1 -0
  38. package/package.json +4 -2
package/README.md CHANGED
@@ -41,8 +41,10 @@ tenant selection.
41
41
  `authenticate` installs a new authentication scope and resolves only after the
42
42
  runtime accepts it. It exists for provider-owned transitions such as developer
43
43
  mode; React applications should use `GonvexAuthProvider`. The runtime rotates
44
- single-use developer credentials on every connection, and the client retains
45
- their successor only in memory.
44
+ single-use developer credentials on every connection. The client uses the
45
+ successor for its own reconnects and publishes it through
46
+ `onDeveloperCredential` so the React provider can resume developer mode after a
47
+ reload of the same tab.
46
48
 
47
49
  ## Install
48
50
 
@@ -259,6 +261,68 @@ Reducer also declares optimistic UI metadata. Actions are never queued.
259
261
  Deterministic server errors are never queued and always roll an optimistic
260
262
  entity overlay back when one exists.
261
263
 
264
+ ### Queued intent lifecycle
265
+
266
+ Runtimes from 0.5.2-staging.15 classify every `reducer.error` as `rejected`,
267
+ `transient`, `update_required` or `unauthenticated` (also exposed as
268
+ `GonvexClientError.errorClass` / `retryable`). The outbox acts on it:
269
+
270
+ | Class | Outbox behaviour |
271
+ | --- | --- |
272
+ | `transient` (and timeouts) | Retry with exponential backoff. After `outbox.retry.maxAttempts` (default 10, backoff capped at `maxBackoffMs`, default 60s) the intent is parked as `failed`: kept durably with its prediction, and no longer blocking later intents. |
273
+ | `unauthenticated` | Keep the intent, re-authenticate, retry. Does not spend the retry budget. |
274
+ | `update_required` | Keep the intent pending and call `onUpdateRequired`. |
275
+ | `rejected` | Roll the prediction back, rebase later local intents, fire `onReducerRejection`, and keep the intent as a `rejected` record until the app discards or retries it. |
276
+
277
+ Older runtimes send no class: their errors are treated as rejections, except
278
+ the legacy stale-artifact and "authenticate with an active tenant" messages.
279
+
280
+ ```ts
281
+ const intents = await client.listIntents(); // or subscribeIntents()/intentsSnapshot()
282
+ client.entityIntentStatus("tasks", taskId); // "syncing" | "failed" | "rejected" | undefined
283
+ await client.retryIntent(intent.id); // same idempotency key, fresh budget
284
+ await client.discardIntent(intent.id); // pending/failed/rejected only
285
+ await client.listOutboxScopes(); // includes identities that never returned
286
+ await client.purgeForeignOutboxScopes(); // never automatic
287
+ ```
288
+
289
+ `@gonvex/react` exposes the same list through `useOutboxIntents()` and a
290
+ per-row `useEntityIntentStatus(entity, id)`.
291
+
292
+ ### Local execution fallbacks and residency
293
+
294
+ A locally executing Reducer whose body reads rows the Local Replica does not
295
+ hold is queued with no local result (`{ status: "queued", reducerId }`).
296
+ `client.onLocalExecutionFallback(listener)` (or the `onLocalExecutionFallback`
297
+ option, or `useLocalExecutionFallback` in `@gonvex/react`) reports every such
298
+ fallback with the Reducer path, intent id, phase (`call` or `replay`), reason,
299
+ and missing table. Generated clients also carry each Reducer's codegen-derived
300
+ `localDependencies`; with `localDependencyResidency: "bounded"` (the default)
301
+ the client keeps dependency tables whose generated collection declares
302
+ `maxRows <= 1000` subscribed for the session, so those Reducers run locally
303
+ from their first call. See the Local Reducer Execution docs page.
304
+
305
+ ### Resetting the local cache
306
+
307
+ `client.resetLocalReplica({ keepOutbox = true })` implements a "Clear cache"
308
+ setting without the app touching replica storage. It deletes the active
309
+ identity's persisted replica rows (IndexedDB, Expo SQLite, or the configured
310
+ storage), keeps the saved offline session, closes and re-opens every active
311
+ Replica Collection and Live Query without cursors, and re-applies the
312
+ predictions of all live intents so they reappear on top of the fresh
313
+ snapshots. Pending, failed and rejected intents are kept unless
314
+ `keepOutbox: false` is passed explicitly (inflight intents are never dropped).
315
+
316
+ It is **online only**: offline (or before the socket is authenticated) it
317
+ rejects with `GonvexClientError` `code: "disconnected"` and changes nothing,
318
+ so the user is never left with an empty cache that cannot be refilled. React
319
+ apps can use `useResetLocalReplica()` for `{ reset, isResetting, error }`.
320
+
321
+ A parked intent lets later intents proceed; the server validates each of them
322
+ on its own, so an intent that depended on the parked one is rejected rather
323
+ than applied out of order. Retrying a parked intent after later intents
324
+ committed re-applies it on top of them.
325
+
262
326
  Live Queries persist their last verified window in the Local Replica and
263
327
  resubscribe after reconnect. Call `client.retryLiveQuery(ref, args)` to force a
264
328
  re-request after a server error. `useQueryResult` is for one-shot Queries.
@@ -286,3 +350,5 @@ The package exports:
286
350
  ## Documentation
287
351
 
288
352
  Full docs live at https://desarso.github.io/gonvex/
353
+
354
+ [Open online anonymous tenant connections with `public: { tenant }`](../../docs/public-functions.md).
@@ -0,0 +1,19 @@
1
+ import { type ClientContract, type ClientMigration } from "./client-upgrades.js";
2
+ import type { LocalReplicaStorage } from "./local-replica.js";
3
+ import type { OutboxStore } from "./outbox.js";
4
+ export type BrowserUpgradeOptions = {
5
+ replicaName: string;
6
+ outboxName: string;
7
+ contract: ClientContract;
8
+ /** Version assigned to data written before this mechanism was introduced. */
9
+ initialVersion: number;
10
+ migrations: readonly ClientMigration[];
11
+ onRequired?: (error: Error) => void;
12
+ };
13
+ /** All app access goes through version-fenced SDK stores, including old tabs. */
14
+ export declare function browserUpgradeStorage(options: BrowserUpgradeOptions): {
15
+ storage: LocalReplicaStorage;
16
+ store: OutboxStore;
17
+ ready: Promise<void>;
18
+ close(): void;
19
+ };
@@ -0,0 +1,157 @@
1
+ import { Dexie } from "dexie";
2
+ import { IndexedDBLocalReplicaStorage } from "./indexeddb-replica.js";
3
+ import { migrateClientData, migrationChain } from "./client-upgrades.js";
4
+ /** All app access goes through version-fenced SDK stores, including old tabs. */
5
+ export function browserUpgradeStorage(options) {
6
+ const replica = new IndexedDBLocalReplicaStorage(options.replicaName);
7
+ const queue = new Dexie(options.outboxName);
8
+ queue.version(1).stores({ entries: "++id, state, nextAttemptAt" });
9
+ queue.version(2).stores({ entries: "++id, scope, state, nextAttemptAt, [scope+state], [scope+nextAttemptAt]" });
10
+ const meta = new Dexie(`${options.replicaName}-upgrades`);
11
+ meta.version(1).stores({ state: "&key" });
12
+ const lockName = `gonvex-upgrade:${options.replicaName}:${options.outboxName}`;
13
+ const locks = globalThis.navigator?.locks;
14
+ const channel = typeof BroadcastChannel === "function" ? new BroadcastChannel(lockName) : undefined;
15
+ const peers = new Set();
16
+ let closed = false;
17
+ const requireUpgrade = (error) => { options.onRequired?.(error); return error; };
18
+ if (channel)
19
+ channel.onmessage = event => {
20
+ if (event.data?.type === 'outbox') {
21
+ for (const listener of peers)
22
+ listener();
23
+ }
24
+ else if (event.data?.version !== options.contract.version)
25
+ requireUpgrade(new Error("Another tab upgraded the application. Reload to continue."));
26
+ };
27
+ const ready = (async () => {
28
+ if (!locks)
29
+ throw new Error("Safe offline upgrades require browser Web Locks support");
30
+ await locks.request(lockName, { mode: "exclusive" }, async () => {
31
+ await Promise.all([meta.open(), queue.open()]);
32
+ const saved = await meta.state.get("contract");
33
+ const hasOldData = saved ? true : (await replica.listScopes()).length > 0 || await queue.entries.count() > 0;
34
+ let record = saved ?? { key: "contract", version: hasOldData ? options.initialVersion : options.contract.version };
35
+ // A interrupted upgrade must finish its exact staged payload before another upgrade starts.
36
+ const finish = async () => {
37
+ if (!record.journal)
38
+ return;
39
+ for (const [scope, snapshot] of Object.entries(record.journal.snapshots))
40
+ await replica.replaceSnapshot(snapshot, scope);
41
+ await queue.transaction("rw", queue.entries, async () => {
42
+ await queue.entries.clear();
43
+ await queue.entries.bulkPut(record.journal.entries);
44
+ });
45
+ record = { key: "contract", version: record.version };
46
+ await meta.state.put(record);
47
+ };
48
+ // An older tab must never finish a newer migration and then hydrate it.
49
+ if (record.version > options.contract.version)
50
+ throw new Error("Stored data requires a newer application build");
51
+ await finish();
52
+ const chain = migrationChain(record.version, options.contract.version, options.migrations);
53
+ if (chain.length) {
54
+ const snapshots = {};
55
+ for (const scope of await replica.listScopes()) {
56
+ const snapshot = await replica.load(scope);
57
+ if (snapshot)
58
+ snapshots[scope] = snapshot;
59
+ }
60
+ const entries = await queue.entries.toArray();
61
+ if (entries.some(entry => !entry.scope))
62
+ throw new Error("Unowned offline work needs recovery before upgrading");
63
+ // No writes until every transform succeeds. The journal is temporary upgrade data,
64
+ // never a second source of application state. Applying it is repeatable after a crash.
65
+ const journal = migrateClientData(snapshots, entries, chain);
66
+ record = { key: "contract", version: options.contract.version, journal };
67
+ await meta.state.put(record);
68
+ await finish();
69
+ channel?.postMessage({ version: record.version });
70
+ }
71
+ else
72
+ await meta.state.put(record);
73
+ });
74
+ })().catch(error => { throw requireUpgrade(error instanceof Error ? error : new Error(String(error))); });
75
+ // The SDK may initialize storage before React subscribes; retain the rejected ready promise.
76
+ void ready.catch(() => undefined);
77
+ const guarded = async (run) => {
78
+ await ready;
79
+ if (closed)
80
+ throw new Error("Application storage is closed");
81
+ return locks.request(lockName, { mode: "shared" }, async () => {
82
+ const record = await meta.state.get("contract");
83
+ if (record?.version !== options.contract.version || record.journal) {
84
+ throw requireUpgrade(new Error("Application storage changed. Reload before continuing."));
85
+ }
86
+ return run();
87
+ });
88
+ };
89
+ const reserveId = async () => {
90
+ const last = await queue.entries.orderBy('id').last();
91
+ return meta.transaction('rw', meta.state, async () => {
92
+ const counter = await meta.state.get('sequence');
93
+ const version = Math.max(counter?.version ?? 0, last?.id ?? 0) + 1;
94
+ await meta.state.put({ key: 'sequence', version });
95
+ return version;
96
+ });
97
+ };
98
+ const storage = new Proxy(replica, {
99
+ get(target, property) {
100
+ const value = Reflect.get(target, property);
101
+ if (property === 'subscribePeer')
102
+ return value.bind(target);
103
+ return typeof value === "function" ? (...args) => guarded(() => value.apply(target, args)) : value;
104
+ },
105
+ });
106
+ return {
107
+ storage, ready,
108
+ store: {
109
+ strictPersistence: true,
110
+ shared: true,
111
+ coordinate: async (scope, lane, run) => {
112
+ await ready;
113
+ return locks.request(`${lockName}:${lane}:${scope}`, { mode: 'exclusive' }, run);
114
+ },
115
+ subscribePeer: listener => { peers.add(listener); return () => { peers.delete(listener); }; },
116
+ append: draft => guarded(async () => {
117
+ // Keep the established shared counter so already-open SDK versions
118
+ // cannot reuse a deleted entry's ID. One upgrade fence covers both
119
+ // reservation and insertion; only the complete durable entry is exposed.
120
+ const id = await reserveId();
121
+ const entry = { ...draft, id };
122
+ await queue.entries.add(entry);
123
+ channel?.postMessage({ type: 'outbox' });
124
+ return entry;
125
+ }),
126
+ allocateId: () => guarded(reserveId),
127
+ load: scope => guarded(() => scope ? queue.entries.where('scope').equals(scope).toArray() : queue.entries.toArray()),
128
+ put: entry => guarded(async () => { await queue.entries.put(entry); channel?.postMessage({ type: 'outbox' }); }),
129
+ update: (id, change) => guarded(async () => {
130
+ let changed = false;
131
+ const updated = await queue.transaction('rw', queue.entries, async () => {
132
+ const prior = await queue.entries.get(id);
133
+ if (!prior)
134
+ return undefined;
135
+ const next = change(prior);
136
+ if (next.id !== id || next.scope !== prior.scope || next.idempotencyKey !== prior.idempotencyKey)
137
+ throw new Error('Outbox identity cannot change');
138
+ if (JSON.stringify(prior) !== JSON.stringify(next)) {
139
+ await queue.entries.put(next);
140
+ changed = true;
141
+ }
142
+ return next;
143
+ });
144
+ if (changed)
145
+ channel?.postMessage({ type: 'outbox' });
146
+ return updated;
147
+ }),
148
+ delete: id => guarded(async () => { await queue.entries.delete(id); channel?.postMessage({ type: 'outbox' }); }),
149
+ clear: scope => guarded(async () => { if (scope)
150
+ await queue.entries.where('scope').equals(scope).delete();
151
+ else
152
+ await queue.entries.clear(); channel?.postMessage({ type: 'outbox' }); }),
153
+ },
154
+ close() { closed = true; channel?.close(); replica.close(); queue.close(); meta.close(); },
155
+ };
156
+ }
157
+ //# sourceMappingURL=browser-upgrades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-upgrades.js","sourceRoot":"","sources":["../src/browser-upgrades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAA6C,MAAM,sBAAsB,CAAC;AAiBpH,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAGlE,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAA2D,CAAC;IACtG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yEAAyE,EAAE,CAAC,CAAC;IAChH,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,WAAW,CAAoD,CAAC;IAC7G,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,KAAK,GAAC,IAAI,GAAG,EAAY,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACxF,IAAI,OAAO;QAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;YACvC,IAAG,KAAK,CAAC,IAAI,EAAE,IAAI,KAAG,QAAQ,EAAE,CAAC;gBAAC,KAAI,MAAM,QAAQ,IAAI,KAAK;oBAAE,QAAQ,EAAE,CAAC;YAAC,CAAC;iBACvE,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAE,cAAc,CAAC,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACpJ,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACvF,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7G,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnH,4FAA4F;YAC5F,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;oBAAE,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACzH,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBACtD,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC,CAAC;YACF,wEAAwE;YACxE,IAAI,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACjH,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3F,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAoC,EAAE,CAAC;gBACtD,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;oBAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,QAAQ;wBAAE,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;gBAC5C,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACjH,mFAAmF;gBACnF,uFAAuF;gBACvF,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBACzE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,MAAM,EAAE,CAAC;gBACf,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;;gBAAM,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,6FAA6F;IAC7F,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,EAAK,GAAqB,EAAc,EAAE;QAC7D,MAAM,KAAK,CAAC;QACZ,IAAI,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC7D,OAAO,KAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnE,MAAM,cAAc,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;QACjC,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,eAAe;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChH,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAC,IAAI;YACX,UAAU,EAAC,KAAK,EAAE,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,EAAE;gBACjC,MAAM,KAAK,CAAC;gBACZ,OAAO,KAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK,EAAE,EAAC,EAAC,IAAI,EAAC,WAAW,EAAC,EAAC,GAAG,CAAC,CAAC;YAC/E,CAAC;YACD,aAAa,EAAC,QAAQ,CAAA,EAAE,GAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC;YAClF,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBAClC,mEAAmE;gBACnE,mEAAmE;gBACnE,yEAAyE;gBACzE,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,EAAE,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;YACpC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACpH,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA,OAAO,EAAE,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,MAAM,EAAE,CAAC,EAAE,EAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBACxC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,OAAO,GAAC,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAC,KAAK,CAAC,OAAO,EAAC,KAAK,IAAE,EAAE;oBAChE,MAAM,KAAK,GAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAAA,IAAG,CAAC,KAAK;wBAAC,OAAO,SAAS,CAAC;oBACnE,MAAM,IAAI,GAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,IAAG,IAAI,CAAC,EAAE,KAAG,EAAE,IAAE,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,IAAE,IAAI,CAAC,cAAc,KAAG,KAAK,CAAC,cAAc;wBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACvI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;wBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,CAAC;oBACtG,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,IAAG,OAAO;oBAAC,OAAO,EAAE,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;gBACjD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;YACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAE,EAAE,GAAC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA,OAAO,EAAE,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA,CAAC,CAAC;YACvG,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAE,EAAE,GAAC,IAAG,KAAK;gBAAC,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;;gBAAK,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA,OAAO,EAAE,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA,CAAC,CAAC;SAC/K;QACD,KAAK,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC3F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { JsonValue } from "@gonvex/protocol";
2
+ import type { ReplicaSnapshot } from "./local-replica.js";
3
+ import type { ReducerOutboxEntry } from "./outbox.js";
4
+ export type ClientContract = {
5
+ version: number; /** null permits indefinite offline edits and requires retaining migration paths. */
6
+ offlineMaxAgeMs: number | null;
7
+ };
8
+ export type ClientMigration = {
9
+ from: number;
10
+ to: number;
11
+ /** Pure synchronous transformation of confirmed rows. Never optimistic patches. */
12
+ replica?: (snapshot: ReplicaSnapshot) => ReplicaSnapshot;
13
+ /** Throw if the user's meaning cannot be preserved. The original queue survives. */
14
+ intent?: (intent: {
15
+ path: string;
16
+ args: JsonValue;
17
+ }) => {
18
+ path: string;
19
+ args: JsonValue;
20
+ };
21
+ };
22
+ export declare function migrationChain(from: number, to: number, migrations: readonly ClientMigration[]): ClientMigration[];
23
+ export declare function migrateClientData(snapshots: Record<string, ReplicaSnapshot>, entries: readonly ReducerOutboxEntry[], chain: readonly ClientMigration[]): {
24
+ snapshots: Record<string, ReplicaSnapshot>;
25
+ entries: ReducerOutboxEntry[];
26
+ };
@@ -0,0 +1,41 @@
1
+ export function migrationChain(from, to, migrations) {
2
+ if (!Number.isSafeInteger(from) || from < 1 || !Number.isSafeInteger(to) || to < from) {
3
+ throw new Error(`Unsupported client contract transition ${from} -> ${to}`);
4
+ }
5
+ const chain = [];
6
+ for (let version = from; version < to; version++) {
7
+ const candidates = migrations.filter(m => m.from === version);
8
+ if (candidates.length !== 1 || candidates[0].to !== version + 1) {
9
+ throw new Error(`Missing or ambiguous client migration ${version} -> ${version + 1}`);
10
+ }
11
+ chain.push(candidates[0]);
12
+ }
13
+ return chain;
14
+ }
15
+ export function migrateClientData(snapshots, entries, chain) {
16
+ let nextSnapshots = structuredClone(snapshots);
17
+ let nextEntries = structuredClone([...entries]);
18
+ for (const migration of chain) {
19
+ nextSnapshots = Object.fromEntries(Object.entries(nextSnapshots).map(([scope, snapshot]) => {
20
+ const next = migration.replica ? migration.replica(snapshot) : snapshot;
21
+ // Shape migration does not establish server freshness or preserve query membership contracts.
22
+ delete next.cursor;
23
+ next.liveQueries = {};
24
+ return [scope, next];
25
+ }));
26
+ nextEntries = nextEntries.map(entry => {
27
+ const originalPath = entry.receiptPath ?? entry.path;
28
+ const intent = migration.intent?.({ path: entry.path, args: structuredClone(entry.args) })
29
+ ?? { path: entry.path, args: entry.args };
30
+ if (!intent.path || intent.args === undefined)
31
+ throw new Error("Client migration returned an invalid intent");
32
+ return { ...entry, path: intent.path, args: intent.args,
33
+ receiptPath: originalPath, patches: [],
34
+ // Committed responses awaiting a watermark must be reconciled by their original receipt too.
35
+ // Parked and rejected records wait for the user; an upgrade must not resend them.
36
+ state: entry.state === "failed" || entry.state === "rejected" ? entry.state : "pending", nextAttemptAt: 0 };
37
+ });
38
+ }
39
+ return { snapshots: nextSnapshots, entries: nextEntries };
40
+ }
41
+ //# sourceMappingURL=client-upgrades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-upgrades.js","sourceRoot":"","sources":["../src/client-upgrades.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU,EAAE,UAAsC;IAC7F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,IAAI,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAA0C,EAAE,OAAsC,EAClF,KAAiC;IAEjC,IAAI,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,eAAe,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;YACzF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxE,8FAA8F;YAC9F,OAAO,IAAI,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,CAAC;QACJ,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;YACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAc,EAAE,CAAC;mBAClG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAiB,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC9G,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACrD,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;gBACtC,6FAA6F;gBAC7F,kFAAkF;gBAClF,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC5D,CAAC"}
package/dist/control.d.ts CHANGED
@@ -123,6 +123,8 @@ export type ControlSupportTenant = JSONObject & {
123
123
  timezone: string;
124
124
  seatLimit: number | null;
125
125
  createdAt: string;
126
+ userCount?: number | null;
127
+ activeSessions?: number;
126
128
  };
127
129
  export type ControlSupportErrorGroup = JSONObject & {
128
130
  fingerprint: string;
package/dist/control.js CHANGED
@@ -34,6 +34,7 @@ const supportSessionSchema = objectSchema({
34
34
  const supportTenantSchema = objectSchema({
35
35
  id: stringSchema, name: stringSchema, domain: stringSchema, status: stringSchema,
36
36
  timezone: stringSchema, seatLimit: anySchema, createdAt: stringSchema,
37
+ userCount: { ...anySchema, optional: true }, activeSessions: { ...anySchema, optional: true },
37
38
  });
38
39
  const supportErrorGroupSchema = objectSchema({
39
40
  fingerprint: stringSchema, project: stringSchema, title: stringSchema, level: stringSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAC;AACjD,MAAM,oBAAoB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAW,CAAC;AACzE,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;AACnD,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAC;AACjD,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC;AAC3C,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAW,CAAC;AACjF,MAAM,YAAY,GAAG,CAAC,MAAiC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAY,CAAA,CAAC;AACvH,MAAM,WAAW,GAAG,CAAC,QAAmB,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAY,CAAA,CAAC;AAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,CAAC;AACpH,MAAM,iBAAiB,GAAG,YAAY,CAAC;IACrC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,aAAa,EAAC,aAAa,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY;CAC5H,CAAC,CAAC;AACH,MAAM,qBAAqB,GAAG,YAAY,CAAC;IACzC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,WAAW,EAAC,SAAS;IACzE,MAAM,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAC,OAAO,EAAC,SAAS;CACrF,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,YAAY,CAAC;IACjC,WAAW,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY;IAC7F,YAAY,EAAC,YAAY,EAAC,gBAAgB,EAAC,YAAY,EAAC,OAAO,EAAC,iBAAiB;IACjF,OAAO,EAAC,WAAW,CAAC,qBAAqB,CAAC,EAAC,cAAc,EAAC,YAAY;CACvE,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,CAAC;AAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AAC5E,MAAM,sBAAsB,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAC,YAAY,EAAC,UAAU,EAAE,YAAY,EAAC,KAAK,EAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAC,OAAO,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACjP,MAAM,gBAAgB,GAAG,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,aAAa,EAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAC,CAAC,CAAC;AAC1U,MAAM,0BAA0B,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;AACpG,MAAM,eAAe,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACtG,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACpG,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACxC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY;IACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY;CAC3E,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,YAAY,CAAC;IACvC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY;IAChF,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY;IACrE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC9F,CAAC,CAAC;AACH,MAAM,uBAAuB,GAAG,YAAY,CAAC;IAC3C,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB;IAC3G,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IACpE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;IAChE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;CACtF,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAChI,MAAM,mBAAmB,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AAC7G,MAAM,qBAAqB,GAAG,YAAY,CAAC,EAAE,SAAS,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAC,OAAO,EAAC,YAAY,EAAE,CAAC,CAAC;AACtI,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,sBAAsB,GAAqE,MAAM,CAAC,MAAM,CAAC;IACpH,qBAAqB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,iCAAiC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,eAAe,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;IAC3I,sCAAsC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;IACzI,uCAAuC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,WAAW,EAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAE;IAClQ,4BAA4B,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,KAAK,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAC,aAAa,EAAE;IACxH,oCAAoC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,QAAQ,EAAC,oBAAoB,EAAC,oBAAoB,EAAC,oBAAoB,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IACpM,6BAA6B,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,YAAY,EAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAC,aAAa,EAAE;IAC1G,qBAAqB,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,YAAY,EAAC,YAAY,EAAC,GAAG,EAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAC,aAAa,EAAE;IACpH,6BAA6B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,IAAI,EAAC,YAAY,EAAC,SAAS,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,CAAC,EAAE;IAChI,0BAA0B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,OAAO,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,aAAa,EAAC,oBAAoB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,eAAe,EAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAC,MAAM,EAAC,oBAAoB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,EAAC,oBAAoB,EAAC,iBAAiB,EAAC,oBAAoB,EAAC,gBAAgB,EAAC,oBAAoB,EAAC,mBAAmB,EAAC,aAAa,EAAC,CAAC,CAAC,EAAE;IACnd,+BAA+B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,aAAa,EAAC,oBAAoB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,YAAY,EAAC,oBAAoB,EAAC,MAAM,EAAC,oBAAoB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,EAAC,oBAAoB,EAAC,iBAAiB,EAAC,oBAAoB,EAAC,gBAAgB,EAAC,oBAAoB,EAAC,gBAAgB,EAAC,oBAAoB,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IAC7d,8BAA8B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,SAAS,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,CAAC,CAAC,EAAE;IAC1L,sBAAsB,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;IACtF,wBAAwB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,IAAI,EAAC,YAAY,EAAC,MAAM,EAAC,oBAAoB,EAAC,CAAC,EAAC,MAAM,EAAC,qBAAqB,EAAE;IAC7H,6BAA6B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,MAAM,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,MAAM,EAAC,YAAY,EAAC,CAAC,EAAE;IACxJ,+BAA+B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,IAAI,EAAC,YAAY,EAAC,MAAM,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IAC7I,gCAAgC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IACrG,wBAAwB,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,aAAa,EAAE;IACnE,8BAA8B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAC3I,8BAA8B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAC/I,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,sBAAsB,EAAE;IACvG,0BAA0B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;IACrF,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,OAAO,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,EAAE;IACvO,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,OAAO,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IACtO,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,0BAA0B,EAAE;IAC3G,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACtI,yBAAyB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,WAAW,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,gBAAgB,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,EAAE;IAC1I,yBAAyB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,WAAW,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,CAAC,EAAE;IACnJ,0BAA0B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACjH,iCAAiC,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,eAAe,CAAC,EAAE;IAC3F,mCAAmC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACjK,mCAAmC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAC7H,0BAA0B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,qBAAqB,EAAE;IAC7E,iCAAiC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAE;IAC1K,8BAA8B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IACnG,yBAAyB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,mBAAmB,EAAE;IACpG,wBAAwB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAE;IAC5F,+BAA+B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,SAAS,EAAE;IACtE,+BAA+B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAC3I,gCAAgC,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,aAAa,CAAC,EAAE;IACxF,2BAA2B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACvI,oCAAoC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAChJ,+BAA+B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IAC3I,8BAA8B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE;IAC7F,6BAA6B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;IAC3F,4BAA4B,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,mBAAmB,EAAE;IAC7E,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,SAAS,EAAE;IACvF,0BAA0B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,WAAW,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,SAAS,EAAE;IAC9F,2BAA2B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,SAAS,EAAE;IAC5F,+BAA+B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,gBAAgB,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,CAAC,EAAE;IACnI,2BAA2B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,WAAW,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,CAAC,EAAE;IACjJ,6BAA6B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAC,SAAS,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAE;IAClI,4BAA4B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACnH,qCAAqC,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,MAAM,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,mBAAmB,EAAE;IAC3J,sBAAsB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,kBAAkB,EAAE;IAC9K,6BAA6B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACjJ,sBAAsB,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,SAAS,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,OAAO,EAAC,aAAa,EAAC,CAAC,EAAE;IACpH,iBAAiB,EAAE,EAAE,IAAI,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxE,8BAA8B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,oBAAoB,EAAC,eAAe,EAAC,oBAAoB,EAAC,CAAC,EAAC,MAAM,EAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,YAAY,EAAC,eAAe,EAAC,YAAY,EAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,YAAY,CAAC,EAAC,CAAC,EAAE;IAC1S,0BAA0B,EAAE,EAAE,IAAI,EAAC,YAAY,CAAC,EAAC,KAAK,EAAC,oBAAoB,EAAC,eAAe,EAAC,oBAAoB,EAAC,CAAC,EAAC,MAAM,EAAC,0BAA0B,EAAE;CACvJ,CAAC,CAAC;AAEH,SAAS,GAAG,CAA2C,IAAoC,EAAE,IAAY,EAAE,aAA4B;IACrI,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAC,OAAO,CAAC,IAAI,EAAE,YAAY,EAAC,OAAO,CAAC,MAAM,EAAE,CAA4B,CAAC;AAC9K,CAAC;AAED,SAAS,OAAO,CAA2C,IAAY,EAAE,aAA4B;IACnG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAO,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAe,EAAE,CAA4B,CAAC;AAC7H,CAAC;AAkDD,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,GAAG,CAA6B,OAAO,EAAE,qBAAqB,EAAE,SAAS,CAAC;QAC9E,cAAc,EAAE,GAAG,CAAgF,SAAS,EAAE,iCAAiC,EAAE,SAAS,CAAC;QAC3J,mBAAmB,EAAE,GAAG,CAAyE,SAAS,EAAE,sCAAsC,EAAE,aAAa,CAAC;QAClK,oBAAoB,EAAE,GAAG,CAAkI,SAAS,EAAE,uCAAuC,EAAE,aAAa,CAAC;KAC9N,CAAC;IACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,cAAc,EAAE,GAAG,CAA0E,OAAO,EAAE,6BAA6B,EAAE,QAAQ,CAAC;QAC9I,aAAa,EAAE,GAAG,CAAmE,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,CAAC;QACtI,qBAAqB,EAAE,GAAG,CAA2I,QAAQ,EAAE,oCAAoC,EAAE,QAAQ,CAAC;QAC9N,cAAc,EAAE,GAAG,CAAwD,QAAQ,EAAE,6BAA6B,EAAE,QAAQ,CAAC;QAC7H,MAAM,EAAE,GAAG,CAAsE,SAAS,EAAE,qBAAqB,EAAE,SAAS,CAAC;QAC7H,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAO,CAAiC,0BAA0B,EAAE,cAAc,CAAC;YACzF,SAAS,EAAE,GAAG,CAAgU,SAAS,EAAE,+BAA+B,EAAE,cAAc,CAAC;SAC1Y,CAAC;QACF,eAAe,EAAE,GAAG,CAAiE,OAAO,EAAE,8BAA8B,EAAE,aAAa,CAAC;KAC7I,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,OAAO,CAA8B,sBAAsB,EAAE,SAAS,CAAC;QAC7E,MAAM,EAAE,GAAG,CAAuE,SAAS,EAAE,wBAAwB,EAAE,SAAS,CAAC;QACjI,WAAW,EAAE,GAAG,CAA6F,OAAO,EAAE,6BAA6B,EAAE,QAAQ,CAAC;QAC9J,aAAa,EAAE,GAAG,CAAqF,SAAS,EAAE,+BAA+B,EAAE,aAAa,CAAC;QACjK,cAAc,EAAE,GAAG,CAAoD,SAAS,EAAE,gCAAgC,EAAE,aAAa,CAAC;QAClI,MAAM,EAAE,GAAG,CAA6B,SAAS,EAAE,wBAAwB,EAAE,aAAa,CAAC;QAC3F,YAAY,EAAE,GAAG,CAAsE,SAAS,EAAE,8BAA8B,EAAE,cAAc,CAAC;QACjJ,YAAY,EAAE,GAAG,CAA8E,SAAS,EAAE,8BAA8B,EAAE,cAAc,CAAC;KAC1J,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,GAAG,CAAoD,OAAO,EAAE,4BAA4B,EAAE,QAAQ,CAAC;QAC/G,IAAI,EAAE,OAAO,CAAyC,0BAA0B,EAAC,aAAa,CAAC;QAC/F,MAAM,EAAE,GAAG,CAA0J,SAAS,EAAE,4BAA4B,EAAE,aAAa,CAAC;QAC5N,MAAM,EAAE,GAAG,CAAgJ,SAAS,EAAC,4BAA4B,EAAC,aAAa,CAAC;QAChN,MAAM,EAAE,GAAG,CAA8D,SAAS,EAAE,4BAA4B,EAAE,SAAS,CAAC;QAC5H,MAAM,EAAE,GAAG,CAA6D,SAAS,EAAE,4BAA4B,EAAE,aAAa,CAAC;KAChI,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,GAAG,CAAiF,SAAS,EAAE,yBAAyB,EAAE,cAAc,CAAC;QAChJ,KAAK,EAAE,GAAG,CAAoD,SAAS,EAAE,yBAAyB,EAAE,SAAS,CAAC;QAC9G,MAAM,EAAE,GAAG,CAA8C,SAAS,EAAE,0BAA0B,EAAE,cAAc,CAAC;KAChH,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;YACjD,IAAI,EAAE,OAAO,CAAiC,iCAAiC,EAAE,cAAc,CAAC;YAChG,MAAM,EAAE,GAAG,CAA6E,SAAS,EAAE,mCAAmC,EAAE,cAAc,CAAC;YACvJ,MAAM,EAAE,GAAG,CAAiD,SAAS,EAAE,mCAAmC,EAAE,cAAc,CAAC;SAC5H,CAAC,EAAE,CAAC;IACL,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,OAAO,CAAqC,0BAA0B,EAAE,SAAS,CAAC;QAC1F,aAAa,EAAE,GAAG,CAAuG,SAAS,EAAC,iCAAiC,EAAC,WAAW,CAAC;QACjL,UAAU,EAAE,GAAG,CAAmD,SAAS,EAAC,8BAA8B,EAAC,WAAW,CAAC;QACvH,KAAK,EAAE,GAAG,CAAyD,SAAS,EAAC,yBAAyB,EAAC,WAAW,CAAC;QACnH,IAAI,EAAE,GAAG,CAAkD,SAAS,EAAC,wBAAwB,EAAC,SAAS,CAAC;KACzG,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE,OAAO,CAAyB,+BAA+B,EAAE,cAAc,CAAC;QAC7F,WAAW,EAAE,GAAG,CAAqE,SAAS,EAAE,+BAA+B,EAAE,cAAc,CAAC;KACjJ,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,gBAAgB,EAAE,OAAO,CAA+B,gCAAgC,EAAE,cAAc,CAAC;QACzG,WAAW,EAAE,GAAG,CAAqE,SAAS,EAAE,2BAA2B,EAAE,cAAc,CAAC;QAC5I,oBAAoB,EAAE,GAAG,CAAqE,SAAS,EAAE,oCAAoC,EAAE,cAAc,CAAC;QAC9J,eAAe,EAAE,GAAG,CAAqE,SAAS,EAAE,+BAA+B,EAAE,cAAc,CAAC;KACrJ,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,OAAO,CAAqC,6BAA6B,EAAE,cAAc,CAAC;QACvG,YAAY,EAAE,OAAO,CAAsC,8BAA8B,EAAE,cAAc,CAAC;QAC1G,UAAU,EAAE,OAAO,CAAmC,4BAA4B,EAAE,cAAc,CAAC;QACnG,UAAU,EAAE,GAAG,CAAyC,OAAO,EAAC,4BAA4B,EAAC,cAAc,CAAC;QAC5G,QAAQ,EAAE,GAAG,CAAkD,OAAO,EAAC,0BAA0B,EAAC,cAAc,CAAC;QACjH,SAAS,EAAE,GAAG,CAA+C,OAAO,EAAC,2BAA2B,EAAC,cAAc,CAAC;QAChH,aAAa,EAAE,GAAG,CAA4E,SAAS,EAAC,+BAA+B,EAAC,cAAc,CAAC;QACvJ,SAAS,EAAE,GAAG,CAA4F,SAAS,EAAE,2BAA2B,EAAE,SAAS,CAAC;QAC5J,WAAW,EAAE,GAAG,CAAoG,SAAS,EAAE,6BAA6B,EAAE,cAAc,CAAC;QAC7K,UAAU,EAAE,GAAG,CAA8C,SAAS,EAAE,4BAA4B,EAAE,SAAS,CAAC;QAChH,mBAAmB,EAAE,GAAG,CAA6F,SAAS,EAAE,qCAAqC,EAAE,cAAc,CAAC;KACvL,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAuH,SAAS,EAAE,sBAAsB,EAAE,cAAc,CAAC;QACpL,aAAa,EAAE,GAAG,CAAuE,SAAS,EAAE,6BAA6B,EAAE,cAAc,CAAC;QAClJ,MAAM,EAAE,GAAG,CAAqD,SAAS,EAAE,sBAAsB,EAAE,cAAc,CAAC;KACnH,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAsB,iBAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;QAC9F,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,oBAAoB,EAAE,GAAG,CAA6K,OAAO,EAAC,8BAA8B,EAAC,QAAQ,CAAC;YACtP,gBAAgB,EAAE,GAAG,CAAmF,SAAS,EAAC,0BAA0B,EAAC,SAAS,CAAC;SACxJ,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}