@kdonev/termscape 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +211 -79
- package/dist/agents/detect.d.ts +27 -0
- package/dist/agents/detect.d.ts.map +1 -0
- package/dist/agents/detect.js +210 -0
- package/dist/agents/detect.js.map +1 -0
- package/dist/agents/profiles.d.ts +119 -2
- package/dist/agents/profiles.d.ts.map +1 -1
- package/dist/agents/profiles.js +224 -4
- package/dist/agents/profiles.js.map +1 -1
- package/dist/agents/templates.d.ts +100 -0
- package/dist/agents/templates.d.ts.map +1 -0
- package/dist/agents/templates.js +165 -0
- package/dist/agents/templates.js.map +1 -0
- package/dist/agents/wiring.d.ts +30 -1
- package/dist/agents/wiring.d.ts.map +1 -1
- package/dist/agents/wiring.js +182 -10
- package/dist/agents/wiring.js.map +1 -1
- package/dist/cli.js +51 -14
- package/dist/cli.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +73 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/store.d.ts +53 -1
- package/dist/db/store.d.ts.map +1 -1
- package/dist/db/store.js +118 -5
- package/dist/db/store.js.map +1 -1
- package/dist/hub.d.ts +264 -6
- package/dist/hub.d.ts.map +1 -1
- package/dist/hub.js +549 -33
- package/dist/hub.js.map +1 -1
- package/dist/hub.tgz +0 -0
- package/dist/mcp/server.d.ts +3 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +27 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/protocol/domain.d.ts +88 -0
- package/dist/protocol/domain.d.ts.map +1 -1
- package/dist/protocol/domain.js +114 -0
- package/dist/protocol/domain.js.map +1 -1
- package/dist/protocol/mcp-tools.d.ts +43 -0
- package/dist/protocol/mcp-tools.d.ts.map +1 -1
- package/dist/protocol/mcp-tools.js +65 -0
- package/dist/protocol/mcp-tools.js.map +1 -1
- package/dist/protocol/peer.d.ts +38 -1
- package/dist/protocol/peer.d.ts.map +1 -1
- package/dist/protocol/peer.js +41 -2
- package/dist/protocol/peer.js.map +1 -1
- package/dist/protocol/ws.d.ts +259 -0
- package/dist/protocol/ws.d.ts.map +1 -1
- package/dist/protocol/ws.js +169 -5
- package/dist/protocol/ws.js.map +1 -1
- package/dist/remote/deployer.d.ts.map +1 -1
- package/dist/remote/deployer.js +15 -2
- package/dist/remote/deployer.js.map +1 -1
- package/dist/remote/join-script.d.ts.map +1 -1
- package/dist/remote/join-script.js +34 -2
- package/dist/remote/join-script.js.map +1 -1
- package/dist/remote/lan.d.ts +73 -5
- package/dist/remote/lan.d.ts.map +1 -1
- package/dist/remote/lan.js +119 -10
- package/dist/remote/lan.js.map +1 -1
- package/dist/remote/peer-serve.d.ts.map +1 -1
- package/dist/remote/peer-serve.js +32 -3
- package/dist/remote/peer-serve.js.map +1 -1
- package/dist/remote/peer.d.ts +7 -0
- package/dist/remote/peer.d.ts.map +1 -1
- package/dist/remote/peer.js +22 -0
- package/dist/remote/peer.js.map +1 -1
- package/dist/remote/registry.d.ts +70 -2
- package/dist/remote/registry.d.ts.map +1 -1
- package/dist/remote/registry.js +134 -10
- package/dist/remote/registry.js.map +1 -1
- package/dist/server.d.ts +22 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +239 -117
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +60 -4
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +198 -41
- package/dist/session/manager.js.map +1 -1
- package/dist/session/pty.d.ts +19 -0
- package/dist/session/pty.d.ts.map +1 -1
- package/dist/session/pty.js +84 -1
- package/dist/session/pty.js.map +1 -1
- package/package.json +1 -1
- package/web/assets/{index-BOqZOoep.js → index-9Z_8xZqk.js} +10 -6
- package/web/assets/index-DheUm5dl.css +1 -0
- package/web/index.html +2 -2
- package/web/assets/index-B2JtCtHa.css +0 -1
package/dist/server.js
CHANGED
|
@@ -59,6 +59,16 @@ export async function serve(opts) {
|
|
|
59
59
|
* Agent CLIs POST here at turn boundaries. The path carries the agent's own
|
|
60
60
|
* bearer token, which is also how we know which window changed state.
|
|
61
61
|
*/
|
|
62
|
+
/*
|
|
63
|
+
* Accept a POST whose content type nothing else parses, and ignore the body.
|
|
64
|
+
*
|
|
65
|
+
* The hook carries its event in the query string and has no body worth
|
|
66
|
+
* reading, but Fastify answers 415 for a content type it has no parser for -
|
|
67
|
+
* which is how every status hook from Windows was rejected while looking, to
|
|
68
|
+
* the agent, like a hook that simply failed. Registered parsers still win, so
|
|
69
|
+
* /mcp keeps its JSON.
|
|
70
|
+
*/
|
|
71
|
+
app.addContentTypeParser('*', { parseAs: 'buffer' }, (_req, _body, done) => done(null, undefined));
|
|
62
72
|
app.post('/hook/:token', async (req, reply) => {
|
|
63
73
|
const sessionId = hub.tokens.resolve(req.params.token);
|
|
64
74
|
if (!sessionId)
|
|
@@ -109,6 +119,8 @@ export async function serve(opts) {
|
|
|
109
119
|
/* --------------------------------------------------------------- join */
|
|
110
120
|
// The bind address is not known until listen() resolves, so the enroll
|
|
111
121
|
// routes read it through a closure rather than a captured value.
|
|
122
|
+
let lanOrigin = null;
|
|
123
|
+
let lanAltOrigin = null;
|
|
112
124
|
let enrollOrigin = null;
|
|
113
125
|
let enrollAltOrigin = null;
|
|
114
126
|
const enrollment = registerEnrollment(app, { hub, enrollOrigin: () => enrollOrigin });
|
|
@@ -131,20 +143,28 @@ export async function serve(opts) {
|
|
|
131
143
|
sessions: hub.allSessions(),
|
|
132
144
|
messages: hub.messages(),
|
|
133
145
|
viewport: hub.store.getViewport(),
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
// Whatever detection knows right now, which on the first load is usually
|
|
147
|
+
// "not probed yet" - it starts after this server is already listening, on
|
|
148
|
+
// purpose, so nothing about spawning CLIs can delay a page.
|
|
149
|
+
profiles: hub.agents.snapshot(),
|
|
150
|
+
templates: hub.templates.info(),
|
|
151
|
+
// A browser that was closed when a proposal arrived would otherwise never
|
|
152
|
+
// see it, and the agent that asked is still waiting on an answer.
|
|
153
|
+
templateProposals: hub.pendingProposals(),
|
|
154
|
+
hostProfiles: hub.peers.agentsByHost(),
|
|
140
155
|
});
|
|
141
156
|
hub.on('session', (s) => broadcast({ t: 'sessionUpserted', session: s }));
|
|
142
157
|
hub.on('removed', (id) => broadcast({ t: 'sessionRemoved', sessionId: id }));
|
|
143
158
|
hub.on('workspace', (w) => broadcast({ t: 'workspaceUpserted', workspace: w }));
|
|
144
159
|
hub.on('workspaceRemoved', (id) => broadcast({ t: 'workspaceRemoved', workspaceId: id }));
|
|
160
|
+
hub.on('templates', (templates) => broadcast({ t: 'templatesChanged', templates }));
|
|
161
|
+
hub.on('templateProposed', (proposal) => broadcast({ t: 'templateProposed', proposal }));
|
|
162
|
+
hub.on('templateProposalResolved', (proposalId) => broadcast({ t: 'templateProposalResolved', proposalId }));
|
|
145
163
|
hub.on('message', (m) => broadcast({ t: 'messageSent', message: m }));
|
|
146
164
|
hub.on('host', (h) => broadcast({ t: 'hostUpserted', host: h }));
|
|
147
165
|
hub.on('hostRemoved', (id) => broadcast({ t: 'hostRemoved', hostId: id }));
|
|
166
|
+
hub.on('agents', (profiles) => broadcast({ t: 'agentsDetected', hostId: null, profiles }));
|
|
167
|
+
hub.on('hostAgents', (hostId, profiles) => broadcast({ t: 'agentsDetected', hostId, profiles }));
|
|
148
168
|
// Deploy progress. Installing on a remote can take minutes; the panel shows
|
|
149
169
|
// these lines so it is not a frozen button.
|
|
150
170
|
hub.on('hostLog', (hostId, line) => broadcast({ t: 'hostLog', hostId, line }));
|
|
@@ -167,6 +187,8 @@ export async function serve(opts) {
|
|
|
167
187
|
app.get('/ws', { websocket: true }, (socket) => {
|
|
168
188
|
let authed = false;
|
|
169
189
|
clients.add(socket);
|
|
190
|
+
// So an agent can be told honestly whether anybody is there to answer it.
|
|
191
|
+
hub.setViewers(clients.size);
|
|
170
192
|
attached.set(socket, new Set());
|
|
171
193
|
socket.on('message', (raw, isBinary) => {
|
|
172
194
|
try {
|
|
@@ -216,128 +238,200 @@ export async function serve(opts) {
|
|
|
216
238
|
});
|
|
217
239
|
socket.on('close', () => {
|
|
218
240
|
clients.delete(socket);
|
|
241
|
+
hub.setViewers(clients.size);
|
|
219
242
|
attached.delete(socket);
|
|
220
243
|
});
|
|
221
244
|
});
|
|
245
|
+
/**
|
|
246
|
+
* Run one client message and answer for it.
|
|
247
|
+
*
|
|
248
|
+
* A message that carried a requestId gets an `ack` either way, and a failure
|
|
249
|
+
* is *not* also raised as an `error`: the dialog that asked is showing it,
|
|
250
|
+
* and a toast in the corner repeating it is noise. Everything without a
|
|
251
|
+
* requestId keeps the old behaviour, a bare `error`.
|
|
252
|
+
*/
|
|
222
253
|
async function handleClientMsg(socket, msg) {
|
|
254
|
+
const requestId = 'requestId' in msg ? msg.requestId : undefined;
|
|
223
255
|
try {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
248
|
-
case 'detach': {
|
|
249
|
-
attached.get(socket)?.delete(msg.sessionId);
|
|
250
|
-
const remote = hub.peers.find(msg.sessionId);
|
|
251
|
-
if (remote)
|
|
252
|
-
await remote.peer.detach(msg.sessionId);
|
|
256
|
+
const sessionId = (await dispatchClientMsg(socket, msg)) || undefined;
|
|
257
|
+
if (requestId)
|
|
258
|
+
send(socket, { t: 'ack', requestId, ok: true, sessionId });
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
const message = err.message;
|
|
262
|
+
if (requestId)
|
|
263
|
+
send(socket, { t: 'ack', requestId, ok: false, message });
|
|
264
|
+
else
|
|
265
|
+
send(socket, { t: 'error', message });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async function dispatchClientMsg(socket, msg) {
|
|
269
|
+
switch (msg.t) {
|
|
270
|
+
case 'hello':
|
|
271
|
+
return;
|
|
272
|
+
// Remote sessions are keyed by their address, so a single lookup
|
|
273
|
+
// decides whether a request is served locally or forwarded to a peer.
|
|
274
|
+
case 'attach': {
|
|
275
|
+
attached.get(socket)?.add(msg.sessionId);
|
|
276
|
+
const remote = hub.peers.find(msg.sessionId);
|
|
277
|
+
if (remote) {
|
|
278
|
+
await remote.peer.attach(msg.sessionId);
|
|
253
279
|
return;
|
|
254
280
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
});
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
hub.sessions.resize(msg.sessionId, msg.cols, msg.rows);
|
|
268
|
-
return;
|
|
281
|
+
const snap = hub.sessions.snapshotForAttach(msg.sessionId);
|
|
282
|
+
if (snap) {
|
|
283
|
+
send(socket, {
|
|
284
|
+
t: 'snapshot',
|
|
285
|
+
sessionId: msg.sessionId,
|
|
286
|
+
serialized: snap.serialized,
|
|
287
|
+
cols: snap.cols,
|
|
288
|
+
rows: snap.rows,
|
|
289
|
+
});
|
|
269
290
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
case 'detach': {
|
|
294
|
+
attached.get(socket)?.delete(msg.sessionId);
|
|
295
|
+
const remote = hub.peers.find(msg.sessionId);
|
|
296
|
+
if (remote)
|
|
297
|
+
await remote.peer.detach(msg.sessionId);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
case 'resize': {
|
|
301
|
+
const remote = hub.peers.find(msg.sessionId);
|
|
302
|
+
if (remote) {
|
|
303
|
+
await remote.peer.request({
|
|
304
|
+
t: 'resize',
|
|
305
|
+
id: randomUUID(),
|
|
306
|
+
address: msg.sessionId,
|
|
307
|
+
cols: msg.cols,
|
|
308
|
+
rows: msg.rows,
|
|
282
309
|
});
|
|
283
310
|
return;
|
|
284
|
-
case 'stopSession': {
|
|
285
|
-
const remote = hub.peers.find(msg.sessionId);
|
|
286
|
-
if (remote) {
|
|
287
|
-
await remote.peer.request({ t: 'stopSession', id: randomUUID(), address: msg.sessionId });
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
hub.sessions.stop(msg.sessionId);
|
|
291
|
-
return;
|
|
292
311
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
312
|
+
hub.sessions.resize(msg.sessionId, msg.cols, msg.rows);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
case 'createWorkspace':
|
|
316
|
+
hub.createWorkspace(msg.name, msg.rootPath, msg.hostId ?? null);
|
|
317
|
+
return;
|
|
318
|
+
case 'updateWorkspace':
|
|
319
|
+
hub.updateWorkspace(msg.workspaceId, {
|
|
320
|
+
name: msg.name,
|
|
321
|
+
rootPath: msg.rootPath,
|
|
322
|
+
});
|
|
323
|
+
return;
|
|
324
|
+
case 'removeWorkspace':
|
|
325
|
+
await hub.removeWorkspace(msg.workspaceId);
|
|
326
|
+
return;
|
|
327
|
+
case 'saveTemplate':
|
|
328
|
+
hub.saveTemplate({
|
|
329
|
+
id: msg.id,
|
|
330
|
+
agent: msg.agent,
|
|
331
|
+
description: msg.description,
|
|
332
|
+
model: msg.model,
|
|
333
|
+
effort: msg.effort,
|
|
334
|
+
prompt: msg.prompt,
|
|
335
|
+
env: msg.env,
|
|
336
|
+
});
|
|
337
|
+
return;
|
|
338
|
+
case 'removeTemplate':
|
|
339
|
+
hub.removeTemplate(msg.id);
|
|
340
|
+
return;
|
|
341
|
+
case 'resolveTemplateProposal':
|
|
342
|
+
hub.resolveTemplateProposal(msg.proposalId, msg.accept, {
|
|
343
|
+
id: msg.id,
|
|
344
|
+
agent: msg.agent,
|
|
345
|
+
description: msg.description,
|
|
346
|
+
model: msg.model,
|
|
347
|
+
effort: msg.effort,
|
|
348
|
+
prompt: msg.prompt,
|
|
349
|
+
env: msg.env,
|
|
350
|
+
});
|
|
351
|
+
return;
|
|
352
|
+
case 'startSession': {
|
|
353
|
+
const session = await hub.startSession({
|
|
354
|
+
workspaceId: msg.workspaceId,
|
|
355
|
+
profile: msg.profile,
|
|
356
|
+
model: msg.model,
|
|
357
|
+
effort: msg.effort,
|
|
358
|
+
prompt: msg.prompt,
|
|
359
|
+
name: msg.name,
|
|
360
|
+
cwd: msg.cwd,
|
|
361
|
+
});
|
|
362
|
+
// Back to the asker, in the ack: whoever started this agent is about
|
|
363
|
+
// to want the canvas to fly to it.
|
|
364
|
+
return session.id;
|
|
365
|
+
}
|
|
366
|
+
case 'stopSession': {
|
|
367
|
+
const remote = hub.peers.find(msg.sessionId);
|
|
368
|
+
if (remote) {
|
|
369
|
+
await remote.peer.request({ t: 'stopSession', id: randomUUID(), address: msg.sessionId });
|
|
308
370
|
return;
|
|
309
371
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
return;
|
|
319
|
-
case 'setViewport':
|
|
320
|
-
hub.setViewport(msg.viewport);
|
|
372
|
+
hub.sessions.stop(msg.sessionId);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
case 'removeSession':
|
|
376
|
+
// A remote window's session belongs to its peer. Removing it here
|
|
377
|
+
// would delete nothing and merely hide the window until that peer
|
|
378
|
+
// reported it again.
|
|
379
|
+
if (await hub.peers.removeSession(msg.sessionId))
|
|
321
380
|
return;
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
381
|
+
hub.sessions.remove(msg.sessionId);
|
|
382
|
+
return;
|
|
383
|
+
case 'resumeSession': {
|
|
384
|
+
const remote = hub.peers.find(msg.sessionId);
|
|
385
|
+
if (remote) {
|
|
386
|
+
await remote.peer.request({ t: 'resumeSession', id: randomUUID(), address: msg.sessionId });
|
|
327
387
|
return;
|
|
328
388
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
return;
|
|
332
|
-
case 'connectHost':
|
|
333
|
-
await hub.connectHost(msg.hostId);
|
|
334
|
-
return;
|
|
335
|
-
default:
|
|
336
|
-
send(socket, { t: 'error', message: `unhandled: ${msg.t}` });
|
|
389
|
+
await hub.resumeSession(msg.sessionId);
|
|
390
|
+
return;
|
|
337
391
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
392
|
+
case 'resumeWorkspace':
|
|
393
|
+
await hub.resumeWorkspace(msg.workspaceId);
|
|
394
|
+
return;
|
|
395
|
+
case 'moveWindow':
|
|
396
|
+
// Layout is always local, even for a peer's session.
|
|
397
|
+
if (!hub.peers.saveLayout(msg.sessionId, msg.rect)) {
|
|
398
|
+
hub.moveWindow(msg.sessionId, msg.rect);
|
|
399
|
+
}
|
|
400
|
+
return;
|
|
401
|
+
case 'setViewport':
|
|
402
|
+
hub.setViewport(msg.viewport);
|
|
403
|
+
return;
|
|
404
|
+
case 'addHost': {
|
|
405
|
+
const host = hub.addHost(msg);
|
|
406
|
+
// Connect immediately: adding a host the user then has to connect
|
|
407
|
+
// by hand is a pointless second step.
|
|
408
|
+
void hub.connectHost(host.id).catch((e) => send(socket, { t: 'error', message: `connect ${host.label}: ${e.message}` }));
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
case 'updateHost':
|
|
412
|
+
hub.updateHost(msg.hostId, {
|
|
413
|
+
label: msg.label,
|
|
414
|
+
sshHost: msg.sshHost,
|
|
415
|
+
sshUser: msg.sshUser,
|
|
416
|
+
sshPort: msg.sshPort,
|
|
417
|
+
privateKeyPath: msg.privateKeyPath,
|
|
418
|
+
});
|
|
419
|
+
return;
|
|
420
|
+
case 'removeHost':
|
|
421
|
+
await hub.removeHost(msg.hostId);
|
|
422
|
+
return;
|
|
423
|
+
case 'connectHost':
|
|
424
|
+
await hub.connectHost(msg.hostId);
|
|
425
|
+
return;
|
|
426
|
+
case 'refreshAgents':
|
|
427
|
+
// Not awaited: the answer arrives as `agentsDetected` when each
|
|
428
|
+
// machine has one, and a CLI that hangs must cost a slow dropdown
|
|
429
|
+
// rather than a socket sitting on a reply.
|
|
430
|
+
void hub.agents.refresh();
|
|
431
|
+
hub.peers.refreshAgents();
|
|
432
|
+
return;
|
|
433
|
+
default:
|
|
434
|
+
throw new Error(`unhandled: ${msg.t}`);
|
|
341
435
|
}
|
|
342
436
|
}
|
|
343
437
|
/* ------------------------------------------------------------- static */
|
|
@@ -391,9 +485,9 @@ export async function serve(opts) {
|
|
|
391
485
|
attached.clear();
|
|
392
486
|
});
|
|
393
487
|
/* --------------------------------------------------------------- bind */
|
|
394
|
-
// Loopback unless the
|
|
395
|
-
//
|
|
396
|
-
//
|
|
488
|
+
// Loopback unless the caller asked otherwise. The CLI widens this for a hub
|
|
489
|
+
// that serves a UI; an SSH-deployed hub is headless, is reached only through
|
|
490
|
+
// its tunnel, and gets the default.
|
|
397
491
|
const host = opts.host ?? '127.0.0.1';
|
|
398
492
|
const address = await listenOnFirstFree(app, host, opts.port ?? 0);
|
|
399
493
|
const port = app.server.address().port;
|
|
@@ -407,11 +501,39 @@ export async function serve(opts) {
|
|
|
407
501
|
// Prefer this machine's name: it is the URL someone has to carry to
|
|
408
502
|
// another machine and type in. The IP stays available underneath.
|
|
409
503
|
const name = await preferredHostname(advertised);
|
|
410
|
-
|
|
411
|
-
|
|
504
|
+
lanOrigin = `http://${name ?? advertised}:${port}`;
|
|
505
|
+
lanAltOrigin = name ? `http://${advertised}:${port}` : null;
|
|
506
|
+
}
|
|
507
|
+
// The join page reads enrollOrigin through its closure and 404s on null, so
|
|
508
|
+
// withholding the origin is what withholds the page - there is no second
|
|
509
|
+
// switch to keep in step with this one.
|
|
510
|
+
if (opts.enroll) {
|
|
511
|
+
enrollOrigin = lanOrigin;
|
|
512
|
+
enrollAltOrigin = lanAltOrigin;
|
|
412
513
|
}
|
|
514
|
+
/*
|
|
515
|
+
* Detection starts here, after listen() has resolved, and is deliberately
|
|
516
|
+
* not awaited. It spawns every declared CLI to ask its version and its
|
|
517
|
+
* models; one of them hanging must cost a slow dropdown rather than a hub
|
|
518
|
+
* that will not boot, and the browser is told through `agentsDetected` when
|
|
519
|
+
* each answer lands.
|
|
520
|
+
*/
|
|
521
|
+
void hub.agents.refresh().catch(() => {
|
|
522
|
+
// Individual probes already fail softly; this is only here so a bug in
|
|
523
|
+
// the detector cannot become an unhandled rejection that stops the hub.
|
|
524
|
+
});
|
|
413
525
|
void address;
|
|
414
|
-
return {
|
|
526
|
+
return {
|
|
527
|
+
app,
|
|
528
|
+
origin,
|
|
529
|
+
lanOrigin,
|
|
530
|
+
lanAltOrigin,
|
|
531
|
+
enrollOrigin,
|
|
532
|
+
enrollAltOrigin,
|
|
533
|
+
port,
|
|
534
|
+
peerServer,
|
|
535
|
+
enrollment,
|
|
536
|
+
};
|
|
415
537
|
}
|
|
416
538
|
/**
|
|
417
539
|
* Bind the first candidate that is free.
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,SAAS,EAET,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAO,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAmB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,OAAO,GACR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAwCpE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEhF;;;;;;;;GAQG;AACH,SAAS,OAAO;IACd,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG;QACjB,sDAAsD;QACtD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAkB;IAC5C,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvC,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC5B,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;KACzC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9B,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,WAAW;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC,CAAC;IAEJ,0EAA0E;IAE1E;;;OAGG;IACH,GAAG,CAAC,IAAI,CACN,cAAc,EACd,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC,CACF,CAAC;IAEF,0EAA0E;IAE1E,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE;gBAChD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzB,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtD,yEAAyE;IACzE,0EAA0E;IAC1E,sCAAsC;IACtC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE1B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/C,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;IAEtF,0EAA0E;IAE1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,MAAM,IAAI,GAAG,CAAC,EAA0B,EAAE,GAAc,EAAQ,EAAE;QAChE,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,GAAc,EAAQ,EAAE;QACzC,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAa,EAAE,CAAC,CAAC;QACrC,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI;QACvD,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,OAAO,CAAC,CAAC,CAAC,IAAI;QAChE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE;QAC5B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE;QACtC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;QACxB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;SAC1B,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,4EAA4E;IAC5E,4CAA4C;IAC5C,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,qEAAqE;IACrE,4DAA4D;IAC5D,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE;YAAE,SAAS,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IAChE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,iBAAiB,CAC7B,eAAe,CAAC,SAAS,EACzB,SAAS,EACT,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAC3B,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,QAAiB,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACpB,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;wBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACrD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC3C,IAAI,MAAM,EAAE,CAAC;4BACX,8DAA8D;4BAC9D,+DAA+D;4BAC/D,gEAAgE;4BAChE,8DAA8D;4BAC9D,KAAK,MAAM,CAAC,IAAI;iCACb,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;iCACrE,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE,CAClB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CACzE,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC3D,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;gBAExB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACnD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;wBACtD,MAAM,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBAED,KAAK,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,eAAe,CAC5B,MAA8B,EAC9B,GAAc;QAEd,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,OAAO;gBAET,iEAAiE;gBACjE,sEAAsE;gBACtE,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACzC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBACxC,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3D,IAAI,IAAI,EAAE,CAAC;wBACT,IAAI,CAAC,MAAM,EAAE;4BACX,CAAC,EAAE,UAAU;4BACb,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,IAAI,EAAE,IAAI,CAAC,IAAI;yBAChB,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM;wBAAE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;4BACxB,CAAC,EAAE,QAAQ;4BACX,EAAE,EAAE,UAAU,EAAE;4BAChB,OAAO,EAAE,GAAG,CAAC,SAAS;4BACtB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,IAAI,EAAE,GAAG,CAAC,IAAI;yBACf,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvD,OAAO;gBACT,CAAC;gBAED,KAAK,iBAAiB;oBACpB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;oBAChE,OAAO;gBAET,KAAK,iBAAiB;oBACpB,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC3C,OAAO;gBAET,KAAK,cAAc;oBACjB,MAAM,GAAG,CAAC,YAAY,CAAC;wBACrB,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,GAAG,EAAE,GAAG,CAAC,GAAG;qBACb,CAAC,CAAC;oBACH,OAAO;gBAET,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;wBAC1F,OAAO;oBACT,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,KAAK,eAAe;oBAClB,kEAAkE;oBAClE,kEAAkE;oBAClE,qBAAqB;oBACrB,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,OAAO;oBACzD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO;gBAET,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;wBAC5F,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,KAAK,iBAAiB;oBACpB,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC3C,OAAO;gBAET,KAAK,YAAY;oBACf,qDAAqD;oBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO;gBAET,KAAK,aAAa;oBAChB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC9B,OAAO;gBAET,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC9B,kEAAkE;oBAClE,sCAAsC;oBACtC,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC7E,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,KAAK,YAAY;oBACf,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjC,OAAO;gBAET,KAAK,aAAa;oBAChB,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAClC,OAAO;gBAET;oBACE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAe,GAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;gBAChC,IAAI;gBACJ,QAAQ,EAAE,KAAK;gBACf,oEAAoE;gBACpE,+DAA+D;gBAC/D,kEAAkE;gBAClE,6CAA6C;gBAC7C,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;oBAC1D,GAAG,CAAC,MAAM,CACR,eAAe,EACf,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,UAAU,CAC/D,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YAEH,mEAAmE;YACnE,uEAAuE;YACvE,qEAAqE;YACrE,2BAA2B;YAC3B,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzF,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;;OAIG;IACH,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;QACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,uEAAuE;IACvE,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAuB,CAAC,IAAI,CAAC;IAE7D,0EAA0E;IAC1E,yEAAyE;IACzE,mBAAmB;IACnB,MAAM,MAAM,GAAG,UAAU,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACtF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjD,YAAY,GAAG,UAAU,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACtD,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAED,KAAK,OAAO,CAAC;IACb,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACtF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAoB,EACpB,IAAY,EACZ,IAAuB;IAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,QAAQ,CAAC;YACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,SAAS,EAET,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAO,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAmB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,OAAO,GACR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA2DpE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEhF;;;;;;;;GAQG;AACH,SAAS,OAAO;IACd,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG;QACjB,sDAAsD;QACtD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAkB;IAC5C,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvC,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC5B,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;KACzC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9B,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,WAAW;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC,CAAC;IAEJ,0EAA0E;IAE1E;;;OAGG;IACH;;;;;;;;OAQG;IACH,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CACtB,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,cAAc,EACd,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC,CACF,CAAC;IAEF,0EAA0E;IAE1E,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE;gBAChD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzB,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtD,yEAAyE;IACzE,0EAA0E;IAC1E,sCAAsC;IACtC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE1B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/C,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;IAEtF,0EAA0E;IAE1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,MAAM,IAAI,GAAG,CAAC,EAA0B,EAAE,GAAc,EAAQ,EAAE;QAChE,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,GAAc,EAAQ,EAAE;QACzC,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAa,EAAE,CAAC,CAAC;QACrC,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI;QACvD,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,OAAO,CAAC,CAAC,CAAC,IAAI;QAChE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE;QAC5B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE;QACtC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;QACxB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;QACjC,yEAAyE;QACzE,0EAA0E;QAC1E,4DAA4D;QAC5D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/B,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;QAC/B,0EAA0E;QAC1E,kEAAkE;QAClE,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,EAAE;QACzC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;KACvC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzF,GAAG,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,UAAU,EAAE,EAAE,CAChD,SAAS,CAAC,EAAE,CAAC,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC,CACzD,CAAC;IACF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,SAAS,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAC3D,CAAC;IACF,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CACxC,SAAS,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CACrD,CAAC;IACF,4EAA4E;IAC5E,4CAA4C;IAC5C,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,qEAAqE;IACrE,4DAA4D;IAC5D,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE;YAAE,SAAS,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IAChE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,iBAAiB,CAC7B,eAAe,CAAC,SAAS,EACzB,SAAS,EACT,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAC3B,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,0EAA0E;QAC1E,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,QAAiB,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACpB,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;wBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACrD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC3C,IAAI,MAAM,EAAE,CAAC;4BACX,8DAA8D;4BAC9D,+DAA+D;4BAC/D,gEAAgE;4BAChE,8DAA8D;4BAC9D,KAAK,MAAM,CAAC,IAAI;iCACb,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;iCACrE,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE,CAClB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CACzE,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC3D,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;gBAExB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACnD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;wBACtD,MAAM,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBAED,KAAK,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,KAAK,UAAU,eAAe,CAC5B,MAA8B,EAC9B,GAAc;QAEd,MAAM,SAAS,GAAG,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;YACtE,IAAI,SAAS;gBAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;YACvC,IAAI,SAAS;gBAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;;gBACpE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,MAA8B,EAC9B,GAAc;QAEd,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO;YAET,iEAAiE;YACjE,sEAAsE;YACtE,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,EAAE;wBACX,CAAC,EAAE,UAAU;wBACb,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM;oBAAE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;wBACxB,CAAC,EAAE,QAAQ;wBACX,EAAE,EAAE,UAAU,EAAE;wBAChB,OAAO,EAAE,GAAG,CAAC,SAAS;wBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,GAAG,CAAC,IAAI;qBACf,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,KAAK,iBAAiB;gBACpB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;gBAChE,OAAO;YAET,KAAK,iBAAiB;gBACpB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE;oBACnC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAC,CAAC;gBACH,OAAO;YAET,KAAK,iBAAiB;gBACpB,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3C,OAAO;YAET,KAAK,cAAc;gBACjB,GAAG,CAAC,YAAY,CAAC;oBACf,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;iBACb,CAAC,CAAC;gBACH,OAAO;YAET,KAAK,gBAAgB;gBACnB,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,OAAO;YAET,KAAK,yBAAyB;gBAC5B,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;oBACtD,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;iBACb,CAAC,CAAC;gBACH,OAAO;YAET,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC;oBACrC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,GAAG,EAAE,GAAG,CAAC,GAAG;iBACb,CAAC,CAAC;gBACH,qEAAqE;gBACrE,mCAAmC;gBACnC,OAAO,OAAO,CAAC,EAAE,CAAC;YACpB,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC1F,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,KAAK,eAAe;gBAClB,kEAAkE;gBAClE,kEAAkE;gBAClE,qBAAqB;gBACrB,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO;gBACzD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,OAAO;YAET,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC5F,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,KAAK,iBAAiB;gBACpB,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3C,OAAO;YAET,KAAK,YAAY;gBACf,qDAAqD;gBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO;YAET,KAAK,aAAa;gBAChB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO;YAET,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9B,kEAAkE;gBAClE,sCAAsC;gBACtC,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC7E,CAAC;gBACF,OAAO;YACT,CAAC;YAED,KAAK,YAAY;gBACf,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;oBACzB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,cAAc,EAAE,GAAG,CAAC,cAAc;iBACnC,CAAC,CAAC;gBACH,OAAO;YAET,KAAK,YAAY;gBACf,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO;YAET,KAAK,aAAa;gBAChB,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClC,OAAO;YAET,KAAK,eAAe;gBAClB,gEAAgE;gBAChE,kEAAkE;gBAClE,2CAA2C;gBAC3C,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO;YAET;gBACE,MAAM,IAAI,KAAK,CAAC,cAAe,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;gBAChC,IAAI;gBACJ,QAAQ,EAAE,KAAK;gBACf,oEAAoE;gBACpE,+DAA+D;gBAC/D,kEAAkE;gBAClE,6CAA6C;gBAC7C,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;oBAC1D,GAAG,CAAC,MAAM,CACR,eAAe,EACf,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,UAAU,CAC/D,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YAEH,mEAAmE;YACnE,uEAAuE;YACvE,qEAAqE;YACrE,2BAA2B;YAC3B,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzF,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;;OAIG;IACH,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;QACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAE1E,4EAA4E;IAC5E,6EAA6E;IAC7E,oCAAoC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAuB,CAAC,IAAI,CAAC;IAE7D,0EAA0E;IAC1E,yEAAyE;IACzE,mBAAmB;IACnB,MAAM,MAAM,GAAG,UAAU,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACtF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjD,SAAS,GAAG,UAAU,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACnD,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,wCAAwC;IACxC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,YAAY,GAAG,SAAS,CAAC;QACzB,eAAe,GAAG,YAAY,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACnC,uEAAuE;QACvE,wEAAwE;IAC1E,CAAC,CAAC,CAAC;IAEH,KAAK,OAAO,CAAC;IACb,OAAO;QACL,GAAG;QACH,MAAM;QACN,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,IAAI;QACJ,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAoB,EACpB,IAAY,EACZ,IAAuB;IAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,QAAQ,CAAC;YACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -6,15 +6,56 @@ import { TokenRegistry } from '../agents/tokens.js';
|
|
|
6
6
|
import { PtySession } from './pty.js';
|
|
7
7
|
/** Debounce for persisting window geometry while a window is being dragged. */
|
|
8
8
|
export declare const LAYOUT_DEBOUNCE_MS = 250;
|
|
9
|
+
/**
|
|
10
|
+
* Where a new window goes, given what is already on the canvas.
|
|
11
|
+
*
|
|
12
|
+
* The anchor choice is the "near" in the promise this makes: below-right of
|
|
13
|
+
* the parent when it was spawned by an agent, otherwise in the first clear
|
|
14
|
+
* slot of a 3-wide lattice laid over its own workspace's dense part — or, when
|
|
15
|
+
* that workspace is still empty, beside the rightmost group already on the
|
|
16
|
+
* canvas rather than at the origin, where it would sit on top of the first
|
|
17
|
+
* workspace's windows. Candidates are checked against every occupied rect —
|
|
18
|
+
* the caller folds peer windows in, because those share the canvas too — so a
|
|
19
|
+
* window the user dragged across the grid no longer silently receives the
|
|
20
|
+
* next "free" slot, and a second child of the same parent no longer stacks
|
|
21
|
+
* exactly on the first.
|
|
22
|
+
*/
|
|
23
|
+
export declare function choosePlacement(opts: {
|
|
24
|
+
workspaceId: string;
|
|
25
|
+
parentId: string | null;
|
|
26
|
+
sessions: Pick<Session, 'id' | 'workspaceId' | 'window'>[];
|
|
27
|
+
/** Windows that share the canvas but are not local sessions — peers'. */
|
|
28
|
+
extraOccupied?: Pick<WindowRect, 'x' | 'y' | 'w' | 'h'>[];
|
|
29
|
+
}): WindowRect;
|
|
9
30
|
export interface StartOptions {
|
|
10
31
|
workspaceId: string;
|
|
11
32
|
profileId: string;
|
|
33
|
+
/**
|
|
34
|
+
* The id to start under, when the caller has already chosen one — a peer
|
|
35
|
+
* starting a child on behalf of a canvas that needs to recognise it on the
|
|
36
|
+
* wire. Absent means mint one here, which is the local case.
|
|
37
|
+
*/
|
|
38
|
+
id?: string;
|
|
39
|
+
/**
|
|
40
|
+
* The template this came from and what it resolved to. Values, never argv:
|
|
41
|
+
* the agent declares how to spell them, which is the only way one template
|
|
42
|
+
* can name a model for CLIs that all spell `--model` differently.
|
|
43
|
+
*/
|
|
44
|
+
template?: string | null;
|
|
45
|
+
model?: string;
|
|
46
|
+
effort?: string;
|
|
12
47
|
name?: string;
|
|
13
48
|
cwd?: string;
|
|
14
49
|
spawnedBy?: string | null;
|
|
15
50
|
cols?: number;
|
|
16
51
|
rows?: number;
|
|
17
52
|
window?: WindowRect;
|
|
53
|
+
/**
|
|
54
|
+
* Extra environment from the template, already resolved to values. Recorded
|
|
55
|
+
* on the session so a resume a week later runs in the same environment even
|
|
56
|
+
* if the template has been edited since.
|
|
57
|
+
*/
|
|
58
|
+
env?: Record<string, string>;
|
|
18
59
|
}
|
|
19
60
|
export interface ManagerEvents {
|
|
20
61
|
session: (s: Session) => void;
|
|
@@ -41,9 +82,25 @@ export declare class SessionManager extends EventEmitter {
|
|
|
41
82
|
private readonly live;
|
|
42
83
|
private readonly snapshotTimers;
|
|
43
84
|
private readonly layoutTimers;
|
|
85
|
+
/**
|
|
86
|
+
* Rects a client has moved but the debounce has not written yet.
|
|
87
|
+
*
|
|
88
|
+
* Sessions are read back out of SQLite on every emit, so without this a
|
|
89
|
+
* broadcast triggered by anything else — a title the agent rewrote, a
|
|
90
|
+
* status flip — would carry the rect from before the drag and snap the
|
|
91
|
+
* window back under the cursor. The move is authoritative the moment it
|
|
92
|
+
* arrives; the debounce only defers the write, not the truth.
|
|
93
|
+
*/
|
|
94
|
+
private readonly pendingWindows;
|
|
44
95
|
/** Latest title per session, waiting for the coalescing window to close. */
|
|
45
96
|
private readonly pendingTitles;
|
|
46
97
|
private titleTimer;
|
|
98
|
+
/**
|
|
99
|
+
* Windows that share this canvas but are not local sessions — a peer's are.
|
|
100
|
+
* The manager cannot see the peer registry, so the hub hands it this view;
|
|
101
|
+
* placement checks it, because "never on top of anything" means anything.
|
|
102
|
+
*/
|
|
103
|
+
remoteWindows: () => WindowRect[];
|
|
47
104
|
constructor(store: Store, profiles: ProfileRegistry, tokens: TokenRegistry, hubOrigin: string);
|
|
48
105
|
setHubOrigin(origin: string): void;
|
|
49
106
|
private isResumable;
|
|
@@ -86,12 +143,11 @@ export declare class SessionManager extends EventEmitter {
|
|
|
86
143
|
} | null;
|
|
87
144
|
moveWindow(sessionId: string, rect: WindowRect): void;
|
|
88
145
|
/**
|
|
89
|
-
* Place a new window
|
|
90
|
-
*
|
|
146
|
+
* Place a new window where it overlaps nothing, near the workspace it
|
|
147
|
+
* belongs to. The mechanics live in `choosePlacement`, which is pure and
|
|
148
|
+
* exported so the rules can be tested without a PTY in sight.
|
|
91
149
|
*/
|
|
92
150
|
private placeWindow;
|
|
93
|
-
/** Workspaces are laid out left to right so their groups do not overlap. */
|
|
94
|
-
private workspaceOriginX;
|
|
95
151
|
private clearTimer;
|
|
96
152
|
private emitSession;
|
|
97
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkB,KAAK,EAA0B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkB,KAAK,EAA0B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAEL,eAAe,EAIhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAoBtC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC3D,yEAAyE;IACzE,aAAa,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;CAC3D,GAAG,UAAU,CAyEb;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAyB5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa;IAC9B,OAAO,CAAC,SAAS;IA3BnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,UAAU,CAA+B;IACjD;;;;OAIG;IACH,aAAa,EAAE,MAAM,UAAU,EAAE,CAAY;gBAG1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACjC,MAAM,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM;IAK3B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlC,OAAO,CAAC,WAAW,CAAoE;IAEvF,IAAI,IAAI,OAAO,EAAE;IAIjB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAK/B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAI7C,0DAA0D;IAC1D,OAAO,CAAC,QAAQ;IAQhB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAMlC,4EAA4E;IAC5E,OAAO,CAAC,SAAS;IA4GjB,OAAO,CAAC,OAAO;IAMT,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAyDjD,uEAAuE;IACjE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBjD,OAAO,CAAC,KAAK;IAkEb,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKpD;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAejB,8EAA8E;IAC9E,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU7B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/B,OAAO,CAAC,gBAAgB;IAWxB,qEAAqE;IACrE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUxC,mBAAmB,IAAI,IAAI;IAI3B,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAS/F,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAcrD;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,eAAe,IAAI,IAAI;IAQvB,QAAQ,IAAI,IAAI;CAoBjB"}
|