@mmnto/cli 1.114.0 → 1.116.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 (101) hide show
  1. package/dist/commands/doctor-compliance.test.js +17 -0
  2. package/dist/commands/doctor-compliance.test.js.map +1 -1
  3. package/dist/commands/doctor-seat-identity.d.ts +87 -0
  4. package/dist/commands/doctor-seat-identity.d.ts.map +1 -0
  5. package/dist/commands/doctor-seat-identity.js +427 -0
  6. package/dist/commands/doctor-seat-identity.js.map +1 -0
  7. package/dist/commands/doctor-seat-identity.test.d.ts +13 -0
  8. package/dist/commands/doctor-seat-identity.test.d.ts.map +1 -0
  9. package/dist/commands/doctor-seat-identity.test.js +390 -0
  10. package/dist/commands/doctor-seat-identity.test.js.map +1 -0
  11. package/dist/commands/doctor.d.ts.map +1 -1
  12. package/dist/commands/doctor.js +3 -0
  13. package/dist/commands/doctor.js.map +1 -1
  14. package/dist/commands/doctor.test.js +1 -0
  15. package/dist/commands/doctor.test.js.map +1 -1
  16. package/dist/commands/ecl-gc.d.ts.map +1 -1
  17. package/dist/commands/ecl-gc.js +18 -7
  18. package/dist/commands/ecl-gc.js.map +1 -1
  19. package/dist/commands/ecl-gc.test.js +63 -1
  20. package/dist/commands/ecl-gc.test.js.map +1 -1
  21. package/dist/commands/eject.d.ts +62 -3
  22. package/dist/commands/eject.d.ts.map +1 -1
  23. package/dist/commands/eject.js +382 -47
  24. package/dist/commands/eject.js.map +1 -1
  25. package/dist/commands/eject.test.js +557 -7
  26. package/dist/commands/eject.test.js.map +1 -1
  27. package/dist/commands/gemini-beforetool-contract.test.d.ts +2 -0
  28. package/dist/commands/gemini-beforetool-contract.test.d.ts.map +1 -0
  29. package/dist/commands/gemini-beforetool-contract.test.js +106 -0
  30. package/dist/commands/gemini-beforetool-contract.test.js.map +1 -0
  31. package/dist/commands/gemini-sessionstart-contract.test.d.ts +2 -0
  32. package/dist/commands/gemini-sessionstart-contract.test.d.ts.map +1 -0
  33. package/dist/commands/gemini-sessionstart-contract.test.js +199 -0
  34. package/dist/commands/gemini-sessionstart-contract.test.js.map +1 -0
  35. package/dist/commands/init-templates.d.ts +4 -4
  36. package/dist/commands/init-templates.d.ts.map +1 -1
  37. package/dist/commands/init-templates.js +279 -16
  38. package/dist/commands/init-templates.js.map +1 -1
  39. package/dist/commands/init.test.js +25 -7
  40. package/dist/commands/init.test.js.map +1 -1
  41. package/dist/commands/install-hooks-exit-contract.test.js +5 -0
  42. package/dist/commands/install-hooks-exit-contract.test.js.map +1 -1
  43. package/dist/commands/mail-degraded-e4.test.js +126 -0
  44. package/dist/commands/mail-degraded-e4.test.js.map +1 -1
  45. package/dist/commands/mail.d.ts +19 -1
  46. package/dist/commands/mail.d.ts.map +1 -1
  47. package/dist/commands/mail.js +195 -30
  48. package/dist/commands/mail.js.map +1 -1
  49. package/dist/commands/mail.test.js +291 -3
  50. package/dist/commands/mail.test.js.map +1 -1
  51. package/dist/commands/orient.d.ts.map +1 -1
  52. package/dist/commands/orient.js +82 -0
  53. package/dist/commands/orient.js.map +1 -1
  54. package/dist/commands/orient.test.js +144 -1
  55. package/dist/commands/orient.test.js.map +1 -1
  56. package/dist/commands/retrospect.d.ts.map +1 -1
  57. package/dist/commands/retrospect.js +7 -3
  58. package/dist/commands/retrospect.js.map +1 -1
  59. package/dist/commands/seat-cli-wiring.test.d.ts +20 -0
  60. package/dist/commands/seat-cli-wiring.test.d.ts.map +1 -0
  61. package/dist/commands/seat-cli-wiring.test.js +147 -0
  62. package/dist/commands/seat-cli-wiring.test.js.map +1 -0
  63. package/dist/commands/seat-poll-chain.test.d.ts +13 -0
  64. package/dist/commands/seat-poll-chain.test.d.ts.map +1 -0
  65. package/dist/commands/seat-poll-chain.test.js +103 -0
  66. package/dist/commands/seat-poll-chain.test.js.map +1 -0
  67. package/dist/commands/seat.d.ts +92 -0
  68. package/dist/commands/seat.d.ts.map +1 -0
  69. package/dist/commands/seat.js +649 -0
  70. package/dist/commands/seat.js.map +1 -0
  71. package/dist/commands/seat.test.d.ts +19 -0
  72. package/dist/commands/seat.test.d.ts.map +1 -0
  73. package/dist/commands/seat.test.js +532 -0
  74. package/dist/commands/seat.test.js.map +1 -0
  75. package/dist/commands/sessionstart-manifest-contract.test.d.ts +2 -0
  76. package/dist/commands/sessionstart-manifest-contract.test.d.ts.map +1 -0
  77. package/dist/commands/sessionstart-manifest-contract.test.js +186 -0
  78. package/dist/commands/sessionstart-manifest-contract.test.js.map +1 -0
  79. package/dist/commands/triage-pr.d.ts.map +1 -1
  80. package/dist/commands/triage-pr.js +2 -0
  81. package/dist/commands/triage-pr.js.map +1 -1
  82. package/dist/hooks/__tests__/auto-context.test.js +20 -0
  83. package/dist/hooks/__tests__/auto-context.test.js.map +1 -1
  84. package/dist/hooks/auto-context.d.ts +19 -0
  85. package/dist/hooks/auto-context.d.ts.map +1 -1
  86. package/dist/hooks/auto-context.js +22 -4
  87. package/dist/hooks/auto-context.js.map +1 -1
  88. package/dist/index.js +71 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/parsers/bot-review-parser.d.ts +8 -1
  91. package/dist/parsers/bot-review-parser.d.ts.map +1 -1
  92. package/dist/parsers/bot-review-parser.js +21 -1
  93. package/dist/parsers/bot-review-parser.js.map +1 -1
  94. package/dist/parsers/bot-review-parser.test.js +23 -0
  95. package/dist/parsers/bot-review-parser.test.js.map +1 -1
  96. package/dist/parsers/triage-severity-mapper.d.ts.map +1 -1
  97. package/dist/parsers/triage-severity-mapper.js +32 -1
  98. package/dist/parsers/triage-severity-mapper.js.map +1 -1
  99. package/dist/parsers/triage-severity-mapper.test.js +57 -0
  100. package/dist/parsers/triage-severity-mapper.test.js.map +1 -1
  101. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat.js","sourceRoot":"","sources":["../../src/commands/seat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Behaviour tests for `totem seat add | suspend | remove | list`
