codekin 0.4.1 → 0.5.1

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 (84) hide show
  1. package/README.md +12 -15
  2. package/bin/codekin.mjs +52 -32
  3. package/dist/assets/index-B8opKRtJ.js +186 -0
  4. package/dist/assets/index-wajPH8o6.css +1 -0
  5. package/dist/index.html +2 -2
  6. package/package.json +2 -7
  7. package/server/dist/approval-manager.d.ts +9 -2
  8. package/server/dist/approval-manager.js +47 -78
  9. package/server/dist/approval-manager.js.map +1 -1
  10. package/server/dist/claude-process.d.ts +20 -4
  11. package/server/dist/claude-process.js +79 -50
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/commit-event-handler.js.map +1 -1
  14. package/server/dist/config.d.ts +4 -0
  15. package/server/dist/config.js +17 -0
  16. package/server/dist/config.js.map +1 -1
  17. package/server/dist/diff-manager.d.ts +41 -0
  18. package/server/dist/diff-manager.js +303 -0
  19. package/server/dist/diff-manager.js.map +1 -0
  20. package/server/dist/error-page.d.ts +5 -0
  21. package/server/dist/error-page.js +144 -0
  22. package/server/dist/error-page.js.map +1 -0
  23. package/server/dist/native-permissions.d.ts +44 -0
  24. package/server/dist/native-permissions.js +163 -0
  25. package/server/dist/native-permissions.js.map +1 -0
  26. package/server/dist/orchestrator-children.d.ts +74 -0
  27. package/server/dist/orchestrator-children.js +287 -0
  28. package/server/dist/orchestrator-children.js.map +1 -0
  29. package/server/dist/orchestrator-learning.d.ts +134 -0
  30. package/server/dist/orchestrator-learning.js +567 -0
  31. package/server/dist/orchestrator-learning.js.map +1 -0
  32. package/server/dist/orchestrator-manager.d.ts +25 -0
  33. package/server/dist/orchestrator-manager.js +353 -0
  34. package/server/dist/orchestrator-manager.js.map +1 -0
  35. package/server/dist/orchestrator-memory.d.ts +77 -0
  36. package/server/dist/orchestrator-memory.js +288 -0
  37. package/server/dist/orchestrator-memory.js.map +1 -0
  38. package/server/dist/orchestrator-monitor.d.ts +59 -0
  39. package/server/dist/orchestrator-monitor.js +238 -0
  40. package/server/dist/orchestrator-monitor.js.map +1 -0
  41. package/server/dist/orchestrator-reports.d.ts +45 -0
  42. package/server/dist/orchestrator-reports.js +124 -0
  43. package/server/dist/orchestrator-reports.js.map +1 -0
  44. package/server/dist/orchestrator-routes.d.ts +17 -0
  45. package/server/dist/orchestrator-routes.js +526 -0
  46. package/server/dist/orchestrator-routes.js.map +1 -0
  47. package/server/dist/plan-manager.d.ts +74 -0
  48. package/server/dist/plan-manager.js +121 -0
  49. package/server/dist/plan-manager.js.map +1 -0
  50. package/server/dist/session-archive.js +9 -2
  51. package/server/dist/session-archive.js.map +1 -1
  52. package/server/dist/session-manager.d.ts +117 -42
  53. package/server/dist/session-manager.js +728 -433
  54. package/server/dist/session-manager.js.map +1 -1
  55. package/server/dist/session-naming.d.ts +6 -10
  56. package/server/dist/session-naming.js +60 -62
  57. package/server/dist/session-naming.js.map +1 -1
  58. package/server/dist/session-persistence.d.ts +6 -1
  59. package/server/dist/session-persistence.js +8 -1
  60. package/server/dist/session-persistence.js.map +1 -1
  61. package/server/dist/session-restart-scheduler.d.ts +30 -0
  62. package/server/dist/session-restart-scheduler.js +41 -0
  63. package/server/dist/session-restart-scheduler.js.map +1 -0
  64. package/server/dist/session-routes.js +122 -61
  65. package/server/dist/session-routes.js.map +1 -1
  66. package/server/dist/stepflow-types.d.ts +1 -1
  67. package/server/dist/tsconfig.tsbuildinfo +1 -1
  68. package/server/dist/types.d.ts +40 -5
  69. package/server/dist/types.js +8 -1
  70. package/server/dist/types.js.map +1 -1
  71. package/server/dist/upload-routes.js +7 -1
  72. package/server/dist/upload-routes.js.map +1 -1
  73. package/server/dist/version-check.d.ts +17 -0
  74. package/server/dist/version-check.js +89 -0
  75. package/server/dist/version-check.js.map +1 -0
  76. package/server/dist/workflow-engine.d.ts +74 -1
  77. package/server/dist/workflow-engine.js +20 -1
  78. package/server/dist/workflow-engine.js.map +1 -1
  79. package/server/dist/ws-message-handler.js +115 -9
  80. package/server/dist/ws-message-handler.js.map +1 -1
  81. package/server/dist/ws-server.js +90 -15
  82. package/server/dist/ws-server.js.map +1 -1
  83. package/dist/assets/index-BAdQqYEY.js +0 -182
  84. package/dist/assets/index-CeZYNLWt.css +0 -1
