hacklab 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +33 -25
  2. package/dist/cli.js +1 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/config.d.ts.map +1 -1
  5. package/dist/commands/config.js +18 -19
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/scan.d.ts.map +1 -1
  8. package/dist/commands/scan.js +5 -2
  9. package/dist/commands/scan.js.map +1 -1
  10. package/dist/commands/setup.d.ts.map +1 -1
  11. package/dist/commands/setup.js +32 -26
  12. package/dist/commands/setup.js.map +1 -1
  13. package/dist/commands/sync.d.ts.map +1 -1
  14. package/dist/commands/sync.js +32 -17
  15. package/dist/commands/sync.js.map +1 -1
  16. package/dist/config.d.ts +8 -2
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/prompt-consent.d.ts +37 -23
  21. package/dist/prompt-consent.d.ts.map +1 -1
  22. package/dist/prompt-consent.js +75 -58
  23. package/dist/prompt-consent.js.map +1 -1
  24. package/dist/prompt-stats.d.ts +116 -7
  25. package/dist/prompt-stats.d.ts.map +1 -1
  26. package/dist/prompt-stats.js +205 -25
  27. package/dist/prompt-stats.js.map +1 -1
  28. package/dist/scanners/incremental.d.ts +114 -17
  29. package/dist/scanners/incremental.d.ts.map +1 -1
  30. package/dist/scanners/incremental.js +235 -74
  31. package/dist/scanners/incremental.js.map +1 -1
  32. package/dist/scanners/index.d.ts +7 -3
  33. package/dist/scanners/index.d.ts.map +1 -1
  34. package/dist/scanners/index.js +8 -40
  35. package/dist/scanners/index.js.map +1 -1
  36. package/dist/scanners/util.d.ts +32 -15
  37. package/dist/scanners/util.d.ts.map +1 -1
  38. package/dist/scanners/util.js +10 -34
  39. package/dist/scanners/util.js.map +1 -1
  40. package/dist/sync.d.ts +3 -3
  41. package/dist/sync.d.ts.map +1 -1
  42. package/dist/sync.js +27 -14
  43. package/dist/sync.js.map +1 -1
  44. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { mkdir, open, readFile, stat, writeFile } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
+ import { addPromptToActivity, emptyPromptActivity, parsePromptLine, } from '../prompt-stats.js';
3
4
  import { getSessionPath } from '../session.js';
4
- import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, grokLogFiles, hermesDbPath, hourlyCutoff, openclawFiles, opencodeDbPath, parseClaudeCodeLine, parseGrokLine, parseOpenclawLine, scanHermes, scanOpenCode, toDateStr, } from './index.js';
5
+ import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, dateDaysAgo, grokLogFiles, hermesDbPath, openclawFiles, opencodeDbPath, PROMPT_ACTIVITY_DATE_CAP, PROMPT_ACTIVITY_SESSION_CAP, parseClaudeCodeLine, parseGrokLine, parseOpenclawLine, scanHermes, scanOpenCode, toDateStr, } from './index.js';
5
6
  // The incremental half of the scanners: what `hacklab sync --tick` runs every
6
7
  // minute instead of the full stateless re-scan the daily job does.
7
8
  //
@@ -16,19 +17,27 @@ import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, grokLog
16
17
  // following disappeared) drops that harness back to a full re-read, because we
17
18
  // don't track which file contributed which tokens. And the daily `sync --quiet`
18
19
  // rebuilds the whole state from its full scan, so drift can never last a day.
19
- export const SCAN_STATE_VERSION = 1;
20
+ export const SCAN_STATE_VERSION = 2;
21
+ /** How long a session is kept in the state after its last prompt. */
22
+ export const PROMPT_SESSION_RETENTION_DAYS = 45;
23
+ /** How long a per-day prompt tally is kept. Matches the wire's date cap. */
24
+ export const PROMPT_DAILY_RETENTION_DAYS = PROMPT_ACTIVITY_DATE_CAP;
20
25
  /** Lives next to the session file, so it honors HACKLAB_SESSION_PATH. */
21
26
  export function scanStatePath() {
22
27
  return join(dirname(getSessionPath()), 'scan-state.json');
23
28
  }
24
29
  export function emptyHarness() {
25
- return { files: {}, daily: {}, hourly: {}, models: {} };
30
+ return { files: {}, daily: {}, models: {} };
31
+ }
32
+ export function emptyPromptState() {
33
+ return { ...emptyPromptActivity(), dirtySessions: [], dirtyDates: [] };
26
34
  }
27
35
  export function emptyState() {
28
36
  return {
29
37
  version: SCAN_STATE_VERSION,
30
38
  harnesses: {},
31
39
  dirty: [],
40
+ prompts: emptyPromptState(),
32
41
  uploaded: { toolTotals: {}, modelTotals: {} },
33
42
  };
34
43
  }
@@ -53,6 +62,7 @@ export async function loadScanState() {
53
62
  if (!parsed.harnesses || typeof parsed.harnesses !== 'object')
54
63
  return null;
55
64
  parsed.dirty ??= [];
65
+ parsed.prompts ??= emptyPromptState();
56
66
  parsed.uploaded ??= { toolTotals: {}, modelTotals: {} };
57
67
  return parsed;
58
68
  }
@@ -60,16 +70,34 @@ export async function loadScanState() {
60
70
  return null;
61
71
  }