3
+ * (mmnto-ai/totem#2511 slice 2).
4
+ *
5
+ * Every test drives the real command functions against a temp repo fixture —
6
+ * the marker file, the seat dirs, and `config.json` are read back from disk
7
+ * rather than asserted through a mock, because the whole contract of these
8
+ * verbs is what they leave on disk and what they REFUSE to leave.
9
+ *
10
+ * Two fixture disciplines:
11
+ * - a `.totem/` marker is created in every fixture so
12
+ * `resolveTotemRepoRootSync` anchors at the temp dir instead of walking up
13
+ * into a real repo (or `~/.totem`);
14
+ * - `envForTest` is passed EXPLICITLY everywhere, so an ambient
15
+ * `TOTEM_SELF_AGENT` in the operator's shell can never decide whether the
16
+ * `by` field appears.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=seat.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat.test.d.ts","sourceRoot":"","sources":["../../src/commands/seat.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,532 @@
1
+ /**
2
+ * Behaviour tests for `totem seat add | suspend | remove | list`
3
+ * (mmnto-ai/totem#2511 slice 2).
4
+ *
5
+ * Every test drives the real command functions against a temp repo fixture —
6
+ * the marker file, the seat dirs, and `config.json` are read back from disk
7
+ * rather than asserted through a mock, because the whole contract of these
8
+ * verbs is what they leave on disk and what they REFUSE to leave.
9
+ *
10
+ * Two fixture disciplines:
11
+ * - a `.totem/` marker is created in every fixture so
12
+ * `resolveTotemRepoRootSync` anchors at the temp dir instead of walking up
13
+ * into a real repo (or `~/.totem`);
14
+ * - `envForTest` is passed EXPLICITLY everywhere, so an ambient
15
+ * `TOTEM_SELF_AGENT` in the operator's shell can never decide whether the
16
+ * `by` field appears.
17
+ */
18
+ import * as fs from 'node:fs';
19
+ import * as os from 'node:os';
20
+ import * as path from 'node:path';
21
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
22
+ import { seatAddCommand, seatListCommand, seatRemoveCommand, seatSuspendCommand } from './seat.js';
23
+ /** Pinned transition instants, so `since` assertions are exact. */
24
+ const NOW = '2026-08-11T09:00:00.000Z';
25
+ const LATER = '2026-08-12T09:00:00.000Z';
26
+ /** No env at all — the stamped-absence case for `by`. */
27
+ const NO_ENV = {};
28
+ const created = [];
29
+ let chunks = [];
30
+ /** A temp repo with the `.totem/` anchor. Short prefix: Windows MAX_PATH. */
31
+ function makeRepo() {
32
+ const dir = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'seat-')));
33
+ fs.mkdirSync(path.join(dir, '.totem', 'orchestration'), { recursive: true });
34
+ created.push(dir);
35
+ return dir;
36
+ }
37
+ function seatDir(repo, seatId) {
38
+ return path.join(repo, '.totem', 'orchestration', seatId);
39
+ }
40
+ function markerPath(repo, seatId) {
41
+ return path.join(seatDir(repo, seatId), 'lifecycle.json');
42
+ }
43
+ function readMarker(repo, seatId) {
44
+ return JSON.parse(fs.readFileSync(markerPath(repo, seatId), 'utf-8'));
45
+ }
46
+ function configPath(repo) {
47
+ return path.join(repo, '.totem', 'orchestration', 'config.json');
48
+ }
49
+ function readConfig(repo) {
50
+ return JSON.parse(fs.readFileSync(configPath(repo), 'utf-8'));
51
+ }
52
+ /** Everything the verb wrote to stdout since the last reset. */
53
+ function output() {
54
+ // Raw stream segments re-assembled verbatim — a write() chunk boundary is
55
+ // not a token boundary, so no delimiter belongs between chunks.
56
+ let joined = '';
57
+ for (const chunk of chunks)
58
+ joined += chunk;
59
+ return joined;
60
+ }
61
+ /** The thrown value, so `recoveryHint` (not just the message) is assertable. */
62
+ async function rejection(promise) {
63
+ const err = await promise.then(() => undefined, (reason) => reason);
64
+ expect(err).toBeInstanceOf(Error);
65
+ const typed = err;
66
+ return { message: typed.message, hint: typed.recoveryHint ?? '' };
67
+ }
68
+ beforeEach(() => {
69
+ chunks = [];
70
+ vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
71
+ chunks.push(String(chunk));
72
+ return true;
73
+ });
74
+ });
75
+ afterEach(() => {
76
+ vi.restoreAllMocks();
77
+ while (created.length > 0) {
78
+ const dir = created.pop();
79
+ if (dir !== undefined)
80
+ fs.rmSync(dir, { recursive: true, force: true });
81
+ }
82
+ });
83
+ // ─── add ────────────────────────────────────────────────
84
+ describe('seat add', () => {
85
+ it('creates the three subdirs and an active marker; `by` is ABSENT when TOTEM_SELF_AGENT is unset', async () => {
86
+ const repo = makeRepo();
87
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
88
+ for (const sub of ['outbox', 'processed', 'journal']) {
89
+ expect(fs.statSync(path.join(seatDir(repo, 'totem-kimi'), sub)).isDirectory()).toBe(true);
90
+ }
91
+ const marker = readMarker(repo, 'totem-kimi');
92
+ expect(marker).toEqual({ schemaVersion: 1, state: 'active', since: NOW });
93
+ // The stamped absence is the point: no fabricated attribution.
94
+ expect('by' in marker).toBe(false);
95
+ expect(output()).toContain('Seat added: totem-kimi');
96
+ expect(output()).toContain('TOTEM_SELF_AGENT is not set');
97
+ });
98
+ it('records `by` from a SINGLE-seat TOTEM_SELF_AGENT', async () => {
99
+ const repo = makeRepo();
100
+ await seatAddCommand('totem-kimi', {
101
+ cwdForTest: repo,
102
+ envForTest: { TOTEM_SELF_AGENT: 'totem-claude' },
103
+ nowForTest: NOW,
104
+ });
105
+ expect(readMarker(repo, 'totem-kimi')['by']).toBe('totem-claude');
106
+ });
107
+ it('a MULTI-seat TOTEM_SELF_AGENT is ambiguous: `by` is omitted and the omission is disclosed (stamped absence, MB-2)', async () => {
108
+ // "The first entry" is no evidence that seat ran the verb — under the
109
+ // stamped-absence rule the honest answer for an ambiguous env is absence
110
+ // plus a note, never a guess (falsification finding 7).
111
+ const repo = makeRepo();
112
+ await seatAddCommand('totem-kimi', {
113
+ cwdForTest: repo,
114
+ envForTest: { TOTEM_SELF_AGENT: 'totem-claude,totem-gemini' },
115
+ nowForTest: NOW,
116
+ });
117
+ expect(readMarker(repo, 'totem-kimi')['by']).toBeUndefined();
118
+ expect(output()).toContain('by omitted');
119
+ expect(output()).toContain('stamped absence');
120
+ });
121
+ it('a SET-but-unusable TOTEM_SELF_AGENT is disclosed as such — never rendered as "not set" (re-arm P-3)', async () => {
122
+ const repo = makeRepo();
123
+ await seatAddCommand('totem-kimi', {
124
+ cwdForTest: repo,
125
+ envForTest: { TOTEM_SELF_AGENT: '../evil' },
126
+ nowForTest: NOW,
127
+ });
128
+ expect(readMarker(repo, 'totem-kimi')['by']).toBeUndefined();
129
+ expect(output()).toContain('is set but no entry is a usable seat id');
130
+ expect(output()).not.toContain('is not set');
131
+ });
132
+ it('--reactivate on a NONEXISTENT seat is a hard error, never a silent birth (the flag must not change meaning)', async () => {
133
+ const repo = makeRepo();
134
+ const { message, hint } = await rejection(seatAddCommand('brand-new', {
135
+ cwdForTest: repo,
136
+ envForTest: NO_ENV,
137
+ nowForTest: NOW,
138
+ reactivate: true,
139
+ }));
140
+ expect(message).toContain('nothing to reactivate');
141
+ expect(hint).toContain('without --reactivate');
142
+ // Nothing was created.
143
+ expect(fs.readdirSync(path.join(repo, '.totem', 'orchestration'))).toEqual([]);
144
+ });
145
+ it('refuses an id that is not a safe path segment', async () => {
146
+ const repo = makeRepo();
147
+ const { message } = await rejection(seatAddCommand('../escape', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW }));
148
+ expect(message).toContain('invalid seat id');
149
+ // The guard runs before any fs work: nothing was created anywhere.
150
+ expect(fs.readdirSync(path.join(repo, '.totem', 'orchestration'))).toEqual([]);
151
+ });
152
+ it('refuses an existing ACTIVE seat and names its current state', async () => {
153
+ const repo = makeRepo();
154
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
155
+ const { message } = await rejection(seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: LATER }));
156
+ expect(message).toContain('already exists');
157
+ expect(message).toContain('current state: active');
158
+ // The refusal is not a rewrite: the original `since` survives.
159
+ expect(readMarker(repo, 'totem-kimi')['since']).toBe(NOW);
160
+ });
161
+ it('hints --reactivate when the existing seat is suspended', async () => {
162
+ const repo = makeRepo();
163
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
164
+ await seatSuspendCommand('totem-kimi', {
165
+ cwdForTest: repo,
166
+ envForTest: NO_ENV,
167
+ nowForTest: NOW,
168
+ });
169
+ const { message, hint } = await rejection(seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: LATER }));
170
+ expect(message).toContain('current state: suspended');
171
+ expect(hint).toContain('--reactivate');
172
+ });
173
+ it('--reactivate transitions suspended → active with a fresh marker', async () => {
174
+ const repo = makeRepo();
175
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
176
+ await seatSuspendCommand('totem-kimi', {
177
+ cwdForTest: repo,
178
+ envForTest: NO_ENV,
179
+ nowForTest: NOW,
180
+ reason: 'paused',
181
+ });
182
+ chunks = [];
183
+ await seatAddCommand('totem-kimi', {
184
+ cwdForTest: repo,
185
+ envForTest: NO_ENV,
186
+ nowForTest: LATER,
187
+ reactivate: true,
188
+ });
189
+ const marker = readMarker(repo, 'totem-kimi');
190
+ expect(marker['state']).toBe('active');
191
+ expect(marker['since']).toBe(LATER);
192
+ // A fresh marker, not a patch: the suspension's reason does not survive.
193
+ expect('reason' in marker).toBe(false);
194
+ expect(output()).toContain('Seat reactivated: totem-kimi (suspended → active)');
195
+ });
196
+ it('--reactivate on an already-active seat is a hard error (transitions ONLY suspended → active)', async () => {
197
+ const repo = makeRepo();
198
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
199
+ const { message } = await rejection(seatAddCommand('totem-kimi', {
200
+ cwdForTest: repo,
201
+ envForTest: NO_ENV,
202
+ nowForTest: LATER,
203
+ reactivate: true,
204
+ }));
205
+ expect(message).toContain('already active');
206
+ expect(readMarker(repo, 'totem-kimi')['since']).toBe(NOW);
207
+ });
208
+ it('--reactivate NEVER resurrects a retired seat — resurrection needs a fresh ruling', async () => {
209
+ const repo = makeRepo();
210
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
211
+ await seatRemoveCommand('totem-kimi', {
212
+ cwdForTest: repo,
213
+ envForTest: NO_ENV,
214
+ nowForTest: NOW,
215
+ });
216
+ const { message, hint } = await rejection(seatAddCommand('totem-kimi', {
217
+ cwdForTest: repo,
218
+ envForTest: NO_ENV,
219
+ nowForTest: LATER,
220
+ reactivate: true,
221
+ }));
222
+ expect(message).toContain('refusing to resurrect retired seat');
223
+ expect(hint).toContain('retirement was an operator word');
224
+ expect(hint).toContain('fresh ruling');
225
+ // The tombstone is intact.
226
+ expect(readMarker(repo, 'totem-kimi')).toMatchObject({ state: 'retired', since: NOW });
227
+ });
228
+ it('a plain add over a retired seat refuses with the same ruling, never a fresh marker', async () => {
229
+ const repo = makeRepo();
230
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
231
+ await seatRemoveCommand('totem-kimi', {
232
+ cwdForTest: repo,
233
+ envForTest: NO_ENV,
234
+ nowForTest: NOW,
235
+ });
236
+ const { message, hint } = await rejection(seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: LATER }));
237
+ expect(message).toContain('current state: retired');
238
+ expect(hint).toContain('retirement was an operator word');
239
+ expect(readMarker(repo, 'totem-kimi')).toMatchObject({ state: 'retired', since: NOW });
240
+ });
241
+ });
242
+ // ─── add: config.json merge ─────────────────────────────
243
+ describe('seat add — host_agents merge', () => {
244
+ it('appends the seat, preserving every existing entry AND every passthrough key', async () => {
245
+ const repo = makeRepo();
246
+ fs.writeFileSync(configPath(repo), JSON.stringify({
247
+ host_agents: ['totem-claude', 'totem-gemini'],
248
+ unknown_key: { nested: [1, 2, 3] },
249
+ another: 'kept',
250
+ }, null, 2) + '\n');
251
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
252
+ const config = readConfig(repo);
253
+ expect(config['host_agents']).toEqual(['totem-claude', 'totem-gemini', 'totem-kimi']);
254
+ expect(config['unknown_key']).toEqual({ nested: [1, 2, 3] });
255
+ expect(config['another']).toBe('kept');
256
+ expect(output()).toContain('appended totem-kimi');
257
+ });
258
+ it('does NOT create a config.json where none exists, and says so', async () => {
259
+ const repo = makeRepo();
260
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
261
+ expect(fs.existsSync(configPath(repo))).toBe(false);
262
+ expect(output()).toContain('none was created');
263
+ });
264
+ it('leaves a config.json that declares no host_agents untouched (the key REPLACES the roster)', async () => {
265
+ const repo = makeRepo();
266
+ const original = JSON.stringify({ some_other_consumer: true }, null, 2) + '\n';
267
+ fs.writeFileSync(configPath(repo), original);
268
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
269
+ expect(fs.readFileSync(configPath(repo), 'utf-8')).toBe(original);
270
+ expect(output()).toContain('declares no host_agents');
271
+ });
272
+ it('is idempotent on a seat already listed in host_agents', async () => {
273
+ const repo = makeRepo();
274
+ fs.writeFileSync(configPath(repo), JSON.stringify({ host_agents: ['totem-kimi'] }, null, 2));
275
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
276
+ expect(readConfig(repo)['host_agents']).toEqual(['totem-kimi']);
277
+ expect(output()).toContain('already listed');
278
+ });
279
+ });
280
+ // ─── add: the emitted birth checklist ───────────────────
281
+ describe('seat add — birth checklist', () => {
282
+ it('names every residual surface the verb cannot reach, and applies none of them', async () => {
283
+ const repo = makeRepo();
284
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
285
+ const text = output();
286
+ expect(text).toContain('birth checklist (EMITTED, NOT APPLIED)');
287
+ // Vendor poll wiring — hooked vendors and the ones with no hook surface.
288
+ expect(text).toContain('totem hooks');
289
+ expect(text).toContain('codex / kimi / agy seats: NO hook surface exists at all');
290
+ expect(text).toContain('TOTEM_SELF_AGENT=totem-kimi');
291
+ // The foreign surfaces.
292
+ expect(text).toContain('agentHomeMap');
293
+ expect(text).toContain('eclCohortRepos');
294
+ expect(text).toContain('FROZEN by');
295
+ expect(text).toContain('mmnto-ai/totem-strategy#611');
296
+ expect(text).toContain('EMITTED, NEVER WRITTEN');
297
+ // All four signoff seat-table copies, including the published template.
298
+ expect(text).toContain('.claude/skills/signoff/SKILL.md');
299
+ expect(text).toContain('.agents/skills/signoff/SKILL.md');
300
+ expect(text).toContain('.gemini/skills/signoff.md');
301
+ expect(text).toContain('SIGNOFF_SKILL_CONTENT');
302
+ // The strategy-lane parity row.
303
+ expect(text).toContain('parity-manifest row candidate');
304
+ });
305
+ });
306
+ // ─── suspend ────────────────────────────────────────────
307
+ describe('seat suspend', () => {
308
+ it('writes a suspended marker and prints the denominator + obligations notes', async () => {
309
+ const repo = makeRepo();
310
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
311
+ chunks = [];
312
+ await seatSuspendCommand('totem-kimi', {
313
+ cwdForTest: repo,
314
+ envForTest: { TOTEM_SELF_AGENT: 'totem-claude' },
315
+ nowForTest: LATER,
316
+ reason: 'operator ruling 2026-08-12',
317
+ });
318
+ expect(readMarker(repo, 'totem-kimi')).toEqual({
319
+ schemaVersion: 1,
320
+ state: 'suspended',
321
+ since: LATER,
322
+ by: 'totem-claude',
323
+ reason: 'operator ruling 2026-08-12',
324
+ });
325
+ const text = output();
326
+ expect(text).toContain('REQUIRED-SETS and round denominators');
327
+ expect(text).toContain('NOT discharged');
328
+ expect(text).toContain('mmnto-ai/totem-status#127');
329
+ expect(text).toContain('Directed mail addressed to this seat still surfaces');
330
+ });
331
+ it('prints the reason encouragement EXACTLY when --reason is omitted', async () => {
332
+ const repo = makeRepo();
333
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
334
+ await seatAddCommand('b-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
335
+ chunks = [];
336
+ await seatSuspendCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: LATER });
337
+ expect(output()).toContain('no --reason recorded');
338
+ expect(output()).toContain('§6.6');
339
+ chunks = [];
340
+ await seatSuspendCommand('b-seat', {
341
+ cwdForTest: repo,
342
+ envForTest: NO_ENV,
343
+ nowForTest: LATER,
344
+ reason: 'recorded',
345
+ });
346
+ expect(output()).not.toContain('no --reason recorded');
347
+ });
348
+ it('is idempotent: a second suspend reports the ORIGINAL since and rewrites nothing', async () => {
349
+ const repo = makeRepo();
350
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
351
+ await seatSuspendCommand('totem-kimi', {
352
+ cwdForTest: repo,
353
+ envForTest: NO_ENV,
354
+ nowForTest: NOW,
355
+ reason: 'first',
356
+ });
357
+ const before = fs.readFileSync(markerPath(repo, 'totem-kimi'), 'utf-8');
358
+ chunks = [];
359
+ await seatSuspendCommand('totem-kimi', {
360
+ cwdForTest: repo,
361
+ envForTest: NO_ENV,
362
+ nowForTest: LATER,
363
+ reason: 'second',
364
+ });
365
+ expect(fs.readFileSync(markerPath(repo, 'totem-kimi'), 'utf-8')).toBe(before);
366
+ expect(output()).toContain(`already suspended since ${NOW}`);
367
+ });
368
+ it('refuses a retired seat', async () => {
369
+ const repo = makeRepo();
370
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
371
+ await seatRemoveCommand('totem-kimi', {
372
+ cwdForTest: repo,
373
+ envForTest: NO_ENV,
374
+ nowForTest: NOW,
375
+ });
376
+ const { message } = await rejection(seatSuspendCommand('totem-kimi', {
377
+ cwdForTest: repo,
378
+ envForTest: NO_ENV,
379
+ nowForTest: LATER,
380
+ }));
381
+ expect(message).toContain('is retired');
382
+ expect(readMarker(repo, 'totem-kimi')['state']).toBe('retired');
383
+ });
384
+ it('refuses an unknown seat and LISTS the known ones', async () => {
385
+ const repo = makeRepo();
386
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
387
+ await seatAddCommand('b-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
388
+ const { message, hint } = await rejection(seatSuspendCommand('ghost-seat', {
389
+ cwdForTest: repo,
390
+ envForTest: NO_ENV,
391
+ nowForTest: LATER,
392
+ }));
393
+ expect(message).toContain('unknown seat "ghost-seat"');
394
+ expect(hint).toContain('a-seat (active)');
395
+ expect(hint).toContain('b-seat (active)');
396
+ expect(fs.existsSync(seatDir(repo, 'ghost-seat'))).toBe(false);
397
+ });
398
+ });
399
+ // ─── remove ─────────────────────────────────────────────
400
+ describe('seat remove', () => {
401
+ it('writes a retired tombstone, deletes nothing, and emits the deregistration checklist', async () => {
402
+ const repo = makeRepo();
403
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
404
+ const dispatch = path.join(seatDir(repo, 'totem-kimi'), 'outbox', 'keep-me.md');
405
+ fs.writeFileSync(dispatch, 'an undischarged obligation\n');
406
+ chunks = [];
407
+ await seatRemoveCommand('totem-kimi', {
408
+ cwdForTest: repo,
409
+ envForTest: NO_ENV,
410
+ nowForTest: LATER,
411
+ reason: 'stream closed',
412
+ });
413
+ expect(readMarker(repo, 'totem-kimi')).toEqual({
414
+ schemaVersion: 1,
415
+ state: 'retired',
416
+ since: LATER,
417
+ reason: 'stream closed',
418
+ });
419
+ // Retention: nothing under the seat dir was touched.
420
+ expect(fs.readFileSync(dispatch, 'utf-8')).toBe('an undischarged obligation\n');
421
+ for (const sub of ['outbox', 'processed', 'journal']) {
422
+ expect(fs.existsSync(path.join(seatDir(repo, 'totem-kimi'), sub))).toBe(true);
423
+ }
424
+ const text = output();
425
+ expect(text).toContain('Nothing was deleted');
426
+ expect(text).toContain('mmnto-ai/totem#2518');
427
+ expect(text).toContain('NOT discharged');
428
+ expect(text).toContain('mmnto-ai/totem-status#127');
429
+ expect(text).toContain('deregistration checklist (EMITTED, NOT APPLIED)');
430
+ expect(text).toContain('agentHomeMap');
431
+ expect(text).toContain('SIGNOFF_SKILL_CONTENT');
432
+ expect(text).toContain('no config.json in this repo');
433
+ });
434
+ it('names the config.json entry to deregister when the repo carries one', async () => {
435
+ const repo = makeRepo();
436
+ fs.writeFileSync(configPath(repo), JSON.stringify({ host_agents: ['totem-kimi'] }, null, 2));
437
+ fs.mkdirSync(path.join(seatDir(repo, 'totem-kimi'), 'outbox'), { recursive: true });
438
+ await seatRemoveCommand('totem-kimi', {
439
+ cwdForTest: repo,
440
+ envForTest: NO_ENV,
441
+ nowForTest: NOW,
442
+ });
443
+ expect(output()).toContain('remove the seat from host_agents');
444
+ // Emitted, not applied: the file is untouched.
445
+ expect(readConfig(repo)['host_agents']).toEqual(['totem-kimi']);
446
+ });
447
+ it('is idempotent: a second remove reports the ORIGINAL since and rewrites nothing', async () => {
448
+ const repo = makeRepo();
449
+ await seatAddCommand('totem-kimi', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
450
+ await seatRemoveCommand('totem-kimi', {
451
+ cwdForTest: repo,
452
+ envForTest: NO_ENV,
453
+ nowForTest: NOW,
454
+ });
455
+ const before = fs.readFileSync(markerPath(repo, 'totem-kimi'), 'utf-8');
456
+ chunks = [];
457
+ await seatRemoveCommand('totem-kimi', {
458
+ cwdForTest: repo,
459
+ envForTest: NO_ENV,
460
+ nowForTest: LATER,
461
+ });
462
+ expect(fs.readFileSync(markerPath(repo, 'totem-kimi'), 'utf-8')).toBe(before);
463
+ expect(output()).toContain(`already retired since ${NOW}`);
464
+ });
465
+ it('refuses an unknown seat and LISTS the known ones', async () => {
466
+ const repo = makeRepo();
467
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
468
+ const { message, hint } = await rejection(seatRemoveCommand('ghost-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW }));
469
+ expect(message).toContain('unknown seat "ghost-seat"');
470
+ expect(hint).toContain('a-seat (active)');
471
+ });
472
+ });
473
+ // ─── list ───────────────────────────────────────────────
474
+ describe('seat list', () => {
475
+ it('renders seat · state · since · source for every registered seat', async () => {
476
+ const repo = makeRepo();
477
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
478
+ // A markerless legacy seat: dir only, no lifecycle.json.
479
+ fs.mkdirSync(path.join(seatDir(repo, 'z-seat'), 'outbox'), { recursive: true });
480
+ await seatSuspendCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: LATER });
481
+ chunks = [];
482
+ await seatListCommand({ cwdForTest: repo });
483
+ const text = output();
484
+ expect(text).toContain('seat');
485
+ expect(text).toContain('state');
486
+ expect(text).toContain('since');
487
+ expect(text).toContain('source');
488
+ expect(text).toMatch(/a-seat\s+suspended\s+2026-08-12T09:00:00\.000Z\s+marker/);
489
+ // Absent marker ⇒ active, derived, not stored.
490
+ expect(text).toMatch(/z-seat\s+active\s+—\s+default-active/);
491
+ expect(text).toContain('2 seat(s)');
492
+ });
493
+ it('--json prints the full status array and round-trips', async () => {
494
+ const repo = makeRepo();
495
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
496
+ fs.mkdirSync(path.join(seatDir(repo, 'z-seat'), 'outbox'), { recursive: true });
497
+ chunks = [];
498
+ await seatListCommand({ cwdForTest: repo, json: true });
499
+ const parsed = JSON.parse(output());
500
+ expect(Array.isArray(parsed)).toBe(true);
501
+ const rows = parsed;
502
+ expect(rows).toHaveLength(2);
503
+ expect(rows[0]).toMatchObject({
504
+ seat: 'a-seat',
505
+ state: 'active',
506
+ source: 'marker',
507
+ since: NOW,
508
+ marker: { schemaVersion: 1, state: 'active', since: NOW },
509
+ });
510
+ expect(rows[1]).toEqual({ seat: 'z-seat', state: 'active', source: 'default-active' });
511
+ });
512
+ it('reports an empty roster without inventing one', async () => {
513
+ const repo = makeRepo();
514
+ await seatListCommand({ cwdForTest: repo });
515
+ expect(output()).toContain('no seats registered');
516
+ chunks = [];
517
+ await seatListCommand({ cwdForTest: repo, json: true });
518
+ expect(JSON.parse(output())).toEqual([]);
519
+ });
520
+ it('surfaces a corrupt marker as a warning BELOW the table while the seat still reads active', async () => {
521
+ const repo = makeRepo();
522
+ await seatAddCommand('a-seat', { cwdForTest: repo, envForTest: NO_ENV, nowForTest: NOW });
523
+ fs.writeFileSync(markerPath(repo, 'a-seat'), '{ not json');
524
+ chunks = [];
525
+ await seatListCommand({ cwdForTest: repo });
526
+ const text = output();
527
+ expect(text).toMatch(/a-seat\s+active\s+—\s+default-active/);
528
+ expect(text).toContain('warnings (1)');
529
+ expect(text).toContain('fix or delete the marker');
530
+ });
531
+ });
532
+ //# sourceMappingURL=seat.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat.test.js","sourceRoot":"","sources":["../../src/commands/seat.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEnG,mEAAmE;AACnE,MAAM,GAAG,GAAG,0BAA0B,CAAC;AACvC,MAAM,KAAK,GAAG,0BAA0B,CAAC;AAEzC,yDAAyD;AACzD,MAAM,MAAM,GAAsB,EAAE,CAAC;AAErC,MAAM,OAAO,GAAa,EAAE,CAAC;AAC7B,IAAI,MAAM,GAAa,EAAE,CAAC;AAE1B,6EAA6E;AAC7E,SAAS,QAAQ;IACf,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,MAAc;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAA4B,CAAC;AACnG,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAA4B,CAAC;AAC3F,CAAC;AAED,gEAAgE;AAChE,SAAS,MAAM;IACb,0EAA0E;IAC1E,gEAAgE;IAChE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,SAAS,CAAC,OAAsB;IAC7C,MAAM,GAAG,GAAY,MAAM,OAAO,CAAC,IAAI,CACrC,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,CAC5B,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,GAAwC,CAAC;IACvD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;AACpE,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,MAAM,GAAG,EAAE,CAAC;IACZ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAc,EAAW,EAAE;QAC/E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;QAC7G,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9F,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1E,+DAA+D;QAC/D,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE;YAChD,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mHAAmH,EAAE,KAAK,IAAI,EAAE;QACjI,sEAAsE;QACtE,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,EAAE,gBAAgB,EAAE,2BAA2B,EAAE;YAC7D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;QACnH,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE;YAC3C,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6GAA6G,EAAE,KAAK,IAAI,EAAE;QAC3H,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,cAAc,CAAC,WAAW,EAAE;YAC1B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/C,uBAAuB;QACvB,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CACjC,cAAc,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CACvF,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7C,mEAAmE;QACnE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CACjC,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1F,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnD,+DAA+D;QAC/D,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,kBAAkB,CAAC,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1F,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,kBAAkB,CAAC,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,cAAc,CAAC,YAAY,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,yEAAyE;QACzE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;QAC5G,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CACjC,cAAc,CAAC,YAAY,EAAE;YAC3B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,cAAc,CAAC,YAAY,EAAE;YAC3B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvC,2BAA2B;QAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1F,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,EAAE,CAAC,aAAa,CACd,UAAU,CAAC,IAAI,CAAC,EAChB,IAAI,CAAC,SAAS,CACZ;YACE,WAAW,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;YAC7C,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YAClC,OAAO,EAAE,MAAM;SAChB,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;QAEF,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9F,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/E,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE7C,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QACjE,yEAAyE;QACzE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACtD,wBAAwB;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjD,wEAAwE;QACxE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAChD,gCAAgC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,GAAG,EAAE,CAAC;QAEZ,MAAM,kBAAkB,CAAC,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE;YAChD,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,4BAA4B;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,KAAK;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,4BAA4B;SACrC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1F,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,kBAAkB,CAAC,QAAQ,EAAE;YACjC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,kBAAkB,CAAC,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QAExE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,kBAAkB,CAAC,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CACjC,kBAAkB,CAAC,YAAY,EAAE;YAC/B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1F,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,kBAAkB,CAAC,YAAY,EAAE;YAC/B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;QAC3D,MAAM,GAAG,EAAE,CAAC;QAEZ,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QACH,qDAAqD;QACrD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAChF,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC/D,+CAA+C;QAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QAExE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,iBAAiB,CAAC,YAAY,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CACvC,iBAAiB,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAC3F,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2DAA2D;AAE3D,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,yDAAyD;QACzD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,MAAM,GAAG,EAAE,CAAC;QAEZ,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;QAChF,+CAA+C;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,GAAG,EAAE,CAAC;QAEZ,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAExD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAwC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;SAC1D,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAElD,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,GAAG,EAAE,CAAC;QAEZ,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}