@@ -4,23 +4,53 @@
4
4
  * Handles all client→server WebSocket message types (create_session, join_session,
5
5
  * input, prompt_response, etc.) via a typed context object instead of closure state.
6
6
  */
7
+ import { VALID_MODELS, VALID_PERMISSION_MODES } from './types.js';
7
8
  /** Route a single parsed client message to the appropriate session manager method. */
8
9
  export function handleWsMessage(msg, ctx) {
9
10
  const { ws, sessions, clientSessions, send } = ctx;
10
11
  switch (msg.type) {
12
+ // Create a new session, optionally in a git worktree, then start Claude.
11
13
  case 'create_session': {
12
- const session = sessions.create(msg.name, msg.workingDir, { model: msg.model });
14
+ const session = sessions.create(msg.name, msg.workingDir, { model: msg.model, permissionMode: msg.permissionMode, allowedTools: msg.allowedTools });
13
15
  session.clients.add(ws);
14
16
  clientSessions.set(ws, session.id);
15
- send({
16
- type: 'session_created',
17
- sessionId: session.id,
18
- sessionName: session.name,
19
- workingDir: session.workingDir,
20
- });
21
- sessions.startClaude(session.id);
17
+ if (msg.useWorktree) {
18
+ // Create worktree asynchronously, then start Claude in it
19
+ void sessions.createWorktree(session.id, msg.workingDir).then((wtPath) => {
20
+ if (wtPath) {
21
+ send({
22
+ type: 'session_created',
23
+ sessionId: session.id,
24
+ sessionName: session.name,
25
+ workingDir: session.workingDir,
26
+ });
27
+ }
28
+ else {
29
+ // Worktree creation failed — fall back to main directory
30
+ send({ type: 'system_message', subtype: 'error', text: 'Failed to create git worktree. Using main project directory.' });
31
+ send({
32
+ type: 'session_created',
33
+ sessionId: session.id,
34
+ sessionName: session.name,
35
+ workingDir: session.workingDir,
36
+ });
37
+ }
38
+ sessions.startClaude(session.id);
39
+ });
40
+ }
41
+ else {
42
+ send({
43
+ type: 'session_created',
44
+ sessionId: session.id,
45
+ sessionName: session.name,
46
+ workingDir: session.workingDir,
47
+ });
48
+ sessions.startClaude(session.id);
49
+ }
22
50
  break;
23
51
  }
52
+ // Join an existing session — leave the previous one first to avoid dual membership.
53
+ // Sends back the full output history so the client can rebuild the chat view.
24
54
  case 'join_session': {
25
55
  const currentId = clientSessions.get(ws);
26
56
  if (currentId) {
@@ -36,6 +66,8 @@ export function handleWsMessage(msg, ctx) {
36
66
  workingDir: session.workingDir,
37
67
  active: session.claudeProcess?.isAlive() ?? false,
38
68
  outputBuffer: session.outputHistory.slice(-500),
69
+ model: session.model,
70
+ permissionMode: session.permissionMode,
39
71
  });
40
72
  }
41
73
  else {
@@ -43,6 +75,7 @@ export function handleWsMessage(msg, ctx) {
43
75
  }
44
76
  break;
45
77
  }
78
+ // Cleanly leave the current session without destroying it (session stays alive for other clients).
46
79
  case 'leave_session': {
47
80
  const currentId = clientSessions.get(ws);
48
81
  if (currentId) {
@@ -52,6 +85,7 @@ export function handleWsMessage(msg, ctx) {
52
85
  }
53
86
  break;
54
87
  }
88
+ // (Re)start the Claude process for the current session (e.g. after a stop or crash).
55
89
  case 'start_claude': {
56
90
  const sessionId = clientSessions.get(ws);
57
91
  if (sessionId) {
@@ -62,6 +96,7 @@ export function handleWsMessage(msg, ctx) {
62
96
  }
63
97
  break;
64
98
  }
99
+ // Kill the Claude process for the current session (user-initiated stop).
65
100
  case 'stop': {
66
101
  const sessionId = clientSessions.get(ws);
67
102
  if (sessionId) {
@@ -69,6 +104,7 @@ export function handleWsMessage(msg, ctx) {
69
104
  }
70
105
  break;
71
106
  }
107
+ // Forward user input to the Claude stdin pipe and echo back to all connected clients.
72
108
  case 'input': {
73
109
  const sessionId = clientSessions.get(ws);
74
110
  if (sessionId) {
@@ -83,6 +119,8 @@ export function handleWsMessage(msg, ctx) {
83
119
  }
84
120
  break;
85
121
  }
122
+ // Route a tool-approval or permission prompt response back to the Claude process.
123
+ // The requestId ties it to a specific pending approval.
86
124
  case 'prompt_response': {
87
125
  const sessionId = clientSessions.get(ws);
88
126
  console.log(`[prompt_response] sessionId=${sessionId} value=${JSON.stringify(msg.value)} requestId=${msg.requestId}`);
@@ -94,19 +132,39 @@ export function handleWsMessage(msg, ctx) {
94
132
  }
95
133
  break;
96
134
  }
135
+ // Change the model for the session. Validates against the server-side allowlist.
97
136
  case 'set_model': {
98
137
  const sessionId = clientSessions.get(ws);
99
138
  if (sessionId) {
139
+ if (!VALID_MODELS.has(msg.model)) {
140
+ send({ type: 'error', message: `Invalid model: ${msg.model}` });
141
+ break;
142
+ }
100
143
  sessions.setModel(sessionId, msg.model);
101
144
  }
102
145
  break;
103
146
  }
147
+ // Change the permission mode for the session. Validated against the server-side allowlist.
148
+ case 'set_permission_mode': {
149
+ const sessionId = clientSessions.get(ws);
150
+ if (sessionId) {
151
+ if (!VALID_PERMISSION_MODES.has(msg.permissionMode)) {
152
+ send({ type: 'error', message: `Invalid permission mode: ${msg.permissionMode}` });
153
+ break;
154
+ }
155
+ sessions.setPermissionMode(sessionId, msg.permissionMode);
156
+ }
157
+ break;
158
+ }
159
+ // No-op: stream-json mode doesn't use a PTY, so terminal resize has no effect.
160
+ // Kept as a recognized message type so the client doesn't need to guard against it.
104
161
  case 'resize':
105
- // stream-json mode doesn't use PTY, so resize is a no-op
106
162
  break;
163
+ // Health-check / keep-alive: client pings periodically and on visibility restore.
107
164
  case 'ping':
108
165
  send({ type: 'pong' });
109
166
  break;
167
+ // Compute git diff for the session's working directory and return structured results.
110
168
  case 'get_diff': {
111
169
  const sessionId = clientSessions.get(ws);
112
170
  if (sessionId) {
@@ -117,6 +175,54 @@ export function handleWsMessage(msg, ctx) {
117
175
  }
118
176
  break;
119
177
  }
178
+ // Move a running session into a git worktree mid-conversation.
179
+ // Stops the Claude process first, creates the worktree, then restarts Claude in it.
180
+ // Preserves the Claude session ID so the CLI resumes with full conversation context.
181
+ case 'move_to_worktree': {
182
+ const sessionId = clientSessions.get(ws);
183
+ if (!sessionId) {
184
+ send({ type: 'error', message: 'Not in a session' });
185
+ break;
186
+ }
187
+ const session = sessions.get(sessionId);
188
+ if (!session) {
189
+ send({ type: 'error', message: 'Session not found' });
190
+ break;
191
+ }
192
+ if (session.worktreePath) {
193
+ send({ type: 'error', message: 'Session is already in a worktree' });
194
+ break;
195
+ }
196
+ const originalDir = session.workingDir;
197
+ // Wait for the old process to fully exit before creating the worktree
198
+ // and restarting, to avoid "Session ID already in use" errors.
199
+ void sessions.stopClaudeAndWait(sessionId).then(() => {
200
+ // Keep claudeSessionId so Claude CLI resumes with full conversation
201
+ // context after the restart. stopClaudeAndWait() already awaits
202
+ // process exit, so the session lock should be released.
203
+ return sessions.createWorktree(sessionId, originalDir);
204
+ }).then((wtPath) => {
205
+ if (wtPath) {
206
+ const wtName = wtPath.split('/').pop() ?? wtPath;
207
+ const createdMsg = { type: 'worktree_created', worktreePath: wtPath, workingDir: wtPath };
208
+ sessions.broadcast(session, createdMsg);
209
+ const notifMsg = { type: 'system_message', subtype: 'notification', text: `Moved to worktree: ${wtName}` };
210
+ sessions.addToHistory(session, notifMsg);
211
+ sessions.broadcast(session, notifMsg);
212
+ }
213
+ else {
214
+ send({ type: 'system_message', subtype: 'error', text: 'Failed to create worktree. Check server logs for details.' });
215
+ }
216
+ // Always restart Claude — in the worktree on success, or original dir on failure
217
+ sessions.startClaude(sessionId);
218
+ }).catch((err) => {
219
+ console.error('[worktree] move_to_worktree failed:', err);
220
+ send({ type: 'system_message', subtype: 'error', text: 'Failed to move to worktree.' });
221
+ sessions.startClaude(sessionId);
222
+ });
223
+ break;
224
+ }
225
+ // Discard uncommitted changes (git checkout/clean) for specified paths in the session's repo.
120
226
  case 'discard_changes': {
121
227
  const sessionId = clientSessions.get(ws);
122
228
  if (sessionId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ws-message-handler.js","sourceRoot":"","sources":["../ws-message-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-message-handler.js","sourceRoot":"","sources":["../ws-message-handler.ts"],"names":[],"mappings":"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"}
@@ -26,16 +26,21 @@ import { WebhookHandler } from './webhook-handler.js';
26
26
  import { createWebhookRateLimiter } from './webhook-rate-limiter.js';
27
27
  import { StepflowHandler, loadStepflowConfig } from './stepflow-handler.js';
28
28
  import { initWorkflowEngine, shutdownWorkflowEngine } from './workflow-engine.js';
29
+ import { generate404Page, generate500Page } from './error-page.js';
29
30
  import { loadMdWorkflows } from './workflow-loader.js';
30
31
  import { createWorkflowRouter, syncSchedules } from './workflow-routes.js';
31
32
  import { CommitEventHandler } from './commit-event-handler.js';
33
+ import { checkForUpdates, getUpdateNotification } from './version-check.js';
32
34
  import { ensureHookConfig, syncCommitHooks } from './commit-event-hooks.js';
33
35
  import { createAuthRouter } from './auth-routes.js';
34
36
  import { createSessionRouter } from './session-routes.js';
35
37
  import { createWebhookRouter } from './webhook-routes.js';
36
38
  import { createUploadRouter } from './upload-routes.js';
37
39
  import { createDocsRouter } from './docs-routes.js';
38
- import { PORT as CONFIG_PORT, AUTH_TOKEN as configAuthToken, CORS_ORIGIN, FRONTEND_DIST } from './config.js';
40
+ import { createOrchestratorRouter } from './orchestrator-routes.js';
41
+ import { ensureOrchestratorRunning, getOrchestratorSessionId, isOrchestratorSession } from './orchestrator-manager.js';
42
+ import { OrchestratorMonitor } from './orchestrator-monitor.js';
43
+ import { PORT as CONFIG_PORT, AUTH_TOKEN as configAuthToken, CORS_ORIGIN, FRONTEND_DIST, AGENT_DISPLAY_NAME, getAgentDisplayName, setAgentDisplayNameResolver } from './config.js';
39
44
  // ---------------------------------------------------------------------------
40
45
  // CLI args (legacy bare-metal compat) and auth setup
41
46
  // ---------------------------------------------------------------------------
@@ -122,6 +127,8 @@ if (!apiKeySet) {
122
127
  const sessions = new SessionManager();
123
128
  sessions._serverPort = port;
124
129
  sessions._authToken = authToken;
130
+ // Wire up dynamic agent name resolution from the DB (falls back to env var / default)
131
+ setAgentDisplayNameResolver(() => sessions.archive.getSetting('agent_name', '') || AGENT_DISPLAY_NAME);
125
132
  // GitHub webhook handler
126
133
  const webhookConfig = loadWebhookConfig();
127
134
  const webhookHandler = new WebhookHandler(webhookConfig, sessions);
@@ -239,6 +246,9 @@ app.use(createDocsRouter(verifyToken, extractToken));
239
246
  // Workflow router — commitEventHandler is set after engine init, but the
240
247
  // router closure captures the variable reference so it will resolve correctly.
241
248
  app.use('/api/workflows', createWorkflowRouter(verifyToken, extractToken, sessions, commitEventState));
249
+ // Orchestrator router — monitorRef is populated after workflow engine init
250
+ const orchestratorMonitorRef = { current: null };
251
+ app.use(createOrchestratorRouter(verifyToken, extractToken, sessions, orchestratorMonitorRef, verifyTokenOrSessionToken));
242
252
  // --- SPA fallback: serve index.html for non-API routes (client-side routing) ---
243
253
  if (FRONTEND_DIST && existsSync(FRONTEND_DIST)) {
244
254
  const indexPath = join(FRONTEND_DIST, 'index.html');
@@ -252,6 +262,29 @@ if (FRONTEND_DIST && existsSync(FRONTEND_DIST)) {
252
262
  });
253
263
  }
254
264
  }
265
+ // --- Error handling: API 404s and generic error handler ---
266
+ // Unmatched API routes → JSON 404
267
+ app.use('/api/{*splat}', (_req, res) => {
268
+ res.status(404).json({ error: 'Not found' });
269
+ });
270
+ // Fallback 404 for non-API routes when SPA fallback is not active
271
+ app.use((_req, res) => {
272
+ res.status(404).type('html').send(generate404Page());
273
+ });
274
+ // Generic error handler — never leak stack traces
275
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
276
+ app.use((err, _req, res, _next) => {
277
+ const status = err?.status ?? 500;
278
+ if (res.headersSent)
279
+ return;
280
+ if (status === 404) {
281
+ res.status(404).type('html').send(generate404Page());
282
+ }
283
+ else {
284
+ console.error('Unhandled server error:', err);
285
+ res.status(status).type('html').send(generate500Page());
286
+ }
287
+ });
255
288
  // ---------------------------------------------------------------------------
256
289
  // WebSocket server
257
290
  // ---------------------------------------------------------------------------
@@ -337,6 +370,11 @@ wss.on('connection', (ws, req) => {
337
370
  authenticated = true;
338
371
  clearTimeout(authTimeout);
339
372
  send({ type: 'connected', connectionId, claudeAvailable, claudeVersion, apiKeySet });
373
+ // Notify client if a newer version is available
374
+ void getUpdateNotification().then(text => {
375
+ if (text)
376
+ send({ type: 'system_message', subtype: 'notification', text });
377
+ });
340
378
  return;
341
379
  }
342
380
  // Rate limit post-auth messages
@@ -375,8 +413,43 @@ wss.on('close', () => clearInterval(heartbeat));
375
413
  // ---------------------------------------------------------------------------
376
414
  server.listen(port, '0.0.0.0', () => {
377
415
  console.log(`Codekin WebSocket server listening on port ${port}`);
416
+ // Check for newer version on npm (non-blocking)
417
+ void checkForUpdates();
378
418
  // Auto-restart sessions that were active before the server went down
379
419
  sessions.restoreActiveSessions();
420
+ // Start the orchestrator session (always-on)
421
+ try {
422
+ ensureOrchestratorRunning(sessions);
423
+ }
424
+ catch (err) {
425
+ console.error('[orchestrator] Failed to start on boot:', err);
426
+ }
427
+ // Wire up prompt listener: notify the orchestrator session when any child
428
+ // session has a pending approval so it can respond via the REST API.
429
+ sessions.onSessionPrompt((sessionId, promptType, toolName, requestId) => {
430
+ const orchestratorId = getOrchestratorSessionId(sessions);
431
+ if (!orchestratorId)
432
+ return;
433
+ // Don't notify the orchestrator about its own prompts
434
+ const session = sessions.get(sessionId);
435
+ if (!session || isOrchestratorSession(session.source))
436
+ return;
437
+ const displayName = getAgentDisplayName();
438
+ const actionDesc = toolName ? `Tool: ${toolName}` : 'Unknown tool';
439
+ const message = [
440
+ `[Agent ${displayName} — Child Session Needs ${promptType === 'question' ? 'Answer' : 'Approval'}]`,
441
+ `Session: ${session.name} (${sessionId})`,
442
+ actionDesc,
443
+ `Request ID: ${requestId ?? 'unknown'}`,
444
+ '',
445
+ `Use the pending-prompts endpoint to see details and respond:`,
446
+ `curl -s "http://localhost:$CODEKIN_PORT/api/orchestrator/sessions/pending-prompts" -H "Authorization: Bearer $CODEKIN_AUTH_TOKEN"`,
447
+ ].join('\n');
448
+ const orchestrator = sessions.get(orchestratorId);
449
+ if (orchestrator?.claudeProcess?.isAlive()) {
450
+ sessions.sendInput(orchestratorId, message);
451
+ }
452
+ });
380
453
  // Initialize workflow engine
381
454
  try {
382
455
  const engine = initWorkflowEngine();
@@ -411,6 +484,11 @@ server.listen(port, '0.0.0.0', () => {
411
484
  ensureHookConfig(authToken, serverUrl);
412
485
  syncCommitHooks();
413
486
  }
487
+ // Start orchestrator proactive monitor with workflow engine events
488
+ const monitor = new OrchestratorMonitor(sessions);
489
+ monitor.setEngine(engine);
490
+ monitor.start();
491
+ orchestratorMonitorRef.current = monitor;
414
492
  console.log('[workflow] Workflow engine ready');
415
493
  }
416
494
  catch (err) {
@@ -418,27 +496,24 @@ server.listen(port, '0.0.0.0', () => {
418
496
  console.warn('[workflow] Server will continue without workflow support');
419
497
  }
420
498
  });
421
- // Graceful shutdown
422
- process.on('SIGTERM', () => {
423
- console.log('SIGTERM received, shutting down...');
499
+ // Graceful shutdown — wait for Claude processes to release session locks
500
+ async function gracefulShutdown(signal) {
501
+ console.log(`${signal} received, shutting down...`);
424
502
  shutdownWorkflowEngine();
425
503
  commitEventState.handler?.shutdown();
426
504
  webhookHandler.shutdown();
427
505
  stepflowHandler.shutdown();
428
- sessions.shutdown();
506
+ await sessions.shutdown();
429
507
  wss.close();
430
508
  server.close();
431
509
  process.exit(0);
510
+ }
511
+ process.on('SIGTERM', () => { void gracefulShutdown('SIGTERM'); });
512
+ process.on('SIGINT', () => { void gracefulShutdown('SIGINT'); });
513
+ process.on('uncaughtException', (err) => {
514
+ console.error('[fatal] Uncaught exception:', err);
432
515
  });
433
- process.on('SIGINT', () => {
434
- console.log('SIGINT received, shutting down...');
435
- shutdownWorkflowEngine();
436
- commitEventState.handler?.shutdown();
437
- webhookHandler.shutdown();
438
- stepflowHandler.shutdown();
439
- sessions.shutdown();
440
- wss.close();
441
- server.close();
442
- process.exit(0);
516
+ process.on('unhandledRejection', (reason) => {
517
+ console.error('[fatal] Unhandled rejection:', reason);
443
518
  });
444
519
  //# sourceMappingURL=ws-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../ws-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../ws-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAsB,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,UAAU,IAAI,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAElL,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,IAAI,IAAI,GAAG,WAAW,CAAA;AACtB,IAAI,SAAS,GAAG,eAAe,CAAA;AAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;YAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAA;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,SAAS,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AACtC,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAA;IACzF,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;AAC5E,CAAC;AAED,oGAAoG;AACpG,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA,CAAE,mCAAmC;IACjE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,kFAAkF;IAClF,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAA;IACzD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;IACrD,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,KAAyB,EAAE,SAA6B;IACzF,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IACpD,OAAO,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AACxD,CAAC;AAED,oEAAoE;AACpE,SAAS,YAAY,CAAC,GAAoB;IACxC,oEAAoE;IACpE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAA;IAC5C,IAAI,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,sDAAsD;IACtD,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;IAE1C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAC9E,IAAI,eAAe,GAAG,KAAK,CAAA;AAC3B,IAAI,aAAa,GAAG,EAAE,CAAA;AACtB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEtF,IAAI,CAAC;IACH,aAAa,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAC1F,eAAe,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,GAAG,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAA;AACnD,CAAC;AAAC,MAAM,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;AACrD,CAAC;AAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;AAClF,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAA;AACrC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAA;AAC3B,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAA;AAE/B,sFAAsF;AACtF,2BAA2B,CAAC,GAAG,EAAE,CAC/B,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,kBAAkB,CACpE,CAAA;AAED,yBAAyB;AACzB,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAA;AACzC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AAElE,gDAAgD;AAChD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,4HAA4H,CAAC,CAAA;QAC3I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;AACvF,CAAC;AAED,2BAA2B;AAC3B,gFAAgF;AAChF,yEAAyE;AACzE,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAA;AAC3C,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;AAErE,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;AAChE,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAA;AACpG,CAAC;AAED,kEAAkE;AAClE,wEAAwE;AACxE,MAAM,gBAAgB,GAAgD,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAE5F,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAC9E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;AAErB,iGAAiG;AACjG,+FAA+F;AAC/F,qFAAqF;AACrF,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACrD,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK;YAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;QACzC,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,8FAA8F;AAC9F,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,wBAAwB,EAAE,CAAA;AACpD,GAAG,CAAC,IAAI,CACN,sBAAsB,EACtB,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EACvD,iBAAiB,EACjB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACjB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAc,CAAA;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE;QACzD,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAW,IAAI,EAAE;QACpD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAW,IAAI,EAAE;QAC1D,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAW,IAAI,EAAE;KAC9D,CAAC,CAAA;IAEF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjD,CAAC,CACF,CAAA;AAED,6BAA6B;AAC7B,+EAA+E;AAC/E,iEAAiE;AACjE,MAAM,mBAAmB,GAAG,wBAAwB,CAClD,EAAE,EACF,CAAC,IAAI,EAAE,EAAE,CAAE,IAAkD,EAAE,KAAK,EAAE,IAAI,CAC3E,CAAA;AACD,GAAG,CAAC,IAAI,CACN,wBAAwB,EACxB,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EACvD,mBAAmB,EACnB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACjB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAc,CAAA;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAW,IAAI,EAAE,CAAA;IACpE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACtE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjD,CAAC,CACF,CAAA;AAED,wCAAwC;AACxC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;AAEvB,mBAAmB;AACnB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1B,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;IAC/C,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IACrC,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;IAC/C,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAAA;IAChE,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC,CAAA;IAC5E,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE,2MAA2M,CAAC,CAAA;IAClP,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,GAAG,CAAC,MAAM,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,EAAE,CAAA;AACR,CAAC,CAAC,CAAA;AAEF,uEAAuE;AACvE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1B,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAA;IACtD,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAA;IACxE,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAA;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACzD,IAAI,EAAE,CAAA;AACR,CAAC,CAAC,CAAA;AAEF,iEAAiE;AACjE,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,2DAA2D;AAC3D,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;AACzG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAA;AAC5F,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAA;AACxF,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC3G,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;AAEpD,yEAAyE;AACzE,+EAA+E;AAC/E,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAA;AACtG,2EAA2E;AAC3E,MAAM,sBAAsB,GAA4C,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACzF,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC,CAAA;AAEzH,kFAAkF;AAClF,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IACnD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC5C,OAAM;YACR,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,kCAAkC;AAClC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;AAC9C,CAAC,CAAC,CAAA;AAEF,kEAAkE;AAClE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;AACtD,CAAC,CAAC,CAAA;AAEF,kDAAkD;AAClD,6DAA6D;AAC7D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,IAAqB,EAAE,GAAqB,EAAE,KAA2B,EAAE,EAAE;IAClG,MAAM,MAAM,GAAI,GAA2B,EAAE,MAAM,IAAI,GAAG,CAAA;IAC1D,IAAI,GAAG,CAAC,WAAW;QAAE,OAAM;IAC3B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;QAC7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;IACzD,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;AAChC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAE3C,+EAA+E;AAC/E,uEAAuE;AACvE,QAAQ,CAAC,gBAAgB,GAAG,CAAC,GAAG,EAAE,EAAE;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,gEAAgE;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAA;AAEnD,mFAAmF;AACnF,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B,gDAAgD;AAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8C,CAAA;AAC3E,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAChC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC,mFAAmF;AACnF,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QACxC,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO;YAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAErB,SAAS,gBAAgB,CAAC,EAAU;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,iBAAiB,EAAE,CAAC,CAAA;QACrE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,OAAO,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAA;AAC/C,CAAC;AAED,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,GAAG,EAAE,EAAE;IAC1C,yCAAyC;IACzC,MAAM,EAAE,GAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAA;IACrH,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;QACtC,OAAM;IACR,CAAC;IACD,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,MAAM,YAAY,GAAG,UAAU,EAAE,CAAA;IAEjC,MAAM,IAAI,GAAG,CAAC,GAAoB,EAAE,EAAE;QACpC,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,CAAA;IAED,kDAAkD;IAClD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,MAAM,UAAU,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;IAEzD,8DAA8D;IAC9D,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,MAAM,kBAAkB,GAAG,IAAI,CAAA;IAC/B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE/B,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,IAAI,GAAoB,CAAA;QACxB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,YAAY,CAAC,WAAW,CAAC,CAAA;gBACzB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;gBAC9B,OAAM;YACR,CAAC;YACD,aAAa,GAAG,IAAI,CAAA;YACpB,YAAY,CAAC,WAAW,CAAC,CAAA;YACzB,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;YAEpF,gDAAgD;YAChD,KAAK,qBAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,IAAI;oBAAE,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3E,CAAC,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,gCAAgC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,cAAc,GAAG,kBAAkB,EAAE,CAAC;YAC9C,QAAQ,GAAG,CAAC,CAAA;YACZ,cAAc,GAAG,GAAG,CAAA;QACtB,CAAC;QACD,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE,CAAC;YAChC,OAAM,CAAC,gCAAgC;QACzC,CAAC;QAED,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC/B,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,4DAA4D;AAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;IACjC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,EAAE,KAAK,CAAC,CAAA;AAET,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAE/C,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAClC,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAA;IAEjE,gDAAgD;IAChD,KAAK,eAAe,EAAE,CAAA;IAEtB,qEAAqE;IACrE,QAAQ,CAAC,qBAAqB,EAAE,CAAA;IAEhC,6CAA6C;IAC7C,IAAI,CAAC;QACH,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QACtE,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,cAAc;YAAE,OAAM;QAC3B,sDAAsD;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAM;QAE7D,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAA;QACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAA;QAClE,MAAM,OAAO,GAAG;YACd,UAAU,WAAW,0BAA0B,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG;YACnG,YAAY,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG;YACzC,UAAU;YACV,eAAe,SAAS,IAAI,SAAS,EAAE;YACvC,EAAE;YACF,8DAA8D;YAC9D,mIAAmI;SACpI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACjD,IAAI,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YAC3C,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAA;QACnC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACjC,MAAM,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,qDAAqD;QACrD,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAoB,EAAE,EAAE;YACnD,MAAM,GAAG,GAAoB;gBAC3B,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAA;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAChC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,sDAAsD;QACtD,aAAa,CAAC,QAAQ,CAAC,CAAA;QACvB,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAE3B,qDAAqD;QACrD,gBAAgB,CAAC,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,oBAAoB,IAAI,EAAE,CAAA;YAC5C,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YACtC,eAAe,EAAE,CAAA;QACnB,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACjD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,sBAAsB,CAAC,OAAO,GAAG,OAAO,CAAA;QAExC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,yEAAyE;AACzE,KAAK,UAAU,gBAAgB,CAAC,MAAc;IAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAA;IACnD,sBAAsB,EAAE,CAAA;IACxB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;IACpC,cAAc,CAAC,QAAQ,EAAE,CAAA;IACzB,eAAe,CAAC,QAAQ,EAAE,CAAA;IAC1B,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACzB,GAAG,CAAC,KAAK,EAAE,CAAA;IACX,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;AACjE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;AAE/D,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;AACnD,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAA;AACvD,CAAC,CAAC,CAAA"}