62
72
  }
63
- /** Persist the state, pruning hourly buckets that fell out of the 90-day window
64
- * the server keeps (they'd otherwise accumulate forever). Best-effort. */
65
- export async function saveScanState(state) {
66
- const cutoff = hourlyCutoff();
67
- for (const h of Object.values(state.harnesses)) {
68
- for (const key of Object.keys(h.hourly)) {
69
- if ((key.split('|')[0] ?? '') < cutoff)
70
- delete h.hourly[key];
73
+ /**
74
+ * Drop prompt rows that have aged out, dirty or not.
75
+ *
76
+ * Dropping a dirty row means it is never uploaded, which is the right trade at
77
+ * this age: a session or a day that has sat unsent for its whole retention
78
+ * window is not coming back, and the alternative is a dirty list that grows
79
+ * forever on a machine that never consented (the tick still counts prompts at
80
+ * the `none` tier — it just never sends them).
81
+ */
82
+ function prunePrompts(prompts) {
83
+ const sessionCutoff = dateDaysAgo(PROMPT_SESSION_RETENTION_DAYS);
84
+ for (const [id, session] of Object.entries(prompts.sessions)) {
85
+ if (session.lastActiveAt.slice(0, 10) < sessionCutoff) {
86
+ delete prompts.sessions[id];
71
87
  }
72
88
  }
89
+ const dateCutoff = dateDaysAgo(PROMPT_DAILY_RETENTION_DAYS);
90
+ for (const date of Object.keys(prompts.daily)) {
91
+ if (date < dateCutoff)
92
+ delete prompts.daily[date];
93
+ }
94
+ prompts.dirtySessions = prompts.dirtySessions.filter((id) => prompts.sessions[id] !== undefined);
95
+ prompts.dirtyDates = prompts.dirtyDates.filter((date) => prompts.daily[date] !== undefined);
96
+ }
97
+ /** Persist the state, pruning prompt rows that aged out of their retention
98
+ * window (they'd otherwise accumulate forever). Best-effort. */
99
+ export async function saveScanState(state) {
100
+ prunePrompts(state.prompts);
73
101
  try {
74
102
  await mkdir(dirname(scanStatePath()), { recursive: true });
75
103
  await writeFile(scanStatePath(), `${JSON.stringify(state)}\n`, 'utf8');
@@ -93,20 +121,6 @@ function addDaily(h, date, model, tokens, messages, dirty) {
93
121
  h.models[model] = (h.models[model] ?? 0) + tokens;
94
122
  dirty.add(date);
95
123
  }
96
- function addHourly(h, date, hour, model, tokens, messages, dirty) {
97
- if (date < hourlyCutoff())
98
- return;
99
- const key = `${date}|${hour}|${model}`;
100
- const existing = h.hourly[key];
101
- if (existing) {
102
- existing.tokens += tokens;
103
- existing.messages += messages;
104
- }
105
- else {
106
- h.hourly[key] = { tokens, messages };
107
- }
108
- dirty.add(date);
109
- }
110
124
  /** A full scanner's result as the maps the state stores. */
111
125
  export function aggregatesOfResult(result) {
112
126
  const daily = {};
@@ -116,21 +130,10 @@ export function aggregatesOfResult(result) {
116
130
  messages: entry.messages ?? 0,
117
131
  };
118
132
  }
119
- const hourly = {};
120
- for (const entry of result.hourly) {
121
- hourly[`${entry.date}|${entry.hour}|${entry.model ?? ''}`] = {
122
- tokens: entry.tokens,
123
- messages: entry.messages ?? 0,
124
- };
125
- }
126
- return { daily, hourly, models: { ...result.models } };
133
+ return { daily, models: { ...result.models } };
127
134
  }
128
135
  function aggregatesOf(h) {
129
- return {
130
- daily: structuredClone(h.daily),
131
- hourly: structuredClone(h.hourly),
132
- models: { ...h.models },
133
- };
136
+ return { daily: structuredClone(h.daily), models: { ...h.models } };
134
137
  }
135
138
  /**
136
139
  * Mark every date whose rows moved between two versions of a harness's
@@ -150,15 +153,59 @@ function markMovedDates(before, after, dirty) {
150
153
  }
151
154
  };
152
155
  compare(before.daily, after.daily);
153
- compare(before.hourly, after.hourly);
154
156
  }
155
157
  /** Swap in freshly scanned aggregates, dirtying the dates that moved. */
156
158
  function replaceAggregates(h, next, dirty) {
157
- markMovedDates({ daily: h.daily, hourly: h.hourly, models: h.models }, next, dirty);
159
+ markMovedDates({ daily: h.daily, models: h.models }, next, dirty);
158
160
  h.daily = next.daily;
159
- h.hourly = next.hourly;
160
161
  h.models = next.models;
161
162
  }
163
+ /**
164
+ * Swap in a freshly scanned prompt aggregate, dirtying every session and date
165
+ * whose numbers moved. Same idea as `markMovedDates`: a daily full scan mostly
166
+ * reproduces what the ticks already sent, and only the difference is worth
167
+ * putting back on the wire.
168
+ */
169
+ function replacePromptActivity(prompts, next) {
170
+ const dirtySessions = new Set(prompts.dirtySessions);
171
+ for (const id of new Set([
172
+ ...Object.keys(prompts.sessions),
173
+ ...Object.keys(next.sessions),
174
+ ])) {
175
+ const before = prompts.sessions[id];
176
+ const after = next.sessions[id];
177
+ if (!after)
178
+ continue;
179
+ if (!before ||
180
+ before.promptCount !== after.promptCount ||
181
+ before.startedAt !== after.startedAt ||
182
+ before.lastActiveAt !== after.lastActiveAt) {
183
+ dirtySessions.add(id);
184
+ }
185
+ }
186
+ const dirtyDates = new Set(prompts.dirtyDates);
187
+ for (const date of new Set([
188
+ ...Object.keys(prompts.daily),
189
+ ...Object.keys(next.daily),
190
+ ])) {
191
+ const before = prompts.daily[date];
192
+ const after = next.daily[date];
193
+ if (!after)
194
+ continue;
195
+ if (!before ||
196
+ before.prompts !== after.prompts ||
197
+ before.words !== after.words) {
198
+ dirtyDates.add(date);
199
+ }
200
+ }
201
+ prompts.sessions = next.sessions;
202
+ prompts.daily = next.daily;
203
+ // A session or date the full scan can no longer see has nothing left to say.
204
+ prompts.dirtySessions = [...dirtySessions].filter((id) => next.sessions[id] !== undefined);
205
+ prompts.dirtyDates = [...dirtyDates]
206
+ .filter((date) => next.daily[date] !== undefined)
207
+ .sort();
208
+ }
162
209
  // ---- reading the tail ------------------------------------------------------
163
210
  async function statOrNull(path) {
164
211
  try {
@@ -202,6 +249,7 @@ export function defaultSources() {
202
249
  tool: 'claude_code',
203
250
  files: claudeCodeFiles,
204
251
  parse: parseClaudeCodeLine,
252
+ parsePrompt: parsePromptLine,
205
253
  },
206
254
  { tool: 'openclaw', files: openclawFiles, parse: parseOpenclawLine },
207
255
  { tool: 'grok', files: grokLogFiles, parse: parseGrokLine },
@@ -241,7 +289,6 @@ function resetHarness(h) {
241
289
  if (h.codexTotals)
242
290
  h.codexTotals = {};
243
291
  h.daily = {};
244
- h.hourly = {};
245
292
  h.models = {};
246
293
  }
247
294
  async function tickJsonl(state, src, dirty) {
@@ -255,6 +302,14 @@ async function tickJsonl(state, src, dirty) {
255
302
  const target = invalidated ? new Set() : dirty;
256
303
  if (invalidated)
257
304
  resetHarness(h);
305
+ // Same story for prompts: a re-read has to rebuild the aggregate from
306
+ // scratch, or every session in it would be counted twice.
307
+ const rebuildPrompts = invalidated && src.parsePrompt !== undefined;
308
+ const prompts = rebuildPrompts
309
+ ? emptyPromptActivity()
310
+ : state.prompts;
311
+ const dirtySessions = new Set(state.prompts.dirtySessions);
312
+ const dirtyDates = new Set(state.prompts.dirtyDates);
258
313
  let changed = invalidated;
259
314
  for (const file of files) {
260
315
  const prev = h.files[file.path];
@@ -265,6 +320,12 @@ async function tickJsonl(state, src, dirty) {
265
320
  const { text, offset } = await readCompleteLines(file.path, from, file.size).catch(() => ({ text: '', offset: from }));
266
321
  let fallbackDate = null;
267
322
  for (const line of text.split('\n')) {
323
+ const prompt = src.parsePrompt?.(line);
324
+ if (prompt) {
325
+ const touched = addPromptToActivity(prompts, prompt);
326
+ dirtySessions.add(touched.sessionId);
327
+ dirtyDates.add(touched.date);
328
+ }
268
329
  const usage = src.parse(line);
269
330
  if (!usage)
270
331
  continue;
@@ -274,15 +335,20 @@ async function tickJsonl(state, src, dirty) {
274
335
  date = fallbackDate;
275
336
  }
276
337
  addDaily(h, date, usage.model, usage.tokens, 1, target);
277
- if (usage.hour !== null) {
278
- addHourly(h, date, usage.hour, usage.model, usage.tokens, 1, target);
279
- }
280
338
  }
281
339
  h.files[file.path] = { size: file.size, mtimeMs: file.mtimeMs, offset };
282
340
  changed = true;
283
341
  }
284
342
  if (before)
285
343
  markMovedDates(before, aggregatesOf(h), dirty);
344
+ if (rebuildPrompts) {
345
+ // The rebuilt aggregate replaces the old one, dirtying only what moved.
346
+ replacePromptActivity(state.prompts, prompts);
347
+ }
348
+ else if (src.parsePrompt) {
349
+ state.prompts.dirtySessions = [...dirtySessions];
350
+ state.prompts.dirtyDates = [...dirtyDates].sort();
351
+ }
286
352
  return changed;
287
353
  }
288
354
  async function tickCodex(state, src, dirty) {
@@ -347,10 +413,15 @@ async function tickSqlite(state, src, dirty) {
347
413
  }
348
414
  /**
349
415
  * One incremental pass over every harness. `prev` is the saved state, or null
350
- * for a cold start — in which case this reads everything and marks nothing
351
- * dirty: those tokens are already on the server (the daily job put them there),
352
- * and re-uploading every date would only invite the reconcile to prune rows
353
- * this scan can't see (Cursor's, above all).
416
+ * for a cold start — in which case this reads everything and marks no *token*
417
+ * date dirty: those tokens are already on the server (the daily job put them
418
+ * there), and re-uploading every date would only invite the reconcile to prune
419
+ * rows this scan can't see (Cursor's, above all).
420
+ *
421
+ * Prompt rows go the other way on a cold start: everything found is marked
422
+ * dirty. They're idempotent GREATEST upserts, so a resend costs nothing, and a
423
+ * cold start (fresh install, or a state file this version can't read) is
424
+ * exactly the case where we have no evidence any of it ever reached the server.
354
425
  */
355
426
  export async function runTick(prev, sources = defaultSources()) {
356
427
  const cold = prev === null;
@@ -367,7 +438,14 @@ export async function runTick(prev, sources = defaultSources()) {
367
438
  if (await tickSqlite(state, src, dirty))
368
439
  changed = true;
369
440
  }
370
- state.dirty = cold ? [] : [...dirty].sort();
441
+ if (cold) {
442
+ state.dirty = [];
443
+ state.prompts.dirtySessions = Object.keys(state.prompts.sessions);
444
+ state.prompts.dirtyDates = Object.keys(state.prompts.daily).sort();
445
+ }
446
+ else {
447
+ state.dirty = [...dirty].sort();
448
+ }
371
449
  return { state, changed };
372
450
  }
373
451
  // ---- payload ---------------------------------------------------------------
@@ -393,10 +471,52 @@ export function sameTotals(a, b) {
393
471
  return false;
394
472
  return true;
395
473
  }
474
+ /**
475
+ * Is there prompt activity waiting to go out?
476
+ *
477
+ * A dirty id whose row is gone (pruned between the mark and the send) doesn't
478
+ * count: it would have the tick POST an empty block every minute forever, since
479
+ * there'd be nothing for `markUploaded` to clear.
480
+ */
481
+ export function hasPromptActivity(state) {
482
+ const { prompts } = state;
483
+ return (prompts.dirtySessions.some((id) => prompts.sessions[id] !== undefined) ||
484
+ prompts.dirtyDates.some((date) => prompts.daily[date] !== undefined));
485
+ }
486
+ /**
487
+ * Stake a claim on the outstanding prompt rows: the ones this payload carries
488
+ * are recorded in `prompts.sent`, and `markUploaded` clears exactly those. Rows
489
+ * a cap held back stay dirty and go out next tick.
490
+ *
491
+ * Most-recently-active first, so a machine with a long backlog syncs the work
492
+ * the user actually cares about before the archaeology.
493
+ */
494
+ function takePromptActivity(state) {
495
+ const { prompts } = state;
496
+ const sessions = prompts.dirtySessions
497
+ .flatMap((sessionId) => {
498
+ const session = prompts.sessions[sessionId];
499
+ return session ? [{ sessionId, ...session }] : [];
500
+ })
501
+ .sort((a, b) => b.lastActiveAt.localeCompare(a.lastActiveAt))
502
+ .slice(0, PROMPT_ACTIVITY_SESSION_CAP);
503
+ const dates = [...prompts.dirtyDates]
504
+ .sort((a, b) => b.localeCompare(a))
505
+ .slice(0, PROMPT_ACTIVITY_DATE_CAP);
506
+ const dailyPrompts = dates.flatMap((date) => {
507
+ const day = prompts.daily[date];
508
+ return day ? [{ date, ...day }] : [];
509
+ });
510
+ prompts.sent = { sessions: sessions.map((s) => s.sessionId), dates };
511
+ if (sessions.length === 0 && dailyPrompts.length === 0)
512
+ return undefined;
513
+ return { sessions, dailyPrompts };
514
+ }
396
515
  /**
397
516
  * What a tick uploads: cumulative tool/model totals (the server diffs those
398
- * against its own per-machine snapshot) plus the daily and hourly rows for the
399
- * dirty dates only.
517
+ * against its own per-machine snapshot) plus the daily rows for the dirty dates
518
+ * only, and — under the `stats` or `full` tier — the outstanding prompt
519
+ * activity.
400
520
  *
401
521
  * Every harness's rows go out for a dirty date, including Cursor's — which the
402
522
  * tick never scans, and carries over from the last full scan instead. The
@@ -404,10 +524,9 @@ export function sameTotals(a, b) {
404
524
  * payload didn't mention, so a date has to be reported complete or the harnesses
405
525
  * left out of it lose that day.
406
526
  */
407
- export function tickPayload(state) {
527
+ export function tickPayload(state, opts = {}) {
408
528
  const dirty = new Set(state.dirty);
409
529
  const dailyTotals = [];
410
- const hourlyTotals = [];
411
530
  for (const [tool, h] of Object.entries(state.harnesses)) {
412
531
  for (const [key, value] of Object.entries(h.daily)) {
413
532
  const [date = '', model = ''] = key.split('|');
@@ -421,34 +540,36 @@ export function tickPayload(state) {
421
540
  model: model || undefined,
422
541
  });
423
542
  }
424
- for (const [key, value] of Object.entries(h.hourly)) {
425
- const [date = '', hour = '0', model = ''] = key.split('|');
426
- if (!dirty.has(date) || value.tokens <= 0)
427
- continue;
428
- hourlyTotals.push({
429
- date,
430
- hour: Number(hour),
431
- tool,
432
- model: model || undefined,
433
- tokens: value.tokens,
434
- messages: value.messages,
435
- });
436
- }
437
543
  }
544
+ // Claim the prompt rows this payload carries, or drop a claim a previous
545
+ // payload left behind: a stale one would have `markUploaded` clear rows this
546
+ // upload never mentioned (a tier turned down to `none` between two ticks).
547
+ state.prompts.sent = undefined;
548
+ const promptActivity = opts.promptActivity
549
+ ? takePromptActivity(state)
550
+ : undefined;
438
551
  const { toolTotals, modelTotals } = cumulativeTotals(state);
439
552
  return {
440
553
  toolTotals,
441
554
  dailyTotals,
442
- hourlyTotals,
443
555
  modelTotals,
444
556
  grandTotal: Object.values(toolTotals).reduce((a, b) => a + b, 0),
445
557
  cursorStats: null,
446
558
  cursorScanStatus: { source: 'none' },
559
+ ...(promptActivity ? { promptActivity } : {}),
447
560
  };
448
561
  }
449
- /** Called on a 200: the dirty dates are on the server now. */
562
+ /** Called on a 200: whatever that payload carried is on the server now. */
450
563
  export function markUploaded(state) {
451
564
  state.dirty = [];
565
+ const sent = state.prompts.sent;
566
+ if (sent) {
567
+ const sessions = new Set(sent.sessions);
568
+ const dates = new Set(sent.dates);
569
+ state.prompts.dirtySessions = state.prompts.dirtySessions.filter((id) => !sessions.has(id));
570
+ state.prompts.dirtyDates = state.prompts.dirtyDates.filter((date) => !dates.has(date));
571
+ state.prompts.sent = undefined;
572
+ }
452
573
  state.uploaded = cumulativeTotals(state);
453
574
  state.lastError = undefined;
454
575
  state.nextAllowedAt = undefined;
@@ -471,11 +592,36 @@ async function snapshotFileCursors(h, paths) {
471
592
  * the design. Whatever the tick's tail-follow got wrong (a rotated log, a
472
593
  * mid-file model switch, a Codex date guessed from an mtime) is corrected here,
473
594
  * so incremental drift can never outlive a day. Best-effort: a state we failed
474
- * to rebuild costs a tick, never the sync that just succeeded.
595
+ * to rebuild costs a tick, never the sync that called us.
596
+ *
597
+ * Staged rather than persisted outright, because the full-scan paths carry
598
+ * prompt activity too — a machine with no daemon has no tick to drain it. The
599
+ * rebuild diffs the scan's aggregate against what was already sent, claims the
600
+ * difference for this upload, and only `commit` (on a 200) clears it. A failed
601
+ * POST therefore leaves every row dirty for the next run, which the server's
602
+ * GREATEST upserts make free to resend.
603
+ *
604
+ * `prompts` says whether this caller has any authority over the prompt state —
605
+ * see `StagedPrompts`. Only a caller that actually resolved the consent tier
606
+ * gets to rewrite it, and only such a caller claims prompt rows for the upload.
475
607
  */
476
- export async function rebuildScanState(results, sources = defaultSources()) {
608
+ export async function stageFullScan(results, prompts = 'untouched', sources = defaultSources()) {
609
+ const nothingStaged = {
610
+ commit: async () => {
611
+ // Nothing was staged, so there is nothing to record as delivered.
612
+ },
613
+ };
477
614
  try {
615
+ const previous = await loadScanState();
478
616
  const state = emptyState();
617
+ state.prompts = previous?.prompts ?? emptyPromptState();
618
+ // Nothing is claimed as in-flight any more: whatever the last upload sent
619
+ // was either acked (and cleared) or lost. A caller with authority re-derives
620
+ // the claim below; one without leaves the rows dirty for the tick.
621
+ state.prompts.sent = undefined;
622
+ if (prompts !== 'untouched') {
623
+ replacePromptActivity(state.prompts, prompts.scanned ?? emptyPromptActivity());
624
+ }
479
625
  for (const result of results) {
480
626
  replaceAggregates(harness(state, result.tool), aggregatesOfResult(result), new Set());
481
627
  }
@@ -509,12 +655,27 @@ export async function rebuildScanState(results, sources = defaultSources()) {
509
655
  h.dbMtimeMs = (await statOrNull(path))?.mtimeMs ?? 0;
510
656
  h.walMtimeMs = (await statOrNull(`${path}-wal`))?.mtimeMs ?? 0;
511
657
  }
512
- // The full payload just went out, so nothing is outstanding.
513
- state.uploaded = cumulativeTotals(state);
514
- await saveScanState(state);
658
+ // Only a caller that knows the tier may put prompt rows on the wire. For
659
+ // anyone else `sent` stays empty, so `commit` clears no prompt rows either.
660
+ const claimed = prompts === 'untouched' ? undefined : takePromptActivity(state);
661
+ return {
662
+ ...(claimed ? { promptActivity: claimed } : {}),
663
+ commit: async () => {
664
+ try {
665
+ // The full token payload just went out, and the server took the
666
+ // prompt rows this upload claimed — markUploaded records both.
667
+ markUploaded(state);
668
+ await saveScanState(state);
669
+ }
670
+ catch {
671
+ // never fail the sync that called us
672
+ }
673
+ },
674
+ };
515
675
  }
516
676
  catch {
517
677
  // never fail the sync that called us
678
+ return nothingStaged;
518
679
  }
519
680
  }
520
681
  //# sourceMappingURL=incremental.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/scanners/incremental.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EAEf,YAAY,EAEZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAGZ,SAAS,GAEV,MAAM,YAAY,CAAA;AAEnB,8EAA8E;AAC9E,mEAAmE;AACnE,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,iFAAiF;AACjF,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AA8CnC,yEAAyE;AACzE,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,kBAAkB;QAC3B,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAgB,EAAE,IAAY;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IAC7B,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAC3B,CAAA;QACd,IAAI,MAAM,EAAE,OAAO,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1E,MAAM,CAAC,KAAK,KAAK,EAAE,CAAA;QACnB,MAAM,CAAC,QAAQ,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;0EAC0E;AAC1E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAgB;IAClD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;gBAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,QAAQ,CACf,CAAe,EACf,IAAY,EACZ,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,KAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC;IACD,IAAI,KAAK;QAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;IAC5D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,SAAS,CAChB,CAAe,EACf,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,KAAkB;IAElB,IAAI,IAAI,GAAG,YAAY,EAAE;QAAE,OAAM;IACjC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACtC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAQD,4DAA4D;AAC5D,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,MAAM,KAAK,GAAmC,EAAE,CAAA;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;SAC9B,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG;YAC3D,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;SAC9B,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,OAAO;QACL,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;QACjC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;KACxB,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,MAAkB,EAClB,KAAiB,EACjB,KAAkB;IAElB,MAAM,OAAO,GAAG,CACd,CAAiC,EACjC,CAAiC,EACjC,EAAE;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YAChB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YAChB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AACtC,CAAC;AAED,yEAAyE;AACzE,SAAS,iBAAiB,CACxB,CAAe,EACf,IAAgB,EAChB,KAAkB;IAElB,cAAc,CACZ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EACtD,IAAI,EACJ,KAAK,CACN,CAAA;IACD,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACpB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AACxB,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,IAAY,EACZ,EAAU;IAEV,IAAI,EAAE,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACxC,+DAA+D;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,IAAI,GAAG,WAAW,GAAG,CAAC;SAC/B,CAAA;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;AACH,CAAC;AA4BD,kFAAkF;AAClF,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,mBAAmB;aAC3B;YACD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACpE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;SAC5D;QACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACvD,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;YAC1D,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;SACjE;KACF,CAAA;AACH,CAAC;AAID,KAAK,UAAU,SAAS,CAAC,KAAe;IACtC,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,CAAe,EAAE,KAAiB;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;IACrC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC,CAAC,MAAM,GAAG,EAAE,CAAA;IACb,CAAC,CAAC,MAAM,GAAG,EAAE,CAAA;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAAgB,EAChB,GAAgB,EAChB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,8EAA8E;IAC9E,4EAA4E;IAC5E,sBAAsB;IACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,IAAI,WAAW;QAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAEhC,IAAI,OAAO,GAAG,WAAW,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrE,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,CACV,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3C,IAAI,YAAY,GAAkB,IAAI,CAAA;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,YAAY,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,GAAG,YAAY,CAAA;YACrB,CAAC;YACD,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YACvD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;QACvE,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,IAAI,MAAM;QAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAAgB,EAChB,GAAgB,EAChB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAA;IACpB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,CAAC,CAAC,CAAC,CAAA;QACf,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,GAAG,WAAW,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrE,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,CACV,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC7C,6EAA6E;QAC7E,yEAAyE;QACzE,qCAAqC;QACrC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAA;QAC9C,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACxB,wEAAwE;YACxE,4DAA4D;YAC5D,QAAQ,CACN,CAAC,EACD,IAAI,EACJ,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,MAAM,CACP,CAAA;QACH,CAAC;QACD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACxE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;QACvE,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,IAAI,MAAM;QAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CACvB,KAAgB,EAChB,GAAiB,EACjB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;IACzB,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,GAAG,EAAE,OAAO,IAAI,CAAC,CAAA;IACpC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAE1E,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA;IACvB,CAAC,CAAC,UAAU,GAAG,UAAU,CAAA;IACzB,OAAO,IAAI,CAAA;AACb,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAsB,EACtB,UAAuB,cAAc,EAAE;IAEvC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1B,MAAM,KAAK,GAAG,IAAI,IAAI,UAAU,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,OAAO,GAAG,IAAI,CAAA;IAElB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,MAAM,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAA;IAChE,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,+EAA+E;AAE/E,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAI/C,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAA;QAC/D,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;QACzD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,CAAyB,EACzB,CAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IACzE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,WAAW,GAAqB,EAAE,CAAA;IACxC,MAAM,YAAY,GAAkB,EAAE,CAAA;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAQ;YACnD,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI;gBACJ,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,IAAI,SAAS;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAQ;YACnD,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gBAClB,IAAI;gBACJ,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC3D,OAAO;QACL,UAAU;QACV,WAAW;QACX,YAAY;QACZ,WAAW;QACX,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;KACrC,CAAA;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;IAChB,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACxC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;IAC3B,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;AACjC,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,mBAAmB,CAAC,CAAe,EAAE,KAAe;IACjE,KAAK,MAAM,IAAI,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,6EAA6E;QAC7E,yEAAyE;QACzE,iDAAiD;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,IAAI;SAClB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAqB,EACrB,UAAuB,cAAc,EAAE;IAEvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,iBAAiB,CACf,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAC3B,kBAAkB,CAAC,MAAM,CAAC,EAC1B,IAAI,GAAG,EAAE,CACV,CAAA;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QACxE,CAAC;QAED,0EAA0E;QAC1E,6EAA6E;QAC7E,6BAA6B;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACrC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAA;QACtB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC9C,MAAM,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC5D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YACpD,IAAI,QAAQ,IAAI,CAAC;gBAAE,SAAQ;YAC3B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBACxB,QAAQ;gBACR,KAAK;gBACL,IAAI,EACF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACrE,CAAA;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;YACzB,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;YACpD,CAAC,CAAC,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;QAChE,CAAC;QAED,6DAA6D;QAC7D,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/scanners/incremental.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EAGnB,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EAEf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,2BAA2B,EAE3B,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAGZ,SAAS,GAEV,MAAM,YAAY,CAAA;AAEnB,8EAA8E;AAC9E,mEAAmE;AACnE,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,iFAAiF;AACjF,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAA;AAC/C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAA;AAoEnE,yEAAyE;AACzE,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,GAAG,mBAAmB,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,kBAAkB;QAC3B,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,gBAAgB,EAAE;QAC3B,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAgB,EAAE,IAAY;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IAC7B,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAC3B,CAAA;QACd,IAAI,MAAM,EAAE,OAAO,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1E,MAAM,CAAC,KAAK,KAAK,EAAE,CAAA;QACnB,MAAM,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAA;QACrC,MAAM,CAAC,QAAQ,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,OAAoB;IACxC,MAAM,aAAa,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAChE,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;YACtD,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,2BAA2B,CAAC,CAAA;IAC3D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,GAAG,UAAU;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAClD,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CAC3C,CAAA;IACD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAC5C,CAAA;AACH,CAAC;AAED;gEACgE;AAChE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAgB;IAClD,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,QAAQ,CACf,CAAe,EACf,IAAY,EACZ,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,KAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC;IACD,IAAI,KAAK;QAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;IAC5D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAOD,4DAA4D;AAC5D,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,MAAM,KAAK,GAAmC,EAAE,CAAA;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;SAC9B,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAA;AACrE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,MAAkB,EAClB,KAAiB,EACjB,KAAkB;IAElB,MAAM,OAAO,GAAG,CACd,CAAiC,EACjC,CAAiC,EACjC,EAAE;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YAChB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YAChB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,yEAAyE;AACzE,SAAS,iBAAiB,CACxB,CAAe,EACf,IAAgB,EAChB,KAAkB;IAElB,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACpB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,OAAoB,EACpB,IAA6B;IAE7B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACpD,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC;QACvB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B,CAAC,EAAE,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,IACE,CAAC,MAAM;YACP,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YACxC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACpC,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,EAC1C,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC;QACzB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KAC3B,CAAC,EAAE,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,IACE,CAAC,MAAM;YACP,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAChC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAC5B,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAChC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IAC1B,6EAA6E;IAC7E,OAAO,CAAC,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAC/C,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CACxC,CAAA;IACD,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC;SACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;SAChD,IAAI,EAAE,CAAA;AACX,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,IAAY,EACZ,EAAU;IAEV,IAAI,EAAE,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACxC,+DAA+D;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,IAAI,GAAG,WAAW,GAAG,CAAC;SAC/B,CAAA;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;AACH,CAAC;AAkCD,kFAAkF;AAClF,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,eAAe;aAC7B;YACD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACpE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;SAC5D;QACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACvD,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;YAC1D,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;SACjE;KACF,CAAA;AACH,CAAC;AAID,KAAK,UAAU,SAAS,CAAC,KAAe;IACtC,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,CAAe,EAAE,KAAiB;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;IACrC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC,CAAC,MAAM,GAAG,EAAE,CAAA;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAAgB,EAChB,GAAgB,EAChB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,8EAA8E;IAC9E,4EAA4E;IAC5E,sBAAsB;IACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,IAAI,WAAW;QAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAEhC,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,cAAc,GAAG,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAA;IACnE,MAAM,OAAO,GAA4B,cAAc;QACrD,CAAC,CAAC,mBAAmB,EAAE;QACvB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IACjB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEpD,IAAI,OAAO,GAAG,WAAW,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrE,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,CACV,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3C,IAAI,YAAY,GAAkB,IAAI,CAAA;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACpD,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBACpC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,YAAY,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,GAAG,YAAY,CAAA;YACrB,CAAC;YACD,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QACzD,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;QACvE,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,IAAI,MAAM;QAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAE1D,IAAI,cAAc,EAAE,CAAC;QACnB,wEAAwE;QACxE,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;SAAM,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;QAChD,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IACnD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAAgB,EAChB,GAAgB,EAChB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAA;IACpB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,CAAC,CAAC,CAAC,CAAA;QACf,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,GAAG,WAAW,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrE,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,CACV,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC7C,6EAA6E;QAC7E,yEAAyE;QACzE,qCAAqC;QACrC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAA;QAC9C,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACxB,wEAAwE;YACxE,4DAA4D;YAC5D,QAAQ,CACN,CAAC,EACD,IAAI,EACJ,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,MAAM,CACP,CAAA;QACH,CAAC;QACD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACxE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;QACvE,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,IAAI,MAAM;QAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CACvB,KAAgB,EAChB,GAAiB,EACjB,KAAkB;IAElB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;IACzB,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,GAAG,EAAE,OAAO,IAAI,CAAC,CAAA;IACpC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAE1E,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA;IACvB,CAAC,CAAC,UAAU,GAAG,UAAU,CAAA;IACzB,OAAO,IAAI,CAAA;AACb,CAAC;AAQD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAsB,EACtB,UAAuB,cAAc,EAAE;IAEvC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1B,MAAM,KAAK,GAAG,IAAI,IAAI,UAAU,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,OAAO,GAAG,IAAI,CAAA;IAElB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,MAAM,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACxD,CAAC;IACD,IAAI,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAA;IAChE,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAA;IACzD,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;QAChB,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjE,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IACpE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,+EAA+E;AAE/E,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAI/C,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAA;QAC/D,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;QACzD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,CAAyB,EACzB,CAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IACzE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,OAAO,CACL,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;QACtE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CACrE,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa;SACnC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;SAC5D,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAA;IACrC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAA;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACxE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CACzB,KAAgB,EAChB,OAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,WAAW,GAAqB,EAAE,CAAA;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAQ;YACnD,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI;gBACJ,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,IAAI,SAAS;aAC1B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;IAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;QACxC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC3D,OAAO;QACL,UAAU;QACV,WAAW;QACX,WAAW;QACX,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACpC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;IAEhB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA;IAC/B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAC9D,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAC1B,CAAA;QACD,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAC3B,CAAA;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACxC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;IAC3B,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;AACjC,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,mBAAmB,CAAC,CAAe,EAAE,KAAe;IACjE,KAAK,MAAM,IAAI,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,6EAA6E;QAC7E,yEAAyE;QACzE,iDAAiD;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,IAAI;SAClB,CAAA;IACH,CAAC;AACH,CAAC;AAmCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAqB,EACrB,UAAyB,WAAW,EACpC,UAAuB,cAAc,EAAE;IAEvC,MAAM,aAAa,GAAmB;QACpC,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,kEAAkE;QACpE,CAAC;KACF,CAAA;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAA;QACtC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,KAAK,CAAC,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAA;QACvD,0EAA0E;QAC1E,6EAA6E;QAC7E,mEAAmE;QACnE,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;QAC9B,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,qBAAqB,CACnB,KAAK,CAAC,OAAO,EACb,OAAO,CAAC,OAAO,IAAI,mBAAmB,EAAE,CACzC,CAAA;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,iBAAiB,CACf,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAC3B,kBAAkB,CAAC,MAAM,CAAC,EAC1B,IAAI,GAAG,EAAE,CACV,CAAA;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;QACxE,CAAC;QAED,0EAA0E;QAC1E,6EAA6E;QAC7E,6BAA6B;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACrC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAA;QACtB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC9C,MAAM,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC5D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YACpD,IAAI,QAAQ,IAAI,CAAC;gBAAE,SAAQ;YAC3B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBACxB,QAAQ;gBACR,KAAK;gBACL,IAAI,EACF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACrE,CAAA;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;YACzB,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;YACpD,CAAC,CAAC,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;QAChE,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,MAAM,OAAO,GACX,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACjE,OAAO;YACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC;oBACH,gEAAgE;oBAChE,+DAA+D;oBAC/D,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;SACF,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;QACrC,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type CursorScanStatus, type CursorStats, type DailyToolEntry, type HourlyEntry, type ScanResult } from './util.js';
1
+ import { type CursorScanStatus, type CursorStats, type DailyToolEntry, type PromptActivity, type ScanResult } from './util.js';
2
2
  export * from './util.js';
3
3
  export declare function claudeProjectsDir(): string;
4
4
  export declare function codexSessionsDir(): string;
@@ -24,7 +24,6 @@ export type UsageLine = {
24
24
  tokens: number;
25
25
  model: string;
26
26
  date: string | null;
27
- hour: number | null;
28
27
  };
29
28
  export declare function parseClaudeCodeLine(line: string): UsageLine | null;
30
29
  /** Every Claude Code transcript on this machine. */
@@ -85,10 +84,15 @@ export declare function scanCursorApi(): Promise<ScanResult>;
85
84
  export type AggregateScan = {
86
85
  toolTotals: Record<string, number>;
87
86
  dailyTotals: DailyToolEntry[];
88
- hourlyTotals: HourlyEntry[];
89
87
  modelTotals: Record<string, number>;
90
88
  /** Per-tool model breakdown. Optional on older incremental payloads. */
91
89
  modelsByTool?: Record<string, Record<string, number>>;
90
+ /**
91
+ * Prompt metadata, filled in by the tick under the `stats`/`full` tier of
92
+ * `promptSync`. Absent at `none`, and absent on a full scan — which has no
93
+ * incremental dirty set to drain.
94
+ */
95
+ promptActivity?: PromptActivity;
92
96
  grandTotal: number;
93
97
  cursorStats: CursorStats | null;
94
98
  cursorScanStatus: CursorScanStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}